SpyBara
Go Premium

Documentation 2026-10-08 22:58 UTC to 2026-10-09 22:01 UTC

64 files changed +1,520 −665. View all changes and history on the product overview
2026
Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

216| Opsi | Apa yang dikontrolnya | Default |216| Opsi | Apa yang dikontrolnya | Default |

217| :- | :- | :- |217| :- | :- | :- |

218| Max turns (`max_turns` / `maxTurns`) | Maximum tool-use round trips | Tidak ada batas |218| Max turns (`max_turns` / `maxTurns`) | Maximum tool-use round trips | Tidak ada batas |

219| Max budget (`max_budget_usd` / `maxBudgetUsd`) | Maximum cost sebelum berhenti | Tidak ada batas |219| Max budget (`max_budget_usd` / `maxBudgetUsd`) | Perkiraan pengeluaran saat loop berhenti | Tidak ada batas |

220 220 

221Ketika salah satu batas tercapai, SDK mengembalikan `ResultMessage` dengan error subtype yang sesuai (`error_max_turns` atau `error_max_budget_usd`). Lihat [Handle the result](#handle-the-result) untuk cara memeriksa subtypes ini dan [`ClaudeAgentOptions`](/docs/id/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/id/agent-sdk/typescript#options) untuk syntax.221Ketika salah satu batas tercapai, SDK mengembalikan `ResultMessage` dengan error subtype yang sesuai (`error_max_turns` atau `error_max_budget_usd`). Lihat [Handle the result](#handle-the-result) untuk cara memeriksa subtypes ini dan [`ClaudeAgentOptions`](/docs/id/agent-sdk/python#claudeagentoptions) / [`Options`](/docs/id/agent-sdk/typescript#options) untuk syntax.

222 222 


224 224 

225Dengan [streaming input](/docs/id/agent-sdk/streaming-vs-single-mode), pesan yang masih antri ketika turn berakhir pada batas max-turns tetap antri. Claude Code tidak menambahkannya ke model call terakhir turn itu. Ini memulai turn baru untuk pesan, dan hitungan max-turns dimulai lagi untuk turn itu. Total budget terus terakumulasi di seluruh pesan, dan setelah pengeluaran mencapai `maxBudgetUsd`, pesan-pesan selanjutnya dalam percakapan yang sama berakhir dengan hasil `error_max_budget_usd`. Sebuah [`/clear`](/docs/id/agent-sdk/cost-tracking) memulai ulang budget.225Dengan [streaming input](/docs/id/agent-sdk/streaming-vs-single-mode), pesan yang masih antri ketika turn berakhir pada batas max-turns tetap antri. Claude Code tidak menambahkannya ke model call terakhir turn itu. Ini memulai turn baru untuk pesan, dan hitungan max-turns dimulai lagi untuk turn itu. Total budget terus terakumulasi di seluruh pesan, dan setelah pengeluaran mencapai `maxBudgetUsd`, pesan-pesan selanjutnya dalam percakapan yang sama berakhir dengan hasil `error_max_budget_usd`. Sebuah [`/clear`](/docs/id/agent-sdk/cost-tracking) memulai ulang budget.

226 226 

227<h4 id="budget-headroom">

228 Ruang cadangan budget

229</h4>

230 

231Claude Code membandingkan pengeluaran dengan cap `max_budget_usd` / `maxBudgetUsd` setelah respons model tiba, karena biaya setiap respons berasal dari penggunaan token yang dikembalikan API bersama respons tersebut. Respons yang mencapai cap tetap diselesaikan dan dihitung dalam [`total_cost_usd`](/docs/id/agent-sdk/cost-tracking#get-the-total-cost-of-a-query). Oleh karena itu, pengeluaran dapat melewati cap hingga sebesar biaya satu respons tersebut, ditambah apa pun yang dibelanjakan subagent yang masih berjalan pada saat itu sebelum berhenti. Sisakan ruang cadangan untuk hal ini saat Anda menetapkan cap.

232 

227<h3 id="effort-level">233<h3 id="effort-level">

228 Effort level234 Effort level

229</h3>235</h3>

Details

78 78 

79Anda dapat mengonfigurasi server MCP dalam kode saat memanggil `query()`, atau dalam file `.mcp.json` yang dimuat melalui [`settingSources`](#from-a-config-file).79Anda dapat mengonfigurasi server MCP dalam kode saat memanggil `query()`, atau dalam file `.mcp.json` yang dimuat melalui [`settingSources`](#from-a-config-file).

80 80 

81<h3 id="in-code">81<span id="in-code" />

82 Dalam kode82 

83<h3 id="add-a-server-in-code">

84 Tambahkan server dalam kode

83</h3>85</h3>

84 86 

85Teruskan server MCP secara langsung dalam opsi `mcpServers`. Contoh ini memulai server MCP filesystem lokal untuk `/Users/me/projects`. Ganti jalur tersebut dengan direktori di mesin Anda:87Teruskan server MCP secara langsung dalam opsi `mcpServers`. Contoh ini memulai server MCP filesystem lokal untuk `/Users/me/projects`. Ganti jalur tersebut dengan direktori di mesin Anda:


135 ```137 ```

136</CodeGroup>138</CodeGroup>

137 139 

138<h3 id="from-a-config-file">140<span id="from-a-config-file" />

139 Dari file konfigurasi141 

142<h3 id="add-a-server-from-a-config-file">

143 Tambahkan server dari file konfigurasi

140</h3>144</h3>

141 145 

142Buat file `.mcp.json` di root proyek Anda. File ini diambil ketika sumber pengaturan `project` diaktifkan, yang merupakan default untuk opsi `query()`. Jika Anda menetapkan `settingSources` secara eksplisit, sertakan `"project"` agar file ini dimuat. Ganti `/Users/me/projects` dengan direktori di mesin Anda:146Buat file `.mcp.json` di root proyek Anda. File ini diambil ketika sumber pengaturan `project` diaktifkan, yang merupakan default untuk opsi `query()`. Jika Anda menetapkan `settingSources` secara eksplisit, sertakan `"project"` agar file ini dimuat. Ganti `/Users/me/projects` dengan direktori di mesin Anda:


301 Server stdio305 Server stdio

302</h3>306</h3>

303 307 

304Proses lokal yang berkomunikasi melalui stdin/stdout. Gunakan ini untuk server MCP yang Anda jalankan di mesin yang sama. Untuk bentuk `.mcp.json`, gunakan bidang yang sama seperti yang ditunjukkan di [Dari file konfigurasi](#from-a-config-file). Dalam kode, teruskan perintah dan argumennya. Ganti `/Users/me/projects` dengan direktori di mesin Anda:308Proses lokal yang berkomunikasi melalui stdin/stdout. Gunakan ini untuk server MCP yang Anda jalankan di mesin yang sama. Untuk bentuk `.mcp.json`, gunakan bidang yang sama seperti yang ditunjukkan di [Menambahkan server dari file konfigurasi](#from-a-config-file). Dalam kode, teruskan perintah dan argumennya. Ganti `/Users/me/projects` dengan direktori di mesin Anda:

305 309 

306<CodeGroup>310<CodeGroup>

307 ```typescript TypeScript hidelines={1,-1} theme={null}311 ```typescript TypeScript hidelines={1,-1} theme={null}

Details

28 Langkah-Langkah Migrasi28 Langkah-Langkah Migrasi

29</h2>29</h2>

30 30 

31<h3 id="for-typescript/javascript-projects">31<span id="for-typescript/javascript-projects" />

32 Untuk Proyek TypeScript/JavaScript32 

33<h3 id="migrate-a-typescript-or-javascript-project">

34 Migrasi proyek TypeScript atau JavaScript

33</h3>35</h3>

34 36 

35**1. Uninstall paket lama:**37**1. Uninstall paket lama:**


64 66 

65Buat perubahan kode apa pun yang diperlukan untuk menyelesaikan migrasi.67Buat perubahan kode apa pun yang diperlukan untuk menyelesaikan migrasi.

66 68 

67<h3 id="for-python-projects">69<span id="for-python-projects" />

68 Untuk Proyek Python70 

71<h3 id="migrate-a-python-project">

72 Migrasi proyek Python

69</h3>73</h3>

70 74 

71**1. Uninstall paket lama:**75**1. Uninstall paket lama:**

Details

146| `auto` | Persetujuan yang diklasifikasikan model | Pengklasifikasi model meninjau tindakan seperti perintah shell dan permintaan jaringan, memungkinkan atau memblokir masing-masing yang ditinjau. Lihat [Mode Auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk ketersediaan dan urutan keputusan |146| `auto` | Persetujuan yang diklasifikasikan model | Pengklasifikasi model meninjau tindakan seperti perintah shell dan permintaan jaringan, memungkinkan atau memblokir masing-masing yang ditinjau. Lihat [Mode Auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk ketersediaan dan urutan keputusan |

147 147 

148<Warning>148<Warning>

149 **Pewarisan subagent:** Subagent berjalan dalam mode izin sesi induk kecuali Anda mengatur `permissionMode` pada [`AgentDefinition`](/docs/id/agent-sdk/typescript#agentdefinition) dan sesi induk berada dalam mode `default`, `dontAsk`, atau `plan`. Bahkan kemudian, Claude Code tidak pernah menerapkan nilai `"bypassPermissions"`. Subagent berjalan dalam mode `bypassPermissions` hanya ketika sesi induk itu sendiri melakukannya. Pengecualian `bypassPermissions` memerlukan Claude Code v2.1.267 atau lebih baru.149 **Pewarisan subagent:** Subagent berjalan dalam mode izin sesi induk kecuali Anda mengatur `permissionMode` pada [`AgentDefinition`](/docs/id/agent-sdk/typescript#agentdefinition) dan sesi induk berada dalam mode `default`, `dontAsk`, atau `plan`. Bahkan kemudian, Claude Code tidak pernah menerapkan nilai `"bypassPermissions"`, dan menerapkan nilai `"auto"` hanya ketika [auto mode tersedia](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk subagent tersebut. Subagent berjalan dalam mode `bypassPermissions` hanya ketika sesi induk itu sendiri melakukannya. Pengecualian `bypassPermissions` memerlukan Claude Code v2.1.267 atau lebih baru.

150 150 

151 Subagent mungkin memiliki prompt sistem yang berbeda dan perilaku yang kurang terbatas daripada agen utama Anda, jadi mewarisi `bypassPermissions` memberi mereka akses sistem penuh dan otonom. [Tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves) masih berlaku.151 Subagent mungkin memiliki prompt sistem yang berbeda dan perilaku yang kurang terbatas daripada agen utama Anda, jadi mewarisi `bypassPermissions` memberi mereka akses sistem penuh dan otonom. [Tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves) masih berlaku.

152</Warning>152</Warning>

Details

928| `resume` | `str \| None` | `None` | ID sesi untuk dilanjutkan |928| `resume` | `str \| None` | `None` | ID sesi untuk dilanjutkan |

929| `session_id` | `str \| None` | `None` | Gunakan ID sesi tertentu alih-alih yang dibuat otomatis. Harus UUID yang valid. Tidak dapat digabungkan dengan `continue_conversation` atau `resume` kecuali `fork_session` juga diatur |929| `session_id` | `str \| None` | `None` | Gunakan ID sesi tertentu alih-alih yang dibuat otomatis. Harus UUID yang valid. Tidak dapat digabungkan dengan `continue_conversation` atau `resume` kecuali `fork_session` juga diatur |

930| `max_turns` | `int \| None` | `None` | Jumlah maksimal giliran agentic (round trip penggunaan tool) |930| `max_turns` | `int \| None` | `None` | Jumlah maksimal giliran agentic (round trip penggunaan tool) |

931| `max_budget_usd` | `float \| None` | `None` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Hanya menghitung pengeluaran panggilan sendiri; total yang dipulihkan dari sesi yang dilanjutkan tidak dihitung. Untuk peringatan akurasi dan perilaku reset, lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) |931| `max_budget_usd` | `float \| None` | `None` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Estimasi dapat melampaui nilai ini, jadi [sisakan ruang](/docs/id/agent-sdk/agent-loop#budget-headroom). Hanya menghitung pengeluaran panggilan sendiri; total yang dipulihkan dari sesi yang dilanjutkan tidak dihitung. Untuk peringatan akurasi dan perilaku reset, lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) |

932| `disallowed_tools` | `list[str]` | `[]` | Tools untuk ditolak. Nama bare seperti `"Bash"` menghapus tool dari konteks Claude. Aturan scoped seperti `"Bash(rm *)"` membiarkan tool tersedia dan menolak panggilan yang cocok di setiap mode izin, termasuk `bypassPermissions`, untuk perintah [seperti yang ditulis](/docs/id/permissions#bash-rule-limits). Lihat [Permissions](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |932| `disallowed_tools` | `list[str]` | `[]` | Tools untuk ditolak. Nama bare seperti `"Bash"` menghapus tool dari konteks Claude. Aturan scoped seperti `"Bash(rm *)"` membiarkan tool tersedia dan menolak panggilan yang cocok di setiap mode izin, termasuk `bypassPermissions`, untuk perintah [seperti yang ditulis](/docs/id/permissions#bash-rule-limits). Lihat [Permissions](/docs/id/agent-sdk/permissions#allow-and-deny-rules) |

933| `enable_file_checkpointing` | `bool` | `False` | Aktifkan pelacakan perubahan file untuk rewinding. Lihat [File checkpointing](/docs/id/agent-sdk/file-checkpointing) |933| `enable_file_checkpointing` | `bool` | `False` | Aktifkan pelacakan perubahan file untuk rewinding. Lihat [File checkpointing](/docs/id/agent-sdk/file-checkpointing) |

934| `model` | `str \| None` | `None` | Alias model Claude atau nama model lengkap. Lihat [nilai yang diterima dan ID khusus penyedia](/docs/id/model-config#available-models) |934| `model` | `str \| None` | `None` | Alias model Claude atau nama model lengkap. Lihat [nilai yang diterima dan ID khusus penyedia](/docs/id/model-config#available-models) |


987```987```

988 988 

989* `API_TIMEOUT_MS`: timeout per-permintaan pada klien Anthropic, dalam milidetik. Default `600000`. Berlaku untuk loop utama dan semua subagent.989* `API_TIMEOUT_MS`: timeout per-permintaan pada klien Anthropic, dalam milidetik. Default `600000`. Berlaku untuk loop utama dan semua subagent.

990* `CLAUDE_CODE_MAX_RETRIES`: maksimal retry API. Default `10`, dibatasi pada `15`. Setiap retry mendapat jendela `API_TIMEOUT_MS` sendiri, jadi waktu dinding terburuk kira-kira `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` ditambah backoff. Untuk run tanpa pengawasan yang perlu menunggu melalui pemadaman yang lebih lama, atur [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/id/errors#tune-retry-behavior): itu mencoba ulang error kapasitas transien tanpa batas dan, pada Claude Code v2.1.199 atau lebih baru, menaikkan default untuk error transien lainnya menjadi `300` dan menghapus batas pada variabel ini.990* `CLAUDE_CODE_MAX_RETRIES`: maksimal retry API. Default `10`, dibatasi pada `15`. Setiap retry mendapat jendela `API_TIMEOUT_MS` sendiri.

991 

992 Untuk run tanpa pengawasan yang perlu menunggu melalui pemadaman yang lebih lama, atur [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/id/errors#tune-retry-behavior): itu mencoba ulang error kapasitas transien tanpa batas dan, pada Claude Code v2.1.199 atau lebih baru, menaikkan default untuk error transien lainnya menjadi `300` dan menghapus batas pada variabel ini.

991* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog stall untuk subagent. Sementara watchdog stream aktif, default adalah `CLAUDE_STREAM_IDLE_TIMEOUT_MS` ditambah 5 menit, yang menjadi `600000` kecuali Anda menaikkan variabel itu. Dengan watchdog stream mati, default adalah `600000`. Sebelum v2.1.257, default selalu `600000`.993* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog stall untuk subagent. Sementara watchdog stream aktif, default adalah `CLAUDE_STREAM_IDLE_TIMEOUT_MS` ditambah 5 menit, yang menjadi `600000` kecuali Anda menaikkan variabel itu. Dengan watchdog stream mati, default adalah `600000`. Sebelum v2.1.257, default selalu `600000`.

992 994 

993 Timer direset pada setiap event stream. Pada stall, Claude Code membatalkan subagent dan melaporkan stall ke parent. Untuk subagent latar belakang, itu juga menandai tugas gagal dan melampirkan hasil parsial apa pun.995 Timer direset pada setiap event stream. Pada stall, Claude Code membatalkan subagent dan melaporkan stall ke parent. Untuk subagent latar belakang, itu juga menandai tugas gagal dan melampirkan hasil parsial apa pun.


3327{3329{

3328 "url": str, # URL untuk mengambil konten dari3330 "url": str, # URL untuk mengambil konten dari

3329 "prompt": str, # Prompt untuk dijalankan pada konten yang diambil3331 "prompt": str, # Prompt untuk dijalankan pada konten yang diambil

3332 "offset": int | None, # Jumlah karakter yang dilewati dari awal halaman. Memerlukan Python Agent SDK 0.2.164 atau lebih baru

3330}3333}

3331```3334```

3332 3335 

Details

323 Deteksi pemanggilan subagent323 Deteksi pemanggilan subagent

324</h2>324</h2>

325 325 

326Claude memanggil subagent melalui tool Agent. Untuk mendeteksi ketika subagent dipanggil, periksa blok `tool_use` di mana `name` adalah `"Agent"`. Pesan dari dalam konteks subagent mencakup field `parent_tool_use_id`.326Claude memanggil subagent melalui tool Agent. Untuk mendeteksi ketika subagent dipanggil, periksa blok `tool_use` di mana `name` adalah `"Agent"`.

327 

328Pesan dari dalam konteks subagent mencakup field `parent_tool_use_id`. Di TypeScript, setiap pesan assistant dan user yang dihasilkan subagent juga membawa [`agent_id`](/docs/id/agent-sdk/typescript#sdkassistantmessage): `task_id` dari [event task](/docs/id/agent-sdk/typescript#sdktaskstartedmessage) subagent tersebut. `agent_id` memerlukan TypeScript Agent SDK v0.3.292 atau yang lebih baru.

327 329 

328<Note>330<Note>

329 Tool muncul sebagai `"Agent"` dalam blok `tool_use` tetapi sebagai `"Task"` dalam daftar tool `system:init`. Sebelum Claude Code v2.1.63, blok `tool_use` juga menamakannya `"Task"`. Untuk menjaga deteksi tetap berfungsi di seluruh versi SDK, cocokkan kedua nilai dalam `block.name`.331 Tool muncul sebagai `"Agent"` dalam blok `tool_use` tetapi sebagai `"Task"` dalam daftar tool `system:init`. Sebelum Claude Code v2.1.63, blok `tool_use` juga menamakannya `"Task"`. Untuk menjaga deteksi tetap berfungsi di seluruh versi SDK, cocokkan kedua nilai dalam `block.name`.


331 333 

332Struktur pesan berbeda antara SDK. Di Python, Anda mengakses blok konten secara langsung melalui `message.content`. Di TypeScript, `SDKAssistantMessage` membungkus pesan API Claude, jadi Anda mengakses konten melalui `message.message.content`.334Struktur pesan berbeda antara SDK. Di Python, Anda mengakses blok konten secara langsung melalui `message.content`. Di TypeScript, `SDKAssistantMessage` membungkus pesan API Claude, jadi Anda mengakses konten melalui `message.message.content`.

333 335 

334Contoh ini melakukan iterasi melalui pesan yang di-stream, mencatat ketika subagent dipanggil dan ketika pesan berikutnya berasal dari dalam konteks eksekusi subagent tersebut.336Contoh ini melakukan iterasi melalui pesan yang di-stream, mencatat ketika subagent dipanggil dan ketika pesan berikutnya berasal dari dalam konteks eksekusi subagent tersebut. Versi TypeScript juga mencatat `agent_id` dari setiap pesan subagent yang membawanya.

335 337 

336<CodeGroup>338<CodeGroup>

337 ```python Python theme={null}339 ```python Python theme={null}


403 // Check if this message is from within a subagent's context405 // Check if this message is from within a subagent's context

404 if (msg.parent_tool_use_id) {406 if (msg.parent_tool_use_id) {

405 console.log(" (running inside subagent)");407 console.log(" (running inside subagent)");

408 // On assistant and user messages, agent_id matches the task_id

409 // on that subagent's task_started and other task events

410 if (msg.agent_id) {

411 console.log(` agent_id: ${msg.agent_id}`);

412 }

406 }413 }

407 414 

408 if ("result" in message) {415 if ("result" in message) {

Details

569| `includePartialMessages` | `boolean` | `false` | Sertakan event pesan parsial |569| `includePartialMessages` | `boolean` | `false` | Sertakan event pesan parsial |

570| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Timeout dalam milidetik untuk setiap panggilan `sessionStore.load()` dan `sessionStore.listSubkeys()` selama materialisasi resume. Jika adapter tidak selesai dalam jendela waktu ini, query gagal alih-alih menggantung. Diabaikan jika `sessionStore` tidak diatur |570| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Timeout dalam milidetik untuk setiap panggilan `sessionStore.load()` dan `sessionStore.listSubkeys()` selama materialisasi resume. Jika adapter tidak selesai dalam jendela waktu ini, query gagal alih-alih menggantung. Diabaikan jika `sessionStore` tidak diatur |

571| `managedSettings` | `Settings` | `undefined` | Pengaturan tingkat kebijakan yang disediakan proses host Anda ke sesi yang di-spawn. Pada mesin dengan pengaturan terkelola yang di-deploy admin, Claude Code mengabaikan pengaturan ini kecuali sumber terkelola dengan prioritas tertinggi milik admin mengatur `parentSettingsBehavior: 'merge'`, dan tidak pernah menggabungkannya selama [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan pengaturan terkelola. Nilai yang digabungkan melewati filter yang hanya bersifat membatasi; [Membatasi pengaturan induk](/docs/id/claude-apps-gateway#restrict-parent-settings) membahas apa yang diloloskan filter dan kunci `allowManaged*Only`. Host yang mengatur [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars) memiliki tiga kunci yang justru dibaca langsung dari payload ini: [konfigurasi model](/docs/id/model-config#restrict-model-selection)-nya pada Claude Code v2.1.222 atau lebih baru, [`modelPricing`](/docs/id/settings-reference#modelpricing) ketika tidak ada sumber terkelola yang mengaturnya pada v2.1.246 atau lebih baru, dan entri env `ENABLE_TOOL_SEARCH`-nya pada v2.1.247 atau lebih baru |571| `managedSettings` | `Settings` | `undefined` | Pengaturan tingkat kebijakan yang disediakan proses host Anda ke sesi yang di-spawn. Pada mesin dengan pengaturan terkelola yang di-deploy admin, Claude Code mengabaikan pengaturan ini kecuali sumber terkelola dengan prioritas tertinggi milik admin mengatur `parentSettingsBehavior: 'merge'`, dan tidak pernah menggabungkannya selama [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan pengaturan terkelola. Nilai yang digabungkan melewati filter yang hanya bersifat membatasi; [Membatasi pengaturan induk](/docs/id/claude-apps-gateway#restrict-parent-settings) membahas apa yang diloloskan filter dan kunci `allowManaged*Only`. Host yang mengatur [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars) memiliki tiga kunci yang justru dibaca langsung dari payload ini: [konfigurasi model](/docs/id/model-config#restrict-model-selection)-nya pada Claude Code v2.1.222 atau lebih baru, [`modelPricing`](/docs/id/settings-reference#modelpricing) ketika tidak ada sumber terkelola yang mengaturnya pada v2.1.246 atau lebih baru, dan entri env `ENABLE_TOOL_SEARCH`-nya pada v2.1.247 atau lebih baru |

572| `maxBudgetUsd` | `number` | `undefined` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Hanya menghitung pengeluaran panggilan itu sendiri; total yang dipulihkan dari sesi yang dilanjutkan tidak dihitung. Untuk catatan akurasi dan perilaku reset, lihat [Melacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking) |572| `maxBudgetUsd` | `number` | `undefined` | Menghentikan query saat estimasi biaya sisi klien mencapai nilai USD ini. Estimasi dapat melewati nilai ini, jadi [sisakan ruang](/docs/id/agent-sdk/agent-loop#budget-headroom). Hanya menghitung pengeluaran panggilan itu sendiri; total yang dipulihkan dari sesi yang dilanjutkan tidak dihitung. Untuk catatan akurasi dan perilaku reset, lihat [Melacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking) |

573| `maxThinkingTokens` | `number` | `undefined` | *Tidak digunakan lagi:* Gunakan `thinking` sebagai gantinya. Token maksimum untuk proses thinking |573| `maxThinkingTokens` | `number` | `undefined` | *Tidak digunakan lagi:* Gunakan `thinking` sebagai gantinya. Token maksimum untuk proses thinking |

574| `maxTurns` | `number` | `undefined` | Giliran agentic maksimum (perjalanan bolak-balik penggunaan tool) |574| `maxTurns` | `number` | `undefined` | Giliran agentic maksimum (perjalanan bolak-balik penggunaan tool) |

575| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Konfigurasi server MCP |575| `mcpServers` | `Record<string, [`McpServerConfig`](#mcpserverconfig)>` | `{}` | Konfigurasi server MCP |


631```631```

632 632 

633* `API_TIMEOUT_MS`: timeout per permintaan pada klien Anthropic, dalam milidetik. Default `600000`. Berlaku untuk loop utama dan semua subagent.633* `API_TIMEOUT_MS`: timeout per permintaan pada klien Anthropic, dalam milidetik. Default `600000`. Berlaku untuk loop utama dan semua subagent.

634* `CLAUDE_CODE_MAX_RETRIES`: jumlah retry API maksimum. Default `10`, dibatasi hingga `15`. Setiap retry mendapat jendela `API_TIMEOUT_MS` sendiri, sehingga waktu total terburuk kira-kira `API_TIMEOUT_MS × (CLAUDE_CODE_MAX_RETRIES + 1)` ditambah backoff. Untuk proses tanpa pengawasan yang perlu menunggu gangguan yang lebih lama, atur [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/id/errors#tune-retry-behavior): opsi ini mencoba ulang error kapasitas sementara tanpa batas dan, pada Claude Code v2.1.199 atau lebih baru, menaikkan default untuk error sementara lainnya menjadi `300` dan menghapus batas pada variabel ini.634* `CLAUDE_CODE_MAX_RETRIES`: jumlah retry API maksimum. Default `10`, dibatasi hingga `15`. Setiap retry mendapatkan jendela `API_TIMEOUT_MS` sendiri.

635 

636 Untuk eksekusi tanpa pengawasan yang perlu menunggu gangguan yang lebih lama, atur [`CLAUDE_CODE_RETRY_WATCHDOG=1`](/docs/id/errors#tune-retry-behavior): opsi ini mencoba ulang error kapasitas sementara tanpa batas dan, pada Claude Code v2.1.199 atau lebih baru, menaikkan default untuk error sementara lainnya menjadi `300` serta menghapus batas pada variabel ini.

635* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog kemacetan untuk subagent. Selama stream watchdog aktif, defaultnya adalah `CLAUDE_STREAM_IDLE_TIMEOUT_MS` ditambah 5 menit, yang berjumlah `600000` kecuali Anda menaikkan variabel tersebut. Dengan stream watchdog nonaktif, defaultnya adalah `600000`. Sebelum v2.1.257, defaultnya selalu `600000`.637* `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`: watchdog kemacetan untuk subagent. Selama stream watchdog aktif, defaultnya adalah `CLAUDE_STREAM_IDLE_TIMEOUT_MS` ditambah 5 menit, yang berjumlah `600000` kecuali Anda menaikkan variabel tersebut. Dengan stream watchdog nonaktif, defaultnya adalah `600000`. Sebelum v2.1.257, defaultnya selalu `600000`.

636 638 

637 Timer di-reset pada setiap event stream. Saat terjadi kemacetan, Claude Code membatalkan subagent dan melaporkan kemacetan tersebut ke induknya. Untuk subagent latar belakang, Claude Code juga menandai tugas sebagai gagal dan melampirkan hasil parsial apa pun.639 Timer di-reset pada setiap event stream. Saat terjadi kemacetan, Claude Code membatalkan subagent dan melaporkan kemacetan tersebut ke induknya. Untuk subagent latar belakang, Claude Code juga menandai tugas sebagai gagal dan melampirkan hasil parsial apa pun.


1557 type: "assistant";1559 type: "assistant";

1558 uuid: UUID;1560 uuid: UUID;

1559 session_id: string;1561 session_id: string;

1560 message: BetaMessage; // Dari Anthropic SDK1562 message: BetaMessage; // From Anthropic SDK

1561 parent_tool_use_id: string | null;1563 parent_tool_use_id: string | null;

1562 error?: SDKAssistantMessageError;1564 error?: SDKAssistantMessageError;

1563 aborted?: true;1565 aborted?: true;

1566 agent_id?: string;

1564 timestamp?: string;1567 timestamp?: string;

1565 context_usage?: SDKContextUsage;1568 context_usage?: SDKContextUsage;

1569 usage_report?: SDKUsageReport;

1566 user_message_uuid?: string;1570 user_message_uuid?: string;

1567 user_message_uuids?: string[];1571 user_message_uuids?: string[];

1568 resume_reason?: string;1572 resume_reason?: string;


1580 1584 

1581`aborted` adalah `true` ketika gangguan atau pembatalan memotong pesan asisten sebelum aliran selesai: pesan tidak memiliki `stop_reason` dan konten mungkin berakhir di tengah kata. Bidang ini tidak ada pada pesan yang diselesaikan secara normal. Ini memerlukan Agent SDK v0.3.214 atau lebih baru.1585`aborted` adalah `true` ketika gangguan atau pembatalan memotong pesan asisten sebelum aliran selesai: pesan tidak memiliki `stop_reason` dan konten mungkin berakhir di tengah kata. Bidang ini tidak ada pada pesan yang diselesaikan secara normal. Ini memerlukan Agent SDK v0.3.214 atau lebih baru.

1582 1586 

1587`agent_id` mengidentifikasi subagent yang menghasilkan pesan dan tidak ada pada pesan thread utama. Nilainya sama dengan `task_id` pada [`task_started`](#sdktaskstartedmessage) dan event tugas lainnya dari subagent tersebut, dan tidak berubah ketika subagent [dilanjutkan](/docs/id/agent-sdk/subagents#resume-subagents). Field ini memerlukan Agent SDK v0.3.292 atau yang lebih baru.

1588 

1589Cocokkan pesan subagent dengan event tugasnya berdasarkan `agent_id` alih-alih memasangkan `parent_tool_use_id` sebuah pesan dengan `tool_use_id` sebuah event tugas. Ketika sebuah panggilan tool melanjutkan subagent, event tugas membawa `tool_use_id` dari panggilan tersebut, sedangkan pesan tetap membawa `parent_tool_use_id` dari panggilan tool yang pertama kali memulai subagent, sehingga keduanya tidak lagi cocok.

1590 

1583Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada pesan asisten pertama giliran, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid). Ketika Claude Code menjalankan kembali giliran yang terinterupsi oleh restart, pesan asisten re-run yang membawa bidang itu juga membawa [`resume_reason`](#resume_reason).1591Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada pesan asisten pertama giliran, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid). Ketika Claude Code menjalankan kembali giliran yang terinterupsi oleh restart, pesan asisten re-run yang membawa bidang itu juga membawa [`resume_reason`](#resume_reason).

1584 1592 

1585`timestamp` adalah waktu ISO 8601 ketika konten pesan selesai dihasilkan pada proses yang menghasilkannya. Nilai berasal dari jam mesin itu, jadi gunakan hanya untuk tampilan dan jangan urutkan pesan berdasarkannya. Satu giliran API dapat menghasilkan beberapa pesan asisten yang berbagi `message.id`, masing-masing dengan `timestamp` sendiri. Ketika bidang tidak ada, kembali ke waktu Anda menerima pesan.1593`timestamp` adalah waktu ISO 8601 ketika konten pesan selesai dihasilkan pada proses yang menghasilkannya. Nilai berasal dari jam mesin itu, jadi gunakan hanya untuk tampilan dan jangan urutkan pesan berdasarkannya. Satu giliran API dapat menghasilkan beberapa pesan asisten yang berbagi `message.id`, masing-masing dengan `timestamp` sendiri. Ketika bidang tidak ada, kembali ke waktu Anda menerima pesan.

1586 1594 

1587`context_usage` adalah salinan terstruktur dari laporan `/context`, diketik sebagai [`SDKContextUsage`](#sdkcontextusage), dan memerlukan Agent SDK v0.3.232 atau lebih baru. Ketika Anda mengirim `/context` sebagai prompt, Claude Code mengirimkan laporan sebagai pesan asisten yang `message.content`-nya menyimpan tabel markdown, dan melampirkan `context_usage` ke pesan yang sama. Claude Code tidak menetapkan bidang pada pesan asisten lain mana pun, dan versi sebelumnya mengirimkan tabel `/context` tanpanya, jadi baca rincian dari bidang ketika ada dan kembali ke teks markdown ketika tidak.1595`context_usage` adalah salinan terstruktur dari laporan `/context`, diketik sebagai [`SDKContextUsage`](#sdkcontextusage), dan memerlukan Agent SDK v0.3.232 atau lebih baru. Ketika Anda mengirim `/context` sebagai prompt, Claude Code mengirimkan laporan sebagai pesan asisten yang `message.content`-nya menyimpan tabel markdown, dan melampirkan `context_usage` ke pesan yang sama. Claude Code tidak menetapkan bidang pada pesan asisten lain mana pun, dan versi sebelumnya mengirimkan tabel `/context` tanpanya, jadi baca rincian dari bidang ketika ada dan kembali ke teks markdown ketika tidak.

1588 1596 

1597`usage_report` adalah salinan terstruktur dari laporan `/usage`, bertipe [`SDKUsageReport`](#sdkusagereport), dan memerlukan Agent SDK v0.3.273 atau yang lebih baru. Ketika Anda mengirim `/usage` sebagai prompt, Claude Code mengirimkan laporan sebagai pesan asisten yang `message.content`-nya berisi teks tersebut. Claude Code melampirkan `usage_report` pada pesan yang sama hanya ketika sesi memenuhi semua kondisi berikut:

1598 

1599* Sesi melakukan autentikasi dengan kredensial claude.ai

1600* Kredensial menunjukkan tipe paket yang dikenal atau membawa scope `user:profile`

1601* Akun tidak menggunakan penagihan berbasis penggunaan

1602 

1603Token `claude setup-token` yang diteruskan sebagai `CLAUDE_CODE_OAUTH_TOKEN` secara default tidak memenuhi syarat, karena hanya membawa scope `user:inference`. Sesi lain, seperti sesi dengan kunci API, mengirimkan teks tanpa field ini, begitu pula versi sebelumnya. Baca laporan dari field ini ketika ada dan gunakan teks sebagai gantinya ketika tidak ada.

1604 

1589<h3 id="sdkusermessage">1605<h3 id="sdkusermessage">

1590 `SDKUserMessage`1606 `SDKUserMessage`

1591</h3>1607</h3>


1597 type: "user";1613 type: "user";

1598 uuid?: UUID;1614 uuid?: UUID;

1599 session_id?: string;1615 session_id?: string;

1616 agent_id?: string;

1600 message: MessageParam; // From Anthropic SDK1617 message: MessageParam; // From Anthropic SDK

1601 pasted_content?: MessageParam["content"][];1618 pasted_content?: MessageParam["content"][];

1602 parent_tool_use_id: string | null;1619 parent_tool_use_id: string | null;


1636};1653};

1637```1654```

1638 1655 

1656Pesan pengguna yang dihasilkan subagent, seperti `tool_result` untuk salah satu panggilan tool-nya sendiri, membawa `agent_id`. Lihat [`SDKAssistantMessage`](#sdkassistantmessage), yang mendefinisikan field tersebut dan persyaratan versinya.

1657 

1639Pada pesan yang membawa blok `tool_result`, `tool_use_result` adalah objek output terstruktur dari tool, bukan teks yang dikirim ke model. Bentuknya bergantung pada tool yang disebutkan oleh blok `tool_use` yang sesuai, sehingga field ini bertipe `unknown`; bentuk bawaan tercantum di [Tool Output Types](#tool-output-types). Hasil-hasil berikut memerlukan penanganan di luar bentuk yang tercantum:1658Pada pesan yang membawa blok `tool_result`, `tool_use_result` adalah objek output terstruktur dari tool, bukan teks yang dikirim ke model. Bentuknya bergantung pada tool yang disebutkan oleh blok `tool_use` yang sesuai, sehingga field ini bertipe `unknown`; bentuk bawaan tercantum di [Tool Output Types](#tool-output-types). Hasil-hasil berikut memerlukan penanganan di luar bentuk yang tercantum:

1640 1659 

1641* Tool `Agent`: `tool_use_result` adalah [`AgentOutput`](#agent-2). Render dari objek ini alih-alih mengurai teks `tool_result`. `content` dari hasil `completed` berisi laporan subagent, atau, untuk subagent yang laporannya melalui panggilan tool `SubagentHandback`, catatan singkat tentang penyerahan tersebut sebagai pengganti laporan. Dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) pada Claude Code v2.1.271 atau lebih baru, setiap subagent yang menghasilkan hasil `completed` melapor dengan cara tersebut kecuali jika merupakan [fork](/docs/id/sub-agents#fork-the-current-conversation), dan Claude menerima laporan sebagai pesan terpisah dari subagent.1660* Tool `Agent`: `tool_use_result` adalah [`AgentOutput`](#agent-2). Render dari objek ini alih-alih mengurai teks `tool_result`. `content` dari hasil `completed` berisi laporan subagent, atau, untuk subagent yang laporannya melalui panggilan tool `SubagentHandback`, catatan singkat tentang penyerahan tersebut sebagai pengganti laporan. Dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) pada Claude Code v2.1.271 atau lebih baru, setiap subagent yang menghasilkan hasil `completed` melapor dengan cara tersebut kecuali jika merupakan [fork](/docs/id/sub-agents#fork-the-current-conversation), dan Claude menerima laporan sebagai pesan terpisah dari subagent.


1992 `SDKPartialAssistantMessage`2011 `SDKPartialAssistantMessage`

1993</h3>2012</h3>

1994 2013 

1995Pesan parsial streaming (hanya ketika `includePartialMessages` adalah true). Bidang `parent_tool_use_id` selalu `null`: acara aliran dipancarkan untuk sesi utama saja. Untuk atribusi subagent, gunakan pesan lengkap, yang membawa `parent_tool_use_id`, atau aktifkan [`forwardSubagentText`](#options) untuk menerima teks dan thinking subagent sebagai pesan lengkap.2014Pesan parsial streaming (hanya ketika `includePartialMessages` bernilai true).

2015 

2016Field `parent_tool_use_id` selalu `null`: event stream hanya dikeluarkan untuk sesi utama. Untuk atribusi subagent, gunakan pesan lengkap, yang membawa [`agent_id`](#sdkassistantmessage) dan `parent_tool_use_id`, atau aktifkan [`forwardSubagentText`](#options) untuk menerima teks dan thinking subagent sebagai pesan lengkap.

1996 2017 

1997```typescript theme={null}2018```typescript theme={null}

1998type SDKPartialAssistantMessage = {2019type SDKPartialAssistantMessage = {


2229* `buffer`: cadangan compaction2250* `buffer`: cadangan compaction

2230* `deferred`: skema tool yang Claude Code tahan di luar jendela dan kecualikan dari perhitungan penggunaan, dicantumkan sebagai informasi2251* `deferred`: skema tool yang Claude Code tahan di luar jendela dan kecualikan dari perhitungan penggunaan, dicantumkan sebagai informasi

2231 2252 

2253<h3 id="sdkusagereport">

2254 `SDKUsageReport`

2255</h3>

2256 

2257Bentuk terstruktur dari laporan `/usage`, dibawa sebagai `usage_report` pada [`SDKAssistantMessage`](#sdkassistantmessage) yang mengirimkan hasil `/usage`. Agent SDK v0.3.273 dan yang lebih baru mengekspor tipe ini. Tipe ini bersifat eksperimental: bentuknya dapat berubah.

2258 

2259```typescript theme={null}

2260type SDKUsageReport = {

2261 session: {

2262 total_cost_usd: number;

2263 total_api_duration_ms: number;

2264 total_duration_ms: number;

2265 total_lines_added: number;

2266 total_lines_removed: number;

2267 model_usage: { [modelName: string]: ModelUsage };

2268 };

2269 rate_limits: {

2270 limits:

2271 | {

2272 kind: string;

2273 group: string;

2274 percent: number;

2275 resets_at: string | null;

2276 scope?: {

2277 model?: { display_name: string } | null;

2278 surface?: { display_name: string } | null;

2279 } | null;

2280 severity: string;

2281 is_active: boolean;

2282 }[]

2283 | null;

2284 extra_usage?: {

2285 is_enabled: boolean;

2286 monthly_limit: number | null;

2287 used_credits: number | null;

2288 utilization: number | null;

2289 currency?: string | null;

2290 } | null;

2291 } | null;

2292};

2293```

2294 

2295Field tingkat atas adalah `session` dan `rate_limits`:

2296 

2297* `session`: total biaya dan penggunaan berjalan Claude Code, dibaca dari buku besar yang sama dengan `total_cost_usd` dan `modelUsage` pada [`SDKResultMessage`](#sdkresultmessage). Setiap entri `model_usage` adalah [`ModelUsage`](#modelusage).

2298* `rate_limits`: baris penggunaan paket dalam `limits` dan pengeluaran kredit penggunaan dalam `extra_usage`. Bernilai `null` ketika Claude Code tidak dapat memperoleh penggunaan paket, misalnya ketika token OAuth sesi tidak memiliki scope `user:profile`.

2299 

2300Claude Code menghitung `session.total_cost_usd` secara lokal dari jumlah token, sehingga nilainya adalah estimasi dan bukan yang ditagihkan paket Anda. Pengeluaran kredit penggunaan yang dilaporkan server adalah blok `extra_usage` yang terpisah. Lihat [Melacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking) untuk catatan tentang akurasi.

2301 

2302`limits` berisi baris penggunaan server sebagaimana dikirim server: meter mana yang berlaku, cakupannya, label, tingkat keparahan, dan urutannya ditentukan server, jadi render baris apa adanya.

2303 

2304* Array kosong berarti server tidak melaporkan meter apa pun.

2305* `null` berarti Claude Code tidak memiliki baris untuk dilaporkan.

2306 

2307Setiap baris `limits` menjelaskan satu meter penggunaan:

2308 

2309| Field | Tipe | Deskripsi |

2310| - | - | - |

2311| `kind` | `string` | Jenis meter server, seperti `session`, `weekly_all`, atau `weekly_scoped`. Klasifikasikan baris berdasarkan ini, jangan berdasarkan label |

2312| `group` | `string` | Grup baris server, seperti `session` atau `weekly`. Baris dirender dikelompokkan di bawahnya, dalam urutan server |

2313| `percent` | `number` | Porsi window yang digunakan, 0-100 |

2314| `resets_at` | `string \| null` | Timestamp ISO 8601 saat window di-reset |

2315| `scope` | `object \| null` | Opsional. Untuk apa baris yang dibatasi cakupannya, sebuah model atau surface, dengan label tampilan server |

2316| `severity` | `string` | Pembacaan server atas baris tersebut untuk warna meter, seperti `normal`, `warning`, atau `critical` |

2317| `is_active` | `boolean` | `true` pada baris yang dipilih server untuk ditampilkan oleh indikator bernilai tunggal |

2318 

2319Sebelum Agent SDK v0.3.277, tipe ini mendeklarasikan `severity` dan `is_active` sebagai opsional dan nullable, dan sebuah baris dapat tiba tanpa keduanya.

2320 

2321`extra_usage` adalah pengeluaran dan batas [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) untuk periode penagihan sebagaimana dilaporkan server, ada ketika paket memiliki kredit penggunaan. Jumlah dinyatakan dalam satuan kecil dari `currency`, sen untuk USD.

2322 

2323* `monthly_limit` bernilai `null` ketika akun ini tidak memiliki batas pengeluaran sendiri. Pada paket Team dan Enterprise, jangan render `null` sebagai tidak terbatas.

2324* `is_enabled` bernilai `false` selama kredit penggunaan tidak dapat membayar permintaan.

2325 

2232<h3 id="sdkmessageorigin">2326<h3 id="sdkmessageorigin">

2233 `SDKMessageOrigin`2327 `SDKMessageOrigin`

2234</h3>2328</h3>


3418type WebFetchInput = {3512type WebFetchInput = {

3419 url: string;3513 url: string;

3420 prompt: string;3514 prompt: string;

3515 offset?: number;

3421};3516};

3422```3517```

3423 3518 

3424Mengambil konten dari URL dan memprosesnya dengan model AI.3519Mengambil konten dari URL dan memprosesnya dengan model AI.

3425 3520 

3521`offset` adalah jumlah karakter yang dilewati dari awal halaman. Claude mengaturnya untuk melanjutkan membaca halaman yang panjang. Bidang ini memerlukan Agent SDK v0.3.290 atau lebih baru.

3522 

3426<h3 id="websearch">3523<h3 id="websearch">

3427 WebSearch3524 WebSearch

3428</h3>3525</h3>


5605 task_id: string;5702 task_id: string;

5606 tool_use_id?: string;5703 tool_use_id?: string;

5607 status: "completed" | "failed" | "stopped";5704 status: "completed" | "failed" | "stopped";

5705 reason?: "worker_restart";

5608 output_file: string;5706 output_file: string;

5609 summary: string;5707 summary: string;

5610 ambient?: boolean;5708 ambient?: boolean;


5619};5717};

5620```5718```

5621 5719 

5720`reason` ditetapkan ketika tugas berakhir karena penyebab selain penyelesaian, kegagalan, atau penghentiannya sendiri, dan memerlukan Agent SDK v0.3.273 atau lebih baru. Claude Code menetapkannya hanya dalam sesi yang terhubung melalui claude.ai: sesi cloud, termasuk yang berjalan pada runner yang di-host sendiri, dan sesi Remote Control. Panggilan `query()` lokal tidak pernah menetapkannya. Satu-satunya nilainya, `worker_restart`, berarti proses Claude Code yang menjalankan tugas tersebut dimulai ulang. Notifikasi membawa status `"stopped"`, jadi perlakukan tugas tersebut sebagai tidak selesai maupun gagal.

5721 

5622Ketika Claude Code [memindahkan panggilan tool MCP yang panjang ke latar belakang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls), blok `tool_result` untuk panggilan itu hanya berisi placeholder dan hasil nyata panggilan tiba dalam notifikasi ini. Cocokkan notifikasi dengan panggilan menggunakan `tool_use_id`. Pada notifikasi `completed`, `resource_links` mencantumkan file yang dikembalikan tool melalui referensi sebagai entri [`SDKMcpResourceLink`](#sdkmcpresourcelink), dengan batas 50 link dan 64 KiB yang sama seperti [`tool_use_result.resourceLinks`](#sdkusermessage). Claude Code menghilangkan `resource_links` ketika hasil tidak memiliki link dan pada notifikasi untuk tugas yang bukan panggilan tool MCP. `resource_links` memerlukan Agent SDK v0.3.257 atau lebih baru.5722Ketika Claude Code [memindahkan panggilan tool MCP yang panjang ke latar belakang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls), blok `tool_result` untuk panggilan itu hanya berisi placeholder dan hasil nyata panggilan tiba dalam notifikasi ini. Cocokkan notifikasi dengan panggilan menggunakan `tool_use_id`. Pada notifikasi `completed`, `resource_links` mencantumkan file yang dikembalikan tool melalui referensi sebagai entri [`SDKMcpResourceLink`](#sdkmcpresourcelink), dengan batas 50 link dan 64 KiB yang sama seperti [`tool_use_result.resourceLinks`](#sdkusermessage). Claude Code menghilangkan `resource_links` ketika hasil tidak memiliki link dan pada notifikasi untuk tugas yang bukan panggilan tool MCP. `resource_links` memerlukan Agent SDK v0.3.257 atau lebih baru.

5623 5723 

5624Claude Code menambahkan pemberitahuan di awal setiap notifikasi tugas yang dikirimnya ke model, kecuali pengiriman yang ditandai dengan [subkind `scheduled-trigger`](#task-notification-subkinds), yang membawa framing tugas yang ditugaskan sebagai gantinya. Pemberitahuan tersebut menyatakan bahwa tidak ada input manusia yang terjadi, sehingga model tidak memperlakukan notifikasi sebagai instruksi atau persetujuan pengguna.5724Claude Code menambahkan pemberitahuan di awal setiap notifikasi tugas yang dikirimnya ke model, kecuali pengiriman yang ditandai dengan [subkind `scheduled-trigger`](#task-notification-subkinds), yang membawa framing tugas yang ditugaskan sebagai gantinya. Pemberitahuan tersebut menyatakan bahwa tidak ada input manusia yang terjadi, sehingga model tidak memperlakukan notifikasi sebagai instruksi atau persetujuan pengguna.


5777 task_type?: string;5877 task_type?: string;

5778 is_backgrounded?: boolean;5878 is_backgrounded?: boolean;

5779 spawn_depth?: number;5879 spawn_depth?: number;

5880 parent_task_id?: string;

5780 ambient?: boolean;5881 ambient?: boolean;

5781 uuid: UUID;5882 uuid: UUID;

5782 session_id: string;5883 session_id: string;


5794 5895 

5795[Subagent yang dilanjutkan](/docs/id/agent-sdk/subagents#resume-subagents) selalu melaporkan `is_backgrounded: true`, karena Claude Code menjalankan setiap subagent yang dilanjutkan di latar belakang. Ketika tugas foreground kemudian pindah ke latar belakang, Claude Code melaporkan nilai `is_backgrounded` yang baru dalam pesan [`task_updated`](#sdktaskupdatedmessage) alih-alih mengirimkan `task_started` kedua.5896[Subagent yang dilanjutkan](/docs/id/agent-sdk/subagents#resume-subagents) selalu melaporkan `is_backgrounded: true`, karena Claude Code menjalankan setiap subagent yang dilanjutkan di latar belakang. Ketika tugas foreground kemudian pindah ke latar belakang, Claude Code melaporkan nilai `is_backgrounded` yang baru dalam pesan [`task_updated`](#sdktaskupdatedmessage) alih-alih mengirimkan `task_started` kedua.

5796 5897 

5898`parent_task_id` menyimpan `task_id` dari subagent yang meluncurkan tugas ini. Gunakan untuk mengelompokkan setiap tugas di bawah subagent yang memulainya. Claude Code menetapkannya pada tugas subagent, Bash, dan [Monitor](#monitor). Field ini memerlukan Agent SDK v0.3.292 atau lebih baru. Field ini tidak ada ketika:

5899 

5900* Thread utama meluncurkan tugas

5901* Claude Code tidak lagi melacak tugas parent

5902* [Rekan tim](/docs/id/agent-teams) atau agent di dalam workflow meluncurkan tugas

5903 

5904Parent dapat berupa tugas foreground atau tugas yang sudah berakhir, jadi perlakukan ID yang tidak Anda kenali sebagai tidak memiliki parent.

5905 

5797<h3 id="sdktaskprogressmessage">5906<h3 id="sdktaskprogressmessage">

5798 `SDKTaskProgressMessage`5907 `SDKTaskProgressMessage`

5799</h3>5908</h3>


5850 `SDKBackgroundTasksChangedMessage`5959 `SDKBackgroundTasksChangedMessage`

5851</h3>5960</h3>

5852 5961 

5853Dipancarkan setiap kali set tugas latar belakang yang aktif berubah: tugas dimulai, selesai, dihentikan paksa, agent foreground dipindahkan ke latar belakang, atau field `description` atau `ambient` suatu tugas berubah.5962Dipancarkan setiap kali set tugas latar belakang yang aktif berubah: tugas dimulai, selesai, atau dihentikan paksa; agent foreground dipindahkan ke latar belakang; atau field `description`, `ambient`, atau `parent_task_id` suatu tugas berubah. Untuk field `parent_task_id` pada setiap entri, lihat [`SDKTaskStartedMessage`](#sdktaskstartedmessage), yang mendefinisikannya beserta persyaratan versinya.

5854 5963 

5855Array `tasks` adalah set aktif lengkap. Ganti set yang di-cache dengan setiap payload alih-alih memasangkan event `task_started` dan `task_notification`, sehingga perubahan keanggotaan berikutnya memperbaiki event apa pun yang Anda lewatkan.5964Array `tasks` adalah set aktif lengkap. Ganti set yang di-cache dengan setiap payload alih-alih memasangkan event `task_started` dan `task_notification`, sehingga perubahan keanggotaan berikutnya memperbaiki event apa pun yang Anda lewatkan.

5856 5965 

5857Urutan relatif terhadap event per-tugas tersebut tidak ditentukan, jadi jangan mengorelasikan kedua stream tersebut.5966Ketika tugas berakhir, [`task_updated`](#sdktaskupdatedmessage) dan [`task_notification`](#sdktasknotificationmessage)-nya tiba sebelum `background_tasks_changed` yang menghapusnya dari daftar. Di luar itu, urutan relatif terhadap event per-tugas tidak ditentukan.

5858 5967 

5859Tidak ada yang dipancarkan saat startup. Atur ulang ke set kosong setiap kali proses CLI sesi dimulai atau dimulai ulang dan biarkan perubahan keanggotaan berikutnya mengisinya kembali.5968Tidak ada yang dipancarkan saat startup. Atur ulang ke set kosong setiap kali proses CLI sesi dimulai atau dimulai ulang dan biarkan perubahan keanggotaan berikutnya mengisinya kembali.

5860 5969 


5871 task_type: string;5980 task_type: string;

5872 subagent_type?: string;5981 subagent_type?: string;

5873 description: string;5982 description: string;

5983 parent_task_id?: string;

5874 ambient?: boolean;5984 ambient?: boolean;

5875 }[];5985 }[];

5876 uuid: UUID;5986 uuid: UUID;

Details

36 ```36 ```

37 37 

38 ```typescript TypeScript theme={null}38 ```typescript TypeScript theme={null}

39 async function handleToolRequest(toolName, input, options) {39 import type { CanUseTool } from "@anthropic-ai/claude-agent-sdk";

40 

41 const handleToolRequest: CanUseTool = async (toolName, input, options) => {

40 // options includes { signal: AbortSignal, suggestions?: PermissionUpdate[] }42 // options includes { signal: AbortSignal, suggestions?: PermissionUpdate[] }

41 // Minta pengguna dan kembalikan izin atau tolak43 // Minta pengguna di sini, lalu kembalikan allow atau deny

42 }44 return { behavior: "deny", message: "User declined" };

45 };

43 46 

44 const options = { canUseTool: handleToolRequest };47 const options = { canUseTool: handleToolRequest };

45 ```48 ```


437 for await (const message of query({440 for await (const message of query({

438 prompt: "Analyze this codebase",441 prompt: "Analyze this codebase",

439 options: {442 options: {

440 // Sertakan AskUserQuestion dalam daftar alat Anda443 // Sertakan AskUserQuestion dalam daftar tool Anda

441 tools: ["Read", "Glob", "Grep", "AskUserQuestion"],444 tools: ["Read", "Glob", "Grep", "AskUserQuestion"],

442 canUseTool: async (toolName, input) => {445 canUseTool: async (toolName, input) => {

443 // Tangani pertanyaan klarifikasi di sini446 // Placeholder yang menyetujui setiap panggilan. Langkah Deteksi AskUserQuestion menggantikannya.

447 return { behavior: "allow", updatedInput: input };

444 }448 }

445 }449 }

446 })) {450 })) {


763 767 

764 ```typescript TypeScript theme={null}768 ```typescript TypeScript theme={null}

765 import { query } from "@anthropic-ai/claude-agent-sdk";769 import { query } from "@anthropic-ai/claude-agent-sdk";

770 import type { PermissionResult } from "@anthropic-ai/claude-agent-sdk";

766 import * as readline from "readline/promises";771 import * as readline from "readline/promises";

767 772 

768 // Helper untuk meminta input pengguna di terminal773 // Helper untuk meminta input pengguna di terminal


783 }788 }

784 789 

785 // Tampilkan pertanyaan Claude dan kumpulkan jawaban pengguna790 // Tampilkan pertanyaan Claude dan kumpulkan jawaban pengguna

786 async function handleAskUserQuestion(input: any) {791 async function handleAskUserQuestion(input: any): Promise<PermissionResult> {

787 const answers: Record<string, string> = {};792 const answers: Record<string, string> = {};

788 793 

789 for (const q of input.questions) {794 for (const q of input.questions) {


819 if (toolName === "AskUserQuestion") {824 if (toolName === "AskUserQuestion") {

820 return handleAskUserQuestion(input);825 return handleAskUserQuestion(input);

821 }826 }

822 // Setujui secara otomatis alat lain untuk contoh ini827 // Setujui secara otomatis tool lain untuk contoh ini

823 return { behavior: "allow", updatedInput: input };828 return { behavior: "allow", updatedInput: input };

824 }829 }

825 }830 }

agent-view.md +21 −12

Details

391 391 

392Anda dapat mengirim sesi latar belakang baru dari agent view, mengirim atau menyalin sesi interaktif yang ada ke latar belakang, atau memulai satu langsung dari shell.392Anda dapat mengirim sesi latar belakang baru dari agent view, mengirim atau menyalin sesi interaktif yang ada ke latar belakang, atau memulai satu langsung dari shell.

393 393 

394<h3 id="from-agent-view">394<span id="from-agent-view" />

395 From agent view395 

396<h3 id="dispatch-an-agent-from-agent-view">

397 Dispatch an agent from agent view

396</h3>398</h3>

397 399 

398Ketik prompt dalam input di bagian bawah agent view dan tekan `Enter` untuk memulai sesi latar belakang baru. Sesi diberi nama secara otomatis dari prompt; ubah nama nanti dengan `Ctrl+R`.400Ketik prompt dalam input di bagian bawah agent view dan tekan `Enter` untuk memulai sesi latar belakang baru. Sesi diberi nama secara otomatis dari prompt; ubah nama nanti dengan `Ctrl+R`.


446 448 

447Ketika agent view dikelompokkan berdasarkan direktori, pengiriman mengirim prompt ke direktori baris yang dipilih, sehingga Anda dapat memilih grup dan mengirim ke dalamnya tanpa mengetik ulang jalur.449Ketika agent view dikelompokkan berdasarkan direktori, pengiriman mengirim prompt ke direktori baris yang dipilih, sehingga Anda dapat memilih grup dan mengirim ke dalamnya tanpa mengetik ulang jalur.

448 450 

449<h3 id="from-inside-a-session">451<span id="from-inside-a-session" />

450 From inside a session452 

453<h3 id="send-or-copy-a-session-to-the-background">

454 Send or copy a session to the background

451</h3>455</h3>

452 456 

453Dua perintah memindahkan pekerjaan dari sesi tempat Anda berada ke latar belakang: `/background` mengirim percakapan saat ini ke sana dan membebaskan terminal Anda, dan `/fork` mengirim salinan sementara Anda terus bekerja di tempat Anda berada.457Dua perintah memindahkan pekerjaan dari sesi tempat Anda berada ke latar belakang: `/background` mengirim percakapan saat ini ke sana dan membebaskan terminal Anda, dan `/fork` mengirim salinan sementara Anda terus bekerja di tempat Anda berada.


511 515 

512Direktori yang Anda tambahkan selama sesi dengan [`/add-dir`](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) juga terbawa. Membawa `--allow-dangerously-skip-permissions` membuat `bypassPermissions` tetap dapat dijangkau dalam sesi yang di-background, tetapi tidak memberikan apa pun yang baru: mode tersebut tetap memerlukan penerimaan interaktif satu kali yang dijelaskan dalam [Permission mode, model, and effort](#permission-mode-model-and-effort).516Direktori yang Anda tambahkan selama sesi dengan [`/add-dir`](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) juga terbawa. Membawa `--allow-dangerously-skip-permissions` membuat `bypassPermissions` tetap dapat dijangkau dalam sesi yang di-background, tetapi tidak memberikan apa pun yang baru: mode tersebut tetap memerlukan penerimaan interaktif satu kali yang dijelaskan dalam [Permission mode, model, and effort](#permission-mode-model-and-effort).

513 517 

514<h3 id="from-your-shell">518<span id="from-your-shell" />

515 From your shell519 

520<h3 id="dispatch-an-agent-from-your-shell">

521 Dispatch an agent from your shell

516</h3>522</h3>

517 523 

518Berikan `--bg` atau bentuk panjangnya `--background` untuk memulai sesi yang langsung masuk ke latar belakang:524Berikan `--bg` atau bentuk panjangnya `--background` untuk memulai sesi yang langsung masuk ke latar belakang:


603 609 

604Di luar repositori git, sesi menulis ke direktori kerja secara langsung dan tidak terisolasi satu sama lain, jadi hindari mengirim sesi paralel yang mengedit file yang sama. Jika Anda menggunakan sistem kontrol versi yang berbeda, konfigurasikan [`WorktreeCreate` hook](/docs/id/worktrees#non-git-version-control) dan Claude mengisolasi edit dengan cara yang sama seperti untuk git.610Di luar repositori git, sesi menulis ke direktori kerja secara langsung dan tidak terisolasi satu sama lain, jadi hindari mengirim sesi paralel yang mengedit file yang sama. Jika Anda menggunakan sistem kontrol versi yang berbeda, konfigurasikan [`WorktreeCreate` hook](/docs/id/worktrees#non-git-version-control) dan Claude mengisolasi edit dengan cara yang sama seperti untuk git.

605 611 

606Ketika hook gagal di direktori yang bukan repositori git, Claude melewati isolasi untuk direktori itu dan mengedit direktori kerja di tempat. Di dalam repositori git, sesi yang dipindahkan Claude ke worktree sebelum mengedit tidak dapat mengedit file di checkout bersama sampai perpindahan itu terjadi.612Ketika hook gagal di direktori yang bukan repositori git, Claude melewati isolasi untuk direktori itu dan mengedit direktori kerja di tempat. Di dalam repositori git, sesi yang dipindahkan Claude ke worktree sebelum mengedit tidak dapat menggunakan tool `Edit`, `Write`, atau `NotebookEdit` pada checkout bersama sampai perpindahan itu terjadi.

607 613 

608Untuk menemukan jalur worktree sesi, lampirkan dan periksa direktori kerjanya.614Untuk menemukan jalur worktree sesi, lampirkan dan periksa direktori kerjanya.

609 615 


825| `claude daemon logs` | Ikuti file log supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), dengan mencetak baris baru saat baris tersebut masuk hingga Anda menekan `Ctrl+C` |831| `claude daemon logs` | Ikuti file log supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), dengan mencetak baris baru saat baris tersebut masuk hingga Anda menekan `Ctrl+C` |

826| `claude daemon stop --any` | Hentikan proses supervisor dan sesi latar belakang yang dihosting. Lewatkan `--keep-workers` untuk membiarkan sesi latar belakang tetap berjalan sehingga supervisor berikutnya dapat terhubung kembali ke sesi tersebut. `claude agents` atau `claude --bg` berikutnya memulai supervisor baru |832| `claude daemon stop --any` | Hentikan proses supervisor dan sesi latar belakang yang dihosting. Lewatkan `--keep-workers` untuk membiarkan sesi latar belakang tetap berjalan sehingga supervisor berikutnya dapat terhubung kembali ke sesi tersebut. `claude agents` atau `claude --bg` berikutnya memulai supervisor baru |

827 833 

828`claude attach` dan `claude logs` dapat menerima sebagian nama sesi yang sedang berjalan sebagai pengganti ID, seperti dalam `claude logs "auth refactor"`. Meneruskan nama memerlukan Claude Code v2.1.290 atau lebih baru.834`claude attach` dan `claude logs` dapat menerima sebagian nama sesi sebagai pengganti ID, seperti dalam `claude logs "auth refactor"`. Meneruskan nama memerlukan Claude Code v2.1.290 atau lebih baru.

829 835 

830<h3 id="list-sessions-as-json">836<h3 id="list-sessions-as-json">

831 Daftar sesi sebagai JSON837 Daftar sesi sebagai JSON


979 Membuka sesi mengatakan tidak memiliki transkrip yang disimpan985 Membuka sesi mengatakan tidak memiliki transkrip yang disimpan

980</h3>986</h3>

981 987 

982Sesi yang dihentikan yang [dilepaskan dari percakapan lain](#from-inside-a-session) dan dihentikan sebelum respons pertamanya selesai tidak memiliki apa pun untuk dilanjutkan: sampai respons pertama itu selesai, percakapan masih hidup hanya dalam sesi yang dilepaskan darinya. `claude attach` menolak untuk membukanya dengan `This session has no saved transcript`.988Saat Anda membuka sesi yang Anda [lepaskan dari percakapan lain](#from-inside-a-session) dan yang berhenti sebelum menjalankan gilirannya sendiri, Claude Code melanjutkan percakapan tersebut. Jika Claude Code tidak dapat menemukan percakapan tersebut, Claude Code menolak untuk membuka sesi:

989 

990* `claude attach` mencetak `This session has no saved transcript`.

991* Tampilan agent menampilkan `Press enter again to restart this session fresh` di bawah daftar.

983 992 

984Dalam tampilan agent, membuka baris itu menampilkan `Press enter again to restart this session fresh` di bawah daftar. Tekan `Enter` pada baris yang sama lagi untuk memulai ulang sesi dengan percakapan kosong, atau jalankan `claude respawn <id>` dari shell.993Tekan `Enter` pada baris yang sama lagi untuk memulai ulang sesi dengan percakapan kosong, atau jalankan `claude respawn <id>` dari shell.

985 994 

986Percakapan asli tetap utuh; lanjutkan dengan `claude --resume` atau terus bekerja di dalamnya. Lihat [referensi kesalahan](/docs/id/errors#this-session-has-no-saved-transcript) untuk detail.995Lihat [referensi kesalahan](/docs/id/errors#this-session-has-no-saved-transcript) untuk detail.

987 996 

988<h3 id="the-terminal-host-died-or-the-session-stopped-responding">997<h3 id="the-terminal-host-died-or-the-session-stopped-responding">

989 Host terminal mati atau sesi berhenti merespons998 Host terminal mati atau sesi berhenti merespons


1095 1104 

1096| Versi | Perubahan |1105| Versi | Perubahan |

1097| - | - |1106| - | - |

1098| v2.1.290 | [`claude attach` dan `claude logs`](#manage-sessions-from-the-shell) dapat menerima sebagian nama sesi yang sedang berjalan sebagai pengganti ID. |1107| v2.1.290 | [`claude attach` dan `claude logs`](#manage-sessions-from-the-shell) dapat menerima sebagian nama sesi sebagai pengganti ID. |

1099| v2.1.290 | `/model`, `/effort`, `/rename`, dan `/usage` yang dikirim sebagai [balasan intip](#peek-and-reply) ke sesi yang sedang bekerja langsung dijalankan. |1108| v2.1.290 | `/model`, `/effort`, `/rename`, dan `/usage` yang dikirim sebagai [balasan intip](#peek-and-reply) ke sesi yang sedang bekerja langsung dijalankan. |

1100| v2.1.290 | [Balasan intip](#peek-and-reply) yang tidak dapat dikirimkan tidak lagi disimpan untuk restart berikutnya ketika diawali dengan `/`, atau ketika menjawab pertanyaan dengan pilihan yang telah ditentukan sementara proses sesi sedang berjalan. |1109| v2.1.290 | [Balasan intip](#peek-and-reply) yang tidak dapat dikirimkan tidak lagi disimpan untuk restart berikutnya ketika diawali dengan `/`, atau ketika menjawab pertanyaan dengan pilihan yang telah ditentukan sementara proses sesi sedang berjalan. |

1101| v2.1.288 | `Ctrl+F` menemukan sesi berdasarkan nama, dan `Alt+↑` / `Alt+↓` melompat antar header grup. Keduanya, serta `Ctrl+R`, dapat [diatur ulang pintasannya](/docs/id/keybindings#agents-actions). |1110| v2.1.288 | `Ctrl+F` menemukan sesi berdasarkan nama, dan `Alt+↑` / `Alt+↓` melompat antar header grup. Keduanya, serta `Ctrl+R`, dapat [diatur ulang pintasannya](/docs/id/keybindings#agents-actions). |

artifacts.md +38 −10

Details

51Build a dashboard artifact of last week's deploy failures by service and keep it updated as you investigate.51Build a dashboard artifact of last week's deploy failures by service and keep it updated as you investigate.

52```52```

53 53 

54Kecuali Anda menentukan lokasi, Claude menulis halaman ke file HTML atau Markdown di direktori sementara di luar proyek Anda, kemudian menerbitkannya. Di luar [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), artefak baru yang Claude terbitkan sebagai respons terhadap prompt yang Anda ketik berjalan tanpa prompt izin atau tinjauan pengklasifikasi, kecuali penerbitan tersebut mendeklarasikan kemampuan runtime untuk halaman, seperti [connector calls](#pull-live-data-with-mcp-connectors) atau [file downloads](#offer-a-file-download). Dalam plan mode, Claude Code meminta Anda sebelum penerbitan pertama setiap artefak.54Kecuali Anda menentukan lokasi, Claude menulis halaman ke file HTML atau Markdown di direktori sementara di luar proyek Anda, kemudian menerbitkannya. Artifact tetap pribadi untuk Anda sampai Anda [membagikannya](#share-an-artifact).

55 55 

56Artefak tetap pribadi untuk Anda sampai Anda [membagikannya](#share-an-artifact). Setelah Anda membagikannya secara publik, Claude Code meminta persetujuan Anda sekali per percakapan sebelum mengubahnya, atau dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) memiliki pengklasifikasi meninjau perubahan tersebut.56Setelah penerbitan pertama, Claude mencetak URL, dan browser Anda membuka halaman baru.

57 57 

58Jika Anda mematikan [feature-flag fetching](/docs/id/env-vars#features-that-need-feature-flag-fetching), Claude Code meminta sebelum penerbitan pertama setiap artefak, atau dalam auto mode memiliki pengklasifikasi meninjau artefak tersebut.58* **Buka kembali halaman**: tekan `Ctrl+]` kapan saja untuk membuka kembali artifact terbaru dari sesi

59* **Lihat artifact sesi ini**: pill `⧉` di bawah prompt menampilkan nama artifact, atau jumlahnya ketika sesi memiliki beberapa artifact. Dalam [fullscreen rendering](/docs/id/fullscreen), klik pill tersebut untuk membuka daftar [`/artifacts`](#find-an-artifact-again)

60* **Cegah browser terbuka**: atur `CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0` di lingkungan Anda

61* **Remote Control**: jika Anda mengirim prompt melalui [Remote Control](/docs/id/remote-control) dari claude.ai, Claude Desktop, atau aplikasi Claude mobile, tidak ada tab yang terbuka di mesin yang menjalankan sesi. Browser terbuka di sana lain kali Claude menerbitkan artifact dari prompt yang Anda ketik di terminal

59 62 

60Setelah penerbitan pertama, Claude mencetak URL, dan browser Anda membuka halaman baru. Jika Anda mengirim prompt melalui [Remote Control](/docs/id/remote-control) dari claude.ai, Claude Desktop, atau aplikasi Claude mobile, tidak ada tab yang terbuka di mesin yang menjalankan sesi. Browser terbuka di sana lain kali Claude menerbitkan artefak dari prompt yang Anda ketik di terminal. Tekan `Ctrl+]` kapan saja untuk membuka kembali artefak terbaru dari sesi Anda.63Claude memilih judul artifact dan ikon tab browser yang sesuai dengan isi halaman, seperti bagan atau kalender. Judul muncul di [galeri artifact](#share-an-artifact) Anda di claude.ai dan di tautan bersama. Minta Claude untuk judul atau ikon tab tertentu jika Anda menginginkannya.

61 64 

62Claude memilih judul artefak dan emoji, dan keduanya muncul di [galeri artefak](#share-an-artifact) Anda di claude.ai dan di tautan bersama. Claude juga dapat memilih ikon tab browser yang sesuai dengan apa yang ada di halaman, seperti bagan atau kalender. Minta Claude untuk judul, emoji, atau ikon tab tertentu jika Anda menginginkannya.65Jika Claude merespons bahwa ia tidak dapat menerbitkan, atau menulis file HTML lokal tanpa tautan, artifact tidak diaktifkan untuk sesi Anda. Periksa persyaratan [Ketersediaan](#availability). Jika terminal menampilkan `Artifacts need a claude.ai login`, lihat [entri untuk error tersebut](/docs/id/errors#artifacts-need-a-claude-ai-login) untuk cara masuk.

63 66 

64Untuk menghentikan browser agar tidak membuka secara otomatis ketika artefak baru diterbitkan, atur `CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0` di lingkungan Anda.67<h3 id="when-claude-code-asks-before-publishing">

68 Kapan Claude Code bertanya sebelum menerbitkan

69</h3>

70 

71Artifact baru yang Claude terbitkan sebagai respons terhadap prompt yang Anda ketik berjalan tanpa permintaan izin atau tinjauan pengklasifikasi. Dalam kasus-kasus berikut, Claude Code bertanya kepada Anda terlebih dahulu, atau dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) meminta pengklasifikasi meninjau penerbitan tersebut:

65 72 

66Jika Claude merespons bahwa ia tidak dapat menerbitkan, atau menulis file HTML lokal tanpa tautan, alat tidak diaktifkan untuk sesi Anda. Periksa persyaratan [Ketersediaan](#availability).73| Kapan | Apa yang dilakukan Claude Code |

74| :- | :- |

75| Sesi berada dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) | Bertanya sebelum penerbitan pertama setiap artifact |

76| Penerbitan mendeklarasikan kemampuan runtime untuk halaman, seperti [panggilan konektor](#pull-live-data-with-mcp-connectors) atau [unduhan file](#offer-a-file-download) | Bertanya sebelum penerbitan tersebut |

77| Anda membagikan artifact secara publik | Bertanya sekali per percakapan sebelum mengubahnya |

78| Anda mematikan [feature-flag fetching](/docs/id/env-vars#features-that-need-feature-flag-fetching) | Bertanya sebelum penerbitan pertama setiap artifact |

79| Claude menerbitkan dalam giliran yang dimulai oleh [tugas terjadwal](/docs/id/scheduled-tasks) yang berjalan di sesi Anda, bukan oleh prompt yang Anda ketik | Bertanya sebelum penerbitan pertama setiap artifact |

80| Claude tidak dapat membaca file tanpa persetujuan Anda | Bertanya sebelum menerbitkannya. Aturan izin allow untuk tool `Artifact` tidak melewati permintaan ini |

81 

82Claude membaca file di [direktori kerja](/docs/id/permissions#working-directories) sesi Anda, dan di direktori sementara tempat ia menulis halaman, tanpa bertanya. Agar Claude dapat menerbitkan dari folder lain tanpa permintaan izin, tambahkan folder tersebut sebagai direktori kerja dengan [`--add-dir`](/docs/id/cli-reference#cli-flags) saat peluncuran atau `/add-dir` selama sesi.

67 83 

68<h2 id="update-an-artifact">84<h2 id="update-an-artifact">

69 Perbarui artefak85 Perbarui artefak


87 Temukan artefak lagi103 Temukan artefak lagi

88</h2>104</h2>

89 105 

90Jalankan `/artifacts` di Claude Code untuk membuat daftar setiap artefak yang Anda miliki dan setiap artefak yang dibagikan kepada Anda. Pilih satu dan tekan `o` untuk membukanya di browser Anda atau `c` untuk menyalin tautannya. Tekan `Enter` untuk melampirkannya ke sesi saat ini; sebelum v2.1.216, `Enter` membukanya di browser Anda. Claude Code membaca daftar dari akun claude.ai Anda, sehingga berfungsi di sesi baru dan setelah `/clear`, ketika tautan telah keluar dari terminal. Memerlukan Claude Code v2.1.208 atau lebih baru.106Jalankan `/artifacts` di Claude Code untuk membuat daftar artifact yang Anda miliki dan artifact yang dibagikan kepada Anda. Artifact dari sesi saat ini ditampilkan terlebih dahulu, di bawah **This session**. Memerlukan Claude Code v2.1.208 atau lebih baru.

107 

108Pilih sebuah artifact, lalu tekan salah satu tombol berikut:

109 

110* **`Enter`**: membukanya di browser Anda jika artifact tersebut sudah terlampir ke sesi saat ini, dan melampirkannya jika belum. Sebelum v2.1.216, `Enter` membukanya di browser Anda

111* **`o`**: membukanya di browser Anda

112* **`c`**: menyalin tautannya

113 

114Claude Code membaca daftar dari akun claude.ai Anda, sehingga berfungsi di sesi baru dan setelah `/clear`, ketika tautan telah keluar dari terminal.

91 115 

92<h2 id="share-an-artifact">116<h2 id="share-an-artifact">

93 Bagikan artefak117 Bagikan artefak


110 134 

111Editor menerbitkan versi baru dengan cara yang sama seperti Anda [memperbarui artefak dari sesi lain](#update-an-artifact): mereka memberikan Claude URL artefak, atau melampirkannya dari [`/artifacts`](#find-an-artifact-again), dan Claude menarik konten saat ini dan menerbitkan ulang dengan perubahan mereka. Semua orang dengan halaman terbuka melihat setiap pembaruan secara langsung.135Editor menerbitkan versi baru dengan cara yang sama seperti Anda [memperbarui artefak dari sesi lain](#update-an-artifact): mereka memberikan Claude URL artefak, atau melampirkannya dari [`/artifacts`](#find-an-artifact-again), dan Claude menarik konten saat ini dan menerbitkan ulang dengan perubahan mereka. Semua orang dengan halaman terbuka melihat setiap pembaruan secara langsung.

112 136 

137Jika seorang editor menerbitkan saat Claude masih memegang salinan halaman yang lebih lama, Claude Code menolak penerbitan yang dibangun di atas salinan tersebut. Claude kemudian menggabungkan perubahannya ke versi yang lebih baru dan menerbitkan lagi.

138 

113<h2 id="read-an-artifact-shared-with-you">139<h2 id="read-an-artifact-shared-with-you">

114 Baca artefak yang dibagikan dengan Anda140 Baca artefak yang dibagikan dengan Anda

115</h2>141</h2>


168 194 

169Claude juga berhenti membalas dengan sendirinya ke artefak setelah menangani 60 komentar yang dikirim atau aktivasi thread pada artefak tersebut dalam satu jam. Anda melihat `Comments are waiting on Artifact: <name>` sekali, dan Claude melanjutkan lagi saat komentar jam itu sudah lama.195Claude juga berhenti membalas dengan sendirinya ke artefak setelah menangani 60 komentar yang dikirim atau aktivasi thread pada artefak tersebut dalam satu jam. Anda melihat `Comments are waiting on Artifact: <name>` sekali, dan Claude melanjutkan lagi saat komentar jam itu sudah lama.

170 196 

171Jalankan `/tasks` untuk melihat setiap artefak yang sesi Anda pantau, tercantum sebagai tugas pembaruan langsung. Anda dapat menghentikan Claude dari membalas dengan sendirinya dengan salah satu cara berikut:197Jalankan `/tasks` untuk melihat artifact yang dipantau oleh sesi Anda. `/tasks` mengelompokkan pemantauan yang dimulai Claude Code dengan sendirinya di bawah baris **System tasks**. Tekan `Enter` pada baris tersebut untuk menampilkan daftarnya. Pemantauan yang Anda minta untuk dimulai oleh Claude muncul di bawah **Monitors**.

198 

199Anda dapat menghentikan Claude dari membalas dengan sendirinya dengan salah satu cara berikut:

172 200 

173* **Tekan Ctrl+C sekali pada prompt idle**: Claude berhenti membalas pada setiap artefak yang sesi Anda pantau. Balasan dimulai lagi setelah Anda mengirim pesan berikutnya.201* **Tekan Ctrl+C sekali pada prompt idle**: Claude berhenti membalas pada setiap artefak yang sesi Anda pantau. Balasan dimulai lagi setelah Anda mengirim pesan berikutnya.

174* **Hentikan tugas di `/tasks`**: Claude berhenti membalas pada artefak tersebut sampai Anda memintanya melanjutkan balasan di sana. Menerbitkan artefak lagi tidak memulai balasan lagi, dan penghentian masih berlaku ketika Anda melanjutkan sesi nanti.202* **Hentikan tugas di `/tasks`**: Claude berhenti membalas pada artefak tersebut sampai Anda memintanya melanjutkan balasan di sana. Menerbitkan artefak lagi tidak memulai balasan lagi, dan penghentian masih berlaku ketika Anda melanjutkan sesi nanti.


391| Autentikasi | Sesi didukung oleh akun claude.ai: masuk dengan `/login` di CLI atau aplikasi desktop. Sesi Claude Tag masuk melalui identitas agen, jadi tidak ada langkah yang diperlukan di sana. Sesi menggunakan kunci API, [gateway token](/docs/id/llm-gateway), atau kredensial penyedia cloud tidak dapat menerbitkan. |419| Autentikasi | Sesi didukung oleh akun claude.ai: masuk dengan `/login` di CLI atau aplikasi desktop. Sesi Claude Tag masuk melalui identitas agen, jadi tidak ada langkah yang diperlukan di sana. Sesi menggunakan kunci API, [gateway token](/docs/id/llm-gateway), atau kredensial penyedia cloud tidak dapat menerbitkan. |

392| Penyedia model | Anthropic API. Tidak tersedia di [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), atau [Microsoft Foundry](/docs/id/microsoft-foundry). |420| Penyedia model | Anthropic API. Tidak tersedia di [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), atau [Microsoft Foundry](/docs/id/microsoft-foundry). |

393| Kebijakan organisasi | Kunci enkripsi yang dikelola pelanggan (CMEK), HIPAA, dan [Zero Data Retention](/docs/id/zero-data-retention) tidak diaktifkan untuk organisasi. |421| Kebijakan organisasi | Kunci enkripsi yang dikelola pelanggan (CMEK), HIPAA, dan [Zero Data Retention](/docs/id/zero-data-retention) tidak diaktifkan untuk organisasi. |

394| Surface | Claude Code CLI, atau aplikasi desktop Claude versi 1.13576.0 atau lebih baru. Sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) juga dapat menerbitkan artifacts ketika Claude Tag dan artifacts keduanya diaktifkan untuk organisasi. Dimatikan secara default di konteks [Agent SDK](/docs/id/agent-sdk/overview), GitHub Action, dan server MCP, ketika Anda menjalankan Claude Code dengan [`-p`](/docs/id/headless) dari terminal atau skrip Anda sendiri, dan ketika [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars) diatur. |422| Surface | Claude Code CLI, atau aplikasi desktop Claude versi 1.13576.0 atau lebih baru. Sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) juga dapat menerbitkan artifacts ketika Claude Tag dan artifacts keduanya diaktifkan untuk organisasi. Sesi yang dilayani oleh [`claude remote-control`](/docs/id/remote-control) dapat menerbitkan artifacts ketika Anda memulai sesi tersebut sendiri. Memerlukan Claude Code v2.1.281 atau lebih baru. Dimatikan secara default di konteks [Agent SDK](/docs/id/agent-sdk/overview), GitHub Action, dan server MCP, ketika Anda menjalankan Claude Code dengan [`-p`](/docs/id/headless) dari terminal atau skrip Anda sendiri, dan ketika [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars) diatur. |

395 423 

396Apakah artifacts diizinkan untuk organisasi Anda berasal dari kebijakan organisasi Anda, yang Claude Code muat dari `api.anthropic.com`. Ketika Claude Code tidak dapat memuat kebijakan, artifacts tidak tersedia. Ketika Anda memintanya, Claude mengatakan alasannya.424Apakah artifacts diizinkan untuk organisasi Anda berasal dari kebijakan organisasi Anda, yang Claude Code muat dari `api.anthropic.com`. Ketika Claude Code tidak dapat memuat kebijakan, artifacts tidak tersedia. Ketika Anda memintanya, Claude mengatakan alasannya.

397 425 

chrome.md +39 −2

Details

202and attach logs/session.log to it202and attach logs/session.log to it

203```203```

204 204 

205Tiga pembatasan berlaku untuk unggahan:205Jika Claude menolak melampirkan file atau unggahan gagal, periksa penyebab-penyebab berikut:

206 206 

207* **Izin**: Claude dapat mengunggah file hanya ketika sesi diizinkan untuk membacanya, jadi [aturan izin](/docs/id/settings-reference#permission-settings) yang menolak akses `Read` ke file juga memblokir pengunggahannya.207* **Izin**: Claude dapat mengunggah file hanya ketika sesi diizinkan untuk membacanya, jadi [aturan izin](/docs/id/settings-reference#permission-settings) yang menolak akses `Read` ke file juga memblokir pengunggahannya.

208* **Ukuran**: satu unggahan dapat mencakup hingga 10 MB file secara total.208* **Ukuran**: satu unggahan dapat mencakup hingga 10 MB file secara total.

209* **Hard links**: Claude menolak file yang memiliki beberapa hard link, yang umum terjadi di dalam toko pengelola paket seperti `node_modules`. Salin file dan unggah salinannya.209* **Hard links**: Claude menolak file yang memiliki beberapa hard link, yang umum terjadi di dalam toko pengelola paket seperti `node_modules`. Salin file dan unggah salinannya.

210* **Nama kredensial**: Claude menolak file yang nama atau foldernya merupakan tempat kredensial biasanya disimpan, seperti `.env`, file `.pem` atau `.key`, atau apa pun di bawah `.ssh`. Memerlukan Claude Code v2.1.293 atau lebih baru.

210 211 

211<h3 id="draft-content-in-google-docs">212<h3 id="draft-content-in-google-docs">

212 Buat draf konten di Google Docs213 Buat draf konten di Google Docs


309 310 

310Peramban berbasis Chromium lainnya membaca file yang sama dari direktori konfigurasi mereka sendiri, dinamai menurut peramban. Misalnya, Brave di macOS menggunakan `~/Library/Application Support/BraveSoftware/Brave-Browser/NativeMessagingHosts/`, dan di Windows setiap peramban memiliki kunci registri sendiri, seperti `HKCU\Software\BraveSoftware\Brave-Browser\NativeMessagingHosts\`.311Peramban berbasis Chromium lainnya membaca file yang sama dari direktori konfigurasi mereka sendiri, dinamai menurut peramban. Misalnya, Brave di macOS menggunakan `~/Library/Application Support/BraveSoftware/Brave-Browser/NativeMessagingHosts/`, dan di Windows setiap peramban memiliki kunci registri sendiri, seperti `HKCU\Software\BraveSoftware\Brave-Browser\NativeMessagingHosts\`.

311 312 

313<h3 id="project-settings-can’t-turn-on-chrome">

314 Pengaturan proyek tidak dapat mengaktifkan Chrome

315</h3>

316 

317Peringatan ini di terminal Anda berarti proyek tempat Anda bekerja mencoba mengaktifkan integrasi Chrome, dan Claude Code tidak mengizinkannya:

318 

319```text wrap theme={null}

320Claude Code ignored CLAUDE_CODE_ENABLE_CFC in this project's settings: a project can't turn on Claude in Chrome. To turn it on yourself, run /chrome or start with --chrome.

321```

322 

323File `.claude/settings.json` atau `.claude/settings.local.json` proyek menetapkan [`CLAUDE_CODE_ENABLE_CFC`](/docs/id/env-vars#variables) ke `1` di blok `env`-nya untuk mengaktifkan integrasi Chrome. Claude Code tidak menerapkan pengaturan tersebut, sehingga integrasi Chrome nonaktif dalam sesi ini dan Claude tidak memiliki tool browser.

324 

325Claude Code melewati pengaturan tersebut karena file-file itu disimpan di direktori proyek, dan repositori yang Anda checkout tidak boleh dapat menghubungkan Claude ke browser Anda.

326 

327Anda dapat terus bekerja seperti biasa. Jika Anda menginginkan tool browser, atau ingin peringatan tersebut hilang, lakukan salah satu dari berikut ini:

328 

329* **Untuk mendapatkan tool browser sekarang**: keluar dan mulai lagi dengan `claude --chrome` di shell Anda.

330* **Untuk mendapatkan tool browser di sesi berikutnya**: jalankan `/chrome` di prompt Claude Code dan pilih [**Enabled by default**](#enable-chrome-by-default). Ini berlaku untuk sesi yang Anda mulai setelahnya, bukan sesi yang sedang berjalan.

331* **Untuk menghentikan peringatan tanpa tool browser**: hapus baris `CLAUDE_CODE_ENABLE_CFC` dari file pengaturan proyek.

332 

312<h3 id="browser-not-responding">333<h3 id="browser-not-responding">

313 Browser tidak merespons334 Browser tidak merespons

314</h3>335</h3>


325 346 

326Service worker ekstensi Chrome dapat menjadi idle selama sesi yang diperpanjang, yang memutus koneksi. Jika alat browser berhenti bekerja setelah periode inaktivitas, jalankan `/chrome` dan pilih "Reconnect extension".347Service worker ekstensi Chrome dapat menjadi idle selama sesi yang diperpanjang, yang memutus koneksi. Jika alat browser berhenti bekerja setelah periode inaktivitas, jalankan `/chrome` dan pilih "Reconnect extension".

327 348 

349Saat Anda menjalankan `/chrome`, periksa baris `Status`-nya. Jika tertulis "Not connected", koneksi sesi yang sedang berjalan ke Chrome telah gagal. Pilih "Reconnect extension" untuk memulai ulang koneksi tersebut. Setelah koneksi berhasil, halaman reconnect ekstensi terbuka di Chrome. Sebelum v2.1.290, "Reconnect extension" hanya membuka halaman tersebut dan tidak memulai ulang koneksi yang gagal, jadi jika tool browser tidak kembali pada versi sebelumnya, perbarui Claude Code.

350 

351<h3 id="extension-signed-in-to-a-different-organization">

352 Ekstensi masuk ke organisasi yang berbeda

353</h3>

354 

355Jika Anda tergabung dalam lebih dari satu organisasi claude.ai, ekstensi harus masuk ke organisasi yang sama dengan Claude Code. Jika keduanya berbeda, tool browser Claude mengembalikan "Browser extension is not connected", bahkan ketika keduanya menggunakan akun claude.ai yang sama.

356 

357Untuk melihat organisasi mana yang digunakan Claude Code, jalankan [`/status`](/docs/id/commands) di prompt Claude Code dan baca baris `Organization`.

358 

359<Warning>

360 Jika Anda keluar dari ekstensi, Anda kehilangan pintasan dan tugas terjadwal yang tersimpan di dalamnya. Coba perbaikan lain di bawah [Pesan kesalahan umum](#common-error-messages) terlebih dahulu.

361</Warning>

362 

363Untuk mengubah organisasi ekstensi, keluar di pengaturan ekstensi, lalu masuk kembali dan pilih organisasi yang ditampilkan oleh `/status`.

364 

328<h3 id="windows-specific-issues">365<h3 id="windows-specific-issues">

329 Masalah khusus Windows366 Masalah khusus Windows

330</h3>367</h3>


343 380 

344| Kesalahan | Penyebab | Perbaikan |381| Kesalahan | Penyebab | Perbaikan |

345| - | - | - |382| - | - | - |

346| "Browser extension is not connected" | Host messaging asli tidak dapat menjangkau ekstensi, atau allowlist IP organisasi Anda menolak koneksi ke `bridge.claudeusercontent.com` | Periksa bahwa ekstensi masuk ke akun claude.ai yang sama dengan Claude Code, restart Chrome dan Claude Code, kemudian jalankan `/chrome` untuk menghubungkan kembali. Jika organisasi Anda menggunakan allowlist IP dan kesalahan berlanjut, lihat [Organization IP allowlists and proxy egress](/docs/id/network-config#organization-ip-allowlists-and-proxy-egress) |383| "Browser extension is not connected" | Ekstensi tidak diinstal dan berjalan di Chrome, ekstensi masuk ke akun atau organisasi claude.ai yang berbeda dari Claude Code, atau allowlist IP organisasi Anda menolak koneksi ke `bridge.claudeusercontent.com` | Periksa bahwa ekstensi masuk ke akun claude.ai dan [organisasi](#extension-signed-in-to-a-different-organization) yang sama dengan Claude Code, restart Chrome dan Claude Code, kemudian jalankan `/chrome` untuk menghubungkan kembali. Jika organisasi Anda menggunakan allowlist IP dan kesalahan berlanjut, lihat [Organization IP allowlists and proxy egress](/docs/id/network-config#organization-ip-allowlists-and-proxy-egress) |

347| Extension shows "Not detected" in `/chrome` | Ekstensi Chrome tidak diinstal atau dinonaktifkan | Instal atau aktifkan ekstensi di `chrome://extensions` |384| Extension shows "Not detected" in `/chrome` | Ekstensi Chrome tidak diinstal atau dinonaktifkan | Instal atau aktifkan ekstensi di `chrome://extensions` |

348| "No tab available" | Claude mencoba bertindak sebelum tab siap | Minta Claude membuat tab baru dan coba lagi |385| "No tab available" | Claude mencoba bertindak sebelum tab siap | Minta Claude membuat tab baru dan coba lagi |

349| "Receiving end does not exist" | Service worker ekstensi menjadi idle | Jalankan `/chrome` dan pilih "Reconnect extension" |386| "Receiving end does not exist" | Service worker ekstensi menjadi idle | Jalankan `/chrome` dan pilih "Reconnect extension" |

Details

1237 1237 

1238CLI mengirim metrik, log, dan, ketika diaktifkan, jejak ke gateway, yang meneruskannya verbatim ke setiap tujuan yang dikonfigurasi. Ekspor menggunakan OpenTelemetry Protocol (OTLP) melalui HTTP. Untuk melewati relay dan memiliki sesi ekspor langsung ke kolektor Anda, [namai kolektor dalam kebijakan](#export-directly-to-your-collector). Lihat [Monitoring usage](/docs/id/monitoring-usage) untuk metrik dan acara yang CLI pancarkan.1238CLI mengirim metrik, log, dan, ketika diaktifkan, jejak ke gateway, yang meneruskannya verbatim ke setiap tujuan yang dikonfigurasi. Ekspor menggunakan OpenTelemetry Protocol (OTLP) melalui HTTP. Untuk melewati relay dan memiliki sesi ekspor langsung ke kolektor Anda, [namai kolektor dalam kebijakan](#export-directly-to-your-collector). Lihat [Monitoring usage](/docs/id/monitoring-usage) untuk metrik dan acara yang CLI pancarkan.

1239 1239 

1240Dalam sesi yang masuk melalui `/login`, CLI memberi stempel setiap ekspor dengan identitas pengguna yang diautentikasi, dibaca dari JWT yang diterbitkan gateway: atribut `user.id`, `user.email`, dan `user.groups`. Atribusi biaya dan penggunaan per-pengembang oleh karena itu bekerja tanpa konfigurasi sisi pengembang.1240Dalam sesi yang masuk melalui `/login`, CLI membubuhkan identitas pengguna terautentikasi pada setiap ekspor, yang dibaca dari JWT yang diterbitkan gateway: atribut `user.id`, `user.email`, dan `user.groups`. Dengan demikian, atribusi biaya dan penggunaan per developer berfungsi tanpa konfigurasi di sisi developer. Event yang dicatat Claude Code sebelum developer masuk [tidak membawa identitas ini](/docs/id/monitoring-usage#standard-attributes). Untuk melihat atribut mana yang mengikuti perubahan grup developer, lihat [Perubahan grup selama sesi terbuka](#group-changes-during-an-open-session).

1241 1241 

1242Sesi [Claude Desktop](#claude-desktop-overlay) dan Cowork yang masuk melalui gateway memberi stempel telemetri mereka dengan `user.email` dan `user.groups` bersama `enduser.id`, sehingga Anda dapat mencakup penggunaan terminal, Desktop, dan Cowork dengan satu kueri di `user.email` atau `user.groups`. `user.groups` adalah daftar grup IdP yang dipisahkan koma.1242Sesi [Claude Desktop](#claude-desktop-overlay) dan Cowork yang masuk melalui gateway memberi stempel telemetri mereka dengan `user.email` dan `user.groups` bersama `enduser.id`, sehingga Anda dapat mencakup penggunaan terminal, Desktop, dan Cowork dengan satu kueri di `user.email` atau `user.groups`. `user.groups` adalah daftar grup IdP yang dipisahkan koma.

1243 1243 


1347 1347 

1348Claude Code juga menyalin setiap label ke setiap titik data metrik, sehingga Anda dapat memfilter metrik berdasarkannya di backend yang tidak mengindeks atribut sumber. Untuk mematikan salinan itu, lihat [Kontrol kardinalitas metrik](/docs/id/monitoring-usage#metrics-cardinality-control).1348Claude Code juga menyalin setiap label ke setiap titik data metrik, sehingga Anda dapat memfilter metrik berdasarkannya di backend yang tidak mengindeks atribut sumber. Untuk mematikan salinan itu, lihat [Kontrol kardinalitas metrik](/docs/id/monitoring-usage#metrics-cardinality-control).

1349 1349 

1350<h4 id="group-changes-during-an-open-session">

1351 Perubahan grup selama sesi terbuka

1352</h4>

1353 

1354Sesi terminal menempatkan `user.groups` pada resource OTLP dan sekali lagi pada setiap titik data metrik dan event. Jika grup developer berubah saat sesi terbuka, titik data dan event untuk penggunaan setelah [refresh senyap](#session) berikutnya membawa grup yang baru. Resource mempertahankan grup lama hingga developer me-restart Claude Code, jadi kelompokkan berdasarkan atribut pada titik data atau event.

1355 

1356Jika Anda mengaktifkan `resource_to_telemetry_conversion` di exporter Prometheus remote write milik OpenTelemetry Collector, exporter tersebut mengganti `user.groups` setiap titik data dengan milik resource, sehingga setiap titik data menampilkan grup lama. Untuk mempertahankan nilai titik data, hapus `user.groups` dari resource sebelum exporter tersebut.

1357 

1358Processor `resource` OpenTelemetry Collector ini menghapus atribut tersebut di pipeline yang mencantumkannya:

1359 

1360```yaml theme={null}

1361processors:

1362 resource/drop-user-groups:

1363 attributes:

1364 - key: user.groups

1365 action: delete

1366```

1367 

1368Setelah Anda menambahkan `resource/drop-user-groups` ke `processors` pipeline metrik, setiap series membawa label `user_groups` dari titik datanya sendiri.

1369 

1350<h4 id="export-directly-to-your-collector">1370<h4 id="export-directly-to-your-collector">

1351 Ekspor langsung ke kolektor Anda1371 Ekspor langsung ke kolektor Anda

1352</h4>1372</h4>

Details

516 Telemetry516 Telemetry

517</h2>517</h2>

518 518 

519Gateway memberikan Anda metrik penggunaan per-developer tanpa konfigurasi OTEL per-mesin apa pun. Claude Code memancarkan metrik OpenTelemetry (OTLP), log, dan trace opt-in; [Monitoring usage](/docs/id/monitoring-usage) mencakup semua yang dilaporkan CLI. Dalam sesi yang masuk melalui `/login`, CLI memberi stempel setiap ekspor dengan atribut identitas IdP yang diautentikasi `user.id`, `user.email`, dan `user.groups`, sehingga penggunaan terakumulasi per developer.519Gateway memberikan Anda metrik penggunaan per-developer tanpa konfigurasi OTEL per-mesin apa pun. Claude Code memancarkan metrik OpenTelemetry (OTLP), log, dan trace opt-in; [Monitoring usage](/docs/id/monitoring-usage) mencakup semua yang dilaporkan CLI. Dalam sesi yang masuk melalui `/login`, CLI [memberi stempel setiap ekspor](/docs/id/monitoring-usage#standard-attributes) dengan atribut identitas IdP yang diautentikasi `user.id`, `user.email`, dan `user.groups`, sehingga penggunaan terakumulasi per developer.

520 520 

521Gateway itu sendiri adalah relay OTLP yang diautentikasi. Atur [`telemetry.forward_to`](/docs/id/claude-apps-gateway-config#telemetry) bersama dengan `listen.public_url`, dan itu mendorong pengaturan OTEL exporter ke setiap klien yang terhubung dan meneruskan lalu lintas OTLP mereka secara verbatim ke setiap tujuan yang Anda daftarkan. Setiap tujuan memilih metrik, log, dan trace secara independen, dan defaultnya hanya metrik; lihat [referensi `telemetry`](/docs/id/claude-apps-gateway-config#telemetry) untuk bidang per-sinyal dan trade-off sensitivitasnya. Gateway tidak membuffer, mengagregasi, atau menyimpan telemetry, jadi tempat data mendarat sepenuhnya merupakan konfigurasi exporter collector.521Gateway itu sendiri adalah relay OTLP yang diautentikasi. Atur [`telemetry.forward_to`](/docs/id/claude-apps-gateway-config#telemetry) bersama dengan `listen.public_url`, dan itu mendorong pengaturan OTEL exporter ke setiap klien yang terhubung dan meneruskan lalu lintas OTLP mereka secara verbatim ke setiap tujuan yang Anda daftarkan. Setiap tujuan memilih metrik, log, dan trace secara independen, dan defaultnya hanya metrik; lihat [referensi `telemetry`](/docs/id/claude-apps-gateway-config#telemetry) untuk bidang per-sinyal dan trade-off sensitivitasnya. Gateway tidak membuffer, mengagregasi, atau menyimpan telemetry, jadi tempat data mendarat sepenuhnya merupakan konfigurasi exporter collector.

522 522 

Details

91 Dari CLI, handoff sesi adalah satu arah: Anda dapat menarik sesi cloud ke terminal Anda dengan `--teleport`, tetapi Anda tidak dapat mendorong sesi terminal yang sudah ada ke cloud. Flag `--cloud` dengan deskripsi tugas membuat sesi cloud baru untuk repositori Anda saat ini; dengan `-p` dan ID sesi atau URL claude.ai/code, flag tersebut malah [antri pesan ke sesi yang sudah ada itu](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli). [Aplikasi Desktop](/docs/id/desktop#continue-in-another-surface) dapat mengirim sesi lokal di tab Code-nya ke cloud melalui menu **Open in**.91 Dari CLI, handoff sesi adalah satu arah: Anda dapat menarik sesi cloud ke terminal Anda dengan `--teleport`, tetapi Anda tidak dapat mendorong sesi terminal yang sudah ada ke cloud. Flag `--cloud` dengan deskripsi tugas membuat sesi cloud baru untuk repositori Anda saat ini; dengan `-p` dan ID sesi atau URL claude.ai/code, flag tersebut malah [antri pesan ke sesi yang sudah ada itu](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli). [Aplikasi Desktop](/docs/id/desktop#continue-in-another-surface) dapat mengirim sesi lokal di tab Code-nya ke cloud melalui menu **Open in**.

92</Note>92</Note>

93 93 

94<h3 id="from-terminal-to-cloud">94<span id="from-terminal-to-cloud" />

95 Dari terminal ke cloud95 

96<h3 id="start-a-cloud-session-from-your-terminal">

97 Memulai sesi cloud dari terminal Anda

96</h3>98</h3>

97 99 

98Mulai sesi cloud dari baris perintah dengan flag `--cloud`:100Mulai sesi cloud dari baris perintah dengan flag `--cloud`:


215 217 

216Jika pengiriman gagal, lihat [Kesalahan saat mengirim ke sesi cloud](#errors-when-sending-to-a-cloud-session).218Jika pengiriman gagal, lihat [Kesalahan saat mengirim ke sesi cloud](#errors-when-sending-to-a-cloud-session).

217 219 

218<h3 id="from-cloud-to-terminal">220<span id="from-cloud-to-terminal" />

219 Dari cloud ke terminal221 

222<h3 id="continue-a-cloud-session-in-your-terminal">

223 Melanjutkan sesi cloud di terminal Anda

220</h3>224</h3>

221 225 

222Tarik sesi cloud ke terminal Anda menggunakan salah satu dari ini:226Tarik sesi cloud ke terminal Anda menggunakan salah satu dari ini:


483Buka kembali sesi dari [claude.ai/code](https://claude.ai/code) untuk menyediakan VM segar:487Buka kembali sesi dari [claude.ai/code](https://claude.ai/code) untuk menyediakan VM segar:

484 488 

485* **Dipulihkan**: riwayat percakapan Anda489* **Dipulihkan**: riwayat percakapan Anda

486* **Tidak dipulihkan**: pekerjaan latar belakang yang masih berjalan saat VM diambil kembali, seperti subagent dan perintah shell490* **Tidak dipulihkan**: pekerjaan latar belakang yang masih berjalan saat VM diambil kembali, seperti subagent dan perintah shell, serta wakeup tertunda dari [`/loop` dengan ritme mandiri](/docs/id/scheduled-tasks#let-claude-choose-the-interval). Untuk memulai ulang loop, jalankan `/loop` lagi.

487 491 

488<h2 id="limitations">492<h2 id="limitations">

489 Batasan493 Batasan

Details

489* **Routines**: ketika Anda meminta pekerjaan terjadwal dalam project, Claude membuat [routine](/docs/id/routines) yang berjalan sebagai thread dalam project itu dan muncul di tab **Routines**-nya. Routine yang Anda buat di luar project terus bekerja sendiri.489* **Routines**: ketika Anda meminta pekerjaan terjadwal dalam project, Claude membuat [routine](/docs/id/routines) yang berjalan sebagai thread dalam project itu dan muncul di tab **Routines**-nya. Routine yang Anda buat di luar project terus bekerja sendiri.

490* **Remote Control**: [Remote Control](/docs/id/remote-control) menghubungkan claude.ai ke sesi Claude Code yang berjalan di mesin Anda. Ketika Anda meminta Claude dalam project untuk menjalankan thread di komputer Anda, project [menggunakan Remote Control untuk melakukannya](#run-a-thread-on-your-own-computer).490* **Remote Control**: [Remote Control](/docs/id/remote-control) menghubungkan claude.ai ke sesi Claude Code yang berjalan di mesin Anda. Ketika Anda meminta Claude dalam project untuk menjalankan thread di komputer Anda, project [menggunakan Remote Control untuk melakukannya](#run-a-thread-on-your-own-computer).

491* **Local sessions dan agent view**: sesi yang Anda mulai sendiri di terminal, IDE, atau environment lokal aplikasi desktop tidak dapat ditambahkan ke project. [Agent view](/docs/id/agent-view) adalah layar untuk melacak beberapa sesi lokal berdampingan, dan Anda masih memulai masing-masing dan memberikan tugasnya sendiri.491* **Local sessions dan agent view**: sesi yang Anda mulai sendiri di terminal, IDE, atau environment lokal aplikasi desktop tidak dapat ditambahkan ke project. [Agent view](/docs/id/agent-view) adalah layar untuk melacak beberapa sesi lokal berdampingan, dan Anda masih memulai masing-masing dan memberikan tugasnya sendiri.

492* **Worktrees**: [worktree](/docs/id/worktrees) memberikan setiap sesi lokal salinan kerjanya sendiri dari repositori sehingga sesi paralel di mesin Anda tidak menimpa satu sama lain. Thread cloud tidak membutuhkannya: setiap thread mengkloning repositorinya ke sandbox cloud sendiri dan bekerja di cabang sendiri.492* **Worktrees**: [worktree](/docs/id/worktrees) memberikan setiap sesi lokal salinan kerjanya sendiri dari repositori. Thread cloud tidak membutuhkannya: setiap thread mengkloning repositorinya ke sandbox cloud sendiri dan bekerja di branch sendiri.

493* **Agent teams**: [agent team](/docs/id/agent-teams) adalah satu sesi yang memulai sesi rekan untuk satu tugas, di mesin Anda atau di dalam sesi cloud, dan berakhir dengan tugas itu.493* **Agent teams**: [agent team](/docs/id/agent-teams) adalah satu sesi yang memulai sesi rekan untuk satu tugas, di mesin Anda atau di dalam sesi cloud, dan berakhir dengan tugas itu.

494* **Subagents**: [subagent](/docs/id/sub-agents) berjalan di dalam satu sesi, melakukan tugas sampingan dalam jendela konteks sendiri, dan mengembalikan ringkasan ke sesi itu. Thread project adalah sesi utuh yang Claude mulai dan yang melaporkan kembali ke percakapan project, dan thread masih dapat menggunakan subagents untuk tugas sampingannya sendiri.494* **Subagents**: [subagent](/docs/id/sub-agents) berjalan di dalam satu sesi, melakukan tugas sampingan dalam jendela konteks sendiri, dan mengembalikan ringkasan ke sesi itu. Thread project adalah sesi utuh yang Claude mulai dan yang melaporkan kembali ke percakapan project, dan thread masih dapat menggunakan subagents untuk tugas sampingannya sendiri.

495* **Projects di claude.ai chat dan Cowork**: [pengalaman Projects sebelumnya](https://support.claude.com/en/articles/9517075-what-are-projects), yang mengelompokkan percakapan dan file referensi tanpa thread atau koordinator. Project tersebut terus bekerja seperti yang mereka lakukan hari ini sampai pengalaman yang dirancang ulang mencapai mereka.495* **Projects di claude.ai chat dan Cowork**: [pengalaman Projects sebelumnya](https://support.claude.com/en/articles/9517075-what-are-projects), yang mengelompokkan percakapan dan file referensi tanpa thread atau koordinator. Project tersebut terus bekerja seperti yang mereka lakukan hari ini sampai pengalaman yang dirancang ulang mencapai mereka.

Details

28| `claude auth logout` | Keluar dari akun Anthropic Anda | `claude auth logout` |28| `claude auth logout` | Keluar dari akun Anthropic Anda | `claude auth logout` |

29| `claude auth status` | Tampilkan status autentikasi sebagai JSON. Gunakan `--text` untuk output yang dapat dibaca manusia. Keluar dengan kode 0 jika masuk, 1 jika tidak. JSON mencakup bidang `configDirectory` yang menamai [direktori konfigurasi](/docs/id/claude-directory) yang digunakan CLI. Bidang ini memerlukan Claude Code v2.1.268 atau lebih baru. Bidang `authMethod` pada JSON bernilai salah satu dari `none`, `claude.ai`, `oauth_token`, `api_key`, `api_key_helper`, atau `third_party` | `claude auth status` |29| `claude auth status` | Tampilkan status autentikasi sebagai JSON. Gunakan `--text` untuk output yang dapat dibaca manusia. Keluar dengan kode 0 jika masuk, 1 jika tidak. JSON mencakup bidang `configDirectory` yang menamai [direktori konfigurasi](/docs/id/claude-directory) yang digunakan CLI. Bidang ini memerlukan Claude Code v2.1.268 atau lebih baru. Bidang `authMethod` pada JSON bernilai salah satu dari `none`, `claude.ai`, `oauth_token`, `api_key`, `api_key_helper`, atau `third_party` | `claude auth status` |

30| `claude agents` | Buka [tampilan agent](/docs/id/agent-view) untuk memantau dan mengirim sesi latar belakang paralel. Gunakan `--cwd <path>` untuk menampilkan hanya sesi yang dimulai di bawah direktori tersebut, atau `--json` untuk mencetak sesi aktif sebagai array JSON untuk skrip (`--json --all` juga mencakup sesi latar belakang yang selesai). Lewatkan `--permission-mode`, `--model`, `--effort`, atau `--agent` untuk menetapkan [default untuk sesi yang dikirim](/docs/id/agent-view#permission-mode-model-and-effort). Menerima `--settings`, `--add-dir`, `--plugin-dir`, dan `--mcp-config` seperti perintah `claude` tingkat atas. Membuka tampilan agent memerlukan terminal interaktif | `claude agents --json` |30| `claude agents` | Buka [tampilan agent](/docs/id/agent-view) untuk memantau dan mengirim sesi latar belakang paralel. Gunakan `--cwd <path>` untuk menampilkan hanya sesi yang dimulai di bawah direktori tersebut, atau `--json` untuk mencetak sesi aktif sebagai array JSON untuk skrip (`--json --all` juga mencakup sesi latar belakang yang selesai). Lewatkan `--permission-mode`, `--model`, `--effort`, atau `--agent` untuk menetapkan [default untuk sesi yang dikirim](/docs/id/agent-view#permission-mode-model-and-effort). Menerima `--settings`, `--add-dir`, `--plugin-dir`, dan `--mcp-config` seperti perintah `claude` tingkat atas. Membuka tampilan agent memerlukan terminal interaktif | `claude agents --json` |

31| `claude attach <id\|name>` | Lampirkan ke [sesi latar belakang](/docs/id/agent-view#manage-sessions-from-the-shell) di terminal ini. Meneruskan sebagian nama sesi yang sedang berjalan sebagai pengganti ID memerlukan Claude Code v2.1.290 atau lebih baru | `claude attach 7c5dcf5d` |31| `claude attach <id\|name>` | Lampirkan ke [sesi latar belakang](/docs/id/agent-view#manage-sessions-from-the-shell) di terminal ini. Meneruskan sebagian nama sesi sebagai pengganti ID memerlukan Claude Code v2.1.290 atau lebih baru | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Cetak aturan pengklasifikasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) bawaan sebagai JSON. Gunakan `claude auto-mode config` untuk melihat konfigurasi efektif Anda dengan pengaturan yang diterapkan. `--label <prefix>` mencetak hanya aturan yang labelnya dimulai dengan awalan tersebut, cocok tanpa memperhatikan huruf besar-kecil. Memerlukan Claude Code v2.1.208 atau lebih baru | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Cetak aturan pengklasifikasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) bawaan sebagai JSON. Gunakan `claude auto-mode config` untuk melihat konfigurasi efektif Anda dengan pengaturan yang diterapkan. `--label <prefix>` mencetak hanya aturan yang labelnya dimulai dengan awalan tersebut, cocok tanpa memperhatikan huruf besar-kecil. Memerlukan Claude Code v2.1.208 atau lebih baru | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | Pulihkan konfigurasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) default dengan menghapus bagian `autoMode` dari file pengaturan pengguna Anda. Meminta konfirmasi sebelum menulis; lewatkan `-y`/`--yes` untuk melewati prompt. Aturan dari [pengaturan terkelola](/docs/id/server-managed-settings) atau flag `--settings` masih berlaku. Memerlukan Claude Code v2.1.212 atau lebih baru. Lihat [Periksa default dan konfigurasi efektif Anda](/docs/id/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | Pulihkan konfigurasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) default dengan menghapus bagian `autoMode` dari file pengaturan pengguna Anda. Meminta konfirmasi sebelum menulis; lewatkan `-y`/`--yes` untuk melewati prompt. Aturan dari [pengaturan terkelola](/docs/id/server-managed-settings) atau flag `--settings` masih berlaku. Memerlukan Claude Code v2.1.212 atau lebih baru. Lihat [Periksa default dan konfigurasi efektif Anda](/docs/id/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon logs` | Ikuti file log [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang, `~/.claude/daemon.log`, dengan mencetak baris baru saat muncul hingga Anda menekan `Ctrl+C` | `claude daemon logs` |34| `claude daemon logs` | Ikuti file log [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang, `~/.claude/daemon.log`, dengan mencetak baris baru saat muncul hingga Anda menekan `Ctrl+C` | `claude daemon logs` |


37| `claude daemon stop --any` | Hentikan [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang dan sesi yang dihosting. Lewatkan `--keep-workers` untuk membiarkan sesi latar belakang tetap berjalan sehingga supervisor berikutnya dapat terhubung kembali ke sesi tersebut. `--any` mengonfirmasi penghentian supervisor sesuai permintaan, yang merupakan default. Gunakan ini untuk pulih dari [supervisor yang tidak responsif](/docs/id/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |37| `claude daemon stop --any` | Hentikan [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang dan sesi yang dihosting. Lewatkan `--keep-workers` untuk membiarkan sesi latar belakang tetap berjalan sehingga supervisor berikutnya dapat terhubung kembali ke sesi tersebut. `--any` mengonfirmasi penghentian supervisor sesuai permintaan, yang merupakan default. Gunakan ini untuk pulih dari [supervisor yang tidak responsif](/docs/id/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |

38| `claude doctor` | Cetak diagnostik instalasi dan pengaturan read-only dari terminal tanpa memulai sesi, termasuk kesehatan instalasi, kesalahan validasi file pengaturan, dan kelayakan Remote Control. Untuk pemeriksaan pengaturan dalam sesi yang juga dapat menerapkan perbaikan, jalankan [`/doctor`](/docs/id/commands#all-commands) | `claude doctor` |38| `claude doctor` | Cetak diagnostik instalasi dan pengaturan read-only dari terminal tanpa memulai sesi, termasuk kesehatan instalasi, kesalahan validasi file pengaturan, dan kelayakan Remote Control. Untuk pemeriksaan pengaturan dalam sesi yang juga dapat menerapkan perbaikan, jalankan [`/doctor`](/docs/id/commands#all-commands) | `claude doctor` |

39| `claude import [source]` | Mulai sesi interaktif yang menjalankan [`/import`](/docs/id/commands#all-commands) untuk membawa konfigurasi dari agent pengkodean lain ke Claude Code. Menerima opsi `--dry-run` dan `--yes` yang sama dengan perintah. Tidak tersedia di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau Claude Platform di AWS. Juga tidak tersedia ketika Anda mematikan [pengambilan flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching). Memerlukan Claude Code v2.1.213 atau lebih baru | `claude import codex --dry-run` |39| `claude import [source]` | Mulai sesi interaktif yang menjalankan [`/import`](/docs/id/commands#all-commands) untuk membawa konfigurasi dari agent pengkodean lain ke Claude Code. Menerima opsi `--dry-run` dan `--yes` yang sama dengan perintah. Tidak tersedia di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau Claude Platform di AWS. Juga tidak tersedia ketika Anda mematikan [pengambilan flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching). Memerlukan Claude Code v2.1.213 atau lebih baru | `claude import codex --dry-run` |

40| `claude logs <id\|name>` | Cetak output terbaru dari [sesi latar belakang](/docs/id/agent-view#manage-sessions-from-the-shell). Meneruskan sebagian nama sesi yang sedang berjalan sebagai pengganti ID memerlukan Claude Code v2.1.290 atau lebih baru | `claude logs 7c5dcf5d` |40| `claude logs <id\|name>` | Cetak output terbaru dari [sesi latar belakang](/docs/id/agent-view#manage-sessions-from-the-shell). Meneruskan sebagian nama sesi sebagai pengganti ID memerlukan Claude Code v2.1.290 atau lebih baru | `claude logs 7c5dcf5d` |

41| `claude mcp` | Konfigurasi server Model Context Protocol (MCP) | Lihat [dokumentasi Claude Code MCP](/docs/id/mcp). |41| `claude mcp` | Konfigurasi server Model Context Protocol (MCP) | Lihat [dokumentasi Claude Code MCP](/docs/id/mcp). |

42| `claude mcp login <name>` | Jalankan alur OAuth server MCP yang dikonfigurasi tanpa membuka panel `/mcp` interaktif. Bekerja untuk server HTTP, SSE, dan konektor claude.ai. Tambahkan `--no-browser` melalui SSH untuk mencetak URL otorisasi alih-alih membuka browser, kemudian tempel URL pengalihan kembali di prompt. Lihat [Autentikasi dari baris perintah](/docs/id/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |42| `claude mcp login <name>` | Jalankan alur OAuth server MCP yang dikonfigurasi tanpa membuka panel `/mcp` interaktif. Bekerja untuk server HTTP, SSE, dan konektor claude.ai. Tambahkan `--no-browser` melalui SSH untuk mencetak URL otorisasi alih-alih membuka browser. Untuk server HTTP atau SSE, tempel URL pengalihan kembali di prompt. Untuk konektor claude.ai, lihat [Otorisasi ulang konektor dari shell Anda](/docs/id/remote-control#authorize-a-connector-again-from-your-shell). Lihat [Autentikasi dari baris perintah](/docs/id/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` |

43| `claude mcp logout <name>` | Hapus kredensial OAuth yang disimpan untuk server MCP | `claude mcp logout sentry` |43| `claude mcp logout <name>` | Hapus kredensial OAuth yang disimpan untuk server MCP | `claude mcp logout sentry` |

44| `claude plugin` | Kelola Claude Code [plugins](/docs/id/plugins/overview). Alias: `claude plugins`. Lihat [referensi plugin](/docs/id/plugins/cli-reference#claude-plugin-commands) untuk subperintah | `claude plugin install code-review@claude-plugins-official` |44| `claude plugin` | Kelola Claude Code [plugins](/docs/id/plugins/overview). Alias: `claude plugins`. Lihat [referensi plugin](/docs/id/plugins/cli-reference#claude-plugin-commands) untuk subperintah | `claude plugin install code-review@claude-plugins-official` |

45| `claude purge [path]` | Hapus semua status Claude Code lokal untuk proyek: transkrip, daftar tugas, log debug, riwayat edit file, baris riwayat prompt, dan entri proyek di `~/.claude.json`. Abaikan `[path]` untuk memilih dari daftar interaktif. Flag: `--dry-run` untuk pratinjau, `-y`/`--yes` untuk melewati konfirmasi, `-i`/`--interactive` untuk mengonfirmasi setiap item, `--all` untuk setiap proyek. Lihat [Hapus data lokal](/docs/id/claude-directory#clear-local-data) | `claude purge ~/work/repo --dry-run` |45| `claude purge [path]` | Hapus semua status Claude Code lokal untuk proyek: transkrip, daftar tugas, log debug, riwayat edit file, baris riwayat prompt, dan entri proyek di `~/.claude.json`. Abaikan `[path]` untuk memilih dari daftar interaktif. Flag: `--dry-run` untuk pratinjau, `-y`/`--yes` untuk melewati konfirmasi, `-i`/`--interactive` untuk mengonfirmasi setiap item, `--all` untuk setiap proyek. Lihat [Hapus data lokal](/docs/id/claude-directory#clear-local-data) | `claude purge ~/work/repo --dry-run` |


106| `--input-format` | Tentukan format input untuk mode cetak (opsi: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |106| `--input-format` | Tentukan format input untuk mode cetak (opsi: `text`, `stream-json`) | `claude -p --output-format json --input-format stream-json` |

107| `--json-schema` | Dapatkan output JSON yang divalidasi yang cocok dengan JSON Schema setelah agen menyelesaikan alurnya (mode cetak saja). Lihat [output terstruktur](/docs/id/agent-sdk/structured-outputs). Claude Code keluar dengan kesalahan pada skema yang tidak valid dan menerima kata kunci `format` sebagai anotasi tanpa validasi sisi klien | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |107| `--json-schema` | Dapatkan output JSON yang divalidasi yang cocok dengan JSON Schema setelah agen menyelesaikan alurnya (mode cetak saja). Lihat [output terstruktur](/docs/id/agent-sdk/structured-outputs). Claude Code keluar dengan kesalahan pada skema yang tidak valid dan menerima kata kunci `format` sebagai anotasi tanpa validasi sisi klien | `claude -p --json-schema '{"type":"object","properties":{...}}' "query"` |

108| `--maintenance` | Jalankan [hook Setup](/docs/id/hooks#setup) dengan pencocokan `maintenance` sebelum sesi (mode cetak saja) | `claude -p --maintenance "query"` |108| `--maintenance` | Jalankan [hook Setup](/docs/id/hooks#setup) dengan pencocokan `maintenance` sebelum sesi (mode cetak saja) | `claude -p --maintenance "query"` |

109| `--max-budget-usd` | Jumlah dolar maksimum yang dibelanjakan untuk panggilan API sebelum berhenti (hanya mode print). Claude Code memeriksa batas ini terhadap [estimasi biaya sisi klien](/docs/id/agent-sdk/cost-tracking#estimates-not-billing), yang dapat berbeda dari tagihan Anda. Pengeluaran dari [subagent](/docs/id/sub-agents) dihitung terhadap batas. Ketika Anda kembali ke percakapan dengan `--continue` atau `--resume`, total yang [dipulihkan dari eksekusi sebelumnya](/docs/id/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) tidak dihitung terhadapnya. Setelah pengeluaran mencapai batas, memunculkan subagent lain gagal dengan `Budget limit reached`, dan Claude Code menghentikan subagent latar belakang yang masih berjalan; perilaku penegakan batas ini memerlukan Claude Code v2.1.217 atau lebih baru | `claude -p --max-budget-usd 5.00 "query"` |109| `--max-budget-usd` | Hentikan eksekusi setelah estimasi pengeluaran untuk panggilan API mencapai jumlah ini (mode cetak saja). Claude Code memeriksa batas ini terhadap [estimasi biaya sisi klien](/docs/id/agent-sdk/cost-tracking#estimates-not-billing), yang dapat berbeda dari tagihan Anda. Pengeluaran dari [subagent](/docs/id/sub-agents) dihitung terhadap batas. Pengeluaran dapat melewati batas, jadi [sisakan ruang](/docs/id/agent-sdk/agent-loop#budget-headroom). Ketika Anda kembali ke percakapan dengan `--continue` atau `--resume`, total yang [dipulihkan dari eksekusi sebelumnya](/docs/id/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) tidak dihitung terhadapnya. Setelah pengeluaran mencapai batas, memunculkan subagent lain gagal dengan `Budget limit reached`, dan Claude Code menghentikan subagent latar belakang yang masih berjalan; perilaku penegakan batas ini memerlukan Claude Code v2.1.217 atau lebih baru | `claude -p --max-budget-usd 5.00 "query"` |

110| `--max-turns` | Batasi jumlah putaran agentic (mode cetak saja). Keluar dengan kesalahan ketika batas tercapai. Tidak ada batas secara default. Dengan `--input-format stream-json`, pesan yang masih antri ketika batas mengakhiri putaran tetap antri dan memulai putaran baru dengan batasnya sendiri | `claude -p --max-turns 3 "query"` |110| `--max-turns` | Batasi jumlah putaran agentic (mode cetak saja). Keluar dengan kesalahan ketika batas tercapai. Tidak ada batas secara default. Dengan `--input-format stream-json`, pesan yang masih antri ketika batas mengakhiri putaran tetap antri dan memulai putaran baru dengan batasnya sendiri | `claude -p --max-turns 3 "query"` |

111| `--mcp-config` | Muat server MCP dari file atau string JSON (dipisahkan spasi). Ketika Anda melewatkan bendera ini dengan `-p`, Claude Code menunggu server yang masih tertunda untuk terhubung sebelum menjalankan putaran pertama, hingga waktu tunggu startup [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default; server dengan [daftar alat yang di-cache](/docs/id/mcp#managing-your-servers) melewati tunggu dan terhubung saat penggunaan pertama. Tunggu memerlukan Claude Code v2.1.221 atau lebih baru | `claude --mcp-config ./mcp.json` |111| `--mcp-config` | Muat server MCP dari file atau string JSON (dipisahkan spasi). Ketika Anda melewatkan bendera ini dengan `-p`, Claude Code menunggu server yang masih tertunda untuk terhubung sebelum menjalankan putaran pertama, hingga waktu tunggu startup [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default; server dengan [daftar alat yang di-cache](/docs/id/mcp#managing-your-servers) melewati tunggu dan terhubung saat penggunaan pertama. Tunggu memerlukan Claude Code v2.1.221 atau lebih baru | `claude --mcp-config ./mcp.json` |

112| `--model` | Menetapkan model untuk sesi saat ini dengan [alias model](/docs/id/model-config#model-aliases) seperti `sonnet`, `opus`, `haiku`, atau `fable`, atau nama lengkap model. Menimpa pengaturan [`model`](/docs/id/settings-reference#model) dan [`ANTHROPIC_MODEL`](/docs/id/model-config#environment-variables) | `claude --model claude-sonnet-5` |112| `--model` | Menetapkan model untuk sesi saat ini dengan [alias model](/docs/id/model-config#model-aliases) seperti `sonnet`, `opus`, `haiku`, atau `fable`, atau nama lengkap model. Menimpa pengaturan [`model`](/docs/id/settings-reference#model) dan [`ANTHROPIC_MODEL`](/docs/id/model-config#environment-variables) | `claude --model claude-sonnet-5` |

Details

307| | Tersedia di sesi cloud | Mengapa |307| | Tersedia di sesi cloud | Mengapa |

308| :- | :- | :- |308| :- | :- | :- |

309| `CLAUDE.md` repo Anda | Ya | Bagian dari klon |309| `CLAUDE.md` repo Anda | Ya | Bagian dari klon |

310| Hook `.claude/settings.json` repo Anda dan aturan izin | Ya, dalam sesi dengan satu repositori | Bagian dari klon. Sesi dengan beberapa repositori, termasuk thread [proyek](/docs/id/claude-projects#what-threads-pick-up-from-your-repositories), dimulai di atas klon dan tidak membacanya |310| Hook `.claude/settings.json` repo Anda dan aturan izin | Ya, dalam sesi dengan satu repositori | Bagian dari klon. Untuk sesi dengan beberapa repositori, lihat [pengaturan mana yang dibacanya](/docs/id/settings#settings-in-cloud-sessions) |

311| Server MCP `.mcp.json` repo Anda | Ya, dalam sesi dengan satu repositori | Bagian dari klon, ditemukan dari direktori kerja sesi |311| Server MCP `.mcp.json` repo Anda | Ya, dalam sesi dengan satu repositori | Bagian dari klon, ditemukan dari direktori kerja sesi. Untuk lingkungan yang di-host sendiri, lihat [pengaturan repositori mana yang berlaku](/docs/id/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories) |

312| `.claude/rules/` repo Anda | Ya | Bagian dari klon |312| `.claude/rules/` repo Anda | Ya | Bagian dari klon |

313| `.claude/skills/`, `.claude/agents/`, `.claude/commands/` repo Anda | Ya | Bagian dari klon |313| `.claude/skills/`, `.claude/agents/`, `.claude/commands/` repo Anda | Ya | Bagian dari klon |

314| Plugin dan marketplace yang dideklarasikan di `.claude/settings.json` repo Anda | Tidak | Sesi cloud tidak menginstal plugin yang dihidupkan repositori di bawah [`enabledPlugins`](/docs/id/settings-reference#enabledplugins), termasuk yang dari marketplace yang dicantumkan di bawah [`extraKnownMarketplaces`](/docs/id/settings-reference#extraknownmarketplaces) |314| Plugin dan marketplace yang dideklarasikan di `.claude/settings.json` repo Anda | Tidak | Sesi cloud tidak menginstal plugin yang dihidupkan repositori di bawah [`enabledPlugins`](/docs/id/settings-reference#enabledplugins), termasuk yang dari marketplace yang dicantumkan di bawah [`extraKnownMarketplaces`](/docs/id/settings-reference#extraknownmarketplaces) |


575 575 

576Hook SessionStart berperilaku sama di cloud seperti secara lokal, dengan peringatan ini:576Hook SessionStart berperilaku sama di cloud seperti secara lokal, dengan peringatan ini:

577 577 

578* **Satu repositori per sesi**: sesi dengan beberapa repositori tidak memuat hook dari `.claude/settings.json` repositori apa pun, jadi hook SessionStart yang Anda tentukan di sana tidak berjalan. Instal dependensi untuk sesi tersebut dengan [skrip setup](#setup-scripts) sebagai gantinya.578* **Satu repositori per sesi**: di lingkungan yang dihosting Anthropic, sesi dengan beberapa repositori tidak memuat hook dari `.claude/settings.json` repositori apa pun, jadi hook SessionStart yang Anda tentukan di sana tidak berjalan. Instal dependensi untuk sesi tersebut dengan [skrip setup](#setup-scripts) sebagai gantinya. Untuk lingkungan yang dihosting sendiri, lihat [pengaturan repositori mana yang berlaku](/docs/id/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

579* **Tidak ada scoping khusus cloud**: hook berjalan di sesi lokal dan cloud. Untuk melewati eksekusi lokal, keluar lebih awal kecuali variabel lingkungan `CLAUDE_CODE_REMOTE` adalah `true`, cara yang ditunjukkan oleh [skrip instalasi dependensi](#install-dependencies-with-a-sessionstart-hook).579* **Tidak ada scoping khusus cloud**: hook berjalan di sesi lokal dan cloud. Untuk melewati eksekusi lokal, keluar lebih awal kecuali variabel lingkungan `CLAUDE_CODE_REMOTE` adalah `true`, cara yang ditunjukkan oleh [skrip instalasi dependensi](#install-dependencies-with-a-sessionstart-hook).

580* **Memerlukan akses jaringan**: perintah instalasi perlu menjangkau registri paket. Jika lingkungan Anda menggunakan akses jaringan **None**, hook ini gagal. [Allowlist default](#default-allowed-domains) di bawah **Trusted** mencakup npm, PyPI, RubyGems, dan crates.io.580* **Memerlukan akses jaringan**: perintah instalasi perlu menjangkau registri paket. Jika lingkungan Anda menggunakan akses jaringan **None**, hook ini gagal. [Allowlist default](#default-allowed-domains) di bawah **Trusted** mencakup npm, PyPI, RubyGems, dan crates.io.

581* **Kompatibilitas proxy**: di lingkungan yang dihosting Anthropic, semua lalu lintas keluar melewati [proxy keamanan](#security-proxy), dan beberapa manajer paket tidak bekerja dengan benar dengannya; Bun adalah contoh yang diketahui. Di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments-deploy#default-deny-egress), lalu lintas keluar melewati batas jaringan Anda sendiri.581* **Kompatibilitas proxy**: di lingkungan yang dihosting Anthropic, semua lalu lintas keluar melewati [proxy keamanan](#security-proxy), dan beberapa manajer paket tidak bekerja dengan benar dengannya; Bun adalah contoh yang diketahui. Di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments-deploy#default-deny-egress), lalu lintas keluar melewati batas jaringan Anda sendiri.

commands.md +1 −1

Details

111| `/login` | Masuk ke akun Anthropic Anda |111| `/login` | Masuk ke akun Anthropic Anda |

112| `/logout` | Keluar dari akun Anthropic Anda |112| `/logout` | Keluar dari akun Anthropic Anda |

113| `/loop [interval] [prompt]` | **[Skill](/docs/id/skills#bundled-skills).** Jalankan prompt berulang kali saat sesi tetap terbuka. Hilangkan interval dan Claude [mengatur kecepatan sendiri di antara iterasi](/docs/id/scheduled-tasks#let-claude-choose-the-interval). Hilangkan prompt dan Claude menjalankan [prompt pemeliharaan bawaan](/docs/id/scheduled-tasks#run-the-built-in-maintenance-prompt) atau [`loop.md`](/docs/id/scheduled-tasks#customize-the-default-prompt-with-loop-md) Anda. Contoh: `/loop 5m check if the deploy finished`. Lihat [Jalankan prompt sesuai jadwal](/docs/id/scheduled-tasks). Alias: `/proactive` |113| `/loop [interval] [prompt]` | **[Skill](/docs/id/skills#bundled-skills).** Jalankan prompt berulang kali saat sesi tetap terbuka. Hilangkan interval dan Claude [mengatur kecepatan sendiri di antara iterasi](/docs/id/scheduled-tasks#let-claude-choose-the-interval). Hilangkan prompt dan Claude menjalankan [prompt pemeliharaan bawaan](/docs/id/scheduled-tasks#run-the-built-in-maintenance-prompt) atau [`loop.md`](/docs/id/scheduled-tasks#customize-the-default-prompt-with-loop-md) Anda. Contoh: `/loop 5m check if the deploy finished`. Lihat [Jalankan prompt sesuai jadwal](/docs/id/scheduled-tasks). Alias: `/proactive` |

114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Kelola koneksi server MCP dan autentikasi OAuth. Jalankan tanpa argumen untuk membuka daftar interaktif, atau berikan `reconnect`, `enable`, atau `disable` dengan nama server atau `all` untuk mengubah status koneksi tanpa membukanya. `reconnect all` [mencoba ulang setiap server yang gagal atau memerlukan autentikasi](/docs/id/mcp#retry-failed-servers-yourself). Juga tersedia dalam mode non-interaktif (`-p`), di mana menjalankannya tanpa argumen mencetak ringkasan teks status server alih-alih membuka daftar; memerlukan Claude Code v2.1.205 atau lebih baru |114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | Kelola koneksi server MCP dan autentikasi OAuth. Jalankan tanpa argumen untuk membuka daftar interaktif, atau berikan `reconnect`, `enable`, atau `disable` dengan nama server atau `all` untuk mengubah status koneksi tanpa membukanya. `reconnect all` [mencoba ulang setiap server yang gagal atau memerlukan autentikasi](/docs/id/mcp#retry-failed-servers-yourself). Dalam mode non-interaktif (`-p`), menjalankannya tanpa argumen mencetak ringkasan teks status server alih-alih membuka daftar; memerlukan Claude Code v2.1.205 atau lebih baru |

115| `/memory` | Edit file `CLAUDE.md`, aktifkan atau nonaktifkan [auto memory](/docs/id/memory#auto-memory), dan lihat entri auto memory |115| `/memory` | Edit file `CLAUDE.md`, aktifkan atau nonaktifkan [auto memory](/docs/id/memory#auto-memory), dan lihat entri auto memory |

116| `/mobile` | Tampilkan kode QR untuk mengunduh aplikasi mobile Claude. Alias: `/ios`, `/android` |116| `/mobile` | Tampilkan kode QR untuk mengunduh aplikasi mobile Claude. Alias: `/ios`, `/android` |

117| `/model [model]` | Alihkan model AI dan simpan sebagai default Anda untuk sesi baru. Untuk model yang mendukungnya, gunakan panah kiri/kanan untuk [menyesuaikan tingkat effort](/docs/id/model-config#adjust-effort-level). Tanpa argumen, membuka pemilih; tekan `s` pada baris untuk beralih hanya untuk sesi saat ini. Lihat [kapan Claude Code meminta Anda untuk mengonfirmasi peralihan](/docs/id/prompt-caching#switching-models). Setelah Anda mengonfirmasi peralihan, jika Claude Code meminta, Claude Code menerapkan perubahan tanpa menunggu respons saat ini selesai. Sebelum v2.1.242, Claude Code memutuskan dari feature flag yang diambil dari Anthropic apakah akan menjalankan perintah di tengah giliran atau mengantrikannya sampai giliran selesai, dan selalu mengantrikannya dalam sesi yang tidak [mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti pada [penyedia pihak ketiga](/docs/id/third-party-integrations). Juga tersedia dalam mode non-interaktif (`-p`) dengan argumen model alih-alih pemilih, di mana berlaku hanya untuk sesi saat ini dan tidak disimpan sebagai default Anda; memerlukan Claude Code v2.1.205 atau lebih baru |117| `/model [model]` | Alihkan model AI dan simpan sebagai default Anda untuk sesi baru. Untuk model yang mendukungnya, gunakan panah kiri/kanan untuk [menyesuaikan tingkat effort](/docs/id/model-config#adjust-effort-level). Tanpa argumen, membuka pemilih; tekan `s` pada baris untuk beralih hanya untuk sesi saat ini. Lihat [kapan Claude Code meminta Anda untuk mengonfirmasi peralihan](/docs/id/prompt-caching#switching-models). Setelah Anda mengonfirmasi peralihan, jika Claude Code meminta, Claude Code menerapkan perubahan tanpa menunggu respons saat ini selesai. Sebelum v2.1.242, Claude Code memutuskan dari feature flag yang diambil dari Anthropic apakah akan menjalankan perintah di tengah giliran atau mengantrikannya sampai giliran selesai, dan selalu mengantrikannya dalam sesi yang tidak [mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti pada [penyedia pihak ketiga](/docs/id/third-party-integrations). Juga tersedia dalam mode non-interaktif (`-p`) dengan argumen model alih-alih pemilih, di mana berlaku hanya untuk sesi saat ini dan tidak disimpan sebagai default Anda; memerlukan Claude Code v2.1.205 atau lebih baru |

desktop.md +1 −1

Details

396 Bekerja secara paralel dengan sesi396 Bekerja secara paralel dengan sesi

397</h3>397</h3>

398 398 

399Klik **+ New session** di sidebar, atau tekan **Cmd+N** di macOS atau **Ctrl+N** di Windows, untuk bekerja pada beberapa tugas secara paralel. Tekan **Ctrl+Tab** dan **Ctrl+Shift+Tab** untuk bersiklus melalui sesi di sidebar. Untuk repositori Git, pilih opsi **worktree** di sebelah nama branch untuk memberikan sesi salinan proyek Anda yang terisolasi menggunakan [Git worktrees](/docs/id/worktrees), sehingga perubahan dalam satu sesi tidak mempengaruhi sesi lain sampai Anda melakukan commit.399Klik **+ New session** di sidebar, atau tekan **Cmd+N** di macOS atau **Ctrl+N** di Windows, untuk bekerja pada beberapa tugas secara paralel. Tekan **Ctrl+Tab** dan **Ctrl+Shift+Tab** untuk bersiklus melalui sesi di sidebar. Untuk repositori Git, pilih opsi **worktree** di sebelah nama branch untuk memberikan sesi salinan proyek Anda sendiri yang terisolasi menggunakan [Git worktrees](/docs/id/worktrees).

400 400 

401Untuk melihat dua sesi sekaligus, tahan **Cmd** di macOS atau **Ctrl** di Windows dan klik sesi di sidebar. Sesi terbuka di pane kedua di samping yang sudah Anda buka. Saat split aktif, mengklik sesi sidebar lain mengganti pane mana pun yang memiliki fokus. Tekan **Cmd+\\** di macOS atau **Ctrl+\\** di Windows untuk menutup pane yang difokuskan dan kembali ke sesi tunggal.401Untuk melihat dua sesi sekaligus, tahan **Cmd** di macOS atau **Ctrl** di Windows dan klik sesi di sidebar. Sesi terbuka di pane kedua di samping yang sudah Anda buka. Saat split aktif, mengklik sesi sidebar lain mengganti pane mana pun yang memiliki fokus. Tekan **Cmd+\\** di macOS atau **Ctrl+\\** di Windows untuk menutup pane yang difokuskan dan kembali ke sesi tunggal.

402 402 

env-vars.md +285 −280

Details

21 21 

22Variabel yang Anda atur di shell Anda berlaku untuk sesi terminal tersebut, sementara variabel dalam file pengaturan berlaku setiap kali `claude` dijalankan.22Variabel yang Anda atur di shell Anda berlaku untuk sesi terminal tersebut, sementara variabel dalam file pengaturan berlaku setiap kali `claude` dijalankan.

23 23 

24<h3 id="in-your-shell">24<span id="in-your-shell" />

25 Di shell Anda25 

26<h3 id="set-variables-in-your-shell">

27 Atur variabel di shell Anda

26</h3>28</h3>

27 29 

28Atur variabel sebelum meluncurkan `claude`:30Atur variabel sebelum meluncurkan `claude`:


78 </Tab>80 </Tab>

79</Tabs>81</Tabs>

80 82 

81<h3 id="in-settings-files">83<span id="in-settings-files" />

82 Di file pengaturan84 

85<h3 id="set-variables-in-settings-files">

86 Atur variabel di file pengaturan

83</h3>87</h3>

84 88 

85Tambahkan variabel di bawah kunci `env` dalam file `settings.json`, buat file jika belum ada. Claude Code membacanya langsung dari file, jadi variabel tersebut berlaku tidak peduli bagaimana `claude` diluncurkan. Sesi yang sedang berjalan menerapkan nilai baru dan yang diubah ke lingkungannya saat Anda menyimpan file, tetapi fitur yang membaca variabelnya sekali saat startup, seperti [pemantauan OpenTelemetry](/docs/id/monitoring-usage), mempertahankan nilai startupnya sampai Anda meluncurkan kembali. Menghapus variabel dari file tidak membatalkan pengaturannya dalam sesi yang sedang berjalan; penghapusan berlaku saat berikutnya Anda meluncurkan `claude`.89Tambahkan variabel di bawah kunci `env` dalam file `settings.json`, buat file jika belum ada. Claude Code membacanya langsung dari file, jadi variabel tersebut berlaku tidak peduli bagaimana `claude` diluncurkan. Sesi yang sedang berjalan menerapkan nilai baru dan yang diubah ke lingkungannya saat Anda menyimpan file, tetapi fitur yang membaca variabelnya sekali saat startup, seperti [pemantauan OpenTelemetry](/docs/id/monitoring-usage), mempertahankan nilai startupnya sampai Anda meluncurkan kembali. Menghapus variabel dari file tidak membatalkan pengaturannya dalam sesi yang sedang berjalan; penghapusan berlaku saat berikutnya Anda meluncurkan `claude`.


120 124 

121Bagaimana variabel lingkungan berinteraksi dengan bendera CLI dan perintah dalam sesi bervariasi per fitur: `--model` dan `/model` mengganti `ANTHROPIC_MODEL`, sementara `CLAUDE_CODE_EFFORT_LEVEL` mengganti `--effort` dan `/effort`. Ketika variabel berinteraksi dengan sumber konfigurasi lain, barisnya dalam daftar [Variabel](#variables) menyatakan urutan prioritas atau menautkan ke halaman yang mendokumentasikannya.125Bagaimana variabel lingkungan berinteraksi dengan bendera CLI dan perintah dalam sesi bervariasi per fitur: `--model` dan `/model` mengganti `ANTHROPIC_MODEL`, sementara `CLAUDE_CODE_EFFORT_LEVEL` mengganti `--effort` dan `/effort`. Ketika variabel berinteraksi dengan sumber konfigurasi lain, barisnya dalam daftar [Variabel](#variables) menyatakan urutan prioritas atau menautkan ke halaman yang mendokumentasikannya.

122 126 

123Claude Code membaca variabel lingkungan shell saat startup, jadi perubahan pada variabel tersebut berlaku saat Anda meluncurkan `claude` berikutnya. Variabel yang diatur di bawah kunci `env` dalam file pengaturan diterapkan kembali ke sesi yang sedang berjalan ketika file berubah, dengan pengecualian startup-only yang dijelaskan dalam [Dalam file pengaturan](#in-settings-files).127Claude Code membaca environment variable shell saat startup, jadi perubahan pada variabel tersebut berlaku saat Anda meluncurkan `claude` berikutnya. Variabel yang diatur di bawah kunci `env` dalam file pengaturan diterapkan kembali ke sesi yang sedang berjalan ketika file berubah, dengan pengecualian startup-only yang dijelaskan dalam [Mengatur variabel dalam file pengaturan](#in-settings-files).

124 128 

125<h2 id="variables">129<h2 id="variables">

126 Variabel130 Variabel

127</h2>131</h2>

128 132 

129Variabel numerik seperti timeout, anggaran token, dan jumlah retry menerima notasi ilmiah dan penulisan dengan pemisah digit selain digit biasa, kecuali jika baris variabel tersebut mencatat bahwa variabel itu hanya menerima digit biasa. Misalnya, Claude Code membaca `2e3` sebagai 2000 dan `64_000` sebagai 64000. Sebelum v2.1.211, penulisan seperti ini dapat secara diam-diam menetapkan nilai yang jauh lebih kecil, seperti `1e6` yang menetapkan timeout menjadi 1.133Variabel numerik seperti timeout, anggaran token, dan jumlah retry menerima notasi ilmiah dan penulisan dengan pemisah digit selain digit biasa, kecuali jika baris suatu variabel menyatakan bahwa variabel tersebut hanya menerima digit biasa. Misalnya, Claude Code membaca `2e3` sebagai 2000 dan `64_000` sebagai 64000. Sebelum v2.1.211, penulisan ini dapat secara diam-diam menetapkan nilai yang jauh lebih kecil, seperti `1e6` yang menetapkan timeout menjadi 1.

130 134 

131<Note>135<Note>

132 Untuk variabel yang mengaktifkan atau menonaktifkan suatu perilaku, tetapkan `1`, `true`, `yes`, atau `on` untuk mengaktifkannya dan `0`, `false`, `no`, atau `off` untuk menonaktifkannya, dengan huruf besar atau kecil apa pun.136 Untuk variabel yang mengaktifkan atau menonaktifkan suatu perilaku, tetapkan `1`, `true`, `yes`, atau `on` untuk mengaktifkannya dan `0`, `false`, `no`, atau `off` untuk menonaktifkannya, dengan huruf besar atau kecil apa pun.

133 137 

134 Beberapa variabel hanya membaca apakah Anda menetapkannya atau tidak, sehingga nilai tidak kosong apa pun termasuk `0` mengaktifkan perilaku tersebut, dan Anda menonaktifkan perilaku tersebut dengan menghapus variabel atau menetapkannya ke nilai kosong. Variabel-variabel berikut bekerja dengan cara itu:138 Beberapa variabel hanya membaca apakah Anda menetapkannya atau tidak, sehingga nilai apa pun yang tidak kosong termasuk `0` akan mengaktifkan perilaku tersebut, dan Anda menonaktifkan perilaku tersebut dengan menghapus variabel atau menetapkannya ke nilai kosong. Variabel-variabel berikut bekerja dengan cara tersebut:

135 139 

136 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`140 * `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

137 * `DISABLE_TELEMETRY`141 * `DISABLE_TELEMETRY`


145 149 

146| Variabel | Tujuan |150| Variabel | Tujuan |

147| :- | :- |151| :- | :- |

148| `ANTHROPIC_API_KEY` | Kunci API yang dikirim sebagai header `X-Api-Key`. Jika ditetapkan, kunci ini digunakan sebagai pengganti langganan Claude Pro, Max, Team, atau Enterprise Anda meskipun Anda sudah masuk. Dalam mode non-interaktif (`-p`), kunci selalu digunakan jika ada. Dalam mode interaktif, Anda diminta untuk menyetujui kunci tersebut satu kali sebelum kunci itu menimpa langganan Anda. Untuk menggunakan langganan Anda sebagai gantinya, jalankan `unset ANTHROPIC_API_KEY` |152| `ANTHROPIC_API_KEY` | Kunci API yang dikirim sebagai header `X-Api-Key`. Saat ditetapkan, kunci ini digunakan alih-alih langganan Claude Pro, Max, Team, atau Enterprise Anda meskipun Anda sudah masuk. Dalam mode non-interaktif (`-p`), kunci selalu digunakan jika ada. Dalam mode interaktif, Anda diminta untuk menyetujui kunci satu kali sebelum kunci tersebut menimpa langganan Anda. Untuk menggunakan langganan Anda sebagai gantinya, jalankan `unset ANTHROPIC_API_KEY` |

149| `ANTHROPIC_AUTH_TOKEN` | Nilai kustom untuk header `Authorization` (nilai yang Anda tetapkan di sini akan diberi awalan `Bearer `) |153| `ANTHROPIC_AUTH_TOKEN` | Nilai kustom untuk header `Authorization` (nilai yang Anda tetapkan di sini akan diberi awalan `Bearer `) |

150| `ANTHROPIC_AWS_API_KEY` | Kunci API workspace untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws), yang dibuat di AWS Console. Dikirim sebagai `x-api-key` dan diutamakan daripada AWS SigV4 |154| `ANTHROPIC_AWS_API_KEY` | Kunci API workspace untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws), yang dibuat di AWS Console. Dikirim sebagai `x-api-key` dan diutamakan daripada AWS SigV4 |

151| `ANTHROPIC_AWS_BASE_URL` | Menimpa URL endpoint [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Gunakan untuk region kustom atau saat merutekan melalui [LLM gateway](/docs/id/llm-gateway). Default-nya `https://aws-external-anthropic.{region}.api.aws`. Claude Code menentukan region dengan [urutan prioritas yang sama seperti di Amazon Bedrock](/docs/id/amazon-bedrock#3-configure-claude-code) |155| `ANTHROPIC_AWS_BASE_URL` | Menimpa URL endpoint [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Gunakan untuk region kustom atau saat merutekan melalui [LLM gateway](/docs/id/llm-gateway). Default-nya `https://aws-external-anthropic.{region}.api.aws`. Claude Code menentukan region dengan [urutan prioritas yang sama seperti di Amazon Bedrock](/docs/id/amazon-bedrock#3-configure-claude-code) |

152| `ANTHROPIC_AWS_WORKSPACE_ID` | Wajib untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Dikirim pada setiap permintaan sebagai header `anthropic-workspace-id` |156| `ANTHROPIC_AWS_WORKSPACE_ID` | Wajib untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Dikirim pada setiap permintaan sebagai header `anthropic-workspace-id` |

153| `ANTHROPIC_BASE_URL` | Menimpa endpoint API untuk merutekan permintaan melalui proxy atau gateway. Jika ditetapkan ke host yang bukan pihak pertama, [MCP tool search](/docs/id/mcp#scale-with-mcp-tool-search) dinonaktifkan secara default. Tetapkan `ENABLE_TOOL_SEARCH=true` jika proxy Anda meneruskan blok `tool_reference`. Sejak v2.1.196, [Remote Control](/docs/id/remote-control#requirements) dinonaktifkan jika variabel ini mengarah ke host selain `api.anthropic.com`, sesuai dengan perilakunya di Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry |157| `ANTHROPIC_BASE_URL` | Menimpa endpoint API untuk merutekan permintaan melalui proxy atau gateway. Saat ditetapkan ke host yang bukan pihak pertama, [MCP tool search](/docs/id/mcp#scale-with-mcp-tool-search) dinonaktifkan secara default. Tetapkan `ENABLE_TOOL_SEARCH=true` jika proxy Anda meneruskan blok `tool_reference`. Sejak v2.1.196, [Remote Control](/docs/id/remote-control#requirements) dinonaktifkan saat variabel ini mengarah ke host selain `api.anthropic.com`, sesuai dengan perilakunya di Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry |

154| `ANTHROPIC_BEDROCK_BASE_URL` | Menimpa URL endpoint Amazon Bedrock. Gunakan untuk endpoint Amazon Bedrock kustom atau saat merutekan melalui [LLM gateway](/docs/id/llm-gateway). Lihat [Amazon Bedrock](/docs/id/amazon-bedrock) |158| `ANTHROPIC_BEDROCK_BASE_URL` | Menimpa URL endpoint Amazon Bedrock. Gunakan untuk endpoint Amazon Bedrock kustom atau saat merutekan melalui [LLM gateway](/docs/id/llm-gateway). Lihat [Amazon Bedrock](/docs/id/amazon-bedrock) |

155| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Menimpa URL endpoint Amazon Bedrock Mantle. Lihat [Endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) |159| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Menimpa URL endpoint Amazon Bedrock Mantle. Lihat [Endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) |

156| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Awalan profil inferensi lintas region (`us`, `eu`, `apac`, `jp`, `au`, atau `global`) yang dicoba Claude Code terlebih dahulu alih-alih awalan yang diturunkan dari region AWS. Diabaikan di region AWS GovCloud. Memerlukan Claude Code v2.1.224 atau lebih baru. Lihat [Amazon Bedrock](/docs/id/amazon-bedrock#cross-region-inference-profile-prefixes) |160| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Awalan profil inferensi lintas region (`us`, `eu`, `apac`, `jp`, `au`, atau `global`) yang dicoba Claude Code terlebih dahulu alih-alih awalan yang diturunkan dari region AWS. Diabaikan di region AWS GovCloud. Memerlukan Claude Code v2.1.224 atau lebih baru. Lihat [Amazon Bedrock](/docs/id/amazon-bedrock#cross-region-inference-profile-prefixes) |

157| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Tingkat layanan](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) Amazon Bedrock (`default`, `flex`, atau `priority`). Dikirim sebagai header `X-Amzn-Bedrock-Service-Tier`. Lihat [Amazon Bedrock](/docs/id/amazon-bedrock#service-tiers) |161| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Tingkat layanan](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) Amazon Bedrock (`default`, `flex`, atau `priority`). Dikirim sebagai header `X-Amzn-Bedrock-Service-Tier`. Lihat [Amazon Bedrock](/docs/id/amazon-bedrock#service-tiers) |

158| `ANTHROPIC_BETAS` | Daftar nilai header `anthropic-beta` tambahan yang dipisahkan koma untuk disertakan dalam permintaan API. Claude Code sudah mengirim header beta yang dibutuhkannya; gunakan ini untuk ikut serta dalam [beta Anthropic API](https://platform.claude.com/docs/en/api/beta-headers) sebelum Claude Code menambahkan dukungan native. Berbeda dengan [flag `--betas`](/docs/id/cli-reference#cli-flags), yang memerlukan autentikasi kunci API, variabel ini berfungsi dengan semua metode autentikasi termasuk langganan Claude.ai |162| `ANTHROPIC_BETAS` | Daftar nilai header `anthropic-beta` tambahan yang dipisahkan koma untuk disertakan dalam permintaan API. Claude Code sudah mengirim header beta yang dibutuhkannya; gunakan ini untuk ikut serta dalam [beta Anthropic API](https://platform.claude.com/docs/en/api/beta-headers) sebelum Claude Code menambahkan dukungan bawaan. Berbeda dengan [flag `--betas`](/docs/id/cli-reference#cli-flags), yang memerlukan autentikasi kunci API, variabel ini berfungsi dengan semua metode autentikasi termasuk langganan Claude.ai |

159| `ANTHROPIC_CUSTOM_HEADERS` | Header kustom untuk ditambahkan ke permintaan (format `Name: Value`, dipisahkan baris baru untuk beberapa header). Jika nama atau nilai berisi karakter yang tidak dapat dibawa oleh header HTTP, seperti tanda kutip melengkung atau spasi lebar nol, permintaan gagal dengan error yang mengidentifikasi pasangan tersebut berdasarkan posisinya. Memerlukan Claude Code v2.1.227 atau lebih baru. [Invalid request header value](/docs/id/errors#invalid-request-header-value) mencantumkan set karakter yang tepat dan di mana pemeriksaan dijalankan. Nilai yang menetapkan header kredensial, organisasi atau tenant, perutean, atau perilaku API, seperti `Authorization` atau `Host`, dihitung sebagai [pengaturan yang memerlukan persetujuan](/docs/id/server-managed-settings#environment-variables-and-the-approval-dialog) ketika pengaturan yang dikelola server mengirimkannya. Dari pengaturan proyek atau lokal, nilai seperti itu mengikuti [aturan kapan nilai `env` diterapkan](/docs/id/settings-reference#when-claude-code-applies-env-values) |163| `ANTHROPIC_CUSTOM_HEADERS` | Header kustom untuk ditambahkan ke permintaan (format `Name: Value`, dipisahkan baris baru untuk beberapa header). Jika nama atau nilai berisi karakter yang tidak dapat dibawa oleh header HTTP, seperti tanda kutip melengkung atau spasi lebar nol, permintaan gagal dengan error yang mengidentifikasi pasangan tersebut berdasarkan posisinya. Memerlukan Claude Code v2.1.227 atau lebih baru. [Invalid request header value](/docs/id/errors#invalid-request-header-value) mencantumkan kumpulan karakter yang tepat dan tempat pemeriksaan dijalankan. Nilai yang menetapkan header kredensial, organisasi atau tenant, perutean, atau perilaku API, seperti `Authorization` atau `Host`, dianggap sebagai [pengaturan yang memerlukan persetujuan](/docs/id/server-managed-settings#environment-variables-and-the-approval-dialog) saat dikirimkan oleh pengaturan yang dikelola server. Dari pengaturan proyek atau lokal, nilai semacam itu mengikuti [aturan kapan nilai `env` diterapkan](/docs/id/settings-reference#when-claude-code-applies-env-values) |

160| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID model yang ditambahkan sebagai entri kustom di pemilih `/model`. Gunakan ini agar model non-standar atau khusus gateway dapat dipilih tanpa mengganti alias bawaan. Lihat [Konfigurasi model](/docs/id/model-config#add-a-custom-model-option) |164| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID model untuk ditambahkan sebagai entri kustom di pemilih `/model`. Gunakan ini untuk membuat model non-standar atau khusus gateway dapat dipilih tanpa menggantikan alias bawaan. Lihat [Konfigurasi model](/docs/id/model-config#add-a-custom-model-option) |

161| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Deskripsi tampilan untuk entri model kustom di pemilih `/model`. Default-nya `Custom model (<model-id>)` jika tidak ditetapkan |165| `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` | Deskripsi tampilan untuk entri model kustom di pemilih `/model`. Default-nya `Custom model (<model-id>)` jika tidak ditetapkan |

162| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nama tampilan untuk entri model kustom di pemilih `/model`. Jika tidak ditetapkan, entri menampilkan nama model jika Claude Code [mengenali ID tersebut](/docs/id/model-config#customize-pinned-model-display-and-capabilities), dan ID model jika tidak |166| `ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` | Nama tampilan untuk entri model kustom di pemilih `/model`. Jika tidak ditetapkan, entri menampilkan nama model jika Claude Code [mengenali ID tersebut](/docs/id/model-config#customize-pinned-model-display-and-capabilities), dan ID model jika tidak |

163| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model kustom, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |167| `ANTHROPIC_CUSTOM_MODEL_OPTION_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model kustom, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

164| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID model yang menjadi tujuan alias `fable`, dan ID yang dikenali Claude Code sebagai model Fable untuk [fallback model otomatis](/docs/id/model-config#automatic-model-fallback) pada penyedia pihak ketiga. Lihat [Konfigurasi model](/docs/id/model-config#environment-variables) |168| `ANTHROPIC_DEFAULT_FABLE_MODEL` | ID model yang dirujuk oleh alias `fable`, dan ID yang dikenali Claude Code sebagai model Fable untuk [fallback model otomatis](/docs/id/model-config#automatic-model-fallback) pada penyedia pihak ketiga. Lihat [Konfigurasi model](/docs/id/model-config#environment-variables) |

165| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Fable yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan deskripsi default yang diawali `Custom Fable model`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |169| `ANTHROPIC_DEFAULT_FABLE_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Fable yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan deskripsi default yang diawali `Custom Fable model`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

166| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nama tampilan untuk model Fable yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan jika tidak. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |170| `ANTHROPIC_DEFAULT_FABLE_MODEL_NAME` | Nama tampilan untuk model Fable yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan jika tidak. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

167| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model Fable yang disematkan, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |171| `ANTHROPIC_DEFAULT_FABLE_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model Fable yang disematkan, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

168| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID model yang menjadi tujuan alias `haiku`, juga digunakan untuk [fungsionalitas latar belakang](/docs/id/costs#background-token-usage). Lihat [Konfigurasi model](/docs/id/model-config#environment-variables) |172| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | ID model yang dirujuk oleh alias `haiku`, juga digunakan untuk [fungsionalitas latar belakang](/docs/id/costs#background-token-usage). Lihat [Konfigurasi model](/docs/id/model-config#environment-variables) |

169| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Haiku yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan deskripsi default yang diawali `Custom Haiku model`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |173| `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Haiku yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan deskripsi default yang diawali `Custom Haiku model`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

170| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nama tampilan untuk model Haiku yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan jika tidak. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |174| `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Nama tampilan untuk model Haiku yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan jika tidak. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

171| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model Haiku yang disematkan, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |175| `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model Haiku yang disematkan, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

172| `ANTHROPIC_DEFAULT_MODEL` | Model yang digunakan sesi baru secara default saat dimulai. Memerlukan Claude Code v2.1.236 atau lebih baru. Lihat [Menetapkan model default untuk sesi baru](/docs/id/model-config#set-a-default-model-for-new-sessions) |176| `ANTHROPIC_DEFAULT_MODEL` | Model yang digunakan sesi baru secara default saat dimulai. Memerlukan Claude Code v2.1.236 atau lebih baru. Lihat [Menetapkan model default untuk sesi baru](/docs/id/model-config#set-a-default-model-for-new-sessions) |

173| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID model yang menjadi tujuan alias `opus`, dan yang digunakan `opusplan` saat Plan Mode aktif. Lihat [Konfigurasi model](/docs/id/model-config#environment-variables) |177| `ANTHROPIC_DEFAULT_OPUS_MODEL` | ID model yang dirujuk oleh alias `opus`, dan yang digunakan `opusplan` saat Plan Mode aktif. Lihat [Konfigurasi model](/docs/id/model-config#environment-variables) |

174| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Opus yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan deskripsi default yang diawali `Custom Opus model`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |178| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Opus yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan deskripsi default yang diawali `Custom Opus model`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

175| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nama tampilan untuk model Opus yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan jika tidak. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |179| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Nama tampilan untuk model Opus yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan jika tidak. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

176| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model Opus yang disematkan, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |180| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model Opus yang disematkan, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

177| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID model yang menjadi tujuan alias `sonnet`, dan yang digunakan `opusplan` saat Plan Mode tidak aktif. Lihat [Konfigurasi model](/docs/id/model-config#environment-variables) |181| `ANTHROPIC_DEFAULT_SONNET_MODEL` | ID model yang dirujuk oleh alias `sonnet`, dan yang digunakan `opusplan` saat Plan Mode tidak aktif. Lihat [Konfigurasi model](/docs/id/model-config#environment-variables) |

178| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Sonnet yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan deskripsi default yang diawali `Custom Sonnet model`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |182| `ANTHROPIC_DEFAULT_SONNET_MODEL_DESCRIPTION` | Deskripsi tampilan untuk model Sonnet yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan deskripsi default yang diawali `Custom Sonnet model`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

179| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nama tampilan untuk model Sonnet yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan jika tidak. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |183| `ANTHROPIC_DEFAULT_SONNET_MODEL_NAME` | Nama tampilan untuk model Sonnet yang disematkan di pemilih `/model`. Jika tidak ditetapkan, baris menampilkan nama model jika Claude Code mengenali ID yang disematkan, dan ID yang disematkan jika tidak. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

180| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model Sonnet yang disematkan, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |184| `ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES` | Daftar [kapabilitas](/docs/id/model-config#customize-pinned-model-display-and-capabilities) yang didukung model Sonnet yang disematkan, dipisahkan koma, misalnya `effort,thinking`. Lihat [Konfigurasi model](/docs/id/model-config#customize-pinned-model-display-and-capabilities) |

181| `ANTHROPIC_FEDERATION_RULE_ID` | ID aturan federasi untuk [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Jika Anda menetapkannya bersama dengan `ANTHROPIC_ORGANIZATION_ID`, Claude Code memilih kredensial federasi, yang memiliki prioritas lebih tinggi daripada kredensial `/login` Anda. Lihat [prioritas autentikasi](/docs/id/authentication#authentication-precedence) |185| `ANTHROPIC_FEDERATION_RULE_ID` | ID aturan federasi untuk [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Saat Anda menetapkannya bersama `ANTHROPIC_ORGANIZATION_ID`, Claude Code memilih kredensial federasi, yang berperingkat lebih tinggi daripada kredensial `/login` Anda. Lihat [urutan prioritas autentikasi](/docs/id/authentication#authentication-precedence) |

182| `ANTHROPIC_FOUNDRY_API_KEY` | Kunci API untuk autentikasi Microsoft Foundry (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |186| `ANTHROPIC_FOUNDRY_API_KEY` | Kunci API untuk autentikasi Microsoft Foundry (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |

183| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Bearer token untuk autentikasi Microsoft Foundry, seperti token akses Microsoft Entra. Claude Code mengirimkannya sebagai header `Authorization: Bearer`. Diutamakan daripada `ANTHROPIC_FOUNDRY_API_KEY` dan daripada rantai kredensial default Azure. Lihat [Microsoft Foundry](/docs/id/microsoft-foundry). Memerlukan Claude Code v2.1.203 atau lebih baru |187| `ANTHROPIC_FOUNDRY_AUTH_TOKEN` | Bearer token untuk autentikasi Microsoft Foundry, seperti token akses Microsoft Entra. Claude Code mengirimkannya sebagai header `Authorization: Bearer`. Diutamakan daripada `ANTHROPIC_FOUNDRY_API_KEY` dan daripada rantai kredensial default Azure. Lihat [Microsoft Foundry](/docs/id/microsoft-foundry). Memerlukan Claude Code v2.1.203 atau lebih baru |

184| `ANTHROPIC_FOUNDRY_BASE_URL` | URL dasar lengkap untuk resource Microsoft Foundry (misalnya, `https://my-resource.services.ai.azure.com/anthropic`). Alternatif untuk `ANTHROPIC_FOUNDRY_RESOURCE` (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |188| `ANTHROPIC_FOUNDRY_BASE_URL` | URL dasar lengkap untuk resource Microsoft Foundry (misalnya, `https://my-resource.services.ai.azure.com/anthropic`). Alternatif untuk `ANTHROPIC_FOUNDRY_RESOURCE` (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |

185| `ANTHROPIC_FOUNDRY_RESOURCE` | Nama resource Microsoft Foundry (misalnya, `my-resource`). Claude Code [menolak URL atau nama host](/docs/id/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Wajib jika `ANTHROPIC_FOUNDRY_BASE_URL` tidak ditetapkan (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |189| `ANTHROPIC_FOUNDRY_RESOURCE` | Nama resource Microsoft Foundry (misalnya, `my-resource`). Claude Code [menolak URL atau nama host](/docs/id/errors#anthropic-foundry-resource-must-be-a-foundry-resource-name). Wajib jika `ANTHROPIC_FOUNDRY_BASE_URL` tidak ditetapkan (lihat [Microsoft Foundry](/docs/id/microsoft-foundry)) |

186| `ANTHROPIC_MODEL` | Nama pengaturan model yang akan digunakan (lihat [Konfigurasi Model](/docs/id/model-config#environment-variables)) |190| `ANTHROPIC_MODEL` | Nama pengaturan model yang akan digunakan (lihat [Konfigurasi Model](/docs/id/model-config#environment-variables)) |

187| `ANTHROPIC_ORGANIZATION_ID` | ID organisasi untuk [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Tetapkan bersama dengan `ANTHROPIC_FEDERATION_RULE_ID`. Lihat [prioritas autentikasi](/docs/id/authentication#authentication-precedence) |191| `ANTHROPIC_ORGANIZATION_ID` | ID organisasi untuk [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Tetapkan bersama `ANTHROPIC_FEDERATION_RULE_ID`. Lihat [urutan prioritas autentikasi](/docs/id/authentication#authentication-precedence) |

188| `ANTHROPIC_PROFILE` | Nama profil Anthropic yang digunakan untuk autentikasi, seperti profil yang dibuat oleh [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) atau dengan [masuk ke akun Console tanpa kunci API](/docs/id/authentication#sign-in-without-an-api-key). Lihat [prioritas autentikasi](/docs/id/authentication#authentication-precedence) |192| `ANTHROPIC_PROFILE` | Nama profil Anthropic yang digunakan untuk autentikasi, seperti profil yang dibuat oleh [`ant auth login`](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/authentication) atau dengan [masuk ke akun Console tanpa kunci API](/docs/id/authentication#sign-in-without-an-api-key). Lihat [urutan prioritas autentikasi](/docs/id/authentication#authentication-precedence) |

189| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] Nama [model kelas Haiku untuk tugas latar belakang](/docs/id/costs) |193| `ANTHROPIC_SMALL_FAST_MODEL` | \[DEPRECATED] Nama [model kelas Haiku untuk tugas latar belakang](/docs/id/costs) |

190| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Menimpa region AWS untuk model kelas Haiku saat menggunakan Amazon Bedrock atau Amazon Bedrock Mantle. Di Amazon Bedrock, ini hanya berlaku jika `ANTHROPIC_DEFAULT_HAIKU_MODEL` atau `ANTHROPIC_SMALL_FAST_MODEL` yang sudah deprecated juga ditetapkan, karena jika tidak, Amazon Bedrock menjalankan tugas latar belakang pada [model Sonnet default atau model utama](/docs/id/amazon-bedrock#4-pin-model-versions) di region sesi |194| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | Menimpa region AWS untuk model kelas Haiku saat menggunakan Amazon Bedrock atau Amazon Bedrock Mantle. Di Amazon Bedrock, ini hanya berlaku jika `ANTHROPIC_DEFAULT_HAIKU_MODEL` atau `ANTHROPIC_SMALL_FAST_MODEL` yang sudah deprecated juga ditetapkan, karena jika tidak, Amazon Bedrock menjalankan tugas latar belakang pada [model Sonnet default atau model utama](/docs/id/amazon-bedrock#4-pin-model-versions) di region sesi |

191| `ANTHROPIC_VERTEX_BASE_URL` | Menimpa URL endpoint Google Cloud's Agent Platform. Gunakan untuk endpoint Google Cloud's Agent Platform kustom atau saat merutekan melalui [LLM gateway](/docs/id/llm-gateway). Lihat [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) |195| `ANTHROPIC_VERTEX_BASE_URL` | Menimpa URL endpoint Google Cloud's Agent Platform. Gunakan untuk endpoint Google Cloud's Agent Platform kustom atau saat merutekan melalui [LLM gateway](/docs/id/llm-gateway). Lihat [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) |

192| `ANTHROPIC_VERTEX_PROJECT_ID` | ID proyek GCP yang menjadi tujuan permintaan Google Cloud's Agent Platform. Lihat [Mengonfigurasi kredensial GCP](/docs/id/google-vertex-ai#3-configure-gcp-credentials) |196| `ANTHROPIC_VERTEX_PROJECT_ID` | ID proyek GCP yang menjadi tujuan permintaan Google Cloud's Agent Platform. Lihat [Mengonfigurasi kredensial GCP](/docs/id/google-vertex-ai#3-configure-gcp-credentials) |

193| `ANTHROPIC_WORKSPACE_ID` | ID workspace untuk [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Tetapkan ini ketika aturan federasi Anda mencakup lebih dari satu workspace agar pertukaran token mengetahui workspace mana yang dituju |197| `ANTHROPIC_WORKSPACE_ID` | ID workspace untuk [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation). Tetapkan ini saat aturan federasi Anda mencakup lebih dari satu workspace agar pertukaran token mengetahui workspace mana yang dituju |

194| `API_FORCE_IDLE_TIMEOUT` | Menimpa timeout idle body 5 menit yang membatalkan respons model streaming ketika tidak ada byte yang tiba. Tetapkan ke `0` untuk menonaktifkan timeout, misalnya ketika [gateway](/docs/id/llm-gateway) yang lambat atau model lokal berhenti lebih dari 5 menit di antara chunk, atau `1` untuk tetap mengaktifkannya untuk setiap penyedia. Jika tidak ditetapkan, timeout aktif pada penyedia selain Anthropic API langsung, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan Amazon Bedrock dengan `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` ditetapkan. [Stream watchdog](/docs/id/network-config#streaming-idle-watchdogs) berjalan secara independen darinya dan membatalkan jeda senyap yang panjang meskipun Anda menetapkan `0` di sini |198| `API_FORCE_IDLE_TIMEOUT` | Menimpa timeout idle body 5 menit yang membatalkan respons model streaming saat tidak ada byte yang tiba. Tetapkan ke `0` untuk mematikan timeout, misalnya saat [gateway](/docs/id/llm-gateway) yang lambat atau model lokal berhenti lebih dari 5 menit di antara potongan data, atau `1` untuk tetap mengaktifkannya bagi setiap penyedia. Jika tidak ditetapkan, timeout aktif pada penyedia selain Anthropic API langsung, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan Amazon Bedrock dengan `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK=1` ditetapkan. [Stream watchdog](/docs/id/network-config#streaming-idle-watchdogs) berjalan secara independen darinya dan membatalkan jeda senyap yang panjang bahkan saat Anda menetapkan `0` di sini |

195| `API_TIMEOUT_MS` | Timeout untuk permintaan API dalam milidetik (default: 600000, atau 10 menit; maksimum: 2147483647). Naikkan nilai ini ketika permintaan mengalami timeout di jaringan yang lambat atau saat merutekan melalui proxy. Nilai di atas maksimum menyebabkan overflow pada timer yang mendasarinya dan membuat permintaan langsung gagal |199| `API_TIMEOUT_MS` | Timeout untuk permintaan API dalam milidetik (default: 600000, atau 10 menit; maksimum: 2147483647). Naikkan nilai ini saat permintaan mengalami timeout pada jaringan lambat atau saat merutekan melalui proxy. Nilai di atas maksimum menyebabkan overflow pada timer yang mendasarinya dan membuat permintaan langsung gagal |

196| `AWS_BEARER_TOKEN_BEDROCK` | Kunci API Amazon Bedrock untuk autentikasi (lihat [Kunci API Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |200| `AWS_BEARER_TOKEN_BEDROCK` | Kunci API Amazon Bedrock untuk autentikasi (lihat [Kunci API Amazon Bedrock](https://aws.amazon.com/blogs/machine-learning/accelerate-ai-development-with-amazon-bedrock-api-keys/)) |

197| `BASH_DEFAULT_TIMEOUT_MS` | Timeout default untuk perintah tool Bash atau PowerShell di latar depan, dalam milidetik (default: 120000, atau 2 menit). Nilai di atas [batas waktu default untuk perintah latar belakang](/docs/id/tools-reference#time-limit-for-background-commands) menggantikan default tersebut dalam sesi tanpa pengawasan. Batas waktu latar belakang memerlukan Claude Code v2.1.285 atau lebih baru |201| `BASH_DEFAULT_TIMEOUT_MS` | Timeout default untuk perintah tool Bash atau PowerShell di latar depan, dalam milidetik (default: 120000, atau 2 menit). Nilai di atas [batas waktu default untuk perintah latar belakang](/docs/id/tools-reference#time-limit-for-background-commands) menggantikan default tersebut dalam sesi tanpa pengawasan. Batas waktu latar belakang memerlukan Claude Code v2.1.285 atau lebih baru |

198| `BASH_MAX_OUTPUT_LENGTH` | Jumlah maksimum karakter output bash yang dibaca kembali oleh Claude Code ke dalam hasil perintah (default: 30000; maksimum: 150000). Jika Anda menetapkan pengaturan [`bashOutputMaxChars`](/docs/id/settings-reference#bashoutputmaxchars), Claude Code mengabaikan variabel ini. Lihat [Batas output](/docs/id/tools-reference#output-limits) |202| `BASH_MAX_OUTPUT_LENGTH` | Jumlah maksimum karakter output bash yang dibaca kembali oleh Claude Code ke dalam hasil perintah (default: 30000; maksimum: 150000). Jika Anda menetapkan pengaturan [`bashOutputMaxChars`](/docs/id/settings-reference#bashoutputmaxchars), Claude Code mengabaikan variabel ini. Lihat [Batas output](/docs/id/tools-reference#output-limits) |

199| `BASH_MAX_TIMEOUT_MS` | Timeout maksimum yang dapat ditetapkan model untuk perintah tool Bash atau PowerShell di latar depan, dalam milidetik (default: 600000, atau 10 menit). Batas atas efektifnya adalah yang lebih besar antara nilai ini dan `BASH_DEFAULT_TIMEOUT_MS`. Batas atas efektif yang lebih dari 2 jam juga menjadi [batas waktu untuk perintah latar belakang](/docs/id/tools-reference#time-limit-for-background-commands) maksimum dalam sesi tanpa pengawasan. Batas waktu latar belakang memerlukan Claude Code v2.1.285 atau lebih baru |203| `BASH_MAX_TIMEOUT_MS` | Timeout maksimum yang dapat ditetapkan model untuk perintah tool Bash atau PowerShell di latar depan, dalam milidetik (default: 600000, atau 10 menit). Batas atas efektifnya adalah nilai yang lebih besar antara ini dan `BASH_DEFAULT_TIMEOUT_MS`. Batas atas efektif yang lebih lama dari 2 jam juga menjadi [batas waktu maksimum untuk perintah latar belakang](/docs/id/tools-reference#time-limit-for-background-commands) dalam sesi tanpa pengawasan. Batas waktu latar belakang memerlukan Claude Code v2.1.285 atau lebih baru |

200| `BETA_TRACING_ENDPOINT` | Endpoint OTLP/HTTP untuk [tracing beta terperinci](/docs/id/monitoring-usage#traces-beta): dengan `ENABLE_BETA_TRACING_DETAILED=1`, log dan trace dikirim ke sana alih-alih ke exporter yang dikonfigurasi. Tetapkan di shell Anda, pengaturan pengguna, atau pengaturan terkelola. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |204| `BETA_TRACING_ENDPOINT` | Endpoint OTLP/HTTP untuk [tracing beta terperinci](/docs/id/monitoring-usage#traces-beta): dengan `ENABLE_BETA_TRACING_DETAILED=1`, log dan trace dikirim ke sana alih-alih ke exporter yang dikonfigurasi. Tetapkan di shell Anda, pengaturan pengguna, atau pengaturan terkelola. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |

201| `CCR_FORCE_BUNDLE` | Tetapkan ke `1` untuk memaksa [`claude --cloud`](/docs/id/claude-code-on-the-web#send-local-repositories-without-github) membundel dan mengunggah repositori lokal Anda alih-alih melakukan clone dari remote-nya |205| `CCR_FORCE_BUNDLE` | Tetapkan ke `1` untuk memaksa [`claude --cloud`](/docs/id/claude-code-on-the-web#send-local-repositories-without-github) membundel dan mengunggah repositori lokal Anda alih-alih melakukan clone dari remote-nya |

202| `CLAUDECODE` | Ditetapkan ke `1` dalam subproses yang dijalankan Claude Code (tool Bash dan PowerShell, sesi tmux, perintah [hook](/docs/id/hooks), perintah [baris status](/docs/id/statusline), subproses [server MCP](/docs/id/mcp) stdio). Ekstensi IDE juga menetapkan ini di terminal terintegrasinya. Gunakan untuk mendeteksi kapan skrip berjalan di dalam subproses yang dijalankan oleh Claude Code. Untuk memeriksa apakah proses saat ini dijalankan langsung oleh panggilan tool atau hook, bukan di dalam server MCP stdio yang dimulai Claude Code, gunakan `CLAUDE_CODE_CHILD_SESSION` sebagai gantinya |206| `CLAUDECODE` | Ditetapkan ke `1` dalam subproses yang dijalankan Claude Code (tool Bash dan PowerShell, sesi tmux, perintah [hook](/docs/id/hooks), perintah [baris status](/docs/id/statusline), subproses [server MCP](/docs/id/mcp) stdio). Ekstensi IDE juga menetapkan ini di terminal terintegrasinya. Gunakan untuk mendeteksi kapan skrip berjalan di dalam subproses yang dijalankan oleh Claude Code. Untuk memeriksa apakah proses saat ini dijalankan langsung oleh panggilan tool atau hook, bukan di dalam server MCP stdio yang dimulai Claude Code, gunakan `CLAUDE_CODE_CHILD_SESSION` sebagai gantinya |

203| `CLAUDE_AFK_COUNTDOWN_MS` | Berapa milidetik sebelum auto-continue hitung mundur di layar muncul pada dialog [`AskUserQuestion`](/docs/id/tools-reference) yang belum dijawab. Default `20000` (20 detik), dibatasi hingga timeout auto-continue. Tidak berpengaruh kecuali auto-continue aktif; lihat pengaturan [`askUserQuestionTimeout`](/docs/id/settings-reference#askuserquestiontimeout) dan `CLAUDE_AFK_TIMEOUT_MS`. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Memerlukan Claude Code v2.1.198 atau lebih baru |207| `CLAUDE_AFK_COUNTDOWN_MS` | Berapa milidetik sebelum auto-continue hitung mundur di layar muncul pada dialog [`AskUserQuestion`](/docs/id/tools-reference) yang belum dijawab. Default `20000` (20 detik), dibatasi hingga timeout auto-continue. Tidak berpengaruh kecuali auto-continue aktif; lihat pengaturan [`askUserQuestionTimeout`](/docs/id/settings-reference#askuserquestiontimeout) dan `CLAUDE_AFK_TIMEOUT_MS`. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Memerlukan Claude Code v2.1.198 atau lebih baru |

204| `CLAUDE_AFK_TIMEOUT_MS` | Berapa milidetik waktu idle sebelum dialog [`AskUserQuestion`](/docs/id/tools-reference) yang belum dijawab melanjutkan secara otomatis tanpa Anda. Auto-continue nonaktif secara default; ikut serta dengan pengaturan [`askUserQuestionTimeout`](/docs/id/settings-reference#askuserquestiontimeout). Variabel ini adalah override untuk demo dan pengujian otomatis: jika ditetapkan, variabel ini diutamakan daripada pengaturan tersebut dan mengaktifkan auto-continue bahkan ketika pengaturan tidak ditetapkan atau bernilai `never`. Menetapkan `0` tidak menonaktifkan timeout; justru menutup dialog seketika. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Sebelum v2.1.200, auto-continue aktif secara default dengan timeout `60000` (60 detik). Memerlukan Claude Code v2.1.198 atau lebih baru |208| `CLAUDE_AFK_TIMEOUT_MS` | Berapa milidetik waktu idle sebelum dialog [`AskUserQuestion`](/docs/id/tools-reference) yang belum dijawab berlanjut otomatis tanpa Anda. Auto-continue dinonaktifkan secara default; aktifkan dengan pengaturan [`askUserQuestionTimeout`](/docs/id/settings-reference#askuserquestiontimeout). Variabel ini adalah override untuk demo dan pengujian otomatis: saat ditetapkan, variabel ini diutamakan daripada pengaturan tersebut dan mengaktifkan auto-continue bahkan saat pengaturan tidak ditetapkan atau bernilai `never`. Menetapkan `0` tidak mematikan timeout; nilai tersebut langsung menutup dialog. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Sebelum v2.1.200, auto-continue aktif secara default dengan timeout `60000` (60 detik). Memerlukan Claude Code v2.1.198 atau lebih baru |

205| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Tetapkan ke `1` untuk menonaktifkan semua tipe [subagent](/docs/id/sub-agents) bawaan seperti Explore dan Plan. Hanya berlaku dalam mode non-interaktif (flag `-p`). Berguna bagi pengguna SDK yang menginginkan awal yang bersih. Ini juga menghapus `general-purpose`, subagent yang dijalankan Claude Code ketika panggilan tool Agent tidak menyertakan `subagent_type`. Panggilan seperti itu kemudian gagal dengan [`subagent_type is required`](/docs/id/errors#subagent-type-is-required) |209| `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` | Tetapkan ke `1` untuk menonaktifkan semua jenis [subagent](/docs/id/sub-agents) bawaan seperti Explore dan Plan. Hanya berlaku dalam mode non-interaktif (flag `-p`). Berguna bagi pengguna SDK yang menginginkan awal yang bersih. Ini juga menghapus `general-purpose`, subagent yang dijalankan Claude Code saat panggilan tool Agent tidak menyertakan `subagent_type`. Panggilan semacam itu kemudian gagal dengan [`subagent_type is required`](/docs/id/errors#subagent-type-is-required) |

206| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Tetapkan ke `1` untuk melewati awalan `mcp__<server>__` pada nama tool dari server MCP yang dibuat SDK. Tool menggunakan nama aslinya. Hanya untuk penggunaan SDK |210| `CLAUDE_AGENT_SDK_MCP_NO_PREFIX` | Tetapkan ke `1` untuk melewati awalan `mcp__<server>__` pada nama tool dari server MCP yang dibuat SDK. Tool menggunakan nama aslinya. Hanya untuk penggunaan SDK |

207| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout macet dalam milidetik untuk subagent. Default `600000` (10 menit); jika Anda menaikkan `CLAUDE_STREAM_IDLE_TIMEOUT_MS` saat stream watchdog aktif, default ikut naik, seperti yang dijelaskan di [Menangani respons API yang lambat atau macet](/docs/id/agent-sdk/typescript#handle-slow-or-stalled-api-responses). Timer diatur ulang pada setiap event progres streaming; jika tidak ada progres yang tiba dalam rentang waktu tersebut, Claude Code membatalkan subagent dan melaporkan kemacetan ke induknya |211| `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` | Timeout macet dalam milidetik untuk subagent. Juga mencakup [agent workflow](/docs/id/workflows#when-an-agent-stalls-and-restarts) pada Claude Code v2.1.286 atau lebih baru. Default `600000` (10 menit); jika Anda menaikkan `CLAUDE_STREAM_IDLE_TIMEOUT_MS` saat stream watchdog aktif, default ikut naik, seperti yang dijelaskan di [Menangani respons API yang lambat atau macet](/docs/id/agent-sdk/typescript#handle-slow-or-stalled-api-responses) |

208| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Tetapkan persentase (1-100) dari auto-compact window di mana auto-compaction dipicu. Gunakan nilai lebih rendah seperti `50` untuk melakukan compaction lebih awal; variabel ini tidak dapat menaikkan ambang batas, sehingga nilai di atas persentase default diabaikan. Ini hanya berlaku dalam sesi yang [melakukan compaction sebelum batas konteks model](/docs/id/model-config#context-window-and-auto-compaction). Berlaku untuk percakapan utama dan subagent |212| `CLAUDE_AUTOCOMPACT_PCT_OVERRIDE` | Tetapkan persentase (1-100) dari jendela auto-compact tempat auto-compaction dipicu. Gunakan nilai yang lebih rendah seperti `50` untuk melakukan compaction lebih awal; variabel ini tidak dapat menaikkan ambang batas, sehingga nilai di atas persentase default diabaikan. Ini hanya berlaku dalam sesi yang [melakukan compaction sebelum batas konteks model](/docs/id/model-config#context-window-and-auto-compaction). Berlaku untuk percakapan utama maupun subagent |

209| `CLAUDE_AUTO_BACKGROUND_TASKS` | Tetapkan ke `1` untuk memaksa mengaktifkan pemindahan otomatis tugas agent yang berjalan lama ke latar belakang. Jika diaktifkan, subagent dipindahkan ke latar belakang setelah berjalan sekitar dua menit. Juga mengaktifkan [pemindahan otomatis panggilan tool MCP yang lama ke latar belakang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls) dalam mode non-interaktif pada Claude Code v2.1.212 atau lebih baru |213| `CLAUDE_AUTO_BACKGROUND_TASKS` | Tetapkan ke `1` untuk memaksa mengaktifkan pemindahan otomatis tugas agent yang berjalan lama ke latar belakang. Saat diaktifkan, subagent dipindahkan ke latar belakang setelah berjalan sekitar dua menit. Juga mengaktifkan [pemindahan otomatis panggilan tool MCP yang lama ke latar belakang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls) dalam mode non-interaktif pada Claude Code v2.1.212 atau lebih baru |

210| `CLAUDE_AX_PREPARK_MS` | Dalam [mode pembaca layar](/docs/id/accessibility), berapa milidetik Claude Code menunggu sebelum menulis baris yang baru atau berubah. Default `0`, sehingga Claude Code tidak menunggu. Sebelum v2.1.287, default-nya adalah `50`. Claude Code membatasi waktu tunggu pada `5000`. Memerlukan Claude Code v2.1.233 atau lebih baru |214| `CLAUDE_AX_PREPARK_MS` | Dalam [mode pembaca layar](/docs/id/accessibility), berapa milidetik Claude Code menunggu sebelum menulis baris baru atau yang berubah. Default `0`, sehingga Claude Code tidak menunggu. Sebelum v2.1.287, default-nya adalah `50`. Claude Code membatasi waktu tunggu hingga `5000`. Memerlukan Claude Code v2.1.233 atau lebih baru |

211| `CLAUDE_AX_SCREEN_READER` | Tetapkan ke `1` untuk merender output yang ramah pembaca layar: teks datar tanpa border dekoratif atau animasi. Tetapkan ke `0` untuk memaksa mode pembaca layar nonaktif meskipun [`axScreenReader`](/docs/id/settings-reference#axscreenreader) bernilai `true`. Flag [`--ax-screen-reader`](/docs/id/cli-reference#cli-flags) diutamakan. Memerlukan Claude Code v2.1.181 atau lebih baru |215| `CLAUDE_AX_SCREEN_READER` | Tetapkan ke `1` untuk merender output yang ramah pembaca layar: teks datar tanpa border dekoratif atau animasi. Tetapkan ke `0` untuk memaksa mode pembaca layar nonaktif bahkan saat [`axScreenReader`](/docs/id/settings-reference#axscreenreader) bernilai `true`. Flag [`--ax-screen-reader`](/docs/id/cli-reference#cli-flags) diutamakan. Memerlukan Claude Code v2.1.181 atau lebih baru |

212| `CLAUDE_AX_STARTUP_QUIET_MS` | Dalam [mode pembaca layar](/docs/id/accessibility), berapa milidetik Claude Code menahan render antarmuka pertama setelah baris konfirmasi startup, agar pembaca layar Anda dapat mengucapkan baris tersebut secara lengkap sebelum output baru menyelanya. Default `3000`. Tetapkan `0` untuk merender seketika. Claude Code membatasi penahanan pada `600000` (10 menit). Penekanan tombol pertama Anda mengakhiri penahanan lebih awal. Memerlukan Claude Code v2.1.217 atau lebih baru |216| `CLAUDE_AX_STARTUP_QUIET_MS` | Dalam [mode pembaca layar](/docs/id/accessibility), berapa milidetik Claude Code menahan render antarmuka pertama setelah baris konfirmasi startup, sehingga pembaca layar Anda dapat mengucapkan baris tersebut secara lengkap sebelum output baru menyelanya. Default `3000`. Tetapkan `0` untuk merender segera. Claude Code membatasi penahanan hingga `600000` (10 menit). Penekanan tombol pertama Anda mengakhiri penahanan lebih awal. Memerlukan Claude Code v2.1.217 atau lebih baru |

213| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Kembali ke direktori kerja asli setelah setiap perintah Bash atau PowerShell dalam sesi utama |217| `CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR` | Kembali ke direktori kerja asli setelah setiap perintah Bash atau PowerShell di sesi utama |

214| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout dalam milidetik untuk watchdog idle streaming tingkat byte; jika ditetapkan, variabel ini diutamakan daripada `CLAUDE_STREAM_IDLE_TIMEOUT_MS` untuk watchdog tersebut dan tidak mengubah watchdog tingkat event. Claude Code membatasi variabel ini antara 10 detik dan 30 menit. Memerlukan Claude Code v2.1.210 atau lebih baru |218| `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` | Timeout dalam milidetik untuk watchdog idle streaming tingkat byte; saat ditetapkan, variabel ini diutamakan daripada `CLAUDE_STREAM_IDLE_TIMEOUT_MS` untuk watchdog tersebut dan tidak mengubah watchdog tingkat event. Claude Code membatasi variabel ini antara 10 detik dan 30 menit. Memerlukan Claude Code v2.1.210 atau lebih baru |

215| `CLAUDE_CLIENT_PRESENCE_FILE` | Path ke file yang dibuat oleh alat eksternal, seperti listener kunci layar, ketika Anda membuka kunci layar dan dihapus ketika Anda menguncinya. Selama file tersebut ada, Claude Code melewati [notifikasi push seluler Remote Control](/docs/id/remote-control#mobile-push-notifications), sehingga Anda tidak lagi menerima push saat sedang aktif menggunakan komputer. Jika file tidak ada atau tidak dapat dibaca, notifikasi dikirim seperti biasa. Claude Code memeriksa file satu kali per event yang memicu push, bukan melakukan polling. Memerlukan Claude Code v2.1.181 atau lebih baru |219| `CLAUDE_CLIENT_PRESENCE_FILE` | Path ke file yang dibuat oleh alat eksternal, seperti listener kunci layar, saat Anda membuka kunci layar dan dihapus saat Anda menguncinya. Selama file ada, Claude Code melewati [notifikasi push seluler Remote Control](/docs/id/remote-control#mobile-push-notifications), sehingga Anda tidak lagi menerima push saat sedang aktif menggunakan komputer. Saat file tidak ada atau tidak dapat dibaca, notifikasi dikirim seperti biasa. Claude Code memeriksa file satu kali per event yang memicu push alih-alih melakukan polling. Memerlukan Claude Code v2.1.181 atau lebih baru |

216| `CLAUDE_CODE_ACCESSIBILITY` | Tetapkan ke `1` untuk menjaga kursor terminal native tetap terlihat dan menonaktifkan indikator kursor teks terbalik. Memungkinkan pembesar layar seperti macOS Zoom melacak posisi kursor |220| `CLAUDE_CODE_ACCESSIBILITY` | Tetapkan ke `1` untuk menjaga kursor terminal bawaan tetap terlihat dan menonaktifkan indikator kursor teks terbalik. Memungkinkan pembesar layar seperti macOS Zoom melacak posisi kursor |

217| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Tetapkan ke `1` untuk memuat file memori dari direktori yang ditentukan dengan `--add-dir`. Memuat `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, dan `CLAUDE.local.md`. Secara default, direktori tambahan tidak memuat file memori |221| `CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD` | Tetapkan ke `1` untuk memuat file memori dari direktori yang ditentukan dengan `--add-dir`. Memuat `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, dan `CLAUDE.local.md`. Secara default, direktori tambahan tidak memuat file memori |

218| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Tetapkan ke `1` untuk menggambar ulang seluruh layar pada setiap frame dalam [rendering layar penuh](/docs/id/fullscreen) alih-alih mengirim pembaruan inkremental. Gunakan ini jika mode layar penuh menampilkan fragmen teks yang usang atau salah tempat. Claude Code mengaktifkan ini secara otomatis untuk sesi latar belakang dan [agent view](/docs/id/agent-view) di Windows |222| `CLAUDE_CODE_ALT_SCREEN_FULL_REPAINT` | Tetapkan ke `1` untuk menggambar ulang seluruh layar pada setiap frame dalam [rendering layar penuh](/docs/id/fullscreen) alih-alih mengirim pembaruan inkremental. Gunakan ini jika mode layar penuh menampilkan fragmen teks yang usang atau salah tempat. Claude Code mengaktifkan ini secara otomatis untuk sesi latar belakang dan [agent view](/docs/id/agent-view) di Windows |

219| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Tetapkan ke `1` untuk mengirim parameter [effort](/docs/id/model-config#adjust-effort-level) pada setiap permintaan, bahkan ketika Claude Code tidak mengenali ID model sebagai model yang mendukung effort. Gunakan ini saat merutekan melalui [LLM gateway](/docs/id/llm-gateway) atau penyedia pihak ketiga yang menyajikan model dengan pengenal kustom. Model yang menolak parameter effort di API, termasuk model Claude 3, Sonnet 4.0 dan 4.5, Opus 4.0 dan 4.1, serta Haiku 4.5, tetap dikecualikan agar permintaan tidak gagal |223| `CLAUDE_CODE_ALWAYS_ENABLE_EFFORT` | Tetapkan ke `1` untuk mengirim parameter [effort](/docs/id/model-config#adjust-effort-level) pada setiap permintaan, bahkan saat Claude Code tidak mengenali ID model sebagai model yang mendukung effort. Gunakan ini saat merutekan melalui [LLM gateway](/docs/id/llm-gateway) atau penyedia pihak ketiga yang menyajikan model dengan pengenal kustom. Model yang menolak parameter effort di API, termasuk model Claude 3, Sonnet 4.0 dan 4.5, Opus 4.0 dan 4.1, serta Haiku 4.5, tetap dikecualikan agar permintaan tidak gagal |

220| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Interval dalam milidetik di mana kredensial harus diperbarui (saat menggunakan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper)) |224| `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` | Interval dalam milidetik untuk menyegarkan kredensial (saat menggunakan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper)) |

221| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Tetapkan ke `0` untuk mencegah Claude Code membuka browser secara otomatis ketika [artifact](/docs/id/artifacts#create-an-artifact) baru dipublikasikan |225| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | Tetapkan ke `0` untuk menghentikan Claude Code membuka browser secara otomatis saat [artifact](/docs/id/artifacts#create-an-artifact) baru dipublikasikan |

222| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Tetapkan ke `0` untuk mencegah Claude membaca dan membalas [komentar pada artifact](/docs/id/artifacts#collect-comments-on-an-artifact). Tidak berpengaruh ketika `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` telah [menonaktifkan artifact](/docs/id/artifacts#availability). Memerlukan Claude Code v2.1.221 atau lebih baru |226| `CLAUDE_CODE_ARTIFACT_COMMENTS` | Tetapkan ke `0` untuk menghentikan Claude membaca dan membalas [komentar pada artifact](/docs/id/artifacts#collect-comments-on-an-artifact). Tidak berpengaruh saat `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` telah [menonaktifkan artifact](/docs/id/artifacts#availability). Memerlukan Claude Code v2.1.221 atau lebih baru |

223| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Tetapkan ke `0` untuk mencegah Claude [membalas sendiri komentar yang dikirim kepadanya](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own). Memerlukan Claude Code v2.1.228 atau lebih baru |227| `CLAUDE_CODE_ARTIFACT_COMMENTS_AUTOREACT` | Tetapkan ke `0` untuk menghentikan Claude [membalas sendiri komentar yang dikirimkan kepadanya](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own). Memerlukan Claude Code v2.1.228 atau lebih baru |

224| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Tetapkan ke `0` untuk menghilangkan [blok atribusi](/docs/id/llm-gateway-protocol#system-prompt-attribution-block), yang membawa versi klien dan sidik jari prompt, dari awal system prompt. Caching pada koneksi langsung ke Anthropic API tidak terpengaruh dalam kedua kasus. Dalam beberapa penyiapan koneksi langsung, Claude Code tetap menyertakan blok tersebut pada permintaan pengklasifikasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) meskipun Anda menetapkan `0`. Di [Blok atribusi system prompt](/docs/id/llm-gateway-protocol#system-prompt-attribution-block), periksa koneksi dan kredensial mana yang dicakup. Sebelum v2.1.181 blok tersebut menyertakan token per permintaan pada URL dasar kustom dan koneksi Microsoft Foundry, jadi pada versi tersebut tetapkan ke `0` ketika LLM gateway Anda melakukan caching berdasarkan body permintaan atau meneruskan permintaan ke penyedia pihak ketiga, atau ketika Anda terhubung ke Microsoft Foundry secara langsung |228| `CLAUDE_CODE_ATTRIBUTION_HEADER` | Tetapkan ke `0` untuk menghilangkan [blok atribusi](/docs/id/llm-gateway-protocol#system-prompt-attribution-block), yang membawa versi klien dan sidik jari prompt, dari awal system prompt. Caching pada koneksi langsung ke Anthropic API tidak terpengaruh dalam kedua kasus. Dalam beberapa penyiapan koneksi langsung, Claude Code mempertahankan blok tersebut pada permintaan pengklasifikasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) bahkan saat Anda menetapkan `0`. Di [System prompt attribution block](/docs/id/llm-gateway-protocol#system-prompt-attribution-block), periksa koneksi dan kredensial mana yang dicakup oleh hal ini. Sebelum v2.1.181, blok tersebut menyertakan token per permintaan pada URL dasar kustom dan koneksi Microsoft Foundry, jadi pada versi tersebut tetapkan ke `0` saat LLM gateway Anda melakukan caching berdasarkan body permintaan atau meneruskan permintaan ke penyedia pihak ketiga, atau saat Anda terhubung ke Microsoft Foundry secara langsung |

225| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Dihapus di v2.1.283. Gunakan `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` sebagai gantinya |229| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Dihapus di v2.1.283. Gunakan `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` sebagai gantinya |

226| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Tetapkan [auto-compact window](/docs/id/model-config#set-the-auto-compact-window) dalam token, dari `100000` hingga `1000000`. Hanya menerima bilangan bulat biasa seperti `500000`: nilai seperti `500k` dibaca sebagai `500` dan dibatasi ke minimum 100K. Window efektif juga dibatasi pada context window model. Diutamakan daripada perintah `/autocompact`, flag `--autocompact`, dan pengaturan `autoCompactWindow`. `used_percentage` pada baris status selalu diukur terhadap context window penuh model, jadi setelah variabel ini ditetapkan, persentase tersebut tidak lagi menunjukkan kapan compaction akan berjalan |230| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Tetapkan [jendela auto-compact](/docs/id/model-config#set-the-auto-compact-window) dalam token, dari `100000` hingga `1000000`. Hanya menerima bilangan bulat biasa seperti `500000`: nilai seperti `500k` dibaca sebagai `500` dan dibatasi ke minimum 100K. Jendela efektif juga dibatasi pada context window model. Diutamakan daripada perintah `/autocompact`, flag `--autocompact`, dan pengaturan `autoCompactWindow`. `used_percentage` pada baris status selalu diukur terhadap context window penuh model, sehingga setelah variabel ini ditetapkan, persentase tersebut tidak lagi menunjukkan kapan compaction akan berjalan |

227| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Menimpa [koneksi IDE](/docs/id/vs-code) otomatis. Secara default, Claude Code terhubung secara otomatis ketika diluncurkan di dalam terminal terintegrasi IDE yang didukung. Tetapkan ke `false` untuk mencegah hal ini. Tetapkan ke `true` untuk memaksa upaya koneksi ketika deteksi otomatis gagal, seperti ketika tmux mengaburkan terminal induk. Diutamakan daripada pengaturan konfigurasi global [`autoConnectIde`](/docs/id/settings-reference#autoconnectide) |231| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Menimpa [koneksi IDE](/docs/id/vs-code) otomatis. Secara default, Claude Code terhubung secara otomatis saat dijalankan di dalam terminal terintegrasi IDE yang didukung. Tetapkan ke `false` untuk mencegah hal ini. Tetapkan ke `true` untuk memaksa upaya koneksi saat deteksi otomatis gagal, seperti saat tmux mengaburkan terminal induk. Diutamakan daripada pengaturan konfigurasi global [`autoConnectIde`](/docs/id/settings-reference#autoconnectide) |

228| `CLAUDE_CODE_AUTO_MODE_SERVER` | Mengontrol apakah Claude Code meminta server untuk [meninjau tindakan auto mode](/docs/id/permission-modes#server-side-classifier-review). Tetapkan ke `0` untuk menggunakan permintaan pengklasifikasi milik Claude Code sendiri sebagai gantinya. Pada koneksi langsung ke Anthropic API, memerlukan v2.1.281 atau lebih baru. Bagian yang ditautkan mencantumkan sesi mana yang meminta server ketika variabel tidak ditetapkan, dan sejak versi berapa. Memerlukan Claude Code v2.1.271 atau lebih baru |232| `CLAUDE_CODE_AUTO_MODE_SERVER` | Mengontrol apakah Claude Code meminta server untuk [meninjau tindakan auto mode](/docs/id/permission-modes#server-side-classifier-review). Tetapkan ke `0` untuk menggunakan permintaan pengklasifikasi milik Claude Code sendiri. Pada koneksi langsung ke Anthropic API, memerlukan v2.1.281 atau lebih baru. Bagian yang ditautkan mencantumkan sesi mana yang meminta server saat variabel tidak ditetapkan, dan sejak versi berapa. Memerlukan Claude Code v2.1.271 atau lebih baru |

229| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Waktu dalam milidetik yang ditunggu Claude Code agar rantai penyedia kredensial default AWS menghasilkan kredensial sebelum permintaan gagal dengan [`AWS default-chain credential resolve timed out`](/docs/id/errors#aws-default-chain-credential-resolve-timed-out) (default: `60000`). Naikkan nilai ini ketika suatu langkah dalam rantai Anda memang membutuhkan waktu lebih lama, seperti proses masuk SSO berbasis browser dengan MFA melalui wrapper seperti `aws-vault`. Berlaku di Amazon Bedrock, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint). Lihat [caching kredensial dan timeout resolusi](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout). Memerlukan Claude Code v2.1.207 atau lebih baru |233| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Waktu dalam milidetik yang ditunggu Claude Code agar rantai penyedia kredensial default AWS menghasilkan kredensial sebelum permintaan gagal dengan [`AWS default-chain credential resolve timed out`](/docs/id/errors#aws-default-chain-credential-resolve-timed-out) (default: `60000`). Naikkan nilai ini saat suatu langkah dalam rantai Anda memang membutuhkan waktu lebih lama, seperti masuk SSO berbasis browser dengan MFA melalui wrapper seperti `aws-vault`. Berlaku di Amazon Bedrock, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint). Lihat [caching kredensial dan timeout resolusi](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout). Memerlukan Claude Code v2.1.207 atau lebih baru |

230| `CLAUDE_CODE_BASH_EDIT_DIFF` | Tetapkan ke `0` untuk menonaktifkan [diff file yang berubah saat perintah Bash berjalan](/docs/id/hooks#bash), atau `1` untuk merekamnya di setiap mode izin. Diutamakan daripada pengaturan [`bashEditDiffEnabled`](/docs/id/settings-reference#basheditdiffenabled). Memerlukan Claude Code v2.1.269 atau lebih baru |234| `CLAUDE_CODE_BASH_EDIT_DIFF` | Tetapkan ke `0` untuk mematikan [diff file yang berubah saat perintah Bash berjalan](/docs/id/hooks#bash), atau `1` untuk merekamnya di setiap mode izin. Diutamakan daripada pengaturan [`bashEditDiffEnabled`](/docs/id/settings-reference#basheditdiffenabled). Memerlukan Claude Code v2.1.269 atau lebih baru |

231| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Tetapkan ke `0` agar sesi non-interaktif melaporkan status idle ke host-nya di setiap akhir giliran, bahkan saat pekerjaan latar belakang masih berjalan. Secara default, sesi terus melaporkan status berjalan melewati akhir giliran selama pekerjaan latar belakang seperti background agent atau eksekusi [workflow](/docs/id/workflows) masih aktif. Ini mencegah host yang memantau status, seperti daftar sesi jarak jauh, mengumumkan bahwa Claude sedang menunggu input Anda di tengah pekerjaan. Perintah shell latar belakang, seperti server dev, tidak menahan status berjalan. Default status berjalan dan opsi keluar `0` memerlukan Claude Code v2.1.269 atau lebih baru; pada versi sebelumnya, tetapkan `1` untuk menahan status berjalan |235| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Tetapkan ke `0` agar sesi non-interaktif melaporkan status idle ke host-nya di setiap akhir giliran, bahkan saat pekerjaan latar belakang masih berjalan. Secara default, sesi terus melaporkan status berjalan melewati akhir giliran selama pekerjaan latar belakang seperti agent latar belakang atau eksekusi [workflow](/docs/id/workflows) masih aktif. Hal ini mencegah host yang memantau status, seperti daftar sesi jarak jauh, mengumumkan bahwa Claude sedang menunggu input Anda di tengah pekerjaan. Perintah shell latar belakang, seperti server pengembangan, tidak mempertahankan status berjalan. Default status berjalan dan opsi `0` untuk menonaktifkannya memerlukan Claude Code v2.1.269 atau lebih baru; pada versi sebelumnya, tetapkan `1` untuk mempertahankan status berjalan |

232| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Ditetapkan secara otomatis dalam subproses tool Bash dan [perintah hook](/docs/id/hooks) selama sesi memiliki koneksi [Remote Control](/docs/id/remote-control) yang aktif, dan dihapus ketika koneksi berakhir. Nilainya adalah ID sesi dalam bentuk `session_`, pengenal yang sama yang muncul di URL `claude.ai/code` sesi tersebut, sehingga skrip dapat menautkan kembali ke sesi yang menjalankannya. Memerlukan Claude Code v2.1.199 atau lebih baru. Dalam [sesi cloud](/docs/id/claude-code-on-the-web), baca `CLAUDE_CODE_REMOTE_SESSION_ID` sebagai gantinya |236| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Ditetapkan secara otomatis dalam subproses tool Bash dan [perintah hook](/docs/id/hooks) selama sesi memiliki koneksi [Remote Control](/docs/id/remote-control) aktif, dan dihapus saat koneksi berakhir. Nilainya adalah ID sesi dalam bentuk `session_`, pengenal yang sama yang muncul di URL `claude.ai/code` sesi tersebut, sehingga skrip dapat menautkan kembali ke sesi yang menjalankannya. Memerlukan Claude Code v2.1.199 atau lebih baru. Dalam [sesi cloud](/docs/id/claude-code-on-the-web), baca `CLAUDE_CODE_REMOTE_SESSION_ID` sebagai gantinya |

233| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Tetapkan ke `0` agar Claude Code membaca byte `0x08`, juga ditulis `^H`, sebagai Backspace biasa, atau `1` untuk membacanya sebagai Ctrl+Backspace. Kedua nilai menggantikan default platform. Secara default, Claude Code membacanya sebagai Ctrl+Backspace di Windows, kecuali ketika `TERM_PROGRAM` bernilai `mintty` atau `TERM` bernilai `cygwin`, dan sebagai Backspace biasa di macOS dan Linux. Tetapkan `0` di terminal Windows di mana [Backspace menghapus satu kata utuh](/docs/id/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |237| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Tetapkan ke `0` agar Claude Code membaca byte `0x08`, yang juga ditulis `^H`, sebagai Backspace biasa, atau `1` untuk membacanya sebagai Ctrl+Backspace. Kedua nilai menggantikan default platform. Secara default, Claude Code membacanya sebagai Ctrl+Backspace di Windows, kecuali saat `TERM_PROGRAM` bernilai `mintty` atau `TERM` bernilai `cygwin`, dan sebagai Backspace biasa di macOS dan Linux. Tetapkan `0` di terminal Windows tempat [Backspace menghapus seluruh kata](/docs/id/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |

234| `CLAUDE_CODE_CERT_STORE` | Daftar sumber sertifikat CA untuk koneksi TLS, dipisahkan koma. `bundled` adalah set CA Mozilla yang disertakan bersama Claude Code. `system` adalah trust store sistem operasi, yang hanya dibaca pada runtime dengan `tls.getCACertificates`: binary native, atau Node 22.15 atau lebih baru untuk instalasi npm. Lihat [Penyimpanan sertifikat CA](/docs/id/network-config#ca-certificate-store). Default-nya adalah `bundled,system` |238| `CLAUDE_CODE_CERT_STORE` | Daftar sumber sertifikat CA untuk koneksi TLS, dipisahkan koma. `bundled` adalah kumpulan CA Mozilla yang disertakan dengan Claude Code. `system` adalah trust store sistem operasi, yang hanya dibaca pada runtime dengan `tls.getCACertificates`: binary native, atau Node 22.15 atau lebih baru untuk instalasi npm. Lihat [Penyimpanan sertifikat CA](/docs/id/network-config#ca-certificate-store). Default-nya `bundled,system` |

235| `CLAUDE_CODE_CHILD_SESSION` | Ditetapkan ke `1` dalam subproses yang dijalankan Claude Code melalui tool Bash, PowerShell, dan Monitor, perintah [hook](/docs/id/hooks), dan perintah [baris status](/docs/id/statusline). Tidak ditetapkan untuk subproses [server MCP](/docs/id/mcp) stdio, yang berumur panjang dan bertahan lebih lama daripada sesi yang menjalankannya. Berbeda dengan `CLAUDECODE`, ini hanya ditetapkan oleh Claude Code sendiri saat meluncurkan subproses dan tidak oleh ekstensi IDE, sehingga dapat diandalkan untuk membedakan sesi bersarang dari `claude` tingkat atas yang diluncurkan di terminal terintegrasi IDE. TUI `claude` interaktif bersarang yang dimulai dengan cara ini secara otomatis dikecualikan dari `--resume`, `--continue`, riwayat panah atas, dan daftar `claude agents`. Sesi `claude -p` non-interaktif tetap disimpan. Tetapkan `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` untuk menimpa pengecualian ini. Memerlukan Claude Code v2.1.172 atau lebih baru |239| `CLAUDE_CODE_CHILD_SESSION` | Ditetapkan ke `1` dalam subproses yang dijalankan Claude Code melalui tool Bash, PowerShell, dan Monitor, perintah [hook](/docs/id/hooks), dan perintah [baris status](/docs/id/statusline). Tidak ditetapkan untuk subproses [server MCP](/docs/id/mcp) stdio, yang berumur panjang dan bertahan lebih lama dari sesi yang menjalankannya. Berbeda dengan `CLAUDECODE`, variabel ini hanya ditetapkan oleh Claude Code sendiri saat menjalankan subproses dan tidak oleh ekstensi IDE, sehingga dapat membedakan secara andal antara sesi bersarang dan `claude` tingkat atas yang dijalankan di terminal terintegrasi IDE. TUI `claude` interaktif bersarang yang dimulai dengan cara ini secara otomatis dikecualikan dari `--resume`, `--continue`, riwayat panah atas, dan daftar `claude agents`. Sesi `claude -p` non-interaktif tetap disimpan. Tetapkan `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE=1` untuk menimpa pengecualian ini. Memerlukan Claude Code v2.1.172 atau lebih baru |

236| `CLAUDE_CODE_CLIENT_CERT` | Path ke file sertifikat klien untuk autentikasi mTLS |240| `CLAUDE_CODE_CLIENT_CERT` | Path ke file sertifikat klien untuk autentikasi mTLS |

237| `CLAUDE_CODE_CLIENT_KEY` | Path ke file kunci privat klien untuk autentikasi mTLS |241| `CLAUDE_CODE_CLIENT_KEY` | Path ke file kunci privat klien untuk autentikasi mTLS |

238| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase untuk CLAUDE\_CODE\_CLIENT\_KEY yang terenkripsi (opsional) |242| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase untuk CLAUDE\_CODE\_CLIENT\_KEY yang terenkripsi (opsional) |

239| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Dihapus di v2.1.186 dan kini tidak berpengaruh. Sebelumnya menetapkan timeout terpisah untuk fase koneksi, TLS, dan header respons dari permintaan API streaming. Gunakan `API_TIMEOUT_MS` untuk timeout per permintaan. Untuk fase header respons dari permintaan streaming, lihat `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |243| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Dihapus di v2.1.186 dan kini tidak berpengaruh. Sebelumnya menetapkan timeout terpisah untuk fase koneksi, TLS, dan header respons dari permintaan API streaming. Gunakan `API_TIMEOUT_MS` untuk timeout per permintaan. Untuk fase header respons dari permintaan streaming, lihat `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

240| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Menimpa path file log debug. Meskipun namanya demikian, ini adalah path file, bukan direktori. Memerlukan mode debug diaktifkan secara terpisah melalui `--debug`, `/debug`, atau environment variable `DEBUG`: menetapkan variabel ini saja tidak mengaktifkan logging. Flag [`--debug-file`](/docs/id/cli-reference#cli-flags) melakukan keduanya sekaligus. Default-nya `~/.claude/debug/<session-id>.txt` |244| `CLAUDE_CODE_DEBUG_LOGS_DIR` | Menimpa path file log debug. Meskipun namanya demikian, ini adalah path file, bukan direktori. Memerlukan mode debug untuk diaktifkan secara terpisah melalui `--debug`, `/debug`, atau environment variable `DEBUG`: menetapkan variabel ini saja tidak mengaktifkan logging. Flag [`--debug-file`](/docs/id/cli-reference#cli-flags) melakukan keduanya sekaligus. Default-nya `~/.claude/debug/<session-id>.txt` |

241| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Tingkat log minimum yang ditulis ke file log debug. Nilai: `verbose`, `debug` (default), `info`, `warn`, `error`. Tetapkan ke `verbose` untuk menyertakan diagnostik bervolume tinggi seperti output lengkap perintah baris status, atau naikkan ke `error` untuk mengurangi gangguan |245| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Tingkat log minimum yang ditulis ke file log debug. Nilai: `verbose`, `debug` (default), `info`, `warn`, `error`. Tetapkan ke `verbose` untuk menyertakan diagnostik bervolume tinggi seperti output lengkap perintah baris status, atau naikkan ke `error` untuk mengurangi gangguan |

242| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Tetapkan ke `1` untuk menonaktifkan dukungan [context window 1M](/docs/id/model-config#extended-context). Claude Code menghapus varian model `[1m]` dari pemilih model dan membatasi model yang secara default berjalan dengan window 1M ke window 200K. Lihat [Menonaktifkan konteks 1M](/docs/id/model-config#turn-off-1m-context). Berguna untuk lingkungan enterprise dengan persyaratan kepatuhan. Untuk perannya dalam mengoreksi window untuk ID model `[1m]` yang tidak dikenali, lihat [Mengoreksi window untuk gateway atau ID model kustom](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |246| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Tetapkan ke `1` untuk mematikan dukungan [context window 1M](/docs/id/model-config#extended-context). Claude Code menghapus varian model `[1m]` dari pemilih model dan membatasi model yang secara default berjalan dengan jendela 1M ke jendela 200K. Lihat [Mematikan konteks 1M](/docs/id/model-config#turn-off-1m-context). Berguna untuk lingkungan enterprise dengan persyaratan kepatuhan. Untuk perannya dalam mengoreksi jendela bagi ID model `[1m]` yang tidak dikenali, lihat [Mengoreksi jendela untuk gateway atau ID model kustom](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

243| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Tetapkan ke `1` untuk menonaktifkan [adaptive reasoning](/docs/id/model-config#adjust-effort-level) pada Opus 4.6 dan Sonnet 4.6 dan kembali ke thinking budget tetap yang dikontrol oleh `MAX_THINKING_TOKENS`. Tidak berpengaruh pada [model Fable](/docs/id/model-config#extended-thinking), Sonnet 5 dan yang lebih baru, Haiku 5.5, atau Opus 4.7 dan yang lebih baru, yang selalu menggunakan adaptive reasoning |247| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Tetapkan ke `1` untuk menonaktifkan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) pada Opus 4.6 dan Sonnet 4.6 dan kembali ke thinking budget tetap yang dikontrol oleh `MAX_THINKING_TOKENS`. Tidak berpengaruh pada [model Fable](/docs/id/model-config#extended-thinking), Sonnet 5 dan yang lebih baru, Haiku 5.5, atau Opus 4.7 dan yang lebih baru, yang selalu menggunakan penalaran adaptif |

244| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Tetapkan ke `1` untuk mencegah Claude Code menggabungkan blok `env` [pengaturan terkelola](/docs/id/managed-settings#precedence-within-the-managed-tier) per kunci di seluruh sumber admin, sehingga hanya seluruh blok `env` dari sumber dengan prioritas tertinggi yang berlaku, seperti sebelum v2.1.223. Tetapkan di lingkungan yang meluncurkan Claude Code, karena Claude Code mengabaikan salinan yang dikirim melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.223 atau lebih baru |248| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Tetapkan ke `1` untuk menghentikan Claude Code menggabungkan blok `env` [pengaturan terkelola](/docs/id/managed-settings#precedence-within-the-managed-tier) per kunci di seluruh sumber admin, sehingga hanya seluruh blok `env` dari sumber dengan prioritas tertinggi yang diterapkan, seperti sebelum v2.1.223. Tetapkan di lingkungan yang menjalankan Claude Code, karena Claude Code mengabaikan salinan yang dikirimkan melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.223 atau lebih baru |

245| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Tetapkan ke `1` untuk menonaktifkan [tool advisor](/docs/id/advisor). Perintah `/advisor` menjadi tidak tersedia, `advisorModel` apa pun yang dikonfigurasi diabaikan, dan flag `--advisor` diterima tetapi tidak berpengaruh, sehingga skrip yang sudah ada yang meneruskannya tetap berfungsi tanpa error |249| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Tetapkan ke `1` untuk menonaktifkan [tool advisor](/docs/id/advisor). Perintah `/advisor` menjadi tidak tersedia, `advisorModel` yang dikonfigurasi diabaikan, dan flag `--advisor` diterima tetapi tidak berpengaruh, sehingga skrip yang sudah ada yang meneruskannya tetap berfungsi tanpa error |

246| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Tetapkan ke `1` untuk menonaktifkan [background agent dan agent view](/docs/id/agent-view): `claude agents`, `--bg`, `/background`, dan supervisor sesuai permintaan. Setara dengan pengaturan [`disableAgentView`](/docs/id/settings-reference#disableagentview) |250| `CLAUDE_CODE_DISABLE_AGENT_VIEW` | Tetapkan ke `1` untuk mematikan [agent latar belakang dan agent view](/docs/id/agent-view): `claude agents`, `--bg`, `/background`, dan supervisor sesuai permintaan. Setara dengan pengaturan [`disableAgentView`](/docs/id/settings-reference#disableagentview) |

247| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Tetapkan ke `1` untuk menonaktifkan [rendering layar penuh](/docs/id/fullscreen) dan menggunakan renderer layar utama klasik. Percakapan tetap berada di scrollback native terminal Anda sehingga `Cmd+f` dan mode copy tmux berfungsi seperti biasa. Diutamakan daripada `CLAUDE_CODE_NO_FLICKER` dan pengaturan [`tui`](/docs/id/settings-reference#tui). Anda juga dapat beralih dengan `/tui default`. Tidak berlaku untuk sesi latar belakang yang dibuka dari [agent view](/docs/id/agent-view), yang selalu menggunakan rendering layar penuh |251| `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN` | Tetapkan ke `1` untuk menonaktifkan [rendering layar penuh](/docs/id/fullscreen) dan menggunakan renderer layar utama klasik. Percakapan tetap berada di scrollback bawaan terminal Anda sehingga `Cmd+f` dan mode salin tmux berfungsi seperti biasa. Diutamakan daripada `CLAUDE_CODE_NO_FLICKER` dan pengaturan [`tui`](/docs/id/settings-reference#tui). Anda juga dapat beralih dengan `/tui default`. Tidak berlaku untuk sesi latar belakang yang dibuka dari [agent view](/docs/id/agent-view), yang selalu menggunakan rendering layar penuh |

248| `CLAUDE_CODE_DISABLE_ARTIFACT` | Tetapkan ke `1` untuk menonaktifkan tool [Artifact](/docs/id/artifacts), yang memublikasikan output sesi sebagai halaman web privat di claude.ai. Setelah Anda menetapkannya, tidak ada file pengaturan yang dapat mengaktifkan kembali tool tersebut. Untuk menonaktifkan tool dari file pengaturan sebagai gantinya, tetapkan [`enableArtifact`](/docs/id/settings-reference#enableartifact) ke `false`; kunci [`disableArtifact`](/docs/id/settings-reference#disableartifact) yang sudah deprecated juga menonaktifkannya |252| `CLAUDE_CODE_DISABLE_ARTIFACT` | Tetapkan ke `1` untuk mematikan tool [Artifact](/docs/id/artifacts), yang memublikasikan output sesi sebagai halaman web privat di claude.ai. Setelah Anda menetapkannya, tidak ada file pengaturan yang dapat mengaktifkan kembali tool tersebut. Untuk mematikan tool dari file pengaturan sebagai gantinya, tetapkan [`enableArtifact`](/docs/id/settings-reference#enableartifact) ke `false`; kunci [`disableArtifact`](/docs/id/settings-reference#disableartifact) yang sudah deprecated juga mematikannya |

249| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Tetapkan ke `1` untuk menonaktifkan pemrosesan lampiran. Penyebutan file dengan sintaks `@` dikirim sebagai teks biasa alih-alih diperluas menjadi konten file. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |253| `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Tetapkan ke `1` untuk menonaktifkan pemrosesan lampiran. Penyebutan file dengan sintaks `@` dikirim sebagai teks biasa alih-alih diperluas menjadi konten file. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |

250| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Tetapkan ke `1` agar proses Claude Code menjalankan sendiri perintah [`gcpAuthRefresh`](/docs/id/settings-reference#gcpauthrefresh) atau [`awsAuthRefresh`](/docs/id/settings-reference#awsauthrefresh) alih-alih menunggu selagi proses lain menjalankannya. Memerlukan Claude Code v2.1.286 atau lebih baru |254| `CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK` | Tetapkan ke `1` agar proses Claude Code menjalankan sendiri perintah [`gcpAuthRefresh`](/docs/id/settings-reference#gcpauthrefresh) atau [`awsAuthRefresh`](/docs/id/settings-reference#awsauthrefresh) alih-alih menunggu selagi proses lain menjalankannya. Memerlukan Claude Code v2.1.286 atau lebih baru |

251| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Tetapkan ke `1` untuk menonaktifkan [auto memory](/docs/id/memory#auto-memory). Tetapkan ke `0` untuk memaksa auto memory aktif meskipun mode `--bare` atau [`autoMemoryEnabled: false`](/docs/id/settings-reference#automemoryenabled) akan menonaktifkannya. Jika dinonaktifkan, Claude tidak membuat atau memuat file auto memory |255| `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Tetapkan ke `1` untuk menonaktifkan [auto memory](/docs/id/memory#auto-memory). Tetapkan ke `0` untuk memaksa auto memory aktif bahkan saat mode `--bare` atau [`autoMemoryEnabled: false`](/docs/id/settings-reference#automemoryenabled) akan menonaktifkannya. Saat dinonaktifkan, Claude tidak membuat atau memuat file auto memory |

252| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Tetapkan ke `1` untuk menonaktifkan semua fungsionalitas tugas latar belakang, termasuk parameter `run_in_background` pada tool Bash dan subagent, pemindahan otomatis ke latar belakang, dan pintasan Ctrl+B |256| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Tetapkan ke `1` untuk menonaktifkan semua fungsionalitas tugas latar belakang, termasuk parameter `run_in_background` pada tool Bash dan subagent, pemindahan otomatis ke latar belakang, dan pintasan Ctrl+B |

253| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Tetapkan ke `1` untuk mencegah Claude Code memperlakukan respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) dengan header `Content-Type` yang hilang atau kosong sebagai event stream biner Amazon Bedrock. Secara default, Claude Code mengasumsikan gateway membuang header dari respons yang selain itu tidak dimodifikasi, sehingga Claude Code mendekode body dan streaming tetap berfungsi. Tetapkan ini hanya untuk gateway yang juga memancarkan ulang stream sebagai server-sent events; Claude Code kemudian membaca body tanpa header sebagai server-sent events. Memerlukan Claude Code v2.1.239 atau lebih baru |257| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Tetapkan ke `1` untuk menghentikan Claude Code memperlakukan respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) dengan header `Content-Type` yang hilang atau kosong sebagai binary event stream Amazon Bedrock. Secara default, Claude Code mengasumsikan gateway membuang header dari respons yang selain itu tidak dimodifikasi, sehingga Claude Code mendekode body dan streaming tetap berfungsi. Tetapkan ini hanya untuk gateway yang juga memancarkan ulang stream sebagai server-sent events; Claude Code kemudian membaca body tanpa header sebagai server-sent events. Memerlukan Claude Code v2.1.239 atau lebih baru |

254| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Tetapkan ke `1` untuk melewati pemeriksaan bahwa respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) membawa content-type `application/vnd.amazon.eventstream`. Tanpa variabel ini, ketika respons membawa content-type yang berbeda, Claude Code menggagalkan permintaan dengan error yang menyebutkan tipe tersebut, yang berarti [gateway atau proxy sedang mentransformasi respons](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Konfigurasikan gateway untuk meneruskan header `Content-Type` dan body tanpa modifikasi alih-alih menetapkan variabel ini. Memerlukan Claude Code v2.1.208 atau lebih baru |258| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Tetapkan ke `1` untuk melewati pemeriksaan bahwa respons streaming [Amazon Bedrock](/docs/id/amazon-bedrock) membawa content-type `application/vnd.amazon.eventstream`. Tanpa variabel ini, saat respons membawa content-type yang berbeda, Claude Code menggagalkan permintaan dengan error yang menyebutkan tipe tersebut, yang berarti [gateway atau proxy sedang mentransformasi respons](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Konfigurasikan gateway untuk meneruskan header `Content-Type` dan body tanpa modifikasi alih-alih menetapkan variabel ini. Memerlukan Claude Code v2.1.208 atau lebih baru |

255| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Tetapkan ke `1` untuk menghentikan perintah shell latar belakang, dynamic workflow, dan, sejak v2.1.198, subagent latar belakang yang sedang berjalan dalam [sesi latar belakang](/docs/id/agent-view) ketika [supervisor](/docs/id/agent-view#the-supervisor-process) menghentikan, memulai ulang, atau memperbarui proses sesi tersebut, alih-alih menyerahkannya ke proses berikutnya dari sesi tersebut. Hanya memengaruhi penyerahan tersebut: memindahkan sesi ke latar belakang dengan `←` atau [`/background`](/docs/id/agent-view#from-inside-a-session) tetap membawa pekerjaan yang sedang berjalan, dan `CLAUDE_DISABLE_ADOPT` menonaktifkan keduanya. Memerlukan Claude Code v2.1.196 atau lebih baru |259| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Tetapkan ke `1` untuk menghentikan perintah shell latar belakang yang sedang berjalan, workflow dinamis, dan, sejak v2.1.198, subagent latar belakang milik [sesi latar belakang](/docs/id/agent-view) saat [supervisor](/docs/id/agent-view#the-supervisor-process) menghentikan, memulai ulang, atau memperbarui proses sesi tersebut, alih-alih menyerahkannya ke proses berikutnya dari sesi tersebut. Hanya memengaruhi penyerahan tersebut: memindahkan sesi ke latar belakang dengan `←` atau [`/background`](/docs/id/agent-view#from-inside-a-session) tetap membawa pekerjaan yang sedang berlangsung, dan `CLAUDE_DISABLE_ADOPT` mematikan keduanya. Memerlukan Claude Code v2.1.196 atau lebih baru |

256| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Tetapkan ke `1` untuk mencegah Claude Code menghentikan [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) di bawah tekanan memori. Secara default, di macOS dan Linux, Claude Code menghentikan shell latar belakang ketika sistem operasi melaporkan tekanan memori kritis dan sesi telah idle selama 30 menit tanpa giliran atau subagent yang berjalan. Windows tidak memiliki sinyal tekanan memori, sehingga variabel ini tidak berpengaruh di sana. Memerlukan Claude Code v2.1.193 atau lebih baru |260| `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Tetapkan ke `1` untuk menghentikan Claude Code menghentikan [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) di bawah tekanan memori. Secara default, di macOS dan Linux, Claude Code menghentikan shell latar belakang saat sistem operasi melaporkan tekanan memori kritis dan sesi telah idle selama 30 menit tanpa giliran atau subagent yang berjalan. Windows tidak memiliki sinyal tekanan memori, sehingga variabel ini tidak berpengaruh di sana. Memerlukan Claude Code v2.1.193 atau lebih baru |

257| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Tetapkan ke `1` untuk menonaktifkan [skill](/docs/id/skills) dan workflow yang disertakan bersama Claude Code: skill bawaan dan workflow bawaan dihapus sepenuhnya, sementara perintah bawaan seperti `/init` tetap dapat diketik tetapi disembunyikan dari model. `/doctor` tetap dapat diketik seperti perintah bawaan; sembunyikan dengan `DISABLE_DOCTOR_COMMAND` sebagai gantinya. Skill dari plugin, `.claude/skills/`, dan `.claude/commands/` tidak terpengaruh. Setara dengan pengaturan [`disableBundledSkills`](/docs/id/settings-reference#disablebundledskills) |261| `CLAUDE_CODE_DISABLE_BUNDLED_SKILLS` | Tetapkan ke `1` untuk menonaktifkan [skills](/docs/id/skills) dan workflow yang disertakan dengan Claude Code: skill bawaan dan workflow dihapus sepenuhnya, sementara perintah bawaan seperti `/init` tetap dapat diketik tetapi disembunyikan dari model. `/doctor` tetap dapat diketik seperti perintah bawaan; sembunyikan dengan `DISABLE_DOCTOR_COMMAND` sebagai gantinya. Skill dari plugin, `.claude/skills/`, dan `.claude/commands/` tidak terpengaruh. Setara dengan pengaturan [`disableBundledSkills`](/docs/id/settings-reference#disablebundledskills) |

258| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Tetapkan ke `1` untuk menjaga tool browser [Claude in Chrome](/docs/id/chrome) tetap tersedia sambil menghilangkan bagian Chrome dari system prompt dan [skill bawaan](/docs/id/skills#bundled-skills) `/claude-in-chrome`. Untuk host yang menyematkan Claude Code dan menyediakan panduan browser mereka sendiri. Memerlukan Claude Code v2.1.257 atau lebih baru |262| `CLAUDE_CODE_DISABLE_CFC_PROMPT` | Tetapkan ke `1` untuk menjaga tool browser [Claude in Chrome](/docs/id/chrome) tetap tersedia sambil menghilangkan bagian Chrome dari system prompt dan [skill bawaan](/docs/id/skills#bundled-skills) `/claude-in-chrome`. Untuk host yang menyematkan Claude Code dan menyediakan panduan browser sendiri. Memerlukan Claude Code v2.1.257 atau lebih baru |

259| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Tetapkan ke `1` untuk mencegah pemuatan file memori CLAUDE.md apa pun ke dalam konteks, termasuk file memori pengguna, proyek, dan auto memory |263| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Tetapkan ke `1` untuk mencegah pemuatan file memori CLAUDE.md apa pun ke dalam konteks, termasuk file memori pengguna, proyek, dan auto memory |

260| `CLAUDE_CODE_DISABLE_CRON` | Tetapkan ke `1` untuk menonaktifkan [tugas terjadwal](/docs/id/scheduled-tasks). Skill `/loop` dan tool cron menjadi tidak tersedia dan semua tugas yang sudah dijadwalkan berhenti dijalankan, termasuk tugas yang sudah berjalan di tengah sesi |264| `CLAUDE_CODE_DISABLE_CRON` | Tetapkan ke `1` untuk menonaktifkan [tugas terjadwal](/docs/id/scheduled-tasks). Skill `/loop` dan tool cron menjadi tidak tersedia dan tugas yang sudah dijadwalkan berhenti dipicu, termasuk tugas yang sudah berjalan di tengah sesi |

261| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Tetapkan ke `1` untuk menonaktifkan batas waktu pada permintaan izin [penghapusan critical-path](/docs/id/permission-modes#critical-paths). Dalam mode `auto`, Claude Code kemudian mengirim penghapusan ini ke pengklasifikasi, dan dalam mode `bypassPermissions`, permintaan izin menunggu jawaban Anda. Tetapkan di lingkungan yang meluncurkan Claude Code, karena Claude Code mengabaikan salinan yang dikirim melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.281 atau lebih baru |265| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Tetapkan ke `1` untuk mematikan batas waktu pada permintaan izin [penghapusan path kritis](/docs/id/permission-modes#critical-paths). Dalam mode `auto`, Claude Code kemudian mengirim penghapusan tersebut ke pengklasifikasi, dan dalam mode `bypassPermissions`, permintaan izin menunggu jawaban Anda. Tetapkan di lingkungan yang menjalankan Claude Code, karena Claude Code mengabaikan salinan yang dikirimkan melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.281 atau lebih baru |

262| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Tetapkan ke `1` untuk menghapus header permintaan `anthropic-beta` pra-rilis, field body yang berpasangan dengannya, dan field skema tool beta seperti `defer_loading` dan `eager_input_streaming` dari permintaan API. Gunakan ini ketika proxy gateway menolak permintaan dengan error `Unexpected value(s)` untuk header `anthropic-beta` atau error `Extra inputs are not permitted`. [Menonaktifkan kapabilitas pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencantumkan apa yang dihapus variabel ini, termasuk [MCP tool search](/docs/id/mcp#scale-with-mcp-tool-search), dan apa yang tetap dikirim Claude Code |266| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Tetapkan ke `1` untuk menghapus header permintaan `anthropic-beta` pra-rilis, field body yang berpasangan dengannya, dan field skema tool beta seperti `defer_loading` dan `eager_input_streaming` dari permintaan API. Gunakan ini saat proxy gateway menolak permintaan dengan error `Unexpected value(s)` untuk header `anthropic-beta` atau error `Extra inputs are not permitted`. [Menonaktifkan kapabilitas pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencantumkan apa yang dihapus oleh variabel ini, termasuk [MCP tool search](/docs/id/mcp#scale-with-mcp-tool-search), dan apa yang tetap dikirim Claude Code |

263| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Tetapkan ke `1` untuk menonaktifkan [subagent Explore dan Plan](/docs/id/sub-agents#built-in-subagents) bawaan. Claude melakukan eksplorasi dengan tool pencariannya atau subagent general-purpose sebagai gantinya, dan [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) membaca file secara langsung alih-alih meluncurkan agent Explore dan Plan. Subagent kustom bernama `Explore` atau `Plan` tidak terpengaruh. Untuk menghapus setiap tipe subagent bawaan di Agent SDK atau mode non-interaktif, gunakan `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` sebagai gantinya. Memerlukan Claude Code v2.1.198 atau lebih baru |267| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Tetapkan ke `1` untuk menonaktifkan [subagent Explore dan Plan](/docs/id/sub-agents#built-in-subagents) bawaan. Claude melakukan eksplorasi dengan tool pencariannya atau subagent general-purpose sebagai gantinya, dan [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) membaca file secara langsung alih-alih meluncurkan agent Explore dan Plan. Subagent kustom bernama `Explore` atau `Plan` tidak terpengaruh. Untuk menghapus setiap jenis subagent bawaan di Agent SDK atau mode non-interaktif, gunakan `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` sebagai gantinya. Memerlukan Claude Code v2.1.198 atau lebih baru |

264| `CLAUDE_CODE_DISABLE_FAST_MODE` | Tetapkan ke `1` untuk menonaktifkan [fast mode](/docs/id/fast-mode) |268| `CLAUDE_CODE_DISABLE_FAST_MODE` | Tetapkan ke `1` untuk menonaktifkan [fast mode](/docs/id/fast-mode) |

265| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Tetapkan ke `1` untuk menonaktifkan survei kualitas sesi "How is Claude doing?". Survei juga dinonaktifkan ketika `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, atau `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ditetapkan, kecuali `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` mengaktifkannya kembali. Untuk menetapkan tingkat sampel alih-alih menonaktifkan sepenuhnya, gunakan pengaturan [`feedbackSurveyRate`](/docs/id/settings-reference#feedbacksurveyrate). Lihat [Survei kualitas sesi](/docs/id/data-usage#session-quality-surveys) |269| `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` | Tetapkan ke `1` untuk menonaktifkan survei kualitas sesi "How is Claude doing?". Survei juga dinonaktifkan saat `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, atau `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` ditetapkan, kecuali `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` mengaktifkannya kembali. Untuk menetapkan tingkat sampel alih-alih menonaktifkan sepenuhnya, gunakan pengaturan [`feedbackSurveyRate`](/docs/id/settings-reference#feedbacksurveyrate). Lihat [Survei kualitas sesi](/docs/id/data-usage#session-quality-surveys) |

266| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Tetapkan ke `1` untuk menonaktifkan [checkpointing](/docs/id/checkpointing) file. Perintah `/rewind` tidak akan dapat memulihkan perubahan kode. Menimpa pengaturan [`fileCheckpointingEnabled`](/docs/id/settings-reference#filecheckpointingenabled) |270| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | Tetapkan ke `1` untuk menonaktifkan [checkpointing](/docs/id/checkpointing) file. Perintah `/rewind` tidak akan dapat memulihkan perubahan kode. Menimpa pengaturan [`fileCheckpointingEnabled`](/docs/id/settings-reference#filecheckpointingenabled) |

267| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Tetapkan ke `1` untuk menghapus instruksi alur kerja commit dan PR bawaan serta snapshot status git dari konteks Claude. Berguna saat menggunakan skill alur kerja git Anda sendiri. Diutamakan daripada pengaturan [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) jika ditetapkan |271| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | Tetapkan ke `1` untuk menghapus instruksi alur kerja commit dan PR bawaan serta snapshot status git dari konteks Claude. Berguna saat menggunakan skill alur kerja git Anda sendiri. Diutamakan daripada pengaturan [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) saat ditetapkan |

268| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Tetapkan ke `1` untuk mencegah Claude Code membaca skrip yang diteruskan ke shell dengan `-c`, seperti `bash -c 'rm -rf ~'`, untuk penghapusan [critical-path](/docs/id/permission-modes#removals-inside-nested-commands-and-inline-scripts). Claude Code tetap memeriksa target variabel shell dan parameter posisional dalam skrip tersebut, dan pemeriksaan critical-path lainnya tetap berjalan. Tetapkan di lingkungan yang meluncurkan Claude Code, karena Claude Code mengabaikan salinan yang dikirim melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.288 atau lebih baru |272| `CLAUDE_CODE_DISABLE_INLINE_SHELL_RM_PROMPT` | Tetapkan ke `1` untuk menghentikan Claude Code membaca skrip yang diteruskan ke shell dengan `-c`, seperti `bash -c 'rm -rf ~'`, untuk penghapusan [path kritis](/docs/id/permission-modes#removals-inside-nested-commands-and-inline-scripts). Claude Code tetap memeriksa target variabel shell dan parameter posisional dalam skrip tersebut, dan pemeriksaan path kritis lainnya tetap berjalan. Tetapkan di lingkungan yang menjalankan Claude Code, karena Claude Code mengabaikan salinan yang dikirimkan melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.288 atau lebih baru |

269| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Tetapkan ke `1` untuk mencegah pemetaan ulang otomatis Opus 4.0 dan 4.1 ke versi Opus saat ini di Anthropic API. Gunakan ketika Anda sengaja ingin menyematkan model yang lebih lama. Pemetaan ulang tidak berjalan di Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry |273| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | Tetapkan ke `1` untuk mencegah pemetaan ulang otomatis Opus 4.0 dan 4.1 ke versi Opus saat ini di Anthropic API. Gunakan saat Anda sengaja ingin menyematkan model yang lebih lama. Pemetaan ulang tidak berjalan di Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry |

270| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Tetapkan ke `1` untuk mencegah Claude Code di [Amazon Bedrock](/docs/id/amazon-bedrock#when-a-model-is-disabled-mid-session) dan [Google Cloud's Agent Platform](/docs/id/google-vertex-ai#when-a-model-is-disabled-mid-session) beralih ke model yang lebih lama ketika akun Anda kehilangan akses ke model sesi di tengah sesi; permintaan yang ditolak langsung gagal sebagai gantinya. [Rantai fallback model](/docs/id/model-config#fallback-model-chains) yang Anda konfigurasi tetap beralih saat penolakan tersebut, dan [pemeriksaan model saat startup](/docs/id/amazon-bedrock#startup-model-checks) tetap melakukan fallback saat peluncuran. Memerlukan Claude Code v2.1.285 atau lebih baru |274| `CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK` | Tetapkan ke `1` untuk menghentikan Claude Code di [Amazon Bedrock](/docs/id/amazon-bedrock#when-a-model-is-disabled-mid-session) dan [Google Cloud's Agent Platform](/docs/id/google-vertex-ai#when-a-model-is-disabled-mid-session) beralih ke model yang lebih lama saat akun Anda kehilangan akses ke model sesi di tengah sesi; permintaan yang ditolak langsung gagal sebagai gantinya. [Rantai model fallback](/docs/id/model-config#fallback-model-chains) yang Anda konfigurasikan tetap beralih saat penolakan tersebut, dan [pemeriksaan model saat startup](/docs/id/amazon-bedrock#startup-model-checks) tetap melakukan fallback saat peluncuran. Memerlukan Claude Code v2.1.285 atau lebih baru |

271| `CLAUDE_CODE_DISABLE_MOUSE` | Tetapkan ke `1` untuk menonaktifkan pelacakan mouse dalam [rendering layar penuh](/docs/id/fullscreen). Scroll dengan keyboard menggunakan `PgUp` dan `PgDn` tetap berfungsi. Gunakan ini untuk mempertahankan perilaku salin-saat-memilih native terminal Anda |275| `CLAUDE_CODE_DISABLE_MOUSE` | Tetapkan ke `1` untuk menonaktifkan pelacakan mouse dalam [rendering layar penuh](/docs/id/fullscreen). Scroll dengan keyboard menggunakan `PgUp` dan `PgDn` tetap berfungsi. Gunakan ini untuk mempertahankan perilaku salin-saat-memilih bawaan terminal Anda |

272| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Tetapkan ke `1` untuk menonaktifkan penanganan klik, seret, dan hover dalam [rendering layar penuh](/docs/id/fullscreen) sambil mempertahankan scroll dengan roda mouse. Gunakan ini ketika Anda ingin scroll roda berfungsi di dalam Claude Code tetapi tidak ingin klik memosisikan kursor, memperluas output tool, atau membuka tautan. `CLAUDE_CODE_DISABLE_MOUSE` diutamakan jika keduanya ditetapkan. Memerlukan Claude Code v2.1.195 atau lebih baru |276| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Tetapkan ke `1` untuk menonaktifkan penanganan klik, seret, dan hover dalam [rendering layar penuh](/docs/id/fullscreen) sambil tetap mempertahankan scroll dengan roda mouse. Gunakan ini saat Anda ingin scroll roda berfungsi di dalam Claude Code tetapi tidak ingin klik memosisikan kursor, memperluas output tool, atau membuka tautan. `CLAUDE_CODE_DISABLE_MOUSE` diutamakan jika keduanya ditetapkan. Memerlukan Claude Code v2.1.195 atau lebih baru |

273| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Tetapkan ke `1` untuk mencegah Claude Code membaca ulang [sertifikat dan kunci klien mTLS](/docs/id/network-config#mtls-authentication) ketika permintaan API gagal dengan error tingkat koneksi, seperti reset koneksi atau error handshake TLS. Dengan pemuatan ulang dinonaktifkan, Claude Code memuat file yang dirotasi hanya ketika berikutnya menerapkan pengaturan atau pada startup berikutnya. Memerlukan Claude Code v2.1.232 atau lebih baru |277| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Tetapkan ke `1` untuk menghentikan Claude Code membaca ulang [sertifikat dan kunci klien mTLS](/docs/id/network-config#mtls-authentication) saat permintaan API gagal dengan error tingkat koneksi, seperti reset koneksi atau error handshake TLS. Dengan pemuatan ulang dinonaktifkan, Claude Code memuat file yang dirotasi hanya saat berikutnya menerapkan pengaturan atau saat startup berikutnya. Memerlukan Claude Code v2.1.232 atau lebih baru |

274| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Tetapkan ke nilai tidak kosong apa pun, seperti `1`, untuk menonaktifkan lalu lintas jaringan yang tidak esensial: pembaruan otomatis, telemetri, pelaporan error, perintah `/feedback`, [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), catatan rilis, pemeriksaan [lencana status PR dan MR](/docs/id/interactive-mode#pr-review-status), dan pemeriksaan ketersediaan seperti pemeriksaan [fast mode](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Ini juga menghentikan [eksekusi latar belakang dari sumber `command` plugin](/docs/id/plugins/loading#when-a-command-source-re-runs), yang merupakan perintah lokal dan bukan lalu lintas jaringan, karena dapat memicu instalasi dependensi. **Menetapkannya ke `0` atau `false` tetap menonaktifkan lalu lintas ini**, tidak seperti kebanyakan variabel aktif/nonaktif; hapus variabel untuk mengizinkannya kembali. Juga menonaktifkan pengambilan feature flag, yang membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan feature flag](#features-that-need-feature-flag-fetching) menjadi tidak tersedia. Instalasi otomatis marketplace plugin resmi tidak tercakup; nonaktifkan dengan `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Tidak memengaruhi [penemuan model gateway](/docs/id/llm-gateway-connect#add-gateway-models-to-the-model-picker), yang memiliki opsi ikut sertanya sendiri |278| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Tetapkan ke nilai apa pun yang tidak kosong, seperti `1`, untuk menonaktifkan lalu lintas jaringan yang tidak esensial: pembaruan otomatis, telemetri, pelaporan error, perintah `/feedback`, [feedback yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), catatan rilis, pemeriksaan [lencana status PR dan MR](/docs/id/interactive-mode#pr-review-status), dan pemeriksaan ketersediaan seperti pemeriksaan [fast mode](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Variabel ini juga menghentikan [eksekusi latar belakang sumber `command` plugin](/docs/id/plugins/loading#when-a-command-source-re-runs), yang merupakan perintah lokal dan bukan lalu lintas jaringan, karena dapat memicu instalasi dependensi. **Menetapkannya ke `0` atau `false` tetap menonaktifkan lalu lintas ini**, tidak seperti sebagian besar variabel aktif/nonaktif; hapus variabel untuk mengizinkannya kembali. Juga menonaktifkan pengambilan feature flag, yang membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan feature flag](#features-that-need-feature-flag-fetching) menjadi tidak tersedia. Instalasi otomatis marketplace plugin resmi tidak tercakup; nonaktifkan dengan `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Tidak memengaruhi [penemuan model gateway](/docs/id/llm-gateway-connect#add-gateway-models-to-the-model-picker), yang memiliki opsi aktivasinya sendiri |

275| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Tetapkan ke `1` untuk menonaktifkan fallback non-streaming ketika permintaan streaming gagal di tengah stream. Error streaming diteruskan ke lapisan retry sebagai gantinya. Berguna ketika proxy atau gateway menyebabkan fallback menghasilkan eksekusi tool ganda |279| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Tetapkan ke `1` untuk menonaktifkan fallback non-streaming saat permintaan streaming gagal di tengah stream. Error streaming diteruskan ke lapisan retry sebagai gantinya. Berguna saat proxy atau gateway menyebabkan fallback menghasilkan eksekusi tool ganda |

276| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Tetapkan ke `1` untuk mengirim notifikasi desktop tool `PushNotification` bahkan saat Anda sedang mengetik di atau berfokus pada terminal. Secara default, tool tersebut melewati notifikasi desktop dan [push seluler](/docs/id/remote-control#mobile-push-notifications) ketika mendeteksi aktivitas keyboard terbaru atau fokus terminal. Variabel ini hanya menonaktifkan pemeriksaan lokal tersebut, sehingga server tetap dapat menekan push seluler ketika mendeteksi bahwa Anda sedang aktif. Memerlukan Claude Code v2.1.193 atau lebih baru |280| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Tetapkan ke `1` untuk mengirim notifikasi desktop tool `PushNotification` bahkan saat Anda sedang mengetik di terminal atau terminal sedang dalam fokus. Secara default, tool melewati notifikasi desktop dan [push seluler](/docs/id/remote-control#mobile-push-notifications) saat mendeteksi aktivitas keyboard terbaru atau fokus terminal. Variabel ini hanya menonaktifkan pemeriksaan lokal tersebut, sehingga server tetap dapat menekan push seluler saat mendeteksi bahwa Anda sedang aktif. Memerlukan Claude Code v2.1.193 atau lebih baru |

277| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Tetapkan ke `1` untuk menonaktifkan pendaftaran otomatis marketplace plugin resmi. Claude Code membaca variabel ini ketika akan mendaftarkan marketplace, biasanya selama peluncuran interaktif pertama pada suatu mesin. Jika variabel ditetapkan pada saat itu, Claude Code melewati pendaftaran secara permanen. Menghapus variabel nanti tidak membatalkan pelewatan tersebut. Jalankan `claude plugin marketplace add anthropics/claude-plugins-official` untuk mendaftarkan marketplace kapan saja |281| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Tetapkan ke `1` untuk menonaktifkan pendaftaran otomatis marketplace plugin resmi. Claude Code membaca variabel ini saat akan mendaftarkan marketplace, biasanya selama peluncuran interaktif pertama suatu mesin. Jika variabel ditetapkan pada saat itu, Claude Code melewati pendaftaran secara permanen. Menghapus variabel di kemudian hari tidak membatalkan pelewatan tersebut. Jalankan `claude plugin marketplace add anthropics/claude-plugins-official` untuk mendaftarkan marketplace kapan saja |

278| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Tetapkan ke `1` untuk mencegah Claude Code menjalankan [hook `Notification` untuk permintaan izin yang belum dijawab](/docs/id/hooks#notification) dalam sesi di mana Claude Code mengirimkannya ke callback `canUseTool` milik Agent SDK, yang merupakan cara Claude Desktop dan ekstensi VS Code meng-host Claude Code. Tidak berpengaruh dalam sesi terminal. Memerlukan Claude Code v2.1.233 atau lebih baru |282| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Tetapkan ke `1` untuk menghentikan Claude Code menjalankan [hook `Notification` untuk permintaan izin yang belum dijawab](/docs/id/hooks#notification) dalam sesi tempat Claude Code mengirimkannya ke callback `canUseTool` milik Agent SDK, yang merupakan cara Claude Desktop dan ekstensi VS Code menjadi host Claude Code. Tidak berpengaruh dalam sesi terminal. Memerlukan Claude Code v2.1.233 atau lebih baru |

279| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Tetapkan ke `1` untuk melewati pemuatan skill dari direktori skill terkelola seluruh sistem. Berguna untuk sesi container atau CI yang tidak boleh memuat skill yang disediakan operator |283| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Tetapkan ke `1` untuk melewati pemuatan skill dari direktori skill terkelola tingkat sistem. Berguna untuk sesi container atau CI yang tidak boleh memuat skill yang disediakan operator |

280| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Tetapkan ke `1` untuk menonaktifkan pemeriksaan [tool PowerShell](/docs/id/tools-reference#powershell-tool) yang menolak built-in `cmd` `rd`, `rmdir`, `del`, dan `erase` pada [path sistem](/docs/id/permission-modes#remove-item-in-powershell), seperti root drive atau direktori home Anda. Claude Code mengabaikan variabel ini di blok `env` file pengaturan. Memerlukan Claude Code v2.1.283 atau lebih baru |284| `CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY` | Tetapkan ke `1` untuk mematikan pemeriksaan [tool PowerShell](/docs/id/tools-reference#powershell-tool) yang menolak built-in `cmd` `rd`, `rmdir`, `del`, dan `erase` pada [path sistem](/docs/id/permission-modes#remove-item-in-powershell), seperti root drive atau direktori home Anda. Claude Code mengabaikan variabel ini di blok `env` file pengaturan. Memerlukan Claude Code v2.1.283 atau lebih baru |

281| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | Tetapkan ke `1` untuk menonaktifkan [peralihan model otomatis ketika pengklasifikasi keamanan menandai permintaan](/docs/id/model-config#automatic-model-fallback), perilaku yang dikontrol oleh pengaturan [`switchModelsOnFlag`](/docs/id/settings-reference#switchmodelsonflag) |285| `CLAUDE_CODE_DISABLE_REFUSAL_FALLBACK` | Tetapkan ke `1` untuk mematikan [peralihan model otomatis saat pengklasifikasi keamanan menandai permintaan](/docs/id/model-config#automatic-model-fallback), perilaku yang dikontrol oleh pengaturan [`switchModelsOnFlag`](/docs/id/settings-reference#switchmodelsonflag) |

282| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Tetapkan ke `1` untuk mencegah Claude Code mengirim field structured-output `output_config.format` dan nilai `anthropic-beta` yang berpasangan dengannya, untuk [LLM gateway](/docs/id/llm-gateway-protocol#feature-pass-through) yang upstream-nya menolaknya. Ini membiarkan aktif kapabilitas pra-rilis lain yang dinonaktifkan oleh [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities). Memerlukan Claude Code v2.1.288 atau lebih baru |286| `CLAUDE_CODE_DISABLE_STRUCTURED_OUTPUTS` | Tetapkan ke `1` untuk menghentikan Claude Code mengirim field structured-output `output_config.format` dan nilai `anthropic-beta` yang berpasangan dengannya, untuk [LLM gateway](/docs/id/llm-gateway-protocol#feature-pass-through) yang upstream-nya menolaknya. Ini tetap mengaktifkan kapabilitas pra-rilis lain yang dimatikan oleh [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities). Memerlukan Claude Code v2.1.288 atau lebih baru |

283| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Tetapkan ke `1` untuk menonaktifkan pemeriksaan [critical-path](/docs/id/permission-modes#critical-paths) untuk `rm` rekursif yang targetnya seluruhnya merupakan output dari substitusi perintah, seperti `rm -rf "$(pwd)"`. Pemeriksaan critical-path lainnya tetap berjalan. Tetapkan di lingkungan yang meluncurkan Claude Code, karena Claude Code mengabaikan salinan yang dikirim melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.281 atau lebih baru |287| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | Tetapkan ke `1` untuk mematikan pemeriksaan [path kritis](/docs/id/permission-modes#critical-paths) untuk `rm` rekursif yang targetnya sepenuhnya merupakan output dari substitusi perintah, seperti `rm -rf "$(pwd)"`. Pemeriksaan path kritis lainnya tetap berjalan. Tetapkan di lingkungan yang menjalankan Claude Code, karena Claude Code mengabaikan salinan yang dikirimkan melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.281 atau lebih baru |

284| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Tetapkan ke `1` untuk menonaktifkan pembaruan judul terminal otomatis berdasarkan konteks percakapan. Ini juga melewati permintaan model kecil/cepat di latar belakang yang [membuat judul sesi](/docs/id/sessions#name-your-sessions) |288| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Tetapkan ke `1` untuk menonaktifkan pembaruan judul terminal otomatis berdasarkan konteks percakapan. Ini juga melewati permintaan model kecil/cepat di latar belakang yang [menghasilkan judul sesi](/docs/id/sessions#name-your-sessions) |

285| `CLAUDE_CODE_DISABLE_THINKING` | Tetapkan ke `1` untuk menghilangkan parameter `thinking` dari permintaan API sepenuhnya. Ini adalah opsi kompatibilitas untuk proxy dan gateway yang menolak parameter tersebut. Pada model yang melakukan thinking secara default, menghilangkan parameter berarti model mungkin tetap melakukan thinking. Untuk secara eksplisit menonaktifkan [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) di Anthropic API, gunakan `MAX_THINKING_TOKENS=0` sebagai gantinya. Tidak ada variabel yang menonaktifkan thinking pada Opus 5.5, Sonnet 5.5, Haiku 5.5, atau model Fable, yang thinking-nya tidak dapat dinonaktifkan. Pada [penyedia pihak ketiga](/docs/id/third-party-integrations), `MAX_THINKING_TOKENS=0` juga menghilangkan parameter tersebut, sehingga kedua variabel berperilaku sama di sana |289| `CLAUDE_CODE_DISABLE_THINKING` | Tetapkan ke `1` untuk menghilangkan parameter `thinking` dari permintaan API sepenuhnya. Ini adalah opsi kompatibilitas untuk proxy dan gateway yang menolak parameter tersebut. Pada model yang melakukan thinking secara default, menghilangkan parameter berarti model mungkin tetap melakukan thinking. Untuk secara eksplisit menonaktifkan [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) di Anthropic API, gunakan `MAX_THINKING_TOKENS=0` sebagai gantinya. Tidak satu pun dari kedua variabel ini yang mematikan thinking pada Opus 5.5, Sonnet 5.5, Haiku 5.5, atau model Fable, yang thinking-nya tidak dapat dimatikan. Pada [penyedia pihak ketiga](/docs/id/third-party-integrations), `MAX_THINKING_TOKENS=0` juga menghilangkan parameter tersebut, sehingga kedua variabel berperilaku sama di sana |

286| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Tetapkan ke `1` untuk melewati [auto-compaction](/docs/id/costs#reduce-token-usage) proaktif ketika Claude Code tidak mengenali ID model, seperti alias [LLM gateway](/docs/id/llm-gateway). Tanpa variabel ini, Claude Code melakukan compaction pada context window yang diasumsikannya untuk ID tersebut. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` dapat mengoreksi window yang diasumsikan sebagai gantinya; lihat [Mengoreksi window untuk gateway atau ID model kustom](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) untuk mengetahui kapan masing-masing variabel berlaku. Memerlukan Claude Code v2.1.223 atau lebih baru |290| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Tetapkan ke `1` untuk melewati [auto-compaction](/docs/id/costs#reduce-token-usage) proaktif saat Claude Code tidak mengenali ID model, seperti alias [LLM gateway](/docs/id/llm-gateway). Tanpa variabel ini, Claude Code melakukan compaction pada context window yang diasumsikannya untuk ID tersebut. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` dapat mengoreksi jendela yang diasumsikan sebagai gantinya; lihat [Mengoreksi jendela untuk gateway atau ID model kustom](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) untuk mengetahui kapan masing-masing variabel berlaku. Memerlukan Claude Code v2.1.223 atau lebih baru |

287| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Tetapkan ke `1` untuk menonaktifkan virtual scrolling dalam [rendering layar penuh](/docs/id/fullscreen) dan merender setiap pesan dalam transkrip. Gunakan ini jika scroll dalam mode layar penuh menampilkan area kosong di tempat pesan seharusnya muncul |291| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Tetapkan ke `1` untuk menonaktifkan virtual scrolling dalam [rendering layar penuh](/docs/id/fullscreen) dan merender setiap pesan dalam transkrip. Gunakan ini jika scroll dalam mode layar penuh menampilkan area kosong di tempat pesan seharusnya muncul |

288| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Tetapkan ke `1` untuk menonaktifkan tool [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior). Tool [WebSearch](/docs/id/tools-reference#websearch-tool-behavior) tetap tersedia. Memerlukan Claude Code v2.1.285 atau lebih baru |292| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Tetapkan ke `1` untuk mematikan tool [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior). Tool [WebSearch](/docs/id/tools-reference#websearch-tool-behavior) tetap tersedia. Memerlukan Claude Code v2.1.285 atau lebih baru |

289| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Tetapkan ke `1` untuk memulai perintah [tool PowerShell](/docs/id/tools-reference#powershell-tool) di Windows secara langsung alih-alih melalui launcher `cmd.exe`. Secara default, launcher memungkinkan perintah PowerShell yang [berjalan di latar belakang](/docs/id/tools-reference#background-commands) [berlanjut ke proses berikutnya dari sesi](/docs/id/agent-view#the-supervisor-process), seperti ketika Anda [memindahkan sesi ke latar belakang](/docs/id/agent-view#from-inside-a-session). Jika Anda menetapkan variabel ini, perintah PowerShell yang berjalan di latar belakang berhenti ketika proses sesi keluar. Perintah Bash tidak terpengaruh. Memerlukan Claude Code v2.1.269 atau lebih baru |293| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Tetapkan ke `1` untuk memulai perintah [tool PowerShell](/docs/id/tools-reference#powershell-tool) di Windows secara langsung alih-alih melalui launcher `cmd.exe`. Secara default, launcher memungkinkan perintah PowerShell yang [berjalan di latar belakang](/docs/id/tools-reference#background-commands) [dibawa ke proses berikutnya dari sesi](/docs/id/agent-view#the-supervisor-process), seperti saat Anda [memindahkan sesi ke latar belakang](/docs/id/agent-view#from-inside-a-session). Jika Anda menetapkan variabel ini, perintah PowerShell yang berjalan di latar belakang berhenti saat proses sesi keluar. Perintah Bash tidak terpengaruh. Memerlukan Claude Code v2.1.269 atau lebih baru |

290| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Tetapkan ke `1` untuk menonaktifkan [workflow](/docs/id/workflows#turn-workflows-off). Setara dengan pengaturan [`disableWorkflows`](/docs/id/settings-reference#disableworkflows) |294| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Tetapkan ke `1` untuk menonaktifkan [workflow](/docs/id/workflows#turn-workflows-off). Setara dengan pengaturan [`disableWorkflows`](/docs/id/settings-reference#disableworkflows) |

291| `CLAUDE_CODE_EFFORT_LEVEL` | Tetapkan tingkat effort untuk model yang didukung. Nilai: `low`, `medium`, `high`, `xhigh`, `max`, atau `auto` untuk menggunakan default model. Tingkat yang tersedia bergantung pada model. Diutamakan daripada `--effort`, `/effort`, serta pengaturan `modelSettings` dan `effortLevel`. Batas [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) tetap berlaku. Lihat [Menyesuaikan tingkat effort](/docs/id/model-config#adjust-effort-level) |295| `CLAUDE_CODE_EFFORT_LEVEL` | Tetapkan tingkat effort untuk model yang didukung. Nilai: `low`, `medium`, `high`, `xhigh`, `max`, atau `auto` untuk menggunakan default model. Tingkat yang tersedia bergantung pada model. Diutamakan daripada `--effort`, `/effort`, dan pengaturan `modelSettings` serta `effortLevel`. Batas [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) tetap berlaku. Lihat [Menyesuaikan tingkat effort](/docs/id/model-config#adjust-effort-level) |

292| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Atur ke `1` untuk menambahkan pesan [`session_state_changed`](/docs/id/agent-sdk/typescript#sdksessionstatechangedmessage), yang membawa status sesi, ke aliran pesan. Memerlukan [Agent SDK](/docs/id/agent-sdk/overview) atau `--print`, `--output-format stream-json`, dan `--verbose` |296| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Setel ke `1` untuk menambahkan pesan [`session_state_changed`](/docs/id/agent-sdk/typescript#sdksessionstatechangedmessage), yang membawa status sesi, ke aliran pesan. Memerlukan [Agent SDK](/docs/id/agent-sdk/overview) atau `--print`, `--output-format stream-json`, dan `--verbose` |

293| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Diterima demi kompatibilitas dengan rilis lama dan tidak berpengaruh apa pun. Auto mode tersedia secara default di setiap penyedia, termasuk Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, dan sesi [Claude apps gateway](/docs/id/claude-apps-gateway) yang sudah masuk. Pada v2.1.158 hingga v2.1.206, mengatur ini ke `1` diperlukan agar [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) tersedia di penyedia tersebut |297| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Diterima untuk kompatibilitas dengan rilis lama dan tidak berpengaruh. Auto mode tersedia secara default di setiap penyedia, termasuk Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, dan sesi [Claude apps gateway](/docs/id/claude-apps-gateway) yang sudah masuk. Di v2.1.158 hingga v2.1.206, menyetel ini ke `1` diperlukan agar [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) tersedia di penyedia tersebut |

294| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Menimpa ketersediaan [rekap sesi](/docs/id/interactive-mode#session-recap). Atur ke `0` untuk memaksa rekap nonaktif terlepas dari toggle `/config`. Atur ke `1` untuk memaksa rekap aktif ketika [`awaySummaryEnabled`](/docs/id/settings-reference#awaysummaryenabled) bernilai `false`. Diutamakan daripada pengaturan dan toggle `/config` |298| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Menimpa ketersediaan [rekap sesi](/docs/id/interactive-mode#session-recap). Setel ke `0` untuk memaksa rekap nonaktif terlepas dari toggle `/config`. Setel ke `1` untuk memaksa rekap aktif saat [`awaySummaryEnabled`](/docs/id/settings-reference#awaysummaryenabled) bernilai `false`. Diutamakan daripada pengaturan dan toggle `/config` |

295| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Atur ke `1` untuk menyegarkan status plugin di batas giliran dalam [mode non-interaktif](/docs/id/headless) setelah instalasi latar belakang selesai. Nonaktif secara default karena penyegaran mengubah system prompt di tengah sesi, yang membatalkan [prompt caching](/docs/id/prompt-caching) untuk giliran tersebut |299| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Setel ke `1` untuk menyegarkan status plugin di batas giliran dalam [mode non-interaktif](/docs/id/headless) setelah instalasi latar belakang selesai. Nonaktif secara default karena penyegaran mengubah system prompt di tengah sesi, yang membatalkan [prompt caching](/docs/id/prompt-caching) untuk giliran tersebut |

296| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Atur ke `1` untuk mengarahkan survei kualitas sesi "How is Claude doing?" ke [kolektor OpenTelemetry](/docs/id/monitoring-usage) milik Anda sendiri ketika lalu lintas nonesensial yang menuju Anthropic diblokir. Penilaian survei hanya dikirim sebagai event OTEL ke kolektor yang Anda konfigurasi. Tidak ada data survei yang dikirim ke Anthropic dalam mode ini. Berlaku ketika `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY`, atau `DO_NOT_TRACK` diatur, dan tidak berpengaruh jika tidak. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` dan kebijakan umpan balik produk organisasi diutamakan |300| `CLAUDE_CODE_ENABLE_CFC` | Setel ke `1` untuk memulai sesi CLI dengan [integrasi Chrome](/docs/id/chrome) aktif, atau `0` untuk memulai dengan integrasi tersebut nonaktif. Diutamakan daripada pengaturan [`claudeInChromeDefaultEnabled`](/docs/id/settings-reference#claudeinchromedefaultenabled). Flag `--chrome` dan `--no-chrome` diutamakan daripada keduanya. Claude Code [mengabaikan `1` di pengaturan proyek dan lokal](/docs/id/chrome#project-settings-can’t-turn-on-chrome) |

297| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Mengontrol apakah input panggilan tool dialirkan dari API saat Claude menghasilkannya. Jika ini nonaktif, input tool yang besar seperti penulisan file yang panjang baru tiba setelah Claude selesai menghasilkannya, yang dapat terlihat seperti macet. Aktif secara default di Anthropic API. Di Amazon Bedrock dan Google Cloud's Agent Platform, diaktifkan per model jika container yang di-deploy mendukungnya. Atur ke `0` untuk menonaktifkan. Atur ke `1` untuk memaksa aktif saat merutekan melalui proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, atau `ANTHROPIC_BEDROCK_BASE_URL`. Nonaktif secara default di Microsoft Foundry dan koneksi [gateway](/docs/id/llm-gateway) |301| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | Setel ke `1` untuk mengarahkan survei kualitas sesi "How is Claude doing?" ke [kolektor OpenTelemetry](/docs/id/monitoring-usage) Anda sendiri saat lalu lintas nonesensial yang menuju Anthropic diblokir. Penilaian survei hanya dipancarkan sebagai event OTEL ke kolektor yang Anda konfigurasi. Tidak ada data survei yang dikirim ke Anthropic dalam mode ini. Berlaku saat `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_TELEMETRY`, atau `DO_NOT_TRACK` disetel, dan tidak berpengaruh jika tidak. `CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` dan kebijakan umpan balik produk organisasi diutamakan |

298| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Atur ke `1` untuk mengisi pemilih `/model` dari endpoint `/v1/models` gateway Anda ketika `ANTHROPIC_BASE_URL` mengarah ke gateway yang kompatibel dengan Anthropic seperti LiteLLM, Kong, atau proxy internal. Nonaktif secara default karena gateway yang didukung kunci API bersama jika tidak akan menampilkan kepada setiap pengguna semua model yang dapat diakses kunci tersebut. Model yang ditemukan tetap difilter oleh allowlist [`availableModels`](/docs/id/settings-reference#availablemodels) yang diterima sesi; kirimkan daftar tersebut melalui [MDM atau file pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms), karena [pengiriman yang dikelola server tidak tersedia pada konfigurasi gateway](/docs/id/server-managed-settings#platform-availability) |302| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | Mengontrol apakah input panggilan tool dialirkan dari API saat Claude menghasilkannya. Jika ini nonaktif, input tool yang besar seperti penulisan file yang panjang baru tiba setelah Claude selesai menghasilkannya, yang dapat terlihat seperti macet. Aktif secara default di Anthropic API. Di Amazon Bedrock dan Google Cloud's Agent Platform, diaktifkan per model jika container yang di-deploy mendukungnya. Setel ke `0` untuk menonaktifkan. Setel ke `1` untuk memaksa aktif saat merutekan melalui proxy via `ANTHROPIC_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, atau `ANTHROPIC_BEDROCK_BASE_URL`. Nonaktif secara default di Microsoft Foundry dan koneksi [gateway](/docs/id/llm-gateway) |

303| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Setel ke `1` untuk mengisi pemilih `/model` dari endpoint `/v1/models` gateway Anda saat `ANTHROPIC_BASE_URL` mengarah ke gateway yang kompatibel dengan Anthropic seperti LiteLLM, Kong, atau proxy internal. Nonaktif secara default karena jika tidak, gateway yang didukung kunci API bersama akan menampilkan kepada setiap pengguna setiap model yang dapat diakses kunci tersebut. Model yang ditemukan tetap difilter oleh allowlist [`availableModels`](/docs/id/settings-reference#availablemodels) yang diterima sesi; kirimkan daftar tersebut melalui [MDM atau file pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms), karena [pengiriman yang dikelola server tidak tersedia pada konfigurasi gateway](/docs/id/server-managed-settings#platform-availability) |

299| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Dihapus di v2.1.142, ketika default [fast mode](/docs/id/fast-mode) berpindah dari Opus 4.6 ke Opus 4.7 |304| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Dihapus di v2.1.142, ketika default [fast mode](/docs/id/fast-mode) berpindah dari Opus 4.6 ke Opus 4.7 |

300| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Atur ke `false` untuk mematikan saran prompt, yaitu prediksi berwarna abu-abu yang muncul di input prompt Anda. Diutamakan daripada pengaturan [`promptSuggestionEnabled`](/docs/id/settings-reference#promptsuggestionenabled), yang ditulis oleh toggle **Prompt suggestions** di `/config`. Claude Code juga [menjeda saran ketika akun Anda mendekati atau mencapai batas penggunaannya](/docs/id/interactive-mode#when-claude-code-skips-suggestions). Atur ke `true` untuk tetap mengaktifkannya hingga Anda mencapai batas. Memerlukan Claude Code v2.1.238 atau yang lebih baru. Lihat [Saran prompt](/docs/id/interactive-mode#prompt-suggestions) |305| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Setel ke `false` untuk mematikan saran prompt, yaitu prediksi berwarna abu-abu yang muncul di input prompt Anda. Diutamakan daripada pengaturan [`promptSuggestionEnabled`](/docs/id/settings-reference#promptsuggestionenabled), yang merupakan nilai yang ditulis oleh toggle **Prompt suggestions** di `/config`. Claude Code juga [menjeda saran saat akun Anda mendekati atau mencapai batas penggunaannya](/docs/id/interactive-mode#when-claude-code-skips-suggestions). Setel ke `true` untuk tetap mengaktifkannya hingga Anda mencapai batas. Memerlukan Claude Code v2.1.238 atau lebih baru. Lihat [Saran prompt](/docs/id/interactive-mode#prompt-suggestions) |

301| `CLAUDE_CODE_ENABLE_TASKS` | Memilih tool pelacakan tugas mana yang disediakan Claude Code dalam [sesi yang memilikinya](/docs/id/tools-reference#task-tool-availability). Secara default, Claude Code menyediakan tool Task `TaskCreate`, `TaskUpdate`, `TaskGet`, dan `TaskList`. Atur ke `0` untuk mendapatkan tool lama `TodoWrite` sebagai gantinya. Lihat [Daftar tugas](/docs/id/interactive-mode#task-list) |306| `CLAUDE_CODE_ENABLE_TASKS` | Memilih tool pelacakan tugas mana yang disediakan Claude Code dalam [sesi yang memilikinya](/docs/id/tools-reference#task-tool-availability). Secara default, Claude Code menyediakan tool Task `TaskCreate`, `TaskUpdate`, `TaskGet`, dan `TaskList`. Setel ke `0` untuk mendapatkan tool lama `TodoWrite` sebagai gantinya. Lihat [Daftar tugas](/docs/id/interactive-mode#task-list) |

302| `CLAUDE_CODE_ENABLE_TELEMETRY` | Atur ke `1` untuk mengaktifkan pengumpulan data OpenTelemetry untuk metrik dan logging. Diperlukan sebelum mengonfigurasi exporter OTel. Atur di shell Anda, pengaturan pengguna, atau pengaturan terkelola. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Lihat [Pemantauan](/docs/id/monitoring-usage) |307| `CLAUDE_CODE_ENABLE_TELEMETRY` | Setel ke `1` untuk mengaktifkan pengumpulan data OpenTelemetry untuk metrik dan logging. Diperlukan sebelum mengonfigurasi exporter OTel. Setel di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Lihat [Pemantauan](/docs/id/monitoring-usage) |

303| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Atur ke `1` untuk mendapatkan tool pelacakan tugas di setiap model. Tanpanya, Claude Code menyediakannya secara default hanya pada model yang tercantum di [Ketersediaan tool Task](/docs/id/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` tetap memilih tool Task atau `TodoWrite`. Memerlukan Claude Code v2.1.233 atau yang lebih baru |308| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Setel ke `1` untuk mendapatkan tool pelacakan tugas di setiap model. Tanpa ini, Claude Code menyediakannya secara default hanya pada model yang tercantum di bawah [Ketersediaan tool Task](/docs/id/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` tetap memilih tool Task atau `TodoWrite`. Memerlukan Claude Code v2.1.233 atau lebih baru |

304| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Waktu dalam milidetik untuk menunggu setelah loop kueri menjadi idle sebelum keluar secara otomatis. Berguna untuk alur kerja otomatis dan skrip yang menggunakan mode SDK |309| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Waktu dalam milidetik untuk menunggu setelah loop kueri menjadi idle sebelum keluar secara otomatis. Berguna untuk alur kerja otomatis dan skrip yang menggunakan mode SDK |

305| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Atur ke `1` untuk mengaktifkan [tim agent](/docs/id/agent-teams). Tim agent bersifat eksperimental dan dinonaktifkan secara default |310| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Setel ke `1` untuk mengaktifkan [tim agent](/docs/id/agent-teams). Tim agent bersifat eksperimental dan nonaktif secara default |

306| `CLAUDE_CODE_EXTRA_BODY` | Objek JSON untuk digabungkan ke tingkat teratas setiap body permintaan API. Berguna untuk meneruskan parameter khusus penyedia yang tidak diekspos langsung oleh Claude Code. Nilai yang diekspor di shell Anda juga berlaku untuk [sesi latar belakang](/docs/id/agent-view) yang Anda jalankan dengan `claude agents` atau `--bg`. Sebelum v2.1.206, sesi latar belakang mengabaikan nilai yang diekspor dari shell dan menggunakan salinan apa pun yang diwarisi oleh proses supervisor latar belakang |311| `CLAUDE_CODE_EXTRA_BODY` | Objek JSON untuk digabungkan ke tingkat teratas setiap body permintaan API. Berguna untuk meneruskan parameter khusus penyedia yang tidak diekspos langsung oleh Claude Code. Nilai yang diekspor di shell Anda juga berlaku untuk [sesi latar belakang](/docs/id/agent-view) yang Anda kirim dengan `claude agents` atau `--bg`. Sebelum v2.1.206, sesi latar belakang mengabaikan nilai yang diekspor shell dan menggunakan salinan apa pun yang diwarisi oleh proses supervisor latar belakang |

307| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Menimpa batas token default untuk pembacaan file. Berguna ketika Anda perlu membaca file yang lebih besar secara utuh |312| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Menimpa batas token default untuk pembacaan file. Berguna saat Anda perlu membaca file yang lebih besar secara utuh |

308| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Atur ke `1` untuk memaksa persistensi transkrip, riwayat prompt, dan pendaftaran `claude agents` bahkan ketika `claude` ini diluncurkan dari dalam sesi Claude Code lain. Gunakan ketika nilai `CLAUDE_CODE_CHILD_SESSION` yang diwarisi, misalnya dari sesi `screen` atau peluncur latar belakang yang pertama kali dimulai oleh tool Bash Claude Code, menyebabkan sesi tingkat atas yang sebenarnya salah diklasifikasikan sebagai bersarang. Sejak v2.1.178, Claude Code mendeteksi kasus tmux secara otomatis dan mengabaikan penanda yang diwarisi, sehingga tmux tidak lagi memerlukan variabel ini. Juga dihormati pada v2.1.169 dan sebelumnya; tidak berpengaruh pada v2.1.170 dan v2.1.171, di mana deteksi sesi bersarang yang ditimpanya telah dihapus |313| `CLAUDE_CODE_FORCE_SESSION_PERSISTENCE` | Setel ke `1` untuk memaksa persistensi transkrip, riwayat prompt, dan pendaftaran `claude agents` bahkan ketika `claude` ini diluncurkan dari dalam sesi Claude Code lain. Gunakan ketika nilai `CLAUDE_CODE_CHILD_SESSION` yang diwarisi, misalnya dari sesi `screen` atau peluncur latar belakang yang pertama kali dimulai oleh tool Bash Claude Code, menyebabkan sesi tingkat atas yang sebenarnya salah diklasifikasikan sebagai bersarang. Sejak v2.1.178, Claude Code mendeteksi kasus tmux secara otomatis dan mengabaikan penanda yang diwarisi, sehingga tmux tidak lagi memerlukan variabel ini. Juga dihormati di v2.1.169 dan sebelumnya; tidak berpengaruh di v2.1.170 dan v2.1.171, di mana deteksi sesi bersarang yang ditimpanya dihapus |

309| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Atur ke `1` untuk memaksa rendering coret untuk `~~text~~` dalam respons Claude ketika terminal Anda mendukungnya tetapi tidak terdeteksi otomatis, seperti melalui SSH tanpa `TERM_PROGRAM` diteruskan. Tanpa ini, terminal yang tidak terdeteksi menampilkan penanda `~~` secara harfiah alih-alih merender teks sebagai coret. Memerlukan Claude Code v2.1.186 atau yang lebih baru |314| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | Setel ke `1` untuk memaksa rendering coretan untuk `~~text~~` dalam respons Claude saat terminal Anda mendukungnya tetapi tidak terdeteksi otomatis, misalnya melalui SSH tanpa `TERM_PROGRAM` diteruskan. Tanpa ini, terminal yang tidak terdeteksi menampilkan penanda `~~` secara literal alih-alih merender teks sebagai coretan. Memerlukan Claude Code v2.1.186 atau lebih baru |

310| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Atur ke `1` untuk memaksa mengaktifkan [synchronized output](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) DEC private mode 2026 ketika terminal Anda mendukungnya tetapi tidak terdeteksi otomatis. Berguna untuk emulator seperti Emacs `eat` yang mengimplementasikan BSU/ESU tetapi tidak membalas probe kapabilitas. Tidak berpengaruh di bawah tmux. Berbeda dengan `CLAUDE_CODE_NO_FLICKER`, yang beralih ke [rendering layar penuh](/docs/id/fullscreen), ini tidak mengubah renderer |315| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Setel ke `1` untuk memaksa mengaktifkan [output tersinkronisasi](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) DEC private mode 2026 saat terminal Anda mendukungnya tetapi tidak terdeteksi otomatis. Berguna untuk emulator seperti Emacs `eat` yang mengimplementasikan BSU/ESU tetapi tidak membalas probe kapabilitas. Tidak berpengaruh di bawah tmux. Tidak seperti `CLAUDE_CODE_NO_FLICKER`, yang beralih ke [rendering layar penuh](/docs/id/fullscreen), ini tidak mengubah renderer |

311| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | Atur ke `1` untuk menggambar [elemen `Image` mod](/docs/id/plugins/mods/reference#elements) sebagai gambar ketika terminal Anda menggambar gambar protokol grafis kitty dengan placeholder Unicode tetapi tidak terdeteksi otomatis. Lihat [terminal mana yang dideteksi Claude Code](/docs/id/plugins/mods/gallery#image-and-client) dan mengapa ini tidak membantu di dalam tmux atau screen |316| `CLAUDE_CODE_FORCE_TERMINAL_IMAGES` | Setel ke `1` untuk menggambar [elemen `Image` mod](/docs/id/plugins/mods/reference#elements) sebagai gambar saat terminal Anda menggambar gambar protokol grafis kitty dengan placeholder Unicode tetapi tidak terdeteksi otomatis. Lihat [terminal mana yang dideteksi Claude Code](/docs/id/plugins/mods/gallery#image-and-client) dan mengapa ini tidak membantu di dalam tmux atau screen |

312| `CLAUDE_CODE_FORK_SUBAGENT` | Mengontrol [mode fork](/docs/id/sub-agents#turn-fork-mode-on-or-off), yang memungkinkan Claude memunculkan [subagent hasil fork](/docs/id/sub-agents#fork-the-current-conversation) sendiri dan aktif secara default hanya dalam sesi interaktif. Atur ke `1` untuk mengaktifkannya juga di `claude -p` dan Agent SDK, atau `0` untuk mematikannya di setiap jenis sesi. Anda dapat menjalankan `/subtask` baik mode fork aktif maupun tidak. Default interaktif memerlukan Claude Code v2.1.232 atau yang lebih baru; pada versi sebelumnya, atur variabel ke `1` untuk mengaktifkan mode fork |317| `CLAUDE_CODE_FORK_SUBAGENT` | Mengontrol [mode fork](/docs/id/sub-agents#turn-fork-mode-on-or-off), yang memungkinkan Claude memunculkan [subagent hasil fork](/docs/id/sub-agents#fork-the-current-conversation) sendiri dan aktif secara default hanya di sesi interaktif. Setel ke `1` untuk mengaktifkannya juga di `claude -p` dan Agent SDK, atau `0` untuk mematikannya di setiap jenis sesi. Anda dapat menjalankan `/subtask` terlepas dari apakah mode fork aktif atau tidak. Default interaktif memerlukan Claude Code v2.1.232 atau lebih baru; di versi sebelumnya, setel variabel ke `1` untuk mengaktifkan mode fork |

313| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Atur ke `1` untuk mengeluarkan teks [subagent](/docs/id/sub-agents) dan thinking block dalam output `claude -p --output-format stream-json`, perilaku yang sama dengan flag [`--forward-subagent-text`](/docs/id/cli-reference#cli-flags). Gunakan variabel ini ketika sebuah harness memanggil `claude` dan tidak dapat meneruskan flag itu sendiri. Berbeda dengan flag, yang keluar dengan error di luar mode non-interaktif dengan output stream-json, variabel ini diabaikan di sana sehingga pemanggilan bersarang tetap berfungsi ketika diatur di seluruh proses. Memerlukan Claude Code v2.1.211 atau yang lebih baru |318| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Setel ke `1` untuk memancarkan teks dan thinking block [subagent](/docs/id/sub-agents) dalam output `claude -p --output-format stream-json`, perilaku yang sama dengan flag [`--forward-subagent-text`](/docs/id/cli-reference#cli-flags). Gunakan variabel ini saat harness memanggil `claude` dan tidak dapat meneruskan flag itu sendiri. Tidak seperti flag, yang keluar dengan error di luar mode non-interaktif dengan output stream-json, variabel ini diabaikan di sana sehingga pemanggilan bersarang tetap berfungsi saat disetel di seluruh proses. Memerlukan Claude Code v2.1.211 atau lebih baru |

314| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Atur ke `1` untuk mengirim [header petunjuk gateway](/docs/id/llm-gateway-protocol#gateway-hint-headers), seperti `x-claude-code-request-class` dan `x-claude-code-compaction`, pada proxy kustom atau penyedia pihak ketiga seperti Amazon Bedrock atau Claude Platform on AWS. Atur ke `0` untuk berhenti mengirimkannya di setiap koneksi, termasuk koneksi langsung ke Anthropic API, tempat Claude Code mengirimkannya secara default. Memerlukan Claude Code v2.1.273 atau yang lebih baru |319| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Setel ke `1` untuk mengirim [header petunjuk gateway](/docs/id/llm-gateway-protocol#gateway-hint-headers), seperti `x-claude-code-request-class` dan `x-claude-code-compaction`, pada proxy kustom atau penyedia pihak ketiga seperti Amazon Bedrock atau Claude Platform on AWS. Setel ke `0` untuk berhenti mengirimkannya di setiap koneksi, termasuk koneksi langsung ke Anthropic API, tempat Claude Code mengirimkannya secara default. Memerlukan Claude Code v2.1.273 atau lebih baru |

315| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Timeout dalam milidetik untuk permintaan [penemuan model gateway](/docs/id/llm-gateway-protocol#model-discovery) yang diaktifkan oleh `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (default: `3000`). Naikkan ketika gateway Anda membutuhkan lebih dari tiga detik untuk menjawab `/v1/models` saat startup. Hanya menerima digit biasa; `0`, nilai negatif, dan penulisan lain mempertahankan default. Memerlukan Claude Code v2.1.269 atau yang lebih baru |320| `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | Timeout dalam milidetik untuk permintaan [penemuan model gateway](/docs/id/llm-gateway-protocol#model-discovery) yang diaktifkan oleh `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` (default: `3000`). Naikkan saat gateway Anda memerlukan lebih dari tiga detik untuk menjawab `/v1/models` saat startup. Hanya menerima digit biasa; `0`, nilai negatif, dan penulisan lain mempertahankan default. Memerlukan Claude Code v2.1.269 atau lebih baru |

316| `CLAUDE_CODE_GIT_BASH_PATH` | Khusus Windows: path ke executable Git Bash (`bash.exe`). Gunakan ketika Git Bash terinstal tetapi tidak ada di PATH Anda. Jika path tidak ada atau file tidak bernama `bash.exe`, `sh.exe`, `bash`, atau `sh`, Claude Code mengabaikan variabel tersebut dan mendeteksi Git Bash secara otomatis seolah-olah tidak diatur, sambil mencatat peringatan yang terlihat dengan `--debug`. Sebelum v2.1.219, Claude Code keluar saat startup ketika path tidak ada, dan menggunakan file apa pun yang ada sebagai shell tanpa memeriksa apakah itu bash atau sh. Lihat [Penyiapan Windows](/docs/id/setup#set-up-on-windows) |321| `CLAUDE_CODE_GIT_BASH_PATH` | Khusus Windows: path ke executable Git Bash (`bash.exe`). Gunakan saat Git Bash terinstal tetapi tidak ada di PATH Anda. Jika path tidak ada atau file tidak bernama `bash.exe`, `sh.exe`, `bash`, atau `sh`, Claude Code mengabaikan variabel dan mendeteksi Git Bash secara otomatis seolah-olah tidak disetel, serta mencatat peringatan yang terlihat dengan `--debug`. Sebelum v2.1.219, Claude Code keluar saat startup ketika path tidak ada, dan menggunakan file apa pun yang ada sebagai shell tanpa memeriksa apakah itu bash atau sh. Lihat [Penyiapan Windows](/docs/id/setup#set-up-on-windows) |

317| `CLAUDE_CODE_GLOB_HIDDEN` | Atur ke `false` untuk mengecualikan dotfile dari hasil ketika Claude memanggil [tool Glob](/docs/id/tools-reference#glob-tool-behavior). Disertakan secara default. Tidak memengaruhi pelengkapan otomatis file `@`, `ls`, Grep, atau Read |322| `CLAUDE_CODE_GLOB_HIDDEN` | Setel ke `false` untuk mengecualikan dotfile dari hasil saat Claude memanggil [tool Glob](/docs/id/tools-reference#glob-tool-behavior). Disertakan secara default. Tidak memengaruhi pelengkapan otomatis file `@`, `ls`, Grep, atau Read |

318| `CLAUDE_CODE_GLOB_NO_IGNORE` | Atur ke `false` agar [tool Glob](/docs/id/tools-reference#glob-tool-behavior) menghormati pola `.gitignore`. Secara default, Glob mengembalikan semua file yang cocok termasuk yang di-gitignore. Tidak memengaruhi pelengkapan otomatis file `@`, yang memiliki [pengaturan `respectGitignore`](/docs/id/settings-reference#respectgitignore) sendiri |323| `CLAUDE_CODE_GLOB_NO_IGNORE` | Setel ke `false` agar [tool Glob](/docs/id/tools-reference#glob-tool-behavior) mematuhi pola `.gitignore`. Secara default, Glob mengembalikan semua file yang cocok termasuk yang di-gitignore. Tidak memengaruhi pelengkapan otomatis file `@`, yang memiliki [pengaturan `respectGitignore`](/docs/id/settings-reference#respectgitignore) sendiri |

319| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout dalam detik untuk penemuan file oleh tool Glob. Default 20 detik di sebagian besar platform dan 60 detik di WSL |324| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Timeout dalam detik untuk penemuan file tool Glob. Default 20 detik di sebagian besar platform dan 60 detik di WSL |

320| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Berapa menit pekerjaan latar belakang dapat membuat goal yang aktif menunggu sebelum Claude Code [meminta Claude untuk memeriksanya](/docs/id/goal#background-work-defers-evaluation). Default `30`. Atur `0` untuk mematikan pemeriksaan. Berikan menit utuh dalam digit biasa, maksimal `10080`, yaitu satu minggu. Claude Code memperlakukan nilai lain sebagai tidak diatur dan menggunakan default. Memerlukan Claude Code v2.1.234 atau yang lebih baru |325| `CLAUDE_CODE_GOAL_CHECKIN_MINUTES` | Berapa menit pekerjaan latar belakang dapat membuat tujuan aktif menunggu sebelum Claude Code [meminta Claude untuk memeriksanya](/docs/id/goal#background-work-defers-evaluation). Default `30`. Setel `0` untuk mematikan pemeriksaan. Berikan menit utuh dalam digit biasa, paling banyak `10080`, yaitu satu minggu. Claude Code memperlakukan nilai lain sebagai tidak disetel dan menggunakan default. Memerlukan Claude Code v2.1.234 atau lebih baru |

321| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Atur ke `0` untuk mematikan kompresi gzip pada body permintaan Claude API, telemetri, dan publikasi [artifact](/docs/id/artifacts) yang dikirim ke `api.anthropic.com`. Secara default, Claude Code mengompresi body permintaan yang besar pada koneksi langsung dan melewati kompresi ketika Anda mengirim permintaan melalui proxy, mengonfigurasi sertifikat klien, atau mengatur `NODE_EXTRA_CA_CERTS`. Gunakan `0` jika [proxy yang menginspeksi TLS](/docs/id/network-config#ca-certificate-store) yang tidak dapat dideteksi Claude Code salah menangani permintaan terkompresi |326| `CLAUDE_CODE_GZIP_REQUEST_BODIES` | Setel ke `0` untuk mematikan kompresi gzip pada body permintaan Claude API, telemetri, dan publikasi [artifact](/docs/id/artifacts) yang dikirim ke `api.anthropic.com`. Secara default, Claude Code mengompresi body permintaan besar pada koneksi langsung dan melewati kompresi saat Anda mengirim permintaan melalui proxy, mengonfigurasi sertifikat klien, atau menyetel `NODE_EXTRA_CA_CERTS`. Gunakan `0` jika [proxy yang menginspeksi TLS](/docs/id/network-config#ca-certificate-store) yang tidak dapat dideteksi Claude Code salah menangani permintaan terkompresi |

322| `CLAUDE_CODE_HIDE_CWD` | Atur ke `1` untuk menyembunyikan direktori kerja di logo startup. Berguna untuk berbagi layar atau rekaman di mana path mengekspos nama pengguna OS Anda |327| `CLAUDE_CODE_HIDE_CWD` | Setel ke `1` untuk menyembunyikan direktori kerja di logo startup. Berguna untuk berbagi layar atau rekaman di mana path mengekspos nama pengguna OS Anda |

323| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Menimpa alamat host yang digunakan untuk terhubung ke ekstensi IDE. Secara default Claude Code mendeteksi alamat yang benar secara otomatis, termasuk perutean WSL-ke-Windows |328| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | Menimpa alamat host yang digunakan untuk terhubung ke ekstensi IDE. Secara default Claude Code mendeteksi alamat yang benar secara otomatis, termasuk perutean WSL-ke-Windows |

324| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Atur ke `1` untuk melewati instalasi otomatis ekstensi IDE. Setara dengan mengatur [`autoInstallIdeExtension`](/docs/id/settings-reference#autoinstallideextension) ke `false` |329| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Setel ke `1` untuk melewati instalasi otomatis ekstensi IDE. Setara dengan menyetel [`autoInstallIdeExtension`](/docs/id/settings-reference#autoinstallideextension) ke `false` |

325| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Atur ke `1` untuk melewati validasi entri lockfile IDE selama koneksi. Gunakan ketika koneksi otomatis gagal menemukan IDE Anda meskipun IDE sedang berjalan |330| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Setel ke `1` untuk melewati validasi entri lockfile IDE selama koneksi. Gunakan saat koneksi otomatis gagal menemukan IDE Anda meskipun IDE sedang berjalan |

326| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Berapa banyak [subagent](/docs/id/sub-agents#concurrent-subagent-limit) yang dapat berjalan dalam satu sesi sebelum tool Agent menolak memunculkan yang lain (default: 20). Menerima bilangan bulat positif dalam digit biasa; nilai lain diabaikan, sehingga variabel ini dapat menyesuaikan batas tetapi tidak dapat menonaktifkannya. Memerlukan Claude Code v2.1.217 atau yang lebih baru |331| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | Berapa banyak [subagent](/docs/id/sub-agents#concurrent-subagent-limit) yang dapat berjalan dalam satu sesi sebelum tool Agent menolak memunculkan yang lain (default: 20). Menerima bilangan bulat positif dalam digit biasa; nilai lain diabaikan, sehingga variabel dapat menyesuaikan batas tetapi tidak dapat menonaktifkannya. Memerlukan Claude Code v2.1.217 atau lebih baru |

327| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Menimpa ukuran context window yang diasumsikan Claude Code untuk model yang aktif. Sejak v2.1.193, cara penerapannya bergantung pada bagaimana Claude Code menyelesaikan ID model; lihat [Koreksi window untuk gateway atau ID model kustom](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Gunakan ini saat merutekan ke model melalui `ANTHROPIC_BASE_URL` yang context window-nya tidak sesuai dengan ukuran bawaan untuk namanya |332| `CLAUDE_CODE_MAX_CONTEXT_TOKENS` | Menimpa ukuran context window yang diasumsikan Claude Code untuk model aktif. Sejak v2.1.193, cara penerapannya bergantung pada cara Claude Code me-resolve ID model; lihat [Koreksi window untuk gateway atau ID model kustom](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id). Gunakan ini saat merutekan ke model melalui `ANTHROPIC_BASE_URL` yang context window-nya tidak sesuai dengan ukuran bawaan untuk namanya |

328| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Panjang maksimum dalam karakter dari setiap deskripsi tool MCP dan instruksi setiap server MCP yang dikirim Claude Code ke model (default: 2048). Claude Code [memotong teks yang lebih panjang](/docs/id/mcp#for-mcp-server-authors). Menerima bilangan bulat positif dalam digit biasa. Nilai lain diabaikan dan default berlaku. Memerlukan Claude Code v2.1.280 atau yang lebih baru |333| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Panjang maksimum dalam karakter dari setiap deskripsi tool MCP dan instruksi setiap server MCP yang dikirim Claude Code ke model (default: 2048). Claude Code [memotong teks yang lebih panjang](/docs/id/mcp#for-mcp-server-authors). Menerima bilangan bulat positif dalam digit biasa. Nilai lain diabaikan dan default berlaku. Memerlukan Claude Code v2.1.280 atau lebih baru |

329| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Mengatur jumlah maksimum token output untuk sebagian besar permintaan. Default dan batas bervariasi menurut model; lihat [max output tokens](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code menurunkan nilai di atas batas model ke batas tersebut. Untuk ID model yang tidak dapat diselesaikan Claude Code ke model yang dikenalnya, default-nya adalah 32000 dan batasnya 128000. Menaikkan nilai ini mengurangi context window efektif yang tersedia sebelum [auto-compaction](/docs/id/costs#reduce-token-usage) terpicu |334| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | Menyetel jumlah maksimum token output untuk sebagian besar permintaan. Default dan batas bervariasi menurut model; lihat [token output maksimum](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison). Claude Code menurunkan nilai di atas batas model ke batas tersebut. Untuk ID model yang tidak dapat di-resolve Claude Code ke model yang dikenalnya, defaultnya adalah 32000 dan batasnya 128000. Menaikkan nilai ini mengurangi context window efektif yang tersedia sebelum [auto-compaction](/docs/id/costs#reduce-token-usage) terpicu |

330| `CLAUDE_CODE_MAX_RETRIES` | Menimpa jumlah retry untuk permintaan API yang gagal (default: 10). Dibatasi hingga 15 sejak v2.1.186; sejak v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` menaikkan default dan menghapus batas tersebut. Untuk sesi tanpa pengawasan yang perlu menunggu melewati gangguan yang lebih lama, atur `CLAUDE_CODE_RETRY_WATCHDOG` sebagai gantinya |335| `CLAUDE_CODE_MAX_RETRIES` | Menimpa jumlah retry untuk permintaan API yang gagal (default: 10). Dibatasi pada 15 sejak v2.1.186; sejak v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` menaikkan default dan menghapus batas tersebut. Untuk sesi tanpa pengawasan yang perlu menunggu selama gangguan yang lebih lama, setel `CLAUDE_CODE_RETRY_WATCHDOG` sebagai gantinya |

331| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Dihapus di v2.1.224 dan sekarang tidak berpengaruh. Sebelumnya membatasi jumlah total [subagent](/docs/id/sub-agents) yang dapat dimunculkan Claude dengan tool Agent dalam satu sesi (default: 200); memunculkan melewati batas gagal dengan `Subagent spawn limit reached`. [Batas subagent bersamaan](/docs/id/sub-agents#concurrent-subagent-limit) dan [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) tetap berlaku |336| `CLAUDE_CODE_MAX_SUBAGENTS_PER_SESSION` | Dihapus di v2.1.224 dan kini tidak berpengaruh. Sebelumnya membatasi jumlah total [subagent](/docs/id/sub-agents) yang dapat dimunculkan Claude dengan tool Agent dalam satu sesi (default: 200); pemunculan melewati batas gagal dengan `Subagent spawn limit reached`. [Batas subagent bersamaan](/docs/id/sub-agents#concurrent-subagent-limit) dan [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) tetap berlaku |

332| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Jumlah [lapisan subagent](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) yang diizinkan di bawah percakapan utama (default: 3). Pada nilai default, subagent dapat memunculkan subagent mereka sendiri, dan subagent di lapisan ketiga tidak dapat memunculkan lebih jauh; atur `1` untuk mematikan penyarangan. Pada v2.1.217 hingga v2.1.218, default-nya adalah 1, sehingga subagent tidak dapat memunculkan subagent sendiri kecuali Anda menaikkan batasnya; v2.1.219 menaikkan default ke 3. Menerima bilangan bulat positif dalam digit biasa; nilai lain diabaikan, sehingga batas dapat disesuaikan tetapi tidak dapat dihapus. Memerlukan Claude Code v2.1.217 atau yang lebih baru |337| `CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH` | Jumlah [lapisan subagent](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) yang diizinkan di bawah percakapan utama (default: 3). Pada default, subagent dapat memunculkan subagent mereka sendiri, dan subagent di lapisan ketiga tidak dapat memunculkan lebih lanjut; setel `1` untuk mematikan penyarangan. Di v2.1.217 hingga v2.1.218, defaultnya adalah 1, sehingga subagent tidak dapat memunculkan subagent sendiri kecuali Anda menaikkan batas; v2.1.219 menaikkan default menjadi 3. Menerima bilangan bulat positif dalam digit biasa; nilai lain diabaikan, sehingga batas dapat disesuaikan tetapi tidak dapat dihapus. Memerlukan Claude Code v2.1.217 atau lebih baru |

333| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Jumlah maksimum tool read-only dan subagent yang dapat dieksekusi secara paralel (default: 10). Nilai yang lebih tinggi meningkatkan paralelisme tetapi mengonsumsi lebih banyak sumber daya |338| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | Jumlah maksimum tool read-only dan subagent yang dapat dieksekusi secara paralel (default: 10). Nilai yang lebih tinggi meningkatkan paralelisme tetapi menggunakan lebih banyak sumber daya |

334| `CLAUDE_CODE_MAX_TURNS` | Membatasi jumlah giliran agentik ketika tidak ada batas eksplisit yang diteruskan. Setara dengan meneruskan [`--max-turns`](/docs/id/cli-reference#cli-flags), yang diutamakan ketika keduanya diatur. Nilai yang bukan bilangan bulat positif ditolak saat startup dengan error alih-alih diperlakukan sebagai tanpa batas |339| `CLAUDE_CODE_MAX_TURNS` | Membatasi jumlah giliran agentik saat tidak ada batas eksplisit yang diteruskan. Setara dengan meneruskan [`--max-turns`](/docs/id/cli-reference#cli-flags), yang diutamakan saat keduanya disetel. Nilai yang bukan bilangan bulat positif ditolak saat startup dengan error alih-alih diperlakukan sebagai tanpa batas |

335| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Batas panggilan [WebSearch](/docs/id/tools-reference#session-search-limit) (default: 200). Ketika Claude mencapai batas, panggilan WebSearch selanjutnya mengembalikan pemberitahuan yang memintanya melanjutkan dengan informasi yang sudah dikumpulkan. Menerima bilangan bulat positif tanpa batas atas. Nilai lain diabaikan dan default berlaku, sehingga batas dapat dinaikkan tetapi tidak dapat dimatikan. Memerlukan Claude Code v2.1.212 atau yang lebih baru |340| `CLAUDE_CODE_MAX_WEB_SEARCHES_PER_SESSION` | Batas panggilan [WebSearch](/docs/id/tools-reference#session-search-limit) (default: 200). Saat Claude mencapai batas, panggilan WebSearch berikutnya mengembalikan pemberitahuan yang memintanya melanjutkan dengan informasi yang sudah dikumpulkan. Menerima bilangan bulat positif tanpa batas atas. Nilai lain diabaikan dan default berlaku, sehingga batas dapat dinaikkan tetapi tidak dapat dimatikan. Memerlukan Claude Code v2.1.212 atau lebih baru |

336| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Atur ke `1` untuk memunculkan server MCP stdio hanya dengan environment dasar yang aman ditambah `env` yang dikonfigurasi untuk server tersebut, alih-alih mewarisi environment shell Anda |341| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | Setel ke `1` untuk memunculkan server MCP stdio hanya dengan lingkungan dasar yang aman ditambah `env` yang dikonfigurasi untuk server, alih-alih mewarisi lingkungan shell Anda |

337| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Waktu berlalu dalam milidetik sebelum panggilan tool MCP yang masih berjalan [dipindahkan ke tugas latar belakang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls) (default: 120000, atau 2 menit). Atur ke `0` untuk mematikan pemindahan otomatis ke latar belakang. Memerlukan Claude Code v2.1.212 atau yang lebih baru |342| `CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS` | Waktu berlalu dalam milidetik sebelum panggilan tool MCP yang masih berjalan [dipindahkan ke tugas latar belakang](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls) (default: 120000, atau 2 menit). Setel ke `0` untuk mematikan pemindahan otomatis ke latar belakang. Memerlukan Claude Code v2.1.212 atau lebih baru |

338| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Berapa lama dalam milidetik giliran pertama sesi [non-interaktif](/docs/id/headless) menunggu server MCP yang masih terhubung, menggantikan [penantian giliran pertama](/docs/id/agent-sdk/mcp#connection-timing) default. Ketika diatur, penantian mencakup setiap server yang tertunda. Atur ke `0` untuk melewati penantian. Server [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tetap menggunakan penantian `MCP_TIMEOUT` miliknya sendiri terlepas dari nilainya. Memerlukan Claude Code v2.1.274 atau yang lebih baru |343| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Berapa lama dalam milidetik giliran pertama sesi [non-interaktif](/docs/id/headless) menunggu server MCP yang masih terhubung, menggantikan [penantian giliran pertama](/docs/id/agent-sdk/mcp#connection-timing) default. Saat disetel, penantian mencakup setiap server yang tertunda. Setel ke `0` untuk melewati penantian. Server [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) mempertahankan penantian `MCP_TIMEOUT`-nya sendiri terlepas dari nilainya. Memerlukan Claude Code v2.1.274 atau lebih baru |

339| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Timeout idle dalam milidetik untuk panggilan tool MCP. Ketika server MCP stdio, HTTP, SSE, WebSocket, atau [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) tidak mengirim respons dan tidak ada notifikasi progres selama durasi ini, panggilan tool dibatalkan dengan error alih-alih menunggu `MCP_TOOL_TIMEOUT` keseluruhan. Menimpa default per transport sebesar 300000 (5 menit) untuk server jaringan dan 1800000 (30 menit) untuk server stdio. Atur ke `0` untuk menonaktifkan pemeriksaan idle. Nilai di bawah 1000 dinaikkan ke satu detik, dan nilai dibatasi pada `MCP_TOOL_TIMEOUT` yang efektif. `timeout` per server di `.mcp.json` sebesar minimal 1000 menaikkan window idle server tersebut setidaknya ke nilai `timeout`. Tidak berlaku untuk server IDE atau server in-process SDK. Memerlukan Claude Code v2.1.187 atau yang lebih baru. Sebelum v2.1.203, server stdio dikecualikan dari timeout idle |344| `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` | Timeout idle dalam milidetik untuk panggilan tool MCP. Saat server MCP stdio, HTTP, SSE, WebSocket, atau [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) tidak mengirim respons dan tidak ada notifikasi progres selama selama ini, panggilan tool dibatalkan dengan error alih-alih menunggu `MCP_TOOL_TIMEOUT` keseluruhan. Menimpa default per transport sebesar 300000 (5 menit) untuk server jaringan dan 1800000 (30 menit) untuk server stdio. Setel ke `0` untuk menonaktifkan pemeriksaan idle. Nilai di bawah 1000 dinaikkan menjadi satu detik, dan nilai dibatasi pada `MCP_TOOL_TIMEOUT` efektif. `timeout` per server di `.mcp.json` setidaknya 1000 menaikkan jendela idle server tersebut setidaknya menjadi nilai `timeout`. Tidak berlaku untuk server IDE atau server in-process SDK. Memerlukan Claude Code v2.1.187 atau lebih baru. Sebelum v2.1.203, server stdio dikecualikan dari timeout idle |

340| `CLAUDE_CODE_MESSAGING_SOCKET` | Diatur oleh Claude Code, bukan oleh Anda: dalam sesi yang mengikat [socket inbox](/docs/id/cross-session-messaging#the-sessions-inbox-socket), Claude Code mengekspor path socket tersebut ke hook dan perintah Bash ketika mengikat socket. Dalam sesi yang dimulai dengan messaging aktif, Claude Code mengikat socket sebelum hook apa pun berjalan. Sesi lain di mesin tersebut mengirimkan pesan ke path ini. Setiap sesi mengekspor socket miliknya sendiri alih-alih yang diwarisi dari induk, dan pesan yang tiba di socket tersebut melewati [kontrol masuk](/docs/id/cross-session-messaging#control-inbound-messages) sesi. Blok `env` pengaturan tidak dapat mengaturnya. Memerlukan Claude Code v2.1.224 atau yang lebih baru |345| `CLAUDE_CODE_MESSAGING_SOCKET` | Disetel oleh Claude Code, bukan oleh Anda: dalam sesi yang mengikat [socket inbox](/docs/id/cross-session-messaging#the-sessions-inbox-socket), Claude Code mengekspor path socket tersebut ke hook dan perintah Bash saat mengikat socket. Dalam sesi yang dimulai dengan pesan aktif, Claude Code mengikat socket sebelum hook apa pun berjalan. Sesi lain di mesin mengirim pesan ke path ini. Setiap sesi mengekspor socket-nya sendiri alih-alih yang diwarisi dari induk, dan pesan yang tiba di socket tersebut melewati [kontrol masuk](/docs/id/cross-session-messaging#control-inbound-messages) sesi. Blok `env` pengaturan tidak dapat menyetelnya. Memerlukan Claude Code v2.1.224 atau lebih baru |

341| `CLAUDE_CODE_MESSAGING_TOKEN` | Diatur oleh Claude Code, bukan oleh Anda: dalam sesi yang mengikat [socket inbox](/docs/id/cross-session-messaging#the-sessions-inbox-socket), Claude Code mengekspor token per sesi ini ke hook dan perintah Bash bersama `CLAUDE_CODE_MESSAGING_SOCKET`. Skrip yang mengirim ke socket dapat mengirim `{"type":"auth","token":"<token>"}` sebagai baris pertamanya untuk membuktikan bahwa skrip tersebut milik sesi. Di Windows native, Claude Code mewajibkan baris ini dan menutup koneksi apa pun yang tidak dibuka dengan baris yang valid. [Aturan own-child](/docs/id/cross-session-messaging#the-sessions-inbox-socket) menjelaskan kapan Claude Code memeriksa token. Setiap sesi mengekspor token miliknya sendiri, tidak pernah yang diwarisi dari sesi induk. Blok `env` pengaturan tidak dapat mengaturnya. Memerlukan Claude Code v2.1.228 atau yang lebih baru |346| `CLAUDE_CODE_MESSAGING_TOKEN` | Disetel oleh Claude Code, bukan oleh Anda: dalam sesi yang mengikat [socket inbox](/docs/id/cross-session-messaging#the-sessions-inbox-socket), Claude Code mengekspor token per sesi ini ke hook dan perintah Bash bersama `CLAUDE_CODE_MESSAGING_SOCKET`. Skrip yang mengirim ke socket dapat mengirim `{"type":"auth","token":"<token>"}` sebagai baris pertamanya untuk membuktikan bahwa skrip tersebut milik sesi. Di Windows native, Claude Code mewajibkan baris ini dan menutup koneksi apa pun yang tidak dibuka dengan baris yang valid. [Aturan anak sendiri](/docs/id/cross-session-messaging#the-sessions-inbox-socket) menjelaskan kapan Claude Code memeriksa token. Setiap sesi mengekspor tokennya sendiri, tidak pernah yang diwarisi dari sesi induk. Blok `env` pengaturan tidak dapat menyetelnya. Memerlukan Claude Code v2.1.228 atau lebih baru |

342| `CLAUDE_CODE_NATIVE_CURSOR` | Atur ke `1` untuk menampilkan kursor milik terminal pada caret input alih-alih blok yang digambar. Kursor mengikuti pengaturan kedip, bentuk, dan fokus terminal. Mengatur `0` dibaca sama seperti membiarkan variabel tidak diatur, sehingga tidak mengembalikan blok yang digambar dalam sesi di mana kursor milik terminal sudah aktif |347| `CLAUDE_CODE_NATIVE_CURSOR` | Setel ke `1` untuk menampilkan kursor bawaan terminal di caret input alih-alih blok yang digambar. Kursor mematuhi pengaturan kedip, bentuk, dan fokus terminal. Menyetel `0` dibaca sama dengan membiarkan variabel tidak disetel, sehingga tidak mengembalikan blok yang digambar dalam sesi di mana kursor bawaan terminal sudah aktif |

343| `CLAUDE_CODE_NEW_INIT` | Atur ke `1` agar `/init` menjalankan alur penyiapan interaktif. Alur tersebut menanyakan file mana yang akan dibuat, termasuk CLAUDE.md, skill, dan hook, sebelum menjelajahi codebase dan menulisnya. Tanpa variabel ini, `/init` membuat CLAUDE.md secara otomatis tanpa bertanya |348| `CLAUDE_CODE_NEW_INIT` | Setel ke `1` agar `/init` menjalankan alur penyiapan interaktif. Alur ini menanyakan file mana yang akan dibuat, termasuk CLAUDE.md, skill, dan hook, sebelum menjelajahi codebase dan menulisnya. Tanpa variabel ini, `/init` membuat CLAUDE.md secara otomatis tanpa bertanya |

344| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Atur ke `1` untuk menulis output terminal melalui file descriptor non-blocking kedua, sehingga terminal yang berhenti membaca, seperti panel tmux control-mode yang dijeda atau koneksi SSH yang macet, tidak dapat membekukan Claude Code di tengah sesi. Berlaku di macOS, Linux, dan WSL ketika stdout adalah terminal. Memerlukan Claude Code v2.1.261 atau yang lebih baru |349| `CLAUDE_CODE_NONBLOCKING_STDOUT` | Setel ke `1` untuk menulis output terminal melalui file descriptor non-blocking kedua, sehingga terminal yang berhenti membaca, seperti panel tmux control-mode yang dijeda atau koneksi SSH yang macet, tidak dapat membekukan Claude Code di tengah sesi. Berlaku di macOS, Linux, dan WSL saat stdout adalah terminal. Memerlukan Claude Code v2.1.261 atau lebih baru |

345| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Membatasi berapa kali Claude Code mengirim ulang [permintaan non-streaming](/docs/id/errors#streaming-response-ended-before-any-complete-data-was-received) yang mengalami timeout. Dengan `0`, permintaan gagal pada timeout pertama. Lihat [Menyesuaikan perilaku retry](/docs/id/errors#tune-retry-behavior) untuk timeout-nya. Memerlukan Claude Code v2.1.285 atau yang lebih baru |350| `CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES` | Membatasi berapa kali Claude Code mengirim ulang [permintaan non-streaming](/docs/id/errors#streaming-response-ended-before-any-complete-data-was-received) yang mengalami timeout. Dengan `0`, permintaan gagal pada timeout pertama. Lihat [Menyesuaikan perilaku retry](/docs/id/errors#tune-retry-behavior) untuk timeout-nya. Memerlukan Claude Code v2.1.285 atau lebih baru |

346| `CLAUDE_CODE_NO_FLICKER` | Atur ke `1` untuk mengaktifkan [rendering layar penuh](/docs/id/fullscreen), sebuah research preview yang mengurangi kedipan dan menjaga penggunaan memori tetap datar dalam percakapan panjang. Menimpa pengaturan [`tui`](/docs/id/settings-reference#tui); Anda juga dapat beralih dengan `/tui fullscreen` |351| `CLAUDE_CODE_NO_FLICKER` | Setel ke `1` untuk mengaktifkan [rendering layar penuh](/docs/id/fullscreen), sebuah research preview yang mengurangi kedipan dan menjaga memori tetap datar dalam percakapan panjang. Menimpa pengaturan [`tui`](/docs/id/settings-reference#tui); Anda juga dapat beralih dengan `/tui fullscreen` |

347| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Refresh token OAuth untuk autentikasi Claude.ai. Ketika diatur, `claude auth login` menukarkan token ini secara langsung alih-alih membuka browser. Memerlukan `CLAUDE_CODE_OAUTH_SCOPES`. Berguna untuk menyediakan autentikasi di lingkungan otomatis |352| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Refresh token OAuth untuk autentikasi Claude.ai. Saat disetel, `claude auth login` menukar token ini secara langsung alih-alih membuka browser. Memerlukan `CLAUDE_CODE_OAUTH_SCOPES`. Berguna untuk menyediakan autentikasi di lingkungan otomatis |

348| `CLAUDE_CODE_OAUTH_SCOPES` | Scope OAuth yang dipisahkan spasi yang digunakan saat refresh token diterbitkan, seperti `"user:profile user:inference user:sessions:claude_code"`. Diperlukan ketika `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` diatur |353| `CLAUDE_CODE_OAUTH_SCOPES` | Scope OAuth yang dipisahkan spasi yang digunakan saat refresh token diterbitkan, seperti `"user:profile user:inference user:sessions:claude_code"`. Diperlukan saat `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` disetel |

349| `CLAUDE_CODE_OAUTH_TOKEN` | Access token OAuth untuk autentikasi claude.ai. Alternatif untuk `/login` bagi SDK dan lingkungan otomatis. Diutamakan daripada kredensial yang disimpan di keychain. Buat satu dengan [`claude setup-token`](/docs/id/authentication#generate-a-long-lived-token). Kecuali Anda menjalankan [`/login`](/docs/id/authentication#authentication-precedence), Claude Code menggunakan token yang Anda atur untuk seluruh sesi. Untuk mengganti token yang kedaluwarsa, buat token baru dan mulai ulang |354| `CLAUDE_CODE_OAUTH_TOKEN` | Token akses OAuth untuk autentikasi claude.ai. Alternatif untuk `/login` untuk SDK dan lingkungan otomatis. Diutamakan daripada kredensial yang disimpan di keychain. Buat dengan [`claude setup-token`](/docs/id/authentication#generate-a-long-lived-token). Kecuali Anda menjalankan [`/login`](/docs/id/authentication#authentication-precedence), Claude Code menggunakan token yang Anda setel untuk seluruh sesi. Untuk mengganti token yang kedaluwarsa, buat token baru dan mulai ulang |

350| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Dihapus di v2.1.160 dan sekarang tidak berpengaruh. Sebelumnya menyematkan [fast mode](/docs/id/fast-mode) ke Claude Opus 4.6 alih-alih default saat ini. Opus 4.6 tidak lagi mendukung fast mode |355| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | Dihapus di v2.1.160 dan kini tidak berpengaruh. Sebelumnya menyematkan [fast mode](/docs/id/fast-mode) ke Claude Opus 4.6 alih-alih default saat ini. Opus 4.6 tidak lagi mendukung fast mode |

351| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Panjang maksimum atribut OpenTelemetry yang memuat konten (respons model, konten tool, system prompt, body API mentah), termasuk penanda pemotongan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Naikkan hanya jika backend telemetri Anda menerima nilai atribut yang lebih besar dari 64 KB, atau turunkan untuk mengurangi volume telemetri. Memerlukan Claude Code v2.1.214 atau yang lebih baru. Lihat [Pemantauan](/docs/id/monitoring-usage) |356| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Panjang maksimum atribut OpenTelemetry yang membawa konten (respons model, konten tool, system prompt, body API mentah), termasuk penanda pemotongan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Naikkan hanya jika backend telemetri Anda menerima nilai atribut lebih besar dari 64 KB, atau turunkan untuk mengurangi volume telemetri. Memerlukan Claude Code v2.1.214 atau lebih baru. Lihat [Pemantauan](/docs/id/monitoring-usage) |

352| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Atur ke `1` untuk menulis error diagnostik exporter OpenTelemetry ke stderr. Secara default error ini hanya muncul dengan `--debug`, sehingga exporter yang salah dikonfigurasi seperti bentrokan port Prometheus jika tidak akan gagal tanpa pemberitahuan. Memerlukan Claude Code v2.1.179 atau yang lebih baru. Lihat [Pemantauan](/docs/id/monitoring-usage) |357| `CLAUDE_CODE_OTEL_DIAG_STDERR` | Setel ke `1` untuk menulis error diagnostik exporter OpenTelemetry ke stderr. Secara default error ini hanya muncul dengan `--debug`, sehingga exporter yang salah dikonfigurasi seperti tabrakan port Prometheus akan gagal secara diam-diam. Memerlukan Claude Code v2.1.179 atau lebih baru. Lihat [Pemantauan](/docs/id/monitoring-usage) |

353| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout dalam milidetik untuk mengirimkan span OpenTelemetry yang tertunda (default: 5000). Lihat [Pemantauan](/docs/id/monitoring-usage) |358| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | Timeout dalam milidetik untuk mengosongkan span OpenTelemetry yang tertunda (default: 5000). Lihat [Pemantauan](/docs/id/monitoring-usage) |

354| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval untuk menyegarkan header OpenTelemetry dinamis dalam milidetik (default: 1740000 / 29 menit). Lihat [Header dinamis](/docs/id/monitoring-usage#dynamic-headers) |359| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval untuk menyegarkan header OpenTelemetry dinamis dalam milidetik (default: 1740000 / 29 menit). Lihat [Header dinamis](/docs/id/monitoring-usage#dynamic-headers) |

355| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout dalam milidetik bagi exporter OpenTelemetry untuk selesai saat shutdown (default: 2000). Naikkan jika metrik hilang saat keluar. Lihat [Pemantauan](/docs/id/monitoring-usage) |360| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | Timeout dalam milidetik bagi exporter OpenTelemetry untuk selesai saat shutdown (default: 2000). Naikkan jika metrik hilang saat keluar. Lihat [Pemantauan](/docs/id/monitoring-usage) |

356| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Jeda awal dalam milidetik, menggantikan default 500, dari backoff eksponensial di antara [retry otomatis](/docs/id/errors#tune-retry-behavior) untuk permintaan yang ditolak API dengan error overloaded `529`. Naikkan untuk menyebarkan retry dalam rentang waktu yang lebih panjang ketika API sedang penuh. Berikan milidetik utuh dari 500 hingga 32000 dalam digit biasa; Claude Code memperlakukan nilai lain sebagai tidak diatur. Tidak berpengaruh ketika `CLAUDE_CODE_RETRY_WATCHDOG` diatur ke `1`, atau ketika permintaan yang ditolak dikirim dalam [fast mode](/docs/id/fast-mode#handle-rate-limits). Memerlukan Claude Code v2.1.292 atau yang lebih baru |361| `CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS` | Penundaan awal dalam milidetik, menggantikan default 500, dari exponential backoff di antara [retry otomatis](/docs/id/errors#tune-retry-behavior) permintaan yang ditolak API dengan error overloaded `529`. Naikkan untuk menyebarkan retry dalam jendela yang lebih panjang saat API mencapai kapasitas. Berikan milidetik utuh dari 500 hingga 32000 dalam digit biasa; Claude Code memperlakukan nilai lain sebagai tidak disetel. Tidak berpengaruh saat `CLAUDE_CODE_RETRY_WATCHDOG` disetel ke `1`, atau saat permintaan yang ditolak dikirim dalam [fast mode](/docs/id/fast-mode#handle-rate-limits). Memerlukan Claude Code v2.1.292 atau lebih baru |

357| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Atur ke `1` agar Claude Code menjalankan perintah upgrade package manager Anda di latar belakang ketika versi baru tersedia. Berlaku untuk instalasi Homebrew dan WinGet. Package manager lain tetap menampilkan perintah upgrade tanpa menjalankannya. Lihat [Pembaruan otomatis](/docs/id/setup#auto-updates) |362| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Setel ke `1` agar Claude Code menjalankan perintah upgrade package manager Anda di latar belakang saat versi baru tersedia. Berlaku untuk instalasi Homebrew dan WinGet. Package manager lain tetap menampilkan perintah upgrade tanpa menjalankannya. Lihat [Pembaruan otomatis](/docs/id/setup#auto-updates) |

358| `CLAUDE_CODE_PERFORCE_MODE` | Atur ke `1` untuk mengaktifkan perlindungan penulisan yang sadar Perforce. Ketika diatur, Edit, Write, dan NotebookEdit gagal dengan petunjuk `p4 edit <file>` jika file target tidak memiliki bit owner-write, yang dihapus Perforce pada file yang disinkronkan hingga `p4 edit` membukanya. Ini mencegah Claude Code melewati pelacakan perubahan Perforce |363| `CLAUDE_CODE_PERFORCE_MODE` | Setel ke `1` untuk mengaktifkan perlindungan penulisan yang sadar Perforce. Saat disetel, Edit, Write, dan NotebookEdit gagal dengan petunjuk `p4 edit <file>` jika file target tidak memiliki bit owner-write, yang dihapus Perforce pada file yang disinkronkan hingga `p4 edit` membukanya. Ini mencegah Claude Code melewati pelacakan perubahan Perforce |

359| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Menimpa direktori root plugin. Meskipun namanya demikian, ini mengatur direktori induk, bukan cache itu sendiri: marketplace dan cache plugin berada di subdirektori di bawah path ini. Default ke `~/.claude/plugins` |364| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Menimpa direktori root plugin. Meskipun namanya demikian, ini menyetel direktori induk, bukan cache itu sendiri: marketplace dan cache plugin berada di subdirektori di bawah path ini. Default ke `~/.claude/plugins` |

360| `CLAUDE_CODE_PLUGIN_DIRS` | Direktori plugin yang dimuat untuk sesi, masing-masing dimuat dengan cara yang sama seperti flag [`--plugin-dir`](/docs/id/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) memuatnya. Pisahkan beberapa path dengan `:` di Unix atau `;` di Windows. Berikan setiap path sebagai path absolut atau awali dengan `~`, karena Claude Code melewati path relatif. Memerlukan Claude Code v2.1.280 atau yang lebih baru. Lihat [Memuat plugin untuk satu sesi](/docs/id/plugins/create#load-a-directory-or-archive-for-one-session) |365| `CLAUDE_CODE_PLUGIN_DIRS` | Direktori plugin yang akan dimuat untuk sesi, masing-masing dimuat seperti flag [`--plugin-dir`](/docs/id/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) memuatnya. Pisahkan beberapa path dengan `:` di Unix atau `;` di Windows. Berikan setiap path sebagai path absolut atau awali dengan `~`, karena Claude Code melewati path relatif. Memerlukan Claude Code v2.1.280 atau lebih baru. Lihat [Memuat plugin untuk satu sesi](/docs/id/plugins/create#load-a-directory-or-archive-for-one-session) |

361| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Mengontrol apakah Claude Code memuat ulang sebuah [mod](/docs/id/plugins/mods/overview) ketika file mod tersebut berubah. Pemuatan ulang berlaku untuk mod yang Anda muat dari direktori dengan `--plugin-dir`, dan aktif secara default dalam sesi interaktif. Atur ke `1` untuk mengaktifkannya juga dalam sesi non-interaktif, atau `0` untuk mematikannya di setiap sesi. Memerlukan Claude Code v2.1.287 atau yang lebih baru. Lihat [pengaturan dan environment variable mod](/docs/id/plugins/mods/reference#settings-and-environment-variables) |366| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Mengontrol apakah Claude Code memuat ulang [mod](/docs/id/plugins/mods/overview) saat file mod berubah. Pemuatan ulang berlaku untuk mod yang Anda muat dari direktori dengan `--plugin-dir`, dan aktif secara default di sesi interaktif. Setel ke `1` untuk mengaktifkannya juga di sesi non-interaktif, atau `0` untuk mematikannya di setiap sesi. Memerlukan Claude Code v2.1.287 atau lebih baru. Lihat [pengaturan dan environment variable mod](/docs/id/plugins/mods/reference#settings-and-environment-variables) |

362| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout dalam milidetik untuk meng-clone atau menyegarkan marketplace plugin (default: 120000). Naikkan nilai ini untuk repositori besar atau koneksi jaringan yang lambat. Lihat [Git clone timed out](/docs/id/plugins/troubleshooting#git-clone-timed-out-after-120s) |367| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout dalam milidetik untuk meng-clone atau menyegarkan marketplace plugin (default: 120000). Naikkan nilai ini untuk repositori besar atau koneksi jaringan yang lambat. Lihat [Git clone timed out](/docs/id/plugins/troubleshooting#git-clone-timed-out-after-120s) |

363| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Atur ke `1` untuk melewati upaya re-clone dan tetap menggunakan checkout marketplace yang ada ketika penyegaran marketplace tidak dapat menjangkau atau melakukan autentikasi ke remote. Berguna di lingkungan offline atau airgapped di mana re-clone akan gagal dengan cara yang sama. Lihat [Pembaruan marketplace gagal di lingkungan offline](/docs/id/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |368| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Setel ke `1` untuk melewati upaya clone ulang dan tetap menggunakan checkout marketplace yang ada saat penyegaran marketplace tidak dapat menjangkau atau mengautentikasi ke remote. Berguna di lingkungan offline atau airgapped di mana clone ulang akan gagal dengan cara yang sama. Lihat [Pembaruan marketplace gagal di lingkungan offline](/docs/id/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

364| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Atur ke `1` untuk meng-clone sumber singkatan GitHub `owner/repo` melalui HTTPS alih-alih SSH. Berlaku untuk instalasi dan pembaruan plugin, serta untuk `/plugin marketplace add` dan `update`. Berguna di runner CI, container, atau lingkungan apa pun tanpa kunci SSH yang dikonfigurasi untuk `github.com` |369| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Setel ke `1` untuk meng-clone sumber singkatan GitHub `owner/repo` melalui HTTPS alih-alih SSH. Berlaku untuk instalasi dan pembaruan plugin, serta untuk `/plugin marketplace add` dan `update`. Berguna di runner CI, container, atau lingkungan apa pun tanpa kunci SSH yang dikonfigurasi untuk `github.com` |

365| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Path ke satu atau lebih direktori seed plugin read-only, dipisahkan dengan `:` di Unix atau `;` di Windows. Gunakan ini untuk membundel direktori plugin yang sudah terisi ke dalam image container. Claude Code mendaftarkan marketplace dari direktori ini saat startup dan menggunakan plugin yang sudah di-cache tanpa re-clone. Lihat [Mengisi plugin terlebih dahulu untuk container](/docs/id/plugins/org#seed-containers-and-ci) |370| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Path ke satu atau beberapa direktori seed plugin read-only, dipisahkan dengan `:` di Unix atau `;` di Windows. Gunakan ini untuk membundel direktori plugin yang sudah diisi ke dalam image container. Claude Code mendaftarkan marketplace dari direktori ini saat startup dan menggunakan plugin yang sudah di-cache tanpa clone ulang. Lihat [Mengisi plugin terlebih dahulu untuk container](/docs/id/plugins/org#seed-containers-and-ci) |

366| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Atur ke `1` agar Claude Code berhenti meneruskan `-ExecutionPolicy Bypass` saat memunculkan PowerShell untuk panggilan tool, hook, dan perintah baris status, dan sebagai gantinya menghormati execution policy efektif mesin. Secara default Claude Code melewati execution policy pada cakupan proses sehingga skrip `.ps1` dan impor modul berfungsi pada instalasi Windows dengan default Restricted. Bypass cakupan proses tidak pernah menimpa Group Policy `MachinePolicy` atau `UserPolicy` terlepas dari pengaturan ini |371| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Setel ke `1` untuk menghentikan Claude Code meneruskan `-ExecutionPolicy Bypass` saat memunculkan PowerShell untuk panggilan tool, hook, dan perintah baris status, dan sebagai gantinya mematuhi execution policy efektif mesin. Secara default Claude Code melewati execution policy pada cakupan proses sehingga skrip `.ps1` dan impor modul berfungsi pada instalasi Windows dengan default Restricted. Bypass cakupan proses tidak pernah menimpa Group Policy `MachinePolicy` atau `UserPolicy` terlepas dari pengaturan ini |

367| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Batas atas dalam milidetik untuk penantian idle bagi pekerjaan latar belakang, seperti subagent dan workflow, setelah giliran terakhir dalam [mode non-interaktif](/docs/id/headless#background-tasks-at-exit) dengan flag `-p`. Penantian idle dimulai ulang setiap kali Claude mengambil giliran untuk menangani hasil latar belakang. Default: `600000`, atau 10 menit. Ketika penantian idle mencapai batas atas, Claude Code berhenti menunggu tugas latar belakang yang tersisa. Perintah latar belakang yang sedang berjalan dan dimulai oleh percakapan utama menahan run tetap terbuka melewati batas tersebut. Atur ke `0` untuk menunggu tanpa batas. Memerlukan Claude Code v2.1.182 atau yang lebih baru |372| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Batas atas dalam milidetik untuk penantian idle bagi pekerjaan latar belakang, seperti subagent dan workflow, setelah giliran terakhir dalam [mode non-interaktif](/docs/id/headless#background-tasks-at-exit) dengan flag `-p`. Penantian idle dimulai ulang setiap kali Claude mengambil giliran untuk menangani hasil latar belakang. Default: `600000`, atau 10 menit. Saat penantian idle mencapai batas atas, Claude Code berhenti menunggu tugas latar belakang yang tersisa. Perintah latar belakang yang sedang berjalan yang dimulai oleh percakapan utama menahan run tetap terbuka melewati batas tersebut. Setel ke `0` untuk menunggu tanpa batas. Memerlukan Claude Code v2.1.182 atau lebih baru |

368| `CLAUDE_CODE_PROCESS_WRAPPER` | Meluncurkan proses yang dimulai Claude Code dari binary-nya sendiri, seperti layanan latar belakang yang menampung sesi [agent view](/docs/id/agent-view), melalui peluncur korporat yang diberikan sebagai prefiks argv seperti `/opt/corp/launcher`. Atur di blok `env` pengaturan pengguna atau [pengaturan terkelola](/docs/id/managed-settings), bukan sebagai export shell, agar layanan latar belakang yang terlepas mewarisinya; pengaturan proyek dan lokal tidak dapat mengaturnya. Setara dengan [pengaturan `processWrapper`](/docs/id/settings-reference#processwrapper), yang memerlukan Claude Code v2.1.210 atau yang lebih baru; variabel ini diutamakan ketika keduanya diatur. Ekstensi VS Code mengonfigurasi peluncurnya sendiri secara terpisah melalui pengaturan `claudeProcessWrapper`-nya. Diabaikan di Windows. Lihat [Menjalankan Claude Code di balik peluncur korporat](/docs/id/corporate-launcher) untuk format nilai, apa saja yang dicakup peluncur, dan kontrak yang harus dipenuhi peluncur. Memerlukan Claude Code v2.1.208 atau yang lebih baru |373| `CLAUDE_CODE_PROCESS_WRAPPER` | Meluncurkan proses yang dimulai Claude Code dari binary-nya sendiri, seperti layanan latar belakang yang meng-host sesi [agent view](/docs/id/agent-view), melalui peluncur korporat yang diberikan sebagai prefiks argv seperti `/opt/corp/launcher`. Setel di blok `env` pengaturan pengguna atau [pengaturan terkelola](/docs/id/managed-settings), bukan sebagai ekspor shell, agar layanan latar belakang yang terlepas mewarisinya; pengaturan proyek dan lokal tidak dapat menyetelnya. Setara dengan [pengaturan `processWrapper`](/docs/id/settings-reference#processwrapper), yang memerlukan Claude Code v2.1.210 atau lebih baru; variabel ini diutamakan saat keduanya disetel. Ekstensi VS Code mengonfigurasi peluncurnya sendiri secara terpisah melalui pengaturan `claudeProcessWrapper`-nya. Diabaikan di Windows. Lihat [Menjalankan Claude Code di balik peluncur korporat](/docs/id/corporate-launcher) untuk format nilai, apa yang dicakup peluncur, dan kontrak yang harus dipenuhi peluncur. Memerlukan Claude Code v2.1.208 atau lebih baru |

369| `CLAUDE_CODE_PROJECT_DIR_NAME` | Atur bersama `CLAUDE_CONFIG_DIR` untuk memilih nama direktori `projects/` tempat Claude Code menyimpan transkrip dan auto memory sesi tersebut, menggantikan nama yang diturunkan dari path direktori kerja. Misalnya, memulai Claude Code dengan `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` menyimpannya di bawah `/srv/tenant-a/projects/work/`. Claude Code mengabaikan variabel ini ketika `CLAUDE_CONFIG_DIR` tidak diatur, dan hanya membacanya dari environment tempat Anda memulai `claude`, tidak pernah dari [blok `env` file pengaturan](#in-settings-files). Lihat [Menamai direktori proyek sendiri](/docs/id/sessions#name-the-project-directory-yourself). Memerlukan Claude Code v2.1.234 atau yang lebih baru |374| `CLAUDE_CODE_PROJECT_DIR_NAME` | Setel bersama `CLAUDE_CONFIG_DIR` untuk memilih nama direktori `projects/` tempat Claude Code menyimpan transkrip dan auto memory sesi tersebut, menggantikan nama yang diturunkan dari path direktori kerja. Misalnya, memulai Claude Code dengan `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` menyimpannya di bawah `/srv/tenant-a/projects/work/`. Claude Code mengabaikan variabel ini saat `CLAUDE_CONFIG_DIR` tidak disetel, dan hanya membacanya dari lingkungan tempat Anda memulai `claude`, tidak pernah dari [blok `env` file pengaturan](#in-settings-files). Lihat [Menamai sendiri direktori proyek](/docs/id/sessions#name-the-project-directory-yourself). Memerlukan Claude Code v2.1.234 atau lebih baru |

370| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Atur `5m` atau `1h`, satu-satunya nilai yang diterima Claude Code, untuk memilih [TTL cache prompt](/docs/id/prompt-caching#cache-lifetime) untuk percakapan utama: giliran interaktif, `-p`, dan SDK Anda, ditambah helper yang berjalan sejalan dengannya. Diutamakan daripada pengaturan `promptCacheTtl` dan daripada `ENABLE_PROMPT_CACHING_1H`, dan `FORCE_PROMPT_CACHING_5M` menimpanya. API menagih penulisan cache 1 jam dengan tarif yang lebih tinggi. Memerlukan Claude Code v2.1.242 atau yang lebih baru |375| `CLAUDE_CODE_PROMPT_CACHE_TTL` | Setel `5m` atau `1h`, satu-satunya nilai yang diterima Claude Code, untuk memilih [TTL prompt cache](/docs/id/prompt-caching#cache-lifetime) untuk percakapan utama: giliran interaktif, `-p`, dan SDK Anda, ditambah helper yang berjalan inline bersamanya. Diutamakan daripada pengaturan `promptCacheTtl` dan daripada `ENABLE_PROMPT_CACHING_1H`, dan `FORCE_PROMPT_CACHING_5M` menimpanya. API menagih penulisan cache 1 jam dengan tarif yang lebih tinggi. Memerlukan Claude Code v2.1.242 atau lebih baru |

371| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Atur ke `1` untuk menyebarkan konteks trace W3C ketika `ANTHROPIC_BASE_URL` mengarah ke proxy kustom. Penyebaran mencakup header `traceparent` pada permintaan model dan MCP HTTP serta environment variable `TRACEPARENT` untuk subproses Bash, PowerShell, dan hook. Secara default, penyebaran hanya diaktifkan ketika terhubung langsung ke Anthropic API. Ditambahkan di v2.1.152. Lihat [Traces (beta)](/docs/id/monitoring-usage#traces-beta) |376| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Setel ke `1` untuk menyebarkan W3C trace context saat `ANTHROPIC_BASE_URL` mengarah ke proxy kustom. Penyebaran mencakup header `traceparent` pada permintaan model dan MCP HTTP serta environment variable `TRACEPARENT` untuk subproses Bash, PowerShell, dan hook. Secara default, penyebaran hanya diaktifkan saat terhubung langsung ke Anthropic API. Ditambahkan di v2.1.152. Lihat [Traces (beta)](/docs/id/monitoring-usage#traces-beta) |

372| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Diatur oleh platform host yang menyematkan Claude Code dan mengelola perutean penyedia model atas namanya. Ketika diatur, Claude Code mengabaikan variabel pemilihan penyedia, endpoint, dan autentikasi seperti `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, dan `ANTHROPIC_API_KEY` di file pengaturan, sehingga pengaturan pengguna tidak dapat menimpa perutean host. Claude Code juga mengabaikan kunci pemilihan model seperti `model`, `fallbackModel`, dan `modelOverrides` di [pengaturan terkelola](/docs/id/managed-settings), sumber terkelola mana pun yang mengirimkannya, sehingga konfigurasi model host diutamakan daripada penyematan model terkelola yang usang. Claude Code juga mengabaikan variabel pemilihan model seperti `ANTHROPIC_MODEL` dan keluarga `ANTHROPIC_DEFAULT_*_MODEL` di blok `env` terkelola; allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) di pengaturan terkelola tetap berlaku kecuali host menyediakan miliknya sendiri. Claude Code juga melewati opt-out telemetri otomatis yang biasanya diterapkannya pada penyedia pihak ketiga seperti Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, dan Microsoft Foundry, sehingga telemetri mengikuti opt-out standar `DISABLE_TELEMETRY`. Lihat [Perilaku default menurut penyedia API](/docs/id/data-usage#default-behaviors-by-api-provider) |377| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Disetel oleh platform host yang menyematkan Claude Code dan mengelola perutean penyedia model atas namanya. Saat disetel, Claude Code mengabaikan variabel pemilihan penyedia, endpoint, dan autentikasi seperti `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, dan `ANTHROPIC_API_KEY` di file pengaturan, sehingga pengaturan pengguna tidak dapat menimpa perutean host. Claude Code juga mengabaikan kunci pemilihan model seperti `model`, `fallbackModel`, dan `modelOverrides` di [pengaturan terkelola](/docs/id/managed-settings), dari sumber terkelola mana pun yang mengirimkannya, sehingga konfigurasi model host diutamakan daripada penyematan model terkelola yang sudah usang. Claude Code juga mengabaikan variabel pemilihan model seperti `ANTHROPIC_MODEL` dan keluarga `ANTHROPIC_DEFAULT_*_MODEL` di blok `env` terkelola; allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) di pengaturan terkelola tetap berlaku kecuali host menyediakan miliknya sendiri. Claude Code juga melewati opt-out telemetri otomatis yang biasanya diterapkannya pada penyedia pihak ketiga seperti Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, dan Microsoft Foundry, sehingga telemetri mengikuti opt-out standar `DISABLE_TELEMETRY`. Lihat [Perilaku default menurut penyedia API](/docs/id/data-usage#default-behaviors-by-api-provider) |

373| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Atur ke `1` untuk mengizinkan proxy melakukan resolusi DNS alih-alih pemanggil. Opt-in untuk lingkungan di mana proxy harus menangani resolusi hostname |378| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Setel ke `1` untuk mengizinkan proxy melakukan resolusi DNS alih-alih pemanggil. Opt-in untuk lingkungan di mana proxy harus menangani resolusi hostname |

374| `CLAUDE_CODE_REMOTE` | Diatur secara otomatis ke `true` ketika Claude Code berjalan sebagai [sesi cloud](/docs/id/claude-code-on-the-web). Baca ini dari hook atau skrip penyiapan untuk mendeteksi apakah Anda berada dalam sesi cloud |379| `CLAUDE_CODE_REMOTE` | Disetel otomatis ke `true` saat Claude Code berjalan sebagai [sesi cloud](/docs/id/claude-code-on-the-web). Baca ini dari hook atau skrip penyiapan untuk mendeteksi apakah Anda berada dalam sesi cloud |

375| `CLAUDE_CODE_REMOTE_SESSION_ID` | Diatur secara otomatis dalam [sesi cloud](/docs/id/claude-code-on-the-web) ke ID sesi saat ini. Baca ini untuk membuat tautan kembali ke transkrip sesi. Lihat [Menautkan output kembali ke sesi](/docs/id/cloud-environments#link-output-back-to-the-session) |380| `CLAUDE_CODE_REMOTE_SESSION_ID` | Disetel otomatis di [sesi cloud](/docs/id/claude-code-on-the-web) ke ID sesi saat ini. Baca ini untuk membuat tautan kembali ke transkrip sesi. Lihat [Menautkan output kembali ke sesi](/docs/id/cloud-environments#link-output-back-to-the-session) |

376| `CLAUDE_CODE_RESTRICTED` | Atur ke `1` untuk memulai sesi dalam mode terbatas, sama seperti meneruskan [`--restricted`](/docs/id/cli-reference#cli-flags). Claude Code mengabaikan variabel ini di blok `env` file pengaturan. Memerlukan Claude Code v2.1.248 atau yang lebih baru |381| `CLAUDE_CODE_RESTRICTED` | Setel ke `1` untuk memulai sesi dalam mode terbatas, sama seperti meneruskan [`--restricted`](/docs/id/cli-reference#cli-flags). Claude Code mengabaikan variabel ini di blok `env` file pengaturan. Memerlukan Claude Code v2.1.248 atau lebih baru |

377| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Atur ke `1` untuk melanjutkan secara otomatis jika sesi sebelumnya berakhir di tengah giliran. Digunakan dalam mode SDK agar model melanjutkan tanpa mengharuskan SDK mengirim ulang prompt. Untuk mematikannya, hapus pengaturan variabel atau atur ke `0`. Untuk panel chat VS Code, lihat [Melanjutkan percakapan setelah memuat ulang](/docs/id/vs-code#continue-conversations-after-a-reload) |382| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Setel ke `1` untuk melanjutkan secara otomatis jika sesi sebelumnya berakhir di tengah giliran. Digunakan dalam mode SDK agar model melanjutkan tanpa mengharuskan SDK mengirim ulang prompt. Untuk mematikannya, hapus variabel atau setel ke `0`. Untuk panel chat VS Code, lihat [Melanjutkan percakapan setelah reload](/docs/id/vs-code#continue-conversations-after-a-reload) |

378| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Usia maksimum dalam milidetik dari pesan transkrip terakhir agar sesi yang berakhir di tengah giliran dapat berlanjut secara otomatis saat dilanjutkan. Ketika pesan terakhir lebih tua dari batas ini, Claude Code melewati pelanjutan otomatis `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` dan pesan kelanjutan `CLAUDE_CODE_RESUME_PROMPT`-nya, dan sesi dimulai dalam keadaan idle sehingga Anda melanjutkan secara eksplisit. Tidak diatur atau `0` berarti tanpa batas, kecuali bahwa giliran yang permintaan terakhirnya gagal dengan error API hanya dilanjutkan selama error tersebut berusia kurang dari enam jam. Nilai positif membatasi setiap giliran, termasuk giliran tersebut; nilai negatif atau non-numerik menerapkan batas satu jam. Skrip spawn untuk agent yang berjalan lama dapat mengatur ini agar restart terhadap transkrip lama tidak menjalankan ulang prompt yang usang. Claude Code menetapkan batas satu jam sendiri ketika memulai ulang sesi [agent view](/docs/id/agent-view) yang crash yang mewarisi percakapannya dari sesi interaktif. Memerlukan Claude Code v2.1.211 atau yang lebih baru |383| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Usia maksimum dalam milidetik dari pesan transkrip terakhir agar sesi yang berakhir di tengah giliran dapat dilanjutkan secara otomatis saat resume. Saat pesan terakhir lebih tua dari batas ini, Claude Code melewati resume otomatis `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` dan pesan lanjutan `CLAUDE_CODE_RESUME_PROMPT`-nya, dan sesi dimulai dalam keadaan idle sehingga Anda melanjutkan secara eksplisit. Tidak disetel atau `0` berarti tanpa batas, kecuali bahwa giliran yang permintaan terakhirnya gagal dengan error API hanya dilanjutkan selama error tersebut berusia kurang dari enam jam. Nilai positif membatasi setiap giliran, termasuk yang tersebut; nilai negatif atau non-numerik menerapkan batas satu jam. Skrip pemunculan untuk agent yang berjalan lama dapat menyetel ini agar restart terhadap transkrip lama tidak menjalankan ulang prompt yang sudah usang. Claude Code menyetel batas satu jam sendiri saat memulai ulang sesi [agent view](/docs/id/agent-view) yang crash yang mewarisi percakapannya dari sesi interaktif. Memerlukan Claude Code v2.1.211 atau lebih baru |

379| `CLAUDE_CODE_RESUME_PROMPT` | Menimpa pesan kelanjutan yang dikirim Claude Code ke Claude ketika `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` melanjutkan giliran yang terputus alih-alih mengirim ulang prompt-nya, atau ketika Anda melanjutkan [panggilan tool yang ditunda](/docs/id/hooks#defer-a-tool-call-for-later) dengan `-p`. Default ke `Continue from where you left off.`. String kosong menggunakan default |384| `CLAUDE_CODE_RESUME_PROMPT` | Menimpa pesan lanjutan yang dikirim Claude Code ke Claude saat `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` melanjutkan giliran yang terputus alih-alih mengirim ulang prompt-nya, atau saat Anda melanjutkan [panggilan tool yang ditunda](/docs/id/hooks#defer-a-tool-call-for-later) dengan `-p`. Default ke `Continue from where you left off.`. String kosong menggunakan default |

380| `CLAUDE_CODE_RETRY_WATCHDOG` | Atur ke `1` untuk sesi tanpa pengawasan seperti harness evaluasi, job CI, atau worker jarak jauh. Melakukan retry pada error kapasitas `429` dan `529` tanpa batas alih-alih gagal setelah `CLAUDE_CODE_MAX_RETRIES` percobaan. Claude Code langsung gagal ketika permintaan berkecepatan standar mendapat `429` yang melaporkan batas pengeluaran atau kredit penggunaan yang habis, bahkan yang berasal dari [batas pengeluaran gateway](/docs/id/errors#spend-limit-reached) yang direset sesuai jadwal. Sebelum v2.1.239, watchdog melakukan retry pada kasus ini tanpa batas. Untuk permintaan fast mode, lihat [Menangani rate limit](/docs/id/fast-mode#handle-rate-limits). Watchdog melakukan backoff hingga 5 menit di antara percobaan, atau hingga batas direset ketika respons membawa waktu reset rate limit, sehingga sesi yang mencapai batas penggunaan menunggu hingga window yang tersisa berakhir. Pada v2.1.199 atau yang lebih baru, ini juga menaikkan jumlah retry default untuk error sementara lainnya, seperti error server, timeout, dan koneksi terputus, menjadi 300, sekitar tiga jam backoff, dan menghapus batas 15 pada `CLAUDE_CODE_MAX_RETRIES` jika Anda mengatur variabel tersebut secara eksplisit. Memerlukan Claude Code v2.1.186 atau yang lebih baru |385| `CLAUDE_CODE_RETRY_WATCHDOG` | Setel ke `1` untuk sesi tanpa pengawasan seperti harness evaluasi, job CI, atau worker jarak jauh. Melakukan retry untuk error kapasitas `429` dan `529` tanpa batas alih-alih gagal setelah `CLAUDE_CODE_MAX_RETRIES` percobaan. Claude Code langsung gagal saat permintaan kecepatan standar mendapatkan `429` yang melaporkan batas pengeluaran atau kredit penggunaan yang habis, bahkan yang berasal dari [batas pengeluaran gateway](/docs/id/errors#spend-limit-reached) yang direset sesuai jadwal. Sebelum v2.1.239, watchdog melakukan retry untuk ini tanpa batas. Untuk permintaan fast mode, lihat [Menangani rate limit](/docs/id/fast-mode#handle-rate-limits). Watchdog melakukan backoff hingga 5 menit di antara percobaan, atau hingga batas direset saat respons membawa waktu reset rate limit, sehingga sesi yang mencapai batas penggunaan menunggu hingga jendela yang tersisa habis. Di v2.1.199 atau lebih baru, ini juga menaikkan jumlah retry default untuk error sementara lainnya, seperti error server, timeout, dan koneksi terputus, menjadi 300, sekitar tiga jam backoff, dan menghapus batas 15 pada `CLAUDE_CODE_MAX_RETRIES` jika Anda menyetel variabel tersebut secara eksplisit. Memerlukan Claude Code v2.1.186 atau lebih baru |

381| `CLAUDE_CODE_SAFE_MODE` | Atur ke `1` untuk memulai dalam safe mode: CLAUDE.md, skill, plugin, hook, server MCP, perintah dan agent kustom, gaya output, workflow, tema kustom, pintasan keyboard kustom, perintah baris status dan saran file, server LSP, dan auto memory tidak dimuat, untuk pemecahan masalah konfigurasi yang rusak. Kebijakan pengaturan terkelola tetap berlaku, termasuk hook, baris status, dan perintah saran file yang dikonfigurasi kebijakan; plugin terkelola, skill terkelola, CLAUDE.md terkelola, dan server MCP yang dikonfigurasi kebijakan tidak berlaku. Setara dengan meneruskan [`--safe-mode`](/docs/id/cli-reference#cli-flags). Proses anak yang dimunculkan secara langsung mewarisi variabel ini |386| `CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS` | Waktu maksimum dalam milidetik yang dihabiskan setiap permintaan API untuk menunggu error `429` dan `529` saat `CLAUDE_CODE_RETRY_WATCHDOG` disetel. Setelah waktu tersebut habis, error serupa berikutnya mengakhiri permintaan. Berikan bilangan bulat positif dalam digit biasa, seperti `1800000` untuk 30 menit. Saat tidak disetel, penantian tidak memiliki batas. Memerlukan Claude Code v2.1.295 atau lebih baru |

382| `CLAUDE_CODE_SCRIPT_CAPS` | Objek JSON yang membatasi berapa kali skrip tertentu dapat dipanggil per sesi ketika `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` diatur. Kunci adalah substring yang dicocokkan dengan teks perintah; nilai adalah batas panggilan berupa bilangan bulat. Misalnya, `{"deploy.sh": 2}` mengizinkan `deploy.sh` dipanggil paling banyak dua kali. Pencocokan berbasis substring sehingga trik ekspansi shell seperti `./scripts/deploy.sh $(evil)` tetap dihitung terhadap batas. Fan-out runtime melalui `xargs` atau `find -exec` tidak terdeteksi; ini adalah kontrol defense-in-depth |387| `CLAUDE_CODE_SAFE_MODE` | Setel ke `1` untuk memulai dalam safe mode: CLAUDE.md, skill, plugin, hook, server MCP, perintah dan agent kustom, gaya output, workflow, tema kustom, pintasan keyboard kustom, perintah baris status dan saran file, server LSP, dan auto memory tidak dimuat, untuk pemecahan masalah konfigurasi yang rusak. Kebijakan pengaturan terkelola tetap berlaku, termasuk hook, baris status, dan perintah saran file yang dikonfigurasi kebijakan; plugin terkelola, skill terkelola, CLAUDE.md terkelola, dan server MCP yang dikonfigurasi kebijakan tidak. Setara dengan meneruskan [`--safe-mode`](/docs/id/cli-reference#cli-flags). Proses anak yang dimunculkan secara langsung mewarisi variabel ini |

383| `CLAUDE_CODE_SCROLL_SPEED` | Mengatur pengali gulir roda mouse dalam [rendering layar penuh](/docs/id/fullscreen#mouse-wheel-scrolling). Menerima nilai positif apa pun hingga 20, termasuk nilai pecahan di bawah 1 seperti `0.5` untuk memperlambat gulir trackpad dan roda yang dipercepat di terminal yang sudah memperkuat event roda. Atur ke `3` agar sesuai dengan `vim` jika terminal Anda mengirim satu event roda per takik tanpa penguatan. Diabaikan di terminal IDE JetBrains, tempat Claude Code menggunakan penanganan gulir miliknya sendiri |388| `CLAUDE_CODE_SCRIPT_CAPS` | Objek JSON yang membatasi berapa kali skrip tertentu dapat dipanggil per sesi saat `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` disetel. Kunci adalah substring yang dicocokkan dengan teks perintah; nilai adalah batas panggilan berupa bilangan bulat. Misalnya, `{"deploy.sh": 2}` mengizinkan `deploy.sh` dipanggil paling banyak dua kali. Pencocokan berbasis substring sehingga trik ekspansi shell seperti `./scripts/deploy.sh $(evil)` tetap dihitung terhadap batas. Fan-out runtime melalui `xargs` atau `find -exec` tidak terdeteksi; ini adalah kontrol defense-in-depth |

384| `CLAUDE_CODE_SEND_FEEDBACK` | Atur ke `0` untuk mematikan [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior) untuk suatu sesi. Atur ke `1` untuk mengaktifkannya di mana akun Anda sudah memiliki akses; variabel ini tidak dapat memberikan akses sendiri, dan sakelar lain yang mematikan umpan balik, seperti `DISABLE_FEEDBACK_COMMAND` dan nilai `off` pada pengaturan [`feedbackDrafts`](/docs/id/settings-reference#feedbackdrafts), tetap berlaku |389| `CLAUDE_CODE_SCROLL_SPEED` | Menyetel pengali scroll roda mouse dalam [rendering layar penuh](/docs/id/fullscreen#mouse-wheel-scrolling). Menerima nilai positif apa pun hingga 20, termasuk nilai pecahan di bawah 1 seperti `0.5` untuk memperlambat scroll trackpad dan roda yang dipercepat di terminal yang sudah memperkuat event roda. Setel ke `3` untuk menyamai `vim` jika terminal Anda mengirim satu event roda per takik tanpa penguatan. Diabaikan di terminal IDE JetBrains, tempat Claude Code menggunakan penanganan scroll-nya sendiri |

385| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Menimpa anggaran waktu dalam milidetik untuk hook [SessionEnd](/docs/id/hooks#sessionend). Nilai ini juga merupakan timeout untuk setiap hook yang tidak mengatur `timeout` miliknya sendiri. Berlaku untuk keluar dari sesi, `/clear`, dan berpindah sesi melalui `/resume` interaktif. Secara default anggarannya adalah 1,5 detik, dinaikkan secara otomatis ke `timeout` per hook tertinggi yang dikonfigurasi di file pengaturan, hingga 60 detik. Timeout pada hook yang disediakan plugin tidak menaikkan anggaran |390| `CLAUDE_CODE_SEND_FEEDBACK` | Setel ke `0` untuk mematikan [umpan balik yang disusun Claude](/docs/id/tools-reference#sendfeedback-tool-behavior) untuk sebuah sesi. Setel ke `1` untuk mengaktifkannya jika akun Anda sudah memiliki akses; variabel ini tidak dapat memberikan akses sendiri, dan sakelar lain yang mematikan umpan balik, seperti `DISABLE_FEEDBACK_COMMAND` dan nilai `off` pada pengaturan [`feedbackDrafts`](/docs/id/settings-reference#feedbackdrafts), tetap berlaku |

386| `CLAUDE_CODE_SESSION_ID` | Diatur secara otomatis ke ID sesi saat ini dalam subproses tool Bash dan PowerShell, subproses [perintah hook](/docs/id/hooks), dan subproses [server MCP](/docs/id/mcp) stdio. Untuk Bash, PowerShell, dan hook, ini cocok dengan field `session_id` di input JSON hook dan diperbarui saat `/clear`. Subproses server MCP mempertahankan ID yang digunakan saat dimunculkan. Pada `--resume <session-id>` subproses ini menerima ID yang dilanjutkan, sesuai dengan hook dan Bash. Pada `--continue` atau `--resume` tanpa ID eksplisit, subproses ini mungkin menerima ID startup awal sebagai gantinya. Gunakan untuk mengorelasikan skrip dan tool eksternal dengan sesi Claude Code yang meluncurkannya |391| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | Menimpa anggaran waktu dalam milidetik untuk hook [SessionEnd](/docs/id/hooks#sessionend). Nilai ini juga merupakan timeout untuk setiap hook yang tidak menyetel `timeout` sendiri. Berlaku untuk keluar sesi, `/clear`, dan beralih sesi melalui `/resume` interaktif. Secara default anggarannya 1,5 detik, dinaikkan secara otomatis ke `timeout` per hook tertinggi yang dikonfigurasi di file pengaturan, hingga 60 detik. Timeout pada hook yang disediakan plugin tidak menaikkan anggaran |

387| `CLAUDE_CODE_SHELL` | Mengatur shell yang digunakan Claude Code untuk menjalankan perintah tool Bash. Menerima path ke binary `bash` atau `zsh`, misalnya `/opt/homebrew/bin/bash`. Shell lain seperti `fish` tidak didukung. Jika nilainya bukan path `bash` atau `zsh` yang berfungsi, Claude Code mengabaikannya dan kembali ke deteksi otomatis. Deteksi otomatis menggunakan `$SHELL` Anda ketika mengarah ke `bash` atau `zsh`, jika tidak, ia memilih `zsh` lalu `bash` pertama yang berfungsi yang ditemukan di `PATH` Anda dan lokasi instalasi standar |392| `CLAUDE_CODE_SESSION_ID` | Disetel otomatis ke ID sesi saat ini di subproses tool Bash dan PowerShell, subproses [perintah hook](/docs/id/hooks), dan subproses [server MCP](/docs/id/mcp) stdio. Untuk Bash, PowerShell, dan hook, ini cocok dengan field `session_id` di input JSON hook dan diperbarui saat `/clear`. Subproses server MCP mempertahankan ID yang digunakan saat dimunculkan. Pada `--resume <session-id>` subproses tersebut menerima ID yang dilanjutkan, sesuai dengan hook dan Bash. Pada `--continue` atau `--resume` tanpa ID eksplisit, subproses tersebut mungkin menerima ID startup awal sebagai gantinya. Gunakan untuk mengorelasikan skrip dan tool eksternal dengan sesi Claude Code yang meluncurkannya |

388| `CLAUDE_CODE_SHELL_PREFIX` | Prefiks perintah yang membungkus perintah shell yang dimunculkan Claude Code: panggilan tool Bash, perintah [hook](/docs/id/hooks), perintah [baris status](/docs/id/statusline), dan perintah startup [server MCP](/docs/id/mcp) stdio. Hook PowerShell dan hook bentuk exec berjalan tanpa prefiks. Berguna untuk logging atau audit. Mengatur path executable tunggal seperti `/path/to/logger.sh` menjalankan setiap perintah sebagai `/path/to/logger.sh '<command>'`. Wrapper menerima baris perintah sebagai satu argumen yang dikutip shell di `$1`, sehingga wrapper harus mengevaluasi ulang `$1` dengan shell, misalnya `exec bash -c "$1"`. Memperlakukan `$1` sebagai path executable tunggal merusak server MCP stdio yang meneruskan argumen seperti `npx -y <package>`. Untuk panggilan tool Bash, `$1` berisi pemanggilan shell lengkap yang dirakit Claude Code, termasuk penyiapan environment, bukan hanya perintah yang dijalankan Claude |393| `CLAUDE_CODE_SHELL` | Menyetel shell yang digunakan Claude Code untuk menjalankan perintah tool Bash. Menerima path ke binary `bash` atau `zsh`, misalnya `/opt/homebrew/bin/bash`. Shell lain seperti `fish` tidak didukung. Jika nilainya bukan path `bash` atau `zsh` yang berfungsi, Claude Code mengabaikannya dan kembali ke deteksi otomatis. Deteksi otomatis menggunakan `$SHELL` Anda saat mengarah ke `bash` atau `zsh`, jika tidak, ia memilih `zsh` lalu `bash` pertama yang berfungsi yang ditemukan di `PATH` Anda dan lokasi instalasi standar |

389| `CLAUDE_CODE_SIMPLE` | Atur ke `1` untuk berjalan dengan system prompt minimal dan hanya tool Bash, baca file, dan edit file. Tool MCP dari `--mcp-config` tetap tersedia. Menonaktifkan penemuan otomatis hook, skill, perintah kustom, subagent, plugin yang terinstal, server MCP, auto memory, dan CLAUDE.md. Skill di direktori yang Anda teruskan dengan `--add-dir` tetap dimuat. Token OAuth dan kredensial keychain tidak dibaca, sehingga autentikasi Anthropic harus berasal dari `ANTHROPIC_API_KEY` atau `apiKeyHelper` di `--settings`. Setara dengan meneruskan [`--bare`](/docs/id/headless#start-faster-with-bare-mode) |394| `CLAUDE_CODE_SHELL_PREFIX` | Prefiks perintah yang membungkus perintah shell yang dimunculkan Claude Code: panggilan tool Bash, perintah [hook](/docs/id/hooks), perintah [baris status](/docs/id/statusline), dan perintah startup [server MCP](/docs/id/mcp) stdio. Hook PowerShell dan hook bentuk exec berjalan tanpa prefiks. Berguna untuk logging atau audit. Menyetel path executable biasa seperti `/path/to/logger.sh` menjalankan setiap perintah sebagai `/path/to/logger.sh '<command>'`. Wrapper menerima baris perintah sebagai satu argumen yang di-quote shell di `$1`, sehingga wrapper harus mengevaluasi ulang `$1` dengan shell, misalnya `exec bash -c "$1"`. Memperlakukan `$1` sebagai path executable biasa akan merusak server MCP stdio yang meneruskan argumen seperti `npx -y <package>`. Untuk panggilan tool Bash, `$1` berisi pemanggilan shell lengkap yang dirakit Claude Code, termasuk penyiapan lingkungan, bukan hanya perintah yang dijalankan Claude |

390| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Memilih antara system prompt lengkap Claude Code dan yang lebih pendek dengan deskripsi tool yang disingkat. Ketika tidak diatur, Haiku 4.5, Sonnet 5, Opus 4.7, dan model sebelumnya dalam keluarga tersebut menggunakan prompt lengkap secara default, dan model yang lebih baru menggunakan yang lebih pendek. Atur ke `1` untuk menggunakan prompt yang lebih pendek pada model apa pun. Atur ke `0`, `false`, `no`, atau `off` untuk menggunakan prompt lengkap pada model apa pun, bahkan di mana eksperimen atau konfigurasi server jika tidak akan memilih yang lebih pendek. Kedua prompt mempertahankan set tool lengkap, hook, server MCP, dan penemuan CLAUDE.md |395| `CLAUDE_CODE_SIMPLE` | Setel ke `1` untuk berjalan dengan system prompt minimal dan hanya tool Bash, baca file, dan edit file. Tool MCP dari `--mcp-config` tetap tersedia. Menonaktifkan penemuan otomatis hook, skill, perintah kustom, subagent, plugin terinstal, server MCP, auto memory, dan CLAUDE.md. Skill di direktori yang Anda teruskan dengan `--add-dir` tetap dimuat. Token OAuth dan kredensial keychain tidak dibaca, sehingga autentikasi Anthropic harus berasal dari `ANTHROPIC_API_KEY` atau `apiKeyHelper` di `--settings`. Setara dengan meneruskan [`--bare`](/docs/id/headless#start-faster-with-bare-mode) |

396| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | Memilih antara system prompt lengkap Claude Code dan yang lebih pendek dengan deskripsi tool yang diringkas. Saat tidak disetel, Haiku 4.5, Sonnet 5, Opus 4.7, dan model sebelumnya dalam keluarga tersebut menggunakan prompt lengkap secara default, dan model yang lebih baru menggunakan yang lebih pendek. Setel ke `1` untuk menggunakan prompt yang lebih pendek di model apa pun. Setel ke `0`, `false`, `no`, atau `off` untuk menggunakan prompt lengkap di model apa pun, bahkan di mana eksperimen atau konfigurasi server akan memilih yang lebih pendek. Kedua prompt mempertahankan set tool lengkap, hook, server MCP, dan penemuan CLAUDE.md |

391| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Melewati autentikasi sisi klien untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws), untuk gateway yang menandatangani permintaan sendiri |397| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | Melewati autentikasi sisi klien untuk [Claude Platform on AWS](/docs/id/claude-platform-on-aws), untuk gateway yang menandatangani permintaan sendiri |

392| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Atur ke `1` untuk mematikan cache in-process untuk kredensial yang diselesaikan dari AWS default credential provider chain, sehingga Claude Code menyelesaikan chain tersebut pada setiap permintaan API. Dengan cache nonaktif, profil berbasis SSO meminta kredensial dari IAM Identity Center pada setiap permintaan. Lihat [caching kredensial dan timeout resolusi](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout). Memerlukan Claude Code v2.1.207 atau yang lebih baru |398| `CLAUDE_CODE_SKIP_AWS_CRED_CACHE` | Setel ke `1` untuk mematikan cache in-process kredensial yang di-resolve dari AWS default credential provider chain, sehingga Claude Code me-resolve chain tersebut pada setiap permintaan API. Dengan cache nonaktif, profil berbasis SSO meminta kredensial dari IAM Identity Center pada setiap permintaan. Lihat [caching kredensial dan timeout resolusi](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout). Memerlukan Claude Code v2.1.207 atau lebih baru |

393| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Melewati autentikasi AWS untuk Amazon Bedrock (misalnya, saat menggunakan LLM gateway) |399| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | Melewati autentikasi AWS untuk Amazon Bedrock (misalnya, saat menggunakan LLM gateway) |

394| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Atur ke `1` untuk memperlakukan pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) yang gagal sebagai tersedia, untuk jaringan yang memblokir permintaan langsung pemeriksaan tersebut ke `api.anthropic.com`. Claude Code tetap menghormati respons "disabled by your organization" |400| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` | Setel ke `1` untuk memperlakukan pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) yang gagal sebagai tersedia, untuk jaringan yang memblokir permintaan langsung pemeriksaan tersebut ke `api.anthropic.com`. Claude Code tetap menghormati respons "disabled by your organization" |

395| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Atur ke `1` untuk melewati pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) sisi klien, untuk proxy yang mencegat permintaan pemeriksaan alih-alih menolaknya. API tetap menolak permintaan fast mode ketika organisasi Anda menonaktifkan fast mode |401| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Setel ke `1` untuk melewati pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) sisi klien, untuk proxy yang mencegat permintaan pemeriksaan alih-alih menolaknya. API tetap menolak permintaan fast mode saat organisasi Anda menonaktifkan fast mode |

396| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Melewati autentikasi Azure untuk Microsoft Foundry, untuk proxy atau gateway yang menyisipkan header `Authorization` miliknya sendiri. Claude Code mengirim permintaan tanpa kredensial Azure dan mempertahankan header `Authorization` yang Anda berikan, misalnya melalui `ANTHROPIC_CUSTOM_HEADERS`. Diabaikan ketika `ANTHROPIC_FOUNDRY_API_KEY` atau `ANTHROPIC_FOUNDRY_AUTH_TOKEN` diatur. Sebelum v2.1.203, variabel ini membuat klien Microsoft Foundry tidak dapat mengirim permintaan kecuali kunci API juga diatur |402| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | Melewati autentikasi Azure untuk Microsoft Foundry, untuk proxy atau gateway yang menyuntikkan header `Authorization`-nya sendiri. Claude Code mengirim permintaan tanpa kredensial Azure dan mempertahankan header `Authorization` yang Anda berikan, misalnya melalui `ANTHROPIC_CUSTOM_HEADERS`. Diabaikan saat `ANTHROPIC_FOUNDRY_API_KEY` atau `ANTHROPIC_FOUNDRY_AUTH_TOKEN` disetel. Sebelum v2.1.203, variabel ini membuat klien Microsoft Foundry tidak dapat mengirim permintaan kecuali kunci API juga disetel |

397| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Melewati autentikasi AWS untuk Amazon Bedrock Mantle (misalnya, saat menggunakan LLM gateway) |403| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | Melewati autentikasi AWS untuk Amazon Bedrock Mantle (misalnya, saat menggunakan LLM gateway) |

398| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [Pemeriksaan model saat startup](/docs/id/amazon-bedrock#startup-model-checks) di [Amazon Bedrock](/docs/id/amazon-bedrock) dan [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) mengingat di mesin ini model mana yang ditemukan tidak dapat dipanggil oleh akun Anda, hingga satu hari. Atur ke `1` untuk mematikan ingatan tersebut. Memerlukan Claude Code v2.1.285 atau yang lebih baru |404| `CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY` | [Pemeriksaan model saat startup](/docs/id/amazon-bedrock#startup-model-checks) di [Amazon Bedrock](/docs/id/amazon-bedrock) dan [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) mengingat di mesin ini model mana yang ditemukan tidak dapat dipanggil oleh akun Anda, hingga satu hari. Setel ke `1` untuk mematikan ingatan tersebut. Memerlukan Claude Code v2.1.285 atau lebih baru |

399| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Atur ke `1` untuk melewati penulisan riwayat prompt dan transkrip sesi ke disk. Sesi yang dimulai dengan variabel ini diatur tidak muncul di `--resume`, `--continue`, atau riwayat panah atas. Berguna untuk sesi berskrip yang bersifat sementara |405| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | Setel ke `1` untuk melewati penulisan riwayat prompt dan transkrip sesi ke disk. Sesi yang dimulai dengan variabel ini disetel tidak muncul di `--resume`, `--continue`, atau riwayat panah atas. Berguna untuk sesi skrip sementara |

400| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Melewati autentikasi Google untuk Google Cloud's Agent Platform (misalnya, saat menggunakan LLM gateway) |406| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | Melewati autentikasi Google untuk Google Cloud's Agent Platform (misalnya, saat menggunakan LLM gateway) |

401| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Atur ke `1` agar sesi yang dimulai dengan `--output-format stream-json` menulis [pesan hasil yang menyebutkan alasan Claude Code menolak untuk dimulai](/docs/id/agent-sdk/typescript#startup_failure_reason) untuk kegagalan startup yang jika tidak hanya berakhir dengan stderr. Memerlukan Claude Code v2.1.274 atau yang lebih baru |407| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | Setel ke `1` agar sesi yang dimulai dengan `--output-format stream-json` menulis [pesan hasil yang menyebutkan mengapa Claude Code menolak untuk dimulai](/docs/id/agent-sdk/typescript#startup_failure_reason) untuk kegagalan startup yang biasanya hanya berakhir dengan stderr. Memerlukan Claude Code v2.1.274 atau lebih baru |

402| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Jumlah maksimum berturut-turut hook [Stop](/docs/id/hooks#stop) atau [SubagentStop](/docs/id/hooks#subagentstop) dapat memblokir giliran agar tidak berakhir sebelum Claude Code menimpanya dan tetap mengakhiri giliran (default: 8). Atur ke `0` untuk menonaktifkan batas. Naikkan ini jika hook Anda memang membutuhkan lebih banyak iterasi untuk diselesaikan |408| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | Jumlah maksimum berturut-turut hook [Stop](/docs/id/hooks#stop) atau [SubagentStop](/docs/id/hooks#subagentstop) dapat memblokir giliran agar tidak berakhir sebelum Claude Code menimpanya dan tetap mengakhiri giliran (default: 8). Setel ke `0` untuk menonaktifkan batas. Naikkan ini jika hook Anda secara sah memerlukan lebih banyak iterasi untuk diselesaikan |

403| `CLAUDE_CODE_SUBAGENT_MODEL` | Model default untuk [subagent](/docs/id/sub-agents#choose-a-model), anggota [tim agent](/docs/id/agent-teams#specify-teammates-and-models), dan agent [workflow](/docs/id/workflows) yang tidak diberi model dengan cara lain. Menerima alias seperti `haiku` atau nama model lengkap. Dua sumber diutamakan daripadanya: model yang diteruskan Claude saat memunculkan agent, dan field `model` dalam definisi agent, termasuk `inherit`. Untuk mengubah hal itu, atur [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/id/sub-agents#run-every-subagent-on-one-model). Lihat [Memilih model](/docs/id/sub-agents#choose-a-model) untuk urutan lengkapnya. Mengaturnya ke `inherit` sama dengan membiarkannya tidak diatur. Sebelum v2.1.251, variabel ini menimpa baik model per pemanggilan maupun field `model` definisi |409| `CLAUDE_CODE_SUBAGENT_MODEL` | Model default untuk [subagent](/docs/id/sub-agents#choose-a-model), rekan tim [tim agent](/docs/id/agent-teams#specify-teammates-and-models), dan agent [workflow](/docs/id/workflows) yang tidak diberi model dengan cara lain. Menerima alias seperti `haiku` atau nama model lengkap. Dua sumber diutamakan daripadanya: model yang diteruskan Claude saat memunculkan agent, dan field `model` dalam definisi agent, termasuk `inherit`. Untuk mengubahnya, setel [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/id/sub-agents#run-every-subagent-on-one-model). Lihat [Memilih model](/docs/id/sub-agents#choose-a-model) untuk urutan lengkapnya. Menyetelnya ke `inherit` sama dengan membiarkannya tidak disetel. Sebelum v2.1.251, variabel ini menimpa baik model per pemanggilan maupun field `model` definisi |

404| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Atur ke `1` untuk memaksakan satu model pada subagent, anggota tim, dan agent workflow. [Menjalankan setiap subagent pada satu model](/docs/id/sub-agents#run-every-subagent-on-one-model) menjelaskan model mana itu. Memerlukan Claude Code v2.1.257 atau yang lebih baru |410| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | Setel ke `1` untuk memaksakan satu model pada subagent, rekan tim, dan agent workflow. [Menjalankan setiap subagent pada satu model](/docs/id/sub-agents#run-every-subagent-on-one-model) menjelaskan model mana itu. Memerlukan Claude Code v2.1.257 atau lebih baru |

405| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Atur `5m` atau `1h`, satu-satunya nilai yang diterima Claude Code, untuk memilih [TTL cache prompt](/docs/id/prompt-caching#cache-lifetime) untuk permintaan di luar percakapan utama, seperti [subagent](/docs/id/sub-agents), workflow, dan pekerjaan latar belakang. Diutamakan daripada pengaturan `subagentPromptCacheTtl` dan daripada `ENABLE_PROMPT_CACHING_1H`, dan `FORCE_PROMPT_CACHING_5M` menimpanya. API menagih penulisan cache 1 jam dengan tarif yang lebih tinggi. Memerlukan Claude Code v2.1.242 atau yang lebih baru |411| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | Setel `5m` atau `1h`, satu-satunya nilai yang diterima Claude Code, untuk memilih [TTL prompt cache](/docs/id/prompt-caching#cache-lifetime) untuk permintaan di luar percakapan utama, seperti [subagent](/docs/id/sub-agents), workflow, dan pekerjaan latar belakang. Diutamakan daripada pengaturan `subagentPromptCacheTtl` dan daripada `ENABLE_PROMPT_CACHING_1H`, dan `FORCE_PROMPT_CACHING_5M` menimpanya. API menagih penulisan cache 1 jam dengan tarif yang lebih tinggi. Memerlukan Claude Code v2.1.242 atau lebih baru |

406| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Atur ke `1` untuk menghapus kredensial dari environment subproses yang dimulai Claude Code, seperti perintah Bash, hook, dan server MCP stdio. Pembersihan mengenali kredensial dari nama variabel atau nilainya, dan membiarkan token GitHub serta pengaturan proxy tetap ada. Lihat [Apa yang dihapus oleh pembersihan environment subproses](#what-the-subprocess-environment-scrub-removes). `claude-code-action` mengatur ini secara otomatis ketika `allowed_non_write_users` dikonfigurasi |412| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | Setel ke `1` untuk menghapus kredensial dari lingkungan subproses yang dimulai Claude Code, seperti perintah Bash, hook, dan server MCP stdio. Pembersihan mengenali kredensial berdasarkan nama variabel atau nilainya, dan membiarkan token GitHub serta pengaturan proxy tetap ada. Lihat [Apa yang dihapus oleh pembersihan lingkungan subproses](#what-the-subprocess-environment-scrub-removes). `claude-code-action` menyetel ini secara otomatis saat `allowed_non_write_users` dikonfigurasi |

407| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Atur ke `1` dalam mode non-interaktif (flag `-p`) untuk menunggu instalasi plugin selesai sebelum kueri pertama. Tanpa ini, plugin diinstal di latar belakang dan mungkin tidak tersedia pada giliran pertama. Kombinasikan dengan `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` untuk membatasi penantian |413| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | Setel ke `1` dalam mode non-interaktif (flag `-p`) untuk menunggu instalasi plugin selesai sebelum kueri pertama. Tanpa ini, plugin diinstal di latar belakang dan mungkin tidak tersedia pada giliran pertama. Gabungkan dengan `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` untuk membatasi penantian |

408| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout dalam milidetik untuk instalasi plugin sinkron. Ketika terlampaui, Claude Code melanjutkan tanpa plugin dan mencatat error. Tidak ada default: tanpa variabel ini, instalasi sinkron menunggu hingga selesai |414| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | Timeout dalam milidetik untuk instalasi plugin sinkron. Saat terlampaui, Claude Code melanjutkan tanpa plugin dan mencatat error. Tidak ada default: tanpa variabel ini, instalasi sinkron menunggu hingga selesai |

409| `CLAUDE_CODE_SYNC_SKILLS` | Atur ke `1` dalam mode non-interaktif dengan flag `-p` agar Claude Code mengunduh skill yang diaktifkan untuk akun claude.ai Anda dalam run tersebut dan menunggu daftarnya, hingga `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, sebelum menjalankan kueri pertama. Memerlukan autentikasi claude.ai. Sesi terminal tempat Anda masuk dengan akun claude.ai Anda [menyinkronkan skill ini](/docs/id/skills#where-synced-skills-load) tanpa variabel ini, jadi atur hanya ketika run `-p` membutuhkan skill terkini Anda pada kueri pertamanya |415| `CLAUDE_CODE_SYNC_SKILLS` | Setel ke `1` dalam mode non-interaktif dengan flag `-p` agar Claude Code mengunduh skill yang diaktifkan untuk akun claude.ai Anda dalam run tersebut dan menunggu daftarnya, hingga `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`, sebelum menjalankan kueri pertama. Memerlukan autentikasi claude.ai. Sesi terminal di mana Anda masuk dengan akun claude.ai Anda [menyinkronkan skill ini](/docs/id/skills#where-synced-skills-load) tanpa variabel ini, jadi setel hanya saat run `-p` memerlukan skill terkini Anda pada kueri pertamanya |

410| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout dalam milidetik untuk sinkronisasi ulang skill yang berjalan di tengah sesi ketika aplikasi yang dibangun di atas [Agent SDK](/docs/id/agent-sdk/typescript#query-object) memuat ulang skill (default: 30000). Ketika terlampaui, pemuatan ulang berlanjut dengan skill mana pun yang sudah tiba, dan unduhan yang tersisa selesai di latar belakang |416| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | Timeout dalam milidetik untuk sinkronisasi ulang skill yang berjalan di tengah sesi saat aplikasi yang dibangun di atas [Agent SDK](/docs/id/agent-sdk/typescript#query-object) memuat ulang skill (default: 30000). Saat terlampaui, pemuatan ulang berlanjut dengan skill mana pun yang sudah tiba, dan unduhan yang tersisa selesai di latar belakang |

411| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout dalam milidetik bagi kueri pertama untuk menunggu daftar skill awal ketika `CLAUDE_CODE_SYNC_SKILLS` diatur (default: 5000). Ketika terlampaui, kueri pertama berjalan dengan skill mana pun yang sudah tiba. Unduhan tetap selesai di latar belakang, dan Claude menunggu unduhan skill ketika memanggil skill tersebut |417| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | Timeout dalam milidetik bagi kueri pertama untuk menunggu daftar skill awal saat `CLAUDE_CODE_SYNC_SKILLS` disetel (default: 5000). Saat terlampaui, kueri pertama berjalan dengan skill mana pun yang sudah tiba. Unduhan tetap selesai di latar belakang, dan Claude menunggu unduhan skill saat memanggil skill tersebut |

412| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Atur ke `false` untuk menonaktifkan penyorotan sintaks dalam output diff. Berguna ketika warna mengganggu penyiapan terminal Anda. Untuk juga menonaktifkan penyorotan di blok kode dan pratinjau file, gunakan pengaturan [`syntaxHighlightingDisabled`](/docs/id/settings-reference#syntaxhighlightingdisabled) |418| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | Setel ke `false` untuk menonaktifkan penyorotan sintaks dalam output diff. Berguna saat warna mengganggu penyiapan terminal Anda. Untuk juga menonaktifkan penyorotan di blok kode dan pratinjau file, gunakan pengaturan [`syntaxHighlightingDisabled`](/docs/id/settings-reference#syntaxhighlightingdisabled) |

413| `CLAUDE_CODE_TASK_LIST_ID` | Berbagi daftar tugas di antara sesi. Atur ID yang sama di beberapa instance Claude Code untuk berkoordinasi pada daftar tugas bersama, dalam [sesi yang memiliki tool Task](/docs/id/tools-reference#task-tool-availability). Lihat [Daftar tugas](/docs/id/interactive-mode#task-list) |419| `CLAUDE_CODE_TASK_LIST_ID` | Berbagi daftar tugas antar sesi. Setel ID yang sama di beberapa instance Claude Code untuk berkoordinasi pada daftar tugas bersama, dalam [sesi yang memiliki tool Task](/docs/id/tools-reference#task-tool-availability). Lihat [Daftar tugas](/docs/id/interactive-mode#task-list) |

414| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Menimpa, dalam milidetik, berapa lama sesi non-interaktif menunggu saat keluar agar [tim agent](/docs/id/agent-teams)-nya selesai dibongkar. Menerima 1000 hingga 60000; nilai di luar rentang diabaikan dan default 10000 berlaku. Memerlukan Claude Code v2.1.206 atau yang lebih baru |420| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | Menimpa, dalam milidetik, berapa lama sesi non-interaktif menunggu saat keluar agar [tim agent](/docs/id/agent-teams)-nya selesai dibongkar. Menerima 1000 hingga 60000; nilai di luar rentang diabaikan dan default 10000 berlaku. Memerlukan Claude Code v2.1.206 atau lebih baru |

415| `CLAUDE_CODE_TMPDIR` | Menimpa direktori temp yang digunakan untuk file temp internal. Claude Code menambahkan `/claude-{uid}/` ke path ini di Unix, atau `/claude/` di Windows. Default: `/tmp` di macOS, `os.tmpdir()` di Linux dan Windows. Di macOS dan Linux, subproses Bash yang [di-sandbox](/docs/id/sandboxing) menerima `$TMPDIR` fallback pendek di bawah default sistem ketika override Anda adalah path yang panjang, karena beberapa tool gagal ketika path temp terlalu panjang. Perintah Bash yang tidak di-sandbox mewarisi `$TMPDIR` shell Anda ketika diatur. Di Windows native, ketika shell Anda tidak mengatur `$TMPDIR`, perintah Bash yang mereferensikan `$TMPDIR` menerima override Anda, atau `%TEMP%` ketika Anda belum mengaturnya. File temp milik Claude Code selalu menggunakan override Anda. Atur di shell Anda, pengaturan pengguna, atau pengaturan terkelola. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |421| `CLAUDE_CODE_TMPDIR` | Menimpa direktori temp yang digunakan untuk file temp internal. Claude Code menambahkan `/claude-{uid}/` ke path ini di Unix, atau `/claude/` di Windows. Default: `/tmp` di macOS, `os.tmpdir()` di Linux dan Windows. Di macOS dan Linux, subproses Bash yang [di-sandbox](/docs/id/sandboxing) menerima `$TMPDIR` fallback yang pendek di bawah default sistem saat override Anda adalah path yang panjang, karena beberapa tool gagal saat path temp terlalu panjang. Perintah Bash yang tidak di-sandbox mewarisi `$TMPDIR` shell Anda saat disetel. Di Windows native, saat shell Anda tidak menyetel `$TMPDIR`, perintah Bash yang mereferensikan `$TMPDIR` menerima override Anda, atau `%TEMP%` saat Anda belum menyetelnya. File temp milik Claude Code sendiri selalu menggunakan override Anda. Setel di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |

416| `CLAUDE_CODE_TMUX_TRUECOLOR` | Atur ke nilai tidak kosong apa pun, seperti `1`, untuk mengizinkan output truecolor 24-bit di dalam tmux. **Mengaturnya ke `0` atau `false` tetap mengizinkan truecolor**, berbeda dengan sebagian besar variabel on/off; hapus pengaturan variabel untuk mengembalikan pembatasan 256 warna. Secara default, Claude Code membatasi ke 256 warna ketika `$TMUX` diatur karena tmux tidak meneruskan escape sequence truecolor kecuali dikonfigurasi untuk itu. Atur ini setelah menambahkan `set -ga terminal-overrides ',*:Tc'` ke `~/.tmux.conf` Anda. Lihat [Konfigurasi terminal](/docs/id/terminal-config) untuk pengaturan tmux lainnya |422| `CLAUDE_CODE_TMUX_TRUECOLOR` | Setel ke nilai tidak kosong apa pun, seperti `1`, untuk mengizinkan output truecolor 24-bit di dalam tmux. **Menyetelnya ke `0` atau `false` tetap mengizinkan truecolor**, tidak seperti sebagian besar variabel aktif/nonaktif; hapus variabel untuk mengembalikan pembatasan 256 warna. Secara default, Claude Code membatasi ke 256 warna saat `$TMUX` disetel karena tmux tidak meneruskan escape sequence truecolor kecuali dikonfigurasi untuk itu. Setel ini setelah menambahkan `set -ga terminal-overrides ',*:Tc'` ke `~/.tmux.conf` Anda. Lihat [Konfigurasi terminal](/docs/id/terminal-config) untuk pengaturan tmux lainnya |

417| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Di Linux dan WSL, atur ke daftar yang dipisahkan koma berisi jenis proses yang [dikecualikan Claude Code dari batas memori tool](/docs/id/tools-reference#memory-limit-on-linux-and-wsl), seperti `mcp` atau `lsp`. Atur `none` untuk membatasi setiap jenis, atau `all-new` untuk membatasi hanya perintah tool Bash, PowerShell, dan Monitor. Claude Code tetap menjaga perintah tool Bash, PowerShell, dan Monitor di bawah batas apa pun yang Anda cantumkan. Memerlukan Claude Code v2.1.246 atau yang lebih baru |423| `CLAUDE_CODE_TOOL_MEMORY_CGROUP_EXCLUDE` | Di Linux dan WSL, setel ke daftar yang dipisahkan koma berisi jenis proses yang [dikecualikan Claude Code dari batas memori tool](/docs/id/tools-reference#memory-limit-on-linux-and-wsl), seperti `mcp` atau `lsp`. Setel `none` untuk membatasi setiap jenis, atau `all-new` untuk hanya membatasi perintah tool Bash, PowerShell, dan Monitor. Claude Code tetap menjaga perintah tool Bash, PowerShell, dan Monitor di bawah batas apa pun yang Anda cantumkan. Memerlukan Claude Code v2.1.246 atau lebih baru |

418| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Di Linux dan WSL, atur ke ukuran seperti `4G` untuk [membatasi memori yang dapat digunakan perintah tool Bash dan PowerShell](/docs/id/tools-reference#memory-limit-on-linux-and-wsl), serta perintah tool Monitor pada v2.1.246 atau yang lebih baru. Tulis ukuran dalam digit biasa, tanpa akhiran untuk jumlah byte atau dengan akhiran `K`, `M`, `G`, atau `T`. Atur `0` atau `off` untuk mematikan batas. Setelah proses pertama yang dimulai Claude Code mengaktifkan atau mematikan batas, nilai yang diubah berlaku pada saat Anda meluncurkan `claude` berikutnya. Memerlukan Claude Code v2.1.233 atau yang lebih baru |424| `CLAUDE_CODE_TOOL_MEMORY_LIMIT` | Di Linux dan WSL, setel ke ukuran seperti `4G` untuk [membatasi memori yang dapat digunakan perintah tool Bash dan PowerShell](/docs/id/tools-reference#memory-limit-on-linux-and-wsl), serta perintah tool Monitor di v2.1.246 atau lebih baru. Tulis ukuran dalam digit biasa, sendiri untuk jumlah byte atau dengan sufiks `K`, `M`, `G`, atau `T`. Setel `0` atau `off` untuk mematikan batas. Setelah proses pertama yang dimulai Claude Code mengaktifkan atau mematikan batas, nilai yang diubah berlaku saat Anda meluncurkan `claude` berikutnya. Memerlukan Claude Code v2.1.233 atau lebih baru |

419| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | Atur ke `1` untuk membatasi seberapa besar [file transkrip](/docs/id/sessions#where-transcripts-are-stored) dari sesi `-p` atau Agent SDK yang panjang dapat tumbuh. Setelah setiap compaction, begitu file lebih besar dari 5 MB, Claude Code menghapus riwayat dari sebelum compaction tersebut. Melanjutkan sesi memulihkan percakapan yang sama baik file dipangkas maupun tidak. Atur di environment tempat Anda memulai Claude Code, karena blok `env` pengaturan tidak dapat mengaktifkannya. Memerlukan Claude Code v2.1.287 atau yang lebih baru |425| `CLAUDE_CODE_TRANSCRIPT_LOCAL_GC` | Setel ke `1` untuk membatasi seberapa besar [file transkrip](/docs/id/sessions#where-transcripts-are-stored) dari sesi `-p` atau Agent SDK yang panjang bertambah. Setelah setiap compaction, begitu file lebih besar dari 5 MB, Claude Code menghapus riwayat dari sebelum compaction tersebut. Melanjutkan sesi memulihkan percakapan yang sama terlepas dari apakah file dipangkas atau tidak. Setel di lingkungan tempat Anda memulai Claude Code, karena blok `env` pengaturan tidak dapat mengaktifkannya. Memerlukan Claude Code v2.1.287 atau lebih baru |

420| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Tenggat dalam milidetik sebelum Claude Code membatalkan dialog yang diteruskannya ke klien jarak jauh seperti host [Remote Control](/docs/id/remote-control) atau SDK, atau dialog persetujuan untuk [pesan lintas sesi yang ditahan](/docs/id/cross-session-messaging#control-inbound-messages); permintaan izin dan pertanyaan `AskUserQuestion` menggunakan alur mereka sendiri dan tidak diatur olehnya. Pada Claude Code v2.1.236 atau yang lebih baru, ini juga membatasi [prompt persetujuan kredit penggunaan Fable](/docs/id/model-config#fable-and-usage-credits) di tengah sesi dalam sesi yang mungkin berjalan tanpa pengawasan. [Mengontrol pesan masuk](/docs/id/cross-session-messaging#control-inbound-messages) dan [sesi non-interaktif](/docs/id/cross-session-messaging#non-interactive-sessions) mencakup aturan kedaluwarsa pesan yang ditahan secara lengkap, termasuk kasus di mana tenggat tidak berlaku. Menimpa pengaturan [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry). `0` atau nilai negatif menonaktifkan tenggat. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |426| `CLAUDE_CODE_USER_DIALOG_TIMEOUT_MS` | Tenggat dalam milidetik sebelum Claude Code membatalkan dialog yang diteruskannya ke klien jarak jauh seperti [Remote Control](/docs/id/remote-control) atau host SDK, atau dialog persetujuan untuk [pesan lintas sesi yang ditahan](/docs/id/cross-session-messaging#control-inbound-messages); permintaan izin dan pertanyaan `AskUserQuestion` menggunakan alurnya sendiri dan tidak diatur oleh variabel ini. Pada Claude Code v2.1.236 atau yang lebih baru, variabel ini juga membatasi dialog persetujuan [kredit penggunaan Fable](/docs/id/model-config#fable-and-usage-credits) di tengah sesi dalam sesi yang mungkin berjalan tanpa pengawasan. [Mengontrol pesan masuk](/docs/id/cross-session-messaging#control-inbound-messages) dan [sesi non-interaktif](/docs/id/cross-session-messaging#non-interactive-sessions) membahas aturan kedaluwarsa pesan yang ditahan secara lengkap, termasuk kasus ketika tenggat tidak berlaku. Menimpa pengaturan [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry). `0` atau nilai negatif menonaktifkan tenggat. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |

421| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Gunakan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) |427| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | Gunakan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) |

422| `CLAUDE_CODE_USE_BEDROCK` | Gunakan [Amazon Bedrock](/docs/id/amazon-bedrock) |428| `CLAUDE_CODE_USE_BEDROCK` | Gunakan [Amazon Bedrock](/docs/id/amazon-bedrock) |

423| `CLAUDE_CODE_USE_FOUNDRY` | Gunakan [Microsoft Foundry](/docs/id/microsoft-foundry) |429| `CLAUDE_CODE_USE_FOUNDRY` | Gunakan [Microsoft Foundry](/docs/id/microsoft-foundry) |

424| `CLAUDE_CODE_USE_MANTLE` | Gunakan [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) Amazon Bedrock |430| `CLAUDE_CODE_USE_MANTLE` | Gunakan [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) Amazon Bedrock |

425| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Atur ke `1` untuk menemukan perintah kustom, subagent, dan gaya output menggunakan API file Node.js alih-alih ripgrep. Atur ini jika biner ripgrep bawaan tidak tersedia atau diblokir di lingkungan Anda. Tidak memengaruhi tool Grep atau pencarian file |431| `CLAUDE_CODE_USE_NATIVE_FILE_SEARCH` | Atur ke `1` untuk menemukan perintah kustom, subagent, dan gaya output menggunakan API file Node.js alih-alih ripgrep. Atur ini jika biner ripgrep bawaan tidak tersedia atau diblokir di lingkungan Anda. Tidak memengaruhi tool Grep atau pencarian file |

426| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Mengontrol tool PowerShell. Di Windows tanpa Git Bash, tool ini diaktifkan secara otomatis; atur ke `0` untuk menonaktifkannya. Di Windows dengan Git Bash terinstal, tool ini aktif secara default untuk akun claude.ai dan Console; atur ke `1` untuk mengaktifkannya di sesi Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, atau `0` untuk mematikannya. Di Linux, macOS, dan WSL, atur ke `1` untuk mengaktifkannya, yang memerlukan `pwsh` di `PATH` Anda. Saat diaktifkan di Windows, Claude dapat menjalankan perintah PowerShell secara native alih-alih melalui Git Bash. Lihat [tool PowerShell](/docs/id/tools-reference#powershell-tool) |432| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Mengontrol tool PowerShell. Di Windows tanpa Git Bash, tool ini diaktifkan secara otomatis; atur ke `0` untuk menonaktifkannya. Di Windows dengan Git Bash terinstal, tool ini aktif secara default untuk akun claude.ai dan Console; atur ke `1` untuk mengaktifkannya dalam sesi Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, atau `0` untuk mematikannya. Di Linux, macOS, dan WSL, atur ke `1` untuk mengaktifkannya, yang memerlukan `pwsh` di `PATH` Anda. Saat diaktifkan di Windows, Claude dapat menjalankan perintah PowerShell secara native alih-alih melalui Git Bash. Lihat [tool PowerShell](/docs/id/tools-reference#powershell-tool) |

427| `CLAUDE_CODE_USE_VERTEX` | Gunakan [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) |433| `CLAUDE_CODE_USE_VERTEX` | Gunakan [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) |

428| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Atur ke jumlah milidetik [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior) menyimpan respons setiap URL yang diambil di cache. Default-nya adalah `900000`, yaitu 15 menit. Hanya menerima digit biasa; `0`, desimal, atau penulisan lain mempertahankan nilai default. Claude Code membaca nilai ini sekali per peluncuran, sehingga perubahan di blok `env` pengaturan berlaku saat Anda meluncurkan `claude` berikutnya. Memerlukan Claude Code v2.1.233 atau lebih baru |434| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Atur ke jumlah milidetik [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior) menyimpan respons setiap URL yang diambil dalam cache. Default-nya adalah `900000`, yaitu 15 menit. Hanya menerima digit biasa; `0`, desimal, atau penulisan lainnya mempertahankan default. Claude Code membaca nilai ini sekali per peluncuran, sehingga perubahan dalam blok `env` pengaturan berlaku saat Anda meluncurkan `claude` berikutnya. Memerlukan Claude Code v2.1.233 atau yang lebih baru |

429| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Batas atas dalam milidetik untuk berapa lama [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior) menunggu halaman selesai diunduh, termasuk pengalihan apa pun yang diikutinya. Unduhan yang belum selesai saat itu gagal dengan error tenggat. Default-nya adalah `300000`, yaitu lima menit. Atur ke `0` untuk menghapus batas. Hanya menerima digit biasa; desimal atau penulisan lain mempertahankan nilai default. Memerlukan Claude Code v2.1.268 atau lebih baru |435| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Batas atas dalam milidetik untuk berapa lama [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior) menunggu halaman selesai diunduh, termasuk redirect apa pun yang diikutinya. Unduhan yang belum selesai pada saat itu gagal dengan error tenggat. Default-nya adalah `300000`, yaitu lima menit. Atur ke `0` untuk menghapus batas. Hanya menerima digit biasa; desimal atau penulisan lainnya mempertahankan default. Memerlukan Claude Code v2.1.268 atau yang lebih baru |

430| `CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR` | Laju pengisian ulang [batas WebSearch](/docs/id/tools-reference#session-search-limit) sebuah sesi, dalam panggilan per jam. Default-nya adalah `100` dalam sesi terminal interaktif. Dalam sesi [non-interaktif](/docs/id/headless), default-nya adalah `0`, yang mematikan pengisian ulang. Hanya menerima digit biasa; penulisan lain dibaca sebagai tidak diatur. Memerlukan Claude Code v2.1.290 atau lebih baru |436| `CLAUDE_CODE_WEB_SEARCH_REFILLS_PER_HOUR` | Laju pengisian ulang [batas WebSearch](/docs/id/tools-reference#session-search-limit) sebuah sesi, dalam panggilan per jam. Default-nya adalah `100` dalam sesi terminal interaktif. Dalam sesi [non-interaktif](/docs/id/headless), default-nya adalah `0`, yang mematikan pengisian ulang. Hanya menerima digit biasa; penulisan lainnya dibaca sebagai tidak diatur. Memerlukan Claude Code v2.1.290 atau yang lebih baru |

431| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Saat `CLAUDE_AUTO_BACKGROUND_TASKS` diatur ke `1`, berapa lama Claude Code menunggu sebelum setiap pengingat kepada Claude untuk memeriksa [subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) yang masih berjalan. Menerima satu atau beberapa waktu tunggu yang dipisahkan koma dalam detik bulat dari `1` hingga `86400`, seperti `600` atau `600,1800,3600`. Setiap nilai adalah waktu tunggu sebelum pengingat berikutnya, dan nilai terakhir diulang. Hanya menerima digit biasa; nilai atau penulisan lain dibaca sebagai tidak diatur. Saat tidak diatur, tidak ada pengingat. Memerlukan Claude Code v2.1.283 atau lebih baru |437| `CLAUDE_CODE_WORKER_CHECKIN_SCHEDULE` | Saat `CLAUDE_AUTO_BACKGROUND_TASKS` diatur ke `1`, berapa lama Claude Code menunggu sebelum setiap pengingat kepada Claude untuk memeriksa [subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) yang masih berjalan. Menerima satu atau beberapa durasi tunggu yang dipisahkan koma dalam detik bulat dari `1` hingga `86400`, seperti `600` atau `600,1800,3600`. Setiap nilai adalah durasi tunggu sebelum pengingat berikutnya, dan nilai terakhir diulang. Hanya menerima digit biasa; nilai atau penulisan lainnya dibaca sebagai tidak diatur. Jika tidak diatur, tidak ada pengingat. Memerlukan Claude Code v2.1.283 atau yang lebih baru |

432| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Berapa banyak agent yang dijalankan sekaligus oleh satu eksekusi [workflow](/docs/id/workflows), dari `1` hingga `256`. Secara default, sebuah eksekusi menjalankan hingga 16 agent sekaligus, lebih sedikit saat Claude Code memiliki lebih sedikit CPU yang tersedia; panggilan `agent()` yang mengantre menunggu slot kosong. Transkrip setiap agent yang berjalan tetap berada di memori Claude Code, sehingga nilai yang lebih tinggi meningkatkan penggunaan memori. Hanya menerima digit biasa; nilai di luar rentang dan penulisan lain mempertahankan nilai default. Memerlukan Claude Code v2.1.269 atau lebih baru |438| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Berapa banyak agent yang dijalankan sekaligus oleh satu eksekusi [workflow](/docs/id/workflows), dari `1` hingga `256`. Secara default, satu eksekusi menjalankan hingga 16 agent sekaligus, lebih sedikit jika Claude Code memiliki lebih sedikit CPU yang tersedia; panggilan `agent()` yang mengantre menunggu slot kosong. Transkrip setiap agent yang berjalan tetap berada di memori Claude Code, sehingga nilai yang lebih tinggi meningkatkan penggunaan memori. Hanya menerima digit biasa; nilai di luar rentang dan penulisan lainnya mempertahankan default. Memerlukan Claude Code v2.1.269 atau yang lebih baru |

433| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Batas atas dalam milidetik untuk berapa lama agent [workflow](/docs/id/workflows) menunggu respons pertama dari saudara dengan prefiks yang sama dimulai sebelum mengirim permintaan pertamanya sendiri. Saat fan-out memulai beberapa agent yang berbagi [prefiks prompt cache](/docs/id/workflows#prompt-caching-in-a-fan-out), Claude Code menahan semua agent kecuali yang pertama hingga selama ini agar sisanya membaca prefiks yang sudah di-cache alih-alih masing-masing memprosesnya tanpa cache. Default `5000`. Atur ke `0` untuk menonaktifkan penantian. Saat `DISABLE_PROMPT_CACHING` diatur, agent tidak pernah menunggu. Memerlukan Claude Code v2.1.229 atau lebih baru |439| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Batas atas dalam milidetik untuk berapa lama agent [workflow](/docs/id/workflows) menunggu respons pertama dari agent saudara dengan prefiks yang sama dimulai sebelum mengirim permintaan pertamanya sendiri. Saat fan-out memulai beberapa agent yang berbagi [prefiks prompt cache](/docs/id/workflows#prompt-caching-in-a-fan-out), Claude Code menahan semua agent kecuali yang pertama hingga selama ini sehingga sisanya membaca prefiks yang ada di cache alih-alih masing-masing memprosesnya tanpa cache. Default `5000`. Atur ke `0` untuk menonaktifkan penantian. Saat `DISABLE_PROMPT_CACHING` diatur, agent tidak pernah menunggu. Memerlukan Claude Code v2.1.229 atau yang lebih baru |

434| `CLAUDE_CONFIG_DIR` | Menimpa direktori konfigurasi (default: `~/.claude`). Semua pengaturan, riwayat sesi, dan plugin disimpan di bawah path ini. Untuk kredensial, lihat [tempat Claude Code menyimpan kredensial](/docs/id/authentication#credential-management). Berguna untuk menjalankan beberapa akun secara berdampingan: misalnya, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Di file pengaturan, tulis [path absolut](#in-settings-files). Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |440| `CLAUDE_CONFIG_DIR` | Menimpa direktori konfigurasi (default: `~/.claude`). Semua pengaturan, riwayat sesi, dan plugin disimpan di bawah path ini. Untuk kredensial, lihat [tempat Claude Code menyimpan kredensial](/docs/id/authentication#credential-management). Berguna untuk menjalankan beberapa akun secara berdampingan: misalnya, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Dalam file pengaturan, tulis [path absolut](#in-settings-files). Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |

435| `CLAUDE_DISABLE_ADOPT` | Atur ke `1` untuk menghentikan pekerjaan latar belakang yang sedang berjalan alih-alih membawanya saat Anda memindahkan sesi ke latar belakang dengan menekan `←` atau dengan [`/background`](/docs/id/agent-view#from-inside-a-session). Claude Code meminta Anda mengonfirmasi sebelum memindahkan ke latar belakang, lalu menghentikan tugas yang seharusnya terbawa. Memerlukan Claude Code v2.1.195 atau lebih baru |441| `CLAUDE_DISABLE_ADOPT` | Atur ke `1` untuk menghentikan pekerjaan latar belakang yang sedang berjalan alih-alih membawanya saat Anda memindahkan sesi ke latar belakang dengan menekan `←` atau dengan [`/background`](/docs/id/agent-view#from-inside-a-session). Claude Code meminta Anda mengonfirmasi sebelum memindahkan ke latar belakang, lalu menghentikan tugas yang seharusnya dibawa. Memerlukan Claude Code v2.1.195 atau yang lebih baru |

436| `CLAUDE_EFFORT` | Diatur secara otomatis di subproses tool Bash dan perintah hook ke [tingkat effort](/docs/id/model-config#adjust-effort-level) yang berlaku saat subproses dimulai: `low`, `medium`, `high`, `xhigh`, atau `max`. Cocok dengan field `effort.level` yang diteruskan ke [hooks](/docs/id/hooks). Hanya diatur saat model saat ini mendukung parameter effort |442| `CLAUDE_EFFORT` | Diatur secara otomatis dalam subproses tool Bash dan perintah hook ke [tingkat effort](/docs/id/model-config#adjust-effort-level) yang berlaku saat subproses dimulai: `low`, `medium`, `high`, `xhigh`, atau `max`. Cocok dengan field `effort.level` yang diteruskan ke [hooks](/docs/id/hooks). Hanya diatur ketika model saat ini mendukung parameter effort |

437| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Atur ke `1` untuk memaksa mengaktifkan watchdog idle streaming tingkat byte, atau atur ke `0` untuk memaksa menonaktifkannya. `0` juga mematikan [tenggat byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada koneksi tempat tenggat tersebut berjalan. Saat tidak diatur, watchdog diaktifkan secara default untuk koneksi Anthropic API langsung dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws), serta untuk respons streaming pada koneksi [gateway](/docs/id/gateways) yang dicapai melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`; sebelum v2.1.222 watchdog ini tidak berjalan pada koneksi gateway tersebut, sehingga watchdog tingkat event dapat melaporkan macet di sana bahkan saat ping keep-alive masih tiba. Untuk timeout dan cara timer saling berinteraksi, lihat [Watchdog idle streaming](/docs/id/network-config#streaming-idle-watchdogs) |443| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Atur ke `1` untuk memaksa mengaktifkan watchdog idle streaming tingkat byte, atau atur ke `0` untuk memaksa menonaktifkannya. `0` juga mematikan [tenggat byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada koneksi tempat tenggat tersebut berjalan. Jika tidak diatur, watchdog diaktifkan secara default untuk koneksi langsung ke Anthropic API dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws), serta untuk respons streaming pada koneksi [gateway](/docs/id/gateways) yang dicapai melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`; sebelum v2.1.222 watchdog ini tidak berjalan pada koneksi gateway tersebut, sehingga watchdog tingkat event dapat melaporkan macet di sana meskipun ping keep-alive sedang diterima. Untuk timeout dan cara timer saling berinteraksi, lihat [Watchdog idle streaming](/docs/id/network-config#streaming-idle-watchdogs) |

438| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Atur ke `1` untuk mengaktifkan watchdog idle streaming tingkat byte pada respons `vnd.amazon.eventstream` Amazon Bedrock, yang juga mengaktifkan [tenggat byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada permintaan streaming Bedrock. Nonaktif secara default. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |444| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | Atur ke `1` untuk mengaktifkan watchdog idle streaming tingkat byte pada respons `vnd.amazon.eventstream` Amazon Bedrock, yang juga mengaktifkan [tenggat byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada permintaan streaming Bedrock. Nonaktif secara default. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS` |

439| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Atur ke `0` untuk memaksa menonaktifkan watchdog idle streaming tingkat event, atau atur ke `1` untuk memaksa mengaktifkannya. Saat tidak diatur, watchdog aktif secara default untuk semua penyedia. Sebelum v2.1.196, default saat tidak diatur dikontrol server pada Anthropic API langsung dan nonaktif pada penyedia lain. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; untuk timer macet lain yang berjalan bersama yang ini, lihat [Watchdog idle streaming](/docs/id/network-config#streaming-idle-watchdogs) |445| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Atur ke `0` untuk memaksa menonaktifkan watchdog idle streaming tingkat event, atau atur ke `1` untuk memaksa mengaktifkannya. Jika tidak diatur, watchdog aktif secara default untuk semua penyedia. Sebelum v2.1.196, default saat tidak diatur dikontrol oleh server pada Anthropic API langsung dan nonaktif pada penyedia lain. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; untuk timer macet lain yang berjalan bersama yang ini, lihat [Watchdog idle streaming](/docs/id/network-config#streaming-idle-watchdogs) |

440| `CLAUDE_ENV_FILE` | Path ke skrip shell yang isinya dijalankan Claude Code sebelum setiap perintah Bash dalam proses shell yang sama, sehingga ekspor di file tersebut terlihat oleh perintah. Gunakan untuk mempertahankan aktivasi virtualenv atau conda di seluruh perintah. Juga diisi secara dinamis oleh hook [SessionStart](/docs/id/hooks#persist-environment-variables), [Setup](/docs/id/hooks#setup), [CwdChanged](/docs/id/hooks#cwdchanged), dan [FileChanged](/docs/id/hooks#filechanged) |446| `CLAUDE_ENV_FILE` | Path ke skrip shell yang isinya dijalankan Claude Code sebelum setiap perintah Bash dalam proses shell yang sama, sehingga export dalam file tersebut terlihat oleh perintah. Gunakan untuk mempertahankan aktivasi virtualenv atau conda di seluruh perintah. Juga diisi secara dinamis oleh hook [SessionStart](/docs/id/hooks#persist-environment-variables), [Setup](/docs/id/hooks#setup), [CwdChanged](/docs/id/hooks#cwdchanged), dan [FileChanged](/docs/id/hooks#filechanged) |

441| `CLAUDE_JOB_DIR` | Diatur oleh Claude Code di setiap [sesi latar belakang](/docs/id/agent-view) ke direktori `~/.claude/jobs/<id>` milik sesi tersebut. Perintah shell yang dijalankan sesi mewarisinya. Tulis file sementara ke [`$CLAUDE_JOB_DIR/tmp`](/docs/id/agent-view#where-state-is-stored). Panggilan `Write` dan `Edit` Claude di sana tidak meminta izin, dan direktori dihapus saat sesi dihapus |447| `CLAUDE_JOB_DIR` | Diatur oleh Claude Code di setiap [sesi latar belakang](/docs/id/agent-view) ke direktori `~/.claude/jobs/<id>` milik sesi tersebut. Perintah shell yang dijalankan sesi mewarisinya. Tulis file sementara ke [`$CLAUDE_JOB_DIR/tmp`](/docs/id/agent-view#where-state-is-stored). Panggilan `Write` dan `Edit` Claude di sana tidak meminta izin, dan direktori dihapus saat sesi dihapus |

442| `CLAUDE_PID` | Claude Code mengatur ini ke ID prosesnya sendiri di subproses yang dibuatnya: perintah tool Bash dan PowerShell serta perintah hook. Di Linux, integrasi shell tool Bash menggunakannya untuk menolak pola `pkill` yang akan cocok dengan proses Claude Code itu sendiri; lihat [referensi error](/docs/id/errors#pkill-pattern-matches-the-claude-code-process). Baca dari skrip Anda sendiri untuk mengidentifikasi atau mengirim sinyal ke proses induk Claude Code secara sengaja. Memerlukan Claude Code v2.1.214 atau lebih baru |448| `CLAUDE_PID` | Claude Code mengatur ini ke ID prosesnya sendiri dalam subproses yang dibuatnya: perintah tool Bash dan PowerShell serta perintah hook. Di Linux, integrasi shell tool Bash menggunakannya untuk menolak pola `pkill` yang akan mencocokkan proses Claude Code itu sendiri; lihat [referensi error](/docs/id/errors#pkill-pattern-matches-the-claude-code-process). Baca dari skrip Anda sendiri untuk mengidentifikasi atau mengirim sinyal ke proses induk Claude Code secara sengaja. Memerlukan Claude Code v2.1.214 atau yang lebih baru |

443| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefiks untuk nama sesi [Remote Control](/docs/id/remote-control) yang dibuat otomatis saat tidak ada nama eksplisit yang diberikan. Default-nya adalah hostname mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Flag CLI `--remote-control-session-name-prefix` mengatur nilai yang sama untuk satu pemanggilan |449| `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` | Prefiks untuk nama sesi [Remote Control](/docs/id/remote-control) yang dibuat otomatis ketika tidak ada nama eksplisit yang diberikan. Default-nya adalah hostname mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Flag CLI `--remote-control-session-name-prefix` mengatur nilai yang sama untuk satu pemanggilan |

444| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Tenggat dalam milidetik untuk byte respons pertama dari permintaan streaming, pada koneksi tempat [tenggat byte pertama](/docs/id/network-config#streaming-idle-watchdogs) berjalan. Untuk cara Claude Code membatasinya, waktu tambahan yang ditambahkan untuk body permintaan besar, dan cara memilih tenggat saat Anda tidak mengatur ini, lihat [No response from API](/docs/id/errors#no-response-from-api). Memerlukan Claude Code v2.1.242 atau lebih baru |450| `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` | Tenggat dalam milidetik untuk byte respons pertama dari permintaan streaming, pada koneksi tempat [tenggat byte pertama](/docs/id/network-config#streaming-idle-watchdogs) berjalan. Untuk cara Claude Code membatasinya, waktu tambahan yang ditambahkannya untuk body permintaan yang besar, dan cara memilih tenggat saat Anda tidak mengatur ini, lihat [No response from API](/docs/id/errors#no-response-from-api). Memerlukan Claude Code v2.1.242 atau yang lebih baru |

445| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout dalam milidetik sebelum watchdog idle streaming tingkat event dan tingkat byte menutup koneksi yang macet. Saat Anda mengatur variabel ini secara eksplisit, minimumnya adalah `300000` (5 menit); nilai yang lebih rendah dibatasi secara diam-diam untuk mengakomodasi jeda extended thinking dan buffering proxy, dan watchdog tingkat byte membatasi nilai ini pada 30 menit. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` diutamakan daripada variabel ini untuk watchdog tingkat byte. Untuk default per watchdog saat tidak diatur, lihat [Watchdog idle streaming](/docs/id/network-config#streaming-idle-watchdogs) |451| `CLAUDE_STREAM_IDLE_TIMEOUT_MS` | Timeout dalam milidetik sebelum watchdog idle streaming tingkat event dan tingkat byte menutup koneksi yang macet. Saat Anda mengatur variabel ini secara eksplisit, minimumnya adalah `300000` (5 menit); nilai yang lebih rendah dibatasi secara diam-diam untuk menampung jeda extended thinking dan buffering proxy, dan watchdog tingkat byte membatasi nilainya pada 30 menit. `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` diutamakan daripada variabel ini untuk watchdog tingkat byte. Untuk default masing-masing watchdog saat tidak diatur, lihat [Watchdog idle streaming](/docs/id/network-config#streaming-idle-watchdogs) |

446| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Dihapus di v2.1.260 dan sekarang tidak berpengaruh. Sebelumnya membatasi berapa lama [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) yang dimulai oleh [subagent](/docs/id/sub-agents) dapat berjalan, dalam milidetik, dengan default 60 menit. Lihat [aturan masa hidup perintah latar belakang](/docs/id/tools-reference#background-commands) |452| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | Dihapus di v2.1.260 dan sekarang tidak berpengaruh. Sebelumnya membatasi berapa lama [perintah shell latar belakang](/docs/id/interactive-mode#background-bash-commands) yang dimulai oleh [subagent](/docs/id/sub-agents) dapat berjalan, dalam milidetik, dengan default 60 menit. Lihat [aturan masa hidup perintah latar belakang](/docs/id/tools-reference#background-commands) |

447| `DEBUG` | Atur ke `1` untuk mengaktifkan mode debug, setara dengan meluncurkan dengan [`--debug`](/docs/id/cli-reference#cli-flags). Log debug ditulis ke `~/.claude/debug/<session-id>.txt`, atau ke path yang diatur oleh `CLAUDE_CODE_DEBUG_LOGS_DIR`. Hanya nilai truthy `1`, `true`, `yes`, dan `on` yang mengaktifkan mode debug, sehingga pola namespace seperti `DEBUG=express:*` yang diatur untuk tool lain tidak memicunya |453| `DEBUG` | Atur ke `1` untuk mengaktifkan mode debug, setara dengan meluncurkan menggunakan [`--debug`](/docs/id/cli-reference#cli-flags). Log debug ditulis ke `~/.claude/debug/<session-id>.txt`, atau ke path yang diatur oleh `CLAUDE_CODE_DEBUG_LOGS_DIR`. Hanya nilai truthy `1`, `true`, `yes`, dan `on` yang mengaktifkan mode debug, sehingga pola namespace seperti `DEBUG=express:*` yang diatur untuk tool lain tidak memicunya |

448| `DISABLE_AUTOUPDATER` | Atur ke `1` untuk menonaktifkan pembaruan latar belakang otomatis. `claude update` manual tetap berfungsi. Gunakan `DISABLE_UPDATES` untuk memblokir keduanya |454| `DISABLE_AUTOUPDATER` | Atur ke `1` untuk menonaktifkan pembaruan latar belakang otomatis. `claude update` manual tetap berfungsi. Gunakan `DISABLE_UPDATES` untuk memblokir keduanya |

449| `DISABLE_AUTO_COMPACT` | Atur ke `1` untuk menonaktifkan compaction otomatis saat mendekati batas konteks. Perintah `/compact` manual tetap tersedia. Gunakan saat Anda ingin kontrol eksplisit atas kapan compaction terjadi. Menimpa pengaturan [`autoCompactEnabled`](/docs/id/settings-reference#autocompactenabled) |455| `DISABLE_AUTO_COMPACT` | Atur ke `1` untuk menonaktifkan compaction otomatis saat mendekati batas konteks. Perintah manual `/compact` tetap tersedia. Gunakan ketika Anda menginginkan kontrol eksplisit atas kapan compaction terjadi. Menimpa pengaturan [`autoCompactEnabled`](/docs/id/settings-reference#autocompactenabled) |

450| `DISABLE_COMPACT` | Atur ke `1` untuk menonaktifkan semua compaction: baik compaction otomatis maupun perintah `/compact` manual |456| `DISABLE_COMPACT` | Atur ke `1` untuk menonaktifkan semua compaction: baik compaction otomatis maupun perintah manual `/compact` |

451| `DISABLE_COST_WARNINGS` | Atur ke `1` untuk menonaktifkan pesan peringatan biaya |457| `DISABLE_COST_WARNINGS` | Atur ke `1` untuk menonaktifkan pesan peringatan biaya |

452| `DISABLE_DOCTOR_COMMAND` | Atur ke `1` untuk menyembunyikan skill pemeriksaan penyiapan [`/doctor`](/docs/id/commands#all-commands) dan alias `/checkup`-nya. Berguna untuk deployment terkelola di mana pengguna tidak boleh menjalankan diagnostik penyiapan dari sesi. Tidak memengaruhi perintah terminal `claude doctor`. Sebelum v2.1.205, variabel ini menyembunyikan perintah layar diagnostik `/doctor` |458| `DISABLE_DOCTOR_COMMAND` | Atur ke `1` untuk menyembunyikan skill pemeriksaan penyiapan [`/doctor`](/docs/id/commands#all-commands) dan alias `/checkup`-nya. Berguna untuk deployment terkelola di mana pengguna tidak boleh menjalankan diagnostik penyiapan dari sesi. Tidak memengaruhi perintah terminal `claude doctor`. Sebelum v2.1.205, variabel ini menyembunyikan perintah layar diagnostik `/doctor` |

453| `DISABLE_ERROR_REPORTING` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk menolak pelaporan error. **Mengaturnya ke `0` atau `false` tetap menolak**, tidak seperti kebanyakan variabel aktif/nonaktif; hapus pengaturan variabel untuk mengaktifkan kembali pelaporan error |459| `DISABLE_ERROR_REPORTING` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk menolak pelaporan error. **Mengaturnya ke `0` atau `false` tetap menolak**, tidak seperti kebanyakan variabel on/off; hapus pengaturan variabel untuk mengaktifkan kembali pelaporan error |

454| `DISABLE_EXTRA_USAGE_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/usage-credits` yang memungkinkan pengguna membeli penggunaan tambahan di luar rate limit |460| `DISABLE_EXTRA_USAGE_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/usage-credits` yang memungkinkan pengguna membeli penggunaan tambahan di luar rate limit |

455| `DISABLE_FEEDBACK_COMMAND` | Atur ke `1` untuk menonaktifkan perintah `/feedback` dan [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior). Juga menonaktifkan `/bug` dan `/share`, yang melapor melalui jalur yang sama; sebelum v2.1.212 keduanya adalah alias dari `/feedback`, sehingga perintah dinonaktifkan di bawah semua nama. Nama lama `DISABLE_BUG_COMMAND` juga diterima |461| `DISABLE_FEEDBACK_COMMAND` | Atur ke `1` untuk menonaktifkan perintah `/feedback` dan [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior). Juga menonaktifkan `/bug` dan `/share`, yang melaporkan melalui jalur yang sama; sebelum v2.1.212 keduanya adalah alias dari `/feedback`, sehingga perintah dinonaktifkan di bawah semua nama. Nama lama `DISABLE_BUG_COMMAND` juga diterima |

456| `DISABLE_GROWTHBOOK` | Atur ke `1` atau `true` untuk menonaktifkan pengambilan feature flag GrowthBook dan menggunakan default kode untuk setiap flag. Ini membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan feature flag](#features-that-need-feature-flag-fetching) tidak tersedia. Mengaturnya ke `0` atau `false` membiarkan pengambilan tetap aktif. Pencatatan event telemetri tetap aktif kecuali `DISABLE_TELEMETRY` juga diatur |462| `DISABLE_GROWTHBOOK` | Atur ke `1` atau `true` untuk menonaktifkan pengambilan feature flag GrowthBook dan menggunakan default kode untuk setiap flag. Ini membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan feature flag](#features-that-need-feature-flag-fetching) tidak tersedia. Mengaturnya ke `0` atau `false` membiarkan pengambilan tetap aktif. Pencatatan event telemetri tetap aktif kecuali `DISABLE_TELEMETRY` juga diatur |

457| `DISABLE_INSTALLATION_CHECKS` | Atur ke `1` untuk menonaktifkan peringatan instalasi. Gunakan hanya saat mengelola lokasi instalasi secara manual, karena ini dapat menutupi masalah pada instalasi standar |463| `DISABLE_INSTALLATION_CHECKS` | Atur ke `1` untuk menonaktifkan peringatan instalasi. Gunakan hanya saat mengelola lokasi instalasi secara manual, karena ini dapat menyembunyikan masalah pada instalasi standar |

458| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/install-github-app`. Sudah tersembunyi saat menggunakan penyedia pihak ketiga (Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry) |464| `DISABLE_INSTALL_GITHUB_APP_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/install-github-app`. Sudah disembunyikan saat menggunakan penyedia pihak ketiga (Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry) |

459| `DISABLE_INTERLEAVED_THINKING` | Atur ke `1` untuk mencegah pengiriman header beta interleaved-thinking. Berguna saat gateway LLM atau penyedia Anda tidak mendukung [interleaved thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |465| `DISABLE_INTERLEAVED_THINKING` | Atur ke `1` untuk mencegah pengiriman header beta interleaved-thinking. Berguna ketika gateway LLM atau penyedia Anda tidak mendukung [interleaved thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking#interleaved-thinking) |

460| `DISABLE_LOGIN_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/login`. Berguna saat autentikasi ditangani secara eksternal melalui kunci API atau `apiKeyHelper` |466| `DISABLE_LOGIN_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/login`. Berguna ketika autentikasi ditangani secara eksternal melalui kunci API atau `apiKeyHelper` |

461| `DISABLE_LOGOUT_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/logout` |467| `DISABLE_LOGOUT_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/logout` |

462| `DISABLE_PROMPT_CACHING` | Atur ke `1` untuk menonaktifkan [prompt caching](/docs/id/prompt-caching#disable-prompt-caching) untuk semua model (diutamakan daripada pengaturan per model) |468| `DISABLE_PROMPT_CACHING` | Atur ke `1` untuk menonaktifkan [prompt caching](/docs/id/prompt-caching#disable-prompt-caching) untuk semua model (diutamakan daripada pengaturan per model) |

463| `DISABLE_PROMPT_CACHING_FABLE` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Fable |469| `DISABLE_PROMPT_CACHING_FABLE` | Atur ke `1` untuk menonaktifkan prompt caching untuk model Fable |

464| `DISABLE_PROMPT_CACHING_HAIKU` | Atur ke `1` untuk menonaktifkan prompt caching untuk [model Haiku default](/docs/id/prompt-caching#disable-prompt-caching), di mana pun model tersebut berjalan |470| `DISABLE_PROMPT_CACHING_HAIKU` | Atur ke `1` untuk menonaktifkan prompt caching untuk [model Haiku default](/docs/id/prompt-caching#disable-prompt-caching), di mana pun model tersebut berjalan |

465| `DISABLE_PROMPT_CACHING_OPUS` | Atur ke `1` untuk menonaktifkan prompt caching untuk [model Opus default](/docs/id/prompt-caching#disable-prompt-caching) |471| `DISABLE_PROMPT_CACHING_OPUS` | Atur ke `1` untuk menonaktifkan prompt caching untuk [model Opus default](/docs/id/prompt-caching#disable-prompt-caching) |

466| `DISABLE_PROMPT_CACHING_SONNET` | Atur ke `1` untuk menonaktifkan prompt caching untuk [model Sonnet default](/docs/id/prompt-caching#disable-prompt-caching) |472| `DISABLE_PROMPT_CACHING_SONNET` | Atur ke `1` untuk menonaktifkan prompt caching untuk [model Sonnet default](/docs/id/prompt-caching#disable-prompt-caching) |

467| `DISABLE_TELEMETRY` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk menolak telemetri. **Mengaturnya ke `0` atau `false` tetap menolak**, tidak seperti kebanyakan variabel aktif/nonaktif; hapus pengaturan variabel untuk mengaktifkan kembali telemetri. Event telemetri tidak menyertakan data pengguna seperti kode, path file, atau perintah Bash. Juga menonaktifkan [pengambilan feature flag](#features-that-need-feature-flag-fetching). Lihat [Matikan telemetri untuk organisasi Anda](/docs/id/managed-settings#turn-telemetry-off-for-your-organization) |473| `DISABLE_TELEMETRY` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk menolak telemetri. **Mengaturnya ke `0` atau `false` tetap menolak**, tidak seperti kebanyakan variabel on/off; hapus pengaturan variabel untuk mengaktifkan kembali telemetri. Event telemetri tidak menyertakan data pengguna seperti kode, path file, atau perintah Bash. Juga menonaktifkan [pengambilan feature flag](#features-that-need-feature-flag-fetching). Lihat [Matikan telemetri untuk organisasi Anda](/docs/id/managed-settings#turn-telemetry-off-for-your-organization) |

468| `DISABLE_UPDATES` | Atur ke `1` untuk memblokir semua pembaruan termasuk `claude update` dan `claude install` manual. Lebih ketat daripada `DISABLE_AUTOUPDATER`. Gunakan saat mendistribusikan Claude Code melalui saluran Anda sendiri dan pengguna tidak boleh memperbarui sendiri |474| `DISABLE_UPDATES` | Atur ke `1` untuk memblokir semua pembaruan termasuk `claude update` dan `claude install` manual. Lebih ketat daripada `DISABLE_AUTOUPDATER`. Gunakan saat mendistribusikan Claude Code melalui saluran Anda sendiri dan pengguna tidak boleh memperbarui sendiri |

469| `DISABLE_UPGRADE_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/upgrade` |475| `DISABLE_UPGRADE_COMMAND` | Atur ke `1` untuk menyembunyikan perintah `/upgrade` |

470| `DO_NOT_TRACK` | Atur ke `1` untuk menolak telemetri, dengan efek yang sama seperti `DISABLE_TELEMETRY`, termasuk pada [pengambilan feature flag](#features-that-need-feature-flag-fetching). Claude Code membaca variabel ini sebagai boolean standar, sehingga `0` membiarkan telemetri tetap aktif, dan menghormatinya sebagai konvensi lintas tool yang dikenali oleh banyak CLI pengembang |476| `DO_NOT_TRACK` | Atur ke `1` untuk menolak telemetri, dengan efek yang sama seperti `DISABLE_TELEMETRY`, termasuk pada [pengambilan feature flag](#features-that-need-feature-flag-fetching). Claude Code membaca variabel ini sebagai boolean standar, sehingga `0` membiarkan telemetri tetap aktif, dan menghormatinya sebagai konvensi lintas tool yang dikenali oleh banyak CLI pengembang |

471| `ENABLE_BETA_TRACING_DETAILED` | Atur ke `1`, dan atur `BETA_TRACING_ENDPOINT` ke endpoint kolektor OTLP/HTTP Anda, untuk mengaktifkan [tracing beta terperinci](/docs/id/monitoring-usage#traces-beta), yang menambahkan atribut span yang memuat konten dan span `claude_code.hook`. Sesi CLI interaktif juga mengharuskan organisasi Anda masuk dalam allowlist untuk beta tersebut. Kedua variabel diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |477| `ENABLE_BETA_TRACING_DETAILED` | Atur ke `1`, dan atur `BETA_TRACING_ENDPOINT` ke endpoint kolektor OTLP/HTTP Anda, untuk mengaktifkan [tracing beta terperinci](/docs/id/monitoring-usage#traces-beta), yang menambahkan atribut span yang memuat konten dan span `claude_code.hook`. Sesi CLI interaktif juga memerlukan organisasi Anda masuk allowlist untuk beta. Kedua variabel diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |

472| `ENABLE_CLAUDEAI_MCP_SERVERS` | Atur ke `false` untuk menghentikan Claude Code mengambil [server MCP claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai). Diaktifkan secara default untuk pengguna yang sudah masuk. Untuk menonaktifkan per proyek atau per organisasi, atur [`disableClaudeAiConnectors`](/docs/id/settings-reference#disableclaudeaiconnectors) di pengaturan sebagai gantinya |478| `ENABLE_CLAUDEAI_MCP_SERVERS` | Atur ke `false` untuk menghentikan Claude Code mengambil [server MCP claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai). Diaktifkan secara default untuk pengguna yang sudah masuk. Untuk menonaktifkan per proyek atau per organisasi, atur [`disableClaudeAiConnectors`](/docs/id/settings-reference#disableclaudeaiconnectors) di pengaturan sebagai gantinya |

473| `ENABLE_PROMPT_CACHING_1H` | Atur ke `1` untuk meminta [TTL prompt cache](/docs/id/prompt-caching#cache-lifetime) 1 jam alih-alih default 5 menit. Ditujukan untuk pengguna kunci API, [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Pengguna langganan dalam penggunaan yang disertakan menerima TTL 1 jam secara otomatis pada [percakapan utama](/docs/id/prompt-caching#which-ttl-each-request-gets). Pengguna langganan yang menggunakan [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) dapat mengaturnya untuk mempertahankan TTL 1 jam. Penulisan cache 1 jam ditagih dengan tarif lebih tinggi. Untuk memilih TTL per kelompok permintaan, gunakan `CLAUDE_CODE_PROMPT_CACHE_TTL` dan `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, yang diutamakan daripada variabel ini |479| `ENABLE_PROMPT_CACHING_1H` | Atur ke `1` untuk meminta [TTL prompt cache](/docs/id/prompt-caching#cache-lifetime) 1 jam alih-alih default 5 menit. Ditujukan untuk pengguna kunci API, [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Pengguna langganan dalam penggunaan yang disertakan menerima TTL 1 jam secara otomatis pada [percakapan utama](/docs/id/prompt-caching#which-ttl-each-request-gets). Pengguna langganan yang memakai [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) dapat mengaturnya untuk mempertahankan TTL 1 jam. Penulisan cache 1 jam ditagih dengan tarif lebih tinggi. Untuk memilih TTL per kelompok permintaan, gunakan `CLAUDE_CODE_PROMPT_CACHE_TTL` dan `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, yang diutamakan daripada variabel ini |

474| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Gunakan `ENABLE_PROMPT_CACHING_1H` sebagai gantinya |480| `ENABLE_PROMPT_CACHING_1H_BEDROCK` | Deprecated. Gunakan `ENABLE_PROMPT_CACHING_1H` sebagai gantinya |

475| `ENABLE_TOOL_SEARCH` | Mengontrol [pencarian tool MCP](/docs/id/mcp#scale-with-mcp-tool-search). Saat tidak diatur, Claude Code menunda semua tool MCP secara default. Claude Code tetap memuatnya di awal pada model Google Cloud's Agent Platform yang lebih lama dari generasi Claude 4.5, pada deployment Microsoft Foundry yang di-host di Azure, dan saat `ANTHROPIC_BASE_URL` menunjuk ke host non-first-party. `true` selalu menunda dan mengirim header beta, kecuali pada model Agent Platform dan deployment Microsoft Foundry yang sama; permintaan gagal pada proxy yang tidak mendukung `tool_reference`. `auto` memuat di awal saat definisi tool muat dalam 10% konteks. `auto:N` mengatur ambang kustom, seperti `auto:5` untuk 5%. `false` memuat semua tool di awal. Nilai yang Anda atur sendiri diabaikan saat `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` diatur. Sebelum v2.1.221, Claude Code menonaktifkan pencarian tool untuk semua model di Google Cloud's Agent Platform kecuali Anda mengatur variabel ini ke `true` |481| `ENABLE_TOOL_SEARCH` | Mengontrol [pencarian tool MCP](/docs/id/mcp#scale-with-mcp-tool-search). Jika tidak diatur, Claude Code menunda semua tool MCP secara default. Claude Code tetap memuatnya di awal pada model Google Cloud's Agent Platform yang lebih lama dari generasi Claude 4.5, pada deployment Microsoft Foundry yang di-host di Azure, dan ketika `ANTHROPIC_BASE_URL` menunjuk ke host non-first-party. `true` selalu menunda dan mengirim header beta, kecuali pada model Agent Platform dan deployment Microsoft Foundry yang sama tersebut; permintaan gagal pada proxy yang tidak mendukung `tool_reference`. `auto` memuat di awal ketika definisi tool muat dalam 10% konteks. `auto:N` mengatur ambang kustom, seperti `auto:5` untuk 5%. `false` memuat semua tool di awal. Nilai yang Anda atur sendiri diabaikan ketika `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` diatur. Sebelum v2.1.221, Claude Code menonaktifkan pencarian tool untuk semua model di Google Cloud's Agent Platform kecuali Anda mengatur variabel ini ke `true` |

476| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, agar Claude Code berhenti mencoba ulang pada error overload berulang untuk setiap model saat tidak ada model fallback yang dikonfigurasi. **Mengaturnya ke `0` atau `false` tetap mengaktifkan ini**, tidak seperti kebanyakan variabel aktif/nonaktif; hapus pengaturan variabel untuk memulihkan perilaku retry default. Tanpanya, Claude Code berhenti mencoba ulang dengan cara ini pada model yang dikenalinya sebagai model Opus, Fable, atau Mythos saat Anda melakukan autentikasi dengan kunci API atau [penyedia pihak ketiga](/docs/id/third-party-integrations) alih-alih langganan Claude. Pada Claude Code v2.1.160 atau lebih baru, Claude Code beralih ke [rantai model fallback](/docs/id/model-config#fallback-model-chains) yang Anda konfigurasi pada error overload berulang untuk model utama apa pun, sehingga variabel ini tidak memengaruhi peralihan ke model fallback |482| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk membuat Claude Code berhenti mencoba ulang pada error overload berulang untuk setiap model ketika tidak ada model fallback yang dikonfigurasi. **Mengaturnya ke `0` atau `false` tetap mengaktifkan ini**, tidak seperti kebanyakan variabel on/off; hapus pengaturan variabel untuk memulihkan perilaku retry default. Tanpanya, Claude Code berhenti mencoba ulang dengan cara ini pada model yang dikenalinya sebagai model Opus, Fable, atau Mythos ketika Anda melakukan autentikasi dengan kunci API atau [penyedia pihak ketiga](/docs/id/third-party-integrations) alih-alih langganan Claude. Pada Claude Code v2.1.160 atau yang lebih baru, Claude Code beralih ke [rantai model fallback](/docs/id/model-config#fallback-model-chains) yang Anda konfigurasikan pada error overload berulang untuk model utama apa pun, sehingga variabel ini tidak memengaruhi peralihan ke model fallback |

477| `FORCE_AUTOUPDATE_PLUGINS` | Atur ke `1` untuk memaksa pembaruan otomatis plugin bahkan saat pembaru otomatis utama dinonaktifkan melalui `DISABLE_AUTOUPDATER` |483| `FORCE_AUTOUPDATE_PLUGINS` | Atur ke `1` untuk memaksa pembaruan otomatis plugin bahkan ketika auto-updater utama dinonaktifkan melalui `DISABLE_AUTOUPDATER` |

478| `FORCE_HYPERLINK` | Atur ke `1` untuk mengaktifkan hyperlink OSC 8 yang dapat diklik saat terminal Anda mendukungnya tetapi tidak terdeteksi otomatis, atau `0` untuk menonaktifkannya. Saat tidak diatur, Claude Code mengaktifkan hyperlink hanya saat mendeteksi dukungan terminal. Claude Code mengurai nilai ini sebagai angka, bukan Boolean, sehingga nilai seperti `false`, `no`, atau `off` justru mengaktifkan hyperlink alih-alih menonaktifkannya. [Lencana PR atau merge request](/docs/id/interactive-mode#pr-review-status) di footer ditampilkan sebagai hyperlink bahkan saat Claude Code tidak dapat mendeteksi dukungan terminal, seperti melalui SSH. Atur `0` untuk menampilkan lencana sebagai teks biasa |484| `FORCE_HYPERLINK` | Atur ke `1` untuk mengaktifkan hyperlink OSC 8 yang dapat diklik ketika terminal Anda mendukungnya tetapi tidak terdeteksi otomatis, atau `0` untuk menonaktifkannya. Jika tidak diatur, Claude Code mengaktifkan hyperlink hanya ketika mendeteksi dukungan terminal. Claude Code mengurai nilai ini sebagai angka, bukan Boolean, sehingga nilai seperti `false`, `no`, atau `off` justru mengaktifkan hyperlink alih-alih menonaktifkannya. [Lencana PR atau merge request](/docs/id/interactive-mode#pr-review-status) di footer ditampilkan sebagai hyperlink bahkan ketika Claude Code tidak dapat mendeteksi dukungan terminal, seperti melalui SSH. Atur `0` untuk menampilkan lencana sebagai teks biasa |

479| `FORCE_PROMPT_CACHING_5M` | Atur ke `1` untuk memaksa TTL prompt cache 5 menit bahkan saat TTL 1 jam seharusnya berlaku. Menimpa `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, serta pengaturan `promptCacheTtl` dan `subagentPromptCacheTtl` |485| `FORCE_PROMPT_CACHING_5M` | Atur ke `1` untuk memaksa TTL prompt cache 5 menit bahkan ketika TTL 1 jam seharusnya berlaku. Menimpa `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, serta pengaturan `promptCacheTtl` dan `subagentPromptCacheTtl` |

480| `HTTP_PROXY` | Tentukan server proxy HTTP untuk koneksi jaringan |486| `HTTP_PROXY` | Menentukan server proxy HTTP untuk koneksi jaringan |

481| `HTTPS_PROXY` | Tentukan server proxy HTTPS untuk koneksi jaringan |487| `HTTPS_PROXY` | Menentukan server proxy HTTPS untuk koneksi jaringan |

482| `IS_DEMO` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk mengaktifkan mode demo: menyembunyikan email dan nama organisasi Anda dari header dan output `/status`, serta melewati onboarding. **Mengaturnya ke `0` atau `false` tetap mengaktifkan mode demo**, tidak seperti kebanyakan variabel aktif/nonaktif; hapus pengaturan variabel untuk mematikannya. Berguna saat melakukan streaming atau merekam sesi |488| `IS_DEMO` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk mengaktifkan mode demo: menyembunyikan email dan nama organisasi Anda dari header dan output `/status`, serta melewati onboarding. **Mengaturnya ke `0` atau `false` tetap mengaktifkan mode demo**, tidak seperti kebanyakan variabel on/off; hapus pengaturan variabel untuk mematikannya. Berguna saat melakukan streaming atau merekam sesi |

483| `MAX_MCP_OUTPUT_TOKENS` | Jumlah maksimum token yang diizinkan dalam respons tool MCP (default: 25000). Claude Code menampilkan peringatan saat output melebihi 10.000 token. Tool yang mendeklarasikan [`anthropic/maxResultSizeChars`](/docs/id/mcp#raise-the-limit-for-a-specific-tool) menggunakan batas karakter tersebut untuk konten teks, tetapi konten gambar dari tool tersebut tetap tunduk pada variabel ini. Hasil teks yang berhasil dan lebih panjang dari 50.000 karakter dari tool tanpa anotasi tersebut [disimpan ke file](/docs/id/mcp#mcp-output-limits-and-warnings) terlepas dari variabel ini |489| `MAX_MCP_OUTPUT_TOKENS` | Jumlah maksimum token yang diizinkan dalam respons tool MCP (default: 25000). Claude Code menampilkan peringatan ketika output melebihi 10.000 token. Tool yang mendeklarasikan [`anthropic/maxResultSizeChars`](/docs/id/mcp#raise-the-limit-for-a-specific-tool) menggunakan batas karakter tersebut untuk konten teks, tetapi konten gambar dari tool tersebut tetap tunduk pada variabel ini. Hasil teks yang berhasil dan lebih panjang dari 50.000 karakter dari tool tanpa anotasi tersebut [disimpan ke file](/docs/id/mcp#mcp-output-limits-and-warnings) terlepas dari variabel ini |

484| `MAX_STRUCTURED_OUTPUT_RETRIES` | Jumlah percobaan yang diizinkan Claude Code saat respons model gagal validasi terhadap [`--json-schema`](/docs/id/cli-reference#cli-flags) dalam mode non-interaktif dengan flag `-p`; setelah sejumlah percobaan gagal tanpa output yang valid, eksekusi gagal. Batas yang sama berlaku saat output terstruktur subagent [workflow](/docs/id/workflows) gagal validasi. Default-nya 5, yaitu satu percobaan pertama ditambah empat retry |490| `MAX_STRUCTURED_OUTPUT_RETRIES` | Jumlah percobaan yang diizinkan Claude Code ketika respons model gagal validasi terhadap [`--json-schema`](/docs/id/cli-reference#cli-flags) dalam mode non-interaktif dengan flag `-p`; setelah sejumlah percobaan gagal tanpa output yang valid, eksekusi gagal. Batas yang sama berlaku ketika output terstruktur subagent [workflow](/docs/id/workflows) gagal validasi. Default-nya 5, yaitu percobaan pertama ditambah empat retry |

485| `MAX_THINKING_TOKENS` | Anggaran token tetap untuk [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code membatasinya pada satu token di bawah token output maksimum permintaan dan tidak pernah di bawah 1.024. Lihat `CLAUDE_CODE_MAX_OUTPUT_TOKENS` untuk cara batas tersebut diatur. Saat tidak diatur dan thinking diaktifkan, model dengan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) memilih kedalaman thinking-nya sendiri, dan model lain menggunakan batas tersebut. Atur ke `0` untuk menonaktifkan thinking pada Anthropic API, kecuali pada Opus 5.5, Sonnet 5.5, Haiku 5.5, dan model Fable, yang thinking-nya tidak dapat dimatikan. Pada [penyedia pihak ketiga](/docs/id/third-party-integrations), `0` menghilangkan parameter `thinking` sebagai gantinya. Dengan thinking dimatikan pada Anthropic API, Claude Code mengirim effort `high` alih-alih level yang lebih tinggi ke model yang diketahuinya [tidak menerima kombinasi tersebut](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5. Untuk nilai positif, Claude Code mengabaikan angka itu sendiri pada model penalaran adaptif, kecuali saat `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` mematikan penalaran adaptif |491| `MAX_THINKING_TOKENS` | Anggaran token tetap untuk [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code membatasinya pada satu token di bawah max output tokens permintaan dan tidak pernah di bawah 1.024. Lihat `CLAUDE_CODE_MAX_OUTPUT_TOKENS` untuk cara batas tersebut diatur. Jika tidak diatur dan thinking diaktifkan, model dengan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) memilih kedalaman thinking-nya sendiri, dan model lain menggunakan batas tersebut. Atur ke `0` untuk menonaktifkan thinking pada Anthropic API, kecuali pada Opus 5.5, Sonnet 5.5, Haiku 5.5, dan model Fable, yang thinking-nya tidak dapat dimatikan. Pada [penyedia pihak ketiga](/docs/id/third-party-integrations), `0` justru menghilangkan parameter `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](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5. Untuk nilai positif, Claude Code mengabaikan angka itu sendiri pada model penalaran adaptif, kecuali ketika `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` mematikan penalaran adaptif |

486| `MCP_CLIENT_SECRET` | Client secret OAuth untuk server MCP yang memerlukan [kredensial yang telah dikonfigurasi sebelumnya](/docs/id/mcp#use-pre-configured-oauth-credentials). Menghindari prompt interaktif saat menambahkan server dengan `--client-secret` |492| `MCP_CLIENT_SECRET` | Client secret OAuth untuk server MCP yang memerlukan [kredensial yang telah dikonfigurasi sebelumnya](/docs/id/mcp#use-pre-configured-oauth-credentials). Menghindari prompt interaktif saat menambahkan server dengan `--client-secret` |

487| `MCP_CONNECTION_NONBLOCKING` | Mengontrol apakah startup menunggu server MCP terhubung sebelum kueri pertama. Startup MCP bersifat non-blocking secara default: server terhubung di latar belakang dan tool-nya tersedia saat selesai. Atur ke `0` agar Claude Code menunggu server terhubung sebelum kueri pertama. Server yang dikonfigurasi dengan [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral) tetap membuat startup menunggu, kecuali saat dilayani dari [discovery cache](/docs/id/mcp#server-status-detail), karena tool-nya harus ada saat prompt pertama dibangun. Dalam mode non-interaktif (`-p`) tanpa `--input-format stream-json`, Claude Code juga menunggu server yang masih tertunda sebelum giliran pertama terlepas dari variabel ini. Saat Anda meneruskan [`--mcp-config`](/docs/id/cli-reference#cli-flags) secara eksplisit, penantian memiliki tenggat yang lebih panjang; lihat entri flag tersebut untuk pengecualian server yang di-cache |493| `MCP_CONNECTION_NONBLOCKING` | Mengontrol apakah startup menunggu server MCP terhubung sebelum kueri pertama. Startup MCP bersifat non-blocking secara default: server terhubung di latar belakang dan tool-nya menjadi tersedia saat selesai. Atur ke `0` untuk membuat Claude Code menunggu server terhubung sebelum kueri pertama. Server yang dikonfigurasi dengan [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral) tetap membuat startup menunggu, kecuali saat disajikan dari [discovery cache](/docs/id/mcp#server-status-detail), karena tool-nya harus ada saat prompt pertama dibuat. Dalam mode non-interaktif (`-p`) tanpa `--input-format stream-json`, Claude Code juga menunggu server yang masih tertunda sebelum giliran pertama terlepas dari variabel ini. Saat Anda meneruskan [`--mcp-config`](/docs/id/cli-reference#cli-flags) secara eksplisit, penantian memiliki tenggat yang lebih lama; lihat entri flag tersebut untuk pengecualian server yang di-cache |

488| `MCP_CONNECT_TIMEOUT_MS` | Berapa lama startup MCP yang blocking menunggu, dalam milidetik, batch koneksi sebelum mengambil snapshot daftar tool (default: 5000). Berlaku saat `MCP_CONNECTION_NONBLOCKING=0` atau untuk server yang ditandai [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral). Server yang masih tertunda saat tenggat tetap melanjutkan koneksi di latar belakang. Berbeda dari `MCP_TIMEOUT`, yang membatasi percobaan koneksi masing-masing server |494| `MCP_CONNECT_TIMEOUT_MS` | Berapa lama startup MCP yang blocking menunggu, dalam milidetik, untuk batch koneksi sebelum mengambil snapshot daftar tool (default: 5000). Berlaku ketika `MCP_CONNECTION_NONBLOCKING=0` atau untuk server yang ditandai [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral). Server yang masih tertunda pada tenggat tetap melanjutkan koneksi di latar belakang. Berbeda dari `MCP_TIMEOUT`, yang membatasi upaya koneksi satu server |

489| `MCP_DISCOVERY_CACHE` | Mengaktifkan atau menonaktifkan [discovery cache MCP](/docs/id/mcp#server-status-detail). Dengan cache aktif, server HTTP atau SSE jarak jauh yang pernah Anda gunakan dapat menampilkan [status `cached`](/docs/id/mcp#server-status-detail), dan Claude Code menghubungkannya pada panggilan tool pertamanya alih-alih saat startup. Cache nonaktif secara default kecuali peluncuran bertahap telah mengaktifkannya untuk akun Anda. Atur ke `1` untuk mengaktifkannya, atau `0` untuk tetap menonaktifkannya bahkan saat peluncuran telah mengaktifkannya. Sebelum v2.1.238, cache aktif secara default. Status `cached` memerlukan Claude Code v2.1.221 atau lebih baru |495| `MCP_DISCOVERY_CACHE` | Mengaktifkan atau menonaktifkan [discovery cache MCP](/docs/id/mcp#server-status-detail). Dengan cache aktif, server HTTP atau SSE jarak jauh yang pernah Anda gunakan dapat menampilkan [status `cached`](/docs/id/mcp#server-status-detail), dan Claude Code menghubungkannya pada panggilan tool pertamanya alih-alih saat startup. Cache nonaktif secara default kecuali peluncuran bertahap telah mengaktifkannya untuk akun Anda. Atur ke `1` untuk mengaktifkannya, atau `0` untuk tetap menonaktifkannya bahkan ketika peluncuran telah mengaktifkannya. Sebelum v2.1.238, cache aktif secara default. Status `cached` memerlukan Claude Code v2.1.221 atau yang lebih baru |

490| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Usia maksimum, dalam detik, dari entri [discovery cache](/docs/id/mcp#server-status-detail) (default: 14400, atau 4 jam). Pada startup di mana entri lebih tua dari itu, Claude Code membuangnya dan menghubungkan server saat startup, seperti saat cache nonaktif. Claude Code membatasi nilai ini pada 7 hari. Sebelum v2.1.238, default-nya adalah 86400, atau 24 jam, dan Claude Code tidak membatasi nilai ini |496| `MCP_DISCOVERY_CACHE_MAX_STALE_S` | Usia maksimum, dalam detik, dari entri [discovery cache](/docs/id/mcp#server-status-detail) (default: 14400, atau 4 jam). Pada startup di mana entri lebih tua dari itu, Claude Code membuangnya dan menghubungkan server saat startup, seperti yang dilakukannya saat cache nonaktif. Claude Code membatasi nilainya pada 7 hari. Sebelum v2.1.238, default-nya adalah 86400, atau 24 jam, dan Claude Code tidak membatasi nilainya |

491| `MCP_DISCOVERY_CACHE_STRIKES` | Pada startup di mana entri [discovery cache](/docs/id/mcp#server-status-detail) lebih tua dari `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code menyegarkannya di latar belakang. Variabel ini mengatur berapa banyak penyegaran berturut-turut yang boleh gagal sebelum Claude Code membuang entri dan menghubungkan server pada startup berikutnya (default: 1). Naikkan jika koneksi jaringan Anda sesekali terputus, agar satu penyegaran yang gagal tidak membuang entri. Memerlukan Claude Code v2.1.238 atau lebih baru |497| `MCP_DISCOVERY_CACHE_STRIKES` | Pada startup di mana entri [discovery cache](/docs/id/mcp#server-status-detail) lebih tua dari `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code memperbaruinya di latar belakang. Variabel ini mengatur berapa banyak pembaruan berturut-turut yang boleh gagal sebelum Claude Code membuang entri dan menghubungkan server pada startup berikutnya (default: 1). Naikkan jika koneksi jaringan Anda sesekali terputus, sehingga satu pembaruan yang gagal tidak membuang entri. Memerlukan Claude Code v2.1.238 atau yang lebih baru |

492| `MCP_DISCOVERY_CACHE_TTL_S` | Detik selama Claude Code menggunakan entri [discovery cache](/docs/id/mcp#server-status-detail) tanpa menyegarkannya (default: 900). Pada startup di mana entri lebih tua dari itu, Claude Code tetap menggunakannya tetapi menyegarkannya di latar belakang. Setelah entri lebih tua dari `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code membuangnya. Claude Code membatasi nilai ini pada `MCP_DISCOVERY_CACHE_MAX_STALE_S`, yaitu 4 jam secara default. Sebelum v2.1.238, Claude Code tidak membatasi nilai ini |498| `MCP_DISCOVERY_CACHE_TTL_S` | Jumlah detik Claude Code menggunakan entri [discovery cache](/docs/id/mcp#server-status-detail) tanpa memperbaruinya (default: 900). Pada startup di mana entri lebih tua dari itu, Claude Code tetap menggunakannya tetapi memperbaruinya di latar belakang. Setelah entri lebih tua dari `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code membuangnya. Claude Code membatasi nilainya pada `MCP_DISCOVERY_CACHE_MAX_STALE_S`, yang secara default adalah 4 jam. Sebelum v2.1.238, Claude Code tidak membatasi nilainya |

493| `MCP_OAUTH_CALLBACK_PORT` | Port tetap untuk callback pengalihan OAuth, sebagai alternatif untuk `--callback-port` saat menambahkan server MCP dengan [kredensial yang telah dikonfigurasi sebelumnya](/docs/id/mcp#use-pre-configured-oauth-credentials) |499| `MCP_OAUTH_CALLBACK_PORT` | Port tetap untuk callback redirect OAuth, sebagai alternatif `--callback-port` saat menambahkan server MCP dengan [kredensial yang telah dikonfigurasi sebelumnya](/docs/id/mcp#use-pre-configured-oauth-credentials) |

494| `MCP_PROTOCOL_NEGOTIATION` | Hanya pada [runtime klien MCP v2](/docs/id/mcp#mcp-client-runtimes), apakah Claude Code memeriksa server untuk revisi protokol MCP 2026-07-28. Atur `auto` untuk memeriksa server HTTP, konektor claude.ai, dan stdio, atau `legacy` untuk tidak memeriksa satu pun. Dengan variabel tidak diatur, Claude Code memeriksa server yang dijelaskan di [Runtime klien MCP](/docs/id/mcp#mcp-client-runtimes). Nilai lain diabaikan dengan peringatan di log debug. Memerlukan Claude Code v2.1.221 atau lebih baru |500| `MCP_PROTOCOL_NEGOTIATION` | Hanya pada [runtime klien MCP v2](/docs/id/mcp#mcp-client-runtimes), apakah Claude Code memeriksa server untuk revisi protokol MCP 2026-07-28. Atur `auto` untuk memeriksa server HTTP, konektor claude.ai, dan stdio, atau `legacy` untuk tidak memeriksa satu pun. Dengan variabel tidak diatur, Claude Code memeriksa server yang dijelaskan dalam [Runtime klien MCP](/docs/id/mcp#mcp-client-runtimes). Nilai lain diabaikan dengan peringatan di log debug. Memerlukan Claude Code v2.1.221 atau yang lebih baru |

495| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Jumlah maksimum server MCP jarak jauh (HTTP/SSE) yang dihubungkan secara paralel selama startup (default: 20) |501| `MCP_REMOTE_SERVER_CONNECTION_BATCH_SIZE` | Jumlah maksimum server MCP jarak jauh (HTTP/SSE) yang dihubungkan secara paralel selama startup (default: 20) |

496| `MCP_SDK_GENERATION` | Menetapkan [runtime klien MCP](/docs/id/mcp#mcp-client-runtimes) mana yang digunakan proses ini untuk terhubung ke server MCP: `v1`, dibangun di atas MCP TypeScript SDK 1.x, atau `v2`, dibangun di atas [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Tanpa variabel ini, Claude Code menggunakan v2, mulai dari versi yang tercantum di bagian tersebut. Pada Claude Code v2.1.221 atau lebih baru, runtime v2 memeriksa issuer yang dikembalikan server OAuth MCP dalam respons otorisasinya dan menggagalkan proses masuk dengan error yang diawali `Issuer mismatch in authorization response` saat tidak cocok. Runtime v1 tidak menjalankan pemeriksaan ini. Jika Anda mengatur nilai yang tidak dikenali, Claude Code mengabaikannya dan menulis peringatan ke log debug. Claude Code membaca nilai ini sekali per proses. Memerlukan Claude Code v2.1.218 atau lebih baru |502| `MCP_SDK_GENERATION` | Menetapkan [runtime klien MCP](/docs/id/mcp#mcp-client-runtimes) yang digunakan proses ini untuk terhubung ke server MCP: `v1`, dibangun di atas MCP TypeScript SDK 1.x, atau `v2`, dibangun di atas [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/). Tanpa variabel ini, Claude Code menggunakan v2, mulai dari versi yang tercantum di bagian tersebut. Pada Claude Code v2.1.221 atau yang lebih baru, runtime v2 memeriksa issuer yang dikembalikan server OAuth MCP dalam respons otorisasinya dan menggagalkan proses masuk dengan error yang diawali `Issuer mismatch in authorization response` ketika tidak cocok. Runtime v1 tidak menjalankan pemeriksaan ini. Jika Anda mengatur nilai yang tidak dikenali, Claude Code mengabaikannya dan menulis peringatan ke log debug. Claude Code membaca nilai ini sekali per proses. Memerlukan Claude Code v2.1.218 atau yang lebih baru |

497| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Jumlah maksimum server MCP lokal (stdio) yang dihubungkan secara paralel selama startup (default: 3) |503| `MCP_SERVER_CONNECTION_BATCH_SIZE` | Jumlah maksimum server MCP lokal (stdio) yang dihubungkan secara paralel selama startup (default: 3) |

498| `MCP_TIMEOUT` | Timeout dalam milidetik untuk startup server MCP (default: 30000, atau 30 detik) |504| `MCP_TIMEOUT` | Timeout dalam milidetik untuk startup server MCP (default: 30000, atau 30 detik) |

499| `MCP_TOOL_TIMEOUT` | Timeout dalam milidetik untuk eksekusi tool MCP (default: 100000000, sekitar 28 jam). Untuk server HTTP, SSE, atau konektor claude.ai, setiap permintaan juga mengalami timeout setelah 60 detik secara default; atur variabel ini, atau `timeout` per server, di atas 60000 untuk menaikkan batas per permintaan tersebut. Nilai yang lebih rendah tetap memperpendek timeout eksekusi tool secara keseluruhan tetapi membiarkan batas per permintaan pada 60 detik. Server stdio dan WebSocket tidak memiliki timer per permintaan. Field `timeout` per server di `.mcp.json` menimpa ini untuk server tersebut. `timeout` per server minimal 1000 juga mengatur jendela idle minimum untuk panggilan tool server tersebut, sehingga `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` tidak pernah membatalkannya lebih cepat; batas bawah ini memerlukan Claude Code v2.1.203 atau lebih baru. Untuk variabel env, nilai di bawah 1000 dibulatkan ke satu detik; untuk field per server, nilai di bawah 1000 diabaikan |505| `MCP_TOOL_TIMEOUT` | Timeout dalam milidetik untuk eksekusi tool MCP (default: 100000000, sekitar 28 jam). Untuk server HTTP, SSE, atau konektor claude.ai, setiap permintaan juga mengalami timeout setelah 60 detik secara default; atur variabel ini, atau `timeout` per server, di atas 60000 untuk menaikkan batas per permintaan tersebut. Nilai yang lebih rendah tetap memperpendek timeout eksekusi tool secara keseluruhan tetapi membiarkan batas per permintaan pada 60 detik. Server stdio dan WebSocket tidak memiliki timer per permintaan. Field `timeout` per server di `.mcp.json` menimpa ini untuk server tersebut. `timeout` per server minimal 1000 juga mengatur jendela idle minimum untuk panggilan tool server tersebut, sehingga `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` tidak pernah membatalkannya lebih cepat; batas bawah ini memerlukan Claude Code v2.1.203 atau yang lebih baru. Untuk variabel env, nilai di bawah 1000 dibulatkan ke atas menjadi satu detik; untuk field per server, nilai di bawah 1000 diabaikan |

500| `NO_PROXY` | Daftar domain dan IP yang permintaannya akan dikirim langsung, melewati proxy |506| `NO_PROXY` | Daftar domain dan IP yang permintaannya akan dikirim langsung, melewati proxy |

501| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Batas standar OpenTelemetry SDK untuk panjang nilai atribut. Claude Code membatasi atribut telemetri yang memuat konten pada nilai yang lebih kecil antara ini dan `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, sehingga penanda pemotongan tetap berada dalam batas SDK. Claude Code membaca varian `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` dan `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` dengan cara yang sama, dan nilai terkecil yang diatur berlaku untuk semua sinyal. Memerlukan Claude Code v2.1.214 atau lebih baru. Lihat [Pemantauan](/docs/id/monitoring-usage#common-configuration-variables) |507| `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` | Batas standar OpenTelemetry SDK untuk panjang nilai atribut. Claude Code membatasi atribut telemetri yang memuat konten pada nilai yang lebih kecil antara ini dan `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, sehingga penanda pemotongan tetap berada dalam batas SDK. Claude Code membaca varian `OTEL_LOGRECORD_ATTRIBUTE_VALUE_LENGTH_LIMIT` dan `OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMIT` dengan cara yang sama, dan nilai terkecil yang diatur berlaku untuk semua sinyal. Memerlukan Claude Code v2.1.214 atau yang lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage#common-configuration-variables) |

502| `OTEL_LOG_ASSISTANT_RESPONSES` | Atur ke `1` untuk menyertakan teks respons model pada event log OpenTelemetry `assistant_response`. Saat tidak diatur, Claude Code menggunakan nilai `OTEL_LOG_USER_PROMPTS` sebagai gantinya. Atur ke `0` agar respons tetap disamarkan bahkan saat `OTEL_LOG_USER_PROMPTS` diatur. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Memerlukan Claude Code v2.1.193 atau lebih baru. Lihat [Pemantauan](/docs/id/monitoring-usage#assistant-response-event) |508| `OTEL_LOG_ASSISTANT_RESPONSES` | Atur ke `1` untuk menyertakan teks respons model pada event log OpenTelemetry `assistant_response`. Jika tidak diatur, Claude Code menggunakan nilai `OTEL_LOG_USER_PROMPTS` sebagai gantinya. Atur ke `0` agar respons tetap disamarkan bahkan ketika `OTEL_LOG_USER_PROMPTS` diatur. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Memerlukan Claude Code v2.1.193 atau yang lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage#assistant-response-event) |

503| `OTEL_LOG_MANAGED_SETTINGS` | Atur ke `1` untuk menambahkan pengaturan terkelola yang disamarkan, dan digest SHA-256 dari pengaturan sebelum penyamaran, ke event log OpenTelemetry `managed_settings_resolved`. Nonaktif secara default. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda; nilai di pengaturan proyek atau lokal tidak mengaktifkannya. Memerlukan Claude Code v2.1.274 atau lebih baru. Lihat [Pemantauan](/docs/id/monitoring-usage#managed-settings-resolved-event) |509| `OTEL_LOG_MANAGED_SETTINGS` | Atur ke `1` untuk menambahkan pengaturan terkelola yang telah disamarkan, dan digest SHA-256 dari pengaturan sebelum penyamaran, ke event log OpenTelemetry `managed_settings_resolved`. Nonaktif secara default. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda; nilai dalam pengaturan proyek atau lokal tidak mengaktifkannya. Memerlukan Claude Code v2.1.274 atau yang lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage#managed-settings-resolved-event) |

504| `OTEL_LOG_RAW_API_BODIES` | Memancarkan JSON permintaan dan respons Anthropic Messages API sebagai event log `api_request_body` / `api_response_body`. Atur ke `1` untuk body inline yang dipotong pada batas konten, atau `file:<dir>` untuk menulis body yang tidak dipotong ke disk dan memancarkan path `body_ref` sebagai gantinya. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` mengonfigurasi batas konten, 60 KB secara default. Nonaktif secara default; body mencakup seluruh riwayat percakapan. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Lihat [Pemantauan](/docs/id/monitoring-usage#api-request-body-event) |510| `OTEL_LOG_RAW_API_BODIES` | Mengirimkan JSON permintaan dan respons Anthropic Messages API sebagai event log `api_request_body` / `api_response_body`. Atur ke `1` untuk body inline yang dipotong pada batas konten, atau `file:<dir>` untuk menulis body yang tidak dipotong ke disk dan mengirimkan path `body_ref` sebagai gantinya. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` mengonfigurasi batas konten, 60 KB secara default. Nonaktif secara default; body mencakup seluruh riwayat percakapan. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Lihat [Monitoring](/docs/id/monitoring-usage#api-request-body-event) |

505| `OTEL_LOG_TOOL_CONTENT` | Atur ke `1` untuk menyertakan konten tool dalam event span OpenTelemetry `tool.output`. Atribut span membawa konten tool di bawah [gerbang masing-masing](/docs/id/monitoring-usage#new-context-gates). Memerlukan [tracing](/docs/id/monitoring-usage#traces-beta). Nonaktif secara default untuk melindungi data sensitif. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env), kecuali nilai nonaktif yang dijelaskan di bagian tersebut. Lihat [Pemantauan](/docs/id/monitoring-usage#tool-output-span-event) |511| `OTEL_LOG_TOOL_CONTENT` | Atur ke `1` untuk menyertakan konten tool dalam event span OpenTelemetry `tool.output`. Atribut span membawa konten tool di bawah [gerbang kontrolnya sendiri](/docs/id/monitoring-usage#new-context-gates). Memerlukan [tracing](/docs/id/monitoring-usage#traces-beta). Nonaktif secara default untuk melindungi data sensitif. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env), kecuali nilai off yang dijelaskan di bagian tersebut. Lihat [Monitoring](/docs/id/monitoring-usage#tool-output-span-event) |

506| `OTEL_LOG_TOOL_DETAILS` | Atur ke `1` untuk menyertakan argumen input tool; nama server MCP; nama workflow yang ditulis pengguna; string error mentah pada kegagalan tool; `category` penolakan pada event `api_refusal`; nama agent, skill, plugin, dan server MCP yang sebenarnya pada [metrik biaya dan token](/docs/id/monitoring-usage#cost-counter); serta detail tool lainnya dalam metrik, trace, dan log OpenTelemetry. Nonaktif secara default untuk melindungi PII. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env), kecuali nilai nonaktif yang dijelaskan di bagian tersebut. Lihat [Pemantauan](/docs/id/monitoring-usage) |512| `OTEL_LOG_TOOL_DETAILS` | Atur ke `1` untuk menyertakan argumen input tool; nama server MCP; nama workflow yang dibuat pengguna; string error mentah pada kegagalan tool; `category` penolakan pada event `api_refusal`; nama agent, skill, plugin, dan server MCP yang sebenarnya pada [metrik biaya dan token](/docs/id/monitoring-usage#cost-counter); serta detail tool lainnya dalam metrik, trace, dan log OpenTelemetry. Nonaktif secara default untuk melindungi PII. Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env), kecuali nilai off yang dijelaskan di bagian tersebut. Lihat [Monitoring](/docs/id/monitoring-usage) |

507| `OTEL_LOG_USER_PROMPTS` | Atur ke `1` untuk menyertakan teks prompt pengguna dalam trace dan log OpenTelemetry. Nonaktif secara default (prompt disamarkan). Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env), kecuali nilai nonaktif yang dijelaskan di bagian tersebut. Lihat [Pemantauan](/docs/id/monitoring-usage) |513| `OTEL_LOG_USER_PROMPTS` | Atur ke `1` untuk menyertakan teks prompt pengguna dalam trace dan log OpenTelemetry. Nonaktif secara default (prompt disamarkan). Atur di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env), kecuali nilai off yang dijelaskan di bagian tersebut. Lihat [Monitoring](/docs/id/monitoring-usage) |

508| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Atur ke `false` untuk mengecualikan UUID akun dari atribut metrik (default: disertakan). Lihat [Pemantauan](/docs/id/monitoring-usage) |514| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Atur ke `false` untuk mengecualikan UUID akun dari atribut metrik (default: disertakan). Lihat [Monitoring](/docs/id/monitoring-usage) |

509| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Atur ke `true` untuk menyertakan entrypoint sesi dalam atribut metrik (default: dikecualikan). Ditambahkan di v2.1.152. Lihat [Pemantauan](/docs/id/monitoring-usage) |515| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Atur ke `true` untuk menyertakan entrypoint sesi dalam atribut metrik (default: dikecualikan). Ditambahkan di v2.1.152. Lihat [Monitoring](/docs/id/monitoring-usage) |

510| `OTEL_METRICS_INCLUDE_REPOSITORY` | Atur ke `true` untuk menandai metrik dan event OpenTelemetry dengan atribut `vcs.*` yang mengidentifikasi repositori sesi (default: dikecualikan). Memerlukan Claude Code v2.1.269 atau lebih baru. Lihat [Atribut repositori](/docs/id/monitoring-usage#repository-attributes) |516| `OTEL_METRICS_INCLUDE_REPOSITORY` | Atur ke `true` untuk menandai metrik dan event OpenTelemetry dengan atribut `vcs.*` yang mengidentifikasi repositori sesi (default: dikecualikan). Memerlukan Claude Code v2.1.269 atau yang lebih baru. Lihat [Atribut repositori](/docs/id/monitoring-usage#repository-attributes) |

511| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Sejak v2.1.161, Claude Code melampirkan kunci `OTEL_RESOURCE_ATTRIBUTES` ke label datapoint metrik. Atur ke `false` untuk mengecualikannya (default: disertakan). Lihat [Pemantauan](/docs/id/monitoring-usage#multi-team-organization-support) |517| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Mulai v2.1.161, Claude Code melampirkan kunci `OTEL_RESOURCE_ATTRIBUTES` ke label datapoint metrik. Atur ke `false` untuk mengecualikannya (default: disertakan). Lihat [Monitoring](/docs/id/monitoring-usage#multi-team-organization-support) |

512| `OTEL_METRICS_INCLUDE_SESSION_ID` | Atur ke `false` untuk mengecualikan ID sesi dari atribut metrik (default: disertakan). Lihat [Pemantauan](/docs/id/monitoring-usage) |518| `OTEL_METRICS_INCLUDE_SESSION_ID` | Atur ke `false` untuk mengecualikan ID sesi dari atribut metrik (default: disertakan). Lihat [Monitoring](/docs/id/monitoring-usage) |

513| `OTEL_METRICS_INCLUDE_VERSION` | Atur ke `true` untuk menyertakan versi Claude Code dalam atribut metrik (default: dikecualikan). Lihat [Pemantauan](/docs/id/monitoring-usage) |519| `OTEL_METRICS_INCLUDE_VERSION` | Atur ke `true` untuk menyertakan versi Claude Code dalam atribut metrik (default: dikecualikan). Lihat [Monitoring](/docs/id/monitoring-usage) |

514| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Menimpa anggaran karakter untuk metadata skill yang ditampilkan ke [tool Skill](/docs/id/skills#control-who-invokes-a-skill). Anggaran berskala secara dinamis sebesar 1% dari context window, dengan fallback 8.000 karakter. Nama lama dipertahankan untuk kompatibilitas mundur |520| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Menimpa anggaran karakter untuk metadata skill yang ditampilkan ke [tool Skill](/docs/id/skills#control-who-invokes-a-skill). Anggaran berskala secara dinamis sebesar 1% dari context window, dengan fallback 8.000 karakter. Nama lama dipertahankan untuk kompatibilitas mundur |

515| `TASK_MAX_OUTPUT_LENGTH` | Dihapus di v2.1.277 dan sekarang tidak berpengaruh, bersama dengan tool `TaskOutput` yang ukurannya diatur olehnya. Sebelumnya mengatur jumlah maksimum karakter output [tugas latar belakang](/docs/id/tools-reference#background-commands) yang disimpan oleh tool `TaskOutput`. Claude membaca file output tugas latar belakang dengan `Read` sebagai gantinya |521| `TASK_MAX_OUTPUT_LENGTH` | Dihapus di v2.1.277 dan sekarang tidak berpengaruh, bersama dengan tool `TaskOutput` yang ukurannya diaturnya. Sebelumnya mengatur jumlah maksimum karakter output [tugas latar belakang](/docs/id/tools-reference#background-commands) yang disimpan oleh tool `TaskOutput`. Claude sekarang membaca file output tugas latar belakang dengan `Read` |

516| `USE_BUILTIN_RIPGREP` | Atur ke `0` untuk menggunakan `rg` yang terinstal di sistem alih-alih `rg` yang disertakan dengan Claude Code |522| `USE_BUILTIN_RIPGREP` | Atur ke `0` untuk menggunakan `rg` yang terinstal di sistem alih-alih `rg` yang disertakan dengan Claude Code |

517| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Menimpa region untuk Claude 3.5 Haiku saat menggunakan Google Cloud's Agent Platform |523| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Menimpa region untuk Claude 3.5 Haiku saat menggunakan Google Cloud's Agent Platform |

518| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Menimpa region untuk Claude 3.5 Sonnet saat menggunakan Google Cloud's Agent Platform |524| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Menimpa region untuk Claude 3.5 Sonnet saat menggunakan Google Cloud's Agent Platform |


535| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Menimpa region untuk Claude Haiku 4.5 saat menggunakan Google Cloud's Agent Platform |541| `VERTEX_REGION_CLAUDE_HAIKU_4_5` | Menimpa region untuk Claude Haiku 4.5 saat menggunakan Google Cloud's Agent Platform |

536| `VERTEX_REGION_CLAUDE_HAIKU_5_5` | Menimpa region untuk Claude Haiku 5.5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.293 |542| `VERTEX_REGION_CLAUDE_HAIKU_5_5` | Menimpa region untuk Claude Haiku 5.5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.293 |

537 543 

538Variabel exporter OpenTelemetry standar (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES`, dan varian khusus sinyal) juga didukung. Lihat [Pemantauan](/docs/id/monitoring-usage) untuk detail konfigurasi.544Variabel exporter OpenTelemetry standar (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES`, dan varian khusus sinyal) juga didukung. Lihat [Monitoring](/docs/id/monitoring-usage) untuk detail konfigurasi.

539 545 

540Atur `CLAUDE_CODE_ENABLE_TELEMETRY` dan variabel OpenTelemetry yang mengaktifkan ekspor, memilih tujuannya, atau merekam konten di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Claude Code [mengabaikannya di pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env), kecuali nilai nonaktif yang dijelaskan di bagian tersebut. `OTEL_RESOURCE_ATTRIBUTES` serta variabel interval ekspor, timeout, dan kompresi, seperti `OTEL_METRIC_EXPORT_INTERVAL`, tetap berlaku dari pengaturan proyek dan lokal.546Atur `CLAUDE_CODE_ENABLE_TELEMETRY` dan variabel OpenTelemetry yang mengaktifkan ekspor, memilih tujuannya, atau menangkap konten di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Claude Code [mengabaikannya dalam pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env), kecuali nilai off yang dijelaskan di bagian tersebut. `OTEL_RESOURCE_ATTRIBUTES` serta variabel interval ekspor, timeout, dan kompresi, seperti `OTEL_METRIC_EXPORT_INTERVAL`, tetap berlaku dari pengaturan proyek dan lokal.

541 547 

542<h2 id="what-the-subprocess-environment-scrub-removes">548<h2 id="what-the-subprocess-environment-scrub-removes">

543 Apa yang dihapus oleh pembersihan lingkungan subprocess549 Apa yang dihapus oleh pembersihan lingkungan subprocess


590* Menggunakan [tool advisor](/docs/id/advisor#requirements)596* Menggunakan [tool advisor](/docs/id/advisor#requirements)

591* Membaca atau membalas [komentar pada artifact](/docs/id/artifacts#collect-comments-on-an-artifact)597* Membaca atau membalas [komentar pada artifact](/docs/id/artifacts#collect-comments-on-an-artifact)

592* Meminta Claude membaca [artifact publik milik organisasi lain](/docs/id/artifacts#read-an-artifact-shared-with-you)598* Meminta Claude membaca [artifact publik milik organisasi lain](/docs/id/artifacts#read-an-artifact-shared-with-you)

593* Meminta Claude Code memeriksa server konektor claude.ai untuk [revisi protokol MCP 2026-07-28](/docs/id/mcp#mcp-client-runtimes) kecuali Anda mengatur `MCP_PROTOCOL_NEGOTIATION=auto`

594* Mendapatkan [tool PowerShell](/docs/id/tools-reference#powershell-tool) secara default untuk akun claude.ai dan Console di Windows dengan Git Bash terinstal; Claude Code merutekan perintah shell melalui Git Bash kecuali Anda mengatur `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Di Windows tanpa Git Bash, tool tersebut tetap aktif599* Mendapatkan [tool PowerShell](/docs/id/tools-reference#powershell-tool) secara default untuk akun claude.ai dan Console di Windows dengan Git Bash terinstal; Claude Code merutekan perintah shell melalui Git Bash kecuali Anda mengatur `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. Di Windows tanpa Git Bash, tool tersebut tetap aktif

595* Mendapatkan [umpan balik yang disusun Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), yang diaktifkan Claude Code melalui flag yang diambil600* Mendapatkan [umpan balik yang disusun Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), yang diaktifkan Claude Code melalui flag yang diambil

596* Meminta Claude [memperlakukan tempelan besar sebagai teks yang ditempel, bukan diketik](/docs/id/terminal-config#how-claude-treats-pasted-text); konten di balik placeholder `[Pasted text #N]` sampai ke Claude tanpa penanda601* Meminta Claude [memperlakukan tempelan besar sebagai teks yang ditempel, bukan diketik](/docs/id/terminal-config#how-claude-treats-pasted-text); konten di balik placeholder `[Pasted text #N]` sampai ke Claude tanpa penanda

errors.md +10 −55

Details

189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |189| `<model> has safety measures that flagged this message for a cybersecurity topic` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

190| `` Details: `[reasoning_extraction]` `` | [Request errors](#safeguards-flagged-a-request-for-claudes-reasoning) |190| `` Details: `[reasoning_extraction]` `` | [Request errors](#safeguards-flagged-a-request-for-claudes-reasoning) |

191| `API Error: Output blocked by content filtering policy` | [Request errors](#output-blocked-by-content-filtering-policy) |191| `API Error: Output blocked by content filtering policy` | [Request errors](#output-blocked-by-content-filtering-policy) |

192| `Installation was killed before it could finish (exit code 137)` | [Installation errors](#installation-was-killed-before-it-could-finish) |192| `Installation was killed before it could finish (exit code 137)` | [Troubleshoot installation and login](/docs/id/troubleshoot-install#installation-was-killed-before-it-could-finish) |

193| `The connection dropped while downloading the update` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |193| `The connection dropped while downloading the update` | [Troubleshoot installation and login](/docs/id/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

194| `Download timed out: exceeded the total deadline` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |194| `Download timed out: exceeded the total deadline` | [Troubleshoot installation and login](/docs/id/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

195| `--bg and --print conflict` | [Command-line errors](#conflict-between-bg-and-print) |195| `--bg and --print conflict` | [Command-line errors](#conflict-between-bg-and-print) |

196| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Command-line errors](#conflict-between-a-system-prompt-flag-and-its-file-form) |196| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [Command-line errors](#conflict-between-a-system-prompt-flag-and-its-file-form) |

197| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |197| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |


261| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin errors](#claude-code-refuses-the-marketplace-name) |261| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin errors](#claude-code-refuses-the-marketplace-name) |

262| `Marketplace "<name>" is already added from a different source` | [Plugin errors](#marketplace-is-already-added-from-a-different-source) |262| `Marketplace "<name>" is already added from a different source` | [Plugin errors](#marketplace-is-already-added-from-a-different-source) |

263| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin errors](#marketplace-name-is-another-spelling-of-a-reserved-name) |263| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin errors](#marketplace-name-is-another-spelling-of-a-reserved-name) |

264| `Cannot add marketplace "<name>": Claude Code cannot install plugins from a marketplace with this name` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#cannot-install-plugins-from-a-marketplace-with-this-name) |

264| `Marketplace "<name>" is added but ignored` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#marketplace-is-added-but-ignored) |265| `Marketplace "<name>" is added but ignored` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#marketplace-is-added-but-ignored) |

265| `Marketplace "<name>" is registered but was refused (see the debug log)` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#marketplace-is-added-but-ignored) |266| `Marketplace "<name>" is registered but was refused (see the debug log)` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#marketplace-is-added-but-ignored) |

266| `references ${user_config.*} in a shell-form command` | [Plugin errors](#plugin-command-references-user-config) |267| `references ${user_config.*} in a shell-form command` | [Plugin errors](#plugin-command-references-user-config) |


269| `Plugin archive integrity check failed` | [Plugin errors](#plugin-archive-integrity-check-failed) |270| `Plugin archive integrity check failed` | [Plugin errors](#plugin-archive-integrity-check-failed) |

270| `An npm plugin source must name a registry package` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |271| `An npm plugin source must name a registry package` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |

271| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |272| `The packages it lists are not installed` / `The packages it lists were not installed, because` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#the-packages-it-lists-are-not-installed) |

273| `does not load (...), so Claude Code ignores the whole file` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#does-not-load-so-claude-code-ignores-the-whole-file) |

272| `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) |274| `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) |

273| `path could not be checked` | [Plugin errors](#path-could-not-be-checked) |275| `path could not be checked` | [Plugin errors](#path-could-not-be-checked) |

274| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |276| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


279| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin errors](#plugin-was-not-uninstalled) |281| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin errors](#plugin-was-not-uninstalled) |

280| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin errors](#plugin-was-not-uninstalled) |282| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin errors](#plugin-was-not-uninstalled) |

281| `Plugin "<plugin>" was not uninstalled: installed_plugins.json` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read) |283| `Plugin "<plugin>" was not uninstalled: installed_plugins.json` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#installed-plugins-json-holds-a-record-this-version-cannot-read) |

284| `Plugin directory does not exist: <path>` | [Plugin troubleshooting](/docs/id/plugins/troubleshooting#plugin-directory-does-not-exist) |

282| `Error: No such tool available: <tool name>` | [Tool errors](#no-such-tool-available) |285| `Error: No such tool available: <tool name>` | [Tool errors](#no-such-tool-available) |

283| `would be spawned with zero tools — refusing` | [Tool errors](#agent-would-be-spawned-with-zero-tools) |286| `would be spawned with zero tools — refusing` | [Tool errors](#agent-would-be-spawned-with-zero-tools) |

284| `File is covered by a Read deny rule in your permission settings` | [Tool errors](#file-is-covered-by-a-read-deny-rule) |287| `File is covered by a Read deny rule in your permission settings` | [Tool errors](#file-is-covered-by-a-read-deny-rule) |


386* Server error atau overloaded response yang tiba setelah Claude selesai berpikir tetapi sebelum memulai teks atau panggilan tool apa pun. Claude Code mencoba ulang server error pada titik itu hingga dua kali. Sebelum v2.1.284, Claude Code mengakhiri giliran dengan kesalahan tersebut pada titik itu.389* Server error atau overloaded response yang tiba setelah Claude selesai berpikir tetapi sebelum memulai teks atau panggilan tool apa pun. Claude Code mencoba ulang server error pada titik itu hingga dua kali. Sebelum v2.1.284, Claude Code mengakhiri giliran dengan kesalahan tersebut pada titik itu.

387* Dropped connections. Ketika koneksi terputus di tengah permintaan sebelum Claude menyelesaikan bagian mana pun dari responsnya, termasuk pemikirannya, Claude Code mengeluarkan kembali permintaan dengan backoff yang sama dan giliran berlanjut, bahkan jika beberapa teks telah mulai streaming. Ketika terputus setelah Claude selesai berpikir tetapi sebelum memulai teks atau panggilan tool apa pun, Claude Code malah mengeluarkan kembali permintaan hingga dua kali dengan cepat, dan mengakhiri giliran dengan `Connection lost before a response was produced` jika koneksi terus terputus pada titik itu.390* Dropped connections. Ketika koneksi terputus di tengah permintaan sebelum Claude menyelesaikan bagian mana pun dari responsnya, termasuk pemikirannya, Claude Code mengeluarkan kembali permintaan dengan backoff yang sama dan giliran berlanjut, bahkan jika beberapa teks telah mulai streaming. Ketika terputus setelah Claude selesai berpikir tetapi sebelum memulai teks atau panggilan tool apa pun, Claude Code malah mengeluarkan kembali permintaan hingga dua kali dengan cepat, dan mengakhiri giliran dengan `Connection lost before a response was produced` jika koneksi terus terputus pada titik itu.

388* Koneksi yang Claude Code deteksi rusak karena komputer Anda tidur di tengah permintaan. Claude Code menghitungnya sebagai dropped connection sesuai aturan di atas; setelah label retry menyebutkan alasan spesifik, dibaca `Connection lost while your computer was asleep`, dan jika giliran berakhir setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, pesan berbunyi `Your computer went to sleep before a response was produced`.391* Koneksi yang Claude Code deteksi rusak karena komputer Anda tidur di tengah permintaan. Claude Code menghitungnya sebagai dropped connection sesuai aturan di atas; setelah label retry menyebutkan alasan spesifik, dibaca `Connection lost while your computer was asleep`, dan jika giliran berakhir setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, pesan berbunyi `Your computer went to sleep before a response was produced`.

389* Stalled response stream, ketika response headers telah tiba tetapi tidak ada respons Claude yang tiba, atau ketika Claude selesai berpikir tetapi belum memulai teks atau panggilan tool apa pun: Claude Code membatalkan koneksi yang macet dan mengeluarkan kembali permintaan paling banyak sekali, di luar anggaran 10-percobaan di atas. Jika respons macet untuk kedua kalinya setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, Claude Code mengakhiri giliran dengan `The response stalled before a response was produced`.392* Stalled response stream, ketika response headers telah tiba tetapi tidak ada respons Claude yang tiba, atau ketika Claude selesai berpikir tetapi belum memulai teks atau panggilan tool apa pun: Claude Code membatalkan koneksi yang macet dan melakukan streaming ulang permintaan paling banyak sekali. Jika respons macet untuk kedua kalinya setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, Claude Code mengakhiri giliran dengan `The response stalled before a response was produced`.

390* Streaming request yang API tidak pernah jawab dengan response headers, pada koneksi di mana [first-byte deadline berjalan](/docs/id/network-config#streaming-idle-watchdogs): Claude Code membatalkannya pada deadline dan mengirimnya kembali paling banyak sekali per model request, dalam anggaran retry, kemudian mengakhiri giliran dengan [No response from API](#no-response-from-api) jika percobaan itu juga tidak dijawab. Pada koneksi lain, permintaan menunggu `API_TIMEOUT_MS`. Ketika Anda menetapkan `CLAUDE_CODE_RETRY_WATCHDOG`, batas satu retry tidak berlaku.393* Streaming request yang API tidak pernah jawab dengan response headers, pada koneksi di mana [first-byte deadline berjalan](/docs/id/network-config#streaming-idle-watchdogs): Claude Code membatalkannya pada deadline dan mengirimnya kembali paling banyak sekali per model request, dalam anggaran retry, kemudian mengakhiri giliran dengan [No response from API](#no-response-from-api) jika percobaan itu juga tidak dijawab. Pada koneksi lain, permintaan menunggu `API_TIMEOUT_MS`. Ketika Anda menetapkan `CLAUDE_CODE_RETRY_WATCHDOG`, batas satu retry tidak berlaku.

391* Respons streaming yang dihentikan oleh filter konten output API sebelum Claude selesai berpikir atau memulai teks atau panggilan tool apa pun. Claude Code mengirim kembali permintaan sekali, dalam anggaran retry, dan menampilkan [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) jika filter juga menghentikan respons kedua.394* Respons streaming yang dihentikan oleh filter konten output API sebelum Claude selesai berpikir atau memulai teks atau panggilan tool apa pun. Claude Code mengirim kembali permintaan sekali, dalam anggaran retry, dan menampilkan [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) jika filter juga menghentikan respons kedua.

392* Temporary 429 throttles, tetapi bukan `429` spend-limit gateway, yang bukan throttle; lihat [Spend limit reached](#spend-limit-reached).395* Temporary 429 throttles, tetapi bukan `429` spend-limit gateway, yang bukan throttle; lihat [Spend limit reached](#spend-limit-reached).


2910* Ubah susunan kata pesan terakhir Anda atau ambil pendekatan berbeda2913* Ubah susunan kata pesan terakhir Anda atau ambil pendekatan berbeda

2911* Untuk mundur ke checkpoint sebelum giliran yang memicu pemblokiran, tekan Esc dua kali atau jalankan `/rewind`. Lihat [Checkpointing](/docs/id/checkpointing)2914* Untuk mundur ke checkpoint sebelum giliran yang memicu pemblokiran, tekan Esc dua kali atau jalankan `/rewind`. Lihat [Checkpointing](/docs/id/checkpointing)

2912 2915 

2913<h2 id="installation-errors">

2914 Kesalahan instalasi

2915</h2>

2916 

2917Kesalahan ini muncul saat menginstal atau memperbarui Claude Code, dari [skrip instalasi](/docs/id/setup#install-claude-code), `claude install`, atau `claude update`. Untuk masalah `command not found`, PATH, izin, dan TLS selama pengaturan, lihat [Troubleshoot installation and login](/docs/id/troubleshoot-install).

2918 

2919<h3 id="installation-was-killed-before-it-could-finish">

2920 Installation was killed before it could finish

2921</h3>

2922 

2923Skrip instalasi melaporkan ketika langkah `claude install` dihentikan oleh sinyal. Di Linux, kode keluar 137 berarti proses menerima SIGKILL, dan pada host dengan memori rendah itu biasanya pembunuh out-of-memory (OOM) kernel. Skrip mencetak penjelasan ini dan keluar dengan kode 137:

2924 

2925```text theme={null}

2926Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory.

2927Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.

2928```

2929 

2930Untuk sinyal fatal lainnya, dan untuk kode keluar 137 di macOS, skrip mencetak `Installation was killed before it could finish (exit code <N>)` dengan kode keluar aktual dan menghilangkan penjelasan out-of-memory. Pesan berasal dari skrip instalasi yang digunakan macOS dan Linux, yang juga mencakup instalasi di dalam WSL; skrip instalasi Windows asli tidak pernah mencetaknya. Sebelum v2.1.200, skrip keluar hanya dengan baris `Killed` shell yang kosong.

2931 

2932**Yang harus dilakukan:**

2933 

2934* Hentikan proses lain untuk membebaskan memori, kemudian jalankan kembali penginstal

2935* Tambahkan ruang swap atau pindah ke instans yang lebih besar. Lihat [Install killed on low-memory Linux servers](/docs/id/troubleshoot-install#install-killed-on-low-memory-linux-servers) untuk perintah file swap.

2936 

2937<h3 id="the-connection-dropped-while-downloading-the-update">

2938 The connection dropped while downloading the update

2939</h3>

2940 

2941Koneksi ke server unduhan ditutup saat `claude install` atau `claude update` mengambil biner Claude Code, dan pengulangan tidak berhasil. Claude Code mencoba ulang unduhan ketika koneksi putus, transfer macet, atau file yang diunduh gagal checksumnya, hingga tiga percobaan total. Kesalahan HTTP yang selesai, seperti 404, tidak dicoba ulang karena server sudah menjawab. Sebelum v2.1.202, koneksi yang putus tunggal gagal mengunduh segera dengan kesalahan kosong `aborted` alih-alih mencoba ulang.

2942 

2943```text theme={null}

2944The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.

2945```

2946 

2947Teks dalam tanda kurung menyebutkan percobaan mana yang gagal dan kesalahan jaringan yang mendasarinya. `claude update` mendahului pesan dengan `Error: Failed to install native update` di stderr.

2948 

2949Unduhan yang tetap terhubung tetapi tidak selesai dalam 10 menit gagal dengan `Download timed out: exceeded the total deadline` sebagai gantinya. Claude Code tidak mencoba ulang unduhan yang habis waktu, karena koneksi yang terlalu lambat untuk selesai dalam batas waktu tidak akan selesai pada pengulangan segera. Langkah-langkah di bawah berlaku untuk kedua pesan.

2950 

2951Proxy atau gateway dapat menutup transfer panjang sebelum selesai, dan biner Claude Code adalah unduhan besar.

2952 

2953**Yang harus dilakukan:**

2954 

2955* Jalankan `claude update` lagi. Pada jaringan yang sehat, unduhan biasanya berhasil pada run berikutnya. Untuk pesan yang habis waktu, jalankan lagi dari jaringan yang lebih cepat atau kurang dibatasi.

2956* Jika jaringan Anda memerlukan proxy, atur `HTTPS_PROXY` sebelum menjalankan penginstal atau `claude update`. Lihat [Check network connectivity](/docs/id/troubleshoot-install#check-network-connectivity).

2957* Jika proxy korporat terus menutup transfer, minta tim jaringan Anda untuk mengizinkan unduhan lengkap dari `downloads.claude.ai`. Lihat [Network access requirements](/docs/id/network-config#network-access-requirements).

2958* Jalankan `claude doctor` dari shell Anda untuk diagnostik instalasi

2959 

2960<h2 id="command-line-errors">2916<h2 id="command-line-errors">

2961 Kesalahan baris perintah2917 Kesalahan baris perintah

2962</h2>2918</h2>


4064 Marketplace is already added from a different source4020 Marketplace is already added from a different source

4065</h3>4021</h3>

4066 4022 

4067Anda mengonfirmasi penambahan marketplace melalui [`/plugin install <plugin> --marketplace <source>`](/docs/id/plugins/install#add-a-marketplace-and-install-in-one-command), dan katalog yang Claude Code ambil dari sumber itu menamai dirinya sama dengan marketplace yang sudah Anda tambahkan dari sumber berbeda. Claude Code menyimpan marketplace yang ada daripada menggantinya, dan plugin tidak terpasang.4023Anda menyebutkan sumber marketplace baru dengan [`--marketplace <source>` pada perintah install](/docs/id/plugins/install#add-a-marketplace-and-install-in-one-command), dalam sesi atau dari shell Anda. Katalog yang Claude Code ambil dari sumber itu memiliki nama yang sama dengan marketplace yang sudah Anda tambahkan dari sumber berbeda. Claude Code menyimpan marketplace yang ada daripada menggantinya, dan plugin tidak terpasang.

4068 4024 

4069```text theme={null}4025```text theme={null}

4070Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.4026Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.


4817 Sesi ini tidak memiliki transkrip yang disimpan4773 Sesi ini tidak memiliki transkrip yang disimpan

4818</h3>4774</h3>

4819 4775 

4820Anda melampirkan ke sesi [latar belakang](/docs/id/agent-view) yang dihentikan yang dilatarbelakangkan dari percakapan lain dengan `←` atau `/background` dan dihentikan sebelum respons pertamanya selesai. Sampai respons pertama itu selesai, percakapan masih hidup hanya dalam sesi tempat ia dilatarbelakangkan, jadi `claude attach` menolak untuk memulai sesi yang dihentikan daripada memulai percakapan kosong di bawah ID sesi yang sama. Pesan berakhir dengan perintah `claude respawn` untuk sesi ini:4776Anda melampirkan ke sesi yang Anda [pindahkan ke latar belakang](/docs/id/agent-view#from-inside-a-session) dengan `←` atau `/background` dan yang berhenti sebelum menjalankan gilirannya sendiri. Claude Code tidak dapat menemukan percakapan tempat Anda memindahkannya, jadi sesi tidak memiliki apa pun untuk dilanjutkan. Pesan berakhir dengan perintah `claude respawn` untuk sesi ini:

4821 4777 

4822```text theme={null}4778```text theme={null}

4823This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.4779This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.


4827 4783 

4828**Yang harus dilakukan:**4784**Yang harus dilakukan:**

4829 4785 

4830* Percakapan yang Anda latarbelakangkan masih utuh: lanjutkan dengan [`claude --resume`](/docs/id/sessions) atau terus bekerja di dalamnya4786* Untuk memulai sesi yang dihentikan secara segar, jalankan `claude respawn <id>` dengan ID dari pesan, atau tekan `Enter` dua kali pada barisnya dalam tampilan agent

4831* Untuk memulai sesi yang dihentikan segar bagaimanapun, jalankan `claude respawn <id>` dengan ID dari pesan, atau tekan `Enter` dua kali pada barisnya dalam tampilan agent

4832* Jika sesi memang menyelesaikan respons dan Anda masih melihat penolakan ini pada versi sebelum v2.1.214, folder yang tidak dapat dibaca di `~/.claude/projects` dapat membuat pemindaian transkrip melewatkan percakapan yang disimpan; perbarui ke v2.1.214 atau lebih baru, yang mentoleransi folder yang tidak dapat dibaca selama pemindaian4787* Jika sesi memang menyelesaikan respons dan Anda masih melihat penolakan ini pada versi sebelum v2.1.214, folder yang tidak dapat dibaca di `~/.claude/projects` dapat membuat pemindaian transkrip melewatkan percakapan yang disimpan; perbarui ke v2.1.214 atau lebih baru, yang mentoleransi folder yang tidak dapat dibaca selama pemindaian

4833 4788 

4834<h3 id="this-session-is-running-in-another-terminal">4789<h3 id="this-session-is-running-in-another-terminal">

glossary.md +2 −2

Details

465 465 

466Perintah, `/teleport`, yang menarik sesi Claude Code cloud ke terminal lokal Anda. Claude mengambil branch, memuat riwayat percakapan, dan melanjutkan dari keadaan terakhir sesi cloud. Arah sebaliknya adalah `--cloud`, yang mengirim tugas lokal untuk dijalankan di cloud.466Perintah, `/teleport`, yang menarik sesi Claude Code cloud ke terminal lokal Anda. Claude mengambil branch, memuat riwayat percakapan, dan melanjutkan dari keadaan terakhir sesi cloud. Arah sebaliknya adalah `--cloud`, yang mengirim tugas lokal untuk dijalankan di cloud.

467 467 

468Pelajari lebih lanjut: [Dari cloud ke terminal](/docs/id/claude-code-on-the-web#from-cloud-to-terminal)468Pelajari lebih lanjut: [Melanjutkan sesi cloud di terminal Anda](/docs/id/claude-code-on-the-web#from-cloud-to-terminal)

469 469 

470<h3 id="tool">470<h3 id="tool">

471 Tool471 Tool


511 Worktree isolation511 Worktree isolation

512</h3>512</h3>

513 513 

514Mode isolasi yang menjalankan Claude di git worktree terpisah di bawah `.claude/worktrees/`, diaktifkan dengan bendera `-w` atau `isolation: worktree` dalam config subagent. Perubahan tetap di branch terpisah di direktori terpisah, sehingga agen paralel tidak menimpa file satu sama lain.514Mode isolasi yang menjalankan Claude di git worktree terpisah di bawah `.claude/worktrees/`, diaktifkan dengan flag `-w` atau `isolation: worktree` dalam konfigurasi subagent. Perubahan tetap berada di branch terpisah dalam direktori terpisah, sehingga setiap agent paralel mengedit salinan file miliknya sendiri.

515 515 

516Pelajari lebih lanjut: [Run parallel sessions with git worktrees](/docs/id/worktrees)516Pelajari lebih lanjut: [Run parallel sessions with git worktrees](/docs/id/worktrees)

517 517 

goal.md +1 −1

Details

127claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"127claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

128```128```

129 129 

130Dengan output teks default, tidak ada yang dicetak sampai jalannya berakhir, jadi tujuan yang berjalan banyak giliran dapat terlihat macet. Tambahkan `--output-format stream-json --verbose` untuk memancarkan setiap pesan saat loop berjalan.130Dengan output teks default, respons akhir Claude baru dicetak ketika loop berakhir, jadi tujuan yang berjalan banyak giliran dapat terlihat macet. Tambahkan `--output-format stream-json --verbose` untuk memancarkan setiap pesan saat loop berjalan.

131 131 

132Hentikan proses dengan Ctrl+C untuk menghentikan tujuan non-interaktif sebelum kondisinya terpenuhi.132Hentikan proses dengan Ctrl+C untuk menghentikan tujuan non-interaktif sebelum kondisinya terpenuhi.

133 133 

headless.md +14 −12

Details

20 Penggunaan dasar20 Penggunaan dasar

21</h2>21</h2>

22 22 

23Tambahkan bendera `-p` (atau `--print`) ke perintah `claude` apa pun untuk menjalankannya secara non-interaktif. Tidak semua [opsi CLI](/docs/id/cli-reference) menggabung dengan `-p`. Claude Code menolak `--bg`, dan menolak `--cloud` dengan deskripsi tugas, dengan kesalahan yang menyebutkan konflik; `--cloud` dengan ID sesi dan `-p` sebagai gantinya [antrian pesan ke sesi cloud tersebut](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli) dan keluar. Opsi yang akan Anda gabungkan dengan `-p` sering kali mencakup:23Tambahkan flag `-p` (atau `--print`) ke perintah `claude` apa pun untuk menjalankannya secara non-interaktif. Tidak semua [opsi CLI](/docs/id/cli-reference) menggabung dengan `-p`. Claude Code menolak `--bg`, dan menolak `--cloud` dengan deskripsi tugas, dengan kesalahan yang menyebutkan konflik; `--cloud` dengan ID sesi dan `-p` sebagai gantinya [antrian pesan ke sesi cloud tersebut](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli) dan keluar. Opsi yang akan Anda gabungkan dengan `-p` sering kali mencakup:

24 24 

25* `--continue` untuk [melanjutkan percakapan](#continue-conversations)25* `--continue` untuk [melanjutkan percakapan](#continue-conversations)

26* `--allowedTools` untuk [persetujuan otomatis alat](#auto-approve-tools)26* `--allowedTools` untuk [persetujuan otomatis tool](#auto-approve-tools)

27* `--output-format` untuk [output terstruktur](#get-structured-output)27* `--output-format` untuk [output terstruktur](#get-structured-output)

28 28 

29Contoh ini menanyakan Claude tentang basis kode Anda dan mencetak respons:29Contoh ini menanyakan Claude tentang basis kode Anda dan mencetak respons:


32claude -p "What does the auth module do?"32claude -p "What does the auth module do?"

33```33```

34 34 

35Claude Code keluar dengan kode 0 saat berhasil dan kode bukan nol ketika jalankan gagal, sehingga skrip Anda dapat bercabang pada status keluar. Jika Anda melewatkan bendera yang tidak valid, Claude Code melaporkan kesalahan ke stderr sebelum jalankan dimulai. Ketika kegagalan terjadi di dalam jalankan, seperti autentikasi yang hilang, Claude Code mencetak kegagalan sebagai hasil pada stdout.35Claude Code keluar dengan kode 0 saat berhasil dan kode bukan nol ketika jalankan gagal, sehingga skrip Anda dapat bercabang pada status keluar. Jika Anda melewatkan flag yang tidak valid, Claude Code melaporkan kesalahan ke stderr sebelum jalankan dimulai. Ketika kegagalan terjadi di dalam jalankan, seperti autentikasi yang hilang, Claude Code mencetak kegagalan sebagai hasil pada stdout.

36 36 

37<h3 id="start-faster-with-bare-mode">37<h3 id="start-faster-with-bare-mode">

38 Mulai lebih cepat dengan bare mode38 Mulai lebih cepat dengan bare mode


42 42 

43Bare mode berguna untuk CI dan skrip di mana Anda memerlukan hasil yang sama di setiap mesin. Hook di `~/.claude` rekan kerja atau server MCP di `.mcp.json` proyek tidak akan berjalan, karena bare mode tidak pernah membacanya. Direktori yang Anda beri nama dengan `--add-dir` adalah pengecualian parsial: bare mode memuat skills dari folder `.claude/skills/` nya, tetapi masih melewati folder `.claude/commands/` dan `.claude/agents/` nya. [Skills dari direktori tambahan](/docs/id/skills#skills-from-additional-directories) mencakup apa yang dimuat dan tidak dimuat.43Bare mode berguna untuk CI dan skrip di mana Anda memerlukan hasil yang sama di setiap mesin. Hook di `~/.claude` rekan kerja atau server MCP di `.mcp.json` proyek tidak akan berjalan, karena bare mode tidak pernah membacanya. Direktori yang Anda beri nama dengan `--add-dir` adalah pengecualian parsial: bare mode memuat skills dari folder `.claude/skills/` nya, tetapi masih melewati folder `.claude/commands/` dan `.claude/agents/` nya. [Skills dari direktori tambahan](/docs/id/skills#skills-from-additional-directories) mencakup apa yang dimuat dan tidak dimuat.

44 44 

45Tanpa `--bare`, sesi `-p` menjalankan hooks di `.claude/settings.json` proyek dan menghubungkan server di `.mcp.json` nya, bahkan di folder yang belum pernah Anda percayai. Sesi `-p` tidak menampilkan dialog kepercayaan ruang kerja dan tidak ada prompt persetujuan per-server. [Apa yang berjalan sebelum Anda mempercayai folder](/docs/id/permissions#what-runs-before-you-trust-a-folder) mencakup setiap jenis konten repositori di bawah `-p` dan cara menjaganya tetap keluar.45Tanpa `--bare`, sesi `-p` menjalankan hooks di `.claude/settings.json` proyek dan menghubungkan server di `.mcp.json` nya, bahkan di folder yang belum pernah Anda percayai. Sesi `-p` tidak menampilkan dialog kepercayaan workspace dan tidak ada permintaan persetujuan per-server. [Apa yang berjalan sebelum Anda mempercayai folder](/docs/id/permissions#what-runs-before-you-trust-a-folder) mencakup setiap jenis konten repositori di bawah `-p` dan cara menjaganya tetap keluar.

46 46 

47Contoh ini menjalankan tugas ringkasan sekali pakai dalam bare mode dan pra-menyetujui alat Read sehingga panggilan selesai tanpa prompt izin. Atur `ANTHROPIC_API_KEY` sebelum menjalankannya, karena bare mode tidak menggunakan login langganan Anda:47Contoh ini menjalankan tugas ringkasan sekali pakai dalam bare mode dan pra-menyetujui tool Read sehingga panggilan selesai tanpa permintaan izin. Atur `ANTHROPIC_API_KEY` sebelum menjalankannya, karena bare mode tidak menggunakan login langganan Anda:

48 48 

49```bash theme={null}49```bash theme={null}

50claude --bare -p "Summarize README.md" --allowedTools "Read"50claude --bare -p "Summarize README.md" --allowedTools "Read"


52 52 

53Dalam bare mode, Claude Code tidak pernah membaca kredensial OAuth atau keychain sistem. Untuk Anthropic API, atur `ANTHROPIC_API_KEY` di lingkungan, dengan kunci yang dibuat di [Claude Console](https://platform.claude.com), atau berikan `apiKeyHelper` di JSON `--settings`. Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry terus membaca kredensial penyedia mereka sendiri seperti biasanya.53Dalam bare mode, Claude Code tidak pernah membaca kredensial OAuth atau keychain sistem. Untuk Anthropic API, atur `ANTHROPIC_API_KEY` di lingkungan, dengan kunci yang dibuat di [Claude Console](https://platform.claude.com), atau berikan `apiKeyHelper` di JSON `--settings`. Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry terus membaca kredensial penyedia mereka sendiri seperti biasanya.

54 54 

55Dalam bare mode Claude memiliki akses ke alat Bash, pembacaan file, dan pengeditan file. Berikan konteks apa pun yang Anda butuhkan dengan bendera:55Dalam bare mode Claude memiliki akses ke tool Bash, pembacaan file, dan pengeditan file. Berikan konteks apa pun yang Anda butuhkan dengan flag:

56 56 

57| Untuk memuat | Gunakan |57| Untuk memuat | Gunakan |

58| - | - |58| - | - |

59| Penambahan prompt sistem | `--append-system-prompt`, `--append-system-prompt-file` |59| Penambahan system prompt | `--append-system-prompt`, `--append-system-prompt-file` |

60| Pengaturan | `--settings <file-or-json>` |60| Pengaturan | `--settings <file-or-json>` |

61| Server MCP | `--mcp-config <file-or-json>` |61| Server MCP | `--mcp-config <file-or-json>` |

62| [Agent kustom](/docs/id/sub-agents#choose-the-subagent-scope) | `--agents <file-or-json>` |62| [Agent kustom](/docs/id/sub-agents#choose-the-subagent-scope) | `--agents <file-or-json>` |


84 84 

85Eksekusi menunggu pekerjaan latar belakang seperti perintah latar belakang, subagent dan workflow, watch Monitor, serta wakeup `/loop` yang tertunda:85Eksekusi menunggu pekerjaan latar belakang seperti perintah latar belakang, subagent dan workflow, watch Monitor, serta wakeup `/loop` yang tertunda:

86 86 

87* **[Perintah latar belakang](/docs/id/tools-reference#background-commands)**: untuk perintah yang dimulai oleh percakapan utama, misalnya server dev atau build watch, eksekusi menunggu hingga perintah tersebut keluar atau mencapai [batas waktunya](/docs/id/tools-reference#time-limit-for-background-commands). Claude kemudian mengambil satu giliran lagi dengan hasilnya, dan hasil giliran tersebut menjadi hasil terakhir eksekusi, yaitu hasil yang dicetak oleh output `text` dan `json`. Selama perintah berjalan, batas 10 menit tidak mengakhiri penantian.87* **[Perintah latar belakang](/docs/id/tools-reference#background-commands)**: untuk perintah yang dimulai oleh percakapan utama, misalnya server dev atau build watch, eksekusi menunggu hingga perintah tersebut keluar atau mencapai [batas waktunya](/docs/id/tools-reference#time-limit-for-background-commands). Claude kemudian mengambil satu giliran lagi dengan hasilnya. Selama perintah berjalan, batas 10 menit tidak mengakhiri penantian.

88* **[Subagent](/docs/id/sub-agents) dan workflow latar belakang**: eksekusi tetap terbuka hingga pekerjaan tersebut selesai, karena hasilnya adalah bagian dari output akhir.88* **[Subagent](/docs/id/sub-agents) dan workflow latar belakang**: eksekusi tetap terbuka hingga pekerjaan tersebut selesai, karena hasilnya adalah bagian dari output akhir.

89* **Watch [Monitor](/docs/id/tools-reference#monitor-tool)**: eksekusi menunggu hingga watch mencapai timeout atau batas 10 menit mengakhiri penantian, mana pun yang terjadi lebih dulu. Selama menunggu, Claude terus merespons apa yang dilaporkan watch. Secara default, watch mencapai timeout lima menit setelah Claude memulainya.89* **Watch [Monitor](/docs/id/tools-reference#monitor-tool)**: eksekusi menunggu hingga watch mencapai timeout atau batas 10 menit mengakhiri penantian, mana pun yang terjadi lebih dulu. Selama menunggu, Claude terus merespons apa yang dilaporkan watch. Secara default, watch mencapai timeout lima menit setelah Claude memulainya.

90* **Wakeup yang tertunda**: dalam eksekusi yang prompt-nya Anda berikan sebagai teks alih-alih dengan `--input-format stream-json`, ketika Claude telah menjadwalkan [wakeup `/loop` dengan tempo sendiri](/docs/id/scheduled-tasks#let-claude-choose-the-interval), eksekusi menunggu setiap wakeup terpicu dan menjalankan iterasinya hingga [loop berakhir](/docs/id/scheduled-tasks#stop-a-loop), bahkan melewati batas 10 menit.90* **Wakeup yang tertunda**: dalam eksekusi yang prompt-nya Anda berikan sebagai teks alih-alih dengan `--input-format stream-json`, ketika Claude telah menjadwalkan [wakeup `/loop` dengan tempo sendiri](/docs/id/scheduled-tasks#let-claude-choose-the-interval), eksekusi menunggu setiap wakeup terpicu dan menjalankan iterasinya hingga [loop berakhir](/docs/id/scheduled-tasks#stop-a-loop), bahkan melewati batas 10 menit.

91 91 

92Jika eksekusi mencapai batas [`--max-budget-usd`](/docs/id/cli-reference#cli-flags), Claude Code menghentikan pekerjaan latar belakang yang tersisa alih-alih menunggu.92Jika eksekusi mencapai batas [`--max-budget-usd`](/docs/id/cli-reference#cli-flags), Claude Code menghentikan pekerjaan latar belakang yang tersisa alih-alih menunggu.

93 93 

94Ketika pekerjaan latar belakang memulai giliran lain, eksekusi mencetak hasil setiap giliran dengan output `text` default dan hasil giliran terakhir dengan output `json`. Sebelum v2.1.295, eksekusi juga hanya mencetak hasil giliran terakhir dengan output `text`.

95 

94<h3 id="stop-a-run-with-sigterm">96<h3 id="stop-a-run-with-sigterm">

95 Hentikan jalankan dengan SIGTERM97 Hentikan jalankan dengan SIGTERM

96</h3>98</h3>

97 99 

98Jika Anda menghentikan jalankan `claude -p` dengan SIGTERM, misalnya dengan `kill` atau dari pengawas proses, Claude Code keluar dengan kode 143. Claude Code meninggalkan giliran yang sedang berlangsung tidak selesai dan tidak mencatat hasil untuknya. Untuk mengakhiri giliran sebagai gantinya, kirim SIGINT, atau panggil `interrupt()` Agent SDK, sebelum Anda menghentikan proses.100Jika Anda menghentikan jalankan `claude -p` dengan SIGTERM, misalnya dengan `kill` atau dari pengawas proses, Claude Code keluar dengan kode 143. Claude Code meninggalkan giliran yang sedang berlangsung tidak selesai dan tidak mencatat hasil untuknya. Untuk mengakhiri giliran sebagai gantinya, kirim SIGINT, atau panggil `interrupt()` Agent SDK, sebelum Anda menghentikan proses.

99 101 

100Pada SIGTERM, Claude Code menghentikan pohon proses dari perintah Bash apa pun yang masih berjalan. Claude Code kemudian menjalankan [`SessionEnd` hooks](/docs/id/hooks#sessionend) dan keluar. Saat keluar, Claude Code tidak memulai panggilan alat baru, tidak mengirim permintaan model baru, dan tidak menjalankan hook selain `SessionEnd`. Jika jalankan berada di tengah perintah atau menunggu jawaban untuk prompt izin ketika sinyal tiba, Claude Code menangani langkah itu sebagai berikut:102Pada SIGTERM, Claude Code menghentikan pohon proses dari perintah Bash apa pun yang masih berjalan. Claude Code kemudian menjalankan [`SessionEnd` hooks](/docs/id/hooks#sessionend) dan keluar. Saat keluar, Claude Code tidak memulai panggilan tool baru, tidak mengirim permintaan model baru, dan tidak menjalankan hook selain `SessionEnd`. Jika jalankan berada di tengah perintah atau menunggu permintaan izin ketika sinyal tiba, Claude Code menangani langkah itu sebagai berikut:

101 103 

102* **Menjalankan perintah**: Claude Code mencatat perintah sebagai terbunuh dalam sesi.104* **Menjalankan perintah**: Claude Code mencatat perintah sebagai terbunuh dalam sesi.

103* **Menunggu jawaban untuk prompt izin**: jika Anda mengirim SIGTERM ke proses, Claude Code meninggalkan prompt tanpa jawaban. Jika program Anda menutup sesi melalui Agent SDK, SDK mengakhiri input Claude Code sebelum mengirim sinyal apa pun, dan Claude Code membatalkan prompt segera setelah input berakhir.105* **Menunggu jawaban untuk permintaan izin**: jika Anda mengirim SIGTERM ke proses, Claude Code meninggalkan permintaan tersebut tanpa jawaban. Jika program Anda menutup sesi melalui Agent SDK, SDK mengakhiri input Claude Code sebelum mengirim sinyal apa pun, dan Claude Code membatalkan permintaan tersebut segera setelah input berakhir.

104 106 

105Ketika Anda [melanjutkan sesi](#continue-conversations), Claude Code meninggalkan giliran yang terputus seperti apa adanya, dan prompt berikutnya Anda mendorong percakapan. Untuk membuat Claude Code melanjutkan giliran yang terputus saat resume, atur [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN=1`](/docs/id/env-vars).107Ketika Anda [melanjutkan sesi](#continue-conversations), Claude Code meninggalkan giliran yang terputus seperti apa adanya, dan prompt berikutnya Anda mendorong percakapan. Untuk membuat Claude Code melanjutkan giliran yang terputus saat resume, atur [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN=1`](/docs/id/env-vars).

106 108 


262| `type` | `"system"` | tipe pesan |264| `type` | `"system"` | tipe pesan |

263| `subtype` | `"api_retry"` | mengidentifikasi ini sebagai acara percobaan ulang |265| `subtype` | `"api_retry"` | mengidentifikasi ini sebagai acara percobaan ulang |

264| `attempt` | integer | nomor percobaan saat ini, dimulai dari 1 |266| `attempt` | integer | nomor percobaan saat ini, dimulai dari 1 |

265| `max_retries` | integer | total percobaan ulang yang diizinkan untuk penyebab kegagalan ini, yang dapat lebih sedikit dari anggaran seluruh sesi |267| `max_retries` | integer | total percobaan ulang yang diizinkan untuk penyebab kegagalan ini |

266| `retry_delay_ms` | integer | milidetik hingga percobaan berikutnya |268| `retry_delay_ms` | integer | milidetik hingga percobaan berikutnya |

267| `error_status` | integer atau null | kode status HTTP dari percobaan yang gagal, atau `null` ketika percobaan tidak mendapat respons HTTP dari API |269| `error_status` | integer atau null | kode status HTTP dari percobaan yang gagal, atau `null` ketika percobaan tidak mendapat respons HTTP dari API |

268| `no_response` | object, opsional | hadir hanya ketika percobaan yang gagal mendapat [tidak ada header respons tepat waktu](/docs/id/errors#no-response-from-api). `waited_ms` adalah berapa lama percobaan itu menunggu dan `retry_wait_ms` adalah berapa lama percobaan ulang akan menunggu. Dalam acara ini, `max_retries` mencerminkan satu percobaan ulang yang biasanya didapat penyebab ini, bukan anggaran seluruh sesi. Memerlukan Claude Code v2.1.261 atau lebih baru |270| `no_response` | object, opsional | hadir hanya ketika percobaan yang gagal mendapat [tidak ada header respons tepat waktu](/docs/id/errors#no-response-from-api). `waited_ms` adalah berapa lama percobaan itu menunggu dan `retry_wait_ms` adalah berapa lama percobaan ulang akan menunggu. Memerlukan Claude Code v2.1.261 atau lebih baru |

269| `error` | string | kategori kesalahan: `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `rate_limit`, `overloaded`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, atau `unknown` |271| `error` | string | kategori kesalahan: `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `rate_limit`, `overloaded`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, atau `unknown` |

270| `uuid` | string | pengidentifikasi acara unik |272| `uuid` | string | pengidentifikasi acara unik |

271| `session_id` | string | sesi yang dimiliki acara |273| `session_id` | string | sesi yang dimiliki acara |

hipaa-setup.md +3 −0

Details

139}139}

140```140```

141 141 

142Untuk `managed-settings.json` yang lebih lengkap dengan sandboxing, allowlist jaringan, perlindungan kredensial, dan retensi data lokal, lihat `settings-hipaa.json` dan `README-hipaa.md` di [repositori contoh pengaturan](https://github.com/anthropics/claude-code/tree/main/examples/settings).

143 

142<h4 id="what-each-key-does">144<h4 id="what-each-key-does">

143 Fungsi setiap key145 Fungsi setiap key

144</h4>146</h4>


306 308 

307* [Set up Cowork (local mode) for a HIPAA-ready organization](https://claude.com/docs/cowork/hipaa-setup)309* [Set up Cowork (local mode) for a HIPAA-ready organization](https://claude.com/docs/cowork/hipaa-setup)

308* [Menerapkan pengaturan terkelola](/docs/id/managed-settings)310* [Menerapkan pengaturan terkelola](/docs/id/managed-settings)

311* [Contoh pengaturan HIPAA](https://github.com/anthropics/claude-code/tree/main/examples/settings)

309* [Konfigurasi jaringan enterprise](/docs/id/network-config)312* [Konfigurasi jaringan enterprise](/docs/id/network-config)

310* [Zero data retention](/docs/id/zero-data-retention)313* [Zero data retention](/docs/id/zero-data-retention)

311* [Legal dan kepatuhan](/docs/id/legal-and-compliance)314* [Legal dan kepatuhan](/docs/id/legal-and-compliance)

hooks.md +124 −35

Details

476| `async` | tidak | Jika `true`, dijalankan di latar belakang tanpa memblokir. Lihat [Run hooks in the background](#run-hooks-in-the-background) |476| `async` | tidak | Jika `true`, dijalankan di latar belakang tanpa memblokir. Lihat [Run hooks in the background](#run-hooks-in-the-background) |

477| `asyncRewake` | tidak | Jika `true`, dijalankan di latar belakang dan membangunkan Claude pada kode keluar 2. Hook stderr, atau stdout jika stderr kosong, ditampilkan ke Claude sebagai [system reminder](/docs/id/glossary#system-reminder) sehingga dapat bereaksi terhadap kegagalan latar belakang yang berjalan lama |477| `asyncRewake` | tidak | Jika `true`, dijalankan di latar belakang dan membangunkan Claude pada kode keluar 2. Hook stderr, atau stdout jika stderr kosong, ditampilkan ke Claude sebagai [system reminder](/docs/id/glossary#system-reminder) sehingga dapat bereaksi terhadap kegagalan latar belakang yang berjalan lama |

478| `shell` | tidak | Shell untuk digunakan untuk hook ini. Menerima `"bash"` atau `"powershell"`. Default ke `"bash"`, atau ke `"powershell"` di Windows ketika Git Bash tidak diinstal. Menetapkan `"powershell"` menjalankan perintah melalui PowerShell di Windows. Tidak memerlukan `CLAUDE_CODE_USE_POWERSHELL_TOOL` karena hooks spawn PowerShell secara langsung. Diabaikan ketika `args` diatur |478| `shell` | tidak | Shell untuk digunakan untuk hook ini. Menerima `"bash"` atau `"powershell"`. Default ke `"bash"`, atau ke `"powershell"` di Windows ketika Git Bash tidak diinstal. Menetapkan `"powershell"` menjalankan perintah melalui PowerShell di Windows. Tidak memerlukan `CLAUDE_CODE_USE_POWERSHELL_TOOL` karena hooks spawn PowerShell secara langsung. Diabaikan ketika `args` diatur |

479| `onFailure` | tidak | Apa yang terjadi pada tindakan ketika hook gagal: `"continue"`, yang merupakan default, atau `"block"`. Lihat [Blokir tindakan ketika hook gagal](#block-the-action-when-a-hook-fails). Memerlukan Claude Code v2.1.295 atau lebih baru |

479 480 

480<a id="exec-form-and-shell-form" />481<a id="exec-form-and-shell-form" />

481 482 


533| `url` | ya | URL untuk mengirimkan permintaan POST ke |534| `url` | ya | URL untuk mengirimkan permintaan POST ke |

534| `headers` | tidak | Header HTTP tambahan sebagai pasangan kunci-nilai. Nilai mendukung interpolasi variabel lingkungan menggunakan sintaks `$VAR_NAME` atau `${VAR_NAME}`. Hanya variabel yang tercantum dalam `allowedEnvVars` yang diselesaikan |535| `headers` | tidak | Header HTTP tambahan sebagai pasangan kunci-nilai. Nilai mendukung interpolasi variabel lingkungan menggunakan sintaks `$VAR_NAME` atau `${VAR_NAME}`. Hanya variabel yang tercantum dalam `allowedEnvVars` yang diselesaikan |

535| `allowedEnvVars` | tidak | Daftar nama variabel lingkungan yang dapat diinterpolasi ke nilai header. Referensi ke variabel yang tidak tercantum diganti dengan string kosong. Diperlukan untuk interpolasi variabel env apa pun untuk bekerja |536| `allowedEnvVars` | tidak | Daftar nama variabel lingkungan yang dapat diinterpolasi ke nilai header. Referensi ke variabel yang tidak tercantum diganti dengan string kosong. Diperlukan untuk interpolasi variabel env apa pun untuk bekerja |

537| `onFailure` | tidak | Apa yang terjadi pada tindakan ketika hook gagal: `"continue"`, yang merupakan default, atau `"block"`. Lihat [Blokir tindakan ketika hook gagal](#block-the-action-when-a-hook-fails). Memerlukan Claude Code v2.1.295 atau lebih baru |

536 538 

537Claude Code mengirimkan [JSON input](#hook-input-and-output) hook sebagai badan permintaan POST dengan `Content-Type: application/json`. Badan respons menggunakan [format JSON output](#json-output) yang sama seperti command hooks.539Claude Code mengirimkan [JSON input](#hook-input-and-output) hook sebagai badan permintaan POST dengan `Content-Type: application/json`. Badan respons menggunakan [format JSON output](#json-output) yang sama seperti command hooks.

538 540 


821 Output exit code823 Output exit code

822</h3>824</h3>

823 825 

824Exit code dari perintah hook Anda memberi tahu Claude Code apakah tindakan harus dilanjutkan, diblokir, atau diabaikan. Exit code tidak bekerja sendiri. Claude Code membaca [field output JSON](#json-output) dari stdout pada setiap exit code, bukan hanya 0, dan untuk event yang menggunakan model keputusan standar, objek yang berhasil di-parse dan lolos validasi skema berlaku bersamaan dengan kode tersebut. Pemblokiran oleh exit 2 adalah satu-satunya hasil yang tidak dapat ditimpa oleh JSON.826Exit code hook Anda memberi tahu Claude Code apakah akan melanjutkan tindakan yang memicu hook, seperti panggilan tool atau prompt. Eksekusi yang selesai memiliki salah satu dari tiga hasil:

825 827 

826Dua tabel memuat pengecualian per event: [Perilaku exit code 2 per event](#exit-code-2-behavior-per-event) menjelaskan apa yang dilakukan exit code untuk setiap event, dan [Kontrol keputusan](#decision-control) menjelaskan field keputusan mana yang dihormati setiap event. Field universal seperti `systemMessage` berfungsi di sebagian besar event dan tercantum dalam tabel [output JSON](#json-output).828* **Berhasil**: hook Anda keluar dengan 0. Claude Code menerapkan field [output JSON](#json-output) apa pun yang dicetak hook Anda, dan tindakan dilanjutkan kecuali field tersebut memblokir atau menolaknya.

829* **Error blocking**: hook Anda keluar dengan 2. Pada [event yang dapat memblokir](#exit-code-2-behavior-per-event), Claude Code menghentikan tindakan.

830* **Error non-blocking**: hook Anda keluar dengan kode lain, atau gagal dengan cara lain, seperti tidak dapat dimulai atau mencetak JSON yang tidak valid. Tindakan dilanjutkan, dan pada event seperti `PreToolUse` Anda melihat pemberitahuan `<hook name> hook error` di transkrip. Jika Anda ingin hook yang gagal memblokir tindakan, atur [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

831 

832Apa yang dicetak hook Anda ke stdout dapat mengubah hasilnya. Misalnya, jika hook `PreToolUse` keluar dengan 1 tetapi mencetak JSON yang lolos validasi, eksekusi dianggap berhasil dan field JSON menentukan apa yang terjadi. Untuk menemukan hasil hook Anda pada event seperti `PreToolUse`, cocokkan apa yang dicetaknya ke stdout di kolom pertama dengan exit code-nya di bagian atas:

833 

834| Stdout | Exit 0 | Exit 2 | Exit code lainnya |

835| :- | :- | :- | :- |

836| Objek JSON yang lolos [validasi skema](#json-output) | Berhasil. Field diterapkan | Error blocking. Claude Code tetap membaca field, tetapi field tersebut tidak dapat menimpa pemblokiran | Berhasil. Claude Code mengabaikan exit code, dan hanya field yang menentukan. Dengan [`onFailure: "block"`](#block-the-action-when-a-hook-fails), ini dihitung sebagai kegagalan |

837| JSON yang [tidak dapat di-parse](#exit-code-0) atau gagal validasi skema | Error non-blocking. Pemberitahuan memuat pesan parse atau validasi | Error blocking. Stderr Anda menjadi alasannya | Error non-blocking. Pemberitahuan memuat pesan parse atau validasi |

838| [Teks biasa](#exit-code-0), atau tidak ada apa pun | Berhasil | Error blocking. Stderr Anda menjadi alasannya | Error non-blocking. Pemberitahuan memuat baris pertama stderr Anda |

839 

840Beberapa event memiliki aturannya sendiri:

841 

842* **`WorktreeCreate`**: exit code bukan nol apa pun membuat pembuatan worktree gagal, apa pun isi JSON Anda.

843* **`WorktreeRemove`**: exit code bukan nol apa pun membuat penghapusan worktree gagal jika direktori masih ada setelahnya.

844* **`Stop`, `SubagentStop`, `TaskCompleted`, dan hook `UserPromptSubmit` dari plugin**: ketika hook Anda keluar dengan 2 tanpa apa pun di stdout dan stderr-nya menyatakan bahwa suatu file tidak ada, seperti `No such file or directory`, Claude Code memperlakukan eksekusi tersebut sebagai error non-blocking.

845* **`Elicitation` dan `ElicitationResult`**: Claude Code menerapkan `hookSpecificOutput` Anda ketika hook Anda keluar dengan 0, dan mengabaikannya pada exit code lainnya.

846* **Event yang membuang output hook, seperti `StopFailure`**: Claude Code mengabaikan JSON Anda pada setiap exit code, kecuali field efek samping seperti `terminalSequence`, yang tetap dijalankan.

847 

848Untuk memeriksa apa yang dilakukan exit code 2 pada event Anda, lihat [Perilaku exit code 2 per event](#exit-code-2-behavior-per-event). Untuk memeriksa field keputusan mana yang dihormatinya, lihat [Kontrol keputusan](#decision-control).

827 849 

828<h4 id="exit-code-0">850<h4 id="exit-code-0">

829 Exit code 0851 Exit code 0


835 857 

836Apakah Claude Code membaca stdout Anda sebagai [output JSON](#json-output) atau sebagai teks biasa bergantung pada bagaimana stdout diawali dan diakhiri, dengan mengabaikan whitespace di sekitarnya:858Apakah Claude Code membaca stdout Anda sebagai [output JSON](#json-output) atau sebagai teks biasa bergantung pada bagaimana stdout diawali dan diakhiri, dengan mengabaikan whitespace di sekitarnya:

837 859 

838* **Diawali dengan `{` dan diakhiri dengan `}`**: Claude Code mem-parse-nya sebagai JSON. Ketika output terdiri dari dua baris atau lebih yang masing-masing dapat di-parse sebagai JSON secara terpisah, dan tidak ada baris yang merupakan objek [output JSON](#json-output) yang mengatur suatu field, Claude Code memperlakukan seluruh output sebagai teks biasa. Ketika salah satu baris tersebut mengatur suatu field, seluruh output dianggap gagal di-parse, seperti dijelaskan di bawah.860* **Diawali dengan `{` dan diakhiri dengan `}`**: Claude Code mem-parse-nya sebagai JSON. Ketika output terdiri dari dua baris atau lebih yang masing-masing dapat di-parse sebagai JSON secara terpisah, dan tidak ada baris yang merupakan objek [output JSON](#json-output) yang mengatur suatu field, Claude Code memperlakukan seluruh output sebagai teks biasa. Ketika salah satu baris tersebut mengatur suatu field, seluruh output dianggap gagal di-parse.

839* **Diawali dengan `{` tetapi tidak diakhiri dengan `}`**: Claude Code memperlakukannya sebagai teks biasa.861* **Diawali dengan `{` tetapi tidak diakhiri dengan `}`**: Claude Code memperlakukannya sebagai teks biasa.

840* **Diawali dengan hal lain**: Claude Code memperlakukannya sebagai teks biasa, termasuk array JSON atau string JSON yang diberi tanda kutip.862* **Diawali dengan hal lain**: Claude Code memperlakukannya sebagai teks biasa, termasuk array JSON atau string JSON yang diberi tanda kutip.

841 863 

842Untuk event yang menggunakan model keputusan standar, exit 0 dengan objek yang berhasil di-parse tetapi gagal validasi skema adalah error non-blocking: tindakan dilanjutkan, dan transkrip menampilkan pemberitahuan `<hook name> hook error` dengan pesan validasi. Hal yang sama terjadi pada exit code apa pun selain 2, sementara [exit 2 tetap memblokir](#exit-code-2).864Ketika Claude Code mencoba mem-parse stdout Anda sebagai JSON dan gagal, atau objek yang di-parse gagal [validasi skema](#json-output), eksekusi tersebut adalah [error non-blocking](#exit-code-output). Pemberitahuan `<hook name> hook error` memuat pesan parse atau validasi. Pada event yang menambahkan stdout teks biasa sebagai konteks, Claude Code tidak menambahkan stdout yang gagal di-parse.

843 

844Untuk event yang menggunakan model keputusan standar, ketika Claude Code mencoba mem-parse stdout Anda sebagai JSON dan gagal, Claude Code melaporkan error non-blocking pada setiap exit code selain 2. Transkrip menampilkan pemberitahuan `<hook name> hook error` dengan pesan parse. Pada event yang menambahkan stdout teks biasa sebagai konteks, Claude Code tidak menambahkan teks tersebut. Sebelum v2.1.248, Claude Code memperlakukan stdout tersebut sebagai teks biasa.

845 865 

846Stderr dari hook yang keluar dengan 0 hanya masuk ke log debug, tidak pernah ke transkrip, dan Claude tidak pernah melihatnya. Untuk membacanya sendiri, aktifkan [logging debug](#debug-hooks). Untuk menyampaikan peringatan kepada Claude dari hook `PostToolUse` atau `PostToolUseFailure`, gunakan exit 2 sehingga [Claude melihat stderr](#exit-code-2-behavior-per-event) meskipun tool sudah berjalan.866Claude tidak pernah melihat stderr dari hook yang keluar dengan 0. Untuk membacanya sendiri pada event seperti `PreToolUse`, aktifkan [logging debug](#debug-hooks). Untuk menyampaikan peringatan kepada Claude dari hook `PostToolUse` atau `PostToolUseFailure`, gunakan exit 2 sehingga [Claude melihat stderr](#exit-code-2-behavior-per-event) meskipun tool sudah berjalan.

847 867 

848<h4 id="exit-code-2">868<h4 id="exit-code-2">

849 Exit code 2869 Exit code 2

850</h4>870</h4>

851 871 

852Exit 2 berarti error blocking. Pada [event yang dapat memblokir](#exit-code-2-behavior-per-event), exit 2 memblokir terlepas dari apakah Anda mencetak JSON atau tidak: bahkan `permissionDecision` JSON bernilai `"allow"` tidak dapat menimpanya. Claude Code tetap membaca [output JSON](#json-output) yang valid di stdout. Pada `Elicitation` dan `ElicitationResult`, `hookSpecificOutput` dari hook yang keluar dengan exit 2 diabaikan.872Keluar dengan kode 2 untuk memblokir tindakan. Pada [event yang dapat memblokir](#exit-code-2-behavior-per-event), Claude Code menghentikan tindakan: misalnya, hook `PreToolUse` memblokir panggilan tool, dan hook `UserPromptSubmit` menolak prompt.

853 873 

854Pesan pemblokiran adalah alasan dari keputusan pemblokiran dalam JSON Anda jika ada, dan teks stderr Anda jika tidak. Apa yang dilakukan pemblokiran bervariasi menurut event: `PreToolUse` memblokir panggilan tool, `UserPromptSubmit` menolak prompt, dan seterusnya. [Perilaku exit code 2 per event](#exit-code-2-behavior-per-event) mencantumkan efek untuk setiap event, dan bagian setiap event menjelaskan ke mana pesan tersebut dikirim.874Pesan yang menyertai pemblokiran adalah stderr hook Anda. Jika hook Anda juga mencetak JSON yang membuat keputusan pemblokiran, Claude Code menggunakan alasan dari keputusan tersebut sebagai gantinya.

855 875 

856Hook yang keluar dengan 2 sambil mencetak JSON yang gagal validasi skema [output JSON](#json-output) tetap memblokir: Claude Code menggunakan stderr sebagai alasan pemblokiran dan mencatat kegagalan validasi di log debug. Sebelum v2.1.214, Claude Code memperlakukan kombinasi tersebut sebagai error non-blocking dan tindakan dilanjutkan.876Exit 2 memblokir bahkan ketika hook Anda mencetak JSON:

877 

878* **JSON yang lolos validasi skema**: Claude Code tetap membaca field [output JSON](#json-output), tetapi field tersebut tidak dapat menimpa pemblokiran. Bahkan `permissionDecision` bernilai `"allow"` tidak membuat tindakan diloloskan. Pada `Elicitation` dan `ElicitationResult`, `hookSpecificOutput` dari hook yang keluar dengan exit 2 diabaikan.

879* **JSON yang gagal validasi skema**: hook tetap memblokir. Claude Code menggunakan stderr Anda sebagai alasan pemblokiran dan mencatat kegagalan validasi di log debug.

857 880 

858Skrip ini memblokir perintah `rm` dengan keluar menggunakan 2 dan menyerahkan setiap perintah lain ke alur izin normal:881Skrip ini memblokir perintah `rm` dengan keluar menggunakan 2 dan menyerahkan setiap perintah lain ke alur izin normal:

859 882 


871exit 0 # No decision: the normal permission flow applies894exit 0 # No decision: the normal permission flow applies

872```895```

873 896 

897Dengan skrip ini terdaftar sebagai hook `PreToolUse` pada `Bash`, perintah yang diawali dengan `rm` diblokir, dan Claude menerima stderr hook sebagai error tool, dengan awalan nama event, nama tool, dan perintah hook:

898 

899```text theme={null}

900PreToolUse:Bash hook error: [${CLAUDE_PROJECT_DIR}/.claude/hooks/no-rm.sh]: Blocked: rm commands are not allowed

901```

902 

874<h4 id="other-exit-codes">903<h4 id="other-exit-codes">

875 Exit code lainnya904 Exit code lainnya

876</h4>905</h4>

877 906 

878Exit code lainnya tidak memblokir dengan sendirinya untuk sebagian besar event hook. Apa yang terjadi bergantung pada stdout Anda:907Ketika hook Anda keluar dengan kode selain 0 atau 2 dan mencetak teks biasa atau tidak mencetak apa pun ke stdout, eksekusi tersebut adalah [error non-blocking](#exit-code-output). Anda melihat pemberitahuan `<hook name> hook error` di transkrip dengan `Failed with non-blocking status code:` dan baris pertama stderr hook Anda. Misalnya, ketika hook `PreToolUse` pada `Bash` mencetak `something broke` ke stderr dan keluar dengan 1, pemberitahuan `PreToolUse:Bash hook error` memuat baris ini:

879 908 

880* Dengan objek yang berhasil di-parse dan lolos validasi skema, untuk event yang menggunakan model keputusan standar, Claude Code mengabaikan exit code dan hanya JSON yang menentukan hasilnya:909```text theme={null}

881 * Setiap field yang didukung event dihormati, termasuk `permissionDecision`, `additionalContext`, `updatedInput`, dan `systemMessage`, dan hook tidak dilaporkan sebagai error.910Failed with non-blocking status code: something broke

882 * [Kontrol keputusan](#decision-control) mencantumkan field keputusan per event; field universal seperti `systemMessage` mengikuti tabel [output JSON](#json-output).911```

883* Dengan objek yang berhasil di-parse tetapi gagal validasi skema, untuk event yang menggunakan model keputusan standar, hasilnya adalah error non-blocking yang sama seperti [pada exit 0](#exit-code-0): tindakan dilanjutkan, dan pemberitahuan `<hook name> hook error` memuat pesan validasi.

884* Dengan stdout yang [dicoba di-parse sebagai JSON](#exit-code-0) oleh Claude Code tetapi gagal, Claude Code melaporkan error non-blocking yang sama seperti pada exit 0 untuk event yang menggunakan model keputusan standar. Tindakan dilanjutkan, dan pemberitahuan memuat pesan parse.

885* Dengan stdout yang [diperlakukan sebagai teks biasa](#exit-code-0) oleh Claude Code, atau dengan stdout kosong, hasilnya adalah error non-blocking untuk sebagian besar event hook: tindakan dilanjutkan, dan transkrip menampilkan pemberitahuan `<hook name> hook error` diikuti baris pertama stderr, dengan awalan `Failed with non-blocking status code:`. Untuk menangkap stderr lengkap, aktifkan [logging debug](#debug-hooks).

886 912 

887Event di luar model keputusan standar memiliki barisnya sendiri dalam [tabel per event](#exit-code-2-behavior-per-event): `WorktreeCreate` menggagalkan pembuatan pada exit bukan nol apa pun, apa pun isi JSON Anda, dan event yang membuang output hook sepenuhnya, seperti `StopFailure`, mengabaikan JSON Anda pada setiap exit code, kecuali field efek samping seperti `terminalSequence`, yang tetap dijalankan.913Untuk menangkap stderr lengkap alih-alih hanya baris pertamanya, aktifkan [logging debug](#debug-hooks).

888 914 

889Hook yang tidak dapat dimulai masuk ke kategori non-blocking yang sama. Ketika path skrip tidak ada atau tidak dapat dieksekusi, shell keluar dengan kode seperti 127 dan Anda melihat pemberitahuan yang sama dengan pesan interpreter, misalnya `Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory`. Untuk sebagian besar event hook, tindakan dilanjutkan. Saat Anda menyiapkan hook kebijakan, perhatikan pemberitahuan ini pada eksekusi pertamanya: path yang salah ketik di `settings.json` membuat gerbang tersebut nonaktif tanpa pemberitahuan.915Hook yang tidak dapat dimulai juga merupakan error non-blocking. Dalam bentuk shell, ketika path skrip tidak ada atau tidak dapat dieksekusi, shell keluar dengan kode seperti 127 dan pemberitahuan memuat pesan interpreter, misalnya `Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory`. Saat Anda menyiapkan hook kebijakan, perhatikan pemberitahuan ini pada eksekusi pertamanya, karena path yang salah ketik di `settings.json` berarti hook tidak pernah berjalan. Untuk memblokir tindakan sebagai gantinya, atur [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

890 916 

891<Warning>917<Warning>

892 Untuk sebagian besar event hook, exit code 2 adalah satu-satunya exit code yang memblokir hanya melalui kode tersebut. Tanpa JSON yang valid di stdout, Claude Code memperlakukan exit code 1 sebagai error non-blocking dan melanjutkan tindakan, meskipun 1 adalah kode kegagalan Unix yang konvensional. Jika hook Anda dimaksudkan untuk menegakkan kebijakan, gunakan `exit 2`. Event worktree berbeda: exit code bukan nol apa pun dari `WorktreeCreate` membatalkan pembuatan worktree, dan exit code bukan nol apa pun dari `WorktreeRemove` membuat penghapusan worktree gagal jika direktori masih ada setelahnya.918 Tanpa JSON yang valid di stdout, Claude Code memperlakukan exit code 1 sebagai error non-blocking, meskipun 1 adalah kode kegagalan Unix yang konvensional. Jika hook Anda dimaksudkan untuk menegakkan kebijakan, gunakan `exit 2`.

893</Warning>919</Warning>

894 920 

895<h4 id="timeouts">921<h4 id="timeouts">


900 926 

901Pada [`PreModelSwitch`](#premodelswitch), hook yang dibatalkan karena timeout memblokir pergantian model. Pada `PreToolUse`, kedua keluarga hook berbeda:927Pada [`PreModelSwitch`](#premodelswitch), hook yang dibatalkan karena timeout memblokir pergantian model. Pada `PreToolUse`, kedua keluarga hook berbeda:

902 928 

903* Hook `command`, `http`, atau `mcp_tool` yang mengalami timeout tidak memblokir panggilan tool. Panggilan berlanjut melalui [alur izin](/docs/id/permissions) normal, jadi jangan mengandalkan hook yang macet untuk berfungsi sebagai gerbang.929* Hook `command`, `http`, atau `mcp_tool` yang mengalami timeout tidak memblokir panggilan tool. Panggilan berlanjut melalui [alur izin](/docs/id/permissions) normal, jadi jangan mengandalkan hook yang macet untuk berfungsi sebagai gerbang. Untuk memblokir panggilan ketika hook `command` atau `http` mengalami timeout, atur [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

904* [Callback hook Agent SDK](/docs/id/agent-sdk/hooks) yang melebihi timeout-nya [memblokir panggilan tool](#pretooluse).930* [Callback hook Agent SDK](/docs/id/agent-sdk/hooks) yang melebihi timeout-nya [memblokir panggilan tool](#pretooluse).

905 931 

932<h4 id="block-the-action-when-a-hook-fails">

933 Memblokir tindakan ketika hook gagal

934</h4>

935 

936Pada sebagian besar event, ketika hook gagal atau mengalami timeout, Claude Code tetap menjalankan tindakan, sehingga hook kebijakan dengan path yang salah atau skrip yang crash meloloskan semuanya. Untuk memblokir tindakan sebagai gantinya, atur `"onFailure": "block"` pada hook `command` atau `http`. Nilai default-nya adalah `"continue"`. Memerlukan Claude Code v2.1.295 atau lebih baru.

937 

938Hook `PreToolUse` di `.claude/settings.json` ini menjalankan skrip proyek sebelum setiap perintah Bash, dan memblokir perintah jika skrip gagal:

939 

940```json theme={null}

941{

942 "hooks": {

943 "PreToolUse": [

944 {

945 "matcher": "Bash",

946 "hooks": [

947 {

948 "type": "command",

949 "command": "node",

950 "args": ["${CLAUDE_PROJECT_DIR}/.claude/hooks/check-command.js"],

951 "onFailure": "block"

952 }

953 ]

954 }

955 ]

956 }

957}

958```

959 

960Untuk mengujinya, biarkan `check-command.js` tidak ada dan minta Claude menjalankan perintah Bash seperti `ls`. Claude Code memblokir panggilan, dan error-nya menyertakan `failed; blocking because onFailure is "block"` diikuti output error node itu sendiri, yang dipangkas di sini menjadi satu baris:

961 

962```text theme={null}

963PreToolUse:Bash hook error: [node ${CLAUDE_PROJECT_DIR}/.claude/hooks/check-command.js]: failed; blocking because onFailure is "block"

964Error: Cannot find module '/path/to/project/.claude/hooks/check-command.js'

965```

966 

967Setelah timeout, pesan menyatakan `timed out` alih-alih `failed`. Tanpa `onFailure` diatur, skrip yang sama yang tidak ada adalah error non-blocking dan `ls` berjalan.

968 

969Setiap hal berikut dihitung sebagai kegagalan:

970 

971* **Tidak dapat dimulai**: hook perintah gagal dimulai, misalnya karena skrip atau executable tidak ada

972* **Exit code selain 0 atau 2**: berlaku untuk hook perintah meskipun hook tersebut mencetak JSON yang mengizinkan tindakan, seperti `permissionDecision: "allow"`. Untuk mengembalikan keputusan JSON, keluar dengan 0

973* **Error HTTP**: koneksi hook HTTP gagal, atau status respons bukan 2xx

974* **Timeout**: hook mencapai [`timeout`](#common-fields)-nya

975* **Output tidak valid**: output JSON [tidak dapat di-parse](#exit-code-0) atau gagal [validasi skema](#json-output). Untuk hook HTTP, body 2xx yang bukan kosong dan bukan objek JSON juga dihitung. Stdout teks biasa dari hook perintah bukan kegagalan

976 

977Dengan `"block"` diatur, kegagalan melakukan apa yang [dilakukan exit code 2 pada event tersebut](#exit-code-2-behavior-per-event), kecuali pada `PermissionRequest`, di mana kegagalan menolak permintaan. Misalnya, kegagalan `PreToolUse` memblokir panggilan tool dan kegagalan `UserPromptSubmit` memblokir prompt.

978 

979Field ini tidak berpengaruh pada hook berikut:

980 

981* **Hook `Stop`, `SubagentStop`, `TaskCompleted`, dan `TeammateIdle`**: exit code 2 pada event ini mengirim Claude kembali untuk terus bekerja, dan Claude tidak dapat memperbaiki hook yang tidak mau berjalan

982* **Hook perintah latar belakang**: hook perintah yang mengatur [`async` atau `asyncRewake`](#run-hooks-in-the-background)

983 

906<h4 id="exit-code-2-behavior-per-event">984<h4 id="exit-code-2-behavior-per-event">

907 Perilaku exit code 2 per event985 Perilaku exit code 2 per event

908</h4>986</h4>


960* **Kegagalan koneksi**: error non-blocking, eksekusi berlanjut1038* **Kegagalan koneksi**: error non-blocking, eksekusi berlanjut

961* **Timeout**: hook dibatalkan, seperti dijelaskan di bagian [Timeout](#timeouts)1039* **Timeout**: hook dibatalkan, seperti dijelaskan di bagian [Timeout](#timeouts)

962 1040 

963Tidak seperti hook perintah, hook HTTP tidak dapat memberi sinyal error blocking hanya melalui kode status. Untuk memblokir panggilan tool atau menolak izin, kembalikan respons 2xx dengan body JSON yang berisi field keputusan yang sesuai.1041Hook HTTP tidak dapat memberi sinyal error blocking hanya melalui kode status: status non-2xx atau koneksi yang gagal adalah [error non-blocking](#exit-code-output). Untuk memblokir panggilan tool atau menolak izin, kembalikan respons 2xx dengan body JSON yang berisi field keputusan yang sesuai. Untuk memblokir tindakan ketika permintaan gagal atau mengembalikan status non-2xx, atur [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

964 1042 

965<h3 id="json-output">1043<h3 id="json-output">

966 Output JSON1044 Output JSON


1237 Kontrol keputusan SessionStart1315 Kontrol keputusan SessionStart

1238</h4>1316</h4>

1239 1317 

1240Claude Code menambahkan stdout yang [diperlakukannya sebagai teks biasa](#exit-code-0) ke konteks Claude. Selain [field output JSON](#json-output) yang tersedia untuk semua hook, Anda dapat mengembalikan field khusus event berikut:1318Hook SessionStart dapat menambahkan konteks untuk Claude, menyediakan pesan pengguna pertama, menetapkan judul sesi, memantau file, dan memuat ulang skill. Kembalikan field untuk masing-masing, selain [field output JSON](#json-output) yang tersedia untuk semua hook:

1241 1319 

1242| Field | Deskripsi |1320| Field | Deskripsi |

1243| :- | :- |1321| :- | :- |

1244| `additionalContext` | String yang ditambahkan ke konteks Claude di awal percakapan, sebelum prompt pertama. Lihat [Menambahkan konteks untuk Claude](#add-context-for-claude) untuk cara teks dikirimkan dan apa yang perlu dimasukkan ke dalamnya |1322| `additionalContext` | String yang ditambahkan ke konteks Claude di awal percakapan, sebelum prompt pertama. Lihat [Menambahkan konteks untuk Claude](#add-context-for-claude) untuk cara teks dikirimkan dan apa yang perlu dimasukkan ke dalamnya |

1245| `initialUserMessage` | String yang digunakan sebagai pesan pengguna pertama dalam sesi. Berlaku dalam [mode non-interaktif](/docs/id/headless) dengan flag `-p`, tempat string ini menjadi giliran pertama bahkan jika tidak ada prompt yang diberikan. Jika prompt diberikan, prompt tersebut menyusul sebagai giliran berikutnya. Tidak seperti `additionalContext`, yang melekat pada giliran yang sudah ada, field ini membuat giliran tersebut |1323| `initialUserMessage` | String yang digunakan sebagai pesan pengguna pertama dari sesi, dalam [mode non-interaktif](/docs/id/headless) dengan flag `-p`. String ini menjadi giliran pertama meskipun Anda tidak memberikan prompt. Prompt yang Anda berikan akan mengikuti sebagai giliran berikutnya |

1246| `sessionTitle` | Menetapkan judul sesi, dengan efek yang sama seperti `/rename`. Gunakan untuk memberi nama sesi secara otomatis dari folder peluncuran, branch git, atau nama worktree. Berlaku saat `source` bernilai `"startup"`, `"resume"`, atau `"fork"`; diabaikan pada `"clear"` dan `"compact"` |1324| `sessionTitle` | Menetapkan judul sesi, dengan efek yang sama seperti `/rename`. Berlaku ketika `source` bernilai `"startup"`, `"resume"`, atau `"fork"` |

1247| `watchPaths` | Array path absolut yang dipantau untuk event [FileChanged](#filechanged) selama sesi ini |1325| `watchPaths` | Array path absolut yang dipantau untuk event [FileChanged](#filechanged) selama sesi ini |

1248| `reloadSkills` | Boolean. Saat `true`, Claude Code memindai ulang direktori [skill](/docs/id/skills) dan perintah setelah hook SessionStart selesai, sehingga skill yang dipasang oleh hook tersedia dalam sesi yang sama, dimulai dari prompt pertama |1326| `reloadSkills` | Boolean. Ketika `true`, Claude Code memindai ulang direktori [skill](/docs/id/skills) dan perintah setelah hook SessionStart selesai. Lihat [Memuat ulang skill yang dipasang hook](#reload-skills-that-a-hook-installs) |

1327 

1328Output ini menambahkan konteks dan memberi nama sesi:

1249 1329 

1250```json theme={null}1330```json theme={null}

1251{1331{


1257}1337}

1258```1338```

1259 1339 

1260Karena stdout biasa sudah sampai ke Claude untuk event ini, hook yang hanya memuat konteks dapat langsung mencetak ke stdout tanpa membuat JSON. Gunakan bentuk JSON saat Anda perlu menggabungkan konteks dengan field lain seperti `sessionTitle`.1340Hook yang hanya menambahkan konteks dapat mencetaknya tanpa membangun JSON, karena Claude Code menambahkan [stdout teks biasa](#exit-code-0) dari hook SessionStart ke konteks Claude.

1341 

1342Jika hook SessionStart dari plugin Anda menyediakan `initialUserMessage` atau `sessionTitle`, pasang plugin tersebut sebelum sesi dimulai. Claude Code mengabaikan kedua field tersebut dari plugin yang selesai dipasang setelah hook SessionStart berjalan.

1343 

1344<h4 id="reload-skills-that-a-hook-installs">

1345 Memuat ulang skill yang dipasang hook

1346</h4>

1347 

1348Agar skill yang dipasang oleh hook SessionStart tersedia dalam sesi yang sama, kembalikan `reloadSkills`. Penemuan skill biasanya berjalan sebelum hook SessionStart selesai, sehingga tanpanya, file yang ditulis hook ke `~/.claude/skills/` atau `.claude/skills/` bisa belum ada ketika prompt pertama berjalan.

1261 1349 

1262Gunakan `reloadSkills` saat hook SessionStart memasang atau memperbarui skill. Penemuan skill biasanya berjalan sebelum hook SessionStart selesai, sehingga file yang ditulis hook ke `~/.claude/skills/` atau `.claude/skills/` jika tidak demikian hanya akan muncul di sesi berikutnya. Contoh ini menyinkronkan repositori skill bersama dan meminta pemindaian ulang:1350Contoh ini menyinkronkan repositori skill bersama dan meminta pemindaian ulang:

1263 1351 

1264```bash theme={null}1352```bash theme={null}

1265#!/bin/bash1353#!/bin/bash


1270echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'1358echo '{"hookSpecificOutput": {"hookEventName": "SessionStart", "reloadSkills": true}}'

1271```1359```

1272 1360 

1273URL repositori tersebut adalah placeholder; ganti dengan repositori skill Anda sendiri. Dengan placeholder tersebut, clone gagal dan mencetak pesan `fatal:` ke stderr. Stderr dari hook SessionStart yang keluar dengan 0 hanya bersifat informasional, sehingga permintaan `reloadSkills` tetap berlaku.1361URL repositori tersebut adalah placeholder. Ganti dengan repositori skill Anda sendiri.

1274 1362 

1275<h4 id="persist-environment-variables">1363<h4 id="persist-environment-variables">

1276 Mempertahankan environment variable1364 Mempertahankan environment variable


1419 1507 

1420Hook `UserPromptSubmit` memiliki timeout default 30 detik untuk jenis `command`, `http`, dan `mcp_tool`, lebih pendek daripada default 600 detik untuk jenis tersebut pada sebagian besar event lain. Karena hook ini berjalan sebelum setiap prompt dan memblokir pemrosesan model hingga selesai, hook yang macet akan menghentikan sesi. Jika hook Anda memerlukan waktu lebih lama, tetapkan field `timeout` dalam entri hook.1508Hook `UserPromptSubmit` memiliki timeout default 30 detik untuk jenis `command`, `http`, dan `mcp_tool`, lebih pendek daripada default 600 detik untuk jenis tersebut pada sebagian besar event lain. Karena hook ini berjalan sebelum setiap prompt dan memblokir pemrosesan model hingga selesai, hook yang macet akan menghentikan sesi. Jika hook Anda memerlukan waktu lebih lama, tetapkan field `timeout` dalam entri hook.

1421 1509 

1422Selain hook perintah yang Anda jalankan dengan [`async: true`](#run-hooks-in-the-background), hook perintah, HTTP, atau tool MCP `UserPromptSubmit` yang mencapai timeout-nya dibatalkan dan output-nya, termasuk `additionalContext` apa pun, dibuang. Prompt tetap sampai ke Claude tanpa konteks tersebut. Transkrip menampilkan pemberitahuan yang menyebutkan nama hook, timeout yang dipicu, dan bahwa output telah dibuang.1510Selain hook perintah yang Anda jalankan dengan [`async: true`](#run-hooks-in-the-background), hook perintah, HTTP, atau tool MCP `UserPromptSubmit` yang mencapai timeout-nya akan dibatalkan dan output-nya, termasuk `additionalContext` apa pun, dibuang. Prompt tetap sampai ke Claude tanpa konteks tersebut. Untuk memblokir prompt sebagai gantinya, tetapkan [`onFailure: "block"`](#block-the-action-when-a-hook-fails) pada hook perintah atau HTTP. Transkrip menampilkan pemberitahuan yang menyebutkan hook, timeout yang dipicu, dan bahwa output telah dibuang.

1423 1511 

1424[Hook callback Agent SDK](/docs/id/agent-sdk/hooks) pada `UserPromptSubmit` yang mencapai timeout-nya memblokir prompt dengan pesan yang menyebutkan nama hook dan timeout-nya, karena callback di sana dapat berfungsi sebagai gerbang kebijakan yang tidak boleh gagal dalam keadaan terbuka. Sesi tetap berlanjut. Sebelum v2.1.208, timeout callback pada event tersebut mengakhiri giliran dengan error eksekusi.1512[Hook callback Agent SDK](/docs/id/agent-sdk/hooks) pada `UserPromptSubmit` yang mencapai timeout-nya memblokir prompt dengan pesan yang menyebutkan nama hook dan timeout-nya, karena callback di sana dapat berfungsi sebagai gerbang kebijakan yang tidak boleh gagal dalam keadaan terbuka. Sesi tetap berlanjut. Sebelum v2.1.208, timeout callback pada event tersebut mengakhiri giliran dengan error eksekusi.

1425 1513 


1860| :- | :- | :- | :- |1948| :- | :- | :- | :- |

1861| `url` | string | `"https://example.com/api"` | URL tempat konten diambil |1949| `url` | string | `"https://example.com/api"` | URL tempat konten diambil |

1862| `prompt` | string | `"Extract the API endpoints"` | Prompt yang dijalankan pada konten yang diambil |1950| `prompt` | string | `"Extract the API endpoints"` | Prompt yang dijalankan pada konten yang diambil |

1951| `offset` | number | `100000` | Jumlah karakter opsional yang dilewati dari awal halaman. Claude menetapkannya untuk terus membaca halaman yang panjang. Memerlukan Claude Code v2.1.290 atau yang lebih baru |

1863 1952 

1864<h5 id="websearch">1953<h5 id="websearch">

1865 WebSearch1954 WebSearch


2112| `message` | Hanya untuk `"deny"`: memberi tahu Claude mengapa izin ditolak |2201| `message` | Hanya untuk `"deny"`: memberi tahu Claude mengapa izin ditolak |

2113| `interrupt` | Hanya untuk `"deny"`: jika `true`, menghentikan Claude |2202| `interrupt` | Hanya untuk `"deny"`: jika `true`, menghentikan Claude |

2114 2203 

2115Hook yang keluar dengan 2 tanpa objek `decision` membiarkan alur izin tidak berubah, dan stderr-nya dibuang. Hanya objek `decision` yang dapat memberikan atau menolak permintaan.2204Hook yang keluar dengan kode 2 tanpa objek `decision` membiarkan alur izin tidak berubah, dan stderr-nya dibuang. Untuk memberikan atau menolak permintaan, kembalikan objek `decision`.

2116 2205 

2117```json theme={null}2206```json theme={null}

2118{2207{


2678 Kontrol keputusan TaskCreated2767 Kontrol keputusan TaskCreated

2679</h4>2768</h4>

2680 2769 

2681Hook TaskCreated dapat memblokir pembuatan dengan dua cara. Dengan cara mana pun, Claude Code menghapus tugas dan mengembalikan pesan Anda kepada Claude sebagai error tool. Claude Code mengabaikan `continue: false` dari event ini dan Claude tetap bekerja.2770Hook TaskCreated dapat memblokir pembuatan dengan exit code 2 atau dengan keputusan JSON. Apa pun caranya, Claude Code menghapus tugas dan mengembalikan pesan Anda kepada Claude sebagai error tool. Claude Code mengabaikan `continue: false` dari event ini dan Claude terus bekerja.

2682 2771 

2683* **Exit code 2**: Claude Code mengembalikan teks stderr sebagai pesan.2772* **Exit code 2**: Claude Code mengembalikan teks stderr sebagai pesan.

2684* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code mengembalikan `reason` sebagai pesan.2773* **JSON `{"decision": "block", "reason": "..."}`**: Claude Code mengembalikan `reason` sebagai pesan.


3561 3650 

3562Claude Code menampilkan kepada pengguna `systemMessage` apa pun yang dikembalikan hook Anda terlepas dari keputusannya, sehingga hook pelaporan biaya dapat mengembalikan `{"systemMessage": "..."}` dan keluar dengan 0.3651Claude Code menampilkan kepada pengguna `systemMessage` apa pun yang dikembalikan hook Anda terlepas dari keputusannya, sehingga hook pelaporan biaya dapat mengembalikan `{"systemMessage": "..."}` dan keluar dengan 0.

3563 3652 

3564Hook PreModelSwitch yang tidak merespons sebelum timeout-nya akan memblokir peralihan. Sebaliknya, pada [PreToolUse](#timeouts), hook perintah yang mengalami timeout membiarkan panggilan tool berlanjut. Timeout default untuk event ini adalah 30 detik. `PreModelSwitch` hanya menjalankan hook `command`, `http`, dan `mcp_tool`, sehingga default `prompt` dan `agent` tidak berlaku.3653Hook PreModelSwitch yang tidak merespons sebelum timeout-nya akan memblokir pergantian. Untuk apa yang dilakukan timeout pada event lain, lihat [Timeout](#timeouts). Timeout default untuk event ini adalah 30 detik. `PreModelSwitch` hanya menjalankan hook `command`, `http`, dan `mcp_tool`, sehingga default `prompt` dan `agent` tidak berlaku.

3565 3654 

3566Hook yang keluar dengan kode selain 0 atau 2 dan tidak mencetak keputusan JSON tidak memblokir: Claude Code menampilkan stderr-nya dan menerapkan peralihan, seperti yang dijelaskan di [Exit code lainnya](#other-exit-codes).3655Hook yang keluar dengan kode selain 0 atau 2 dan tidak mencetak keputusan JSON merupakan error yang tidak memblokir, seperti yang dijelaskan di [Exit code lainnya](#other-exit-codes).

3567 3656 

3568<h3 id="postmodelswitch">3657<h3 id="postmodelswitch">

3569 PostModelSwitch3658 PostModelSwitch


4279Async hooks memiliki batasan tambahan dibandingkan dengan hooks sinkron:4368Async hooks memiliki batasan tambahan dibandingkan dengan hooks sinkron:

4280 4369 

4281* Output hook disampaikan pada turn percakapan berikutnya. Jika sesi idle, respons menunggu sampai interaksi pengguna berikutnya. Pengecualian: hook `asyncRewake` yang keluar dengan kode 2 membangunkan Claude segera bahkan ketika sesi idle.4370* Output hook disampaikan pada turn percakapan berikutnya. Jika sesi idle, respons menunggu sampai interaksi pengguna berikutnya. Pengecualian: hook `asyncRewake` yang keluar dengan kode 2 membangunkan Claude segera bahkan ketika sesi idle.

4282* Setiap eksekusi membuat proses latar belakang terpisah. Tidak ada deduplikasi di seluruh beberapa penjalankan hook async yang sama.4371* Setiap eksekusi membuat proses latar belakang terpisah.

4283 4372 

4284<h2 id="security-considerations">4373<h2 id="security-considerations">

4285 Pertimbangan keamanan4374 Pertimbangan keamanan

hooks-guide.md +14 −11

Details

242 242 

243Untuk menguji hook, minta Claude untuk menambahkan baris dengan string yang dikutip tunggal ke file JavaScript, kemudian buka file: dengan pengaturan default Prettier, hook menulis ulang ke tanda kutip ganda.243Untuk menguji hook, minta Claude untuk menambahkan baris dengan string yang dikutip tunggal ke file JavaScript, kemudian buka file: dengan pengaturan default Prettier, hook menulis ulang ke tanda kutip ganda.

244 244 

245Ketika hook berhasil, Claude Code tidak menampilkan apa pun dalam percakapan. Untuk mengonfirmasi hook berjalan, periksa bahwa file yang diedit diformat ulang, atau lihat [Debug techniques](#debug-techniques).245Ketika hook berhasil, Claude Code tidak menampilkan apa pun dalam percakapan. Untuk mengonfirmasi hook berjalan, periksa bahwa file yang diedit diformat ulang, atau lihat [Periksa apa yang dilakukan hook](#check-what-a-hook-did).

246 246 

247Untuk memformat ulang file tertentu bagaimanapun perubahannya, termasuk ketika perintah `Bash` menulis ulangnya, gunakan hook [FileChanged](/docs/id/hooks#filechanged) sebagai gantinya.247Untuk memformat ulang file tertentu bagaimanapun perubahannya, termasuk ketika perintah `Bash` menulis ulangnya, gunakan hook [FileChanged](/docs/id/hooks#filechanged) sebagai gantinya.

248 248 


979}979}

980```980```

981 981 

982Endpoint harus mengembalikan badan respons JSON menggunakan [output format](/docs/id/hooks#json-output) yang sama seperti hook perintah. Untuk memblokir panggilan alat, kembalikan respons 2xx dengan bidang `hookSpecificOutput` yang sesuai. Kode status HTTP saja tidak dapat memblokir tindakan.982Endpoint Anda merespons dengan badan JSON dalam [format output](/docs/id/hooks#json-output) yang sama seperti hook perintah, dan Claude Code juga memeriksa status respons:

983 

984* **Status 2xx**: untuk memblokir panggilan tool, kembalikan bidang `hookSpecificOutput` yang sesuai di dalam badan respons.

985* **Status lainnya, atau permintaan gagal**: Claude Code melaporkan [kesalahan non-pemblokiran](/docs/id/hooks#exit-code-output) dan membiarkan tindakan berlanjut. Agar endpoint yang gagal memblokir tindakan, atur [`onFailure: "block"`](/docs/id/hooks#block-the-action-when-a-hook-fails) pada hook tersebut.

983 986 

984Nilai header mendukung interpolasi variabel lingkungan menggunakan sintaks `$VAR_NAME` atau `${VAR_NAME}`. Hanya variabel yang tercantum dalam array `allowedEnvVars` yang diselesaikan; semua referensi `$VAR` lainnya tetap kosong.987Nilai header mendukung interpolasi variabel lingkungan menggunakan sintaks `$VAR_NAME` atau `${VAR_NAME}`. Hanya variabel yang tercantum dalam array `allowedEnvVars` yang diselesaikan; semua referensi `$VAR` lainnya tetap kosong.

985 988 


1103 1106 

1104Ketika hook Anda mengembalikan `permissionDecision` atau `additionalContext` di level atas daripada di dalam `hookSpecificOutput`, JSON masih diurai, dan Claude Code mengabaikan bidang yang salah tempat tanpa melaporkan kesalahan. Untuk melihat bidang mana yang diabaikannya, mulai Claude Code dengan `claude --debug` dan cari [debug log](/docs/id/hooks#debug-hooks) untuk `Hook JSON output had unrecognized keys`.1107Ketika hook Anda mengembalikan `permissionDecision` atau `additionalContext` di level atas daripada di dalam `hookSpecificOutput`, JSON masih diurai, dan Claude Code mengabaikan bidang yang salah tempat tanpa melaporkan kesalahan. Untuk melihat bidang mana yang diabaikannya, mulai Claude Code dengan `claude --debug` dan cari [debug log](/docs/id/hooks#debug-hooks) untuk `Hook JSON output had unrecognized keys`.

1105 1108 

1106<h3 id="debug-techniques">1109<h3 id="check-what-a-hook-did">

1107 Teknik debug1110 Periksa apa yang dilakukan hook

1108</h3>1111</h3>

1109 1112 

1110Tekan `Ctrl+O` untuk membuka tampilan transkrip untuk memeriksa hasil dari jalankan hook:1113Tekan `Ctrl+O` untuk membuka tampilan transkrip dan cari hasil dari hook:

1111 1114 

1112* **Jalankan berhasil**: Anda tidak melihat apa pun, kecuali JSON hook muncul sesuatu, seperti `systemMessage` atau umpan balik Stop hook.1115* **Berhasil**: Anda tidak melihat apa pun, kecuali JSON hook menampilkan sesuatu, seperti `systemMessage` atau umpan balik Stop hook.

1113 * Untuk mengonfirmasi hook berjalan, periksa efeknya, seperti file yang diformat ulang, atau aktifkan debug logging seperti dijelaskan di bawah dan picu hook lagi1116 * Untuk mengonfirmasi hook berjalan, periksa efeknya, seperti file yang diformat ulang

1114* **Kesalahan pemblokiran**: pada sebagian besar acara Anda melihat umpan balik hook. Ketika JSON hook membuat keputusan pemblokiran, umpan balik adalah alasan dari keputusan itu; jika tidak, itu adalah stderr hook. Pada beberapa acara, seperti `ConfigChange` dan `Elicitation`, blok tidak menampilkan pesan.1117* **Kesalahan pemblokiran**: pada sebagian besar acara Anda melihat pesan yang menyertai pemblokiran, misalnya `Blocked: rm commands are not allowed`. Pada beberapa acara, seperti `ConfigChange` dan `Elicitation`, Anda tidak melihat pesan. [Exit code 2](/docs/id/hooks#exit-code-2) menjelaskan dari mana pesan tersebut berasal.

1115* **Kesalahan non-pemblokiran**: tindakan dilanjutkan, dan Anda melihat pemberitahuan `<hook name> hook error` dengan penjelasan singkat, seperti baris pertama stderr dengan awalan `Failed with non-blocking status code:`, atau pesan validasi JSON atau parsing.1118* **Kesalahan non-pemblokiran**: Anda melihat pemberitahuan `<hook name> hook error` dengan penjelasan singkat, seperti baris pertama stderr setelah `Failed with non-blocking status code:`, atau pesan validasi JSON atau parsing. Tindakan tetap dilanjutkan.

1116 1119 

1117Kombinasi kode keluar dan JSON mana yang menghasilkan setiap hasil, termasuk pengecualian per-acara, didefinisikan dalam bagian [Exit code output](/docs/id/hooks#exit-code-output) referensi.1120Untuk mencari hasil untuk exit code dan stdout tertentu, termasuk pengecualian per-acara, lihat [Exit code output](/docs/id/hooks#exit-code-output) dalam referensi.

1118 1121 

1119Untuk detail eksekusi lengkap termasuk hook mana yang cocok, kode keluar mereka, stdout, dan stderr, baca debug log. Mulai Claude Code dengan `claude --debug-file /tmp/claude.log` untuk menulis ke jalur yang diketahui, kemudian `tail -f /tmp/claude.log` di terminal lain. Jika Anda memulai tanpa flag itu, jalankan `/debug` di tengah sesi untuk mengaktifkan logging dan temukan jalur log.1122Untuk detail eksekusi lengkap termasuk kode keluar hook, stdout, dan stderr, baca debug log. Mulai Claude Code dengan `claude --debug-file /tmp/claude.log` untuk menulis ke jalur yang diketahui, kemudian `tail -f /tmp/claude.log` di terminal lain. Jika Anda memulai tanpa flag itu, jalankan `/debug` di tengah sesi untuk mengaktifkan logging dan temukan jalur log.

1120 1123 

1121<h2 id="learn-more">1124<h2 id="learn-more">

1122 Pelajari lebih lanjut1125 Pelajari lebih lanjut

Details

216| `^` | Karakter non-kosong pertama |216| `^` | Karakter non-kosong pertama |

217| `gg` | Awal input |217| `gg` | Awal input |

218| `G` | Awal baris terakhir |218| `G` | Awal baris terakhir |

219| `f{char}` | Lompat ke kemunculan karakter berikutnya |219| `f{char}` | Lompat ke kemunculan karakter berikutnya pada baris saat ini |

220| `F{char}` | Lompat ke kemunculan karakter sebelumnya |220| `F{char}` | Lompat ke kemunculan karakter sebelumnya pada baris saat ini |

221| `t{char}` | Lompat ke tepat sebelum kemunculan karakter berikutnya |221| `t{char}` | Lompat ke tepat sebelum kemunculan karakter berikutnya pada baris saat ini |

222| `T{char}` | Lompat ke tepat setelah kemunculan karakter sebelumnya |222| `T{char}` | Lompat ke tepat setelah kemunculan karakter sebelumnya pada baris saat ini |

223| `;` | Ulangi gerakan f/F/t/T terakhir |223| `;` | Ulangi gerakan f/F/t/T terakhir |

224| `,` | Ulangi gerakan f/F/t/T terakhir dalam urutan terbalik |224| `,` | Ulangi gerakan f/F/t/T terakhir dalam urutan terbalik |

225| `/` | Buka pencarian riwayat terbalik, sama dengan `Ctrl+R`. Prompt pencarian kosong menunjukkan petunjuk: tekan `Esc` lalu `i` lalu `/` untuk membuka menu perintah sebagai gantinya |225| `/` | Buka pencarian riwayat terbalik, sama dengan `Ctrl+R`. Prompt pencarian kosong menunjukkan petunjuk: tekan `Esc` lalu `i` lalu `/` untuk membuka menu perintah sebagai gantinya |


239| `dd` | Hapus baris |239| `dd` | Hapus baris |

240| `D` | Hapus hingga akhir baris |240| `D` | Hapus hingga akhir baris |

241| `dw`/`de`/`db` | Hapus kata/hingga akhir/kembali |241| `dw`/`de`/`db` | Hapus kata/hingga akhir/kembali |

242| `df{char}`/`dt{char}` | Hapus hingga dan termasuk, atau hingga, kemunculan karakter berikutnya |242| `df{char}`/`dt{char}` | Hapus hingga dan termasuk, atau hingga, kemunculan karakter berikutnya pada baris saat ini |

243| `dj`/`dk` | Hapus baris saat ini dan baris di bawah atau di atas |243| `dj`/`dk` | Hapus baris saat ini dan baris di bawah atau di atas |

244| `dgg`/`dG` | Hapus dari baris saat ini ke baris pertama atau terakhir |244| `dgg`/`dG` | Hapus dari baris saat ini ke baris pertama atau terakhir |

245| `d0`/`c0`/`y0` | Hapus, ubah, atau yank dari kursor kembali ke awal baris. Memerlukan Claude Code v2.1.281 atau lebih baru |245| `d0`/`c0`/`y0` | Hapus, ubah, atau yank dari kursor kembali ke awal baris. Memerlukan Claude Code v2.1.281 atau lebih baru |


859* Sebuah `#123` yang berdiri sendiri859* Sebuah `#123` yang berdiri sendiri

860* Jalur GitLab bersarang seperti `group/subgroup/project#123`860* Jalur GitLab bersarang seperti `group/subgroup/project#123`

861* Referensi apa pun di dalam rentang kode atau blok kode861* Referensi apa pun di dalam rentang kode atau blok kode

862* Referensi apa pun dalam balasan yang lebih panjang dari sekitar 1.000 baris atau 100.000 karakter

862 863 

863Claude Code membangun tautan untuk host repositori yang diidentifikasinya dari git remote Anda, bukan untuk repositori yang dirujuk oleh referensi:864Claude Code membangun tautan untuk host repositori yang diidentifikasinya dari git remote Anda, bukan untuk repositori yang dirujuk oleh referensi:

864 865 

jetbrains.md +8 −4

Details

55 Penggunaan55 Penggunaan

56</h2>56</h2>

57 57 

58<h3 id="from-your-ide">58<span id="from-your-ide" />

59 Dari IDE Anda59 

60<h3 id="run-claude-code-from-your-ide">

61 Menjalankan Claude Code dari IDE Anda

60</h3>62</h3>

61 63 

62Jalankan `claude` dari terminal terintegrasi IDE Anda, dan semua fitur integrasi akan aktif.64Jalankan `claude` dari terminal terintegrasi IDE Anda, dan semua fitur integrasi akan aktif.

63 65 

64<h3 id="from-external-terminals">66<span id="from-external-terminals" />

65 Dari Terminal Eksternal67 

68<h3 id="connect-from-an-external-terminal">

69 Menghubungkan dari terminal eksternal

66</h3>70</h3>

67 71 

68Gunakan perintah `/ide` di terminal eksternal apa pun untuk menghubungkan Claude Code ke JetBrains IDE Anda dan mengaktifkan semua fitur:72Gunakan perintah `/ide` di terminal eksternal apa pun untuk menghubungkan Claude Code ke JetBrains IDE Anda dan mengaktifkan semua fitur:

Details

79 79 

80Template pemula untuk Jamf, Iru, Intune, dan Group Policy ada di [repositori contoh MDM](https://github.com/anthropics/claude-code/tree/main/examples/mdm).80Template pemula untuk Jamf, Iru, Intune, dan Group Policy ada di [repositori contoh MDM](https://github.com/anthropics/claude-code/tree/main/examples/mdm).

81 81 

82Jika organisasi Anda menerapkan [konfigurasi HIPAA](/docs/id/hipaa-setup#deploy-managed-settings), lihat `settings-hipaa.json` dan `README-hipaa.md` di [repositori contoh pengaturan](https://github.com/anthropics/claude-code/tree/main/examples/settings) untuk `managed-settings.json` yang lebih lengkap dengan sandboxing, allowlist jaringan, perlindungan kredensial, dan retensi data lokal.

83 

82Untuk server MCP terkelola, yang Anda terapkan bersama salah satu dari ini melalui `managed-mcp.json` atau sediakan melalui kunci [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers), lihat [Konfigurasi MCP terkelola](/docs/id/managed-mcp).84Untuk server MCP terkelola, yang Anda terapkan bersama salah satu dari ini melalui `managed-mcp.json` atau sediakan melalui kunci [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers), lihat [Konfigurasi MCP terkelola](/docs/id/managed-mcp).

83 85 

84<h3 id="where-and-when-a-policy-applies">86<h3 id="where-and-when-a-policy-applies">

mcp.md +18 −10

Details

181 181 

182Masing-masing adalah salah satu input yang diterima empat opsi di [Menginstal server MCP](#installing-mcp-servers). Temukan bentuk yang Anda miliki di bawah untuk mengubahnya menjadi perintah yang diterima Claude Code. Setiap perintah menulis ke [cakupan lokal](#local-scope) kecuali Anda menambahkan `--scope project` atau `--scope user`.182Masing-masing adalah salah satu input yang diterima empat opsi di [Menginstal server MCP](#installing-mcp-servers). Temukan bentuk yang Anda miliki di bawah untuk mengubahnya menjadi perintah yang diterima Claude Code. Setiap perintah menulis ke [cakupan lokal](#local-scope) kecuali Anda menambahkan `--scope project` atau `--scope user`.

183 183 

184<h4 id="from-a-url">184<span id="from-a-url" />

185 Dari URL185 

186<h4 id="add-a-server-from-a-url">

187 Tambahkan server dari URL

186</h4>188</h4>

187 189 

188URL berarti server adalah jarak jauh. Untuk endpoint `https://`, tambahkan dengan `--transport http`, atau ikuti [Opsi 2](#option-2-add-a-remote-sse-server) ketika instruksi mengatakan endpoint menggunakan SSE. Untuk endpoint `wss://`, gunakan [Opsi 4](#option-4-add-a-remote-websocket-server) sebagai gantinya, karena `--transport` tidak menerima `ws`:190URL berarti server adalah jarak jauh. Untuk endpoint `https://`, tambahkan dengan `--transport http`, atau ikuti [Opsi 2](#option-2-add-a-remote-sse-server) ketika instruksi mengatakan endpoint menggunakan SSE. Untuk endpoint `wss://`, gunakan [Opsi 4](#option-4-add-a-remote-websocket-server) sebagai gantinya, karena `--transport` tidak menerima `ws`:


193 195 

194Jika instruksi juga memberikan kunci API atau header token, berikan dengan `--header` seperti yang ditunjukkan di [Opsi 1](#option-1-add-a-remote-http-server).196Jika instruksi juga memberikan kunci API atau header token, berikan dengan `--header` seperti yang ditunjukkan di [Opsi 1](#option-1-add-a-remote-http-server).

195 197 

196<h4 id="from-an-npx-uvx-or-binary-command">198<span id="from-an-npx-uvx-or-binary-command" />

197 Dari perintah `npx`, `uvx`, atau binary199 

200<h4 id="add-a-server-from-an-npx-uvx-or-binary-command">

201 Tambahkan server dari perintah `npx`, `uvx`, atau binary

198</h4>202</h4>

199 203 

200Perintah peluncuran berarti server berjalan sebagai proses stdio lokal. Letakkan seluruh perintah setelah `--`, sehingga Claude Code meneruskan flag seperti `-y` ke perintah yang memulai server alih-alih membacanya sebagai opsi miliknya sendiri. Berikan environment variable apa pun yang diminta instruksi dengan `--env`, setelah nama server dan sebelum `--`:204Perintah peluncuran berarti server berjalan sebagai proses stdio lokal. Letakkan seluruh perintah setelah `--`, sehingga Claude Code meneruskan flag seperti `-y` ke perintah yang memulai server alih-alih membacanya sebagai opsi miliknya sendiri. Berikan environment variable apa pun yang diminta instruksi dengan `--env`, setelah nama server dan sebelum `--`:


205 209 

206[Opsi 3](#option-3-add-a-local-stdio-server) membahas pemisah `--` secara lengkap.210[Opsi 3](#option-3-add-a-local-stdio-server) membahas pemisah `--` secara lengkap.

207 211 

208<h4 id="from-an-mcpservers-json-block">212<span id="from-an-mcpservers-json-block" />

209 Dari blok JSON `mcpServers`213 

214<h4 id="add-a-server-from-an-mcpservers-json-block">

215 Tambahkan server dari blok JSON `mcpServers`

210</h4>216</h4>

211 217 

212Blok `mcpServers` yang ditulis untuk klien MCP lain, seperti Claude Desktop, menggunakan kunci pembungkus dan bentuk entri yang dibaca Claude Code. Berikan `claude mcp add-json` objek di dalam `mcpServers`, bukan pembungkusnya. Dua jenis entri memerlukan perbaikan terlebih dahulu:218Blok `mcpServers` yang ditulis untuk klien MCP lain, seperti Claude Desktop, menggunakan kunci pembungkus dan bentuk entri yang dibaca Claude Code. Berikan `claude mcp add-json` objek di dalam `mcpServers`, bukan pembungkusnya. Dua jenis entri memerlukan perbaikan terlebih dahulu:


367 373 

368Di v2, Claude Code juga:374Di v2, Claude Code juga:

369 375 

370* Menanyakan server HTTP dan stdio apakah mereka mendukung revisi yang lebih baru, dan menggunakannya dengan server yang mendukungnya. Dalam sesi tempat ia mengambil feature flag, ia juga menanyakan server konektor claude.ai. Ia terhubung ke setiap server lain seperti yang dilakukan v1.376* Menanyakan server HTTP, stdio, dan konektor claude.ai apakah mereka mendukung revisi yang lebih baru, dan menggunakannya dengan server yang mendukungnya. Ia terhubung ke setiap server lain seperti yang dilakukan v1.

371* Menerima notifikasi `list_changed` dari server pada revisi yang lebih baru melalui [stream yang dipertahankan terbuka](#notification-streams-on-the-v2-runtime).377* Menerima notifikasi `list_changed` dari server pada revisi yang lebih baru melalui [stream yang dipertahankan terbuka](#notification-streams-on-the-v2-runtime).

372* Tidak mendaftarkan server [channel](#push-messages-with-channels) yang terhubung pada revisi yang lebih baru, karena revisi itu tidak dapat membawa pesan channel.378* Tidak mendaftarkan server [channel](#push-messages-with-channels) yang terhubung pada revisi yang lebih baru, karena revisi itu tidak dapat membawa pesan channel.

373* Menggagalkan [login OAuth MCP](#authenticate-with-remote-mcp-servers) yang respons otorisasinya menyebutkan penerbit yang tidak terduga.379* Menggagalkan [login OAuth MCP](#authenticate-with-remote-mcp-servers) yang respons otorisasinya menyebutkan penerbit yang tidak terduga.


891 Autentikasi dari baris perintah897 Autentikasi dari baris perintah

892</h3>898</h3>

893 899 

894Perintah `claude mcp login <name>` menjalankan alur OAuth server yang dikonfigurasi langsung dari shell Anda, sehingga Anda tidak perlu membuka panel `/mcp` di dalam sesi.900Perintah `claude mcp login <name>` menjalankan alur OAuth server yang dikonfigurasi langsung dari shell Anda, sehingga Anda tidak perlu membuka panel `/mcp` di dalam sesi. Untuk konektor claude.ai, ikuti [Otorisasi konektor lagi dari shell Anda](/docs/id/remote-control#authorize-a-connector-again-from-your-shell).

895 901 

896```bash theme={null}902```bash theme={null}

897claude mcp login sentry903claude mcp login sentry


1581 Pencarian tool tidak didukung pada Microsoft Foundry [deployment yang dihosting di Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), yang menolaknya di sisi server: Claude Code mendeteksi penolakan dan memuat tool MCP di awal untuk deployment tersebut. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) tidak dapat mengesampingkan ini, karena penolakan berasal dari deployment itu sendiri.1587 Pencarian tool tidak didukung pada Microsoft Foundry [deployment yang dihosting di Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options), yang menolaknya di sisi server: Claude Code mendeteksi penolakan dan memuat tool MCP di awal untuk deployment tersebut. [`ENABLE_TOOL_SEARCH`](#configure-tool-search) tidak dapat mengesampingkan ini, karena penolakan berasal dari deployment itu sendiri.

1582</Note>1588</Note>

1583 1589 

1584<h3 id="for-mcp-server-authors">1590<span id="for-mcp-server-authors" />

1585 Untuk penulis server MCP1591 

1592<h3 id="tool-search-for-mcp-server-authors">

1593 Pencarian tool untuk penulis server MCP

1586</h3>1594</h3>

1587 1595 

1588Jika Anda membangun server MCP, bidang instruksi server menjadi lebih berguna dengan pencarian tool diaktifkan. Instruksi server membantu Claude memahami kapan harus mencari tool Anda, mirip dengan cara [skills](/docs/id/skills) bekerja.1596Jika Anda membangun server MCP, bidang instruksi server menjadi lebih berguna dengan pencarian tool diaktifkan. Instruksi server membantu Claude memahami kapan harus mencari tool Anda, mirip dengan cara [skills](/docs/id/skills) bekerja.

Details

599 599 

600Dalam sesi yang masuk ke [gateway aplikasi Claude](/docs/id/claude-apps-gateway) melalui `/login`, CLI memberi stempel ekspor dengan identitas terautentikasi: `user.id` adalah subjek IdP, `user.email` adalah email yang masuk, dan `user.groups` membawa keanggotaan grup IdP sebagai string yang dipisahkan koma. Setiap ekspor juga membawa `identity.source: gateway-oidc`. Identitas gateway diterapkan terakhir, jadi kunci `user.*` dan `identity.*` yang ditetapkan melalui `OTEL_RESOURCE_ATTRIBUTES` diabaikan pada sesi gateway.600Dalam sesi yang masuk ke [gateway aplikasi Claude](/docs/id/claude-apps-gateway) melalui `/login`, CLI memberi stempel ekspor dengan identitas terautentikasi: `user.id` adalah subjek IdP, `user.email` adalah email yang masuk, dan `user.groups` membawa keanggotaan grup IdP sebagai string yang dipisahkan koma. Setiap ekspor juga membawa `identity.source: gateway-oidc`. Identitas gateway diterapkan terakhir, jadi kunci `user.*` dan `identity.*` yang ditetapkan melalui `OTEL_RESOURCE_ATTRIBUTES` diabaikan pada sesi gateway.

601 601 

602<Note>

603 Event yang dicatat Claude Code sebelum pengembang masuk tidak memuat identitas gateway. Ketika Claude Code membuka sesi dalam keadaan keluar dari gateway, misalnya setelah [gateway mengakhiri proses masuk](/docs/id/errors#cloud-gateway-session-expired), event startup yang dicatat sebelum masuk memuat `user.id` anonim dan tidak memuat `identity.source`. Event ini mencakup [`managed_settings_resolved`](#managed-settings-resolved-event), [`plugin_loaded`](#plugin-loaded-event), dan [`mcp_server_connection`](#mcp-server-connection-event).

604</Note>

605 

602Untuk atribut identitas pada sesi Claude Desktop dan Cowork yang terhubung melalui gateway, lihat [referensi `telemetry` gateway](/docs/id/claude-apps-gateway-config#telemetry).606Untuk atribut identitas pada sesi Claude Desktop dan Cowork yang terhubung melalui gateway, lihat [referensi `telemetry` gateway](/docs/id/claude-apps-gateway-config#telemetry).

603 607 

604Peristiwa juga menyertakan atribut berikut. Ini tidak pernah dilampirkan ke metrik karena akan menyebabkan kardinalitas tak terbatas:608Peristiwa juga menyertakan atribut berikut. Ini tidak pernah dilampirkan ke metrik karena akan menyebabkan kardinalitas tak terbatas:


917* `error`: Pesan kesalahan921* `error`: Pesan kesalahan

918* `status_code`: Kode status HTTP sebagai angka. Tidak ada untuk kesalahan non-HTTP seperti kegagalan koneksi.922* `status_code`: Kode status HTTP sebagai angka. Tidak ada untuk kesalahan non-HTTP seperti kegagalan koneksi.

919* `duration_ms`: Durasi permintaan dalam milidetik923* `duration_ms`: Durasi permintaan dalam milidetik

920* `attempt`: Jumlah total upaya yang dilakukan, termasuk permintaan awal (`1` berarti tidak ada pengulangan yang terjadi)924* `attempt`: Jumlah percobaan yang dilakukan, termasuk permintaan awal. [Mendeteksi retry yang habis](#detect-retry-exhaustion) menjelaskan kapan hitungan dimulai lagi

921* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).925* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).

922* `client_request_id`: UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`. Tersedia bahkan ketika kegagalan seperti timeout atau kesalahan koneksi tidak pernah menghasilkan `request_id` server; lihat tabel [atribut korelasi peristiwa](#event-correlation-attributes) untuk kapan ada. Memerlukan Claude Code v2.1.214 atau lebih baru926* `client_request_id`: UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`. Tersedia bahkan ketika kegagalan seperti timeout atau kesalahan koneksi tidak pernah menghasilkan `request_id` server; lihat tabel [atribut korelasi peristiwa](#event-correlation-attributes) untuk kapan ada. Memerlukan Claude Code v2.1.214 atau lebih baru

923* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif927* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif


1190 1194 

1191Dicatat ketika Claude Code menyelesaikan penyebutan `@` dalam prompt. Tidak setiap penyebutan memancarkan peristiwa: jalur keluar awal seperti penolakan izin, file yang terlalu besar, lampiran referensi PDF, dan kegagalan daftar direktori kembali tanpa pencatatan.1195Dicatat ketika Claude Code menyelesaikan penyebutan `@` dalam prompt. Tidak setiap penyebutan memancarkan peristiwa: jalur keluar awal seperti penolakan izin, file yang terlalu besar, lampiran referensi PDF, dan kegagalan daftar direktori kembali tanpa pencatatan.

1192 1196 

1197Setiap kali Claude Code membaca prompt, Claude Code mencatat paling banyak 100 event dengan `mention_type` berupa `"agent"` dan 100 dengan `"mcp_resource"`. Mention yang melewati salah satu batas tersebut tetap diresolusi tetapi tidak memancarkan event.

1198 

1193**Nama Peristiwa**: `claude_code.at_mention`1199**Nama Peristiwa**: `claude_code.at_mention`

1194 1200 

1195**Atribut**:1201**Atribut**:


1528 1534 

1529Claude Code mencoba ulang permintaan API yang gagal secara internal dan hanya memancarkan acara `claude_code.api_error` tunggal setelah menyerah, jadi acara itu sendiri adalah sinyal terminal untuk permintaan tersebut. Upaya retry perantara tidak dicatat sebagai acara terpisah.1535Claude Code mencoba ulang permintaan API yang gagal secara internal dan hanya memancarkan acara `claude_code.api_error` tunggal setelah menyerah, jadi acara itu sendiri adalah sinyal terminal untuk permintaan tersebut. Upaya retry perantara tidak dicatat sebagai acara terpisah.

1530 1536 

1531Atribut `attempt` pada acara mencatat berapa banyak upaya yang dilakukan secara total. `CLAUDE_CODE_MAX_RETRIES` default ke 10 dan dibatasi pada 15. Pada v2.1.199 atau lebih baru, Anda dapat mengatur `CLAUDE_CODE_RETRY_WATCHDOG` untuk menaikkan default dan menghapus batas.1537Atribut `attempt` pada acara mencatat jumlah upaya. `CLAUDE_CODE_MAX_RETRIES` default ke 10 dan dibatasi pada 15. Pada v2.1.199 atau lebih baru, Anda dapat mengatur `CLAUDE_CODE_RETRY_WATCHDOG` untuk menaikkan default dan menghapus batas.

1532 1538 

1533Ketika permintaan menghabiskan semua retry pada kesalahan transien, `attempt` sama dengan satu lebih dari batas efektif tersebut: 11 secara default, dan tidak pernah lebih dari 16 kecuali watchdog diatur. Nilai yang lebih rendah menunjukkan kesalahan yang tidak dapat dicoba ulang seperti respons `400`, atau penyebab dengan anggaran retry yang lebih kecil. Misalnya, Claude Code mencoba ulang kegagalan untuk memuat kredensial AWS atau Google Cloud paling banyak dua kali.1539Ketika permintaan menghabiskan semua retry pada kesalahan transien, `attempt` paling banyak satu lebih dari batas efektif tersebut: 11 secara default.

1540 

1541Nilai yang lebih rendah tetap dapat berarti retry telah habis: `attempt` dimulai lagi dari `1` setiap kali Claude Code mengirim ulang permintaan setelah kegagalan streaming.

1534 1542 

1535Untuk membedakan sesi yang pulih dari sesi yang terhenti, kelompokkan acara berdasarkan `session.id` dan periksa apakah acara `api_request` yang lebih baru ada setelah kesalahan.1543Untuk membedakan sesi yang pulih dari sesi yang terhenti, kelompokkan acara berdasarkan `session.id` dan periksa apakah acara `api_request` yang lebih baru ada setelah kesalahan.

1536 1544 


1699 1707 

1700Pilihan backend metrik, log, dan traces Anda menentukan jenis analisis yang dapat Anda lakukan:1708Pilihan backend metrik, log, dan traces Anda menentukan jenis analisis yang dapat Anda lakukan:

1701 1709 

1702<h3 id="for-metrics">1710<span id="for-metrics" />

1703 Untuk metrik1711 

1712<h3 id="backends-for-metrics">

1713 Backend untuk metrik

1704</h3>1714</h3>

1705 1715 

1706* **Database deret waktu**: Perhitungan laju, metrik agregat1716* **Database deret waktu**: Perhitungan laju, metrik agregat

1707* **Toko kolumnar**: Kueri kompleks, analisis pengguna unik1717* **Toko kolumnar**: Kueri kompleks, analisis pengguna unik

1708* **Platform observabilitas lengkap**: Kueri lanjutan, visualisasi, peringatan1718* **Platform observabilitas lengkap**: Kueri lanjutan, visualisasi, peringatan

1709 1719 

1710<h3 id="for-events/logs">1720<span id="for-events/logs" />

1711 Untuk acara/log1721 

1722<h3 id="backends-for-events-and-logs">

1723 Backend untuk acara dan log

1712</h3>1724</h3>

1713 1725 

1714* **Sistem agregasi log**: Pencarian teks lengkap, analisis log1726* **Sistem agregasi log**: Pencarian teks lengkap, analisis log

1715* **Toko kolumnar**: Analisis acara terstruktur1727* **Toko kolumnar**: Analisis acara terstruktur

1716* **Platform observabilitas lengkap**: Korelasi antara metrik dan acara1728* **Platform observabilitas lengkap**: Korelasi antara metrik dan acara

1717 1729 

1718<h3 id="for-traces">1730<span id="for-traces" />

1719 Untuk traces1731 

1732<h3 id="backends-for-traces">

1733 Backend untuk traces

1720</h3>1734</h3>

1721 1735 

1722Pilih backend yang mendukung penyimpanan distributed trace dan korelasi span:1736Pilih backend yang mendukung penyimpanan distributed trace dan korelasi span:

Details

91| `-y, --yes` | Terima perintah instal yang ditampilkan tanpa prompt `Run this command now?`. Diabaikan ketika perintah berjalan di dalam sesi Claude Code, seperti dari tool Bash atau hook. Memerlukan Claude Code v2.1.229 atau lebih baru |91| `-y, --yes` | Terima perintah instal yang ditampilkan tanpa prompt `Run this command now?`. Diabaikan ketika perintah berjalan di dalam sesi Claude Code, seperti dari tool Bash atau hook. Memerlukan Claude Code v2.1.229 atau lebih baru |

92| `--accept-command <sha256>` | Terima perintah instal yang ditampilkan yang `sha256` sebelumnya [`--json` run](#plugin-json-result) dilaporkan dalam `shownCommand`, sebagai pengganti `-y`. Tidak dapat digabungkan dengan `-y`. Lihat [Terima perintah instal yang ditampilkan](#accept-a-displayed-install-command). Memerlukan Claude Code v2.1.271 atau lebih baru |92| `--accept-command <sha256>` | Terima perintah instal yang ditampilkan yang `sha256` sebelumnya [`--json` run](#plugin-json-result) dilaporkan dalam `shownCommand`, sebagai pengganti `-y`. Tidak dapat digabungkan dengan `-y`. Lihat [Terima perintah instal yang ditampilkan](#accept-a-displayed-install-command). Memerlukan Claude Code v2.1.271 atau lebih baru |

93| `--json` | Cetak hasil sebagai satu objek JSON pada baris terakhir stdout alih-alih pesan yang dapat dibaca manusia, untuk digunakan dalam skrip. Lihat [Format hasil JSON](#plugin-json-result). Memerlukan Claude Code v2.1.268 atau lebih baru |93| `--json` | Cetak hasil sebagai satu objek JSON pada baris terakhir stdout alih-alih pesan yang dapat dibaca manusia, untuk digunakan dalam skrip. Lihat [Format hasil JSON](#plugin-json-result). Memerlukan Claude Code v2.1.268 atau lebih baru |

94| `--marketplace <source>` | Instal `<plugin>`, yang diberikan dengan nama telanjangnya, dari marketplace di `<source>`, dengan menambahkan marketplace tersebut terlebih dahulu jika Anda belum menambahkannya. Lihat [Tambahkan marketplace dan instal dalam satu perintah](/docs/id/plugins/install#add-a-marketplace-and-install-in-one-command). Memerlukan Claude Code v2.1.292 atau lebih baru |

94 95 

95Jalankan `claude plugin install --help` di shell Anda untuk melihat setiap opsi yang didukung versi Anda.96Jalankan `claude plugin install --help` di shell Anda untuk melihat setiap opsi yang didukung versi Anda.

96 97 

Details

185 185 

186Anda dapat memuat plugin untuk satu sesi dengan tiga cara: dari direktori atau arsip `.zip` di disk dengan `--plugin-dir`, dari URL dengan `--plugin-url`, atau dari variabel lingkungan ketika Anda tidak dapat menambahkan flag. Setiap plugin dimuat hanya untuk sesi itu, dan tidak ada yang ditulis ke settings Anda untuk itu. Ketika Anda mengedit file plugin selama sesi, jalankan `/reload-plugins` untuk memuat perubahan.186Anda dapat memuat plugin untuk satu sesi dengan tiga cara: dari direktori atau arsip `.zip` di disk dengan `--plugin-dir`, dari URL dengan `--plugin-url`, atau dari variabel lingkungan ketika Anda tidak dapat menambahkan flag. Setiap plugin dimuat hanya untuk sesi itu, dan tidak ada yang ditulis ke settings Anda untuk itu. Ketika Anda mengedit file plugin selama sesi, jalankan `/reload-plugins` untuk memuat perubahan.

187 187 

188<h4 id="from-a-directory-or-zip">188<span id="from-a-directory-or-zip" />

189 Dari direktori atau `.zip`189 

190<h4 id="load-a-plugin-from-a-directory-or-zip">

191 Muat plugin dari direktori atau `.zip`

190</h4>192</h4>

191 193 

192Ketika Anda memulai `claude` dari shell Anda, teruskan `--plugin-dir` dengan direktori root plugin atau arsip `.zip` darinya. Ulangi flag untuk memuat beberapa plugin:194Ketika Anda memulai `claude` dari shell Anda, teruskan `--plugin-dir` dengan direktori root plugin atau arsip `.zip` darinya. Ulangi flag untuk memuat beberapa plugin:


196```198```

197 199 

198<h4 id="load-a-folder-of-plugins">200<h4 id="load-a-folder-of-plugins">

199 Dari folder plugin201 Muat folder plugin

200</h4>202</h4>

201 203 

202Untuk memuat beberapa plugin dari satu tempat, teruskan folder yang menampungnya, seperti `--plugin-dir ./plugins`. Memuat folder plugin memerlukan Claude Code v2.1.265 atau lebih baru.204Untuk memuat beberapa plugin dari satu tempat, teruskan folder yang menampungnya, seperti `--plugin-dir ./plugins`. Memuat folder plugin memerlukan Claude Code v2.1.265 atau lebih baru.


212 214 

213Pesan muncul dalam sesi untuk setiap perubahan ini. Jika memuat atau membongkar plugin di tengah percakapan akan [invalidate the prompt cache](/docs/id/prompt-caching#enabling-or-disabling-a-plugin), perubahan ditahan sebagai gantinya, dan pesan memberi tahu Anda untuk menjalankan `/reload-plugins` untuk menerapkannya.215Pesan muncul dalam sesi untuk setiap perubahan ini. Jika memuat atau membongkar plugin di tengah percakapan akan [invalidate the prompt cache](/docs/id/prompt-caching#enabling-or-disabling-a-plugin), perubahan ditahan sebagai gantinya, dan pesan memberi tahu Anda untuk menjalankan `/reload-plugins` untuk menerapkannya.

214 216 

215<h4 id="fetch-an-archive-from-a-url-for-one-session">217<span id="fetch-an-archive-from-a-url-for-one-session" />

216 Dari URL218 

219<h4 id="load-a-plugin-from-a-url">

220 Muat plugin dari URL

217</h4>221</h4>

218 222 

219Ketika Anda memulai `claude` dari shell Anda, teruskan `--plugin-url` dengan alamat arsip `.zip`, seperti artefak build yang CI Anda publikasikan:223Ketika Anda memulai `claude` dari shell Anda, teruskan `--plugin-url` dengan alamat arsip `.zip`, seperti artefak build yang CI Anda publikasikan:


228 232 

229Jika Claude Code tidak dapat mengambil arsip, atau arsip tidak valid, itu dimulai tanpa plugin dan mencatat kesalahan beban plugin yang dapat Anda tinjau di tab **Errors** manajer `/plugin`.233Jika Claude Code tidak dapat mengambil arsip, atau arsip tidak valid, itu dimulai tanpa plugin dan mencatat kesalahan beban plugin yang dapat Anda tinjau di tab **Errors** manajer `/plugin`.

230 234 

231<h4 id="from-an-environment-variable">235<span id="from-an-environment-variable" />

232 Dari variabel lingkungan236 

237<h4 id="load-plugins-from-an-environment-variable">

238 Muat plugin dari environment variable

233</h4>239</h4>

234 240 

235Untuk memuat plugin dalam sesi di mana Anda tidak dapat menambahkan flag `--plugin-dir`, daftarkan jalur absolutnya dalam variabel lingkungan [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/id/env-vars#variables) sebagai gantinya. Claude Code memuat setiap jalur saat memuat jalur `--plugin-dir`. Plugin ini dimuat sebagai tambahan untuk yang Anda teruskan dengan `--plugin-dir`. [Project and local settings can't set this variable](/docs/id/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` memerlukan Claude Code v2.1.280 atau lebih baru.241Untuk memuat plugin dalam sesi di mana Anda tidak dapat menambahkan flag `--plugin-dir`, daftarkan jalur absolutnya dalam variabel lingkungan [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/id/env-vars#variables) sebagai gantinya. Claude Code memuat setiap jalur saat memuat jalur `--plugin-dir`. Plugin ini dimuat sebagai tambahan untuk yang Anda teruskan dengan `--plugin-dir`. [Project and local settings can't set this variable](/docs/id/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_PLUGIN_DIRS` memerlukan Claude Code v2.1.280 atau lebih baru.

Details

413 Bagaimana pengguna menerima perintah headersHelper413 Bagaimana pengguna menerima perintah headersHelper

414</h3>414</h3>

415 415 

416Pengguna menerima perintah entri plugin setiap kali mereka memasang atau memperbarui plugin tersebut saja. Mereka melakukan itu dari tampilan plugin sendiri di `/plugin`, atau dengan `claude plugin install` atau `claude plugin update`. Claude Code menunjukkan perintah dan URL arsip, dan menjalankan perintah hanya setelah pengguna menerima.416Pengguna menerima perintah entri plugin setiap kali mereka memasang atau memperbarui plugin tersebut saja. Claude Code menunjukkan perintah dan URL arsip, dan menjalankan perintah hanya setelah pengguna menerima.

417 

418Pengguna dapat memasang atau memperbarui plugin di dalam sesi Claude Code di terminal, di shell mereka tanpa sesi yang berjalan, atau di ekstensi VS Code:

419 

420* **Sesi terminal**: dari tampilan plugin sendiri di `/plugin`.

421* **Shell**: dengan `claude plugin install` atau `claude plugin update`.

422* **Ekstensi VS Code**: dari [dialog **Manage plugins**](/docs/id/vs-code#manage-plugins), dengan ekstensi versi 2.1.290 atau lebih baru.

417 423 

418Dalam shell non-interaktif, teruskan [`--yes`](/docs/id/plugins/cli-reference#plugin-install) untuk menerima perintah. Untuk menerima hanya perintah yang ditampilkan run `--json` sebelumnya, teruskan [`--accept-command`](/docs/id/plugins/cli-reference#plugin-install) dengan `sha256` yang dilaporkan run.424Dalam shell non-interaktif, teruskan [`--yes`](/docs/id/plugins/cli-reference#plugin-install) untuk menerima perintah. Untuk menerima hanya perintah yang ditampilkan run `--json` sebelumnya, teruskan [`--accept-command`](/docs/id/plugins/cli-reference#plugin-install) dengan `sha256` yang dilaporkan run.

419 425 

420Claude Code menjalankan hanya perintah yang ditunjukkan, untuk URL arsip yang ditunjukkan. Jika perintah entri atau URL arsip berubah di antara, Claude Code menolak pemasangan atau pembaruan. Perubahan dalam string kueri saja tidak dihitung.426Claude Code menjalankan hanya perintah yang ditunjukkan, untuk URL arsip yang ditunjukkan. Jika perintah entri atau URL arsip berubah di antara, Claude Code menolak pemasangan atau pembaruan. Perubahan dalam string kueri saja tidak dihitung, kecuali di ekstensi VS Code atau dengan `--accept-command`.

421 427 

422<h3 id="installs-and-updates-that-refuse-the-command-instead-of-asking">428<h3 id="installs-and-updates-that-refuse-the-command-instead-of-asking">

423 Pemasangan dan pembaruan yang menolak perintah alih-alih bertanya429 Pemasangan dan pembaruan yang menolak perintah alih-alih bertanya

Details

189 189 

190* **Scope**: cakupan pengguna secara default. Lewatkan `--scope project` atau `--scope local` untuk mengubahnya.190* **Scope**: cakupan pengguna secara default. Lewatkan `--scope project` atau `--scope local` untuk mengubahnya.

191* **When the plugins load**: plugin yang diinstalnya memuat lain kali Anda memulai Claude Code, atau ketika Anda menjalankan `/reload-plugins` dalam sesi yang sudah terbuka.191* **When the plugins load**: plugin yang diinstalnya memuat lain kali Anda memulai Claude Code, atau ketika Anda menjalankan `/reload-plugins` dalam sesi yang sudah terbuka.

192* **The marketplace must be added first**: di mesin di mana tidak ada yang telah membuka sesi Claude Code interaktif, marketplace resmi tidak terdaftar, jadi skrip yang menginstal darinya menjalankan `claude plugin marketplace add anthropics/claude-plugins-official` sebelum instalasi.192* **The marketplace on a new machine**: di mesin di mana belum ada yang membuka sesi Claude Code interaktif, marketplace resmi tidak terdaftar, jadi skrip yang menginstal darinya menjalankan `claude plugin marketplace add anthropics/claude-plugins-official` sebelum instalasi. Lihat [Tambahkan dan instal dari shell Anda](#add-and-install-from-your-shell).

193 193 

194```bash theme={null}194```bash theme={null}

195claude plugin install formatter@your-org --scope project195claude plugin install formatter@your-org --scope project


232 Tambahkan marketplace dan instal dalam satu perintah232 Tambahkan marketplace dan instal dalam satu perintah

233</h3>233</h3>

234 234 

235Untuk menginstal plugin dari marketplace yang belum Anda tambahkan, jalankan `/plugin install` dalam sesi Claude Code dan namai sumber marketplace dengan `--marketplace`. Memerlukan Claude Code v2.1.275 atau lebih baru.235Untuk menginstal plugin dari marketplace yang belum Anda tambahkan, sebutkan sumber marketplace dengan `--marketplace` pada perintah instal, dalam sesi atau dari shell Anda. Sumber mengambil [bentuk yang sama seperti `/plugin marketplace add`](#add-a-marketplace), seperti GitHub `owner/repo`, URL git, atau jalur lokal. Berikan nama plugin sendiri, tanpa akhiran `@marketplace`.

236 

237<h4 id="add-and-install-in-a-session">

238 Tambahkan dan instal dalam sesi

239</h4>

240 

241Jalankan `/plugin install` dalam sesi Claude Code dengan plugin dan sumbernya. Memerlukan Claude Code v2.1.275 atau lebih baru. Dalam sesi, sumber tidak dapat berisi spasi.

236 242 

237```text theme={null}243```text theme={null}

238/plugin install deploy-helper --marketplace your-org/plugins244/plugin install deploy-helper --marketplace your-org/plugins

239```245```

240 246 

241Sumber mengambil [bentuk yang sama seperti `/plugin marketplace add`](#add-a-marketplace), seperti GitHub `owner/repo`, URL git, atau jalur lokal, kecuali bahwa tidak dapat berisi spasi. Berikan nama plugin sendiri, tanpa akhiran `@marketplace`.

242 

243Jika Anda belum menambahkan marketplace itu, Claude Code menunjukkan sumber yang diselesaikan dan meminta Anda mengonfirmasi sebelum menambahkannya. Setelah marketplace ditambahkan, detail plugin membuka dan Anda memilih [cakupan instalasi](#install-a-plugin). Jika sumber cocok dengan marketplace yang sudah Anda tambahkan, Claude Code melewati konfirmasi dan membuka detail plugin di marketplace itu.247Jika Anda belum menambahkan marketplace itu, Claude Code menunjukkan sumber yang diselesaikan dan meminta Anda mengonfirmasi sebelum menambahkannya. Setelah marketplace ditambahkan, detail plugin membuka dan Anda memilih [cakupan instalasi](#install-a-plugin). Jika sumber cocok dengan marketplace yang sudah Anda tambahkan, Claude Code melewati konfirmasi dan membuka detail plugin di marketplace itu.

244 248 

249<h4 id="add-and-install-from-your-shell">

250 Tambahkan dan instal dari shell Anda

251</h4>

252 

253Di shell Anda, tanpa memulai sesi, jalankan `claude plugin install` dengan plugin dan sumbernya. Memerlukan Claude Code v2.1.292 atau lebih baru.

254 

255```bash theme={null}

256claude plugin install deploy-helper --marketplace your-org/plugins

257```

258 

259Perintah shell menambahkan marketplace tanpa langkah konfirmasi. Marketplace yang sudah Anda tambahkan dari sumber tersebut digunakan kembali. Marketplace baru ditambahkan dengan [pemeriksaan kebijakan organisasi](/docs/id/plugins/org#restrict-what-users-can-install) yang sama seperti `claude plugin marketplace add`, dan dideklarasikan di pengaturan pengguna Anda bahkan ketika Anda meneruskan `--scope project`.

260 

261Jika Anda belum menambahkan marketplace itu, perintah mencetak `Successfully added marketplace: <name> (declared in user settings)` lalu [menginstal plugin](#install-from-your-shell).

262 

245<h3 id="add-a-private-marketplace">263<h3 id="add-a-private-marketplace">

246 Tambahkan marketplace pribadi264 Tambahkan marketplace pribadi

247</h3>265</h3>

Details

185| Menempatkan `official` di samping `claude` atau `anthropic`, seperti `official-claude-tools` | Error |185| Menempatkan `official` di samping `claude` atau `anthropic`, seperti `official-claude-tools` | Error |

186| Memiliki `claude`, `anthropic`, atau `anthropics` sebagai kata utuh di mana pun, seperti `mcp-for-claude` | Warning |186| Memiliki `claude`, `anthropic`, atau `anthropics` sebagai kata utuh di mana pun, seperti `mcp-for-claude` | Warning |

187 187 

188Error berbunyi `Plugin name "<name>" is reserved: it passes as one of Anthropic's own`, dan warning berbunyi `Plugin name "<name>" reads as one of Anthropic's own`. `claude plugin init` dan `claude plugin tag` menolak nama yang menghasilkan error. Hanya perintah ini yang memeriksa nama. Claude Code masih menginstal dan memuat plugin yang nama mereka tolak.188Error berbunyi `Plugin name "<name>" is reserved: it passes as one of Anthropic's own`, dan warning berbunyi `Plugin name "<name>" reads as one of Anthropic's own`. `claude plugin init` dan `claude plugin tag` menolak nama yang menghasilkan error. Claude Code masih menginstal dan memuat plugin yang namanya ditolak oleh perintah-perintah tersebut.

189 189 

190<h3 id="displayname">190<h3 id="displayname">

191 `displayName`191 `displayName`

Details

64 64 

65| Field | Tipe | Deskripsi |65| Field | Tipe | Deskripsi |

66| :- | :- | :- |66| :- | :- | :- |

67| `name` | string | Pengenal marketplace: huruf, digit, `.`, `_`, dan `-`, dimulai dengan huruf atau digit, dan tidak ada `..`. `claude plugin validate` gagal untuk nama lain, karena Claude Code tidak dapat memasang plugin dari marketplace yang menggunakan nama tersebut. Pengguna mengetik nama ini setelah `@` dalam [ID plugin](/docs/id/plugins/loading#find-where-a-plugin-came-from) seperti `my-plugin@my-marketplace` ketika mereka memasang plugin. Lihat [Nama yang dicadangkan](#reserved-names) |67| `name` | string | Pengenal marketplace: huruf, digit, `.`, `_`, dan `-`, dimulai dengan huruf atau digit, dan tidak ada `..`. `claude plugin validate` gagal untuk nama lain, karena Claude Code [tidak dapat memasang plugin dari marketplace yang menggunakan nama tersebut](/docs/id/plugins/troubleshooting#cannot-install-plugins-from-a-marketplace-with-this-name). Pengguna mengetik nama ini setelah `@` dalam [ID plugin](/docs/id/plugins/loading#find-where-a-plugin-came-from) seperti `my-plugin@my-marketplace` ketika mereka memasang plugin. Lihat [Nama yang dicadangkan](#reserved-names) |

68| `owner` | object | Informasi pengelola. `name` diperlukan; `email` dan `url` opsional |68| `owner` | object | Informasi pengelola. `name` diperlukan; `email` dan `url` opsional |

69| `plugins` | array | [Entri plugin](#plugin-entries). Setiap entri divalidasi sendiri, jadi satu entri yang tidak valid tidak gagal marketplace |69| `plugins` | array | [Entri plugin](#plugin-entries). Setiap entri divalidasi sendiri, jadi satu entri yang tidak valid tidak gagal marketplace |

70| `$schema` | string | URL JSON Schema untuk pelengkapan otomatis editor. Diabaikan saat waktu muat |70| `$schema` | string | URL JSON Schema untuk pelengkapan otomatis editor. Diabaikan saat waktu muat |

Details

138| `$.mcp.call` | Memanggil alat pada server MCP yang terhubung, di bawah aturan izin sesi |138| `$.mcp.call` | Memanggil alat pada server MCP yang terhubung, di bawah aturan izin sesi |

139| `$.model.complete` | Menggunakan paket atau kunci API pengguna untuk panggilan model |139| `$.model.complete` | Menggunakan paket atau kunci API pengguna untuk panggilan model |

140| `$.prompt.submit` | Mengirimkan prompt, dan dapat mengirimkannya sebagai kata-kata pengguna sendiri |140| `$.prompt.submit` | Mengirimkan prompt, dan dapat mengirimkannya sebagai kata-kata pengguna sendiri |

141| `$.session.send` | Mengirimkan pesan yang dibaca sesi lain atau subagen Claude |141| `$.session.send` | Mengirimkan pesan yang dibaca oleh Claude milik sesi lain, subagent, atau [rekan tim](/docs/id/agent-teams) |

142 142 

143Dalam baris `hooks:`, [`tool.call`](/docs/id/plugins/mods/reference#tools) dan [`prompt.submit`](/docs/id/plugins/mods/reference#prompts-and-what-claude-reads) berarti mod melihat setiap panggilan alat dan setiap prompt, dan dapat mengubahnya. [`session.append`](/docs/id/plugins/mods/reference#session) berarti mod dapat menulis ulang setiap baris percakapan sebelum disimpan. [`ui.render{component=AskUserQuestion}`](/docs/id/plugins/mods/interface#change-what-claude-code-already-draws) berarti mod dapat menggambar ulang dialog yang digunakan Claude untuk menanyakan pengguna. `tool.check` berarti mod dapat menyetujui atau menolak panggilan alat sebelum prompt izin muncul. [Ketahui apa yang terjadi secara default](#know-what-happens-by-default) mencantumkan aturan dan hook mana dari Anda yang memiliki prioritas atas jawabannya.143Dalam baris `hooks:`, [`tool.call`](/docs/id/plugins/mods/reference#tools) dan [`prompt.submit`](/docs/id/plugins/mods/reference#prompts-and-what-claude-reads) berarti mod melihat setiap panggilan alat dan setiap prompt, dan dapat mengubahnya. [`session.append`](/docs/id/plugins/mods/reference#session) berarti mod dapat menulis ulang setiap baris percakapan sebelum disimpan. [`ui.render{component=AskUserQuestion}`](/docs/id/plugins/mods/interface#change-what-claude-code-already-draws) berarti mod dapat menggambar ulang dialog yang digunakan Claude untuk menanyakan pengguna. `tool.check` berarti mod dapat menyetujui atau menolak panggilan alat sebelum prompt izin muncul. [Ketahui apa yang terjadi secara default](#know-what-happens-by-default) mencantumkan aturan dan hook mana dari Anda yang memiliki prioritas atas jawabannya.

144 144 

Details

4 4 

5# Gunakan mods API5# Gunakan mods API

6 6 

7> Panggil mods API dari mod Claude Code untuk menambahkan perintah dan alat, memanggil model, menjalankan pekerjaan pada timer, mengirim pesan ke sesi lain, dan mengakses file serta jaringan.7> Panggil mods API dari mod Claude Code untuk menambahkan perintah dan tool, memanggil model, menjalankan pekerjaan pada timer, mengirim pesan ke sesi lain, dan mengakses file serta jaringan.

8 8 

9Mods API adalah kumpulan metode yang dipanggil mod untuk bertindak: menambahkan perintah dan alat, memanggil model, menjalankan pekerjaan antar peristiwa, dan mengakses sistem file, proses, dan jaringan. Setiap hook menerimanya sebagai argumen pertamanya, `$`, dengan metode yang dikelompokkan dalam namespace seperti `$.ui` dan `$.fs`. [Events](/docs/id/plugins/mods/events) menentukan kapan hook berjalan, dan mods API adalah apa yang dipanggil hook setelah berjalan.9Mods API adalah kumpulan metode yang dipanggil mod untuk bertindak: menambahkan perintah dan alat, memanggil model, menjalankan pekerjaan antar peristiwa, dan mengakses sistem file, proses, dan jaringan. Setiap hook menerimanya sebagai argumen pertamanya, `$`, dengan metode yang dikelompokkan dalam namespace seperti `$.ui` dan `$.fs`. [Events](/docs/id/plugins/mods/events) menentukan kapan hook berjalan, dan mods API adalah apa yang dipanggil hook setelah berjalan.

10 10 


79 Panggil model79 Panggil model

80</h2>80</h2>

81 81 

82Mod dapat menanyakan model pertanyaan sendiri, di luar percakapan, untuk pekerjaan kecil seperti mengurutkan atau merangkum sepotong teks. `$.model.complete` mengirim satu prompt ke model dengan kredensial sesi Anda dan menyelesaikan balasan. Ini tidak memiliki riwayat percakapan.82Mod dapat mengirim permintaannya sendiri ke model untuk pekerjaan kecil seperti mengklasifikasikan atau merangkum teks. `$.model.complete` mengirim prompt Anda secara tersendiri, dan `$.model.fork({ prompt })` mengirim percakapan saat ini dengan prompt Anda di bagian akhir.

83 

84Tabel ini membandingkan isi setiap permintaan:

85 

86| Dalam permintaan | `$.model.complete` | `$.model.fork` |

87| :- | :- | :- |

88| Model | `model` yang Anda berikan | Model sesi |

89| System prompt | [Blok atribusi](/docs/id/llm-gateway-protocol#system-prompt-attribution-block) singkat, lalu `system` Anda jika Anda memberikannya | System prompt sesi |

90| Pesan | Satu pesan pengguna, yaitu `prompt` Anda | Percakapan sejauh ini, lalu `prompt` Anda sebagai pesan pengguna |

91| CLAUDE.md dan konteks proyek lainnya | Tidak disertakan | Disertakan, seperti pada permintaan terakhir percakapan |

92| Tool | Tidak ada | Tool Claude, yang tidak dapat dipanggil oleh model |

93 

94Fork mengulang permintaan terakhir percakapan, sehingga Claude API melayani sebagian besarnya dari [cache prompt](/docs/id/prompt-caching) selama percakapan masih berada di cache.

95 

96Kedua panggilan menggunakan kredensial sesi, sehingga tagihannya dibebankan ke paket, kunci API, atau penyedia cloud pengguna. [Tipe untuk build Anda](/docs/id/plugins/mods/create#get-the-types-for-your-build) mendokumentasikan setiap metode `$.model`.

97 

98<h3 id="send-one-prompt">

99 Kirim satu prompt

100</h3>

101 

102Berikan `model` dan `prompt` ke `$.model.complete`. `prompt` menjadi pesan pengguna. Untuk memberikan instruksi kepada model, seperti peran atau format output, berikan juga `system`, yang menjadi system prompt.

83 103 

84Hook ini menjawab perintah `/triage`, [didaftarkan sebagai perintah](#add-a-command), dengan menanyakan model kecil untuk memberi label pada teks yang diketik setelahnya:104Hook ini menjawab perintah `/triage`, [didaftarkan sebagai perintah](#add-a-command), dengan menanyakan model kecil untuk memberi label pada teks yang diketik setelahnya:

85 105 


100})120})

101```121```

102 122 

103Saat Anda menjalankan `/triage the export button does nothing`, mod mengirim teks itu ke model dan mencetak jawabannya, seperti `Label: bug`. Percakapan Claude bukan bagian dari permintaan. Saat model tidak menjawab, labelnya adalah `unknown`.123Saat Anda menjalankan `/triage the export button does nothing`, mod mengirim teks itu ke model dan mencetak jawabannya, seperti `Label: bug`. Saat model tidak menjawab, labelnya adalah `unknown`.

124 

125Kegagalan Claude API tidak menolak panggilan, jadi periksa `r.isAnswered`, dan baca `r.reason` saat nilainya `false`. Panggilan ditolak untuk permintaan yang tidak akan dikirim Claude Code, seperti model yang diblokir organisasi Anda.

126 

127[Tipe untuk build Anda](/docs/id/plugins/mods/create#get-the-types-for-your-build) mencantumkan opsi lain, seperti `effort`, dan [batas](/docs/id/plugins/mods/reference#limits) memberikan default `maxTokens`.

128 

129<h3 id="use-prompt-caching">

130 Gunakan prompt caching

131</h3>

132 

133`$.model.complete` mendukung [prompt caching](https://platform.claude.com/docs/en/build-with-claude/prompt-caching) Claude API. API menyimpan ke cache bagian awal permintaan, yang disebut prefiks, hingga [cache breakpoint](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#explicit-cache-breakpoints) yang Anda tetapkan. Saat setiap panggilan dimulai dengan konten statis panjang yang sama, seperti instruksi atau materi referensi, tetapkan breakpoint di akhir konten tersebut. Panggilan berikutnya kemudian membacanya dari cache alih-alih membayar harga input penuh untuk konten itu.

134 

135Untuk menetapkan breakpoint, berikan `prompt` sebagai array blok `{ text }` alih-alih string, dan tambahkan `cache: true` ke blok terakhir dari konten statis. Claude Code mengirim blok tersebut dengan field `cache_control` milik API. `system` menerima bentuk array yang sama. Untuk memilih di antara keduanya, lihat [Memilih antara `prompt` dan `system`](#choose-between-prompt-and-system).

136 

137<Note>

138 Array blok memerlukan Claude Code v2.1.292 atau lebih baru. Versi sebelumnya menolak array dalam `prompt` dengan error yang diakhiri dengan `takes { model, prompt } (host check)`, dan tidak menyertakan array dalam `system` ke dalam permintaan.

139</Note>

140 

141Versi [hook `/triage`](#send-one-prompt) ini mengirim serangkaian aturan pelabelan yang panjang sebelum teks yang akan diberi label, dengan breakpoint setelah aturan tersebut. `RULES` adalah string milik Anda sendiri:

142 

143```javascript theme={null}

144on('command.run', { command: 'triage' }, async ($, e) => {

145 const r = await $.model.complete({

146 model: 'haiku',

147 prompt: [

148 // Identical on every call, so it forms the cached prefix

149 { text: RULES, cache: true },

150 // Changes on every call, so it goes after the breakpoint

151 { text: e.args },

152 ],

153 })

154 return { text: 'Label: ' + (r.isAnswered ? r.text.trim() : 'unknown') }

155})

156```

157 

158TTL dan jumlah breakpoint memiliki batas berikut:

159 

160* **TTL**: entri cache bertahan lima menit setelah penggunaan terakhirnya. TTL berasal dari pengaturan Claude Code pengguna, bukan dari panggilan. Untuk satu jam, atur [`subagentPromptCacheTtl`](/docs/id/prompt-caching#choose-the-ttl-yourself) ke `1h`.

161* **Breakpoint per permintaan**: API menerima [hingga empat](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#when-to-use-multiple-breakpoints), dan satu lagi akan dikembalikan sebagai `api-error` dalam `r.reason`

162 

163<h4 id="choose-between-prompt-and-system">

164 Memilih antara `prompt` dan `system`

165</h4>

166 

167Letakkan konten statis yang digunakan bersama oleh panggilan Anda di awal `prompt`, kecuali Anda tahu bahwa permintaan Anda langsung menuju Claude API:

168 

169* **Langsung ke Claude API, dengan kunci API atau langganan Claude**: kedua field dapat digunakan

170* **Melalui [Amazon Bedrock](/docs/id/amazon-bedrock), [Claude Platform on AWS](/docs/id/claude-platform-on-aws), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), atau [LLM gateway](/docs/id/llm-gateway)**: gunakan `prompt`. Claude Code memulai system prompt dengan [blok atribusi](/docs/id/llm-gateway-protocol#system-prompt-attribution-block) yang fingerprint-nya berasal dari awal pesan pengguna. Endpoint `api.anthropic.com` menghapus blok tersebut sebelum caching. Endpoint lain menerimanya sebagai bagian dari prompt, sehingga breakpoint dalam `system` dapat meleset saat `prompt` dimulai secara berbeda.

171* **Dalam mod yang dijalankan orang lain**: gunakan `prompt`, karena Anda tidak memilih penyedia mereka

172 

173`system` muncul sebelum `prompt` dalam prefiks, sehingga breakpoint dalam `prompt` juga mencakup `system`, dan panggilan dengan `system` yang berbeda akan meleset dari cache.

104 174 

105Kegagalan Claude API tidak menolak panggilan, jadi periksa `r.isAnswered`, dan baca `r.reason` saat itu `false`. Panggilan menolak untuk permintaan yang tidak akan dikirim Claude Code, seperti model yang diblokir organisasi Anda. [Tipe untuk build Anda](/docs/id/plugins/mods/create#get-the-types-for-your-build) mencantumkan opsi lain, seperti `effort`, dan [batas](/docs/id/plugins/mods/reference#limits) memberikan default `maxTokens`.175<h4 id="check-for-cache-hits">

176 Memeriksa cache hit

177</h4>

106 178 

107`$.model.fork({ prompt })` menanyakan satu pertanyaan atas percakapan saat ini, dengan model dan prompt sistem yang sama, jadi Claude API melayani sebagian besar dari cache prompt.179Hasil dari `$.model.complete` memiliki objek `usage` dengan [field cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#tracking-cache-performance) milik API. `usage.cache_creation_input_tokens` menghitung token yang ditulis panggilan ke cache, dan `usage.cache_read_input_tokens` menghitung token yang dibaca panggilan dari cache. Harapkan penulisan pada panggilan pertama dan pembacaan pada panggilan berikutnya dalam TTL.

108 180 

109Panggilan ini menggunakan paket atau kunci API pengguna.181Jika setiap panggilan menulis dan tidak ada yang membaca, prefiks berbeda antar panggilan atau jarak antar panggilan lebih lama dari TTL. Untuk prefiks yang berbeda, lihat [Memilih antara `prompt` dan `system`](#choose-between-prompt-and-system).

182 

183Jika kedua field tetap bernilai nol pada panggilan yang dijawab model, tidak ada yang disimpan ke cache. Periksa setiap penyebab berikut:

184 

185* **Prefiks terlalu pendek**: API tidak menyimpan ke cache prefiks yang lebih pendek dari [panjang minimum](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-limitations) model, dan tidak mengembalikan error

186* **Prompt caching dinonaktifkan**: saat [variabel `DISABLE_PROMPT_CACHING`](/docs/id/prompt-caching#disable-prompt-caching) berlaku untuk model, Claude Code menghapus breakpoint dan mengirim teks tanpa cache

187* **Gateway Anda menghapus `cache_control`**: gateway dapat [menghapus field tersebut dan tetap mengembalikan keberhasilan](/docs/id/prompt-caching#where-the-cache-lives)

188* **Mod lain menulis ulang awal teks**: Claude Code kemudian [mengirimnya tanpa breakpoint](#what-a-model-complete-hook-receives)

189 

190<h3 id="what-a-model-complete-hook-receives">

191 Apa yang diterima hook `model.complete`

192</h3>

193 

194Jika Anda memasang hook pada event [`model.complete`](/docs/id/plugins/mods/reference#mods-api-calls) untuk memeriksa atau mengubah permintaan mod lain, baca teks dari field berikut:

195 

196* **`e.prompt`**: selalu berupa string. Saat pemanggil memberikan array, nilainya adalah teks blok-blok yang digabungkan secara berurutan.

197* **`e.system`**: string yang dibangun dengan cara yang sama, atau tidak ada saat pemanggil tidak memberikan `system`

198* **`e.promptBlocks` dan `e.systemBlocks`**: array milik pemanggil, masing-masing ada saat pemanggil memberikan array untuk field tersebut

199 

200Claude Code mengirim string yang diteruskan hook Anda ke `next` dan menggunakan array yang Anda berikan bersamanya untuk menempatkan [cache breakpoint](#use-prompt-caching). Claude Code mempertahankan blok-blok awal yang masih cocok dengan awal string, beserta breakpoint-nya, dan mengirim sisa string tanpa breakpoint. Misalnya, `next({ ...e, prompt: e.prompt + NOTE })` mempertahankan breakpoint pemanggil, sedangkan hook yang mengubah awal `prompt` menghapusnya.

110 201 

111<h2 id="run-work-in-the-background">202<h2 id="run-work-in-the-background">

112 Jalankan pekerjaan di latar belakang203 Jalankan pekerjaan di latar belakang


140| Panggilan | Apa yang dilihat pengguna |231| Panggilan | Apa yang dilihat pengguna |

141| :- | :- |232| :- | :- |

142| `$.ui.status(text)` | Satu baris di bawah prompt yang tetap sampai Anda mengubahnya. Dimulai dengan `⚠` dan nama mod, seperti `⚠ my-mod: checks: 3 passing`. |233| `$.ui.status(text)` | Satu baris di bawah prompt yang tetap sampai Anda mengubahnya. Dimulai dengan `⚠` dan nama mod, seperti `⚠ my-mod: checks: 3 passing`. |

143| `$.ui.toast(text)` | Notifikasi toast di kanan atas, dengan nama mod di atas teks, yang hilang setelah beberapa detik |234| `$.ui.toast(text)` | Notifikasi toast dengan nama mod yang hilang setelah beberapa detik. Berupa kotak di kanan atas dalam [rendering layar penuh](/docs/id/fullscreen), dan satu baris di sebelah kanan di bawah prompt dalam renderer klasik. |

144| `$.ui.log(text)` | Baris redup dalam transkrip yang tidak dibaca Claude. Dimulai dengan `●` dan nama mod, seperti `● my-mod: build finished`. |235| `$.ui.log(text)` | Baris redup dalam transkrip yang tidak dibaca Claude. Dimulai dengan `●` dan nama mod, seperti `● my-mod: build finished`. |

145 236 

146<h3 id="start-a-turn-from-a-background-job">237<h3 id="start-a-turn-from-a-background-job">


159 Mengirim dan menerima pesan antar sesi250 Mengirim dan menerima pesan antar sesi

160</h2>251</h2>

161 252 

162Sebuah mod dapat mengirim pesan teks biasa ke sesi Anda yang lain atau ke salah satu subagent milik sesi ini, serta mengamati pesan yang masuk dan keluar. `$.session.send({ to, text })` mengirim satu pesan, dengan pengiriman yang sama seperti yang dilakukan tool SendMessage. `to` adalah `{ sessionId }` untuk sebuah sesi, `{ agentId }` untuk subagent dari `$.agent.list()`, atau alamat string asal pesan yang diterima. Panggilan ini selesai setelah pesan masuk antrean, dengan `{ isDelivered: true }`. Ketika tidak ada yang tersampaikan, panggilan selesai dengan `{ isDelivered: false, reason }`, dan `reason` menjelaskan alasannya.253Sebuah mod dapat mengirim pesan teks biasa ke sesi Anda yang lain, ke salah satu subagent milik sesi ini, atau ke rekan tim dalam [tim agent](/docs/id/agent-teams) miliknya. Mod juga dapat mengamati pesan yang masuk dan keluar.

254 

255Untuk mengirim satu pesan, panggil `$.session.send({ to, text })`, yang melakukan pengiriman yang sama seperti yang dilakukan tool SendMessage. Atur `to` berdasarkan siapa yang menerima pesan:

256 

257* **Sesi Anda yang lain**: `{ sessionId }`

258* **Subagent atau rekan tim**: `{ agentId }`, dengan id dari `$.agent.list()`

259* **Pengirim pesan yang Anda terima**: alamat string asal pesan tersebut

260 

261Panggilan ini selesai setelah pesan masuk antrean, dengan `{ isDelivered: true }`. Ketika tidak ada yang tersampaikan, panggilan selesai dengan `{ isDelivered: false, reason }`, dan `reason` menjelaskan alasannya.

163 262 

164Hook ini menjawab perintah `/ping`, yang [didaftarkan sebagai perintah](#add-a-command), dengan menanyakan status kepada sesi yang id-nya Anda ketik setelah perintah tersebut:263Hook ini menjawab perintah `/ping`, yang [didaftarkan sebagai perintah](#add-a-command), dengan menanyakan status kepada sesi yang id-nya Anda ketik setelah perintah tersebut:

165 264 

Details

281 Dapatkan definisi tipe untuk versi Anda281 Dapatkan definisi tipe untuk versi Anda

282</h3>282</h3>

283 283 

284Setiap kali Claude Code memuat atau memuat ulang mod dari direktori yang Anda teruskan ke `--plugin-dir`, atau mod [yang ditulis Claude untuk Anda](#ask-claude-for-a-mod), ia menulis file deklarasi TypeScript, berakhir dengan `.d.ts`, ke dalam `.claude-plugin/types/` di dalam direktori mod. Mereka menjelaskan peristiwa yang tepat, metode mods API, dan elemen dalam versi Claude Code yang Anda jalankan, sehingga editor Anda dapat autocomplete dan type-check hooks Anda. Untuk menelusuri deklarasi secara online, baca [`mods/types/claude-code.d.ts`](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) di repositori Claude Code, yang baris pertamanya menamai versi yang menulisnya. Direktori menyimpan file-file ini:284Ketika Claude Code memuat mod dari `--plugin-dir` dalam sesi interaktif, atau mod [yang ditulis Claude untuk Anda](#ask-claude-for-a-mod), ia menulis file deklarasi TypeScript ke dalam direktori `.claude-plugin/types/` milik mod. File-file tersebut menjelaskan peristiwa yang tepat, metode mods API, dan elemen dalam versi Claude Code yang Anda jalankan, sehingga editor Anda dapat autocomplete dan type-check hook Anda. Direktori menyimpan file-file ini:

285 285 

286| Path | Apa yang dideklarasikan |286| Path | Apa yang dideklarasikan |

287| :- | :- |287| :- | :- |

Details

145 145 

146Setelah Claude mengedit atau menulis file `.mdx`, baris redup dalam transkrip menyebutkan nama file tersebut. Tidak ada yang dicatat untuk jenis file lain, atau untuk panggilan yang ditolak atau gagal. Pandangan Claude tentang panggilan tidak berubah, karena hook mengembalikan hasil yang diterimanya.146Setelah Claude mengedit atau menulis file `.mdx`, baris redup dalam transkrip menyebutkan nama file tersebut. Tidak ada yang dicatat untuk jenis file lain, atau untuk panggilan yang ditolak atau gagal. Pandangan Claude tentang panggilan tidak berubah, karena hook mengembalikan hasil yang diterimanya.

147 147 

148Untuk mengubah panggilan, teruskan argumen yang diubah ke `next`. Untuk mencoba ulang panggilan, panggil `next(e)` lagi: hook yang melihat `isError` pada hasil pertama dapat menjalankan tool untuk kedua kalinya dan mengembalikan hasil tersebut. Untuk menjawab panggilan sendiri, kembalikan objek dengan bidang `result`, seperti `{ result: 'Skipped by my-mod' }`, tanpa memanggil `next`. Ketika Anda melakukan itu, tidak ada permintaan izin yang muncul dan tool tidak berjalan, jadi hasil yang Anda kembalikan adalah satu-satunya yang diketahui Claude tentang apa yang terjadi.148Hook Anda juga dapat mengubah panggilan, mencobanya ulang, menjawabnya sendiri, atau menahan hasilnya:

149 

150* **Ubah panggilan**: teruskan argumen yang diubah ke `next`.

151* **Coba ulang panggilan**: panggil `next(e)` lagi. Hook yang melihat `isError` pada hasil pertama dapat menjalankan tool untuk kedua kalinya dan mengembalikan hasil tersebut.

152* **Jawab panggilan sendiri**: kembalikan objek dengan bidang `result`, tanpa memanggil `next`, dan untuk tool bawaan, berikan `result` bentuk yang dimiliki hasil tool itu sendiri dalam [tipe untuk build Anda](/docs/id/plugins/mods/create#get-the-types-for-your-build). Tidak ada permintaan izin yang muncul dan tool tidak berjalan, jadi hasil yang Anda kembalikan adalah satu-satunya yang diketahui Claude tentang apa yang terjadi.

153* **Tahan hasil dari Claude**: kembalikan `{ deny: reason }` setelah `await next(e)`. Claude membaca alasan Anda sebagai pengganti apa yang dikembalikan `next`. Ketika tool sudah berjalan, deny menahan hasilnya dari Claude dan tidak membatalkan apa pun yang telah dilakukan tool. Ketika tool berjalan dan berhasil, alasan tersebut mengikuti catatan seperti `Bash ran, and a plugin withheld its result:`.

149 154 

150Hook dalam [pengaturan terkelola](/docs/id/server-managed-settings) organisasi Anda berjalan sebelum hook `tool.call` mod mana pun, dan blokir dari salah satunya bersifat final.155Hook dalam [pengaturan terkelola](/docs/id/server-managed-settings) organisasi Anda berjalan sebelum hook `tool.call` mod mana pun, dan blokir dari salah satunya bersifat final.

151 156 


225 230 

226| Untuk melakukan ini | Kembalikan ini |231| Untuk melakukan ini | Kembalikan ini |

227| :- | :- |232| :- | :- |

228| Tulis ulang prompt. Pesan dalam transkrip menampilkan teks baru. | `next({ ...e, text: newText })` |233| Tulis ulang prompt. Transkrip dan [riwayat prompt](/docs/id/interactive-mode#command-history) Anda menampilkan teks baru. | `next({ ...e, text: newText })` |

229| Tambahkan teks yang hanya dibaca Claude, setelah prompt | `next({ ...e, context: [...(e.context ?? []), extraText] })` |234| Tambahkan teks yang hanya dibaca Claude, setelah prompt | `next({ ...e, context: [...(e.context ?? []), extraText] })` |

230| Hentikan prompt agar tidak dikirim | `{ drop: 'the reason' }` |235| Hentikan prompt agar tidak dikirim | `{ drop: 'the reason' }` |

231 236 


245 250 

246Ketika Anda mengirim prompt seperti `open a PR for this change`, pesan Anda terlihat sama dalam transkrip, dan Claude juga membaca baris seperti `Current branch: feature/auth` setelahnya. Prompt yang tidak menyebutkan pull request diteruskan tanpa perubahan, dan `git` tidak berjalan.251Ketika Anda mengirim prompt seperti `open a PR for this change`, pesan Anda terlihat sama dalam transkrip, dan Claude juga membaca baris seperti `Current branch: feature/auth` setelahnya. Prompt yang tidak menyebutkan pull request diteruskan tanpa perubahan, dan `git` tidak berjalan.

247 252 

248Untuk menghentikan prompt, kembalikan `{ drop: 'the reason' }` tanpa memanggil `next`. Jika hook Anda mengembalikan `drop` setelah panggilan `next(e)`-nya meloloskan prompt, giliran tetap berjalan, dan hook [gagal](#handle-a-hook-that-fails) dengan pesan yang menyertakan `a drop after its next() was answered`.253Untuk menghentikan prompt, kembalikan `{ drop: 'the reason' }` tanpa memanggil `next`. Teks tersebut kembali ke input prompt pengguna, dan mereka melihat `Prompt dropped by a hook:` diikuti alasan Anda, jadi tujukan alasan tersebut kepada mereka. Jika hook Anda mengembalikan `drop` setelah panggilan `next(e)`-nya meloloskan prompt, giliran tetap berjalan, dan hook [gagal](#handle-a-hook-that-fails) dengan pesan yang menyertakan `a drop after its next() was answered`.

249 254 

250[Peristiwa lain](/docs/id/plugins/mods/reference#prompts-and-what-claude-reads) mencakup sisa apa yang dibaca Claude: `prompt.section` untuk setiap bagian system prompt, `prompt.context` untuk konteks yang dikirim dengan pesan pertama, dan `skill.prompt` untuk teks skill. Teks dari hook ini yang berubah antar permintaan [membatalkan cache prompt](/docs/id/prompt-caching).255[Peristiwa lain](/docs/id/plugins/mods/reference#prompts-and-what-claude-reads) mencakup sisa apa yang dibaca Claude: `prompt.section` untuk setiap bagian system prompt, `prompt.context` untuk konteks yang dikirim dengan pesan pertama, dan `skill.prompt` untuk teks skill. Teks dari hook ini yang berubah antar permintaan [membatalkan cache prompt](/docs/id/prompt-caching).

251 256 


281 286 

282`result.usage` menyimpan hitungan token yang dilaporkan Claude API untuk permintaan, ditambah `model` yang menjawab: `input_tokens`, `output_tokens`, `cache_read_input_tokens`, dan `cache_creation_input_tokens`. Hook juga berjalan untuk permintaan subagent, jadi periksa `e.agentId` ketika Anda hanya menginginkan percakapan utama.287`result.usage` menyimpan hitungan token yang dilaporkan Claude API untuk permintaan, ditambah `model` yang menjawab: `input_tokens`, `output_tokens`, `cache_read_input_tokens`, dan `cache_creation_input_tokens`. Hook juga berjalan untuk permintaan subagent, jadi periksa `e.agentId` ketika Anda hanya menginginkan percakapan utama.

283 288 

289Untuk melihat panggilan tool yang dijalankan sendiri oleh API selama permintaan, seperti panggilan ke [tool advisor](/docs/id/advisor), baca `result.serverToolUses`. Claude Code tidak menjalankan panggilan ini, sehingga tidak ada hook `tool.call` atau `tool.check` yang diaktifkan untuk panggilan tersebut. Bidang ini tidak ada ketika respons tidak memiliki panggilan semacam itu, dan memerlukan Claude Code v2.1.290 atau yang lebih baru.

290 

284<h3 id="hook-the-settings-hook-events">291<h3 id="hook-the-settings-hook-events">

285 Tangani peristiwa hook pengaturan292 Tangani peristiwa hook pengaturan

286</h3>293</h3>


369* **`tool.check`**: kembalikan `{ decision: 'deny', reason: 'the reason' }`376* **`tool.check`**: kembalikan `{ decision: 'deny', reason: 'the reason' }`

370* **`plugin.register`**: kembalikan `{ refuse: 'the reason' }`, seperti yang ditunjukkan [Tolak mod ketika pemeriksaan Anda gagal](/docs/id/plugins/mods/admin#refuse-mods-when-your-check-fails)377* **`plugin.register`**: kembalikan `{ refuse: 'the reason' }`, seperti yang ditunjukkan [Tolak mod ketika pemeriksaan Anda gagal](/docs/id/plugins/mods/admin#refuse-mods-when-your-check-fails)

371 378 

379Pada `tool.call`, `deny` yang dikembalikan setelah `next` diselesaikan [menahan hasil dari Claude](#guard-or-change-a-tool-call).

380 

372<h2 id="next-steps">381<h2 id="next-steps">

373 Langkah berikutnya382 Langkah berikutnya

374</h2>383</h2>

Details

10 10 

11Peta ini menunjukkan di mana mod dapat menggambar dalam sesi terminal:11Peta ini menunjukkan di mana mod dapat menggambar dalam sesi terminal:

12 12 

13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Peta sesi terminal Claude Code. Mod dapat menambahkan panel sebagai sidebar di sebelah kanan, toast di sudut kanan atas transkrip, baris log dalam transkrip, pita di atas prompt, dan baris status di bawah prompt. Mod dapat menggambar ulang pesan, baris panggilan tool, dan spinner. Prompt adalah milik Claude Code sendiri." width="600" height="336" data-path="images/mods-screen-map.svg" />13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Peta sesi terminal Claude Code dalam rendering layar penuh. Mod dapat menambahkan panel sebagai sidebar di sebelah kanan, toast di sudut kanan atas transkrip, baris log dalam transkrip, pita di atas prompt, dan baris status di bawah prompt. Mod dapat menggambar ulang pesan, baris panggilan tool, dan spinner. Prompt adalah milik Claude Code sendiri." width="600" height="336" data-path="images/mods-screen-map.svg" />

14 14 

15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Peta sesi terminal Claude Code. Mod dapat menambahkan panel sebagai sidebar di sebelah kanan, toast di sudut kanan atas transkrip, baris log dalam transkrip, pita di atas prompt, dan baris status di bawah prompt. Mod dapat menggambar ulang pesan, baris panggilan tool, dan spinner. Prompt adalah milik Claude Code sendiri." width="600" height="336" data-path="images/mods-screen-map-dark.svg" />15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Peta sesi terminal Claude Code dalam rendering layar penuh. Mod dapat menambahkan panel sebagai sidebar di sebelah kanan, toast di sudut kanan atas transkrip, baris log dalam transkrip, pita di atas prompt, dan baris status di bawah prompt. Mod dapat menggambar ulang pesan, baris panggilan tool, dan spinner. Prompt adalah milik Claude Code sendiri." width="600" height="336" data-path="images/mods-screen-map-dark.svg" />

16 16 

17Di terminal yang lebih sempit, panel duduk di atas prompt daripada di samping transkrip.17Di terminal yang lebih sempit, panel duduk di atas prompt daripada di samping transkrip.

18 18 


324| `title` | Label tab panel saat lebih dari satu panel terbuka |324| `title` | Label tab panel saat lebih dari satu panel terbuka |

325| `focus` | Permintaan [fokus keyboard](#know-which-keys-your-mod-can-receive) |325| `focus` | Permintaan [fokus keyboard](#know-which-keys-your-mod-can-receive) |

326| `closeOnEscape` | Membuat Esc menutup panel |326| `closeOnEscape` | Membuat Esc menutup panel |

327| `holdToasts` | Menahan toast, pemberitahuan kecil dari [`$.ui.toast`](/docs/id/plugins/mods/api#show-something-without-starting-a-turn), sampai panel ditutup |327| `holdToasts` | Di terminal, menahan toast selama panel ini yang sedang ditampilkan. Lihat [Tahan toast di balik dialog](#hold-toasts-behind-a-dialog). |

328| `rows` | Tinggi untuk diminta saat panel duduk di atas prompt. Default adalah sepertiga dari ruang. |328| `rows` | Tinggi untuk diminta saat panel duduk di atas prompt. Default adalah sepertiga dari ruang. |

329| `columns` | Lebar untuk diminta saat panel duduk di samping transkrip |329| `columns` | Lebar untuk diminta saat panel duduk di samping transkrip |

330 330 


337 337 

338Untuk membiarkan perintah membuka panel saat Claude bekerja, tambahkan `immediate: true` saat Anda [mendaftarkan perintah](/docs/id/plugins/mods/api#add-a-command). Tanpanya, perintah yang diketik selama giliran menunggu giliran berakhir.338Untuk membiarkan perintah membuka panel saat Claude bekerja, tambahkan `immediate: true` saat Anda [mendaftarkan perintah](/docs/id/plugins/mods/api#add-a-command). Tanpanya, perintah yang diketik selama giliran menunggu giliran berakhir.

339 339 

340<h4 id="hold-toasts-behind-a-dialog">

341 Tahan toast di balik dialog

342</h4>

343 

344Teruskan `holdToasts: true` ke `$.ui.open` ketika panel adalah dialog yang dijawab pengguna lalu ditinggalkan, sehingga toast tidak muncul saat mereka memutuskan. Di terminal, penahanan berlangsung selama panel tersebut yang sedang ditampilkan, dan toast yang dimunculkan dalam waktu itu menunggu sampai penahanan berakhir.

345 

346Claude Code menahan toast dari mod lain dan notifikasi singkatnya sendiri, serta toast yang dimunculkan mod Anda dengan [`$.ui.toast`](/docs/id/plugins/mods/api#show-something-without-starting-a-turn). Jangan gunakan bidang ini pada panel yang tetap terbuka, sehingga pengguna tetap melihatnya.

347 

340<h4 id="when-a-pane-waits-for-a-wider-terminal">348<h4 id="when-a-pane-waits-for-a-wider-terminal">

341 Ketika panel menunggu terminal yang lebih lebar349 Ketika panel menunggu terminal yang lebih lebar

342</h4>350</h4>

Details

64| :- | :- | :- |64| :- | :- | :- |

65| [`tool.call`](/docs/id/plugins/mods/events#guard-or-change-a-tool-call) | Sebuah tool akan dijalankan | `next(e)`, `{ deny: reason }`, atau `{ result }` |65| [`tool.call`](/docs/id/plugins/mods/events#guard-or-change-a-tool-call) | Sebuah tool akan dijalankan | `next(e)`, `{ deny: reason }`, atau `{ result }` |

66| [`tool.check`](/docs/id/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code memutuskan apakah panggilan tool boleh dijalankan, setelah hook `tool.call` dan `PreToolUse`. `next(e)` resolve ke keputusan yang dicapai oleh aturan, mode izin, dan hook-hook tersebut. | `{ decision }`, yaitu `allow`, `ask`, atau `deny` |66| [`tool.check`](/docs/id/plugins/mods/events#where-settings-hooks-run-in-the-order) | Claude Code memutuskan apakah panggilan tool boleh dijalankan, setelah hook `tool.call` dan `PreToolUse`. `next(e)` resolve ke keputusan yang dicapai oleh aturan, mode izin, dan hook-hook tersebut. | `{ decision }`, yaitu `allow`, `ask`, atau `deny` |

67| `tool.describe` | Sekali untuk setiap tool, saat deskripsinya pertama kali dikirim ke Claude | `{ description }`, secara opsional dengan `isDeferred` diatur ke `true` untuk menempatkan tool di balik [pencarian tool](/docs/id/mcp#scale-with-mcp-tool-search) atau `false` untuk memuatnya sejak awal |67| `tool.describe` | Sekali untuk setiap tool, saat deskripsinya pertama kali dikirim ke Claude. Sekali lagi untuk tool MCP saat Claude memuatnya melalui [pencarian tool](/docs/id/mcp#scale-with-mcp-tool-search), dengan `e.description` diatur ke teks yang dibaca Claude untuk tool yang dimuat tersebut. | `{ description }`, secara opsional dengan `isDeferred` diatur ke `true` untuk menempatkan tool di balik pencarian tool atau `false` untuk memuatnya sejak awal |

68 68 

69<h4 id="agent-and-organization-fields-on-tool-check">69<h4 id="agent-and-organization-fields-on-tool-check">

70 Field agent dan organisasi pada `tool.check`70 Field agent dan organisasi pada `tool.check`


133| `session.end` | Sesi berakhir, atau `/clear`, `/resume`, atau `/branch` dijalankan. `e.reason` adalah `clear`, `resume`, `logout`, `prompt_input_exit`, atau `other`. `/branch` melaporkan `resume`. | `next(e)` |133| `session.end` | Sesi berakhir, atau `/clear`, `/resume`, atau `/branch` dijalankan. `e.reason` adalah `clear`, `resume`, `logout`, `prompt_input_exit`, atau `other`. `/branch` melaporkan `resume`. | `next(e)` |

134| `session.compact` | Percakapan akan dipadatkan | `{ skip: reason }` |134| `session.compact` | Percakapan akan dipadatkan | `{ skip: reason }` |

135| [`session.receive`](/docs/id/plugins/mods/api#send-and-receive-messages-between-sessions), [`session.send`](/docs/id/plugins/mods/api#send-and-receive-messages-between-sessions) | Sebuah pesan tiba dari, atau akan dikirim ke, agent atau sesi lain. Lihat [Mengirim dan menerima pesan antarsesi](/docs/id/plugins/mods/api#send-and-receive-messages-between-sessions). | `{ consumed: reason }` untuk `receive`, `{ isDelivered: false, reason }` untuk `send` |135| [`session.receive`](/docs/id/plugins/mods/api#send-and-receive-messages-between-sessions), [`session.send`](/docs/id/plugins/mods/api#send-and-receive-messages-between-sessions) | Sebuah pesan tiba dari, atau akan dikirim ke, agent atau sesi lain. Lihat [Mengirim dan menerima pesan antarsesi](/docs/id/plugins/mods/api#send-and-receive-messages-between-sessions). | `{ consumed: reason }` untuk `receive`, `{ isDelivered: false, reason }` untuk `send` |

136| `session.append` | Sekali untuk setiap baris yang disimpan percakapan, seperti prompt, blok respons, hasil tool, atau pemberitahuan, sebelum disimpan | `next({ ...e, message })` untuk menulis ulang `content` baris tersebut |136| `session.append` | Sekali untuk setiap baris yang disimpan percakapan, seperti prompt, blok respons, hasil tool, atau pemberitahuan, sebelum disimpan | `next({ ...e, message })` dengan `message.content` yang diubah, untuk menulis ulang blok teks baris tersebut atau `content` dari blok `tool_result` di dalamnya |

137| `session.attach`, `session.detach` | Aplikasi lain terhubung ke atau terputus dari sesi | `next(e)` |137| `session.attach`, `session.detach` | Aplikasi lain terhubung ke atau terputus dari sesi | `next(e)` |

138| `session.measure` | Setelah setiap giliran, dan saat persentase penggunaan batas paket berubah | `next(e)` |138| `session.measure` | Setelah setiap giliran, dan saat persentase penggunaan batas paket berubah | `next(e)` |

139 139 


209| [`$.ui`](/docs/id/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |209| [`$.ui`](/docs/id/plugins/mods/interface#pick-where-to-draw) | `resolve`, `invalidate`, `open`, `close`, `panes`, `focus`, `scroll`, `toast`, `status`, `log`, `notice`, `ask`, `copy`, `selection`, `blit` |

210| [`$.command`](/docs/id/plugins/mods/api#add-a-command) | `register`, `run`, `list` |210| [`$.command`](/docs/id/plugins/mods/api#add-a-command) | `register`, `run`, `list` |

211| [`$.tool`](/docs/id/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |211| [`$.tool`](/docs/id/plugins/mods/api#add-a-tool) | `register`, `call`, `check`, `list` |

212| `$.agent` | `register`, `spawn`, `list` |212| `$.agent` | `register`, `spawn`, `list`. `list()` mengembalikan subagent dan rekan tim (teammate) sesi ini, masing-masing dengan `status` berupa `pending`, `running`, `waiting`, `idle`, `completed`, `failed`, atau `killed`, di mana `idle` dan `waiting` memerlukan Claude Code v2.1.289 atau yang lebih baru. |

213| [`$.model`](/docs/id/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |213| [`$.model`](/docs/id/plugins/mods/api#call-a-model) | `complete`, `fork`, `classify` |

214| [`$.prompt`](/docs/id/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`, `read`, `fill`, `suggest`, `compose`. Claude membaca teks dari `submit({ text })` setelah sebuah kalimat yang menyebut mod Anda sebagai pengirim. `submit({ text, asUser: true })` mengirim teks sebagai kata-kata pengguna sendiri, tanpa kalimat tersebut. |214| [`$.prompt`](/docs/id/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`, `read`, `fill`, `suggest`, `compose`. Claude membaca teks dari `submit({ text })` setelah sebuah kalimat yang menyebut mod Anda sebagai pengirim. `submit({ text, asUser: true })` mengirim teks sebagai kata-kata pengguna sendiri, tanpa kalimat tersebut. |

215| `$.turn` | `abort` |215| `$.turn` | `abort` |


317| Timeout `$.process.run` | 30 detik secara default, paling lama 10 menit |317| Timeout `$.process.run` | 30 detik secara default, paling lama 10 menit |

318| `maxTokens` `$.model.complete` | 1024 secara default, hingga 64.000 atau batas output model |318| `maxTokens` `$.model.complete` | 1024 secara default, hingga 64.000 atau batas output model |

319| `$.fs.read` dan `$.fs.write` | 4 MiB untuk satu file |319| `$.fs.read` dan `$.fs.write` | 4 MiB untuk satu file |

320| Alasan `drop` dari hook atau alasan `deny` dari `config.set` | 4.096 karakter. Bagian akhir dari alasan yang lebih panjang dipotong, dan drop atau deny tetap berlaku. Pemotongan ini memerlukan Claude Code v2.1.292 atau yang lebih baru, dan pada versi sebelumnya hook tersebut [gagal](/docs/id/plugins/mods/events#handle-a-hook-that-fails) sebagai gantinya. |

320| Teks dalam satu tree | 100.000 karakter pertama yang digambar |321| Teks dalam satu tree | 100.000 karakter pertama yang digambar |

321| `language` atau `path` dari `Code`, `value` dari opsi `Select`, atau `module` dari `Client` | 10.000 karakter. Jika salah satunya lebih panjang, Claude Code [menggambar versi situsnya sendiri](/docs/id/plugins/mods/interface#build-a-tree-from-elements). |322| `language` atau `path` dari `Code`, `value` dari opsi `Select`, atau `module` dari `Client` | 10.000 karakter. Jika salah satunya lebih panjang, Claude Code [menggambar versi situsnya sendiri](/docs/id/plugins/mods/interface#build-a-tree-from-elements). |

322| `href` dari `Link` | 2.048 karakter. `href` yang lebih panjang membuat seluruh tree tidak digambar. |323| `href` dari `Link` | 2.048 karakter. `href` yang lebih panjang membuat seluruh tree tidak digambar. |


325| Penggambaran ulang `$.ui.invalidate('ui.render')` | Dibatasi hingga 10 per detik, atau 30 di terminal untuk panel yang terlihat, band yang diperluas, dan baris petunjuk di bawah prompt. Panggilan yang datang lebih cepat digabungkan. |326| Penggambaran ulang `$.ui.invalidate('ui.render')` | Dibatasi hingga 10 per detik, atau 30 di terminal untuk panel yang terlihat, band yang diperluas, dan baris petunjuk di bawah prompt. Panggilan yang datang lebih cepat digabungkan. |

326| `$.ui.toast` | Ditampilkan selama 4 detik kecuali Anda meneruskan `{ timeoutMs }` |327| `$.ui.toast` | Ditampilkan selama 4 detik kecuali Anda meneruskan `{ timeoutMs }` |

327| Panel yang dibuka tanpa diminta pengguna | Ditempatkan mulai dari 144 kolom terminal, 110 setelah pengguna pernah membukanya sekali |328| Panel yang dibuka tanpa diminta pengguna | Ditempatkan mulai dari 144 kolom terminal, 110 setelah pengguna pernah membukanya sekali |

329| Cakupan, seperti fungsi, blok, dan loop, yang bersarang satu di dalam yang lain dalam satu file modul hook | 2.000 |

328| Nama perintah, tool, tipe subagent, dan panel | Huruf, digit, `_`, dan `-`, hingga 64 karakter |330| Nama perintah, tool, tipe subagent, dan panel | Huruf, digit, `_`, dan `-`, hingga 64 karakter |

329| Satu tes `claude plugin test` | 5 detik kecuali tes tersebut menetapkan `timeoutMs` |331| Satu tes `claude plugin test` | 5 detik kecuali tes tersebut menetapkan `timeoutMs` |

330 332 

Details

110* `returned neither { value } nor { deny }`: stub untuk panggilan mods API mengembalikan nilai telanjang, yang membuat tes gagal110* `returned neither { value } nor { deny }`: stub untuk panggilan mods API mengembalikan nilai telanjang, yang membuat tes gagal

111* `no implementation for` diikuti oleh nama: mod Anda membuat panggilan itu dan tidak ada stub yang menjawabnya111* `no implementation for` diikuti oleh nama: mod Anda membuat panggilan itu dan tidak ada stub yang menjawabnya

112 112 

113Kit juga mengekspor mock dalam memori yang menjawab seluruh namespace untuk Anda. `mock.clock(on)` menjawab [`$.clock`](/docs/id/plugins/mods/api#run-work-in-the-background), `mock.store(on, { count: 7 })` menjawab `$.store` dari toko yang dimulai dengan entri tersebut, dan `mock.env(on, { CI: 'true' })` menjawab `$.env.get` dari variabel tersebut. `mock.clock` mengembalikan jam mock yang tes Anda maju, sehingga tes timer tidak menunggu. `mock.store` mengembalikan tidak ada, jadi untuk memeriksa apa yang disimpan mod Anda, tulis dua stub `store` sendiri seperti [tes gambar](#test-a-drawing) lakukan.113Kit juga mengekspor mock siap pakai untuk jam, toko, environment variable, dan baris yang ditambahkan ke percakapan:

114 

115* **`mock.clock(on)`**: menjawab [`$.clock`](/docs/id/plugins/mods/api#run-work-in-the-background) dan mengembalikan jam mock yang dimajukan oleh tes Anda, sehingga tes timer tidak menunggu.

116* **`mock.store(on, { count: 7 })`**: menjawab `$.store` dari toko yang dimulai dengan entri tersebut. Ini tidak mengembalikan apa pun, jadi untuk memeriksa apa yang disimpan mod Anda, tulis dua stub `store` sendiri seperti yang dilakukan [tes gambar](#test-a-drawing).

117* **`mock.env(on, { CI: 'true' })`**: menjawab `$.env.get` dari variabel tersebut.

118* **`mock.session(on)`**: mengembalikan sesi mock yang metode `appended()`-nya mencantumkan baris yang ditambahkan mod Anda dengan [`$.session.append`](/docs/id/plugins/mods/reference#session), yang terlama terlebih dahulu; ini memerlukan Claude Code v2.1.293 atau lebih baru.

114 119 

115<h3 id="follow-the-test-kit’s-rules">120<h3 id="follow-the-test-kit’s-rules">

116 Ikuti aturan test kit121 Ikuti aturan test kit


168 Lihat apa yang dikembalikan stub173 Lihat apa yang dikembalikan stub

169</h3>174</h3>

170 175 

171Setiap panggilan mods API yang dibuat mod Anda dalam tes memerlukan stub yang menjawab di tempat Claude Code, kecuali beberapa yang dijawab kit sendiri: panggilan [`$.ui.invalidate`](/docs/id/plugins/mods/interface#redraw-when-something-changes) dan [`$.state`](/docs/id/plugins/mods/interface#keep-state). Untuk panggilan `$.clock`, gunakan `mock.clock(on)`, atau `$.clock.now()` mod Anda gagal dengan `no implementation for clock.now`.176Setiap panggilan mods API yang dibuat mod Anda dalam tes memerlukan stub yang menjawab di tempat Claude Code, kecuali beberapa yang dijawab kit sendiri: panggilan [`$.ui.invalidate`](/docs/id/plugins/mods/interface#redraw-when-something-changes), [`$.state`](/docs/id/plugins/mods/interface#keep-state), dan `$.session.append`. Untuk panggilan `$.clock`, gunakan `mock.clock(on)`, atau `$.clock.now()` mod Anda gagal dengan `no implementation for clock.now`.

172 177 

173Tabel ini mencantumkan yang paling sering digunakan mod. Kolom pertama adalah panggilan yang dibuat mod Anda atau peristiwa yang dilewatkan dengan `next(e)`. Kolom kedua adalah fungsi untuk diteruskan ke `on` di bawah nama itu, jadi baris `$.store.get` menjadi `on('store.get', ($, e) => ({ value: saved.get(e.key) }))`. `'...'` dalam stub menandai teks untuk Anda isi:178Tabel ini mencantumkan yang paling sering digunakan mod. Kolom pertama adalah panggilan yang dibuat mod Anda atau peristiwa yang dilewatkan dengan `next(e)`. Kolom kedua adalah fungsi untuk diteruskan ke `on` di bawah nama itu, jadi baris `$.store.get` menjadi `on('store.get', ($, e) => ({ value: saved.get(e.key) }))`. `'...'` dalam stub menandai teks untuk Anda isi:

174 179 

Details

116 116 

117Atur atau ubah nilainya. Akhir baris menyebutkan entri `pluginConfigs`-nya di `settings.json`.117Atur atau ubah nilainya. Akhir baris menyebutkan entri `pluginConfigs`-nya di `settings.json`.

118 118 

119<h3 id="code-nested-too-deep-to-scan-more-than-2000-scopes">

120 `code nested too deep to scan: more than 2000 scopes`

121</h3>

122 

123Baris dimulai dengan nama mod, kemudian `hooks module did not load:`, file, dan `code nested too deep to scan: more than 2000 scopes`. File dalam modul hook tidak dapat menyarangkan scope, seperti fungsi, blok, dan loop, lebih dari [2.000 tingkat](/docs/id/plugins/mods/reference#limits). [`claude plugin validate`](/docs/id/plugins/mods/create#check-what-claude-code-reads-from-your-mod) melaporkan alasan yang sama.

124 

125Tulis ulang kode agar scope-nya tidak bersarang terlalu dalam.

126 

119<h3 id="no-mod-loads-in-a-directory-you-opened-for-the-first-time">127<h3 id="no-mod-loads-in-a-directory-you-opened-for-the-first-time">

120 Tidak ada mod yang dimuat di direktori yang Anda buka untuk pertama kalinya128 Tidak ada mod yang dimuat di direktori yang Anda buka untuk pertama kalinya

121</h3>129</h3>


132 140 

133Mulai tanpa flag.141Mulai tanpa flag.

134 142 

143<h3 id="claude-code-stops-asking-to-enable-hot-reloading">

144 Claude Code berhenti menanyakan untuk mengaktifkan hot reloading

145</h3>

146 

147Claude menulis mod dalam sesi interaktif, tidak ada yang dimuat, dan Claude Code tidak lagi menanyakan [apakah akan mengaktifkan hot reloading](/docs/id/plugins/mods/create#ask-claude-for-a-mod). Jika pertanyaan berakhir tiga kali tanpa jawaban yang dipilih, hot reloading tetap mati. Misalnya, pertanyaan berakhir seperti itu ketika Anda mengatur [`askUserQuestionTimeout`](/docs/id/settings-reference#askuserquestiontimeout) dan waktunya habis sebelum Anda menjawab. Pengaturan itu berlaku di sini karena Claude Code bertanya dalam [dialog pertanyaan yang sama yang digunakan `AskUserQuestion`](/docs/id/tools-reference#question-auto-continue-timeout). Pertanyaan yang Anda tutup sendiri tidak dihitung dalam tiga kali tersebut.

148 

149Untuk menjalankan mod, [salin direktorinya keluar dari folder mods](/docs/id/plugins/mods/create#use-the-mod-in-other-sessions), lalu di shell Anda mulai sesi baru dengan `--plugin-dir`, seperti `claude --plugin-dir ~/mods/git-branch`.

150 

135<h2 id="a-hook-is-skipped-or-a-mod-is-unloaded">151<h2 id="a-hook-is-skipped-or-a-mod-is-unloaded">

136 Hook dilewati atau mod dibongkar152 Hook dilewati atau mod dibongkar

137</h2>153</h2>


209 Gambar tidak muncul atau merespons225 Gambar tidak muncul atau merespons

210</h2>226</h2>

211 227 

212Mod dimuat, dan pane, band, atau kontrol tidak berperilaku seperti yang Anda harapkan.228Mod dimuat, dan pane, band, toast, atau kontrol tidak berperilaku seperti yang Anda harapkan.

213 229 

214<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">230<h3 id="a-pane-or-band-is-empty-or-shows-claude-code’s-usual-content">

215 Pane atau band kosong atau menampilkan konten biasa Claude Code231 Pane atau band kosong atau menampilkan konten biasa Claude Code


247 263 

248Buka pane dari perintah atau tombol, atau periksa hasil `isPlaced` panggilan. Lihat [Open a pane at the right time](/docs/id/plugins/mods/interface#open-a-pane-at-the-right-time).264Buka pane dari perintah atau tombol, atau periksa hasil `isPlaced` panggilan. Lihat [Open a pane at the right time](/docs/id/plugins/mods/interface#open-a-pane-at-the-right-time).

249 265 

266<h3 id="a-toast-doesn’t-appear">

267 Toast tidak muncul

268</h3>

269 

270Mod Anda memanggil [`$.ui.toast`](/docs/id/plugins/mods/api#show-something-without-starting-a-turn) dalam sesi terminal interaktif dan Anda tidak melihat toast tersebut. Untuk memastikan bahwa panggilan tersebut berjalan, cari di [debug log](#read-the-debug-log) baris yang berisi nama mod Anda dan teks toast, seperti `$.ui.toast (first-mod): build finished`. Kemudian periksa penyebab seperti berikut:

271 

272* **Baris untuk panggilan tersebut tidak ada**: cari baris yang menjelaskan mengapa Claude Code menolak panggilan tersebut, seperti `first-mod: $.ui.toast dropped: timeoutMs is a whole number of ms, 1 to 60000`.

273* **Sebuah pane sedang menahan toast**: mod Anda atau mod lain meneruskan [`holdToasts`](/docs/id/plugins/mods/interface#hold-toasts-behind-a-dialog) saat membuka pane yang sedang ditampilkan. Tutup pane tersebut untuk mengakhiri penahanan. Jika pane tersebut milik Anda dan memang dimaksudkan untuk tetap terbuka, hapus `holdToasts` dari panggilan `$.ui.open`-nya dan buka pane tersebut lagi.

274* **Toast berada di bawah prompt**: di [renderer klasik](/docs/id/fullscreen#enable-fullscreen-rendering), lihat di sebelah kanan di bawah prompt. Toast di sana berupa satu baris yang diawali dengan nama mod, bukan kotak di kanan atas.

275* **Mod Anda memunculkan toast yang lebih baru**: di renderer klasik, toast yang lebih baru dari mod Anda dapat menggantikan toast yang sedang ditampilkan atau sedang menunggu untuk ditampilkan. Debug log memiliki baris lain untuk toast yang lebih lama, yang diakhiri dengan `gave way, cut short` jika toast tersebut sedang ditampilkan, atau `gave way, unseen` jika toast tersebut tidak pernah muncul. Untuk menampilkan kedua pesan, letakkan keduanya dalam satu toast.

276* **Waktu toast habis sebelum digambar**: dalam rendering fullscreen, Claude Code menggambar paling banyak tiga toast sekaligus, sehingga waktu sebuah toast dapat habis sebelum toast tersebut digambar. Debug log memiliki baris lain untuk toast tersebut, yang diakhiri dengan `left the stack, never drawn`. Ketika mod Anda memunculkan beberapa toast sekaligus, letakkan pesan-pesannya dalam satu toast.

277 

278Sebelum v2.1.290, Claude Code membuang toast yang dimunculkan dalam dua detik sejak toast terakhir yang ditampilkannya untuk mod Anda, dan baris debug log untuk toast yang dibuang tersebut mengatakan `within 2000ms of the last; dropped`.

279 

250<h3 id="hotkeys-do-nothing">280<h3 id="hotkeys-do-nothing">

251 Hotkey tidak melakukan apa pun281 Hotkey tidak melakukan apa pun

252</h3>282</h3>

Details

110}110}

111```111```

112 112 

113Di shell Anda, jalankan `claude plugin validate .` di repositori untuk memeriksa file sebelum Anda mendorong.113Di shell Anda, jalankan `claude plugin validate .` di repositori sebelum Anda mendorong. Untuk hal-hal yang diperiksa oleh perintah tersebut, lihat [Validasi direktori](/docs/id/plugins/cli-reference#validate-a-directory).

114 114 

115[Buat marketplace](/docs/id/plugins/create-marketplace) mencakup tata letak dengan beberapa plugin di satu repositori.115[Buat marketplace](/docs/id/plugins/create-marketplace) mencakup tata letak dengan beberapa plugin di satu repositori.

116 116 


129* Tambahkan marketplace sekali: `claude plugin marketplace add your-org/your-marketplace`, di mana argumennya adalah shorthand GitHub `owner/repo`, URL, atau jalur129* Tambahkan marketplace sekali: `claude plugin marketplace add your-org/your-marketplace`, di mana argumennya adalah shorthand GitHub `owner/repo`, URL, atau jalur

130* Pasang plugin: `claude plugin install deploy-helper@your-marketplace`130* Pasang plugin: `claude plugin install deploy-helper@your-marketplace`

131* Atau lakukan keduanya dari dalam sesi: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Memerlukan Claude Code v2.1.275 atau lebih baru. Lihat [Tambahkan marketplace dan pasang dalam satu perintah](/docs/id/plugins/install#add-a-marketplace-and-install-in-one-command)131* Atau lakukan keduanya dari dalam sesi: `/plugin install deploy-helper --marketplace your-org/your-marketplace`. Memerlukan Claude Code v2.1.275 atau lebih baru. Lihat [Tambahkan marketplace dan pasang dalam satu perintah](/docs/id/plugins/install#add-a-marketplace-and-install-in-one-command)

132* Atau lakukan keduanya dari shell dalam satu perintah: `claude plugin install deploy-helper --marketplace your-org/your-marketplace`. Memerlukan Claude Code v2.1.292 atau lebih baru

132 133 

133<h3 id="ship-updates-to-users">134<h3 id="ship-updates-to-users">

134 Kirim pembaruan kepada pengguna135 Kirim pembaruan kepada pengguna

Details

163 `Invalid marketplace source format`163 `Invalid marketplace source format`

164</h3>164</h3>

165 165 

166Anda menjalankan `/plugin marketplace add <source>` atau `claude plugin marketplace add <source>`, dan Claude Code menjawab `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.166Anda menjalankan `/plugin marketplace add <source>`, `claude plugin marketplace add <source>`, atau `claude plugin install <plugin> --marketplace <source>`, dan Claude Code menjawab `Invalid marketplace source format. Try: owner/repo, https://..., or ./path`.

167 167 

168Claude Code menerima sumber dalam salah satu bentuk ini:168Claude Code menerima sumber dalam salah satu bentuk ini:

169 169 


237* **Anda memiliki marketplace**: letakkan file di lokasi itu dan tambahkan kembali marketplace237* **Anda memiliki marketplace**: letakkan file di lokasi itu dan tambahkan kembali marketplace

238* **Seseorang lain menyelenggarakannya**: tanyakan kepada pemilik untuk sumber yang tepat yang mereka terbitkan238* **Seseorang lain menyelenggarakannya**: tanyakan kepada pemilik untuk sumber yang tepat yang mereka terbitkan

239 239 

240<h3 id="cannot-install-plugins-from-a-marketplace-with-this-name">

241 `Cannot add marketplace "<name>": Claude Code cannot install plugins from a marketplace with this name`

242</h3>

243 

244Anda menambahkan marketplace, dan [`name`](/docs/id/plugins/marketplace-reference#top-level-fields) di `marketplace.json`-nya tidak valid sebagai bagian setelah `@` dalam [ID plugin](/docs/id/plugins/loading#find-where-a-plugin-came-from) seperti `my-plugin@my-marketplace`. Claude Code menolak penambahan tersebut dan tidak mendaftarkan apa pun.

245 

246Sisa pesan menyatakan aturan untuk nama tersebut. Dalam contoh ini, `_internal` melanggar aturan karena dimulai dengan `_`:

247 

248```text theme={null}

249Cannot add marketplace "_internal": Claude Code cannot install plugins from a marketplace with this name. Each part of a plugin id (plugin@marketplace) may use only the letters a-z and A-Z, digits, ".", "_" and "-", and must start with a letter or digit. The name is set by "name" in the marketplace's marketplace.json; ask its maintainer to change it.

250```

251 

252Berikan marketplace nama yang sesuai dengan aturan tersebut, lalu tambahkan lagi:

253 

254* **Anda memiliki marketplace**: ubah `name` di `marketplace.json`, misalnya menjadi `internal-tools`

255* **Seseorang lain menyelenggarakannya**: minta pemilik untuk mengubah nama tersebut

256 

257Sebelum v2.1.295, Claude Code melaporkan penambahan dalam contoh ini sebagai berhasil.

258 

240<h3 id="ssh-authentication-failed-or-https-authentication-failed">259<h3 id="ssh-authentication-failed-or-https-authentication-failed">

241 `SSH authentication failed` or `HTTPS authentication failed`260 `SSH authentication failed` or `HTTPS authentication failed`

242</h3>261</h3>


568 `Marketplace "<name>" is already added from a different source`587 `Marketplace "<name>" is already added from a different source`

569</h3>588</h3>

570 589 

571Anda mengonfirmasi penambahan marketplace melalui [`/plugin install <plugin> --marketplace <source>`](/docs/id/plugins/install#add-a-marketplace-and-install-in-one-command), dan katalog yang Claude Code ambil dari sumber itu memiliki nama yang sama dengan marketplace yang sudah Anda tambahkan dari sumber berbeda. Claude Code menyimpan marketplace yang ada alih-alih menggantinya, dan plugin tidak diinstal.590Anda menyebutkan sumber marketplace baru dengan [`--marketplace <source>` pada perintah instal](/docs/id/plugins/install#add-a-marketplace-and-install-in-one-command), dalam sesi atau dari shell Anda. Katalog yang Claude Code ambil dari sumber itu memiliki nama yang sama dengan marketplace yang sudah Anda tambahkan dari sumber berbeda. Claude Code menyimpan marketplace yang ada alih-alih menggantinya, dan plugin tidak diinstal.

572 591 

573Pesan lengkapnya terlihat seperti ini:592Pesan lengkapnya terlihat seperti ini:

574 593 


786 805 

787Claude Code menyalin catatan yang tidak dapat digunakan ke dalam file `.set-aside` dan menjatuhkannya dari daftar. Claude Code tidak pernah membaca salinan kembali, dan salinan itu berusia pada jadwal [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays).806Claude Code menyalin catatan yang tidak dapat digunakan ke dalam file `.set-aside` dan menjatuhkannya dari daftar. Claude Code tidak pernah membaca salinan kembali, dan salinan itu berusia pada jadwal [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays).

788 807 

808<h3 id="does-not-load-so-claude-code-ignores-the-whole-file">

809 `does not load (...), so Claude Code ignores the whole file`

810</h3>

811 

812Perintah berhasil. File pengaturan yang disebutkan peringatan memiliki kesalahan, sehingga Claude Code mengabaikan seluruh file, termasuk apa pun yang ditulis perintah tersebut di sana, sampai Anda memperbaikinya.

813 

814Perbaiki kesalahan yang disebutkan peringatan. Untuk nilai yang tidak diterima Claude Code, [Fix a broken settings file](/docs/id/settings#fix-a-broken-settings-file) menjelaskan caranya. Kemudian jalankan perintah lagi jika perubahannya tidak lagi ada di file.

815 

816Peringatan muncul setelah baris keberhasilan `claude plugin install`, `enable`, `disable`, atau `claude plugin marketplace add` di shell Anda:

817 

818```text theme={null}

819⚠ /home/user/.claude/settings.json does not load (its "permissions" is not valid), so Claude Code ignores the whole file, including anything this command wrote there. Fix the file, then run this command again if its change is missing. If a newer Claude Code wrote the file, update Claude Code instead.

820```

821 

822Teks dalam tanda kurung menyebutkan kesalahannya:

823 

824* **`its "<key>" is not valid`**: pengaturan yang dikutip berisi nilai yang tidak diterima Claude Code. Cari pengaturan tersebut di [referensi pengaturan](/docs/id/settings-reference) untuk nilai yang diterimanya. Ketika lebih dari satu nilai gagal, teks menyebutkan pengaturan pertama dan menghitung yang lainnya, seperti dalam `its "permissions" and 1 other value are not valid`.

825* **`it is not a JSON object`**: tingkat atas file bukan objek JSON, seperti file yang tingkat atasnya berupa array.

826 

789<h3 id="a-plugin-you-disabled-still-loads">827<h3 id="a-plugin-you-disabled-still-loads">

790 `Disabled in ~/.claude/settings.json but still loads`828 `Disabled in ~/.claude/settings.json but still loads`

791</h3>829</h3>


812 850 

813Jika organisasi Anda pre-install plugin untuk Anda, itu melakukannya melalui pengaturan terkelola. Lihat [Pre-install and require plugins](/docs/id/plugins/org#pre-install-and-require-plugins).851Jika organisasi Anda pre-install plugin untuk Anda, itu melakukannya melalui pengaturan terkelola. Lihat [Pre-install and require plugins](/docs/id/plugins/org#pre-install-and-require-plugins).

814 852 

853<h3 id="a-plugin-stays-installed-after-plugin-uninstall-on-windows">

854 A plugin stays installed after `plugin uninstall` on Windows

855</h3>

856 

857Di Windows, Anda menjalankan `claude plugin uninstall` pada cakupan project atau local dan perintah itu melaporkan keberhasilan, tetapi `claude plugin list` atau `/plugin` masih mencantumkan plugin tersebut.

858 

859`installed_plugins.json` menyimpan dua catatan instalasi plugin untuk folder proyek, masing-masing menuliskan path folder secara berbeda, dan satu kali uninstall hanya menghapus salah satunya. Untuk memeriksanya, jalankan `claude plugin list --json` di shell Anda. Baris plugin yang tersisa memiliki `projectPath` yang menuliskan folder secara berbeda dari tempat Anda menjalankan uninstall, seperti `c:\work\app` untuk `C:\work\app`.

860 

861Jalankan perintah uninstall yang sama lagi, dengan `--scope` yang sama, dari folder yang sama. Proses kedua tidak menemukan catatan di bawah penulisan path-nya sendiri, sehingga menghapus catatan di bawah penulisan yang lain. Untuk instalasi cakupan project:

862 

863```shell theme={null}

864claude plugin uninstall <name>@<marketplace> --scope project

865```

866 

867Kemudian jalankan `claude plugin list --json` lagi untuk memastikan baris tersebut sudah hilang.

868 

869Sebelum v2.1.295, proses kedua gagal dengan `Plugin "<name>" is not installed in project scope`. Jalankan `claude update`, lalu jalankan uninstall lagi.

870 

815<h3 id="failed-to-load-hooks-from-and-hooks-that-dont-fire">871<h3 id="failed-to-load-hooks-from-and-hooks-that-dont-fire">

816 `Failed to load hooks from <path>` and hooks that don't fire872 `Failed to load hooks from <path>` and hooks that don't fire

817</h3>873</h3>


835 891 

836Jika stderr menunjukkan path plugin terpotong di spasi, command bentuk shell hook menggunakan `${CLAUDE_PLUGIN_ROOT}` di luar tanda kutip dan path instalasi berisi spasi. Bungkus variabel dalam tanda kutip ganda atau gunakan [exec form](/docs/id/hooks#exec-form-and-shell-form). Untuk menemukan variabel yang tidak dikutip, jalankan `claude plugin validate` pada direktori plugin dan cari [peringatan quoting](/docs/id/plugins/manifest-reference#quoting-and-path-separators)-nya.892Jika stderr menunjukkan path plugin terpotong di spasi, command bentuk shell hook menggunakan `${CLAUDE_PLUGIN_ROOT}` di luar tanda kutip dan path instalasi berisi spasi. Bungkus variabel dalam tanda kutip ganda atau gunakan [exec form](/docs/id/hooks#exec-form-and-shell-form). Untuk menemukan variabel yang tidak dikutip, jalankan `claude plugin validate` pada direktori plugin dan cari [peringatan quoting](/docs/id/plugins/manifest-reference#quoting-and-path-separators)-nya.

837 893 

894Jika pemberitahuan berbunyi `Failed to run: Plugin directory does not exist: <path>`, lihat [`Plugin directory does not exist`](#plugin-directory-does-not-exist).

895 

838Untuk kesalahan lain apa pun, jalankan command hook sendiri dari direktori plugin untuk melihat output lengkap, atau tangkap stderr lengkap dengan [debug logging](/docs/id/hooks#debug-hooks).896Untuk kesalahan lain apa pun, jalankan command hook sendiri dari direktori plugin untuk melihat output lengkap, atau tangkap stderr lengkap dengan [debug logging](/docs/id/hooks#debug-hooks).

839 897 

840<h4 id="a-plugin-hook-blocks-a-tool-call-or-prompt">898<h4 id="a-plugin-hook-blocks-a-tool-call-or-prompt">


869 </Step>927 </Step>

870</Steps>928</Steps>

871 929 

930<h3 id="plugin-directory-does-not-exist">

931 `Plugin directory does not exist: <path>`

932</h3>

933 

934Jalankan `/reload-plugins` di prompt Claude Code terlebih dahulu, meskipun pesan menyuruh Anda untuk menginstal ulang. Hook plugin gagal dengan `Failed to run: Plugin directory does not exist: <path> (<plugin> — run /plugin to reinstall)`, dan hook tidak berjalan, ketika direktori tempat sesi Anda memuat hook plugin sudah hilang dari disk. [`Plugin directory not found at path: <path>`](#plugin-directory-not-found-at-path) adalah pesan yang berbeda, tentang entri marketplace.

935 

936Reload memuat hook plugin dari direktorinya saat ini. Kegagalan ditampilkan sekali per sesi untuk setiap event dan perintah hook, sehingga hook yang tidak lagi memunculkan pesan tidak memastikan bahwa masalahnya sudah diperbaiki. Baca output reload sebagai gantinya:

937 

938* **`Reloaded:` tanpa baris kesalahan**: hook plugin tidak lagi menunjuk ke direktori yang hilang

939* **`N errors during load. Run /plugin for details.`**: buka tab **Errors** di `/plugin` dan ikuti entri halaman ini untuk pesan yang ditampilkannya

940* **Baris yang berakhir dengan `Run /reload-plugins --force to apply.`**: tidak ada yang dimuat ulang, dan hook tetap gagal. Jalankan `/reload-plugins --force` di prompt Claude Code

941 

872<h3 id="invalid-mcp-server-config-for-and-mcp-servers-that-dont-start">942<h3 id="invalid-mcp-server-config-for-and-mcp-servers-that-dont-start">

873 `Invalid MCP server config for "<server>"` and MCP servers that don't start943 `Invalid MCP server config for "<server>"` and MCP servers that don't start

874</h3>944</h3>


1063 1133 

1064Anda menjalankan `claude plugin validate <path>`, atau `/plugin validate <path>` dalam sesi, dan itu mencetak `Found N errors` dan `Validation failed`, lalu keluar dengan kode 1.1134Anda menjalankan `claude plugin validate <path>`, atau `/plugin validate <path>` dalam sesi, dan itu mencetak `Found N errors` dan `Validation failed`, lalu keluar dengan kode 1.

1065 1135 

1066Validator membaca manifest di path yang Anda berikan: `.claude-plugin/plugin.json` untuk direktori plugin, atau `.claude-plugin/marketplace.json` untuk direktori marketplace. Untuk marketplace, itu memprefiks masalah dalam manifest entri sendiri dengan indeks entri, sebagai `plugins[1] plugin.json → json: ...`.1136Validator membaca manifest di path yang Anda berikan: `.claude-plugin/plugin.json` untuk direktori plugin, `.claude-plugin/marketplace.json` untuk direktori marketplace, atau keduanya untuk direktori yang menyimpan keduanya. Untuk marketplace, itu memprefiks masalah dalam manifest entri sendiri dengan indeks entri, sebagai `plugins[1] plugin.json → json: ...`. Sebelum v2.1.289, Claude Code memvalidasi direktori yang menyimpan keduanya hanya sebagai marketplace.

1067 1137 

1068Tabel mencakup pesan yang menghentikan validasi dan dua peringatan, `No frontmatter block found` dan `Unknown field '<key>'`, yang menghentikannya hanya ketika Anda melewatkan `--strict`. Peringatan lain, seperti deskripsi yang hilang, tidak tercantum.1138Tabel mencakup pesan yang menghentikan validasi dan dua peringatan, `No frontmatter block found` dan `Unknown field '<key>'`, yang menghentikannya hanya ketika Anda melewatkan `--strict`. Peringatan lain, seperti deskripsi yang hilang, tidak tercantum.

1069 1139 

remote-control.md +54 −21

Details

364 Keterbatasan364 Keterbatasan

365</h2>365</h2>

366 366 

367* **Satu sesi jarak jauh per proses interaktif**: di luar server mode, setiap instans Claude Code mendukung satu sesi jarak jauh pada satu waktu. Gunakan [server mode](#start-a-remote-control-session) untuk menjalankan beberapa sesi bersamaan dari satu proses.367* **Satu sesi jarak jauh per proses interaktif**: di luar mode server, setiap instans Claude Code mendukung satu sesi jarak jauh dalam satu waktu. Gunakan [mode server](#start-a-remote-control-session) untuk menjalankan beberapa sesi secara bersamaan dari satu proses.

368* **Proses lokal harus tetap berjalan**: Remote Control berjalan sebagai proses lokal. Jika Anda menutup terminal, keluar dari Desktop app atau VS Code, atau menghentikan proses `claude` dengan cara lain, sesi akan offline sampai Anda [membawanya kembali](#resume-sessions-after-stopping-the-server). Jika Anda menjalankan `claude` dari terminal di mesin jarak jauh, mulai di dalam `tmux` atau `screen` agar sesi tetap berjalan setelah Anda memutuskan sambungan SSH.368* **Proses lokal harus tetap berjalan**: Remote Control berjalan sebagai proses lokal. Jika Anda menutup terminal, keluar dari aplikasi Desktop atau VS Code, atau menghentikan proses `claude` dengan cara lain, sesi akan offline hingga Anda [mengaktifkannya kembali](#resume-sessions-after-stopping-the-server). Jika Anda menjalankan `claude` dari terminal di mesin jarak jauh, jalankan di dalam `tmux` atau `screen` agar sesi tetap berjalan setelah Anda memutuskan koneksi SSH.

369* **Sesi yang mogok dalam server mode**: jika sesi yang dilayani oleh `claude remote-control` mogok, kirimkan pesan kepadanya dari perangkat yang terhubung. Claude Code melayaninya lagi. Anda tidak perlu memulai ulang server. Memerlukan Claude Code v2.1.238 atau lebih baru.369* **Sesi yang crash dalam mode server**: jika sesi yang dilayani oleh `claude remote-control` mengalami crash, kirimkan pesan ke sesi tersebut dari perangkat yang terhubung. Claude Code akan melayaninya kembali. Anda tidak perlu memulai ulang server. Memerlukan Claude Code v2.1.238 atau yang lebih baru.

370* **Penolakan HTTP 403 pada sesi yang terhubung**: setelah sesi interaktif terhubung, Claude Code terus mencoba ulang hingga tiga menit ketika sesuatu antara mesin Anda dan server Anthropic menjawab dengan HTTP 403, yang dapat terjadi setelah perubahan VPN atau jaringan. Jika penolakan berlangsung lebih lama, Claude Code memutuskan sambungan, dan alasannya menunjukkan apa yang menolak: tepi jaringan, atau proxy, VPN, atau firewall di jaringan Anda sendiri.370* **Penolakan HTTP 403 pada sesi yang terhubung**: setelah sesi interaktif terhubung, Claude Code terus mencoba ulang hingga tiga menit ketika sesuatu di antara mesin Anda dan server Anthropic merespons dengan HTTP 403, seperti yang dapat terjadi setelah perubahan VPN atau jaringan. Jika penolakan berlangsung lebih lama, Claude Code memutuskan koneksi, dan alasannya menyebutkan apa yang menolak: edge jaringan, atau proxy, VPN, atau firewall di jaringan Anda sendiri.

371* **Pemadaman jaringan yang berkepanjangan**: jika mesin Anda aktif tetapi tidak dapat menjangkau jaringan, apa yang Anda lakukan selanjutnya tergantung pada mode:371* **Gangguan jaringan yang berkepanjangan**: jika mesin Anda menyala tetapi tidak dapat menjangkau jaringan, langkah Anda selanjutnya bergantung pada mode:

372 * **Server mode**: Claude Code menyerah setelah kira-kira 10 menit dan proses `claude remote-control` keluar. Jalankan `claude remote-control` lagi untuk memulai sesi baru.372 * **Mode server**: Claude Code berhenti setelah sekitar 10 menit dan proses `claude remote-control` keluar. Jalankan `claude remote-control` lagi untuk memulai sesi baru.

373 * **Sesi interaktif**: terus bekerja secara lokal. Claude Code mencoba ulang selama pemadaman berlangsung dan terhubung kembali secara otomatis ketika jaringan kembali.373 * **Sesi interaktif**: tetap bekerja secara lokal. Claude Code mencoba ulang selama gangguan berlangsung dan terhubung kembali dengan sendirinya ketika jaringan pulih.

374* **Lampiran yang tidak terunduh**: jika file yang Anda lampirkan dari ponsel atau browser tidak dapat diunduh ke mesin Anda, Claude tetap menerima pesan Anda dan file yang berhasil diunduh. Sebagai pengganti file yang hilang, Claude Code menambahkan catatan seperti `[1 of 3 attachments did not arrive]` ke pesan.374* **Lampiran yang tidak terunduh**: jika file yang Anda lampirkan dari ponsel atau browser tidak dapat diunduh ke mesin Anda, Claude tetap menerima pesan Anda beserta file yang berhasil diunduh. Sebagai ganti file yang hilang, Claude Code menambahkan catatan seperti `[1 of 3 attachments did not arrive]` ke pesan tersebut.

375* **Detak jantung kehadiran gagal**: jika sesi interaktif terputus dengan `could not reach the Remote Control server for about 30 minutes`, jalankan `/remote-control` untuk terhubung kembali.375* **Heartbeat kehadiran gagal**: jika sesi interaktif terputus dengan `could not reach the Remote Control server for about 30 minutes`, jalankan `/remote-control` untuk terhubung kembali.

376* **Dialog yang diteruskan kedaluwarsa**: Claude Code membuat prompt izin dan pertanyaan `AskUserQuestion` tetap terbuka sampai Anda menjawabnya. Ketika Claude Code meneruskan dialog jenis lain ke sesi jarak jauh, seperti prompt pilihan model yang ditampilkan setelah penolakan keselamatan, ia menunggu lima menit secara default, kemudian menutup dialog dan melanjutkan dengan default tanpa tindakan dialog. Atur [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry) untuk menyesuaikan atau menonaktifkan batas waktu. Memerlukan Claude Code v2.1.224 atau lebih baru.376* **Dialog yang diteruskan kedaluwarsa**: Claude Code membiarkan permintaan izin dan pertanyaan `AskUserQuestion` tetap terbuka hingga Anda menjawabnya. Ketika Claude Code meneruskan jenis dialog lain ke sesi jarak jauh, seperti prompt pemilihan model yang ditampilkan setelah penolakan keamanan, Claude Code menunggu lima menit secara default, lalu menutup dialog dan melanjutkan dengan default tanpa tindakan dari dialog tersebut. Atur [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry) untuk menyesuaikan atau menonaktifkan batas waktu tersebut. Memerlukan Claude Code v2.1.224 atau yang lebih baru.

377* **Prompt persetujuan kredit penggunaan Fable tidak diteruskan**: Claude Code menampilkan [prompt persetujuan kredit penggunaan Fable](/docs/id/model-config#fable-and-usage-credits) pertengahan sesi hanya di tempat sesi berjalan, bukan di perangkat Anda. Ketika sesi berjalan di terminal dan tidak ada yang menjawab sebelum Claude Code menutup prompt, giliran berakhir tanpa mengirim permintaan; lihat [The prompt to confirm went unanswered](/docs/id/errors#the-prompt-to-confirm-went-unanswered).377* **Prompt persetujuan kredit penggunaan Fable tidak diteruskan**: Claude Code menampilkan [prompt persetujuan kredit penggunaan Fable](/docs/id/model-config#fable-and-usage-credits) di tengah sesi hanya di tempat sesi berjalan, bukan di perangkat Anda. Ketika sesi berjalan di terminal dan tidak ada seorang pun di sana yang menjawab sebelum Claude Code menutup prompt tersebut, giliran berakhir tanpa mengirimkan permintaan; lihat [The prompt to confirm went unanswered](/docs/id/errors#the-prompt-to-confirm-went-unanswered).

378* **Beberapa perintah hanya lokal**: perintah yang hanya berjalan di antarmuka terminal, seperti `/plugin` atau `/resume`, hanya berfungsi dari CLI lokal, terlepas dari apakah Anda meneruskan argumen atau tidak. `/claude-api` juga tidak tersedia ketika Anda mengetikkannya dari mobile atau web. Claude tetap dapat [memuat skill tersebut dengan sendirinya](/docs/id/skills#work-on-claude-api-projects) di sana. Berikut ini berfungsi dari mobile dan web:378* **Beberapa perintah hanya tersedia secara lokal**: perintah yang hanya berjalan di antarmuka terminal, seperti `/plugin` atau `/resume`, hanya berfungsi dari CLI lokal, baik Anda memberikan argumen maupun tidak. `/claude-api` juga tidak tersedia ketika Anda mengetikkannya dari perangkat seluler atau web. Claude tetap dapat [memuat skill tersebut dengan sendirinya](/docs/id/skills#work-on-claude-api-projects) di sana. Berikut ini berfungsi dari perangkat seluler dan web:

379 * Perintah keluaran teks: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, dan `/reload-plugins`. `/usage-credits` mencetak URL penagihan alih-alih membuka browser. `/reload-plugins` hanya berfungsi ketika sesi berjalan di terminal interaktif; sesi tanpa satu menolaknya.379 * Perintah dengan output teks: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, dan `/reload-plugins`. `/usage-credits` mencetak URL penagihan alih-alih membuka browser. `/reload-plugins` hanya berfungsi ketika sesi berjalan di terminal interaktif; sesi tanpa terminal interaktif akan menolaknya.

380 * `/model`, `/effort`, `/fast`, `/color`, dan `/rename`: teruskan nilai sebagai argumen, misalnya `/model sonnet` atau `/effort high`. Dari mobile dan web, `/model` dan `/effort` mengambil argumen sebagai pengganti pemilih terminal atau slider.380 * `/model`, `/effort`, `/fast`, `/color`, dan `/rename`: berikan nilai sebagai argumen, misalnya `/model sonnet` atau `/effort high`. Dari perangkat seluler dan web, `/model` dan `/effort` menerima argumen sebagai pengganti pemilih atau slider terminal.

381 * `/mcp`: dari aplikasi mobile, mengembalikan ringkasan teks status server alih-alih membuka pemilih. Di web, `/mcp` sendiri membuka direktori [claude.ai connectors](/docs/id/mcp#use-mcp-servers-from-claude-ai) alih-alih mengembalikan ringkasan. [Subperintah](/docs/id/commands#all-commands) `reconnect`, `enable`, dan `disable` berfungsi dari keduanya. `/mcp reconnect` tanpa nama server mencoba ulang setiap server yang telah gagal atau memerlukan autentikasi.381 * `/mcp`: dari aplikasi seluler, mengembalikan ringkasan teks status server alih-alih membuka pemilih. Di web, `/mcp` tanpa argumen membuka direktori [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) alih-alih mengembalikan ringkasan. [Subperintah](/docs/id/commands#all-commands) `reconnect`, `enable`, dan `disable` berfungsi dari keduanya ketika sesi berjalan di terminal interaktif. `/mcp reconnect` tanpa nama server akan mencoba ulang setiap server yang gagal atau memerlukan autentikasi. Untuk mengotorisasi konektor claude.ai tanpa pemilih, lihat [Otorisasi konektor lagi dari shell Anda](#authorize-a-connector-again-from-your-shell).

382 * `/config`: dari aplikasi mobile, teruskan `key=value` untuk menetapkan pengaturan, atau jalankan tanpa argumen untuk membuat daftar kunci yang dapat Anda atur. Di web, `/config` justru membuka bagian Claude Code dari pengaturan Anda, dan mengabaikan teks setelah perintah.382 * `/config`: dari aplikasi seluler, berikan `key=value` untuk mengatur suatu pengaturan, atau jalankan tanpa argumen untuk menampilkan daftar kunci yang dapat Anda atur. Di web, `/config` justru membuka bagian Claude Code di pengaturan Anda, dan mengabaikan teks setelah perintah.

383 * Di Team dan Enterprise, `/usage-credits` dari mobile atau web tidak mengirim [permintaan usage-credits ke admin Anda](/docs/id/costs#add-usage-credits-to-your-subscription). Pengiriman memerlukan konfirmasi yang hanya muncul di CLI interaktif, jadi perintah memberi tahu Anda untuk menjalankannya di sana.383 * Pada paket Team dan Enterprise, `/usage-credits` dari perangkat seluler atau web tidak mengirimkan [permintaan kredit penggunaan kepada admin Anda](/docs/id/costs#add-usage-credits-to-your-subscription). Pengiriman memerlukan konfirmasi yang hanya muncul di CLI interaktif, sehingga perintah tersebut meminta Anda untuk menjalankannya di sana.

384 * `/autocompact`, dari v2.1.221: teruskan ukuran jendela sebagai argumen, misalnya `/autocompact 500k`. Tanpa argumen, ia mencetak ukuran jendela saat ini sebagai teks alih-alih membuka dialog yang ditampilkan perintah dalam sesi terminal.384 * `/autocompact`, mulai v2.1.221: berikan ukuran jendela sebagai argumen, misalnya `/autocompact 500k`. Tanpa argumen, perintah ini mencetak ukuran jendela saat ini sebagai teks alih-alih membuka dialog yang ditampilkan perintah tersebut dalam sesi terminal.

385 * `/advisor`, dari v2.1.260: teruskan model sebagai argumen, misalnya `/advisor opus`, atau teruskan `off` untuk mematikan advisor. Kedua bentuk berlaku untuk sesi saat ini saja dan meninggalkan default yang disimpan tidak berubah. Tanpa argumen, ia mencetak advisor saat ini sebagai teks alih-alih membuka pemilih.385 * `/advisor`, mulai v2.1.260: berikan model sebagai argumen, misalnya `/advisor opus`, atau berikan `off` untuk mematikan advisor. Kedua bentuk hanya berlaku untuk sesi saat ini dan tidak mengubah default yang tersimpan. Tanpa argumen, perintah ini mencetak advisor saat ini sebagai teks alih-alih membuka pemilih.

386 * `/output-style`, dari v2.1.269: teruskan nama gaya sebagai argumen, misalnya `/output-style concise`, atau jalankan tanpa argumen untuk membuat daftar gaya. Dari mobile dan web, Anda hanya dapat membuat daftar dan memilih [gaya bawaan](/docs/id/output-styles#built-in-output-styles). Untuk menggunakan [gaya kustom](/docs/id/output-styles#create-a-custom-output-style), pilih di sesi itu sendiri.386 * `/output-style`, mulai v2.1.269: berikan nama gaya sebagai argumen, misalnya `/output-style concise`, atau jalankan tanpa argumen untuk menampilkan daftar gaya. Dari perangkat seluler dan web, Anda hanya dapat menampilkan dan memilih [gaya bawaan](/docs/id/output-styles#built-in-output-styles). Untuk menggunakan [gaya kustom](/docs/id/output-styles#create-a-custom-output-style), pilih gaya tersebut di dalam sesi itu sendiri.

387 * `/focus`, dari v2.1.281: teruskan `on` atau `off` sebagai argumen, misalnya `/focus on`, atau jalankan tanpa argumen untuk mengalihkan [tampilan fokus](/docs/id/commands#all-commands). Kedua bentuk berlaku untuk sesi saat ini saja dan meninggalkan pilihan yang disimpan tidak berubah.387 * `/focus`, mulai v2.1.281: berikan `on` atau `off` sebagai argumen, misalnya `/focus on`, atau jalankan tanpa argumen untuk mengaktifkan/menonaktifkan [tampilan fokus](/docs/id/commands#all-commands). Kedua bentuk hanya berlaku untuk sesi saat ini dan tidak mengubah pilihan yang tersimpan.

388 

389<h2 id="authorize-a-connector-again-from-your-shell">

390 Otorisasi ulang konektor dari shell Anda

391</h2>

392 

393Ketika konektor claude.ai memerlukan autentikasi dalam sesi yang Anda kendalikan melalui Remote Control, panel `/mcp` tidak tersedia dari aplikasi seluler atau web. Dapatkan tautan otorisasi dari terminal di mesin tempat sesi berjalan, lalu buka tautan tersebut di perangkat yang Anda gunakan. Anda tidak dapat menjalankan perintah tersebut dari aplikasi seluler atau web. Baris yang Anda kirim dari sana yang diawali dengan `!` akan dikirim ke Claude sebagai pesan dan tidak dijalankan dalam [mode shell](/docs/id/interactive-mode#shell-mode-with-prefix).

394 

395<Steps>

396 <Step title="Dapatkan tautan otorisasi">

397 Di terminal pada mesin tempat sesi berjalan, misalnya melalui SSH, jalankan `claude mcp login` dengan nama konektor dalam tanda kutip. Nama konektor diawali dengan `claude.ai`, misalnya `claude.ai Slack` untuk konektor Slack. Perintah berikut mendapatkan tautan untuk konektor Slack:

398 

399 ```bash theme={null}

400 claude mcp login "claude.ai Slack" --no-browser

401 ```

402 

403 Perintah tersebut mencetak tautan claude.ai lalu keluar. Buka tautan tersebut di browser Anda dan selesaikan otorisasi di claude.ai. `--no-browser` mencegah perintah membuka browser di mesin tersebut, yang mungkin bukan perangkat yang Anda gunakan.

404 </Step>

405 

406 <Step title="Gunakan konektor dalam sesi">

407 Mulai sesi baru, atau sambungkan ulang konektor dalam sesi yang sudah berjalan:

408 

409 * **Sesi baru**: sesi yang Anda mulai setelah otorisasi akan terhubung ke konektor tanpa langkah tambahan apa pun.

410 * **Sesi yang sedang berjalan**: jalankan `/mcp reconnect` dengan nama yang sama tanpa tanda kutip, di prompt Claude Code atau dari aplikasi seluler atau web. Untuk memeriksa apakah sesi Anda menerima perintah tersebut dari sana, lihat entri `/mcp` di bagian [perintah mana yang berfungsi dari seluler dan web](#limitations).

411 

412 Perintah berikut menyambungkan ulang konektor Slack:

413 

414 ```text theme={null}

415 /mcp reconnect claude.ai Slack

416 ```

417 

418 Di terminal, Claude Code mencetak `Successfully reconnected to claude.ai Slack`. Dari aplikasi seluler atau web, balasannya adalah `Reconnected "claude.ai Slack".`

419 </Step>

420</Steps>

388 421 

389<h2 id="troubleshooting">422<h2 id="troubleshooting">

390 Pemecahan masalah423 Pemecahan masalah

Details

191 Jitter191 Jitter

192</h3>192</h3>

193 193 

194Untuk menghindari setiap sesi mengenai API pada momen dinding jam yang sama, penjadwal menambahkan offset deterministik untuk waktu berjalan:194Tugas terjadwal dapat berjalan pada waktu yang berbeda dari yang tertera pada jadwalnya. Jika tugas setiap sesi berjalan tepat sesuai jadwal, banyak di antaranya akan memanggil API pada saat yang sama, sehingga Claude Code menggeser waktu berjalan setiap tugas. Tugas berulang berjalan terlambat, dan tugas sekali jalan yang dijadwalkan tepat pada jam atau setengah jam berjalan sedikit lebih awal.

195 195 

196* Tugas berulang berjalan hingga 30 menit setelah waktu terjadwal (atau hingga setengah interval, untuk tugas yang berjalan lebih sering daripada per jam). Job per jam yang dijadwalkan untuk `:00` dapat berjalan di mana saja hingga `:30`.196<h4 id="how-late-a-recurring-task-runs">

197* Tugas sekali jalan yang dijadwalkan untuk bagian atas atau bawah jam berjalan hingga 90 detik lebih awal.197 Seberapa terlambat tugas berulang berjalan

198</h4>

198 199 

199Offset berasal dari ID tugas, jadi tugas yang sama selalu mendapatkan offset yang sama. Jika waktu yang tepat penting, pilih menit yang bukan `:00` atau `:30`, misalnya `3 9 * * *` daripada `0 9 * * *`, dan jitter sekali jalan tidak akan berlaku.200Saat Anda membuat tugas berulang, Claude Code memberinya penundaan tetap dan menambahkan penundaan tersebut ke setiap kali tugas berjalan. Penundaan dihitung dari ID tugas, sehingga tugas yang sama berjalan terlambat dengan jumlah menit yang sama setiap kali, termasuk saat sesi sedang idle dan tidak ada hal lain yang berjalan.

201 

202Tugas yang berjalan lebih sering mendapatkan penundaan yang lebih singkat, dan 30 menit adalah penundaan terlama yang dapat diperoleh suatu tugas. Berikut adalah rentang penundaan untuk beberapa jadwal umum:

203 

204| Tugas berjalan | Penundaan berada di antara |

205| :- | :- |

206| Setiap 10 menit | 0 dan 5 menit |

207| Setiap 30 menit | 0 dan 15 menit |

208| Setiap jam, atau lebih jarang seperti harian | 0 dan 30 menit |

209 

210Misalnya, `7,37 * * * *` menjadwalkan tugas pada `:07` dan `:37`, yang berjarak 30 menit, sehingga penundaannya berada di antara 0 dan 15 menit. Jika penundaan tugas ini adalah 14 menit, tugas berjalan pada `:21` dan `:51` setiap jam. Mengubah jadwal ke menit yang berbeda akan memindahkan waktu berjalan, dan penundaan tetap ditambahkan di atasnya.

211 

212<h4 id="when-a-one-shot-task-runs-early">

213 Kapan tugas sekali jalan berjalan lebih awal

214</h4>

215 

216Tugas sekali jalan yang dijadwalkan pada `:00` atau `:30` berjalan hingga 90 detik lebih awal. Claude Code tidak menggeser tugas sekali jalan yang dijadwalkan pada menit lainnya, jadi jika ketepatan waktu penting, jadwalkan di luar jam tepat dan setengah jam: `3 9 * * *` alih-alih `0 9 * * *`.

200 217 

201<h3 id="seven-day-expiry">218<h3 id="seven-day-expiry">

202 Kedaluwarsa tujuh hari219 Kedaluwarsa tujuh hari

Details

74 74 

75Anda dapat memperluas setiap lapisan dengan [menambahkan aturan Anda sendiri](#add-your-own-rules). Pemeriksaan bawaan tidak dapat dihapus secara individual, tetapi Anda dapat [menonaktifkan setiap lapisan](#disable-or-uninstall) secara independen.75Anda dapat memperluas setiap lapisan dengan [menambahkan aturan Anda sendiri](#add-your-own-rules). Pemeriksaan bawaan tidak dapat dihapus secara individual, tetapi Anda dapat [menonaktifkan setiap lapisan](#disable-or-uninstall) secara independen.

76 76 

77<h3 id="on-each-file-edit">77<span id="on-each-file-edit" />

78 Pada setiap edit file78 

79<h3 id="checks-on-each-file-edit">

80 Pemeriksaan pada setiap edit file

79</h3>81</h3>

80 82 

81Ketika Claude menulis ke file, plugin memindai konten baru untuk pola berisiko yang diketahui. Ini adalah pencocokan pola tanpa panggilan model, jadi tidak menambah biaya penggunaan.83Ketika Claude menulis ke file, plugin memindai konten baru untuk pola berisiko yang diketahui. Ini adalah pencocokan pola tanpa panggilan model, jadi tidak menambah biaya penggunaan.


91 93 

92Anda dapat [menambahkan pola Anda sendiri](#add-custom-per-edit-patterns) ke lapisan ini dengan file `security-patterns.yaml`.94Anda dapat [menambahkan pola Anda sendiri](#add-custom-per-edit-patterns) ke lapisan ini dengan file `security-patterns.yaml`.

93 95 

94<h3 id="at-the-end-of-each-turn">96<span id="at-the-end-of-each-turn" />

95 Di akhir setiap giliran97 

98<h3 id="checks-at-the-end-of-each-turn">

99 Pemeriksaan di akhir setiap giliran

96</h3>100</h3>

97 101 

98Giliran adalah satu putaran Claude merespons: Anda mengirim pesan, Claude bekerja dan membalas, dan giliran berakhir. Setelah setiap giliran, plugin menghitung git diff dari semua yang berubah di pohon kerja selama giliran, termasuk perubahan dari alat edit Claude, perintah Bash, dan subagent, dan mengirimnya ke review Claude terpisah yang berfokus pada keamanan. Review berjalan di latar belakang, jadi balasan Claude tidak tertunda. Jika review menemukan masalah, Claude diminta kembali dengan temuan dan mengatasinya sebagai tindak lanjut.102Giliran adalah satu putaran Claude merespons: Anda mengirim pesan, Claude bekerja dan membalas, dan giliran berakhir. Setelah setiap giliran, plugin menghitung git diff dari semua yang berubah di pohon kerja selama giliran, termasuk perubahan dari alat edit Claude, perintah Bash, dan subagent, dan mengirimnya ke review Claude terpisah yang berfokus pada keamanan. Review berjalan di latar belakang, jadi balasan Claude tidak tertunda. Jika review menemukan masalah, Claude diminta kembali dengan temuan dan mengatasinya sebagai tindak lanjut.


107 111 

108Anda melihat temuan dan resolusi Claude secara langsung dalam sesi Anda. Review mencakup hingga 30 file yang berubah per giliran dan menyala paling banyak tiga kali berturut-turut sebelum menghasilkan kembali kepada Anda.112Anda melihat temuan dan resolusi Claude secara langsung dalam sesi Anda. Review mencakup hingga 30 file yang berubah per giliran dan menyala paling banyak tiga kali berturut-turut sebelum menghasilkan kembali kepada Anda.

109 113 

110<h3 id="on-each-commit-or-push-claude-makes">114<span id="on-each-commit-or-push-claude-makes" />

111 Pada setiap commit atau push yang dilakukan Claude115 

116<h3 id="checks-on-each-commit-or-push-claude-makes">

117 Pemeriksaan pada setiap commit atau push yang dilakukan Claude

112</h3>118</h3>

113 119 

114Ketika Claude menjalankan `git commit` atau `git push` melalui alat Bash-nya, plugin menjalankan review agentic yang lebih dalam dari perubahan di latar belakang. Review ini membaca kode sekitarnya, termasuk pemanggil, sanitizer, dan file terkait, untuk memutuskan apakah temuan itu nyata sebelum melaporkannya. Konteks tambahan membuat false positive tetap rendah pada pola yang terlihat berbahaya secara terisolasi tetapi aman di codebase Anda.120Ketika Claude menjalankan `git commit` atau `git push` melalui alat Bash-nya, plugin menjalankan review agentic yang lebih dalam dari perubahan di latar belakang. Review ini membaca kode sekitarnya, termasuk pemanggil, sanitizer, dan file terkait, untuk memutuskan apakah temuan itu nyata sebelum melaporkannya. Konteks tambahan membuat false positive tetap rendah pada pola yang terlihat berbahaya secara terisolasi tetapi aman di codebase Anda.

Details

403 403 

404* [File MCP terkelola](/docs/id/managed-mcp) cakupan enterprise pada jalur sistem standarnya: `/etc/claude-code/managed-mcp.json` pada host runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` pada host macOS. Gunakan file ini untuk armada yang dikunci ketat di mana hanya server yang didaftarkan administrator yang boleh dimuat. Lihat [kontrol eksklusif dengan managed-mcp.json](/docs/id/managed-mcp#exclusive-control-with-managed-mcp-json) untuk aturan prioritas. Ketika file ini ada di host runner, Claude Code melewati server MCP yang dikirimkan control plane Anthropic ke sesi, termasuk konektor claude.ai, dan menyebutkan namanya dalam peringatan di stderr proses anak sesi, yang dicatat runner pada level log `debug`. Sebelum v2.1.229, sesi tersebut keluar saat startup dengan `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.404* [File MCP terkelola](/docs/id/managed-mcp) cakupan enterprise pada jalur sistem standarnya: `/etc/claude-code/managed-mcp.json` pada host runner Linux, `/Library/Application Support/ClaudeCode/managed-mcp.json` pada host macOS. Gunakan file ini untuk armada yang dikunci ketat di mana hanya server yang didaftarkan administrator yang boleh dimuat. Lihat [kontrol eksklusif dengan managed-mcp.json](/docs/id/managed-mcp#exclusive-control-with-managed-mcp-json) untuk aturan prioritas. Ketika file ini ada di host runner, Claude Code melewati server MCP yang dikirimkan control plane Anthropic ke sesi, termasuk konektor claude.ai, dan menyebutkan namanya dalam peringatan di stderr proses anak sesi, yang dicatat runner pada level log `debug`. Sebelum v2.1.229, sesi tersebut keluar saat startup dengan `You cannot dynamically configure MCP servers when an enterprise MCP config is present`.

405* Kunci [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) dalam [pengaturan terkelola](/docs/id/managed-settings) pada host runner: menyediakan server HTTP dan SSE tanpa mengambil kontrol eksklusif, sehingga server dari sumber lain tetap dimuat. Memerlukan Claude Code v2.1.259 atau yang lebih baru.405* Kunci [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) dalam [pengaturan terkelola](/docs/id/managed-settings) pada host runner: menyediakan server HTTP dan SSE tanpa mengambil kontrol eksklusif, sehingga server dari sumber lain tetap dimuat. Memerlukan Claude Code v2.1.259 atau yang lebih baru.

406* `<repo>/.mcp.json`: cakupan project. Lakukan commit file ini ke repositori; server-servernya disetujui secara otomatis di sesi cloud.406* `<repo>/.mcp.json`: cakupan project. Lakukan commit file ini ke repositori; server-servernya disetujui secara otomatis di sesi cloud. Dalam sesi dengan beberapa repositori, [paling banyak file dari satu repositori yang dimuat](#repository-settings-in-sessions-with-several-repositories).

407 407 

408Ketika pengiriman konektor diaktifkan untuk organisasi Anda, control plane Anthropic mengirimkan konektor yang telah Anda konfigurasikan di claude.ai ke sesi yang dibuat secara interaktif melalui konfigurasi MCP yang disediakan server, yang dirutekan melalui `api.anthropic.com`. Sesi yang dibuat secara terprogram, seperti [dispatch CLI](/docs/id/self-hosted-environments-testing#run-the-test-loop), tidak menerima pengiriman konektor; berikan server MCP kepada sesi tersebut melalui sumber lain yang tercantum di bagian ini. Token OAuth proses anak tidak membawa scope untuk mengambil konektor secara langsung, sehingga proses anak tidak mencoba pengambilan tersebut sendiri; pengiriman digerakkan oleh server.408Ketika pengiriman konektor diaktifkan untuk organisasi Anda, control plane Anthropic mengirimkan konektor yang telah Anda konfigurasikan di claude.ai ke sesi yang dibuat secara interaktif melalui konfigurasi MCP yang disediakan server, yang dirutekan melalui `api.anthropic.com`. Sesi yang dibuat secara terprogram, seperti [dispatch CLI](/docs/id/self-hosted-environments-testing#run-the-test-loop), tidak menerima pengiriman konektor; berikan server MCP kepada sesi tersebut melalui sumber lain yang tercantum di bagian ini. Token OAuth proses anak tidak membawa scope untuk mengambil konektor secara langsung, sehingga proses anak tidak mencoba pengambilan tersebut sendiri; pengiriman digerakkan oleh server.

409 409 


545exit 0545exit 0

546```546```

547 547 

548Hook mendorong Claude untuk melakukan komit dan mendorong sebelum sesi berakhir, dan tetap diam ketika direktori bukan repositori git atau tidak memiliki remote.548Hook meminta Claude untuk melakukan commit dan push sebelum sesi berakhir, dan tetap diam ketika direktori bukan repositori git atau tidak memiliki remote. Untuk sesi dengan beberapa repositori, lihat [apa yang ditunjuk oleh `$CLAUDE_PROJECT_DIR`](#repository-settings-in-sessions-with-several-repositories).

549 549 

550<h2 id="permissions-and-tool-approval">550<h2 id="permissions-and-tool-approval">

551 Izin dan persetujuan alat551 Izin dan persetujuan alat


574 574 

575Atur `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` untuk menabur dari jalur berbeda, atau arahkan ke direktori kosong untuk menonaktifkan penanaman.575Atur `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` untuk menabur dari jalur berbeda, atau arahkan ke direktori kosong untuk menonaktifkan penanaman.

576 576 

577`.claude/settings.json` yang dikomit repositori berlapis di atas sebagai pengaturan proyek. Sesi juga membaca [`managed-settings.json`](/docs/id/settings#where-settings-live) dari jalur sistem standar di gambar runner Anda. Apakah kuncinya berlaku bersama [pengaturan yang dikelola server](/docs/id/server-managed-settings) mengikuti [bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources): secara default, ketika organisasi Anda mengirimkan kunci yang dikelola server apa pun, sesi mengabaikan file gambar runner terlepas dari [kunci yang dibaca Claude Code dari setiap sumber admin](/docs/id/managed-settings#keys-read-from-every-admin-source), seperti blok `env`, kunci sandbox, jalur biner sandbox, dan `forceRemoteSettingsRefresh`. Lihat [prioritas pengaturan](/docs/id/settings#settings-precedence).577`.claude/settings.json` yang di-commit ke repositori diterapkan di atasnya sebagai pengaturan proyek. Dalam sesi dengan beberapa repositori, [paling banyak hanya file dari satu repositori yang berlaku](#repository-settings-in-sessions-with-several-repositories). Sesi juga membaca [`managed-settings.json`](/docs/id/settings#where-settings-live) dari jalur sistem standar di image runner Anda. Apakah kuncinya berlaku bersama [pengaturan terkelola server](/docs/id/server-managed-settings) mengikuti [bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources): secara default, ketika organisasi Anda mengirimkan kunci terkelola server apa pun, sesi mengabaikan file image runner kecuali [kunci yang dibaca Claude Code dari setiap sumber admin](/docs/id/managed-settings#keys-read-from-every-admin-source), seperti blok `env`, kunci sandbox, jalur biner sandbox, dan `forceRemoteSettingsRefresh`. Lihat [prioritas pengaturan](/docs/id/settings#settings-precedence).

578 578 

579Ketika bidang kontrol Anthropic memasok sesi dengan [Claude Code hooks](/docs/id/hooks), runner memasangnya bersama, bukan di atas, konfigurasi Anda sendiri. Memerlukan Claude Code v2.1.229 atau lebih baru.579Ketika bidang kontrol Anthropic memasok sesi dengan [Claude Code hooks](/docs/id/hooks), runner memasangnya bersama, bukan di atas, konfigurasi Anda sendiri. Memerlukan Claude Code v2.1.229 atau lebih baru.

580 580 


586 586 

587Snapshot runner atas `~/.claude/` host tidak menyertakan direktori `projects/`. Lokasi penyimpanan default auto memory berada di bawah direktori tersebut. Jika Anda meletakkan file memori di sana, runner tidak menanamkannya ke dalam sesi, dan file tersebut tidak mengaktifkan auto memory.587Snapshot runner atas `~/.claude/` host tidak menyertakan direktori `projects/`. Lokasi penyimpanan default auto memory berada di bawah direktori tersebut. Jika Anda meletakkan file memori di sana, runner tidak menanamkannya ke dalam sesi, dan file tersebut tidak mengaktifkan auto memory.

588 588 

589<h3 id="repository-settings-in-sessions-with-several-repositories">

590 Pengaturan repositori dalam sesi dengan beberapa repositori

591</h3>

592 

593Dalam sesi dengan beberapa repositori, Claude Code membaca pengaturan proyek dari direktori tempat sesi dimulai, sehingga paling banyak hanya `.claude/settings.json` dari satu repositori yang berlaku sebagai pengaturan proyek. Hook yang didefinisikan dalam file repositori lain tidak berjalan, aturan deny di dalamnya tidak berlaku, dan `env`-nya tidak diatur.

594 

595* **`--capacity 1`, default, dengan checkout bawaan**: sesi dimulai di repositori pertama dalam daftar repositorinya. `.claude/settings.json` repositori tersebut berlaku sebagai pengaturan proyek dan `.mcp.json`-nya dimuat, sedangkan milik repositori lain tidak.

596* **`--capacity` lebih dari satu, atau [hook `checkout`](#checkout)**: sesi dimulai di direktori per sesi yang berisi hasil checkout. Tidak ada `.claude/settings.json` repositori mana pun yang berlaku sebagai pengaturan proyek, tidak ada `.mcp.json` repositori mana pun yang dimuat, dan [`$CLAUDE_PROJECT_DIR`](/docs/id/hooks#reference-scripts-by-path) dalam perintah hook adalah direktori tersebut, bukan hasil checkout.

597 

598`CLAUDE.md` dan skills setiap repositori dimuat di mana pun sesi dimulai. Runner meneruskan setiap repositori ke Claude Code sebagai [direktori tambahan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration), sehingga Claude Code juga membaca kunci `enabledPlugins` dan `extraKnownMarketplaces` dari `.claude/settings.json` setiap repositori.

599 

600Untuk menjalankan hook atau menerapkan aturan izin di setiap sesi, letakkan di `~/.claude/settings.json` pada host runner. Runner [mengisikan file host ke setiap sesi](#how-each-session’s-config-is-assembled), di mana pun sesi dimulai. Tulis jalur dalam aturan `Read` atau `Edit` sebagai [pola](/docs/id/permissions#read-and-edit) absolut `//` atau relatif terhadap home `~/`, karena pola lain berjangkar pada sumber pengaturan atau direktori saat ini.

601 

589<h3 id="repository-committed-permission-rules">602<h3 id="repository-committed-permission-rules">

590 Aturan izin yang dikomit repositori603 Aturan izin yang dikomit repositori

591</h3>604</h3>

Details

87 87 

88 Karena hooks menjalankan perintah shell, pengguna dalam sesi interaktif melihat [dialog persetujuan keamanan](#security-approval-dialogs) sebelum Claude Code menerapkannya.88 Karena hooks menjalankan perintah shell, pengguna dalam sesi interaktif melihat [dialog persetujuan keamanan](#security-approval-dialogs) sebelum Claude Code menerapkannya.

89 89 

90 Untuk mengonfigurasi pengklasifikasi [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) sehingga mengetahui repositori, bucket, dan domain mana yang dipercaya organisasi Anda, berikan blok `autoMode` dengan cara yang sama; lihat [Konfigurasi mode otomatis](/docs/id/auto-mode-config) untuk cara entri `autoMode` mempengaruhi apa yang diblokir pengklasifikasi dan peringatan penting tentang bidang `environment`, `allow`, `soft_deny`, dan `hard_deny`.90 Untuk mengonfigurasi pengklasifikasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) sehingga mengetahui repositori, bucket, dan domain mana yang dipercaya organisasi Anda, berikan blok `autoMode` dengan cara yang sama; lihat [Konfigurasi auto mode](/docs/id/auto-mode-config) untuk cara entri `autoMode` mempengaruhi apa yang diblokir pengklasifikasi dan peringatan penting tentang bidang `environment`, `allow`, `soft_deny`, dan `hard_deny`.

91 </Step>91 </Step>

92 92 

93 <Step title="Simpan dan terapkan">93 <Step title="Simpan dan terapkan">

94 Simpan perubahan Anda. Klien Claude Code menerima pengaturan yang diperbarui pada startup berikutnya atau siklus polling per jam.94 Simpan perubahan Anda. Klien Claude Code menerima pengaturan yang diperbarui pada startup berikutnya atau siklus polling per jam.

95 

96 Editor memeriksa JSON Anda terhadap skema JSON yang dipublikasikan untuk pengaturan Claude Code. Jika editor menemukan masalah dalam JSON yang dapat di-parse, editor menampilkan peringatan dan mengubah label tombol simpan. Labelnya adalah **Update with errors** ketika pengaturan sudah disimpan, dan **Add with errors** ketika belum ada pengaturan yang disimpan. Tombol tersebut tetap menyimpan, karena peringatan skema tidak memblokir penyimpanan.

97 

98 Skema [dapat tertinggal dari rilis terbaru](/docs/id/settings#edit-a-settings-file), sehingga editor dapat menandai kunci atau nilai yang didokumentasikan dalam [referensi pengaturan](/docs/id/settings-reference#all-settings). Claude Code menerima kunci dan nilai yang Anda simpan dan menjalankan [validasinya sendiri](#invalid-entries-in-delivered-settings) saat memuatnya.

95 </Step>99 </Step>

96</Steps>100</Steps>

97 101 

settings.md +11 −11

Details

405| Cakupan | File | Siapa yang terpengaruh | Gunakan untuk |405| Cakupan | File | Siapa yang terpengaruh | Gunakan untuk |

406| :- | :- | :- | :- |406| :- | :- | :- | :- |

407| Pengguna | `~/.claude/settings.json` | Anda, di setiap proyek di mesin ini | Preferensi pribadi: tema, mode editor, model default, aturan izin Anda sendiri |407| Pengguna | `~/.claude/settings.json` | Anda, di setiap proyek di mesin ini | Preferensi pribadi: tema, mode editor, model default, aturan izin Anda sendiri |

408| Proyek bersama | `.claude/settings.json` | Semua orang yang bekerja di folder yang memuatnya. Di repositori git, commit itu sehingga rekan kerja mendapatkannya | Izin tim, hooks, plugins, dan variabel lingkungan yang dibutuhkan proyek |408| Proyek bersama | `.claude/settings.json` | Semua orang yang bekerja di folder yang memuatnya. Di repositori git, commit itu sehingga rekan kerja mendapatkannya | Izin tim, hook, plugin, dan environment variable yang dibutuhkan proyek |

409| Proyek lokal | `.claude/settings.local.json` | Anda, hanya di proyek ini. Claude Code menyimpannya di luar git saat membuat file; jika Anda membuatnya dengan tangan, tambahkan ke `.gitignore` sendiri | Penggantian pribadi untuk satu proyek, dan pengujian sebelum Anda berbagi |409| Proyek lokal | `.claude/settings.local.json` | Anda, hanya di proyek ini. Claude Code menyimpannya di luar git saat membuat file; jika Anda membuatnya dengan tangan, tambahkan ke `.gitignore` sendiri | Override pribadi untuk satu proyek, dan pengujian sebelum Anda berbagi |

410| Terkelola | `managed-settings.json` dan [sumber terkelola](/docs/id/managed-settings#delivery-mechanisms) lainnya | Semua orang yang menjadi tujuan penerapannya oleh organisasi Anda; [Prioritas pengaturan](#settings-precedence) menjelaskan apa yang dapat menimpanya | Kebijakan keamanan dan persyaratan kepatuhan |410| Terkelola | `managed-settings.json` dan [sumber terkelola](/docs/id/managed-settings#delivery-mechanisms) lainnya | Semua orang yang menjadi tujuan penerapannya oleh organisasi Anda; [Prioritas pengaturan](#settings-precedence) menjelaskan apa yang dapat menimpanya | Kebijakan keamanan dan persyaratan kepatuhan |

411 411 

412Di kolom File, `~/.claude` adalah folder `.claude` di direktori home Anda, dan `.claude` kosong adalah folder `.claude` di dalam proyek Anda.412Di kolom File, `~/.claude` adalah folder `.claude` di direktori home Anda, dan `.claude` kosong adalah folder `.claude` di dalam proyek Anda.


428* **`~/.claude/settings.json`**: setiap proyek di mesin Anda, dan tidak ada di mesin rekan kerja atau di sesi cloud428* **`~/.claude/settings.json`**: setiap proyek di mesin Anda, dan tidak ada di mesin rekan kerja atau di sesi cloud

429* **`acme-app/.claude/settings.json`**: `acme-app/` Anda. Ini menjangkau klon rekan kerja dan sesi cloud hanya jika Anda commit file ke kontrol versi; sampai Anda melakukannya, itu adalah file di disk Anda seperti yang lain dan tidak ada orang lain yang memilikinya429* **`acme-app/.claude/settings.json`**: `acme-app/` Anda. Ini menjangkau klon rekan kerja dan sesi cloud hanya jika Anda commit file ke kontrol versi; sampai Anda melakukannya, itu adalah file di disk Anda seperti yang lain dan tidak ada orang lain yang memilikinya

430* **`acme-app/.claude/settings.local.json`**: hanya `acme-app/` Anda. Claude Code menambahkannya ke pengecualian git global Anda pertama kali menulis file, sehingga tetap keluar dari commit Anda; jika Anda membuat file dengan tangan, [tambahkan ke `.gitignore` sendiri](#keep-personal-settings-out-of-a-repository)430* **`acme-app/.claude/settings.local.json`**: hanya `acme-app/` Anda. Claude Code menambahkannya ke pengecualian git global Anda pertama kali menulis file, sehingga tetap keluar dari commit Anda; jika Anda membuat file dengan tangan, [tambahkan ke `.gitignore` sendiri](#keep-personal-settings-out-of-a-repository)

431* **Pengaturan terkelola**, baik file `managed-settings.json`, kebijakan MDM, atau [pengaturan yang dikelola server](/docs/id/server-managed-settings) dari konsol claude.ai: setiap proyek di setiap mesin organisasi Anda menerapkannya, atau yang Anda masuk dengan akun organisasi Anda. Hanya pengaturan yang dikelola server yang menjangkau sesi cloud431* **Pengaturan terkelola**, baik file `managed-settings.json`, kebijakan MDM, atau [pengaturan terkelola server](/docs/id/server-managed-settings) dari konsol claude.ai: setiap proyek di setiap mesin organisasi Anda menerapkannya, atau yang Anda masuk dengan akun organisasi Anda. Hanya pengaturan terkelola server yang menjangkau sesi cloud

432 432 

433<span id="which-files-you-have" />433<span id="which-files-you-have" />

434 434 


440 440 

441* **Terkelola**: organisasi Anda menerapkannya. Anda tidak membuat atau mengeditnya.441* **Terkelola**: organisasi Anda menerapkannya. Anda tidak membuat atau mengeditnya.

442* **Proyek bersama**: proyek yang sudah menggunakan Claude Code mungkin memiliki satu yang di-commit. Jika tidak, buatnya di `.claude/settings.json` di folder proyek.442* **Proyek bersama**: proyek yang sudah menggunakan Claude Code mungkin memiliki satu yang di-commit. Jika tidak, buatnya di `.claude/settings.json` di folder proyek.

443* **Pengguna** dan **Proyek lokal**: buatnya sendiri, atau biarkan Claude Code membuatnya. Ini menulis `~/.claude/settings.json` pertama kali Anda mengubah opsi di menu `/config` yang disimpannya dalam pengaturan pengguna, seperti tema, dan `.claude/settings.local.json` pertama kali Anda memberikan persetujuan berdiri di prompt izin, seperti "Ya, dan jangan tanya lagi" untuk perintah Bash. Beberapa opsi `/config`, termasuk **Tampilkan tips**, disimpan ke `.claude/settings.local.json` sebagai gantinya dari file pengguna.443* **Pengguna** dan **Proyek lokal**: buatnya sendiri, atau biarkan Claude Code membuatnya. Ini menulis `~/.claude/settings.json` pertama kali Anda mengubah opsi di menu `/config` yang disimpannya dalam pengaturan pengguna, seperti tema, dan `.claude/settings.local.json` pertama kali Anda memberikan persetujuan berdiri di dialog izin, seperti "Ya, dan jangan tanya lagi" untuk perintah Bash. Beberapa opsi `/config`, termasuk **Tampilkan tips**, disimpan ke `.claude/settings.local.json` sebagai gantinya dari file pengguna.

444 444 

445<Info>445<Info>

446 Di Windows, `~/.claude` berarti `%USERPROFILE%\.claude`. Untuk menyimpan file direktori home di tempat lain, atur [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars); Claude Code kemudian menyimpan pengaturan, riwayat sesi, dan plugins Anda di sana sebagai gantinya.446 Di Windows, `~/.claude` berarti `%USERPROFILE%\.claude`. Untuk menyimpan file direktori home di tempat lain, atur [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars); Claude Code kemudian menyimpan pengaturan, riwayat sesi, dan plugin Anda di sana sebagai gantinya.

447</Info>447</Info>

448 448 

449Claude Code juga menyimpan file kelima, [`~/.claude.json`](/docs/id/claude-directory#ce-claude-json), yang ditulis untuk dirinya sendiri; Anda tidak perlu mengeditnya. Ini menyimpan sesi masuk Anda, konfigurasi [server MCP](/docs/id/mcp), status per-proyek seperti keputusan kepercayaan, dan [kunci konfigurasi global](/docs/id/settings-reference#global-config-settings) yang `/config` tulis untuk Anda.449Claude Code juga menyimpan file kelima, [`~/.claude.json`](/docs/id/claude-directory#ce-claude-json), yang ditulis untuk dirinya sendiri; Anda tidak perlu mengeditnya. Ini menyimpan sesi masuk Anda, konfigurasi [server MCP](/docs/id/mcp), status per-proyek seperti keputusan kepercayaan, dan [kunci konfigurasi global](/docs/id/settings-reference#global-config-settings) yang `/config` tulis untuk Anda.


452 Bagikan pengaturan dengan tim Anda452 Bagikan pengaturan dengan tim Anda

453</h3>453</h3>

454 454 

455Commit `.claude/settings.json` sehingga semua orang yang mengkloning repositori mendapatkan izin, hooks, dan plugins yang sama. Setiap rekan kerja masih dapat menggantikannya untuk diri mereka sendiri di `.claude/settings.local.json` mereka sendiri, sehingga pengecualian pribadi tidak perlu commit. Untuk file tim lengkap, lihat [pengaturan bersama tim](/docs/id/settings-example#a-teams-shared-settings).455Commit `.claude/settings.json` sehingga semua orang yang mengkloning repositori mendapatkan izin, hook, dan plugin yang sama. Setiap rekan kerja masih dapat menggantikannya untuk diri mereka sendiri di `.claude/settings.local.json` mereka sendiri, sehingga pengecualian pribadi tidak perlu commit. Untuk file tim lengkap, lihat [pengaturan bersama tim](/docs/id/settings-example#a-teams-shared-settings).

456 456 

457Beberapa dari apa yang Anda commit menunggu sampai setiap rekan kerja [mempercayai folder](/docs/id/permissions#project-allow-rules-and-workspace-trust), dan beberapa kunci tidak pernah berlaku dari file repositori; [Troubleshoot a setting that doesn't apply](#common-cases) mencakup keduanya.457Beberapa dari apa yang Anda commit menunggu sampai setiap rekan kerja [mempercayai folder](/docs/id/permissions#project-allow-rules-and-workspace-trust), dan beberapa kunci tidak pernah berlaku dari file repositori; [Troubleshoot a setting that doesn't apply](#common-cases) mencakup keduanya.

458 458 


474 474 

475* **Claude Code juga menulisnya.** Ketika Claude meminta izin untuk menjalankan perintah Bash dan Anda memilih "Ya, dan jangan tanya lagi", Claude Code menyimpan [persetujuan izin](/docs/id/permissions#permission-system) itu di sini sebagai aturan `allow`.475* **Claude Code juga menulisnya.** Ketika Claude meminta izin untuk menjalankan perintah Bash dan Anda memilih "Ya, dan jangan tanya lagi", Claude Code menyimpan [persetujuan izin](/docs/id/permissions#permission-system) itu di sini sebagai aturan `allow`.

476* **Anda tidak perlu gitignore sendiri, kecuali Anda membuatnya dengan tangan.** Pertama kali Claude Code menulis file di repositori git yang tidak sudah mengabaikannya, itu menambahkan `**/.claude/settings.local.json` ke file pengecualian git global Anda, sehingga file tetap keluar dari commit Anda di setiap repositori. File itu adalah `core.excludesFile` ketika konfigurasi git global Anda menetapkannya ke jalur absolut atau jalur dengan awalan `~`; jika tidak, itu adalah `$XDG_CONFIG_HOME/git/ignore`, atau `~/.config/git/ignore` ketika `XDG_CONFIG_HOME` tidak diatur. Jika Anda membuat file dengan tangan dan Claude Code belum menulis ke dalamnya, tambahkan ke `.gitignore` sendiri.476* **Anda tidak perlu gitignore sendiri, kecuali Anda membuatnya dengan tangan.** Pertama kali Claude Code menulis file di repositori git yang tidak sudah mengabaikannya, itu menambahkan `**/.claude/settings.local.json` ke file pengecualian git global Anda, sehingga file tetap keluar dari commit Anda di setiap repositori. File itu adalah `core.excludesFile` ketika konfigurasi git global Anda menetapkannya ke jalur absolut atau jalur dengan awalan `~`; jika tidak, itu adalah `$XDG_CONFIG_HOME/git/ignore`, atau `~/.config/git/ignore` ketika `XDG_CONFIG_HOME` tidak diatur. Jika Anda membuat file dengan tangan dan Claude Code belum menulis ke dalamnya, tambahkan ke `.gitignore` sendiri.

477* **Aturan izinnya tidak menunggu kepercayaan sementara file tetap tidak dilacak.** Karena file adalah milik Anda dan bukan repositori, Claude Code menerapkan aturan `allow` tanpa langkah [kepercayaan ruang kerja](/docs/id/permissions#project-allow-rules-and-workspace-trust) yang diperlukan untuk file yang di-commit. Jika file dilacak oleh git, langkah kepercayaan juga berlaku untuk itu; lihat [Ketika file pengaturan lokal Anda memerlukan kepercayaan](/docs/id/permissions#when-your-local-settings-file-needs-trust).477* **Aturan izinnya tidak menunggu kepercayaan sementara file tetap tidak dilacak.** Karena file adalah milik Anda dan bukan repositori, Claude Code menerapkan aturan `allow` tanpa langkah [kepercayaan workspace](/docs/id/permissions#project-allow-rules-and-workspace-trust) yang diperlukan untuk file yang di-commit. Jika file dilacak oleh git, langkah kepercayaan juga berlaku untuk itu; lihat [Ketika file pengaturan lokal Anda memerlukan kepercayaan](/docs/id/permissions#when-your-local-settings-file-needs-trust).

478 478 

479<span id="where-claude-code-looks-for-each-file" />479<span id="where-claude-code-looks-for-each-file" />

480 480 


515 515 

516Pengaturan terkelola menjangkau Anda melalui [mekanisme pengiriman](/docs/id/managed-settings#delivery-mechanisms) di halaman pengaturan terkelola, paling umum:516Pengaturan terkelola menjangkau Anda melalui [mekanisme pengiriman](/docs/id/managed-settings#delivery-mechanisms) di halaman pengaturan terkelola, paling umum:

517 517 

518* [Pengaturan yang dikelola server](/docs/id/server-managed-settings), yang Claude Code ambil dari konsol admin claude.ai atau [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang di-host sendiri518* [Pengaturan terkelola server](/docs/id/server-managed-settings), yang Claude Code ambil dari konsol admin claude.ai atau [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang di-host sendiri

519* Kebijakan MDM atau tingkat OS, dan file `managed-settings.json` di direktori sistem519* Kebijakan MDM atau tingkat OS, dan file `managed-settings.json` di direktori sistem

520* Host penyematan seperti Claude Desktop, melalui opsi SDK `managedSettings`; lihat [Kontrol kebijakan dari host penyematan](/docs/id/managed-settings#parent-settings-from-embedding-hosts)520* Host penyematan seperti Claude Desktop, melalui opsi SDK `managedSettings`; lihat [Kontrol kebijakan dari host penyematan](/docs/id/managed-settings#parent-settings-from-embedding-hosts)

521 521 

522Di sesi [Cowork](https://claude.com/docs/cowork/overview) yang berjalan di mesin Anda di aplikasi Claude Desktop, Claude Code tidak mengambil pengaturan yang dikelola server dari konsol admin claude.ai, dan itu membaca kebijakan yang diterapkan ke perangkat Anda kecuali konfigurasi Claude Desktop organisasi Anda menetapkan `requireCoworkFullVmSandbox`. [Di mana dan kapan kebijakan berlaku](/docs/id/managed-settings#where-and-when-a-policy-applies) mencakup Cowork dan sesi cloud.522Di sesi [Cowork](https://claude.com/docs/cowork/overview) yang berjalan di mesin Anda di aplikasi Claude Desktop, Claude Code tidak mengambil pengaturan terkelola server dari konsol admin claude.ai, dan itu membaca kebijakan yang diterapkan ke perangkat Anda kecuali konfigurasi Claude Desktop organisasi Anda menetapkan `requireCoworkFullVmSandbox`. [Di mana dan kapan kebijakan berlaku](/docs/id/managed-settings#where-and-when-a-policy-applies) mencakup Cowork dan sesi cloud.

523 523 

524Jika Anda adalah administrator, [Siapkan Claude Code untuk organisasi Anda](/docs/id/admin-setup) memandu memilih apa yang akan diterapkan, dan [Terapkan pengaturan terkelola](/docs/id/managed-settings) mencakup pengiriman dan cara mengonfirmasi kebijakan berlaku.524Jika Anda adalah administrator, [Siapkan Claude Code untuk organisasi Anda](/docs/id/admin-setup) memandu memilih apa yang akan diterapkan, dan [Terapkan pengaturan terkelola](/docs/id/managed-settings) mencakup pengiriman dan cara mengonfirmasi kebijakan berlaku. Untuk peringatan yang dapat ditampilkan oleh editor pengaturan terkelola di konsol admin claude.ai, lihat [Konfigurasi pengaturan terkelola server](/docs/id/server-managed-settings#configure-server-managed-settings).

525 525 

526<h2 id="change-a-setting">526<h2 id="change-a-setting">

527 Ubah pengaturan527 Ubah pengaturan


809 809 

810Sesi [cloud](/docs/id/claude-code-on-the-web) berjalan di [lingkungan cloud](/docs/id/cloud-environments) pada klon segar repositori Anda, bukan di mesin Anda. Itu mengubah pengaturan mana yang mencapainya:810Sesi [cloud](/docs/id/claude-code-on-the-web) berjalan di [lingkungan cloud](/docs/id/cloud-environments) pada klon segar repositori Anda, bukan di mesin Anda. Itu mengubah pengaturan mana yang mencapainya:

811 811 

812* **Pengaturan proyek bersama** (`.claude/settings.json`): dibaca dalam sesi dengan satu repositori, karena file adalah bagian dari klon dan sesi dimulai di dalamnya. Komit pengaturan di sana untuk menerapkannya dalam sesi tersebut. Sesi dengan beberapa repositori dimulai di atas klon dan membaca hanya kunci `enabledPlugins` dan `extraKnownMarketplaces` dari `.claude/settings.json` setiap repositori, bukan aturan izin, hooks, `env`, atau kunci lainnya. Marketplace dan plugin yang dideklarasikan oleh dua kunci tersebut masih [tidak dimuat dalam sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup).812* **Pengaturan proyek bersama** (`.claude/settings.json`): dibaca dalam sesi dengan satu repositori, karena file adalah bagian dari klon dan sesi dimulai di dalamnya. Lakukan commit pengaturan di sana untuk menerapkannya dalam sesi tersebut. Dalam lingkungan yang di-host Anthropic, sesi dengan beberapa repositori dimulai di atas klon dan membaca hanya kunci `enabledPlugins` dan `extraKnownMarketplaces` dari `.claude/settings.json` setiap repositori, bukan aturan izin, hook, `env`, atau kunci lainnya. Marketplace dan plugin yang dideklarasikan oleh dua kunci tersebut masih [tidak dimuat dalam sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup). Untuk lingkungan yang di-host sendiri, lihat [pengaturan repositori mana yang berlaku](/docs/id/self-hosted-environments-configuration#repository-settings-in-sessions-with-several-repositories).

813* **Pengaturan pengguna dan proyek lokal** (`~/.claude/settings.json` dan `.claude/settings.local.json`): tidak dibaca. Keduanya tetap di mesin Anda, dan file lokal tidak ada dalam klon.813* **Pengaturan pengguna dan proyek lokal** (`~/.claude/settings.json` dan `.claude/settings.local.json`): tidak dibaca. Keduanya tetap di mesin Anda, dan file lokal tidak ada dalam klon.

814* **Pengaturan yang dikelola**: file `managed-settings.json` atau profil MDM di perangkat Anda tidak mencapai sesi cloud. [Pengaturan yang dikelola server](/docs/id/server-managed-settings) organisasi Anda melakukannya; [cakupan permukaan](/docs/id/model-config#surface-coverage) mencantumkan sesi cloud mana yang menerimanya. [Lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) juga membaca file pengaturan yang dikelola dalam gambar runner-nya. [Bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku.814* **Pengaturan yang dikelola**: file `managed-settings.json` atau profil MDM di perangkat Anda tidak mencapai sesi cloud. [Pengaturan yang dikelola server](/docs/id/server-managed-settings) organisasi Anda melakukannya; [cakupan permukaan](/docs/id/model-config#surface-coverage) mencantumkan sesi cloud mana yang menerimanya. [Lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) juga membaca file pengaturan yang dikelola dalam gambar runner-nya. [Bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku.

815* **`/config`**: di browser Anda di claude.ai/code, membuka bagian Claude Code dari pengaturan claude.ai Anda daripada mengubah nilai. Untuk mengubah pengaturan untuk sesi cloud, atur [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) di lingkungan, atau dalam sesi dengan satu repositori, komit kunci ke `.claude/settings.json` repositori tersebut.815* **`/config`**: di browser Anda di claude.ai/code, membuka bagian Claude Code dari pengaturan claude.ai Anda daripada mengubah nilai. Untuk mengubah pengaturan untuk sesi cloud, atur [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) di lingkungan, atau dalam sesi dengan satu repositori, komit kunci ke `.claude/settings.json` repositori tersebut.

setup.md +20 −10

Details

638 638 

639Untuk menghapus Claude Code, ikuti instruksi untuk metode instalasi Anda. Jika `claude` masih berjalan setelahnya, Anda kemungkinan memiliki instalasi kedua atau alias shell yang tertinggal dari installer yang lebih lama. Lihat [Periksa instalasi yang bertentangan](/docs/id/troubleshoot-install#check-for-conflicting-installations) untuk menemukan dan menghapusnya.639Untuk menghapus Claude Code, ikuti instruksi untuk metode instalasi Anda. Jika `claude` masih berjalan setelahnya, Anda kemungkinan memiliki instalasi kedua atau alias shell yang tertinggal dari installer yang lebih lama. Lihat [Periksa instalasi yang bertentangan](/docs/id/troubleshoot-install#check-for-conflicting-installations) untuk menemukan dan menghapusnya.

640 640 

641<h3 id="native-installation">641<span id="native-installation" />

642 Instalasi asli642 

643<h3 id="uninstall-a-native-installation">

644 Hapus instalasi asli

643</h3>645</h3>

644 646 

645Hapus biner Claude Code dan file versi:647Hapus biner Claude Code dan file versi:


660 </Tab>662 </Tab>

661</Tabs>663</Tabs>

662 664 

663<h3 id="homebrew-installation">665<span id="homebrew-installation" />

664 Instalasi Homebrew666 

667<h3 id="uninstall-with-homebrew">

668 Hapus instalasi dengan Homebrew

665</h3>669</h3>

666 670 

667Hapus cask Homebrew yang Anda instal. Jika Anda menginstal cask stabil:671Hapus cask Homebrew yang Anda instal. Jika Anda menginstal cask stabil:


676brew uninstall --cask claude-code@latest680brew uninstall --cask claude-code@latest

677```681```

678 682 

679<h3 id="winget-installation">683<span id="winget-installation" />

680 Instalasi WinGet684 

685<h3 id="uninstall-with-winget">

686 Hapus instalasi dengan WinGet

681</h3>687</h3>

682 688 

683Hapus paket WinGet:689Hapus paket WinGet:


686winget uninstall Anthropic.ClaudeCode692winget uninstall Anthropic.ClaudeCode

687```693```

688 694 

689<h3 id="apt-/-dnf-/-apk">695<span id="apt-/-dnf-/-apk" />

690 apt / dnf / apk696 

697<h3 id="uninstall-with-apt-dnf-or-apk">

698 Hapus instalasi dengan apt, dnf, atau apk

691</h3>699</h3>

692 700 

693Hapus paket dan konfigurasi repositori:701Hapus paket dan konfigurasi repositori:


716 </Tab>724 </Tab>

717</Tabs>725</Tabs>

718 726 

719<h3 id="npm">727<span id="npm" />

720 npm728 

729<h3 id="uninstall-with-npm">

730 Hapus instalasi dengan npm

721</h3>731</h3>

722 732 

723Hapus paket npm global:733Hapus paket npm global:

skills.md +2 −0

Details

94| `migrate` | Memperbarui kode Claude API Anda yang sudah ada ke model yang lebih baru | Lebih awal dari v2.1.221 |94| `migrate` | Memperbarui kode Claude API Anda yang sudah ada ke model yang lebih baru | Lebih awal dari v2.1.221 |

95| `upgrade` | Memindahkan dependensi Anthropic SDK proyek Anda melintasi versi mayor, saat ini paket Python `anthropic` dari 0.x ke 1.x | v2.1.236 atau yang lebih baru |95| `upgrade` | Memindahkan dependensi Anthropic SDK proyek Anda melintasi versi mayor, saat ini paket Python `anthropic` dari 0.x ke 1.x | v2.1.236 atau yang lebih baru |

96| `managed-agents-onboard` | Memandu pembuatan Managed Agent baru | Lebih awal dari v2.1.221 |96| `managed-agents-onboard` | Memandu pembuatan Managed Agent baru | Lebih awal dari v2.1.221 |

97| `managed-agents-onboard <url>` | Membangun Managed Agent yang dijelaskan oleh halaman di URL tersebut, seperti halaman di [dokumentasi Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) | v2.1.290 atau yang lebih baru |

98| `managed-agents-onboard <quickstart-name>` | Membangun salah satu template mulai cepat Console, seperti `deep-researcher`. Jika Anda memberikan satu kata yang bukan nama template, Claude mencantumkan nama-nama yang valid | v2.1.290 atau yang lebih baru |

97| `prompt-audit` | Menandai instruksi yang ditulis untuk model lama di prompt, skill, dan deskripsi tool Anda serta mengusulkan perbaikan sebagai diff | v2.1.221 atau yang lebih baru |99| `prompt-audit` | Menandai instruksi yang ditulis untuk model lama di prompt, skill, dan deskripsi tool Anda serta mengusulkan perbaikan sebagai diff | v2.1.221 atau yang lebih baru |

98| `cost-optimize` | Memprofilkan ke mana pengeluaran Claude API proyek Anda digunakan dan mengusulkan penghematan dari opsi seperti prompt caching, memangkas token input dan output yang tidak diperlukan, pemrosesan batch, effort, dan pilihan model, satu perubahan dalam satu waktu | v2.1.247 atau yang lebih baru |100| `cost-optimize` | Memprofilkan ke mana pengeluaran Claude API proyek Anda digunakan dan mengusulkan penghematan dari opsi seperti prompt caching, memangkas token input dan output yang tidak diperlukan, pemrosesan batch, effort, dan pilihan model, satu perubahan dalam satu waktu | v2.1.247 atau yang lebih baru |

99| `build-eval` | Membangun set eval untuk aplikasi Anda yang didukung Claude | v2.1.259 atau yang lebih baru |101| `build-eval` | Membangun set eval untuk aplikasi Anda yang didukung Claude | v2.1.259 atau yang lebih baru |

sub-agents.md +4 −2

Details

609Mode izin percakapan utama memutuskan apakah Claude Code menggunakan nilai yang Anda atur:609Mode izin percakapan utama memutuskan apakah Claude Code menggunakan nilai yang Anda atur:

610 610 

611* Ketika percakapan utama berada dalam `bypassPermissions`, `acceptEdits`, atau [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), subagent berjalan dalam mode yang sama dan Claude Code mengabaikan `permissionMode` yang Anda atur. Di bawah auto mode, pengklasifikasi mengevaluasi panggilan tool subagent dengan aturan blok dan izin percakapan utama. Ketika subagent selesai, pengklasifikasi juga meninjau pekerjaan dan laporan finalnya sebelum laporan dikirimkan, seperti [How auto mode handles subagents](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) menjelaskan.611* Ketika percakapan utama berada dalam `bypassPermissions`, `acceptEdits`, atau [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), subagent berjalan dalam mode yang sama dan Claude Code mengabaikan `permissionMode` yang Anda atur. Di bawah auto mode, pengklasifikasi mengevaluasi panggilan tool subagent dengan aturan blok dan izin percakapan utama. Ketika subagent selesai, pengklasifikasi juga meninjau pekerjaan dan laporan finalnya sebelum laporan dikirimkan, seperti [How auto mode handles subagents](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) menjelaskan.

612* Ketika percakapan utama berada dalam mode `default`, `dontAsk`, atau `plan`, subagent berjalan dalam mode izin yang Anda atur, kecuali `bypassPermissions`. Subagent yang mendeklarasikan `bypassPermissions` menyimpan mode percakapan utama sebagai gantinya. Pengecualian `bypassPermissions` memerlukan Claude Code v2.1.267 atau lebih baru.612* Ketika percakapan utama berada dalam mode `default`, `dontAsk`, atau `plan`, subagent berjalan dalam mode izin yang Anda atur. Subagent tetap menggunakan mode izin percakapan utama dalam kasus berikut:

613 * Anda mengatur `bypassPermissions`. Pengecualian `bypassPermissions` memerlukan Claude Code v2.1.267 atau lebih baru.

614 * Anda mengatur `auto` dan [auto mode tidak tersedia](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk subagent, seperti ketika file pengaturan mengatur [`disableAutoMode`](/docs/id/settings-reference#disableautomode) atau model subagent tidak mendukung auto mode.

613 615 

614`permissionMode` menerima nilai ini, dan `manual` sebagai alias untuk `default`:616`permissionMode` menerima nilai ini, dan `manual` sebagai alias untuk `default`:

615 617 


640Implement API endpoints. Follow the conventions and patterns from the preloaded skills.642Implement API endpoints. Follow the conventions and patterns from the preloaded skills.

641```643```

642 644 

643Konten lengkap dari setiap skill yang tercantum disuntikkan ke dalam konteks subagent saat startup. Field ini mengontrol skill mana yang dimuat sebelumnya, bukan skill mana yang dapat diakses subagent: tanpanya, subagent masih dapat menemukan dan memanggil skill proyek, pengguna, dan plugin melalui tool Skill selama eksekusi. Untuk mencegah subagent dari memanggil skill sepenuhnya, hilangkan `Skill` dari daftar [`tools`](#available-tools) atau tambahkan ke `disallowedTools`.645Konten lengkap dari setiap skill yang tercantum disuntikkan ke dalam konteks subagent saat startup, hingga 32 nama berbeda pertama dalam daftar. Field ini mengontrol skill mana yang dimuat sebelumnya, bukan skill mana yang dapat diakses subagent: tanpanya, subagent masih dapat menemukan dan memanggil skill proyek, pengguna, dan plugin melalui tool Skill selama eksekusi. Untuk mencegah subagent dari memanggil skill sepenuhnya, hilangkan `Skill` dari daftar [`tools`](#available-tools) atau tambahkan ke `disallowedTools`.

644 646 

645Anda tidak dapat memuat skill sebelumnya yang mengatur [`disable-model-invocation: true`](/docs/id/skills#control-who-invokes-a-skill), karena memuat sebelumnya menarik dari set skill yang sama yang dapat dipanggil Claude. Ini termasuk skill `/verify` bundel, yang tidak dapat dijalankan Claude dengan sendirinya.647Anda tidak dapat memuat skill sebelumnya yang mengatur [`disable-model-invocation: true`](/docs/id/skills#control-who-invokes-a-skill), karena memuat sebelumnya menarik dari set skill yang sama yang dapat dipanggil Claude. Ini termasuk skill `/verify` bundel, yang tidak dapat dijalankan Claude dengan sendirinya.

646 648 

Details

666 666 

667* WebFetch menolak `localhost` dan nama host lainnya tanpa titik, seperti nama intranet biasa, sebelum membuat permintaan. [Kesalahan yang dikembalikannya](/docs/id/errors#webfetch-cannot-fetch-localhost) memberitahu Claude untuk menjangkau server lokal dengan `curl` melalui Bash sebagai gantinya.667* WebFetch menolak `localhost` dan nama host lainnya tanpa titik, seperti nama intranet biasa, sebelum membuat permintaan. [Kesalahan yang dikembalikannya](/docs/id/errors#webfetch-cannot-fetch-localhost) memberitahu Claude untuk menjangkau server lokal dengan `curl` melalui Bash sebagai gantinya.

668* URL HTTP secara otomatis ditingkatkan ke HTTPS.668* URL HTTP secara otomatis ditingkatkan ke HTTPS.

669* Halaman besar dipotong ke batas karakter tetap sebelum diproses.669* WebFetch membaca hingga 100.000 karakter konten halaman per panggilan. Pada Claude Code v2.1.290 atau lebih baru, hasil untuk halaman yang lebih panjang memberi tahu Claude berapa banyak yang belum terbaca, sehingga Claude dapat mengambil bagian berikutnya.

670* WebFetch menyimpan cache setiap respons selama 15 menit secara default, jadi pengambilan berulang dari URL yang sama kembali dengan cepat. Pada Claude Code v2.1.233 atau lebih baru, atur [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/id/env-vars#variables) untuk mengubah berapa lama WebFetch menyimpan setiap respons.670* WebFetch menyimpan cache setiap respons selama 15 menit secara default, jadi pengambilan berulang dari URL yang sama kembali dengan cepat. Pada Claude Code v2.1.233 atau lebih baru, atur [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/id/env-vars#variables) untuk mengubah berapa lama WebFetch menyimpan setiap respons.

671* Halaman yang belum selesai diunduh dalam lima menit, termasuk pengalihan apa pun yang diikuti WebFetch, gagal dengan kesalahan batas waktu. Pada Claude Code v2.1.268 atau lebih baru, atur [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](/docs/id/env-vars#variables) untuk mengubah batas, atau ke `0` untuk menghapusnya.671* Halaman yang belum selesai diunduh dalam lima menit, termasuk pengalihan apa pun yang diikuti WebFetch, gagal dengan kesalahan batas waktu. Pada Claude Code v2.1.268 atau lebih baru, atur [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](/docs/id/env-vars#variables) untuk mengubah batas, atau ke `0` untuk menghapusnya.

672* Ketika URL dialihkan ke host yang berbeda, WebFetch mengembalikan hasil teks yang menyebutkan URL asli dan target pengalihan alih-alih mengikutinya. Claude kemudian mengambil URL baru dengan panggilan WebFetch kedua.672* Ketika URL dialihkan ke host yang berbeda, WebFetch mengembalikan hasil teks yang menyebutkan URL asli dan target pengalihan alih-alih mengikutinya. Claude kemudian mengambil URL baru dengan panggilan WebFetch kedua.

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# Troubleshoot installation and login5# Pemecahan masalah instalasi dan login

6 6 

7> Perbaiki command not found, PATH, permission, network, dan authentication errors saat menginstal atau masuk ke Claude Code.7> Perbaiki kesalahan command not found, PATH, izin, jaringan, dan autentikasi saat menginstal atau masuk ke Claude Code.

8 8 

9Jika instalasi gagal atau Anda tidak dapat masuk, temukan kesalahan Anda di bawah. Untuk masalah runtime setelah Claude Code berfungsi, lihat [Troubleshooting](/docs/id/troubleshooting). Untuk masalah konfigurasi seperti pengaturan tidak diterapkan atau hooks tidak berfungsi, lihat [Debug your configuration](/docs/id/debug-your-config).9Jika instalasi gagal atau Anda tidak dapat masuk, temukan kesalahan Anda di bawah. Untuk masalah runtime setelah Claude Code berfungsi, lihat [Troubleshooting](/docs/id/troubleshooting). Untuk masalah konfigurasi seperti pengaturan tidak diterapkan atau hook tidak berfungsi, lihat [Debug your configuration](/docs/id/debug-your-config).

10 10 

11<h2 id="find-your-error">11<h2 id="find-your-error">

12 Temukan kesalahan Anda12 Temukan kesalahan Anda


17| Apa yang Anda lihat | Solusi |17| Apa yang Anda lihat | Solusi |

18| :- | :- |18| :- | :- |

19| `command not found: claude` atau `'claude' is not recognized` | [Perbaiki PATH Anda](#command-not-found-claude-after-installation) |19| `command not found: claude` atau `'claude' is not recognized` | [Perbaiki PATH Anda](#command-not-found-claude-after-installation) |

20| `Native installation exists but ... is not in your PATH` | [Tambahkan direktori instalasi ke PATH Anda](#verify-your-path) |

21| `INFO: Could not find files for the given pattern(s).` dari `where.exe claude` | [Periksa apakah Claude Code sudah terinstal](#check-for-conflicting-installations) |

22| `zsh: permission denied: /Users/you/.zshrc` atau `bash: /home/you/.bashrc: Permission denied` | [Buat file konfigurasi shell Anda dapat ditulis](#permission-denied-when-adding-to-your-path) |

20| `syntax error near unexpected token '<'` | [Install script mengembalikan HTML](#install-script-returns-html-instead-of-a-shell-script) |23| `syntax error near unexpected token '<'` | [Install script mengembalikan HTML](#install-script-returns-html-instead-of-a-shell-script) |

24| `< was unexpected at this time` di CMD | [Install script mengembalikan HTML](#install-script-returns-html-instead-of-a-shell-script) |

25| `The term 'System.Xml.XmlDocument' is not recognized` | [Install script mengembalikan HTML](#install-script-returns-html-instead-of-a-shell-script) |

21| `curl: (22) The requested URL returned error: 403` | [Install script mengembalikan 403](#install-script-returns-html-instead-of-a-shell-script) |26| `curl: (22) The requested URL returned error: 403` | [Install script mengembalikan 403](#install-script-returns-html-instead-of-a-shell-script) |

22| `curl: (23)` atau `curl: (56) Failure writing output to destination` | [Periksa konektivitas atau gunakan installer alternatif](#curl-56-failure-writing-output-to-destination) |27| `curl: (23)` atau `curl: (56) Failure writing output to destination` | [Periksa konektivitas atau gunakan installer alternatif](#curl-56-failure-writing-output-to-destination) |

23| `Killed` selama instalasi di Linux, atau `Installation was killed before it could finish (exit code 137)` | [Bebaskan memori atau tambahkan swap space](#install-killed-on-low-memory-linux-servers) |28| `Killed` selama instalasi di Linux | [Bebaskan memori atau tambahkan swap space](#install-killed-on-low-memory-linux-servers) |

29| `Installation was killed before it could finish` | [Bebaskan memori, lalu jalankan kembali installer](#installation-was-killed-before-it-could-finish) |

24| `Raw mode is not supported` selama instalasi | [Jalankan kembali installer](#raw-mode-is-not-supported-during-install) |30| `Raw mode is not supported` selama instalasi | [Jalankan kembali installer](#raw-mode-is-not-supported-during-install) |

25| `EACCES: permission denied` selama instalasi | [Perbaiki hak akses direktori instalasi](#permission-errors-during-installation) |31| `EACCES: permission denied` selama instalasi | [Perbaiki hak akses direktori instalasi](#permission-errors-during-installation) |

26| `TLS connect error` atau `SSL/TLS secure channel` | [Perbarui sertifikat CA](#tls-or-ssl-connection-errors) |32| `TLS connect error` atau `SSL/TLS secure channel` | [Perbarui sertifikat CA](#tls-or-ssl-connection-errors) |

33| `CRYPT_E_NO_REVOCATION_CHECK` atau `CRYPT_E_REVOCATION_OFFLINE` | [Atasi pemeriksaan pencabutan yang diblokir](#tls-or-ssl-connection-errors) |

27| `Failed to fetch version` atau tidak dapat menjangkau server download | [Periksa pengaturan jaringan dan proxy](#check-network-connectivity) |34| `Failed to fetch version` atau tidak dapat menjangkau server download | [Periksa pengaturan jaringan dan proxy](#check-network-connectivity) |

35| `The connection dropped while downloading the update` atau `Download timed out: exceeded the total deadline` | [Jalankan update lagi atau atur proxy Anda](#the-connection-dropped-while-downloading-the-update) |

28| `irm is not recognized` atau `The token '&&' is not a valid statement separator` | [Gunakan perintah yang tepat untuk shell Anda](#wrong-install-command-on-windows) |36| `irm is not recognized` atau `The token '&&' is not a valid statement separator` | [Gunakan perintah yang tepat untuk shell Anda](#wrong-install-command-on-windows) |

29| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Perbarui Homebrew](#homebrew-cask-unavailable-or-outdated) |37| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Perbarui Homebrew](#homebrew-cask-unavailable-or-outdated) |

38| `Cask 'claude-code@latest' is not installed` | [Upgrade cask yang Anda instal](#cask-is-not-installed) |

30| `'bash' is not recognized as the name of a cmdlet` | [Gunakan perintah installer Windows](#wrong-install-command-on-windows) |39| `'bash' is not recognized as the name of a cmdlet` | [Gunakan perintah installer Windows](#wrong-install-command-on-windows) |

31| `A parameter cannot be found that matches parameter name 'fsSL'` | [Gunakan perintah installer Windows](#wrong-install-command-on-windows) |40| `A parameter cannot be found that matches parameter name 'fsSL'` | [Gunakan perintah installer Windows](#wrong-install-command-on-windows) |

32| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Instal shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |41| `Claude Code on Windows requires either Git for Windows (for bash) or PowerShell` | [Instal shell](#claude-code-on-windows-requires-either-git-for-windows-for-bash-or-powershell) |


47| Di Windows, perintah install mencetak teks script dan tidak ada yang terinstal | [Jalankan perintah install lengkap](#wrong-install-command-on-windows) |56| Di Windows, perintah install mencetak teks script dan tidak ada yang terinstal | [Jalankan perintah install lengkap](#wrong-install-command-on-windows) |

48| `App unavailable in region` | Claude Code tidak tersedia di negara Anda. Lihat [negara yang didukung](https://www.anthropic.com/supported-countries). |57| `App unavailable in region` | Claude Code tidak tersedia di negara Anda. Lihat [negara yang didukung](https://www.anthropic.com/supported-countries). |

49| `unable to get local issuer certificate` | [Konfigurasi sertifikat CA perusahaan](#tls-or-ssl-connection-errors) |58| `unable to get local issuer certificate` | [Konfigurasi sertifikat CA perusahaan](#tls-or-ssl-connection-errors) |

50| `OAuth error` atau `403 Forbidden` | [Perbaiki authentication](#login-and-authentication) |59| `OAuth error` atau `403 Forbidden` | [Perbaiki autentikasi](#login-and-authentication) |

51| `Claude Code access has not been granted for this account` | [Dapatkan peran yang mencakup Claude Code](#claude-code-access-has-not-been-granted-for-this-account) |60| `Claude Code access has not been granted for this account` | [Dapatkan peran yang mencakup Claude Code](#claude-code-access-has-not-been-granted-for-this-account) |

52| `Unable to connect to Anthropic services` selama setup | Lihat [Unable to connect to Anthropic services](/docs/id/errors#unable-to-connect-to-anthropic-services) dalam referensi Error |61| `Unable to connect to Anthropic services` selama setup | Lihat [Unable to connect to Anthropic services](/docs/id/errors#unable-to-connect-to-anthropic-services) dalam referensi Error |

53| `Could not load the default credentials` atau `Could not load credentials from any providers` | [Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry credentials](#bedrock-agent-platform-or-foundry-credentials-not-loading) |62| `Could not load the default credentials` atau `Could not load credentials from any providers` | [Kredensial Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |

54| `ChainedTokenCredential authentication failed` atau `CredentialUnavailableError` | [Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry credentials](#bedrock-agent-platform-or-foundry-credentials-not-loading) |63| `ChainedTokenCredential authentication failed` atau `CredentialUnavailableError` | [Kredensial Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry](#bedrock-agent-platform-or-foundry-credentials-not-loading) |

55| `API Error: 500`, `529 Overloaded`, `429`, atau 4xx dan 5xx errors lainnya yang tidak tercantum di atas | Lihat [Error reference](/docs/id/errors) |64| `API Error: 500`, `529 Overloaded`, `429`, atau 4xx dan 5xx errors lainnya yang tidak tercantum di atas | Lihat [Error reference](/docs/id/errors) |

56 65 

57Jika masalah Anda tidak tercantum, lakukan pemeriksaan diagnostik di bawah untuk mempersempit penyebabnya.66Jika masalah Anda tidak tercantum, lakukan pemeriksaan diagnostik di bawah untuk mempersempit penyebabnya.


125 134 

126Jika instalasi berhasil tetapi Anda mendapatkan error `command not found` atau `not recognized` saat menjalankan `claude`, direktori instalasi tidak ada di PATH Anda. Shell Anda mencari program di direktori yang tercantum di PATH, dan installer menempatkan `claude` di `~/.local/bin/claude` di macOS/Linux atau `%USERPROFILE%\.local\bin\claude.exe` di Windows.135Jika instalasi berhasil tetapi Anda mendapatkan error `command not found` atau `not recognized` saat menjalankan `claude`, direktori instalasi tidak ada di PATH Anda. Shell Anda mencari program di direktori yang tercantum di PATH, dan installer menempatkan `claude` di `~/.local/bin/claude` di macOS/Linux atau `%USERPROFILE%\.local\bin\claude.exe` di Windows.

127 136 

137Installer mendeteksi kasus ini dan melaporkannya di bawah `Setup notes:` dalam output-nya: `Native installation exists but ~/.local/bin is not in your PATH.` di macOS dan Linux, atau `Native installation exists but C:\Users\you\.local\bin is not in your PATH.` di Windows. Installer mencetak perbaikannya bersama catatan tersebut tetapi tidak mengubah PATH sendiri.

138 

128<Note>139<Note>

129 Ekstensi [VS Code](/docs/id/vs-code) tidak menempatkan `claude` di lokasi ini. Ini menggabungkan salinan pribadi CLI di dalam direktori ekstensi untuk panel chat-nya sendiri dan tidak menambahkannya ke PATH. Jika Anda hanya telah menginstal ekstensi, `~/.local/bin/claude` tidak akan ada. Jalankan [instalasi standalone](/docs/id/setup) untuk menggunakan `claude` dari terminal, kemudian lanjutkan di bawah.140 Ekstensi [VS Code](/docs/id/vs-code) tidak menempatkan `claude` di lokasi ini. Ini menggabungkan salinan pribadi CLI di dalam direktori ekstensi untuk panel chat-nya sendiri dan tidak menambahkannya ke PATH. Jika Anda hanya telah menginstal ekstensi, `~/.local/bin/claude` tidak akan ada. Jalankan [instalasi standalone](/docs/id/setup) untuk menggunakan `claude` dari terminal, kemudian lanjutkan di bawah.

130</Note>141</Note>

131 142 

132Periksa apakah direktori instalasi ada di PATH Anda dengan membuat daftar entri PATH dan memfilter untuk `local/bin`:143Pertama, periksa apakah program tersebut memang ada, lalu periksa apakah foldernya ada di PATH Anda. Perbaikan PATH bersifat permanen, jadi Anda cukup menerapkannya sekali. Pilih tab platform Anda dan jalankan perintahnya di sana: di terminal Anda di macOS dan Linux, atau di PowerShell atau Command Prompt di Windows.

133 144 

134<Tabs>145<Tabs>

135 <Tab title="macOS/Linux">146 <Tab title="macOS/Linux">

147 Periksa apakah installer telah menempatkan program:

148 

149 ```bash theme={null}

150 ls -la ~/.local/bin/claude

151 ```

152 

153 * **`No such file or directory`**: tidak ada native install. Jika Anda belum menginstal Claude Code dengan cara lain, seperti dengan npm, Homebrew, atau package manager Linux, [instal Claude Code](/docs/id/setup#install-claude-code). Jika Anda menginstalnya dengan cara lain, lihat [Periksa instalasi yang bertentangan](#check-for-conflicting-installations).

154 * **Daftar untuk file tersebut**: program ada. Periksa PATH Anda selanjutnya.

155 

156 Buat daftar entri PATH Anda dan filter untuk folder instalasi:

157 

136 ```bash theme={null}158 ```bash theme={null}

137 echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"159 echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

138 ```160 ```

139 161 

140 Jika ini mencetak `/Users/you/.local/bin` atau `/home/you/.local/bin`, direktori ada di PATH Anda dan Anda dapat melompat ke [Periksa instalasi yang bertentangan](#check-for-conflicting-installations). Jika tidak ada output, tambahkan ke konfigurasi shell Anda.162 Jika ini mencetak `/Users/you/.local/bin` atau `/home/you/.local/bin`, direktori ada di PATH Anda dan Anda dapat melompat ke [Periksa instalasi yang bertentangan](#check-for-conflicting-installations). Jika tidak ada output, tambahkan ke konfigurasi shell Anda dengan dua perintah untuk shell Anda. Perintah `echo` menyimpan pengaturan untuk setiap terminal baru, dan `source` menerapkannya ke jendela yang sedang Anda gunakan. Perintah `echo` tidak mencetak apa pun jika berhasil.

141 163 

142 Untuk Zsh, default di macOS:164 Untuk Zsh, default di macOS:

143 165 


162 184 

163 Atau, tutup dan buka kembali terminal Anda.185 Atau, tutup dan buka kembali terminal Anda.

164 186 

187 Jika perintah `echo` mencetak `permission denied`, lihat [`permission denied` saat menambahkan ke PATH Anda](#permission-denied-when-adding-to-your-path).

188 

165 Untuk shell lain seperti fish atau Nushell, tambahkan `~/.local/bin` ke PATH Anda menggunakan sintaks konfigurasi shell Anda sendiri, kemudian restart terminal Anda.189 Untuk shell lain seperti fish atau Nushell, tambahkan `~/.local/bin` ke PATH Anda menggunakan sintaks konfigurasi shell Anda sendiri, kemudian restart terminal Anda.

166 190 

167 Verifikasi perbaikan berhasil:191 Verifikasi perbaikan berhasil:


169 ```bash theme={null}193 ```bash theme={null}

170 claude --version194 claude --version

171 ```195 ```

196 

197 Jika `claude` masih tidak ditemukan, periksa penyebab berikut:

198 

199 * **Terminal dibuka sebelum perubahan**: jendela yang sudah terbuka tetap menggunakan PATH lamanya, dan terminal di dalam editor mengambil PATH-nya dari editor. Buka jendela baru, atau keluar dan buka kembali editor.

200 * **Baris tidak tersimpan**: jalankan `grep -n '.local/bin' ~/.zshrc`, menggunakan nama file shell Anda. Perintah ini mencetak baris beserta nomor barisnya jika baris tersebut ada. Jika tidak mencetak apa pun, jalankan kembali dua perintah PATH.

201 * **Baris masuk ke file shell lain**: jalankan `echo $0` untuk melihat shell Anda, lalu jalankan dua perintah PATH untuk shell tersebut.

172 </Tab>202 </Tab>

173 203 

174 <Tab title="Windows PowerShell">204 <Tab title="Windows PowerShell">

205 Periksa apakah installer telah menempatkan program:

206 

207 ```powershell theme={null}

208 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

209 ```

210 

211 * **`False`**: tidak ada native install. Jika Anda belum menginstal Claude Code dengan cara lain, seperti dengan npm atau WinGet, [instal Claude Code](/docs/id/setup#install-claude-code). Jika Anda menginstalnya dengan cara lain, lihat [Periksa instalasi yang bertentangan](#check-for-conflicting-installations).

212 * **`True`**: program ada. Periksa PATH Anda selanjutnya.

213 

214 Buat daftar entri PATH Anda dan filter untuk folder instalasi:

215 

175 ```powershell theme={null}216 ```powershell theme={null}

176 $env:PATH -split ';' | Select-String '\.local\\bin'217 $env:PATH -split ';' | Select-String '\.local\\bin'

177 ```218 ```

178 219 

179 Jika tidak ada output, tambahkan direktori instalasi ke User PATH Anda:220 Jika ini mencetak `C:\Users\you\.local\bin`, direktori ada di PATH Anda dan Anda dapat melompat ke [Periksa instalasi yang bertentangan](#check-for-conflicting-installations). Jika tidak ada output, tambahkan direktori instalasi ke User PATH Anda:

180 221 

181 ```powershell theme={null}222 ```powershell theme={null}

182 $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')223 $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')


190 ```powershell theme={null}231 ```powershell theme={null}

191 claude --version232 claude --version

192 ```233 ```

234 

235 Jika `claude` masih tidak ditemukan di terminal baru, periksa penyebab berikut:

236 

237 * **Terminal berjalan di dalam editor**: terminal mengambil PATH-nya dari editor, jadi keluar dan buka kembali editor.

238 * **Perubahan tidak tersimpan**: jalankan `[Environment]::GetEnvironmentVariable('PATH', 'User')` dan cari `.local\bin` di PATH yang dicetaknya. Jika tidak ada, jalankan kembali kedua perintah tersebut.

193 </Tab>239 </Tab>

194 240 

195 <Tab title="Windows CMD">241 <Tab title="Windows CMD">

242 Periksa apakah installer telah menempatkan program:

243 

244 ```batch theme={null}

245 dir "%USERPROFILE%\.local\bin\claude.exe"

246 ```

247 

248 * **`File Not Found` atau `The system cannot find the path specified.`**: tidak ada native install. Jika Anda belum menginstal Claude Code dengan cara lain, seperti dengan npm atau WinGet, [instal Claude Code](/docs/id/setup#install-claude-code). Jika Anda menginstalnya dengan cara lain, lihat [Periksa instalasi yang bertentangan](#check-for-conflicting-installations).

249 * **Daftar untuk `claude.exe`**: program ada. Periksa PATH Anda selanjutnya.

250 

251 Buat daftar entri PATH Anda dan filter untuk folder instalasi:

252 

196 ```batch theme={null}253 ```batch theme={null}

197 echo %PATH% | findstr /i "local\bin"254 echo %PATH% | findstr /i "local\bin"

198 ```255 ```


204 ```batch theme={null}261 ```batch theme={null}

205 claude --version262 claude --version

206 ```263 ```

264 

265 Jika `claude` masih tidak ditemukan di terminal baru, terminal di dalam editor mengambil PATH-nya dari editor, jadi keluar dan buka kembali editor juga.

207 </Tab>266 </Tab>

208</Tabs>267</Tabs>

209 268 


221 which -a claude280 which -a claude

222 ```281 ```

223 282 

224 Jika ini tidak mencetak apa pun, tidak ada `claude` di PATH Anda. Kembali ke [Verifikasi PATH Anda](#verify-your-path).283 Jika ini mencetak `claude not found`, baris `no claude in`, atau tidak mencetak apa pun, tidak ada `claude` di PATH Anda. Pemeriksaan berikutnya menunjukkan apakah `claude` terinstal sama sekali.

225 284 

226 Periksa tiga lokasi tempat binary `claude` dapat berasal. `~/.local/bin/claude` adalah native installer, `~/.claude/local/` adalah legacy local npm install yang dibuat oleh versi Claude Code yang lebih lama, dan npm global list menunjukkan instalasi `-g`:285 Periksa tiga lokasi tempat binary `claude` dapat berasal. `~/.local/bin/claude` adalah native installer, `~/.claude/local/` adalah legacy local npm install yang dibuat oleh versi Claude Code yang lebih lama, dan npm global list menunjukkan instalasi `-g`:

227 286 


240 ```bash theme={null}299 ```bash theme={null}

241 npm -g ls @anthropic-ai/claude-code 2>/dev/null300 npm -g ls @anthropic-ai/claude-code 2>/dev/null

242 ```301 ```

302 

303 Jika `ls -la ~/.local/bin/claude` mencetak `No such file or directory`, tidak ada native install. Jika Anda belum menginstal Claude Code dengan cara lain, seperti dengan npm, Homebrew, atau package manager Linux, [instal Claude Code](/docs/id/setup#install-claude-code). Jika `~/.local/bin/claude` ada tetapi `which -a claude` tidak mencantumkannya, folder tersebut tidak ada di PATH Anda: lihat [Verifikasi PATH Anda](#verify-your-path).

243 </Tab>304 </Tab>

244 305 

245 <Tab title="Windows PowerShell">306 <Tab title="Windows PowerShell">


249 where.exe claude310 where.exe claude

250 ```311 ```

251 312 

313 Jika ini mencetak `INFO: Could not find files for the given pattern(s).`, tidak ada `claude` di PATH Anda.

314 

252 Periksa apakah native installer menempatkan binary:315 Periksa apakah native installer menempatkan binary:

253 316 

254 ```powershell theme={null}317 ```powershell theme={null}

255 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"318 Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

256 ```319 ```

320 

321 * **`True`**: native install ada. Jika `where.exe` tidak menemukan apa pun, foldernya tidak ada di PATH Anda: lihat [Verifikasi PATH Anda](#verify-your-path).

322 * **`False`**: tidak ada native install. Jika Anda belum menginstal Claude Code dengan cara lain, seperti dengan npm atau WinGet, [instal Claude Code](/docs/id/setup#install-claude-code).

257 </Tab>323 </Tab>

258</Tabs>324</Tabs>

259 325 


368 Install script returns HTML instead of a shell script434 Install script returns HTML instead of a shell script

369</h3>435</h3>

370 436 

371Saat menjalankan perintah install, Anda mungkin melihat salah satu error ini:437Perintah install gagal dengan salah satu error berikut ketika yang diunduhnya bukan script instalasi.

438 

439**Bash atau Zsh**: error mengutip baris pertama dari halaman yang dikembalikan.

372 440 

373```text theme={null}441```text theme={null}

374bash: line 1: syntax error near unexpected token `<'442bash: line 1: syntax error near unexpected token `<'

375bash: line 1: `<!DOCTYPE html>'443bash: line 1: `<!DOCTYPE html>'

376```444```

377 445 

378Di PowerShell, masalah yang sama muncul sebagai parse errors yang menunjuk ke halaman yang dikembalikan, dengan `iex` mencoba menjalankan HTML dan CSS sebagai PowerShell:446**PowerShell, parse errors**: error menunjuk ke halaman yang dikembalikan, dengan `iex` mencoba menjalankan HTML dan CSS sebagai PowerShell.

379 447 

380```text theme={null}448```text theme={null}

381iex : At line:1 char:2310449iex : At line:1 char:2310


384...452...

385```453```

386 454 

387Wording bervariasi dengan versi PowerShell dan bahasa sistem: Anda mungkin melihat `Missing expression after unary operator '--'` atau `ParserError` dengan `ParseException` sebagai gantinya. Tag HTML atau CSS dalam teks yang dikutip mengidentifikasi kegagalan ini. Jika Anda mengunduh dengan `-OutFile install.ps1` sebagai gantinya, file yang disimpan adalah halaman web yang sama, jadi itu tidak membantu juga.455Kata-katanya bervariasi dengan versi PowerShell dan bahasa sistem: Anda mungkin melihat `Missing expression after unary operator '--'` atau `ParserError` dengan `ParseException` sebagai gantinya. Tag HTML atau CSS dalam teks yang dikutip mengidentifikasi kegagalan ini. Jika Anda mengunduh dengan `-OutFile install.ps1` sebagai gantinya, file yang disimpan adalah halaman web yang sama, jadi itu tidak membantu juga.

388 456 

389Tergantung pada bagaimana permintaan dirutekan, Anda mungkin malah melihat 403 tanpa body HTML:457**PowerShell, `System.Xml.XmlDocument`**: error menyebutkan tipe ini alih-alih mengutip halaman.

458 

459```text theme={null}

460System.Xml.XmlDocument : The term 'System.Xml.XmlDocument' is not recognized as the name of a cmdlet, function, script

461file, or operable program.

462```

463 

464Ketika `irm` dapat mem-parse respons sebagai XML, ia mengembalikan objek XML alih-alih teks, lalu `iex` mencoba menjalankan nama tipe objek tersebut sebagai perintah. Script instalasi adalah kode PowerShell dan tidak dapat di-parse sebagai XML, jadi error ini juga berarti respons tersebut adalah sesuatu selain script. Kata-kata di sekitar nama tipe bervariasi dengan versi PowerShell dan bahasa sistem, tetapi `System.Xml.XmlDocument` itu sendiri tetap sama, jadi cocokkan berdasarkan nama tipe.

465 

466**CMD**: Anda melihat error ini, diikuti oleh HTML dari halaman yang dikembalikan.

467 

468```text theme={null}

469< was unexpected at this time.

470 

471C:\Users\you><!DOCTYPE html>...

472```

473 

474Baris pertama muncul dalam bahasa sistem Anda, jadi cari HTML yang mengikutinya.

475 

476**403 tanpa halaman**: tergantung pada bagaimana permintaan dirutekan, curl melaporkan status 403 tanpa body HTML.

390 477 

391```text theme={null}478```text theme={null}

392curl: (22) The requested URL returned error: 403479curl: (22) The requested URL returned error: 403

393```480```

394 481 

395Semuanya berarti URL instalasi mengembalikan halaman HTML atau status error alih-alih script instalasi. Jika halaman HTML mengatakan "App unavailable in region," Claude Code tidak tersedia di negara Anda. Lihat [supported countries](https://www.anthropic.com/supported-countries).482Semuanya berarti URL instalasi mengembalikan halaman web, dokumen XML, atau status error alih-alih script instalasi. Jika output error mengutip "App unavailable in region," Claude Code tidak tersedia di negara Anda. Lihat [supported countries](https://www.anthropic.com/supported-countries).

396 483 

397403 tanpa body sering memiliki penyebab yang sama, tetapi juga dapat berasal dari proxy perusahaan atau firewall yang memblokir download. Jika Anda berada di negara yang didukung dan masih melihat 403, kerjakan [Check network connectivity](#check-network-connectivity) sebelum mencoba installer alternatif di bawah, karena installer tersebut menjangkau host yang sama.484403 tanpa body sering memiliki penyebab yang sama, tetapi juga dapat berasal dari proxy perusahaan atau firewall yang memblokir download. Jika Anda berada di negara yang didukung dan masih melihat 403, kerjakan [Check network connectivity](#check-network-connectivity) sebelum mencoba installer alternatif di bawah, karena installer tersebut menjangkau host yang sama.

398 485 


400 487 

401**Solusi:**488**Solusi:**

402 489 

4031. **Gunakan metode instalasi alternatif**:4901. **Coba lagi setelah beberapa menit**: masalahnya sering bersifat sementara. Tunggu dan coba perintah asli lagi.

491 

4922. **Gunakan metode instalasi alternatif**: tidak seperti instalasi native, instalasi Homebrew atau WinGet [tidak memperbarui dirinya sendiri secara default](/docs/id/setup#auto-updates).

404 493 

405 Di macOS, instal melalui Homebrew:494 Di macOS, instal melalui Homebrew:

406 495 


414 winget install Anthropic.ClaudeCode503 winget install Anthropic.ClaudeCode

415 ```504 ```

416 505 

417 Kemudian jalankan `claude --version` untuk mengkonfirmasi: perintah mencetak nomor versi seperti `2.1.211 (Claude Code)`. Jika shell melaporkan `claude` tidak ditemukan, buka jendela terminal baru dan coba ulang: sesi tempat Anda menginstal menyimpan `PATH` lamanya.506 Kemudian jalankan `claude --version` untuk mengonfirmasi: perintah mencetak nomor versi seperti `2.1.211 (Claude Code)`. Jika shell melaporkan `claude` tidak ditemukan, buka jendela terminal baru dan coba ulang: sesi tempat Anda menginstal menyimpan `PATH` lamanya.

418 

4192. **Coba lagi setelah beberapa menit**: masalahnya sering bersifat sementara. Tunggu dan coba perintah asli lagi.

420 507 

421<h3 id="command-not-found-claude-after-installation">508<h3 id="command-not-found-claude-after-installation">

422 `command not found: claude` after installation509 `command not found: claude` after installation


435 522 

436Jika tidak, lihat [Verify your PATH](#verify-your-path) untuk perbaikan di setiap platform.523Jika tidak, lihat [Verify your PATH](#verify-your-path) untuk perbaikan di setiap platform.

437 524 

525<h3 id="permission-denied-when-adding-to-your-path">

526 `permission denied` when adding to your PATH

527</h3>

528 

529Jika perintah `echo` yang menambahkan `~/.local/bin` ke PATH Anda mencetak `zsh: permission denied: /Users/you/.zshrc` atau `bash: /home/you/.bashrc: Permission denied`, pengguna Anda tidak dapat menulis ke file tersebut dan tidak ada yang disimpan. Di terminal Anda, periksa siapa pemilik file tersebut, menggunakan nama file shell Anda sebagai pengganti `~/.zshrc`:

530 

531```bash theme={null}

532ls -l ~/.zshrc

533```

534 

535Kolom ketiga dari output adalah pemiliknya.

536 

537* **Pemiliknya adalah pengguna lain, seperti `root`**: ambil alih kepemilikan dengan `sudo chown $(whoami) ~/.zshrc`, yang memerlukan hak administrator.

538* **Pemiliknya adalah Anda**: file tersebut read-only. Jadikan dapat ditulis dengan `chmod u+w ~/.zshrc`.

539 

540Kemudian jalankan lagi dua perintah PATH untuk shell Anda di [Verify your PATH](#verify-your-path).

541 

438<h3 id="curl-56-failure-writing-output-to-destination">542<h3 id="curl-56-failure-writing-output-to-destination">

439 `curl: (56) Failure writing output to destination`543 `curl: (56) Failure writing output to destination`

440</h3>544</h3>


456 560 

457Jika Homebrew menginstal versi Claude Code yang lebih lama dari yang Anda harapkan, indeks yang sudah usang biasanya menjadi penyebabnya. Cask `claude-code` melacak saluran stabil dan biasanya tertinggal sekitar satu minggu dari rilis terbaru; untuk versi terbaru jalankan `brew install --cask claude-code@latest` sebagai gantinya. Lihat [Configure release channel](/docs/id/setup#configure-release-channel) untuk perbedaan antara dua cask.561Jika Homebrew menginstal versi Claude Code yang lebih lama dari yang Anda harapkan, indeks yang sudah usang biasanya menjadi penyebabnya. Cask `claude-code` melacak saluran stabil dan biasanya tertinggal sekitar satu minggu dari rilis terbaru; untuk versi terbaru jalankan `brew install --cask claude-code@latest` sebagai gantinya. Lihat [Configure release channel](/docs/id/setup#configure-release-channel) untuk perbedaan antara dua cask.

458 562 

563<h3 id="cask-is-not-installed">

564 `Cask 'claude-code@latest' is not installed`

565</h3>

566 

567Homebrew menawarkan dua cask, `claude-code` dan `claude-code@latest`. Menjalankan `brew upgrade --cask claude-code@latest` ketika cask tersebut bukan yang terinstal akan mencetak `Error: Cask 'claude-code@latest' is not installed.` Untuk melihat cask mana yang Anda miliki, jalankan ini di terminal Anda:

568 

569```bash theme={null}

570brew list --cask | grep claude-code

571```

572 

573Upgrade cask yang dicetaknya. Jika tidak mencetak apa pun, tidak ada cask yang terinstal.

574 

459<h3 id="tls-or-ssl-connection-errors">575<h3 id="tls-or-ssl-connection-errors">

460 TLS or SSL connection errors576 TLS or SSL connection errors

461</h3>577</h3>


467* PowerShell's `Could not create SSL/TLS secure channel`583* PowerShell's `Could not create SSL/TLS secure channel`

468* PowerShell's `Could not establish trust relationship for the SSL/TLS secure channel`584* PowerShell's `Could not establish trust relationship for the SSL/TLS secure channel`

469 585 

586Untuk `CRYPT_E_NO_REVOCATION_CHECK` atau `CRYPT_E_REVOCATION_OFFLINE`, langsung ke langkah 4.

587 

470**Solusi:**588**Solusi:**

471 589 

4721. **Perbarui sertifikat CA sistem Anda**:5901. **Perbarui sertifikat CA sistem Anda**:


479 597 

480 Di macOS, curl sistem menggunakan Keychain trust store; memperbarui macOS itu sendiri memperbarui root certificates.598 Di macOS, curl sistem menggunakan Keychain trust store; memperbarui macOS itu sendiri memperbarui root certificates.

481 599 

4822. **Di Windows, aktifkan TLS 1.2** di PowerShell sebelum menjalankan installer:6002. **Di Windows PowerShell 5.1, aktifkan TLS 1.2**:

483 ```powershell theme={null}601 ```powershell theme={null}

484 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12602 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12

603 ```

604 Kemudian jalankan installer di jendela yang sama:

605 ```powershell theme={null}

485 irm https://claude.ai/install.ps1 | iex606 irm https://claude.ai/install.ps1 | iex

486 ```607 ```

487 608 

4883. **Periksa gangguan proxy atau firewall**: corporate proxies yang melakukan TLS inspection dapat menyebabkan error ini, termasuk `unable to get local issuer certificate` dan `SELF_SIGNED_CERT_IN_CHAIN`. Untuk langkah instalasi, arahkan download install untuk mempercayai CA proxy perusahaan Anda:6093. **Periksa gangguan proxy atau firewall**: proxy perusahaan yang melakukan TLS inspection dapat menyebabkan error ini, termasuk `unable to get local issuer certificate` dan `SELF_SIGNED_CERT_IN_CHAIN`. Untuk langkah instalasi, arahkan download install untuk mempercayai CA proxy perusahaan Anda:

489 610 

490 <Tabs>611 <Tabs>

491 <Tab title="macOS/Linux">612 <Tab title="macOS/Linux">


519 </Tab>640 </Tab>

520 </Tabs>641 </Tabs>

521 642 

522 Tanyakan tim IT Anda untuk file sertifikat jika Anda tidak memilikinya. Anda juga dapat mencoba koneksi langsung untuk mengkonfirmasi proxy adalah penyebabnya.643 Tanyakan tim IT Anda untuk file sertifikat jika Anda tidak memilikinya. Anda juga dapat mencoba koneksi langsung untuk mengonfirmasi proxy adalah penyebabnya.

523 644 

5244. **Di Windows, lewati pemeriksaan revokasi sertifikat yang diblokir**. Error `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` dan `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` berarti curl menjangkau server tetapi jaringan Anda memblokir pencarian revokasi sertifikat, yang umum di belakang firewall perusahaan. Jika perintah yang gagal adalah `curl` yang mengunduh `install.cmd`, jalankan ulang dari Command Prompt dengan `--ssl-revoke-best-effort` ditambahkan:6454. **Di Windows, lewati pemeriksaan revokasi sertifikat yang diblokir**. Error `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` dan `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` berarti curl menjangkau server tetapi jaringan Anda memblokir pencarian revokasi sertifikat, yang umum di belakang firewall perusahaan. Jika perintah yang gagal adalah `curl` yang mengunduh `install.cmd`, jalankan ulang dari Command Prompt dengan `--ssl-revoke-best-effort` ditambahkan:

525 ```batch theme={null}646 ```batch theme={null}

526 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd647 curl --ssl-revoke-best-effort -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

527 ```648 ```

528 Ketika download script itu sendiri mengalami error yang sama, script menjalankan ulang dengan pemeriksaan revokasi best-effort secara otomatis, jadi flag hanya diperlukan pada perintah yang Anda jalankan sendiri. Pemeriksaan best-effort mentoleransi server revokasi yang tidak dapat dijangkau tetapi masih menolak sertifikat yang diketahui telah dicabut, sesuai dengan cara browser menangani revokasi. Anda juga dapat menghindari pemeriksaan revokasi curl sepenuhnya dengan menjalankan PowerShell installer dari PowerShell, yang mengunduh melalui .NET dan tidak gagal ketika server revokasi tidak dapat dijangkau:649 Ketika download script itu sendiri mengalami error yang sama, script mencoba ulang dengan pemeriksaan revokasi best-effort secara otomatis, jadi flag hanya diperlukan pada perintah yang Anda jalankan sendiri. Pemeriksaan best-effort mentoleransi server revokasi yang tidak dapat dijangkau tetapi masih menolak sertifikat yang diketahui telah dicabut, sesuai dengan cara browser menangani revokasi. Anda juga dapat menghindari pemeriksaan revokasi curl sepenuhnya dengan menjalankan PowerShell installer dari PowerShell, yang mengunduh melalui .NET dan tidak gagal ketika server revokasi tidak dapat dijangkau:

529 ```powershell theme={null}650 ```powershell theme={null}

530 irm https://claude.ai/install.ps1 | iex651 irm https://claude.ai/install.ps1 | iex

531 ```652 ```


537 658 

538Installer tidak dapat menjangkau server download. Ini biasanya berarti `downloads.claude.ai` diblokir di jaringan Anda. Lihat [Check network connectivity](#check-network-connectivity).659Installer tidak dapat menjangkau server download. Ini biasanya berarti `downloads.claude.ai` diblokir di jaringan Anda. Lihat [Check network connectivity](#check-network-connectivity).

539 660 

661<h3 id="the-connection-dropped-while-downloading-the-update">

662 The connection dropped while downloading the update

663</h3>

664 

665Koneksi ke server download tertutup saat `claude install` atau `claude update` sedang mengambil binary Claude Code, dan retry tidak berhasil memulihkannya. Claude Code mencoba ulang download ketika koneksi terputus, transfer macet, atau file yang diunduh gagal dalam pemeriksaan checksum, hingga total tiga kali percobaan. Error HTTP yang sudah selesai, seperti 404, tidak dicoba ulang karena server sudah menjawab. Sebelum v2.1.202, satu koneksi yang terputus langsung menggagalkan download dengan error polos `aborted` alih-alih mencoba ulang.

666 

667```text theme={null}

668The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.

669```

670 

671Teks dalam tanda kurung menyebutkan percobaan mana yang gagal dan error jaringan yang mendasarinya. `claude update` mendahului pesan tersebut dengan `Error: Failed to install native update` di stderr.

672 

673Download yang tetap terhubung tetapi tidak selesai dalam 10 menit gagal dengan `Download timed out: exceeded the total deadline` sebagai gantinya. Claude Code tidak mencoba ulang download yang timeout, karena koneksi yang terlalu lambat untuk selesai dalam batas waktu juga tidak akan selesai pada retry langsung. Langkah-langkah di bawah berlaku untuk kedua pesan.

674 

675Proxy atau gateway dapat menutup transfer yang panjang sebelum selesai, dan binary Claude Code adalah download yang besar.

676 

677**Yang harus dilakukan:**

678 

679* Jalankan `claude update` lagi. Pada jaringan yang selain itu sehat, download biasanya berhasil pada percobaan berikutnya. Untuk pesan timeout, jalankan lagi dari jaringan yang lebih cepat atau kurang dibatasi.

680* Jika jaringan Anda memerlukan proxy, atur `HTTPS_PROXY` sebelum menjalankan installer atau `claude update`. Lihat [Check network connectivity](#check-network-connectivity).

681* Jika proxy perusahaan terus menutup transfer, minta tim jaringan Anda untuk mengizinkan download penuh dari `downloads.claude.ai`. Lihat [Network access requirements](/docs/id/network-config#network-access-requirements).

682* Jalankan `claude doctor` dari shell Anda untuk diagnostik instalasi

683 

540<h3 id="wrong-install-command-on-windows">684<h3 id="wrong-install-command-on-windows">

541 Wrong install command on Windows685 Wrong install command on Windows

542</h3>686</h3>


572 irm https://claude.ai/install.ps1 | iex716 irm https://claude.ai/install.ps1 | iex

573 ```717 ```

574 718 

575* **Perintah mencetak teks script alih-alih menginstal**: Anda menjalankan bagian download dari perintah tanpa bagian yang mengeksekusinya. `irm https://claude.ai/install.ps1` sendirian mencetak script yang diunduh ke terminal. Pipa ke `iex` untuk menjalankannya:719* **Perintah mencetak teks script alih-alih menginstal**: Anda menjalankan bagian download dari perintah tanpa bagian yang mengeksekusinya. `irm https://claude.ai/install.ps1` sendirian mencetak script yang diunduh ke terminal. Salurkan ke `iex` untuk menjalankannya:

576 720 

577 ```powershell theme={null}721 ```powershell theme={null}

578 irm https://claude.ai/install.ps1 | iex722 irm https://claude.ai/install.ps1 | iex


598 + CategoryInfo : SecurityError: (:) [], PSSecurityException742 + CategoryInfo : SecurityError: (:) [], PSSecurityException

599```743```

600 744 

601Error yang sama menamai `claude.ps1` ketika Anda menjalankan `claude` setelah npm install. Kebijakan eksekusi PowerShell memblokir script launcher `.ps1` yang npm buat untuk perintahnya. Kebijakan berlaku untuk file script, jadi tidak mempengaruhi PowerShell installer `irm https://claude.ai/install.ps1 | iex`, yang menjalankan teks yang diunduh secara langsung.745Error yang sama menyebutkan `claude.ps1` ketika Anda menjalankan `claude` setelah npm install. Kebijakan eksekusi PowerShell memblokir script launcher `.ps1` yang npm buat untuk perintahnya. Kebijakan berlaku untuk file script, jadi tidak mempengaruhi PowerShell installer `irm https://claude.ai/install.ps1 | iex`, yang menjalankan teks yang diunduh secara langsung.

602 746 

603**Solusi:**747**Solusi:**

604 748 


634Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe778Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe

635```779```

636 780 

637Kemudian jalankan `claude --version` untuk mengkonfirmasi perbaikan. `claude.exe` yang dipulihkan mencetak nomor versi.781Kemudian jalankan `claude --version` untuk mengonfirmasi perbaikan. `claude.exe` yang dipulihkan mencetak nomor versi.

638 782 

639Jika tidak ada file `claude.exe.old.*`, atau `claude` masih gagal setelah penggantian nama, instal ulang sebagai gantinya:783Jika tidak ada file `claude.exe.old.*`, atau `claude` masih gagal setelah penggantian nama, instal ulang sebagai gantinya:

640 784 


648 Install killed on low-memory Linux servers792 Install killed on low-memory Linux servers

649</h3>793</h3>

650 794 

651Pesan `Killed` selama install biasanya berarti Linux out-of-memory (OOM) killer menghentikan langkah `claude install` karena sistem kehabisan memori gratis. Ini umum di VPS dan cloud instances kecil. Script install melaporkan penyebabnya dan keluar dengan kode 137. Dalam contoh ini, nomor baris dan ID proses bervariasi menurut rilis dan jalankan:795Pesan `Killed` selama install biasanya berarti Linux out-of-memory (OOM) killer menghentikan langkah `claude install` karena sistem kehabisan memori bebas. Ini umum di VPS dan cloud instance kecil. Script install melaporkan penyebabnya dan keluar dengan kode 137. Dalam contoh ini, nomor baris dan ID proses bervariasi menurut rilis dan eksekusi:

652 796 

653```text theme={null}797```text theme={null}

654Setting up Claude Code...798Setting up Claude Code...


657Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.801Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.

658```802```

659 803 

660Instalasi memerlukan kira-kira 512 MB memori gratis, dan menjalankan Claude Code memerlukan lebih banyak. Lihat [system requirements](/docs/id/setup#system-requirements).804Instalasi memerlukan kira-kira 512 MB memori bebas, dan menjalankan Claude Code memerlukan lebih banyak. Lihat [system requirements](/docs/id/setup#system-requirements).

661 805 

662**Solusi:**806**Solusi:**

663 807 


682 826 

6833. **Gunakan instance yang lebih besar** jika memungkinkan. Claude Code memerlukan setidaknya 4 GB RAM.8273. **Gunakan instance yang lebih besar** jika memungkinkan. Claude Code memerlukan setidaknya 4 GB RAM.

684 828 

829<h3 id="installation-was-killed-before-it-could-finish">

830 Installation was killed before it could finish

831</h3>

832 

833Script install melaporkan ketika langkah `claude install` dihentikan oleh sinyal. Di Linux, exit code 137 berarti proses menerima SIGKILL, dan pada host dengan memori rendah itu biasanya adalah kernel out-of-memory (OOM) killer. Script mencetak penjelasan ini dan keluar dengan kode 137:

834 

835```text theme={null}

836Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory.

837Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.

838```

839 

840Untuk sinyal fatal lainnya, dan untuk exit code 137 di macOS, script mencetak `Installation was killed before it could finish (exit code <N>)` dengan exit code yang sebenarnya dan menghilangkan penjelasan out-of-memory. Pesan ini berasal dari script install yang digunakan macOS dan Linux, yang juga mencakup instalasi di dalam WSL; script install Windows native tidak pernah mencetaknya. Sebelum v2.1.200, script keluar hanya dengan baris `Killed` polos dari shell.

841 

842**Yang harus dilakukan:**

843 

844* Hentikan proses lain untuk membebaskan memori, lalu jalankan ulang installer

845* Tambahkan swap space atau pindah ke instance yang lebih besar. Lihat [Install killed on low-memory Linux servers](#install-killed-on-low-memory-linux-servers) untuk perintah file swap.

846 

685<h3 id="install-hangs-in-docker">847<h3 id="install-hangs-in-docker">

686 Install hangs in Docker848 Install hangs in Docker

687</h3>849</h3>


690 852 

691**Solusi:**853**Solusi:**

692 854 

6931. **Atur working directory** sebelum menjalankan installer. Saat dijalankan dari `/`, installer memindai seluruh filesystem, yang menyebabkan penggunaan memori berlebihan. Mengatur `WORKDIR` membatasi pemindaian ke direktori kecil:8551. **Atur direktori kerja** sebelum menjalankan installer. Saat dijalankan dari `/`, installer memindai seluruh filesystem, yang menyebabkan penggunaan memori berlebihan. Mengatur `WORKDIR` membatasi pemindaian ke direktori kecil:

694 ```dockerfile theme={null}856 ```dockerfile theme={null}

695 WORKDIR /tmp857 WORKDIR /tmp

696 RUN curl -fsSL https://claude.ai/install.sh | bash858 RUN curl -fsSL https://claude.ai/install.sh | bash

697 ```859 ```

698 860 

6992. **Berikan Docker lebih banyak memori** jika menggunakan Docker Desktop. Buat container berbagi memori yang dialokasikan ke Docker Desktop virtual machine, jadi buka **Settings > Resources** di Docker Desktop, naikkan batas memori, dan jalankan ulang build.8612. **Berikan Docker lebih banyak memori** jika menggunakan Docker Desktop. Container build berbagi memori yang dialokasikan ke virtual machine Docker Desktop, jadi buka **Settings > Resources** di Docker Desktop, naikkan batas memori, dan jalankan ulang build.

700 862 

701<h3 id="raw-mode-is-not-supported-during-install">863<h3 id="raw-mode-is-not-supported-during-install">

702 `Raw mode is not supported` during install864 `Raw mode is not supported` during install


704 866 

705Ketika [server-managed settings](/docs/id/server-managed-settings) organisasi Anda menyertakan perubahan yang memerlukan [security approval](/docs/id/server-managed-settings#security-approval-dialogs), versi Claude Code sebelum 2.1.246 mencoba menampilkan dialog persetujuan selama `claude install`. Dialog memerlukan terminal di stdin. Ketika installer menjalankan `claude install` dari pipe, seperti yang dilakukan `curl -fsSL https://claude.ai/install.sh | bash`, stdin adalah pipe alih-alih terminal, jadi install gagal dengan error yang berisi `Raw mode is not supported`.867Ketika [server-managed settings](/docs/id/server-managed-settings) organisasi Anda menyertakan perubahan yang memerlukan [security approval](/docs/id/server-managed-settings#security-approval-dialogs), versi Claude Code sebelum 2.1.246 mencoba menampilkan dialog persetujuan selama `claude install`. Dialog memerlukan terminal di stdin. Ketika installer menjalankan `claude install` dari pipe, seperti yang dilakukan `curl -fsSL https://claude.ai/install.sh | bash`, stdin adalah pipe alih-alih terminal, jadi install gagal dengan error yang berisi `Raw mode is not supported`.

706 868 

707Claude Code v2.1.246 dan lebih baru tidak menampilkan dialog selama `claude install` atau `claude update`. Perintah berjalan dengan pengaturan yang Anda terakhir setujui, dan Claude Code menampilkan dialog di sesi interaktif Anda berikutnya. Jika konfigurasi startup organisasi Anda [menunggu pengambilan pengaturan](/docs/id/server-managed-settings#enforce-fail-closed-startup), seperti ketika mengatur `forceRemoteSettingsRefresh`, dialog masih muncul selama perintah ini, dan jalankan install dari pipe masih gagal.869Claude Code v2.1.246 dan lebih baru tidak menampilkan dialog selama `claude install` atau `claude update`. Perintah berjalan dengan pengaturan yang terakhir Anda setujui, dan Claude Code menampilkan dialog di sesi interaktif Anda berikutnya. Jika konfigurasi startup organisasi Anda [menunggu pengambilan pengaturan](/docs/id/server-managed-settings#enforce-fail-closed-startup), seperti ketika mengatur `forceRemoteSettingsRefresh`, dialog masih muncul selama perintah ini, dan install yang dijalankan dari pipe masih gagal.

708 870 

709Di setiap konfigurasi lain, menjalankan ulang installer melewati error ini, karena script menjalankan perintah `install` rilis terbaru bahkan ketika Anda memintanya untuk menginstal versi yang lebih lama. Jalankan ulang perintah untuk platform Anda:871Di setiap konfigurasi lain, menjalankan ulang installer melewati error ini, karena script menjalankan perintah `install` rilis terbaru bahkan ketika Anda memintanya untuk menginstal versi yang lebih lama. Jalankan ulang perintah untuk platform Anda:

710 872 


722 </Tab>884 </Tab>

723</Tabs>885</Tabs>

724 886 

725`claude --version` mencetak versi yang dijalankan ulang diinstal.887`claude --version` mencetak versi yang diinstal oleh eksekusi ulang tersebut.

726 888 

727<h3 id="claude-update-or-claude-doctor-hangs">889<h3 id="claude-update-or-claude-doctor-hangs">

728 `claude update` or `claude doctor` hangs890 `claude update` or `claude doctor` hangs


730 892 

731`claude update` dan `claude doctor` memindai file konfigurasi shell Anda untuk alias `claude` yang sudah usang: `~/.zshrc`, `~/.bashrc`, dan `~/.config/fish/config.fish`, plus di macOS yang pertama dari `~/.bash_profile`, `~/.bash_login`, atau `~/.profile` yang ada. Jika Anda mengatur `ZDOTDIR`, file Zsh adalah `$ZDOTDIR/.zshrc` sebagai gantinya. Ketika salah satu path tersebut adalah direktori, Claude Code melewatinya dan kedua perintah selesai secara normal. Sebelum v2.1.214, direktori di salah satu path tersebut membuat kedua perintah hang dan meninggalkan bagian System diagnostics dari `/status` kosong. `claude doctor` hang tanpa output; `claude update` hang tepat setelah mencetak `Checking for updates`.893`claude update` dan `claude doctor` memindai file konfigurasi shell Anda untuk alias `claude` yang sudah usang: `~/.zshrc`, `~/.bashrc`, dan `~/.config/fish/config.fish`, plus di macOS yang pertama dari `~/.bash_profile`, `~/.bash_login`, atau `~/.profile` yang ada. Jika Anda mengatur `ZDOTDIR`, file Zsh adalah `$ZDOTDIR/.zshrc` sebagai gantinya. Ketika salah satu path tersebut adalah direktori, Claude Code melewatinya dan kedua perintah selesai secara normal. Sebelum v2.1.214, direktori di salah satu path tersebut membuat kedua perintah hang dan meninggalkan bagian System diagnostics dari `/status` kosong. `claude doctor` hang tanpa output; `claude update` hang tepat setelah mencetak `Checking for updates`.

732 894 

733Jika Anda mengalami hang pada versi sebelumnya, temukan direktorinya. Dalam output perintah ini, baris yang dimulai dengan `d` menandai path itu sebagai direktori. Baris `No such file or directory` berarti tidak ada yang ada di path itu dan bukan penyebabnya:895Jika Anda mengalami hang pada versi sebelumnya, temukan direktorinya. Dalam output perintah ini, baris yang dimulai dengan `d` menandai path itu sebagai direktori. Baris `No such file or directory` berarti tidak ada apa pun di path itu dan bukan penyebabnya:

734 896 

735```bash theme={null}897```bash theme={null}

736ls -ld ~/.zshrc ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.config/fish/config.fish898ls -ld ~/.zshrc ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.config/fish/config.fish


742 Claude Desktop overrides the `claude` command on Windows904 Claude Desktop overrides the `claude` command on Windows

743</h3>905</h3>

744 906 

745Jika Anda menginstal versi Claude Desktop yang lebih lama, mungkin mendaftarkan `Claude.exe` di direktori `WindowsApps` yang mengambil prioritas PATH di atas Claude Code CLI. Menjalankan `claude` membuka Desktop app alih-alih CLI.907Jika Anda menginstal versi Claude Desktop yang lebih lama, aplikasi tersebut mungkin mendaftarkan `Claude.exe` di direktori `WindowsApps` yang mendapat prioritas PATH di atas Claude Code CLI. Menjalankan `claude` membuka Desktop app alih-alih CLI.

746 908 

747Perbarui Claude Desktop ke versi terbaru untuk memperbaiki masalah ini.909Perbarui Claude Desktop ke versi terbaru untuk memperbaiki masalah ini.

748 910 


756 918 

757**Untuk menginstal Git for Windows sebagai gantinya**, unduh dari [git-scm.com/downloads/win](https://git-scm.com/downloads/win). Selama setup, pilih "Add to PATH." Restart terminal Anda setelah menginstal. Menginstalnya mengaktifkan Bash tool, berguna saat bekerja dengan script dan tooling berbasis Bash.919**Untuk menginstal Git for Windows sebagai gantinya**, unduh dari [git-scm.com/downloads/win](https://git-scm.com/downloads/win). Selama setup, pilih "Add to PATH." Restart terminal Anda setelah menginstal. Menginstalnya mengaktifkan Bash tool, berguna saat bekerja dengan script dan tooling berbasis Bash.

758 920 

759**Jika Git sudah terinstal** tetapi Claude Code tidak dapat menemukannya, bandingkan lokasinya dengan tempat Claude Code memeriksa. Ketika `CLAUDE_CODE_GIT_BASH_PATH` tidak diatur, Claude Code mencari `bash.exe` dalam urutan ini:921**Jika Git sudah terinstal** tetapi Claude Code tidak dapat menemukannya, bandingkan lokasinya dengan tempat yang diperiksa Claude Code. Ketika `CLAUDE_CODE_GIT_BASH_PATH` tidak diatur, Claude Code mencari `bash.exe` dalam urutan ini:

760 922 

7611. Lokasi instalasi default `C:\Program Files\Git` dan `C:\Program Files (x86)\Git`.9231. Lokasi instalasi default `C:\Program Files\Git` dan `C:\Program Files (x86)\Git`.

7622. `git` di `PATH` Anda, menggunakan `bin\bash.exe` dari instalasi Git itu.9242. `git` di `PATH` Anda, menggunakan `bin\bash.exe` dari instalasi Git itu.

763 925 

764Di langkah 2, Claude Code melewati `git` yang berada di folder tempat Anda meluncurkan Claude Code, atau di bawahnya di path yang berisi `node_modules` atau folder virtual-environment seperti `.venv` atau `env`, misalnya `C:\dev\env\myproject\Git` ketika Anda meluncurkan dari `C:\dev\env\myproject`. Ini menjaga Claude Code dari menjalankan executable yang ditempatkan proyek di sana. Jika Git Anda berada di lokasi seperti itu, arahkan `CLAUDE_CODE_GIT_BASH_PATH` ke sana.926Di langkah 2, Claude Code melewati `git` yang berada di folder tempat Anda meluncurkan Claude Code, atau di bawahnya di path yang berisi `node_modules` atau folder virtual-environment seperti `.venv` atau `env`, misalnya `C:\dev\env\myproject\Git` ketika Anda meluncurkan dari `C:\dev\env\myproject`. Ini mencegah Claude Code menjalankan executable yang ditempatkan proyek di sana. Jika Git Anda berada di lokasi seperti itu, arahkan `CLAUDE_CODE_GIT_BASH_PATH` ke sana.

765 927 

766**Untuk menunjukkan Claude Code ke instalasi Git tertentu**, temukannya dengan menjalankan `where.exe git` di PowerShell, kemudian atur path `bin\bash.exe` dari instalasi itu sebagai `CLAUDE_CODE_GIT_BASH_PATH` di [settings.json file](/docs/id/settings) Anda:928**Untuk mengarahkan Claude Code ke instalasi Git tertentu**, temukan dengan menjalankan `where.exe git` di PowerShell, kemudian atur path `bin\bash.exe` dari instalasi itu sebagai `CLAUDE_CODE_GIT_BASH_PATH` di [file settings.json](/docs/id/settings) Anda:

767 929 

768```json theme={null}930```json theme={null}

769{931{


773}935}

774```936```

775 937 

776**Jika `CLAUDE_CODE_GIT_BASH_PATH` diatur ke path yang benar dan file ada** tetapi Claude Code masih tidak menggunakannya, periksa nama file terlebih dahulu. Claude Code hanya menerima file bernama `bash.exe`, `sh.exe`, `bash`, atau `sh`; dengan nama lain, seperti launcher `git-bash.exe` Git for Windows, itu mengabaikan variabel dan auto-detects Git Bash seolah-olah tidak diatur, mencatat warning yang terlihat dengan `--debug`. Path yang tidak ada mendapat fallback dan warning yang sama. Sebelum v2.1.219, Claude Code menggunakan file yang ada sebagai shell tanpa memeriksa namanya, dan keluar saat startup dengan `Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH path` ketika path tidak ada.938**Jika `CLAUDE_CODE_GIT_BASH_PATH` diatur ke path yang benar dan file ada** tetapi Claude Code masih tidak menggunakannya, periksa nama file terlebih dahulu. Claude Code hanya menerima file bernama `bash.exe`, `sh.exe`, `bash`, atau `sh`; dengan nama lain, seperti launcher `git-bash.exe` milik Git for Windows, Claude Code mengabaikan variabel dan mendeteksi Git Bash secara otomatis seolah-olah variabel tidak diatur, sambil mencatat warning yang terlihat dengan `--debug`. Path yang tidak ada mendapat fallback dan warning yang sama. Sebelum v2.1.219, Claude Code menggunakan file apa pun yang ada sebagai shell tanpa memeriksa namanya, dan keluar saat startup dengan `Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH path` ketika path tidak ada.

777 939 

778Jika nama file benar, software endpoint security seperti AppLocker, Group Policy software restriction policies, atau EDR agents mungkin mengganggu. Minta tim IT Anda untuk allowlist `claude.exe` dan proses yang dijalankannya, termasuk `cmd.exe` dan `bash.exe`, dalam kebijakan endpoint protection Anda.940Jika nama file benar, software endpoint security seperti AppLocker, Group Policy software restriction policies, atau EDR agent mungkin mengganggu. Minta tim IT Anda untuk memasukkan `claude.exe` dan proses yang dijalankannya, termasuk `cmd.exe` dan `bash.exe`, ke allowlist dalam kebijakan endpoint protection Anda.

779 941 

780<h3 id="claude-code-does-not-support-32-bit-windows">942<h3 id="claude-code-does-not-support-32-bit-windows">

781 Claude Code does not support 32-bit Windows943 Claude Code does not support 32-bit Windows


795 Linux musl or glibc binary mismatch957 Linux musl or glibc binary mismatch

796</h3>958</h3>

797 959 

798Jika Anda melihat error tentang shared libraries yang hilang seperti `libstdc++.so.6` atau `libgcc_s.so.1` setelah instalasi, installer mungkin telah mengunduh binary variant yang salah untuk sistem Anda.960Jika Anda melihat error tentang shared libraries yang hilang seperti `libstdc++.so.6` atau `libgcc_s.so.1` setelah instalasi, installer mungkin telah mengunduh varian binary yang salah untuk sistem Anda.

799 961 

800```text theme={null}962```text theme={null}

801Error loading shared library libstdc++.so.6: No such file or directory963Error loading shared library libstdc++.so.6: No such file or directory


811 ```973 ```

812 Output yang menyebutkan `GNU libc` atau `GLIBC` berarti glibc. Output yang menyebutkan `musl` berarti musl.974 Output yang menyebutkan `GNU libc` atau `GLIBC` berarti glibc. Output yang menyebutkan `musl` berarti musl.

813 975 

8142. **Jika Anda berada di glibc tetapi mendapat binary musl**, hapus instalasi dan instal ulang. Anda juga dapat secara manual mengunduh binary yang benar menggunakan manifest di `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. File [GitHub issue](https://github.com/anthropics/claude-code/issues) dengan output `ldd --version` dan `ls /lib/libc.musl*`.9762. **Jika Anda berada di glibc tetapi mendapat binary musl**, hapus instalasi dan instal ulang. Anda juga dapat secara manual mengunduh binary yang benar menggunakan manifest di `https://downloads.claude.ai/claude-code-releases/{VERSION}/manifest.json`. Buat [GitHub issue](https://github.com/anthropics/claude-code/issues) dengan output `ldd --version` dan `ls /lib/libc.musl*`.

815 977 

8163. **Jika Anda benar-benar di musl**, seperti Alpine Linux, instal paket yang diperlukan:9783. **Jika Anda benar-benar di musl**, seperti Alpine Linux, instal paket yang diperlukan:

817 ```bash theme={null}979 ```bash theme={null}


823 `Illegal instruction`985 `Illegal instruction`

824</h3>986</h3>

825 987 

826Jika menjalankan `claude` atau installer mencetak `Illegal instruction`, binary native menggunakan CPU instructions yang processor Anda tidak dukung. Ada dua penyebab yang berbeda.988Jika menjalankan `claude` atau installer mencetak `Illegal instruction`, binary native menggunakan instruksi CPU yang tidak didukung prosesor Anda. Ada dua penyebab yang berbeda.

827 989 

828**Architecture mismatch.** Installer mengunduh binary yang salah, misalnya x86 di server ARM. Periksa dengan `uname -m` di macOS atau Linux, atau `$env:PROCESSOR_ARCHITECTURE` di PowerShell. Jika hasilnya tidak cocok dengan binary yang Anda terima, [file GitHub issue](https://github.com/anthropics/claude-code/issues) dengan output.990**Ketidakcocokan arsitektur.** Installer mengunduh binary yang salah, misalnya x86 di server ARM. Periksa dengan `uname -m` di macOS atau Linux, atau `$env:PROCESSOR_ARCHITECTURE` di PowerShell. Jika hasilnya tidak cocok dengan binary yang Anda terima, [buat GitHub issue](https://github.com/anthropics/claude-code/issues) dengan output tersebut.

829 991 

830**Missing AVX instruction set.** Jika arsitektur Anda benar tetapi Anda masih melihat `Illegal instruction`, CPU Anda mungkin tidak memiliki AVX atau instruction lain yang binary perlukan. Ini mempengaruhi kira-kira processor Intel dan AMD pre-2013, dan virtual machines di mana hypervisor tidak melewatkan AVX ke guest.992**Set instruksi AVX tidak ada.** Jika arsitektur Anda benar tetapi Anda masih melihat `Illegal instruction`, CPU Anda mungkin tidak memiliki AVX atau instruksi lain yang diperlukan binary. Ini mempengaruhi kira-kira prosesor Intel dan AMD sebelum 2013, dan virtual machine di mana hypervisor tidak meneruskan AVX ke guest.

831 993 

832Di VPS atau VM, jalankan `grep -m1 -ow avx /proc/cpuinfo`; hasil kosong berarti AVX tidak tersedia untuk guest.994Di VPS atau VM, jalankan `grep -m1 -ow avx /proc/cpuinfo`; hasil kosong berarti AVX tidak tersedia untuk guest.

833 995 

834Tidak ada native-binary workaround; track [issue #50384](https://github.com/anthropics/claude-code/issues/50384) untuk status, dan sertakan model CPU Anda dari `grep -m1 "model name" /proc/cpuinfo` di Linux atau `sysctl -n machdep.cpu.brand_string` di macOS saat melaporkan.996Tidak ada workaround untuk binary native; pantau [issue #50384](https://github.com/anthropics/claude-code/issues/50384) untuk status, dan sertakan model CPU Anda dari `grep -m1 "model name" /proc/cpuinfo` di Linux atau `sysctl -n machdep.cpu.brand_string` di macOS saat melaporkan.

835 997 

836Metode instalasi alternatif mengunduh binary native yang sama dan tidak akan menyelesaikan penyebab apa pun.998Metode instalasi alternatif mengunduh binary native yang sama dan tidak akan menyelesaikan penyebab mana pun.

837 999 

838<h3 id="dyld-cannot-load-on-macos">1000<h3 id="dyld-cannot-load-on-macos">

839 `dyld: cannot load` on macOS1001 `dyld: cannot load` on macOS


841 1003 

842Jika Anda melihat `dyld: Symbol not found`, `dyld: cannot load`, atau `Abort trap: 6` selama instalasi, binary tidak kompatibel dengan versi macOS atau hardware Anda.1004Jika Anda melihat `dyld: Symbol not found`, `dyld: cannot load`, atau `Abort trap: 6` selama instalasi, binary tidak kompatibel dengan versi macOS atau hardware Anda.

843 1005 

844Error `Symbol not found` yang mereferensikan `libicucore` berarti versi macOS Anda lebih lama dari yang binary dukung:1006Error `Symbol not found` yang mereferensikan `libicucore` berarti versi macOS Anda lebih lama dari yang didukung binary:

845 1007 

846```text theme={null}1008```text theme={null}

847dyld: Symbol not found: _ubrk_clone1009dyld: Symbol not found: _ubrk_clone


849 Expected in: /usr/lib/libicucore.A.dylib1011 Expected in: /usr/lib/libicucore.A.dylib

850```1012```

851 1013 

852Loader dapat sebagai gantinya menolak load commands binary, yang juga berarti versi macOS Anda terlalu lama:1014Loader dapat juga menolak load commands binary, yang juga berarti versi macOS Anda terlalu lama:

853 1015 

854```text theme={null}1016```text theme={null}

855dyld: cannot load 'claude-2.1.42-darwin-x64' (load command 0x80000034 is unknown)1017dyld: cannot load 'claude-2.1.42-darwin-x64' (load command 0x80000034 is unknown)


860 1022 

8611. **Periksa versi macOS Anda**: Claude Code memerlukan macOS 13.0 atau lebih baru. Buka menu Apple dan pilih About This Mac untuk memeriksa versi Anda.10231. **Periksa versi macOS Anda**: Claude Code memerlukan macOS 13.0 atau lebih baru. Buka menu Apple dan pilih About This Mac untuk memeriksa versi Anda.

862 1024 

8632. **Perbarui macOS** jika Anda berada di versi yang lebih lama. Binary menggunakan load commands dan system libraries yang versi macOS yang lebih lama tidak dukung. Metode instalasi alternatif seperti Homebrew mengunduh binary yang sama dan tidak akan menyelesaikan error ini.10252. **Perbarui macOS** jika Anda berada di versi yang lebih lama. Binary menggunakan load commands dan system libraries yang tidak didukung versi macOS yang lebih lama. Metode instalasi alternatif seperti Homebrew mengunduh binary yang sama dan tidak akan menyelesaikan error ini.

864 1026 

865<h3 id="bus-error-while-a-session-is-running">1027<h3 id="bus-error-while-a-session-is-running">

866 `Bus error` while a session is running1028 `Bus error` while a session is running


876 `Exec format error` on WSL11038 `Exec format error` on WSL1

877</h3>1039</h3>

878 1040 

879Jika menjalankan `claude` di WSL mencetak `cannot execute binary file: Exec format error`, Anda berada di WSL1 dan mengalami native-binary regression yang dikenal yang dilacak di [issue #38788](https://github.com/anthropics/claude-code/issues/38788). Program headers binary berubah dengan cara yang WSL1's loader tidak dapat menangani.1041Jika menjalankan `claude` di WSL mencetak `cannot execute binary file: Exec format error`, Anda berada di WSL1 dan mengalami regresi binary native yang sudah diketahui dan dilacak di [issue #38788](https://github.com/anthropics/claude-code/issues/38788). Program headers binary berubah dengan cara yang tidak dapat ditangani oleh loader WSL1.

880 1042 

881Perbaikan paling bersih adalah mengonversi distribusi Anda ke WSL2 dari PowerShell:1043Perbaikan paling bersih adalah mengonversi distribusi Anda ke WSL2 dari PowerShell:

882 1044 


900 1062 

901Masalah ini berlaku jika Anda menginstal Claude Code dengan `npm install -g` di dalam WSL. Jika Anda menggunakan [native installer](/docs/id/setup), lewati bagian ini.1063Masalah ini berlaku jika Anda menginstal Claude Code dengan `npm install -g` di dalam WSL. Jika Anda menggunakan [native installer](/docs/id/setup), lewati bagian ini.

902 1064 

903**OS atau platform detection issues.** Jika npm melaporkan ketidakcocokan platform selama instalasi, WSL mungkin mengambil Windows `npm`. Jalankan `npm config set os linux` terlebih dahulu, kemudian instal dengan `npm install -g @anthropic-ai/claude-code --force`. Jangan gunakan `sudo`.1065**Masalah deteksi OS atau platform.** Jika npm melaporkan ketidakcocokan platform selama instalasi, WSL mungkin mengambil `npm` Windows. Jalankan `npm config set os linux` terlebih dahulu, kemudian instal dengan `npm install -g @anthropic-ai/claude-code --force`. Jangan gunakan `sudo`.

904 1066 

905**`exec: node: not found` saat menjalankan `claude`.** Lingkungan WSL Anda mungkin menggunakan instalasi Windows Node.js. Konfirmasi dengan `which npm` dan `which node`: path yang dimulai dengan `/mnt/c/` adalah binary Windows, sementara path Linux dimulai dengan `/usr/`. Untuk memperbaiki ini, instal Node melalui package manager distribusi Linux Anda atau melalui [`nvm`](https://github.com/nvm-sh/nvm).1067**`exec: node: not found` saat menjalankan `claude`.** Lingkungan WSL Anda mungkin menggunakan instalasi Windows Node.js. Konfirmasi dengan `which npm` dan `which node`: path yang dimulai dengan `/mnt/c/` adalah binary Windows, sementara path Linux dimulai dengan `/usr/`. Untuk memperbaiki ini, instal Node melalui package manager distribusi Linux Anda atau melalui [`nvm`](https://github.com/nvm-sh/nvm).

906 1068 

907**nvm version conflicts.** Jika Anda memiliki nvm terinstal di WSL dan Windows, beralih versi Node di WSL mungkin rusak karena WSL mengimpor Windows PATH secara default dan Windows nvm mengambil prioritas. Penyebab paling umum adalah nvm tidak dimuat di shell Anda. Tambahkan nvm loader ke `~/.bashrc` atau `~/.zshrc`:1069**Konflik versi nvm.** Jika Anda memiliki nvm terinstal di WSL dan Windows, beralih versi Node di WSL mungkin rusak karena WSL mengimpor PATH Windows secara default dan nvm Windows mendapat prioritas. Penyebab paling umum adalah nvm tidak dimuat di shell Anda. Tambahkan nvm loader ke `~/.bashrc` atau `~/.zshrc`:

908 1070 

909```bash theme={null}1071```bash theme={null}

910export NVM_DIR="$HOME/.nvm"1072export NVM_DIR="$HOME/.nvm"


918source ~/.nvm/nvm.sh1080source ~/.nvm/nvm.sh

919```1081```

920 1082 

921Jika nvm dimuat tetapi path Windows masih mengambil prioritas, tambahkan path Node Linux Anda secara eksplisit:1083Jika nvm dimuat tetapi path Windows masih mendapat prioritas, tambahkan path Node Linux Anda di depan secara eksplisit:

922 1084 

923```bash theme={null}1085```bash theme={null}

924export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"1086export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"

925```1087```

926 1088 

927<Warning>1089<Warning>

928 Hindari menonaktifkan Windows PATH importing melalui `appendWindowsPath = false` karena ini merusak kemampuan untuk memanggil Windows executables dari WSL. Demikian pula, hindari menguninstall Node.js dari Windows jika Anda menggunakannya untuk pengembangan Windows.1090 Hindari menonaktifkan impor PATH Windows melalui `appendWindowsPath = false` karena ini merusak kemampuan untuk memanggil executable Windows dari WSL. Demikian pula, hindari menghapus instalasi Node.js dari Windows jika Anda menggunakannya untuk pengembangan Windows.

929</Warning>1091</Warning>

930 1092 

931<h3 id="permission-errors-during-installation">1093<h3 id="permission-errors-during-installation">

932 Permission errors during installation1094 Permission errors during installation

933</h3>1095</h3>

934 1096 

935Jika native installer gagal dengan permission errors, direktori target mungkin tidak dapat ditulis. Lihat [Check directory permissions](#check-directory-permissions).1097Jika native installer gagal dengan error permission, direktori target mungkin tidak dapat ditulis. Lihat [Check directory permissions](#check-directory-permissions).

936 1098 

937Jika Anda sebelumnya menginstal dengan npm dan mengalami npm-specific permission errors, beralih ke native installer:1099Jika Anda sebelumnya menginstal dengan npm dan mengalami error permission khusus npm, beralih ke native installer:

938 1100 

939```bash theme={null}1101```bash theme={null}

940curl -fsSL https://claude.ai/install.sh | bash1102curl -fsSL https://claude.ai/install.sh | bash


944 Native binary not found after npm install1106 Native binary not found after npm install

945</h3>1107</h3>

946 1108 

947Paket npm `@anthropic-ai/claude-code` mengunduh binary native sebagai per-platform optional dependency, seperti `@anthropic-ai/claude-code-darwin-arm64`. npm kemudian menjalankan postinstall script paket, yang menyalin binary itu ke tempat sebagai perintah `claude`; sampai itu berjalan, `claude` adalah script placeholder. Jika baik download atau langkah postinstall dilewati, placeholder tetap ada, dan menjalankan `claude` di macOS dan Linux mencetak:1109Paket npm `@anthropic-ai/claude-code` mengunduh binary native sebagai optional dependency per platform, seperti `@anthropic-ai/claude-code-darwin-arm64`. npm kemudian menjalankan postinstall script paket, yang menyalin binary itu ke tempatnya sebagai perintah `claude`; sampai script itu berjalan, `claude` adalah script placeholder. Jika download atau langkah postinstall dilewati, placeholder tetap ada, dan menjalankan `claude` di macOS dan Linux mencetak:

948 1110 

949```text theme={null}1111```text theme={null}

950Error: claude native binary not installed.1112Error: claude native binary not installed.


963 1125 

964Periksa penyebab berikut:1126Periksa penyebab berikut:

965 1127 

966* **Optional dependencies dinonaktifkan.** Hapus `--omit=optional` dari perintah npm install Anda, `--no-optional` dari pnpm, atau `--ignore-optional` dari yarn, dan periksa bahwa `.npmrc` tidak mengatur `optional=false`. Kemudian instal ulang. Binary native disampaikan hanya sebagai optional dependency, jadi tidak ada JavaScript fallback jika dilewati, dan menjalankan `install.cjs` lagi tidak dapat menempatkan binary yang tidak pernah diunduh.1128* **Optional dependencies dinonaktifkan.** Hapus `--omit=optional` dari perintah npm install Anda, `--no-optional` dari pnpm, atau `--ignore-optional` dari yarn, dan periksa bahwa `.npmrc` tidak mengatur `optional=false`. Kemudian instal ulang. Binary native disampaikan hanya sebagai optional dependency, jadi tidak ada fallback JavaScript jika dilewati, dan menjalankan `install.cjs` lagi tidak dapat menempatkan binary yang tidak pernah diunduh.

967* **Install scripts dinonaktifkan.** `--ignore-scripts` dan beberapa konfigurasi pnpm melewati langkah postinstall tetapi masih mengunduh paket platform. Jalankan `node node_modules/@anthropic-ai/claude-code/install.cjs` seperti yang disarankan pesan, atau instal ulang tanpa flag. Jika postinstall tidak dapat berjalan di lingkungan Anda sama sekali, `node node_modules/@anthropic-ai/claude-code/cli-wrapper.cjs` menemukan paket yang diunduh dan meluncurkannya, dengan biaya proses Node tambahan di setiap start. Jika wrapper mencetak `Could not find native binary package` sebagai gantinya, paket platform tidak pernah diunduh, jadi perbaiki penyebab optional-dependencies di atas terlebih dahulu.1129* **Install scripts dinonaktifkan.** `--ignore-scripts` dan beberapa konfigurasi pnpm melewati langkah postinstall tetapi masih mengunduh paket platform. Jalankan `node node_modules/@anthropic-ai/claude-code/install.cjs` seperti yang disarankan pesan, atau instal ulang tanpa flag. Jika postinstall tidak dapat berjalan di lingkungan Anda sama sekali, `node node_modules/@anthropic-ai/claude-code/cli-wrapper.cjs` menemukan paket yang diunduh dan meluncurkannya, dengan biaya proses Node tambahan di setiap start. Jika wrapper mencetak `Could not find native binary package` sebagai gantinya, paket platform tidak pernah diunduh, jadi perbaiki penyebab optional-dependencies di atas terlebih dahulu.

968* **Platform tidak didukung.** Binary prebuilt dipublikasikan untuk `darwin-arm64`, `darwin-x64`, `linux-x64`, `linux-arm64`, `linux-x64-musl`, `linux-arm64-musl`, `win32-x64`, dan `win32-arm64`. Claude Code tidak mengirimkan binary untuk platform lain; lihat [system requirements](/docs/id/setup#system-requirements). Di FreeBSD, installer melaporkan platform sebagai tidak didukung. Sebelum v2.1.205, installer memperlakukan FreeBSD sebagai Linux dan mengunduh binary yang tidak dapat dijalankan.1130* **Platform tidak didukung.** Binary prebuilt dipublikasikan untuk `darwin-arm64`, `darwin-x64`, `linux-x64`, `linux-arm64`, `linux-x64-musl`, `linux-arm64-musl`, `win32-x64`, dan `win32-arm64`. Claude Code tidak menyediakan binary untuk platform lain; lihat [system requirements](/docs/id/setup#system-requirements). Di FreeBSD, installer melaporkan platform sebagai tidak didukung. Sebelum v2.1.205, installer memperlakukan FreeBSD sebagai Linux dan mengunduh binary yang tidak dapat dijalankan.

969* **Corporate npm mirror kehilangan paket platform.** Pastikan registry Anda mencerminkan semua delapan paket `@anthropic-ai/claude-code-*` platform selain paket meta.1131* **Mirror npm perusahaan tidak memiliki paket platform.** Pastikan registry Anda mencerminkan kedelapan paket platform `@anthropic-ai/claude-code-*` selain paket meta.

970 1132 

971<h3 id="npm-enotempty-during-update-or-reinstall">1133<h3 id="npm-enotempty-during-update-or-reinstall">

972 npm `ENOTEMPTY` error during update or reinstall1134 npm `ENOTEMPTY` error during update or reinstall


983npm error ENOTEMPTY: directory not empty, rename '...'1145npm error ENOTEMPTY: directory not empty, rename '...'

984```1146```

985 1147 

986Baris `npm error path` menamai direktori yang npm tidak dapat pindahkan. Hapus direktori itu dan direktori `.claude-code-*` leftover apa pun di sebelahnya, yang jalankan terputus sebelumnya dapat tinggalkan. Perintah di bawah menemukan direktori paket global Anda dengan `npm root -g`; jika direktori yang baris `npm error path` namai tidak berada di bawah direktori yang `npm root -g` cetak, misalnya karena Anda beralih versi Node dengan nvm, hapus direktori yang error namai sebagai gantinya:1148Baris `npm error path` menyebutkan direktori yang tidak dapat dipindahkan npm. Hapus direktori itu dan direktori `.claude-code-*` sisa apa pun di sebelahnya, yang dapat ditinggalkan oleh eksekusi sebelumnya yang terputus. Perintah di bawah menemukan direktori paket global Anda dengan `npm root -g`; jika direktori yang disebutkan baris `npm error path` tidak berada di bawah direktori yang dicetak `npm root -g`, misalnya karena Anda beralih versi Node dengan nvm, hapus direktori yang disebutkan error sebagai gantinya:

987 1149 

988<Tabs>1150<Tabs>

989 <Tab title="macOS/Linux">1151 <Tab title="macOS/Linux">


991 rm -rf "$(npm root -g)/@anthropic-ai/claude-code"1153 rm -rf "$(npm root -g)/@anthropic-ai/claude-code"

992 ```1154 ```

993 1155 

994 Kemudian hapus direktori temp leftover apa pun. Jika zsh mencetak `no matches found`, tidak ada yang dihapus:1156 Kemudian hapus direktori temp sisa apa pun. Jika Zsh mencetak `no matches found`, tidak ada yang perlu dihapus:

995 1157 

996 ```bash theme={null}1158 ```bash theme={null}

997 rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*1159 rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*

Details

11| Gejala | Buka |11| Gejala | Buka |

12| :- | :- |12| :- | :- |

13| `command not found`, instalasi gagal, masalah PATH, `EACCES`, kesalahan TLS | [Troubleshoot installation and login](/docs/id/troubleshoot-install) |13| `command not found`, instalasi gagal, masalah PATH, `EACCES`, kesalahan TLS | [Troubleshoot installation and login](/docs/id/troubleshoot-install) |

14| Pembaruan atau instalasi unduhan gagal dengan `The connection dropped while downloading the update` atau `aborted` | [Error reference](/docs/id/errors#the-connection-dropped-while-downloading-the-update) |14| Pembaruan atau instalasi unduhan gagal dengan `The connection dropped while downloading the update` atau `aborted` | [Troubleshoot installation and login](/docs/id/troubleshoot-install#the-connection-dropped-while-downloading-the-update) |

15| Loop login, kesalahan OAuth, `403 Forbidden`, "organization disabled", kredensial Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry | [Troubleshoot installation and login](/docs/id/troubleshoot-install#login-and-authentication) |15| Loop login, kesalahan OAuth, `403 Forbidden`, "organization disabled", kredensial Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry | [Troubleshoot installation and login](/docs/id/troubleshoot-install#login-and-authentication) |

16| Pengaturan tidak diterapkan, hooks tidak berfungsi, server MCP tidak dimuat | [Debug your configuration](/docs/id/debug-your-config) |16| Pengaturan tidak diterapkan, hooks tidak berfungsi, server MCP tidak dimuat | [Debug your configuration](/docs/id/debug-your-config) |

17| Sesi dimulai dalam mode otomatis, atau Claude mengedit file dan menjalankan perintah tanpa bertanya | [Which mode a session starts in](/docs/id/permission-modes#which-mode-a-session-starts-in) |17| Sesi dimulai dalam mode otomatis, atau Claude mengedit file dan menjalankan perintah tanpa bertanya | [Which mode a session starts in](/docs/id/permission-modes#which-mode-a-session-starts-in) |

ultrareview.md +6 −6

Details

56 Tinjau pull request56 Tinjau pull request

57</h3>57</h3>

58 58 

59Untuk meninjau pull request GitHub sebagai gantinya dari cabang lokal, teruskan nomor PR:59Untuk meninjau pull request di `github.com` alih-alih branch lokal, teruskan nomor PR:

60 60 

61```text theme={null}61```text theme={null}

62/code-review ultra 123462/code-review ultra 1234


64 64 

65Perintah juga menerima `#1234`, `PR 1234`, dan URL PR yang ditempel; URL yang ditempel harus menunjuk ke repositori di direktori saat ini Anda.65Perintah juga menerima `#1234`, `PR 1234`, dan URL PR yang ditempel; URL yang ditempel harus menunjuk ke repositori di direktori saat ini Anda.

66 66 

67Dalam mode PR, sandbox jarak jauh mengkloning pull request langsung dari host daripada membundel pohon kerja lokal Anda. Mode PR bekerja dengan repositori di `github.com` dan pada instans [GitHub Enterprise Server](/docs/id/github-enterprise-server) yang telah dihubungkan oleh Owner ke Claude Code.67Mode PR memerlukan repositori di `github.com`. Untuk repositori pada instans [GitHub Enterprise Server](/docs/id/github-enterprise-server), jalankan `/code-review ultra` tanpa nomor PR untuk meninjau branch lokal Anda sebagai gantinya.

68 68 

69Untuk repositori di `github.com`, sandbox mengkloning dengan akun GitHub yang terhubung ke akun Claude Anda, jadi akun harus dapat membaca repositori PR.69Dalam mode PR, sandbox cloud mengkloning pull request dari `github.com` alih-alih mengunggah pohon kerja Anda. Sandbox menggunakan akun GitHub yang terhubung ke akun Claude Anda, jadi akun tersebut memerlukan akses baca ke repositori.

70 70 

71Jalankan [`/web-setup`](/docs/id/web-quickstart#connect-from-your-terminal) untuk menghubungkan login GitHub CLI Anda ke akun Claude Anda.71Jalankan [`/web-setup`](/docs/id/web-quickstart#connect-from-your-terminal) untuk menghubungkan login GitHub CLI Anda ke akun Claude Anda.

72 72 


74 Posting temuan ke pull request74 Posting temuan ke pull request

75</h3>75</h3>

76 76 

77Pada Claude Code v2.1.227 atau lebih baru, ketika Anda meninjau pull request di `github.com`, Anda dapat membuat Claude memposting temuan yang selesai ke PR sebagai komentar polos tunggal dari akun GitHub Anda sendiri. Komentar bukan tinjauan atau persetujuan, dan berakhir dengan catatan "Generated by Claude Code". Ketika Anda meninjau cabang atau pull request GitHub Enterprise Server, Claude Code menampilkan temuan di sesi Anda saja.77Pada Claude Code v2.1.227 atau lebih baru, ketika Anda meninjau pull request di `github.com`, Anda dapat membuat Claude memposting temuan yang selesai ke PR sebagai komentar polos tunggal dari akun GitHub Anda sendiri. Komentar bukan tinjauan atau persetujuan, dan berakhir dengan catatan "Generated by Claude Code". Ketika Anda meninjau branch, Claude Code menampilkan temuan di sesi Anda saja.

78 78 

79Claude Code tidak pernah memposting kecuali Anda memilih untuk melakukannya pada run itu, dan `--no-post` adalah default. Posting adalah pilihan yang Anda buat untuk setiap run:79Claude Code tidak pernah memposting kecuali Anda memilih untuk melakukannya pada run itu, dan `--no-post` adalah default. Posting adalah pilihan yang Anda buat untuk setiap run:

80 80 


106Claude Code memperlakukan teks Anda sebagai catatan hanya ketika memiliki lebih dari satu kata dan bukan nama cabang atau referensi PR. Ini membaca satu kata sebagai nama cabang atau referensi PR, jadi nama cabang yang salah ketik mendapat kesalahan cabang terdekat dari [Tinjau terhadap basis yang berbeda](#review-against-a-different-base) sebagai gantinya meluncurkan dengan catatan. Jika teks Anda menggabungkan referensi PR dengan kata-kata lain, seperti `check PR 123 again`, Claude Code juga tidak meluncurkan; itu meminta Anda untuk menjalankan kembali dengan nomor PR saja untuk meninjau PR itu, atau tanpa referensi untuk meninjau cabang saat ini Anda.106Claude Code memperlakukan teks Anda sebagai catatan hanya ketika memiliki lebih dari satu kata dan bukan nama cabang atau referensi PR. Ini membaca satu kata sebagai nama cabang atau referensi PR, jadi nama cabang yang salah ketik mendapat kesalahan cabang terdekat dari [Tinjau terhadap basis yang berbeda](#review-against-a-different-base) sebagai gantinya meluncurkan dengan catatan. Jika teks Anda menggabungkan referensi PR dengan kata-kata lain, seperti `check PR 123 again`, Claude Code juga tidak meluncurkan; itu meminta Anda untuk menjalankan kembali dengan nomor PR saja untuk meninjau PR itu, atau tanpa referensi untuk meninjau cabang saat ini Anda.

107 107 

108<Tip>108<Tip>

109 Jika repositori Anda terlalu besar untuk dibundel, Claude Code meminta Anda menggunakan mode PR sebagai gantinya. Dorong cabang Anda dan buka PR draft, kemudian jalankan `/code-review ultra <PR-number>`.109 Jika repositori Anda terlalu besar untuk dibundel, Claude Code meminta Anda menggunakan mode PR sebagai gantinya. Untuk repositori di `github.com`, push branch Anda dan buka PR draft, kemudian jalankan `/code-review ultra <PR-number>`.

110</Tip>110</Tip>

111 111 

112<h3 id="diff-limits-and-fallbacks">112<h3 id="diff-limits-and-fallbacks">


173claude ultrareview origin/main173claude ultrareview origin/main

174```174```

175 175 

176Tanpa argumen, subperintah meninjau perbedaan antara cabang saat ini Anda dan cabang default, dengan [fallback seluruh repositori](#diff-limits-and-fallbacks) yang sama seperti `/code-review ultra` ketika tidak ada merge base. Teruskan nomor PR untuk meninjau pull request, atau teruskan cabang dasar untuk meninjau terhadapnya; [penanganan cabang dasar](#review-against-a-different-base) cocok dengan perintah interaktif.176Tanpa argumen, subperintah meninjau diff antara branch Anda saat ini dan branch default, dengan [fallback seluruh repositori](#diff-limits-and-fallbacks) yang sama seperti `/code-review ultra` ketika tidak ada merge base. Teruskan nomor PR untuk [meninjau pull request di `github.com`](#review-a-pull-request), atau teruskan branch dasar untuk meninjau terhadapnya; [penanganan branch dasar](#review-against-a-different-base) cocok dengan perintah interaktif.

177 177 

178Anda menyetujui fallback seluruh repositori dan prompt penagihan serta syarat ketika Anda menjalankan subperintah, sehingga jalankan dimulai tanpa menunggu input. Menjalankannya sendiri adalah apa yang dihitung sebagai persetujuan. Ketika Claude menjalankan subperintah untuk Anda sebagai gantinya, misalnya melalui alat Bash, Claude Code menolak tinjauan seluruh repositori.178Anda menyetujui fallback seluruh repositori dan prompt penagihan serta syarat ketika Anda menjalankan subperintah, sehingga jalankan dimulai tanpa menunggu input. Menjalankannya sendiri adalah apa yang dihitung sebagai persetujuan. Ketika Claude menjalankan subperintah untuk Anda sebagai gantinya, misalnya melalui alat Bash, Claude Code menolak tinjauan seluruh repositori.

179 179 

vs-code.md +2 −0

Details

166* **Bookmarks**: arahkan kursor ke respons dan klik **Bookmark response** untuk menyimpannya, atau klik **Remove bookmark** pada respons yang disimpan untuk menghapusnya.166* **Bookmarks**: arahkan kursor ke respons dan klik **Bookmark response** untuk menyimpannya, atau klik **Remove bookmark** pada respons yang disimpan untuk menghapusnya.

167 167 

168 Untuk meninjau respons yang disimpan, buka panel Bookmarks: klik ikon bookmark di bagian atas panel Claude Code, pilih **Bookmarks** di bagian Context pada menu perintah, atau ketik `/bookmarks`. Memerlukan Claude Code v2.1.286 atau lebih baru.168 Untuk meninjau respons yang disimpan, buka panel Bookmarks: klik ikon bookmark di bagian atas panel Claude Code, pilih **Bookmarks** di bagian Context pada menu perintah, atau ketik `/bookmarks`. Memerlukan Claude Code v2.1.286 atau lebih baru.

169* **Files Claude sends you**: ketika sesi terhubung ke [Remote Control](/docs/id/remote-control#start-a-remote-control-session) dan Claude mengirimkan file kepada Anda dengan [tool `SendUserFile`](/docs/id/tools-reference), percakapan menampilkan baris seperti **Sent report.md, chart.png**. Klik nama file untuk membukanya di editor.

169* **Context indicator**: kotak prompt menunjukkan berapa banyak jendela konteks Claude yang Anda gunakan. Claude secara otomatis mengompres saat diperlukan, atau Anda dapat menjalankan `/compact` secara manual.170* **Context indicator**: kotak prompt menunjukkan berapa banyak jendela konteks Claude yang Anda gunakan. Claude secara otomatis mengompres saat diperlukan, atau Anda dapat menjalankan `/compact` secara manual.

170* **Prompt cache clock**: ikon jam di samping indikator konteks memperkirakan berapa banyak waktu [prompt cache](/docs/id/prompt-caching) percakapan yang tersisa sebelum kedaluwarsa. Ini menghitung mundur dari [lifetime](/docs/id/prompt-caching#cache-lifetime) cache lima menit atau satu jam, dan setiap respons yang menggunakan cache memulai ulang hitungan mundur. Terlepas dari pemadatan, [tindakan yang membatalkan cache](/docs/id/prompt-caching#actions-that-invalidate-the-cache) tidak mengatur ulang jam, jadi masih dapat menunjukkan menit yang tersisa setelah Anda beralih model.171* **Prompt cache clock**: ikon jam di samping indikator konteks memperkirakan berapa banyak waktu [prompt cache](/docs/id/prompt-caching) percakapan yang tersisa sebelum kedaluwarsa. Ini menghitung mundur dari [lifetime](/docs/id/prompt-caching#cache-lifetime) cache lima menit atau satu jam, dan setiap respons yang menggunakan cache memulai ulang hitungan mundur. Terlepas dari pemadatan, [tindakan yang membatalkan cache](/docs/id/prompt-caching#actions-that-invalidate-the-cache) tidak mengatur ulang jam, jadi masih dapat menunjukkan menit yang tersisa setelah Anda beralih model.

171 * Sampai hitungan mundur habis, ikon menunjukkan menit yang tersisa, seperti **12m**.172 * Sampai hitungan mundur habis, ikon menunjukkan menit yang tersisa, seperti **12m**.


597| `useCtrlEnterToSend` | `false` | Gunakan Ctrl/Cmd+Enter alih-alih Enter untuk mengirim prompt |598| `useCtrlEnterToSend` | `false` | Gunakan Ctrl/Cmd+Enter alih-alih Enter untuk mengirim prompt |

598| `scrollToBottomOnSend` | `true` | Gulir percakapan ke bawah saat Anda mengirim pesan. Ketika dimatikan, percakapan tetap berada di tempat Anda meninggalkannya. Memerlukan Claude Code v2.1.275 atau lebih baru |599| `scrollToBottomOnSend` | `true` | Gulir percakapan ke bawah saat Anda mengirim pesan. Ketika dimatikan, percakapan tetap berada di tempat Anda meninggalkannya. Memerlukan Claude Code v2.1.275 atau lebih baru |

599| `showMessageTimestamps` | `true` | Tampilkan kapan setiap pesan dikirim. Baris tanggal menandai tempat pergantian hari. Memerlukan Claude Code v2.1.284 atau lebih baru. Sebelum v2.1.290, nilai default-nya adalah `false` |600| `showMessageTimestamps` | `true` | Tampilkan kapan setiap pesan dikirim. Baris tanggal menandai tempat pergantian hari. Memerlukan Claude Code v2.1.284 atau lebih baru. Sebelum v2.1.290, nilai default-nya adalah `false` |

601| `spinnerVerbs` | `{"mode": "append", "verbs": []}` | Atur kata kerja yang dirotasi oleh spinner percakapan saat giliran berjalan, dengan field `mode` dan `verbs` yang sama seperti [`spinnerVerbs`](/docs/id/settings-reference#spinnerverbs) pada CLI. |

600| `enableNewConversationShortcut` | `false` | Aktifkan Cmd/Ctrl+N untuk memulai percakapan baru |602| `enableNewConversationShortcut` | `false` | Aktifkan Cmd/Ctrl+N untuk memulai percakapan baru |

601| `enableReopenClosedSessionShortcut` | `true` | Gunakan Cmd/Ctrl+Shift+T untuk membuka kembali tab sesi Claude yang paling baru ditutup. Ketika tab terakhir yang ditutup bukan sesi Claude, pintasan menjalankan perintah reopen-closed-editor normal VS Code. |603| `enableReopenClosedSessionShortcut` | `true` | Gunakan Cmd/Ctrl+Shift+T untuk membuka kembali tab sesi Claude yang paling baru ditutup. Ketika tab terakhir yang ditutup bukan sesi Claude, pintasan menjalankan perintah reopen-closed-editor normal VS Code. |

602| `archiveInactiveSessions` | `14` | [Arsipkan sesi secara otomatis](#resume-past-conversations) setelah jumlah hari tanpa aktivitas ini: `1`, `2`, `7`, atau `14`. Atur `0` untuk mematikannya. Memerlukan Claude Code v2.1.265 atau lebih baru |604| `archiveInactiveSessions` | `14` | [Arsipkan sesi secara otomatis](#resume-past-conversations) setelah jumlah hari tanpa aktivitas ini: `1`, `2`, `7`, atau `14`. Atur `0` untuk mematikannya. Memerlukan Claude Code v2.1.265 atau lebih baru |

workflows.md +27 −1

Details

354 354 

355Badan adalah JavaScript biasa dengan `await` tingkat atas. `agent()` menghasilkan satu subagen, `pipeline()` menjalankan satu per item dalam daftar, dan `parallel()` menjalankan serangkaian tugas agen pada waktu yang sama dan menunggu semuanya selesai.355Badan adalah JavaScript biasa dengan `await` tingkat atas. `agent()` menghasilkan satu subagen, `pipeline()` menjalankan satu per item dalam daftar, dan `parallel()` menjalankan serangkaian tugas agen pada waktu yang sama dan menunggu semuanya selesai.

356 356 

357Panggilan `agent()` diselesaikan ke `null` jika Anda menghentikannya di tengah-jalan atau mengalami kesalahan API yang tidak dapat dipulihkan. `pipeline()` menyimpan setiap `null` dalam array hasil, itulah mengapa contoh berakhir dengan `.filter(Boolean)` untuk menghapus entri tersebut.357Panggilan `agent()` diselesaikan ke `null` jika Anda menghentikannya di tengah-jalan atau mengalami kesalahan API yang tidak dapat dipulihkan. `pipeline()` menyimpan setiap `null` dalam array hasil, itulah mengapa contoh berakhir dengan `.filter(Boolean)` untuk menghapus entri tersebut, termasuk slot dari [agent yang macet pada setiap upaya](#when-an-agent-stalls-and-restarts).

358 358 

359Dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), prompt yang diteruskan skrip Anda ke `agent()` tidak dihitung sebagai permintaan dari Anda ketika pengklasifikasi meninjau tindakan subagen itu, karena Claude Code menandainya sebagai teks yang dihitung skrip.359Dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), prompt yang diteruskan skrip Anda ke `agent()` tidak dihitung sebagai permintaan dari Anda ketika pengklasifikasi meninjau tindakan subagen itu, karena Claude Code menandainya sebagai teks yang dihitung skrip.

360 360 


463* Batas direset dalam 24 jam. Batas mingguan dapat direset lebih jauh.463* Batas direset dalam 24 jam. Batas mingguan dapat direset lebih jauh.

464* Run belum menunggu dua kali. Ketika mencapai batas untuk ketiga kalinya, agen gagal.464* Run belum menunggu dua kali. Ketika mencapai batas untuk ketiga kalinya, agen gagal.

465 465 

466<h3 id="when-an-agent-stalls-and-restarts">

467 Ketika agent macet dan dimulai ulang

468</h3>

469 

470Agent yang outputnya berhenti datang cukup lama akan dimulai ulang dari prompt yang sama. Di [`/workflows`](#watch-the-run), namanya mendapat akhiran `(retry 1)` dan detailnya menampilkan `attempt 2 (stalled)`. Mulai ulang terjadi secara otomatis, jadi Anda tidak perlu melakukan apa pun.

471 

472Percobaan baru dimulai tanpa transkrip dari percobaan yang macet. File yang sudah diubah oleh percobaan yang macet tetap berubah, dan token yang dihabiskannya tetap masuk dalam total run. Jendela macet adalah berapa lama Claude Code menunggu output dari agent sebelum mengakhiri percobaan. Waktu yang dihabiskan agent untuk menunggu panggilan tool-nya sendiri atau [reset batas penggunaan](#when-a-run-hits-your-usage-limit) tidak dihitung dalam jendela macet.

473 

474Agent dimulai ulang paling banyak lima kali, termasuk mulai ulang yang Anda minta dengan `r`. Jika percobaan keenam juga macet, panggilan `agent()` gagal, dan awal pesan kesalahan menjelaskan alasannya:

475 

476* `agent stalled on all 6 attempts`: setiap percobaan melewati seluruh jendela tanpa output. Jika pekerjaan agent membuatnya diam selama itu, perpanjang jendelanya

477* `agent lost its reply on all 6 attempts`: stream respons setiap percobaan menjadi diam dan Claude Code berhenti menunggunya. Memperpanjang jendela macet tidak membantu, karena [streaming idle watchdog](/docs/id/network-config#streaming-idle-watchdogs) mengakhiri respons lebih dulu dan `CLAUDE_STREAM_IDLE_TIMEOUT_MS` mengatur timeout watchdog tersebut

478* `agent abandoned after 6 attempts`: percobaan berakhir dengan cara yang berbeda-beda, yang dicantumkan oleh pesan kesalahan secara berurutan

479 

480Untuk memberi agent lebih banyak waktu menghasilkan output sebelum jendela berakhir:

481 

482* **Satu agent**: teruskan `stallMs` dalam milidetik pada panggilan `agent()`-nya, seperti `agent(prompt, { stallMs: 1800000 })` untuk 30 menit

483* **Setiap agent**: atur [`CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS`](/docs/id/env-vars#variables), yang juga berlaku untuk subagent di luar alur kerja

484 

485Apakah run berlanjut setelah kegagalan tergantung pada cara skrip Anda memanggil agent:

486 

487* **Di dalam [`parallel()` atau `pipeline()`](#what-the-saved-script-looks-like)**: run berlanjut dengan `null` sebagai pengganti hasil agent

488* **Di-await secara langsung**: run berakhir dengan kesalahan tersebut

489 

490Untuk mencoba lagi, minta Claude untuk meluncurkan kembali alur kerja. [Lanjutkan setelah jeda](#resume-after-a-pause) menjelaskan apa yang berjalan lagi.

491 

466<h3 id="cost">492<h3 id="cost">

467 Biaya493 Biaya

468</h3>494</h3>

worktrees.md +1 −1

Details

104* **Pengalihan git**: Claude Code memblokir perintah Bash atau Monitor yang mengalihkan git ke checkout utama. Pengalihan dapat datang melalui `git -C`, `--git-dir`, variabel `GIT_DIR` atau `GIT_WORK_TREE`, atau `cd` ke checkout utama sebelum menjalankan git.104* **Pengalihan git**: Claude Code memblokir perintah Bash atau Monitor yang mengalihkan git ke checkout utama. Pengalihan dapat datang melalui `git -C`, `--git-dir`, variabel `GIT_DIR` atau `GIT_WORK_TREE`, atau `cd` ke checkout utama sebelum menjalankan git.

105* **Bentuk perintah**: Claude Code memblokir perintah Bash atau Monitor saat tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap berada di dalam worktree. Itu terjadi, misalnya, saat nama perintah dihitung saat runtime, saat sintaks tidak dapat diuraikan, atau saat ekspansi seperti `${!name}` atau `${ command; }` dapat menjalankan perintah yang teks tidak jelaskan. Claude Code memberi tahu Claude cara menulis ulang perintah yang ditolak, seperti membaginya menjadi perintah biasa yang terpisah. Anda tidak dapat mematikan pemeriksaan ini.105* **Bentuk perintah**: Claude Code memblokir perintah Bash atau Monitor saat tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap berada di dalam worktree. Itu terjadi, misalnya, saat nama perintah dihitung saat runtime, saat sintaks tidak dapat diuraikan, atau saat ekspansi seperti `${!name}` atau `${ command; }` dapat menjalankan perintah yang teks tidak jelaskan. Claude Code memberi tahu Claude cara menulis ulang perintah yang ditolak, seperti membaginya menjadi perintah biasa yang terpisah. Anda tidak dapat mematikan pemeriksaan ini.

106 106 

107Pemeriksaan ini membaca jalur yang ditargetkan oleh sebuah edit, direktori tempat perintah dijalankan, dan teks perintah. Tidak satu pun dari pemeriksaan ini melacak file mana yang ditulis oleh perintah shell, sehingga perintah yang menulis ke checkout utama tanpa menjalankan git di sana, seperti `cp` atau pengalihan shell, tidak ditolak olehnya. Claude Code memperlakukan perintah tersebut seperti perintah shell lainnya, sehingga apakah perintah itu dijalankan atau Claude Code meminta persetujuan Anda bergantung pada [mode izin](/docs/id/permission-modes) dan aturan Anda.107Pemeriksaan ini membaca jalur yang ditargetkan oleh sebuah edit, direktori tempat perintah dijalankan, dan teks perintah. Tidak satu pun dari pemeriksaan ini melacak file mana yang ditulis oleh perintah shell, sehingga perintah yang menulis ke checkout utama tanpa menjalankan git di sana, seperti `cp` atau pengalihan shell, tidak ditolak olehnya. Claude Code memperlakukan perintah tersebut seperti perintah shell lainnya berdasarkan pengaturan [izin](/docs/id/permissions) dan [sandboxing](/docs/id/sandboxing) Anda.

108 108 

109Pemeriksaan berlaku untuk repositori tempat Anda meluncurkan Claude Code. Mereka juga mencakup checkout utama yang ditautkan worktree ditautkan darinya. Untuk perintah PowerShell, Claude Code hanya menerapkan pemeriksaan direktori kerja.109Pemeriksaan berlaku untuk repositori tempat Anda meluncurkan Claude Code. Mereka juga mencakup checkout utama yang ditautkan worktree ditautkan darinya. Untuk perintah PowerShell, Claude Code hanya menerapkan pemeriksaan direktori kerja.

110 110