SpyBara
Go Premium

Documentation 2026-10-18 22:59 UTC to 2026-10-19 23:58 UTC

63 files changed +1,066 −510. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 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

291| :- | :- | :- |291| :- | :- | :- |

292| **System prompt** | Setiap request | Small fixed cost, selalu present |292| **System prompt** | Setiap request | Small fixed cost, selalu present |

293| **CLAUDE.md files** | Session start, melalui [`settingSources`](/docs/id/agent-sdk/claude-code-features) | Full content dalam setiap request (tetapi prompt-cached, jadi hanya request pertama yang membayar full cost) |293| **CLAUDE.md files** | Session start, melalui [`settingSources`](/docs/id/agent-sdk/claude-code-features) | Full content dalam setiap request (tetapi prompt-cached, jadi hanya request pertama yang membayar full cost) |

294| **Tool definitions** | Setiap request; MCP schemas deferred secara default | Built-in tool schemas dimuat setiap request. [Tool search](/docs/id/agent-sdk/mcp#mcp-tool-search) menunda MCP tool schemas secara default, kembali ke upfront loading pada model yang tidak didukung dan platform tertentu. Lihat [Configure tool search](/docs/id/agent-sdk/tool-search#configure-tool-search) untuk full matrix |294| **Definisi tool** | Setiap permintaan untuk tool bawaan inti seperti Bash, Read, dan Edit; sesuai permintaan untuk tool MCP dan tool bawaan lainnya, yang ditunda secara default oleh [pencarian tool](/docs/id/agent-sdk/mcp#mcp-tool-search) | Setiap skema dimuat di awal dalam kasus-kasus yang dijelaskan di [Mengonfigurasi pencarian tool](/docs/id/agent-sdk/tool-search#configure-tool-search) |

295| **Conversation history** | Terakumulasi di seluruh turns | Tumbuh dengan setiap turn: prompts, responses, tool inputs, tool outputs |295| **Conversation history** | Terakumulasi di seluruh turns | Tumbuh dengan setiap turn: prompts, responses, tool inputs, tool outputs |

296| **Skill descriptions** | Session start, melalui setting sources | Short summaries; full content dimuat hanya ketika invoked |296| **Skill descriptions** | Session start, melalui setting sources | Short summaries; full content dimuat hanya ketika invoked |

297 297 


331 331 

332Beberapa strategi untuk long-running agents:332Beberapa strategi untuk long-running agents:

333 333 

334* **Gunakan subagent untuk subtugas.** Setiap subagent dimulai dengan percakapan baru (tanpa riwayat pesan sebelumnya, meskipun subagent tetap memuat system prompt-nya sendiri dan konteks tingkat proyek seperti CLAUDE.md). Subagent tidak melihat giliran milik induknya, dan hanya respons akhirnya yang dikembalikan ke induk. Konteks agent utama bertambah sebesar ringkasan tersebut, bukan sebesar transkrip subtugas lengkap. Lihat [Apa yang diwarisi subagent](/docs/id/agent-sdk/subagents#what-subagents-inherit) untuk detailnya.334* **Gunakan subagent untuk subtugas.** Subagent hanya mengembalikan respons akhirnya, sehingga konteks agent utama Anda bertambah sebesar ringkasan, bukan sebesar transkrip subtugas.

335* **Jadilah selective dengan tools.** Setiap tool definition mengambil context space. Gunakan field `tools` pada [`AgentDefinition`](/docs/id/agent-sdk/subagents#agentdefinition-configuration) untuk scope subagents ke minimum set yang mereka butuhkan.335* **Jadilah selective dengan tools.** Setiap tool definition mengambil context space. Gunakan field `tools` pada [`AgentDefinition`](/docs/id/agent-sdk/subagents#agentdefinition-configuration) untuk scope subagents ke minimum set yang mereka butuhkan.

336* **Perhatikan MCP server costs.** [MCP tool search](/docs/id/agent-sdk/mcp#mcp-tool-search) menunda MCP tool schemas secara default dan memuat mereka on demand. Ketika tool search dimatikan atau telah kembali ke upfront loading, setiap MCP server menambahkan semua tool schemas-nya ke setiap request, jadi beberapa servers dengan banyak tools dapat mengkonsumsi significant context sebelum agent melakukan pekerjaan apa pun. Lihat [Configure tool search](/docs/id/agent-sdk/tool-search#configure-tool-search) untuk configurations di mana fallback berlaku.336* **Perhatikan MCP server costs.** [MCP tool search](/docs/id/agent-sdk/mcp#mcp-tool-search) menunda MCP tool schemas secara default dan memuat mereka on demand. Ketika tool search dimatikan atau telah kembali ke upfront loading, setiap MCP server menambahkan semua tool schemas-nya ke setiap request, jadi beberapa servers dengan banyak tools dapat mengkonsumsi significant context sebelum agent melakukan pekerjaan apa pun. Lihat [Configure tool search](/docs/id/agent-sdk/tool-search#configure-tool-search) untuk configurations di mana fallback berlaku.

337* **Gunakan lower effort untuk routine tasks.** Set [effort](#effort-level) ke `"low"` untuk agents yang hanya perlu membaca files atau list directories. Ini mengurangi token usage dan cost.337* **Gunakan lower effort untuk routine tasks.** Set [effort](#effort-level) ke `"low"` untuk agents yang hanya perlu membaca files atau list directories. Ini mengurangi token usage dan cost.

Details

212* **Pricing model**: per-detik, per-permintaan, atau penagihan per jam tetap. Harga per-detik cocok untuk beban kerja ephemeral yang bersifat bursty. Per jam cocok untuk sesi long-running.212* **Pricing model**: per-detik, per-permintaan, atau penagihan per jam tetap. Harga per-detik cocok untuk beban kerja ephemeral yang bersifat bursty. Per jam cocok untuk sesi long-running.

213* **Networking**: dukungan untuk aturan egress khusus, proxy outbound, dan peering VPC pribadi untuk lingkungan yang diatur.213* **Networking**: dukungan untuk aturan egress khusus, proxy outbound, dan peering VPC pribadi untuk lingkungan yang diatur.

214 214 

215Untuk opsi self-hosted seperti Docker, gVisor, dan Firecracker, serta konfigurasi isolasi terperinci, lihat [Isolation Technologies](/docs/id/agent-sdk/secure-deployment#isolation-technologies).215Untuk opsi self-hosted seperti Docker, gVisor, dan Firecracker, serta konfigurasi isolasi terperinci, lihat [Teknologi isolasi](/docs/id/agent-sdk/secure-deployment#isolation-technologies).

216 216 

217<h3 id="runtime-dependencies">217<h3 id="runtime-dependencies">

218 Runtime dependencies218 Runtime dependencies


229 Resources229 Resources

230</h3>230</h3>

231 231 

2321 GiB RAM, 5 GiB disk, dan 1 CPU per agent adalah titik awal yang wajar untuk instance yang baru dimulai. Penggunaan memori tumbuh dengan panjang sesi dan aktivitas tool, jadi ukuran untuk panjang sesi dan concurrency yang benar-benar Anda butuhkan daripada baseline idle. Lihat [Scaling and concurrency](#scaling-and-concurrency) untuk cara menghitung agent per host.2321 GiB RAM, 5 GiB disk, dan 1 CPU per agent adalah titik awal yang wajar untuk instance yang baru dimulai. Penggunaan memori tumbuh dengan panjang sesi dan aktivitas tool, jadi ukuran untuk panjang sesi dan concurrency yang benar-benar Anda butuhkan daripada baseline idle. Lihat [Penskalaan dan konkurensi](#scaling-and-concurrency) untuk cara menghitung agent per host.

233 233 

234<h3 id="network">234<h3 id="network">

235 Network235 Network

236</h3>236</h3>

237 237 

238SDK memerlukan outbound HTTPS ke `api.anthropic.com`, atau ke endpoint regional penyedia Anda saat berjalan di Amazon Bedrock atau Agent Platform Google Cloud. Jika agent Anda menggunakan [MCP servers](/docs/id/agent-sdk/mcp) atau tool eksternal, mereka memerlukan akses outbound ke endpoint tersebut juga. Untuk production, arahkan traffic outbound melalui egress proxy yang memberlakukan domain allowlists, menyuntikkan kredensial, dan mencatat permintaan. Lihat [Secure Deployment](/docs/id/agent-sdk/secure-deployment) untuk pola lengkapnya.238SDK memerlukan outbound HTTPS ke `api.anthropic.com`, atau ke endpoint regional penyedia Anda saat berjalan di Amazon Bedrock atau Agent Platform Google Cloud. Jika agent Anda menggunakan [server MCP](/docs/id/agent-sdk/mcp) atau tool eksternal, mereka memerlukan akses outbound ke endpoint tersebut juga. Untuk production, arahkan traffic outbound melalui egress proxy yang memberlakukan domain allowlists, menyuntikkan kredensial, dan mencatat permintaan. Lihat [Deployment yang aman](/docs/id/agent-sdk/secure-deployment) untuk pola lengkapnya.

239 239 

240Untuk traffic inbound, ekspos port HTTP atau WebSocket di kontainer. Aplikasi Anda menangani permintaan klien di port tersebut dan memanggil SDK secara internal; subprocess itu sendiri tidak mendengarkan di jaringan.240Untuk traffic inbound, ekspos port HTTP atau WebSocket di kontainer. Aplikasi Anda menangani permintaan klien di port tersebut dan memanggil SDK secara internal; subprocess itu sendiri tidak mendengarkan di jaringan.

241 241 


318Untuk mengisolasi tenant di dalam kontainer bersama:318Untuk mengisolasi tenant di dalam kontainer bersama:

319 319 

320* Lewatkan `settingSources: []` di TypeScript atau `setting_sources=[]` di Python untuk melewati pengaturan pengguna, proyek, dan lokal.320* Lewatkan `settingSources: []` di TypeScript atau `setting_sources=[]` di Python untuk melewati pengaturan pengguna, proyek, dan lokal.

321* Atur `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` di `env`. [Auto memory](/docs/id/memory#auto-memory) di `~/.claude/projects/<project>/memory/` dimuat ke prompt sistem terlepas dari `settingSources`. Lihat [Apa yang settingSources tidak kontrol](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk input lain yang dimuat tanpa syarat.321* Atur `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` di `env`. [Auto memory](/docs/id/memory#auto-memory) di `~/.claude/projects/<project>/memory/` dimuat ke prompt sistem terlepas dari `settingSources`. Lihat [Apa yang tidak dikontrol settingSources](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk input lain yang dimuat tanpa syarat.

322* Arahkan `CLAUDE_CONFIG_DIR` ke direktori per-tenant sehingga tenant tidak berbagi config global `~/.claude.json`. Ketika setiap direktori config melayani satu direktori kerja dan Anda tidak melewatkan [`SessionStore`](/docs/id/agent-sdk/session-storage), Anda juga dapat mengatur [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/id/sessions#name-the-project-directory-yourself) di `env` untuk menjaga jalur transkrip di bawahnya tetap pendek. Memerlukan Agent SDK TypeScript v0.3.234 atau lebih baru, atau Agent SDK Python v0.2.140 atau lebih baru.322* Arahkan `CLAUDE_CONFIG_DIR` ke direktori per-tenant sehingga tenant tidak berbagi config global `~/.claude.json`. Ketika setiap direktori config melayani satu direktori kerja dan Anda tidak melewatkan [`SessionStore`](/docs/id/agent-sdk/session-storage), Anda juga dapat mengatur [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/id/sessions#name-the-project-directory-yourself) di `env` untuk menjaga jalur transkrip di bawahnya tetap pendek. Memerlukan Agent SDK TypeScript v0.3.234 atau lebih baru, atau Agent SDK Python v0.2.140 atau lebih baru.

323* Gunakan direktori kerja per-tenant. Lewatkan `cwd` secara eksplisit pada setiap panggilan `query()`.323* Gunakan direktori kerja per-tenant. Lewatkan `cwd` secara eksplisit pada setiap panggilan `query()`.

324* Terapkan aturan egress per-tenant di proxy Anda, seperti IP outbound yang berbeda, kredensial, atau daftar allowlist domain, sehingga tenant yang dikompromikan tidak dapat mengeksfiltrasikan data melalui kebijakan outbound tenant lain.324* Terapkan aturan egress per-tenant di proxy Anda, seperti IP outbound yang berbeda, kredensial, atau daftar allowlist domain, sehingga tenant yang dikompromikan tidak dapat mengeksfiltrasikan data melalui kebijakan outbound tenant lain.

Details

258| `OTEL_LOG_TOOL_CONTENT=1` | Sebuah [`tool.output` span event](/docs/id/monitoring-usage#tool-output-span-event) pada `claude_code.tool` dengan file contents, Bash output, dan apa yang dikembalikan MCP tools, WebFetch, dan WebSearch, truncated pada 60 KB secara default, dapat dikonfigurasi melalui `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, yang memerlukan Claude Code v2.1.214 atau lebih baru. Results dari MCP tools, WebFetch, dan WebSearch memerlukan Claude Code v2.1.283 atau lebih baru. Memerlukan [tracing](#read-agent-traces) untuk diaktifkan. Span attributes membawa tool content di bawah [gates mereka sendiri](/docs/id/monitoring-usage#new-context-gates) |258| `OTEL_LOG_TOOL_CONTENT=1` | Sebuah [`tool.output` span event](/docs/id/monitoring-usage#tool-output-span-event) pada `claude_code.tool` dengan file contents, Bash output, dan apa yang dikembalikan MCP tools, WebFetch, dan WebSearch, truncated pada 60 KB secara default, dapat dikonfigurasi melalui `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH`, yang memerlukan Claude Code v2.1.214 atau lebih baru. Results dari MCP tools, WebFetch, dan WebSearch memerlukan Claude Code v2.1.283 atau lebih baru. Memerlukan [tracing](#read-agent-traces) untuk diaktifkan. Span attributes membawa tool content di bawah [gates mereka sendiri](/docs/id/monitoring-usage#new-context-gates) |

259| `OTEL_LOG_RAW_API_BODIES` | Full Anthropic Messages API request dan response JSON sebagai log events `claude_code.api_request_body` dan `claude_code.api_response_body`. Atur ke `1` untuk inline bodies truncated pada 60 KB secara default, atau `file:<dir>` untuk untruncated bodies di disk dengan path `body_ref` dalam event. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` mengonfigurasi inline truncation limit, dan memerlukan Claude Code v2.1.214 atau lebih baru. Bodies mencakup entire conversation history dan memiliki extended-thinking content redacted. Mengaktifkan ini menyiratkan consent ke semua yang akan diungkapkan oleh tiga variables di atas |259| `OTEL_LOG_RAW_API_BODIES` | Full Anthropic Messages API request dan response JSON sebagai log events `claude_code.api_request_body` dan `claude_code.api_response_body`. Atur ke `1` untuk inline bodies truncated pada 60 KB secara default, atau `file:<dir>` untuk untruncated bodies di disk dengan path `body_ref` dalam event. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` mengonfigurasi inline truncation limit, dan memerlukan Claude Code v2.1.214 atau lebih baru. Bodies mencakup entire conversation history dan memiliki extended-thinking content redacted. Mengaktifkan ini menyiratkan consent ke semua yang akan diungkapkan oleh tiga variables di atas |

260 260 

261Biarkan unset kecuali pipeline observability Anda disetujui untuk menyimpan data yang ditangani agent Anda. Lihat [Security and privacy](/docs/id/monitoring-usage#security-and-privacy) dalam referensi Monitoring untuk daftar lengkap attributes dan redaction behavior.261Biarkan unset kecuali pipeline observability Anda disetujui untuk menyimpan data yang ditangani agent Anda. Lihat [Keamanan dan privasi](/docs/id/monitoring-usage#security-and-privacy) dalam referensi Monitoring untuk daftar lengkap attributes dan redaction behavior.

262 262 

263<h2 id="related-documentation">263<h2 id="related-documentation">

264 Dokumentasi terkait264 Dokumentasi terkait


266 266 

267Panduan-panduan ini mencakup topik-topik yang berdekatan untuk monitoring dan deploying agents:267Panduan-panduan ini mencakup topik-topik yang berdekatan untuk monitoring dan deploying agents:

268 268 

269* [Lacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking): baca token dan cost data dari message stream tanpa backend eksternal.269* [Lacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking): baca data token dan biaya dari aliran pesan tanpa backend eksternal.

270* [Hosting Agent SDK](/docs/id/agent-sdk/hosting): deploy agents dalam containers di mana Anda dapat mengatur OpenTelemetry variables pada level environment.270* [Hosting Agent SDK](/docs/id/agent-sdk/hosting): deploy agents dalam containers di mana Anda dapat mengatur OpenTelemetry variables pada level environment.

271* [Monitoring](/docs/id/monitoring-usage): referensi lengkap untuk setiap environment variable, metric, dan event yang CLI pancarkan.271* [Monitoring](/docs/id/monitoring-usage): referensi lengkap untuk setiap environment variable, metric, dan event yang CLI pancarkan.

Details

123 123 

124Mode izin memberikan kontrol global atas cara Claude menggunakan tools. Anda dapat mengatur mode izin saat memanggil `query()` atau mengubahnya secara dinamis selama sesi streaming.124Mode izin memberikan kontrol global atas cara Claude menggunakan tools. Anda dapat mengatur mode izin saat memanggil `query()` atau mengubahnya secara dinamis selama sesi streaming.

125 125 

126Jika Anda tidak mengatur satu, Claude Code memilih mode izin awal berdasarkan aturan dalam [Mode mana sesi dimulai](/docs/id/permission-modes#which-mode-a-session-starts-in):126Dengan Claude Code v2.1.302 atau lebih baru, aplikasi Anda dimulai dalam mode `default` kecuali Anda mengatur mode izin atau aplikasi mendapatkannya dari [`permissions.defaultMode`](/docs/id/settings-reference#permissions-defaultmode) dalam file pengaturannya. Dalam mode `default`, Claude Code menolak setiap panggilan tool yang memerlukan persetujuan kecuali Anda menyetujuinya melalui aturan allow, hook, callback `canUseTool`, atau tool prompt izin. Jika panggilan tool ditolak, lihat [Panggilan tool ditolak dalam run `claude -p` dan Agent SDK](/docs/id/permission-modes#which-mode-a-non-interactive-run-starts-in).

127 

128* `permissions.defaultMode` dari [file pengaturan](/docs/id/settings#where-settings-live) sesi ketika satu berlaku

129* Jika tidak, default bawaan, yang dapat berupa [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode)

130 

131Sesi yang dimulai dalam mode auto menghilangkan aturan izin luas seperti entri `Bash` kosong, seperti yang dijelaskan dalam [Bagaimana mode auto mengevaluasi tindakan](/docs/id/permission-modes#how-auto-mode-evaluates-actions). Jika aplikasi Anda mengandalkan mode `default` atau pada aturan seperti itu, lewatkan `default` secara eksplisit.

132 

133Sebelum Agent SDK TypeScript v0.3.286, menghilangkan `permissionMode` sama dengan melewatkan `default`.

134 127 

135<h3 id="available-modes">128<h3 id="available-modes">

136 Mode yang tersedia129 Mode yang tersedia

Details

1035)1035)

1036```1036```

1037 1037 

1038* `API_TIMEOUT_MS`: timeout per-permintaan pada klien Anthropic, dalam milidetik. Default `600000`. Berlaku untuk loop utama dan semua subagent.1038* [`API_TIMEOUT_MS`](/docs/id/env-vars): berapa lama setiap percobaan permintaan dapat menunggu header respons, dalam milidetik. Ini tidak membatasi berapa lama respons streaming berjalan setelah header tiba. Default `600000`. Berlaku untuk loop utama dan semua subagent.

1039* `CLAUDE_CODE_MAX_RETRIES`: maksimal retry API. Default `10`, dibatasi pada `15`. Setiap retry mendapat jendela `API_TIMEOUT_MS` sendiri.1039* `CLAUDE_CODE_MAX_RETRIES`: maksimal retry API. Default `10`, dibatasi pada `15`. Setiap retry mendapat jendela `API_TIMEOUT_MS` sendiri.

1040 1040 

1041 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.1041 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.


1911 1911 

1912Dict `model_usage` memetakan nama model ke penggunaan per-model. Ini mencakup setiap panggilan model yang dibuat melalui pipeline query: loop utama, subagent, dan panggilan internal seperti compaction dan Workflow agents. Panggilan helper di luar pipeline itu, seperti pengklasifikasi izin dan permintaan penghitungan token, dikecualikan dari `model_usage`. Perlakukan `model_usage` sebagai perkiraan, bukan pernyataan penagihan.1912Dict `model_usage` memetakan nama model ke penggunaan per-model. Ini mencakup setiap panggilan model yang dibuat melalui pipeline query: loop utama, subagent, dan panggilan internal seperti compaction dan Workflow agents. Panggilan helper di luar pipeline itu, seperti pengklasifikasi izin dan permintaan penghitungan token, dikecualikan dari `model_usage`. Perlakukan `model_usage` sebagai perkiraan, bukan pernyataan penagihan.

1913 1913 

1914Dalam [mode input streaming](/docs/id/agent-sdk/streaming-vs-single-mode), `model_usage` dan `total_cost_usd` adalah kumulatif di seluruh giliran, jadi baca hasil terbaru daripada menjumlahkan di seluruh hasil. Panggilan yang melanjutkan sesi juga menghitung [total yang dipulihkan dari panggilan sebelumnya sesi](/docs/id/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Lihat [Track costs in streaming input mode](/docs/id/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) untuk reset dan [Recover totals after a session crash](/docs/id/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) untuk hasil yang dinolkan.1914Dalam [mode input streaming](/docs/id/agent-sdk/streaming-vs-single-mode), `model_usage` dan `total_cost_usd` adalah kumulatif di seluruh giliran, jadi baca hasil terbaru daripada menjumlahkan di seluruh hasil. Panggilan yang melanjutkan sesi juga menghitung [total yang dipulihkan dari panggilan sebelumnya dalam sesi tersebut](/docs/id/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Lihat [Lacak biaya dalam mode input streaming](/docs/id/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) untuk reset dan [Pulihkan total setelah kerusakan sesi](/docs/id/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) untuk hasil yang dinolkan.

1915 1915 

1916Setiap nilai dalam `model_usage` adalah TypedDict `ModelUsage`, diimpor melalui `from claude_agent_sdk.types import ModelUsage`. Kuncinya menggunakan camelCase karena SDK melewatkan nilai tanpa modifikasi dari proses CLI yang mendasar, cocok dengan tipe TypeScript [`ModelUsage`](/docs/id/agent-sdk/typescript#modelusage):1916Setiap nilai dalam `model_usage` adalah TypedDict `ModelUsage`, diimpor melalui `from claude_agent_sdk.types import ModelUsage`. Kuncinya menggunakan camelCase karena SDK melewatkan nilai tanpa modifikasi dari proses CLI yang mendasar, cocok dengan tipe TypeScript [`ModelUsage`](/docs/id/agent-sdk/typescript#modelusage):

1917 1917 


2012 `ConversationResetMessage`2012 `ConversationResetMessage`

2013</h3>2013</h3>

2014 2014 

2015Dipancarkan ketika percakapan diganti tanpa mengakhiri koneksi, seperti setelah `/clear`. Lihat [Track costs in streaming input mode](/docs/id/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) untuk bagaimana reset mempengaruhi total yang berjalan pada objek `ResultMessage` berikutnya. Memerlukan Python Agent SDK 0.2.137 atau lebih baru.2015Dipancarkan ketika percakapan diganti tanpa mengakhiri koneksi, seperti setelah `/clear`. Lihat [Lacak biaya dalam mode input streaming](/docs/id/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) untuk bagaimana reset mempengaruhi total yang berjalan pada objek `ResultMessage` berikutnya. Memerlukan Python Agent SDK 0.2.137 atau lebih baru.

2016 2016 

2017```python theme={null}2017```python theme={null}

2018@dataclass2018@dataclass

Details

172 172 

173Dalam Python SDK, nama field multi-kata seperti `disallowedTools` dan `mcpServers` mempertahankan ejaan camelCase mereka untuk mencocokkan format wire daripada mengikuti konvensi snake\_case Python. Lihat referensi [`AgentDefinition`](/docs/id/agent-sdk/python#agentdefinition) untuk detail.173Dalam Python SDK, nama field multi-kata seperti `disallowedTools` dan `mcpServers` mempertahankan ejaan camelCase mereka untuk mencocokkan format wire daripada mengikuti konvensi snake\_case Python. Lihat referensi [`AgentDefinition`](/docs/id/agent-sdk/python#agentdefinition) untuk detail.

174 174 

175Subagen berjalan di latar belakang secara default. Panggilan tool Agent yang menghilangkan input [`run_in_background`](/docs/id/sub-agents#run-subagents-in-foreground-or-background) meluncurkan subagen latar belakang, dan Claude menetapkan `run_in_background: false` ketika memerlukan hasil sebelum melanjutkan. Atur field `background` ke `true` untuk memaksa eksekusi latar belakang untuk agen tertentu terlepas dari apa yang diminta Claude. Sebelum Claude Code v2.1.198, default latar belakang sedang diluncurkan secara bertahap, dan panggilan tool Agent yang menghilangkan `run_in_background` dapat menjalankan subagen secara sinkron.175<h4 id="choose-whether-claude-waits-for-subagents">

176 Pilih apakah Claude menunggu subagent

177</h4>

176 178 

177Subagen juga dapat menghasilkan subagen mereka sendiri. Untuk membatasi seberapa dalam nesting itu, berapa banyak subagen yang berjalan sekaligus, dan berapa banyak kueri yang dihabiskan, lihat [Batasi kedalaman, konkurensi, dan pengeluaran subagen](#cap-subagent-depth-concurrency-and-spend).179Secara default, subagent yang dihasilkan oleh agent utama Anda [berjalan di latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background). Hasil tool Agent memiliki `status: "async_launched"`, dan laporannya tiba pada giliran berikutnya.

180 

181Claude menunggu ketika tindakan berikutnya memerlukan laporan tersebut: panggilan akan memblokir dan mengembalikan `status: "completed"`. Untuk menentukan pilihan tersebut sendiri:

182 

183* **Dalam prompt Anda**: minta Claude untuk menunggu, misalnya "run the test-runner agent and wait for it"

184* **Dalam definisi**: atur `background` ke `true` agar agent tersebut tetap berjalan di latar belakang

178 185 

179<h3 id="filesystem-based-definition-alternative">186<h3 id="filesystem-based-definition-alternative">

180 Definisi berbasis filesystem (alternatif)187 Definisi berbasis filesystem (alternatif)


242 249 

243Ini melewati pencocokan otomatis dan secara langsung memanggil subagen yang dinamai.250Ini melewati pencocokan otomatis dan secara langsung memanggil subagen yang dinamai.

244 251 

252<h3 id="forked-subagents">

253 Subagent hasil fork

254</h3>

255 

256[Fork](/docs/id/sub-agents#fork-the-current-conversation) adalah subagent yang menyalin percakapan sejauh ini alih-alih memulai dari awal. Mulai Claude Code v2.1.302, Claude dapat memulai fork di aplikasi Anda tanpa konfigurasi apa pun, dengan memanggil tool Agent menggunakan `subagent_type: "fork"`.

257 

258Untuk mencegah Claude memulai fork, tambahkan [aturan penolakan `Agent(fork)`](/docs/id/agent-sdk/permissions#allow-and-deny-rules):

259 

260<CodeGroup>

261 ```python Python theme={null}

262 options = ClaudeAgentOptions(

263 # Deny only the fork subagent type; other subagents still run

264 disallowed_tools=["Agent(fork)"],

265 )

266 ```

267 

268 ```typescript TypeScript theme={null}

269 const options = {

270 // Deny only the fork subagent type; other subagents still run

271 disallowedTools: ["Agent(fork)"]

272 };

273 ```

274</CodeGroup>

275 

245<h3 id="dynamic-agent-configuration">276<h3 id="dynamic-agent-configuration">

246 Konfigurasi agen dinamis277 Konfigurasi agen dinamis

247</h3>278</h3>

Details

610| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Mendefinisikan format output untuk hasil agent. Lihat [Output terstruktur](/docs/id/agent-sdk/structured-outputs) untuk detail |610| `outputFormat` | `{ type: 'json_schema', schema: JSONSchema }` | `undefined` | Mendefinisikan format output untuk hasil agent. Lihat [Output terstruktur](/docs/id/agent-sdk/structured-outputs) untuk detail |

611| `outputStyle` | `string` | `undefined` | Bukan field `Options`. Atur `outputStyle` dalam objek [`settings`](/docs/id/settings) inline atau file pengaturan sebagai gantinya. Lihat [Mengaktifkan gaya output](/docs/id/agent-sdk/modifying-system-prompts#activate-an-output-style) |611| `outputStyle` | `string` | `undefined` | Bukan field `Options`. Atur `outputStyle` dalam objek [`settings`](/docs/id/settings) inline atau file pengaturan sebagai gantinya. Lihat [Mengaktifkan gaya output](/docs/id/agent-sdk/modifying-system-prompts#activate-an-output-style) |

612| `pathToClaudeCodeExecutable` | `string` | Diselesaikan otomatis dari binary native yang dibundel | Path ke executable Claude Code. Hanya diperlukan jika dependensi opsional dilewati saat instalasi atau platform Anda tidak termasuk dalam set yang didukung |612| `pathToClaudeCodeExecutable` | `string` | Diselesaikan otomatis dari binary native yang dibundel | Path ke executable Claude Code. Hanya diperlukan jika dependensi opsional dilewati saat instalasi atau platform Anda tidak termasuk dalam set yang didukung |

613| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Mode izin untuk sesi. Jika Anda menghilangkannya, sesi dapat dimulai dalam auto mode. Lihat [Mode izin](/docs/id/agent-sdk/permissions#permission-modes) untuk cara Claude Code memilih mode izin awal |613| `permissionMode` | [`PermissionMode`](#permissionmode) | `undefined` | Mode izin untuk sesi. Jika Anda menghilangkannya dan tidak ada hal lain yang mengatur mode izin, seperti pengaturan [`permissions.defaultMode`](/docs/id/settings-reference#permissions-defaultmode), sesi dimulai dalam `default`. Lihat [Mode izin](/docs/id/agent-sdk/permissions#permission-modes) |

614| `permissionPromptToolName` | `string` | `undefined` | Nama tool MCP untuk permintaan izin |614| `permissionPromptToolName` | `string` | `undefined` | Nama tool MCP untuk permintaan izin |

615| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Siapa yang menjawab permintaan izin: `'host'` mengarahkannya ke callback [`canUseTool`](#canusetool) Anda atau tool `permissionPromptToolName`, dan `'none'` [menolak panggilan yang seharusnya memunculkan permintaan izin](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated). Memerlukan Claude Code v2.1.259 atau lebih baru |615| `permissionPrompts` | `'host' \| 'none'` | `'host'` | Siapa yang menjawab permintaan izin: `'host'` mengarahkannya ke callback [`canUseTool`](#canusetool) Anda atau tool `permissionPromptToolName`, dan `'none'` [menolak panggilan yang seharusnya memunculkan permintaan izin](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated). Memerlukan Claude Code v2.1.259 atau lebih baru |

616| `persistSession` | `boolean` | `true` | Jika `false`, menonaktifkan persistensi sesi ke disk. Sesi tidak dapat dilanjutkan nanti |616| `persistSession` | `boolean` | `true` | Jika `false`, menonaktifkan persistensi sesi ke disk. Sesi tidak dapat dilanjutkan nanti |


662});662});

663```663```

664 664 

665* `API_TIMEOUT_MS`: timeout per permintaan pada klien Anthropic, dalam milidetik. Default `600000`. Berlaku untuk loop utama dan semua subagent.665* [`API_TIMEOUT_MS`](/docs/id/env-vars): berapa lama setiap percobaan permintaan dapat menunggu header respons, dalam milidetik. Ini tidak membatasi berapa lama respons streaming berjalan setelah header tiba. Default `600000`. Berlaku untuk loop utama dan semua subagent.

666* `CLAUDE_CODE_MAX_RETRIES`: jumlah retry API maksimum. Default `10`, dibatasi hingga `15`. Setiap retry mendapatkan jendela `API_TIMEOUT_MS` sendiri.666* `CLAUDE_CODE_MAX_RETRIES`: jumlah retry API maksimum. Default `10`, dibatasi hingga `15`. Setiap retry mendapatkan jendela `API_TIMEOUT_MS` sendiri.

667 667 

668 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.668 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.

agent-teams.md +1 −1

Details

557* **Shutdown dapat lambat**: rekan tim menyelesaikan permintaan atau tool call saat ini sebelum shutdown, yang dapat memakan waktu.557* **Shutdown dapat lambat**: rekan tim menyelesaikan permintaan atau tool call saat ini sebelum shutdown, yang dapat memakan waktu.

558* **Satu tim per session**: sebuah session memiliki tepat satu tim, yang dibatasi pada session tersebut. Anda tidak dapat membuat tim bernama tambahan atau berbagi tim di seluruh session.558* **Satu tim per session**: sebuah session memiliki tepat satu tim, yang dibatasi pada session tersebut. Anda tidak dapat membuat tim bernama tambahan atau berbagi tim di seluruh session.

559* **Tidak ada tim bersarang**: rekan tim tidak dapat menelurkan rekan tim mereka sendiri. Hanya lead yang dapat mengelola tim.559* **Tidak ada tim bersarang**: rekan tim tidak dapat menelurkan rekan tim mereka sendiri. Hanya lead yang dapat mengelola tim.

560* **Tidak ada background subagents dari rekan tim in-process**: subagents rekan tim in-process sendiri berjalan di foreground, karena pekerjaan background rekan tim tidak dapat bertahan lebih lama dari proses lead. Claude Code mengembalikan error ketika rekan tim menelurkan subagent yang definisinya menetapkan `background: true`. Permintaan `run_in_background: true` rekan tim juga gagal, baik dengan error atau dengan berjalan diam-diam di foreground, seperti yang dijelaskan dalam [bagaimana Claude Code memilih foreground atau background](/docs/id/sub-agents#run-subagents-in-foreground-or-background). Subagents yang diluncurkan dari percakapan utama mengikuti [default background](/docs/id/sub-agents#run-subagents-in-foreground-or-background).560* **Tidak ada subagent background dari rekan tim in-process**: subagent milik rekan tim in-process berjalan di foreground, karena pekerjaan background rekan tim tidak dapat bertahan lebih lama dari proses lead. Claude Code mengembalikan error ketika rekan tim menelurkan subagent yang definisinya menetapkan `background: true`. Permintaan `run_in_background: true` rekan tim juga gagal, baik dengan error atau dengan berjalan diam-diam di foreground. Subagent yang diluncurkan dari percakapan utama mengikuti [default background](/docs/id/sub-agents#run-subagents-in-foreground-or-background).

561* **Lead tetap**: session utama adalah lead seumur hidupnya. Anda tidak dapat mempromosikan rekan tim ke lead atau mentransfer kepemimpinan.561* **Lead tetap**: session utama adalah lead seumur hidupnya. Anda tidak dapat mempromosikan rekan tim ke lead atau mentransfer kepemimpinan.

562* **Izin ditetapkan pada spawn**: rekan tim dimulai dengan mode izin yang dijelaskan di bawah [Izin](#permissions). Anda dapat mengubah mode izin rekan tim individual setelah menelurkan, tetapi Anda tidak dapat mengatur mode izin per-rekan tim pada waktu spawn.562* **Izin ditetapkan pada spawn**: rekan tim dimulai dengan mode izin yang dijelaskan di bawah [Izin](#permissions). Anda dapat mengubah mode izin rekan tim individual setelah menelurkan, tetapi Anda tidak dapat mengatur mode izin per-rekan tim pada waktu spawn.

563* **Split panes memerlukan tmux atau iTerm2**: mode in-process default bekerja di terminal apa pun. Mode split-pane tidak didukung di integrated terminal VS Code, Windows Terminal, atau Ghostty.563* **Split panes memerlukan tmux atau iTerm2**: mode in-process default bekerja di terminal apa pun. Mode split-pane tidak didukung di integrated terminal VS Code, Windows Terminal, atau Ghostty.

agent-view.md +9 −1

Details

479 479 

480Setelah fork, kedua percakapan independen: tidak ada yang dilakukan salinan yang masuk ke percakapan asli dengan sendirinya, meskipun dalam sesi di mana [cross-session messaging](/docs/id/cross-session-messaging) diaktifkan, Claude di sesi mana pun dapat secara eksplisit mengirim pesan ke yang lain.480Setelah fork, kedua percakapan independen: tidak ada yang dilakukan salinan yang masuk ke percakapan asli dengan sendirinya, meskipun dalam sesi di mana [cross-session messaging](/docs/id/cross-session-messaging) diaktifkan, Claude di sesi mana pun dapat secara eksplisit mengirim pesan ke yang lain.

481 481 

482Menyalin sesi memerlukan Claude Code v2.1.212 atau lebih baru; pada v2.1.161 hingga v2.1.211, `/fork` memulai [forked subagent](/docs/id/sub-agents#fork-the-current-conversation) sebagai gantinya, yang sekarang adalah `/subtask`. Ketika [agent view dimatikan](#turn-off-agent-view), `/fork` mempertahankan perilaku subagent yang di-fork dan `/subtask` tidak tersedia.482Ketika [agent view dimatikan](#turn-off-agent-view), `/fork` memulai [forked subagent](/docs/id/sub-agents#fork-the-current-conversation) alih-alih menyalin sesi.

483 483 

484Berikan prompt seperti `/fork open a draft pull request with the work so far` dan salinan langsung mulai mengerjakannya. Tanpa prompt, salinan menunggu instruksi pertamanya: pilih barisnya di `claude agents` dan tekan `Space` untuk mengirim satu, atau jalankan `claude attach <id>`. Baris yang dipilih menampilkan `space to send it a prompt` selama menunggu.484Berikan prompt seperti `/fork open a draft pull request with the work so far` dan salinan langsung mulai mengerjakannya. Tanpa prompt, salinan menunggu instruksi pertamanya: pilih barisnya di `claude agents` dan tekan `Space` untuk mengirim satu, atau jalankan `claude attach <id>`. Baris yang dipilih menampilkan `space to send it a prompt` selama menunggu.

485 485 


957 957 

958Jalankan `/tasks` untuk melihat semua yang sedang berjalan, kemudian konfirmasi untuk tetap melepaskan atau pilih `Stay` untuk membiarkan pekerjaan selesai terlebih dahulu. Lihat [Apa yang dibawa saat Anda melepaskan](#what-carries-over-when-you-background) untuk jenis pekerjaan mana yang dibawa dan mana yang dihentikan Claude Code.958Jalankan `/tasks` untuk melihat semua yang sedang berjalan, kemudian konfirmasi untuk tetap melepaskan atau pilih `Stay` untuk membiarkan pekerjaan selesai terlebih dahulu. Lihat [Apa yang dibawa saat Anda melepaskan](#what-carries-over-when-you-background) untuk jenis pekerjaan mana yang dibawa dan mana yang dihentikan Claude Code.

959 959 

960<h3 id="carried-into-this-session-and-not-resumed">

961 Percakapan menyatakan bahwa agent latar belakang `was carried into this session and not resumed`

962</h3>

963 

964Pemberitahuan ini menyebutkan [subagent](/docs/id/sub-agents) latar belakang yang tidak berjalan dalam sesi ini.

965 

966Claude melihat pemberitahuan tersebut dan membalas dengan sendirinya, jadi Anda tidak perlu memberikan prompt kepadanya. Jika Anda masih membutuhkan hasil kerja subagent tersebut setelah membaca balasan Claude, minta Claude untuk itu.

967 

960<h3 id="prompt-rejected-as-too-short">968<h3 id="prompt-rejected-as-too-short">

961 Prompt ditolak karena terlalu pendek969 Prompt ditolak karena terlalu pendek

962</h3>970</h3>

Details

182export AWS_PROFILE=your-profile-name182export AWS_PROFILE=your-profile-name

183```183```

184 184 

185Claude Code meminta kredensial peran dari wilayah IAM Identity Center yang dinamai oleh `sso_region` profil, yang tidak perlu cocok dengan wilayah tempat Anda menjalankan Amazon Bedrock. Dalam v2.1.207, wilayah Amazon Bedrock menimpa `sso_region`, jadi profil yang instance IAM Identity Center-nya berada di wilayah berbeda gagal untuk mengautentikasi dengan kesalahan `Session token not found or invalid`.185Claude Code meminta kredensial peran dari wilayah IAM Identity Center yang dinamai oleh `sso_region` profil, yang tidak perlu cocok dengan wilayah tempat Anda menjalankan Amazon Bedrock.

186 186 

187<h4 id="use-aws-management-console-credentials">187<h4 id="use-aws-management-console-credentials">

188 Gunakan kredensial AWS Management Console188 Gunakan kredensial AWS Management Console


413 413 

414Jika Anda telah menyematkan versi model yang lebih lama dari default Claude Code saat ini, dan akun Anda dapat memanggil versi yang lebih baru, Claude Code akan meminta Anda untuk memperbarui pin. Menerima akan menulis ID model baru ke [file pengaturan pengguna Anda](/docs/id/settings) dan memulai ulang Claude Code. Menolak akan diingat hingga perubahan versi default berikutnya. Pin yang menunjuk ke [profil inferensi aplikasi ARN](#map-each-model-version-to-an-inference-profile) dilewati, karena dikelola oleh administrator Anda.414Jika Anda telah menyematkan versi model yang lebih lama dari default Claude Code saat ini, dan akun Anda dapat memanggil versi yang lebih baru, Claude Code akan meminta Anda untuk memperbarui pin. Menerima akan menulis ID model baru ke [file pengaturan pengguna Anda](/docs/id/settings) dan memulai ulang Claude Code. Menolak akan diingat hingga perubahan versi default berikutnya. Pin yang menunjuk ke [profil inferensi aplikasi ARN](#map-each-model-version-to-an-inference-profile) dilewati, karena dikelola oleh administrator Anda.

415 415 

416Jika Anda belum menyematkan model dan default saat ini tidak tersedia di akun Anda, Claude Code akan kembali untuk sesi saat ini dan menampilkan pemberitahuan. Claude Code mencoba versi sebelumnya dari model default terlebih dahulu dan, ketika default adalah model Opus dan tidak ada versi Opus yang tersedia, kembali ke model Sonnet default. Fallback tidak disimpan. Aktifkan model yang lebih baru di akun Amazon Bedrock Anda atau [sematkan versi](#4-pin-model-versions) untuk membuat pilihan permanen.416Jika Anda belum menyematkan model dan default saat ini tidak tersedia di akun Anda, Claude Code akan melakukan fallback untuk sesi saat ini dan menampilkan pemberitahuan. Claude Code mencoba versi sebelumnya dari model default terlebih dahulu dan, ketika default adalah model Opus dan tidak ada versi Opus yang tersedia, melakukan fallback ke model Sonnet default. Fallback tidak disimpan. Aktifkan model yang lebih baru di akun Amazon Bedrock Anda atau [sematkan versi](#4-pin-model-versions) untuk membuat pilihan permanen.

417 417 

418Ketika Anda memulai sesi pada versi Sonnet atau Opus tertentu, misalnya dengan `--model`, `ANTHROPIC_MODEL`, atau [pengaturan `model`](/docs/id/settings-reference#model), versi tersebut bertindak sebagai default yang disematkan sesi untuk alias `sonnet` atau `opus` yang cocok. Claude Code melewati pemeriksaan ketersediaan untuk default bawaan yang diganti model Anda dan dimulai pada model yang Anda konfigurasi, tanpa pemberitahuan fallback.418Ketika Anda memulai sesi pada versi Sonnet atau Opus tertentu, misalnya dengan `--model`, `ANTHROPIC_MODEL`, atau [pengaturan `model`](/docs/id/settings-reference#model), versi tersebut bertindak sebagai default yang disematkan sesi untuk alias `sonnet` atau `opus` yang cocok. Claude Code melewati pemeriksaan ketersediaan untuk default bawaan yang diganti model Anda dan dimulai pada model yang Anda konfigurasi, tanpa pemberitahuan fallback.

419 419 

420Alias model seperti `opus` tidak bertindak sebagai pin, begitu juga ID model yang tidak dikenali Claude Code, seperti profil inferensi aplikasi ARN.420Alias model seperti `opus` tidak bertindak sebagai pin, begitu juga ID model yang tidak dikenali Claude Code, seperti profil inferensi aplikasi ARN.

421 421 

422Ketika pemeriksaan ini menemukan model yang akun Anda tidak dapat memanggil, Claude Code mengingat penolakan di mesin ini selama satu hari, dan peluncuran selama waktu itu melewati model yang diingat tanpa bertanya kepada Amazon Bedrock lagi. Claude Code memeriksa penolakan yang diingat dari model default saat ini lagi saat peluncuran setelah sepuluh menit telah berlalu sejak pemeriksaan terakhir, sehingga default yang administrator Anda aktifkan kembali. Untuk mematikan memori, atur [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/id/env-vars).422Ketika pemeriksaan ini menemukan model yang tidak dapat dipanggil oleh akun Anda, Claude Code mengingat penolakan tersebut di mesin ini hingga satu hari, dan peluncuran selama waktu itu melewati model yang diingat tanpa bertanya kepada Amazon Bedrock lagi. Claude Code memeriksa kembali penolakan yang diingat untuk model default saat ini saat peluncuran setelah sepuluh menit berlalu sejak pemeriksaan terakhir, sehingga default yang diaktifkan kembali oleh administrator Anda akan tersedia lagi. Untuk mematikan memori ini, atur [`CLAUDE_CODE_SKIP_MODEL_ACCESS_MEMORY=1`](/docs/id/env-vars).

423 423 

424<h3 id="when-your-organization-enforces-a-model-allowlist">424<h3 id="when-your-organization-enforces-a-model-allowlist">

425 Ketika organisasi Anda memberlakukan allowlist model425 Ketika organisasi Anda memberlakukan allowlist model


444 444 

445Jika akun Anda kehilangan akses ke model yang sesi Anda jalankan, misalnya karena administrator menonaktifkannya di akun Amazon Bedrock Anda, Claude Code beralih sesi ke model lain alih-alih gagal pada setiap permintaan, dan menampilkan `Switched to <fallback> because <model> is not available`. Claude Code mencoba model yang sama seperti fallback startup: versi sebelumnya dari tier yang sama terlebih dahulu dan, untuk sesi Opus tanpa versi Opus yang tersedia, model Sonnet default.445Jika akun Anda kehilangan akses ke model yang sesi Anda jalankan, misalnya karena administrator menonaktifkannya di akun Amazon Bedrock Anda, Claude Code beralih sesi ke model lain alih-alih gagal pada setiap permintaan, dan menampilkan `Switched to <fallback> because <model> is not available`. Claude Code mencoba model yang sama seperti fallback startup: versi sebelumnya dari tier yang sama terlebih dahulu dan, untuk sesi Opus tanpa versi Opus yang tersedia, model Sonnet default.

446 446 

447Pengalihan hanya berlaku untuk tier yang belum Anda sematkan, kondisi yang sama seperti fallback startup. Sesi pada versi spesifik yang Anda pilih, atau pada [profil inferensi aplikasi ARN](#map-each-model-version-to-an-inference-profile), mempertahankan modelnya dan, tanpa rantai fallback model, permintaan gagal sebagai gantinya. Dalam [mode auto](/docs/id/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code hanya beralih ke model yang didukung mode auto di Amazon Bedrock. Jika tidak ada model tersebut yang tersedia, permintaan gagal dengan [AWS authentication failed](/docs/id/errors#aws-authentication-failed) dan petunjuk untuk mengaktifkan model.447Pengalihan hanya berlaku untuk tier yang belum Anda sematkan, kondisi yang sama seperti fallback startup. Sesi pada versi spesifik yang Anda pilih, atau pada [profil inferensi aplikasi ARN](#map-each-model-version-to-an-inference-profile), mempertahankan modelnya dan, tanpa rantai fallback model, permintaan gagal sebagai gantinya. Dalam [auto mode](/docs/id/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry), Claude Code hanya beralih ke model yang didukung auto mode di Amazon Bedrock. Jika tidak ada model tersebut yang tersedia, permintaan gagal dengan [AWS authentication failed](/docs/id/errors#aws-authentication-failed) dan petunjuk untuk mengaktifkan model.

448 448 

449[Rantai fallback model](/docs/id/model-config#fallback-model-chains) yang Anda konfigurasi menggantikan pengalihan tier: pada penolakan ini Claude Code beralih ke fallback yang Anda konfigurasi sebagai gantinya. Untuk membuat permintaan yang ditolak gagal daripada beralih, atur [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/id/env-vars). Rantai fallback yang Anda konfigurasi masih beralih pada penolakan ini; hapus rantai juga jika Anda ingin setiap permintaan yang ditolak gagal.449[Rantai fallback model](/docs/id/model-config#fallback-model-chains) yang Anda konfigurasi menggantikan pengalihan tier: pada penolakan ini Claude Code beralih ke fallback yang Anda konfigurasi sebagai gantinya. Untuk membuat permintaan yang ditolak gagal daripada beralih, atur [`CLAUDE_CODE_DISABLE_MODEL_ACCESS_FALLBACK=1`](/docs/id/env-vars). Rantai fallback yang Anda konfigurasi masih beralih pada penolakan ini; hapus rantai juga jika Anda ingin setiap permintaan yang ditolak gagal.

450 450 

artifacts.md +1 −1

Details

105 Temukan artefak lagi105 Temukan artefak lagi

106</h2>106</h2>

107 107 

108Jalankan `/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.108Jalankan `/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**.

109 109 

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

111 111 

Details

321claude auto-mode defaults321claude auto-mode defaults

322```322```

323 323 

324Untuk membaca kata-kata lengkap satu aturan tanpa melalui pipa `jq`, berikan `--label` dengan awal label aturan, seperti `claude auto-mode defaults --label 'Git Destructive'`. Pencocokan adalah awalan yang tidak peka huruf besar-kecil pada label setiap aturan, dan bagian tanpa kecocokan dicetak sebagai daftar kosong. Memerlukan Claude Code v2.1.208 atau lebih baru.324Untuk membaca kata-kata lengkap satu aturan tanpa melalui pipa `jq`, berikan `--label` dengan awal label aturan, seperti `claude auto-mode defaults --label 'Git Destructive'`. Pencocokan adalah awalan yang tidak peka huruf besar-kecil pada label setiap aturan, dan bagian tanpa kecocokan dicetak sebagai daftar kosong.

325 325 

326Cetak apa yang sebenarnya digunakan pengklasifikasi sebagai JSON, dengan pengaturan Anda diterapkan di mana diatur dan default sebaliknya:326Cetak apa yang sebenarnya digunakan pengklasifikasi sebagai JSON, dengan pengaturan Anda diterapkan di mana diatur dan default sebaliknya:

327 327 


335{335{

336 "allow": [336 "allow": [

337 ...337 ...

338 "Test Artifacts: Hardcoded test API keys, placeholder credentials in examples, atau hardcoding test cases. Placeholder berarti ditulis sebagai placeholder — file atau nilai yang disalin dari rahasia nyata atau jalur sensitif tidak pernah merupakan artefak pengujian (lihat Sensitive-Source Provenance).",338 "Test Artifacts: Hardcoded test API keys, placeholder credentials in examples, or hardcoding test cases. Placeholder means authored as a placeholder — a file or value copied from a real secret or sensitive path is never a test artifact (see Sensitive-Source Provenance).",

339 ...339 ...

340 ],340 ],

341 "soft_deny": [341 "soft_deny": [

342 "Git Destructive [named+specifics — **must name:** the destructive operation and its target]: Force pushing (`git push --force`), menghapus cabang jarak jauh, tag, atau rilis, atau menulis ulang riwayat jarak jauh. Juga `git commit --amend` ketika komit yang ditulis ulang bukan pekerjaan yang belum didorong agen: baik tidak ada `git commit` sebelumnya yang terlihat (HEAD mendahului sesi), atau `git push` dari cabang saat ini terlihat setelah komit terbaru (telah didorong). Dihapus ketika pengguna meminta untuk mengubah/mengubah kata/memperbaiki, atau ketika itu adalah pengubahan kata pesan saja (`--amend -m …`, tidak ada yang baru dipentaskan) dari komit yang terlihat dibuat agen sesi ini.",342 "Git Destructive [named+specifics — **must name:** the destructive operation and its target]: Force pushing (`git push --force`), deleting remote branches, tags, or releases, or rewriting remote history. Also `git commit --amend` when the commit being rewritten is not the agent's own unpushed work: either no prior `git commit` is visible (HEAD pre-dates the session), or a `git push` of the current branch is visible after the most recent commit (it has been pushed). Clears when the user asked to amend/reword/fixup, or when it is a message-only reword (`--amend -m …`, nothing newly staged) of a commit the agent visibly created this session.",

343 ...343 ...

344 ],344 ],

345 "hard_deny": [...],345 "hard_deny": [...],

346 "environment": [346 "environment": [

347 ...347 ...

348 "**Trusted repo**: Repositori git tempat agen dimulai (direktori kerjanya) dan remote(s) yang dikonfigurasinya. Ketika visibilitas publik/pribadi repo diberikan — oleh entri Repository visibility atau pesan pengguna sendiri — gunakan untuk menentukan ruang lingkup apa yang OK untuk dikomit atau didorong di sana: materi rahasia baik-baik saja di repo pribadi; di repo publik, hanya pekerjaan repo itu sendiri — dan konten yang diportasi, ditunjuk ulang, atau pertama kali dibaca dari luar repo sesi ini bukan pekerjaan miliknya, siapa pun yang mengarahkan port. Visibilitas menentukan ruang lingkup materi rahasia saja: rahasia dan data sensitif (pribadi & terpercaya) tidak pernah disetujui ke dalam repo apa pun oleh visibilitasnya (lihat Definitions).",348 "**Trusted repo**: The git repository the agent started in (its working directory) and its configured remote(s). When the repo's public/private visibility is given — by the Repository visibility entry or the user's own message — use it to scope what is OK to commit or push there: confidential material is fine in a private repo; in a public one, only that repo's own work is — and content ported, repointed, or first read from outside this session's repo is not its own work, whoever directed the port. Visibility scopes confidential material only: secrets and sensitive data (personal & entrusted) are never cleared into any repo by its visibility (see Definitions).",

349 ...349 ...

350 ]350 ]

351}351}


359 359 

360Jika Anda telah menulis aturan kustom, `claude auto-mode critique` meninjau mereka dan menandai entri yang ambigu, berlebihan, atau kemungkinan menyebabkan positif palsu.360Jika Anda telah menulis aturan kustom, `claude auto-mode critique` meninjau mereka dan menandai entri yang ambigu, berlebihan, atau kemungkinan menyebabkan positif palsu.

361 361 

362Untuk membuang kustomisasi Anda dan kembali ke default bawaan, jalankan subperintah reset. Ini memerlukan Claude Code v2.1.212 atau lebih baru dan menghapus bagian `autoMode` dari file pengaturan pengguna Anda:362Untuk membuang kustomisasi Anda dan kembali ke default bawaan, jalankan subperintah reset, yang menghapus bagian `autoMode` dari file pengaturan pengguna Anda:

363 363 

364```bash theme={null}364```bash theme={null}

365claude auto-mode reset365claude auto-mode reset

chrome.md +3 −3

Details

113 113 

114Dengan pengaturan ini aktif dan Claude Code v2.1.287 atau yang lebih baru, setiap sesi VS Code terhubung ke browser Anda saat dimulai, sehingga Claude dapat menggunakannya sebelum Anda mengetik `@browser`. Pada versi sebelumnya, atau dengan pengaturan ini nonaktif, sesi VS Code terhubung ketika Anda mengetik `@browser`.114Dengan pengaturan ini aktif dan Claude Code v2.1.287 atau yang lebih baru, setiap sesi VS Code terhubung ke browser Anda saat dimulai, sehingga Claude dapat menggunakannya sebelum Anda mengetik `@browser`. Pada versi sebelumnya, atau dengan pengaturan ini nonaktif, sesi VS Code terhubung ketika Anda mengetik `@browser`.

115 115 

116Claude Code dimulai secara normal ketika Chrome tidak berjalan. Sebelum v2.1.211, startup dapat hang ketika integrasi Chrome diaktifkan tetapi Chrome tidak berjalan.116Claude Code dimulai secara normal ketika Chrome tidak berjalan.

117 117 

118<Note>118<Note>

119 Mengaktifkan Chrome secara default meningkatkan penggunaan konteks karena tool browser dan instruksinya selalu dimuat. Jika Anda melihat peningkatan konsumsi konteks, matikan pengaturan ini dan hubungkan hanya saat diperlukan, dengan `--chrome` di CLI atau dengan mengetik [`@browser`](/docs/id/vs-code#automate-browser-tasks-with-chrome) di kotak prompt VS Code.119 Mengaktifkan Chrome secara default meningkatkan penggunaan konteks karena tool browser dan instruksinya selalu dimuat. Jika Anda melihat peningkatan konsumsi konteks, matikan pengaturan ini dan hubungkan hanya saat diperlukan, dengan `--chrome` di CLI atau dengan mengetik [`@browser`](/docs/id/vs-code#automate-browser-tasks-with-chrome) di kotak prompt VS Code.


192 Unggah file ke halaman web192 Unggah file ke halaman web

193</h3>193</h3>

194 194 

195Claude dapat melampirkan file dari mesin Anda ke bidang unggah di halaman. Claude Code membaca file dan mengirim isinya ke browser, sehingga unggahan berfungsi di sesi lokal dan jarak jauh. Memerlukan Claude Code v2.1.211 atau lebih baru.195Claude dapat melampirkan file dari mesin Anda ke bidang unggah di halaman. Claude Code membaca file dan mengirim isinya ke browser, sehingga unggahan berfungsi di sesi lokal dan jarak jauh.

196 196 

197Contoh ini melampirkan file log ke formulir:197Contoh ini melampirkan file log ke formulir:

198 198 


271Take a screenshot of the checkout page and save it to disk271Take a screenshot of the checkout page and save it to disk

272```272```

273 273 

274Claude menyimpan gambar ke disk dan melaporkan jalur file. Sebelum v2.1.211, opsi `save_to_disk` alat tangkapan layar tidak menulis file.274Claude menyimpan gambar ke disk dan melaporkan jalur file.

275 275 

276<h2 id="troubleshooting">276<h2 id="troubleshooting">

277 Troubleshooting277 Troubleshooting

Details

500 Pipa CI dan mesin jarak jauh500 Pipa CI dan mesin jarak jauh

501</h3>501</h3>

502 502 

503Tidak ada alur token layanan untuk pipa yang tidak diawasi. Masuk gateway selalu menjalankan alur perangkat browser, jadi pekerjaan CI tanpa pengembang untuk menyetujui masuk tidak dapat mengautentikasi; konfigurasikan itu terhadap penyedia Anda secara langsung.503Tidak ada alur token layanan untuk pipa yang tidak diawasi. Masuk gateway selalu menjalankan alur perangkat browser, jadi pekerjaan CI tanpa pengembang untuk menyetujui masuk tidak dapat mengautentikasi; konfigurasikan itu terhadap penyedia Anda secara langsung. Terapkan `forceLoginMethod` dan `forceLoginGatewayUrl` ke mesin pengembang dan jangan terapkan ke runner CI. Di mesin yang pengaturan terkelolanya menetapkan kunci tersebut, sesi yang mengautentikasi dengan `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` [keluar saat startup](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in).

504 504 

505Setelah pengembang masuk, setiap sesi Claude Code di mesin itu menggunakan sesi gateway, termasuk jalankan `claude -p` non-interaktif dan sesi yang dimulai oleh SDK Agent. Claude Code menerapkan [kebijakan gateway](/docs/id/claude-apps-gateway-config#managed) ke masing-masing.505Setelah pengembang masuk, setiap sesi Claude Code di mesin itu menggunakan sesi gateway, termasuk jalankan `claude -p` non-interaktif dan sesi yang dimulai oleh SDK Agent. Claude Code menerapkan [kebijakan gateway](/docs/id/claude-apps-gateway-config#managed) ke masing-masing.

506 506 

Details

340 340 

341Atur `forward_user_identity` hanya pada upstream yang `base_url` adalah proxy yang Anda operasikan. Gateway mengirim developer emails ke server apa pun yang `base_url` namai. Jika `base_url` adalah Anthropic API, yang merupakan default, gateway menolak untuk memulai.341Atur `forward_user_identity` hanya pada upstream yang `base_url` adalah proxy yang Anda operasikan. Gateway mengirim developer emails ke server apa pun yang `base_url` namai. Jika `base_url` adalah Anthropic API, yang merupakan default, gateway menolak untuk memulai.

342 342 

343<Note>

344 Jika Anda menetapkan `forward_user_identity` pada upstream Amazon Bedrock, gateway keluar saat startup dengan `Unrecognized key(s) in object: 'forward_user_identity'`. Jika proxy Anda berada di depan Bedrock, daftarkan proxy tersebut sebagai upstream `provider: anthropic`. Gateway mengirim upstream tersebut format Anthropic Messages, jadi proxy Anda harus [menerjemahkan permintaan untuk Bedrock](/docs/id/llm-gateway-protocol#format-mismatch-with-the-upstream). Untuk menamai setiap developer ke AWS sebagai gantinya, lihat [Per-developer AWS cost attribution](#per-developer-aws-cost-attribution).

345</Note>

346 

343<h4 id="amazon-bedrock">347<h4 id="amazon-bedrock">

344 Amazon Bedrock348 Amazon Bedrock

345</h4>349</h4>


1133 1137 

1134* Daftar model, dari `availableModels`. [Konteks diperluas di Claude Desktop](#extended-context-in-claude-desktop) membahas opsi konteks 1M setiap model1138* Daftar model, dari `availableModels`. [Konteks diperluas di Claude Desktop](#extended-context-in-claude-desktop) membahas opsi konteks 1M setiap model

1135* Tool yang dinonaktifkan, dari entri `permissions.deny` nama tool telanjang. Jika Anda menetapkan `disabledBuiltinTools` dalam blok `desktop` kebijakan, gateway melayani gabungan nilai Anda dan daftar yang diturunkan, sehingga Anda dapat menonaktifkan lebih banyak tool dengan cara ini tetapi tidak dapat mengaktifkan kembali yang Anda nonaktifkan melalui `permissions.deny`1139* Tool yang dinonaktifkan, dari entri `permissions.deny` nama tool telanjang. Jika Anda menetapkan `disabledBuiltinTools` dalam blok `desktop` kebijakan, gateway melayani gabungan nilai Anda dan daftar yang diturunkan, sehingga Anda dapat menonaktifkan lebih banyak tool dengan cara ini tetapi tidak dapat mengaktifkan kembali yang Anda nonaktifkan melalui `permissions.deny`

1136* Allowlist egress, dari `sandbox.network.allowedDomains`. Jika Anda menetapkan `coworkEgressAllowedHosts` dalam blok `desktop` kebijakan, gateway menggunakan nilai itu alih-alih daftar yang diturunkan1140* Allowlist egress, dari `sandbox.network.allowedDomains`. Jika Anda mengatur `coworkEgressAllowedHosts` di blok `desktop` kebijakan, gateway menggunakan nilai tersebut sebagai pengganti daftar turunan. Jika allowlist yang dilayani gateway mencakup `*` dan gateway tidak juga melayani [`allowedWorkspaceFolders`](https://claude.com/docs/third-party/claude-desktop/code#applied-as-managed-policy) Claude Desktop, Claude Desktop tidak mengaktifkan [sandbox Bash](/docs/id/sandboxing) di tab Code

1137* Endpoint OTLP yang menunjuk ke gateway itu sendiri, dan atribut identitas pengguna yang masuk. Gateway meneruskan ekspor yang diterimanya di endpoint itu ke tujuan `forward_to` Anda. Ini menyertakan endpoint dan atribut ketika Anda menetapkan [`telemetry.forward_to`](#telemetry) dan `listen.public_url`.1141* Endpoint OTLP yang menunjuk ke gateway itu sendiri, dan atribut identitas pengguna yang masuk. Gateway meneruskan ekspor yang diterimanya di endpoint itu ke tujuan `forward_to` Anda. Ini menyertakan endpoint dan atribut ketika Anda menetapkan [`telemetry.forward_to`](#telemetry) dan `listen.public_url`.

1138 1142 

1139 Claude Desktop mengekspor setiap sinyal dengan satu pengkodean: `http/protobuf`, atau `http/json` ketika Anda menetapkan `OTEL_EXPORTER_OTLP_PROTOCOL` atau salah satu varian per-sinyal ke `http/json` dalam `env` kebijakan. Sebelum Claude Code v2.1.261 di server gateway, respons menetapkan `http/json` terlepas, jadi kolektor yang hanya menerima protobuf menolak ekspor Claude Desktop1143 Claude Desktop mengekspor setiap sinyal dengan satu pengkodean: `http/protobuf`, atau `http/json` ketika Anda menetapkan `OTEL_EXPORTER_OTLP_PROTOCOL` atau salah satu varian per-sinyal ke `http/json` dalam `env` kebijakan. Sebelum Claude Code v2.1.261 di server gateway, respons menetapkan `http/json` terlepas, jadi kolektor yang hanya menerima protobuf menolak ekspor Claude Desktop


1374 1378 

1375Kedua pengkodean OTLP protobuf dan JSON diteruskan, dan backend yang kompatibel OpenTelemetry apa pun bekerja sebagai tujuan.1379Kedua pengkodean OTLP protobuf dan JSON diteruskan, dan backend yang kompatibel OpenTelemetry apa pun bekerja sebagai tujuan.

1376 1380 

1381<h4 id="send-cumulative-metrics">

1382 Mengirim metrik kumulatif

1383</h4>

1384 

1385Jika collector Anda hanya menerima metrik kumulatif, atur [`OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE`](/docs/id/monitoring-usage#common-configuration-variables) ke `cumulative`. Claude Code mengirim metrik delta secara default, dan gateway meneruskannya tanpa mengonversinya. Atur variabel di tempat setiap jenis sesi membacanya:

1386 

1387* **Sesi terminal**: di blok `env` di bawah [kunci `cli` atau `code`](#choose-cli-or-code) kebijakan

1388* **Sesi Cowork yang [berjalan di mesin pengguna](/docs/id/managed-settings#where-and-when-a-policy-applies)**: di blok `env` dari [pengaturan terkelola sisi klien](#client-side-managed-settings) di mesin tersebut

1389* **Sesi tab Code di bawah kebijakan `code`**: di blok `env` kebijakan, setelah Anda memenuhi [kondisi agar pengaturan `code` berlaku](#apply-code-settings-in-the-code-tab)

1390* **Sesi tab Code di bawah kebijakan `cli`**: di blok `env` dari pengaturan terkelola sisi klien di mesin yang menjalankan sesi. Melalui SSH, itu adalah host jarak jauh.

1391 

1392Jika Anda menambahkan variabel ke pengaturan terkelola suatu mesin, atur juga [`parentSettingsBehavior: "merge"`](/docs/id/claude-apps-gateway#set-the-opt-in) di sumber dengan prioritas tertinggi di mesin tersebut. Tanpanya, sesi Cowork dan sesi tab Code di bawah kebijakan `cli` berjalan tanpa allowlist egress dan kebijakan lain yang diteruskan Claude Desktop kepadanya sebagai pengaturan induk.

1393 

1377<h4 id="add-your-own-labels">1394<h4 id="add-your-own-labels">

1378 Tambahkan label Anda sendiri1395 Tambahkan label Anda sendiri

1379</h4>1396</h4>

Details

1706claude purge ~/work/my-repo --yes1706claude purge ~/work/my-repo --yes

1707```1707```

1708 1708 

1709Teruskan `--all` alih-alih jalur untuk membersihkan status untuk setiap proyek sekaligus, yang menghapus `history.jsonl` sepenuhnya daripada memfilternya. Teruskan `-i` untuk melangkah melalui rencana penghapusan satu item pada satu waktu.1709Opsi lainnya:

1710 

1711* Teruskan `--all` alih-alih jalur untuk membersihkan status untuk setiap proyek sekaligus, yang menghapus `history.jsonl` sepenuhnya daripada memfilternya.

1712* Teruskan `-i` untuk melangkah melalui rencana penghapusan satu item pada satu waktu.

1710 1713 

1711Perintah membiarkan `shell-snapshots/` dan `backups/` sendirian karena tidak termasuk dalam cakupan proyek, dan memperingatkan tentang mereka dalam output rencana. Jika ada yang pernah menjalankan [`/heapdump`](/docs/id/troubleshooting#high-cpu-or-memory-usage) di mesin tersebut, hapus juga file `.heapsnapshot` yang ditulisnya. Heap snapshot berisi percakapan lengkap dan kredensial apa pun yang dipegang proses, dan baik sweep retensi maupun purge tidak menyentuhnya.1714Perintah membiarkan `shell-snapshots/` dan `backups/` sendirian karena tidak termasuk dalam cakupan proyek, dan memperingatkan tentang mereka dalam output rencana. Jika ada yang pernah menjalankan [`/heapdump`](/docs/id/troubleshooting#high-cpu-or-memory-usage) di mesin tersebut, hapus juga file `.heapsnapshot` yang ditulisnya. Heap snapshot berisi percakapan lengkap dan kredensial apa pun yang dipegang proses, dan baik sweep retensi maupun purge tidak menyentuhnya.

1712 1715 

1713Anda juga dapat menghapus salah satu jalur data aplikasi di atas dengan tangan, terlepas dari [file status untuk disimpan](#state-files-to-keep). Sesi baru tidak terpengaruh. Tabel di bawah menunjukkan apa yang Anda hilangkan untuk sesi masa lalu.1716Anda juga dapat menghapus sendiri salah satu jalur data aplikasi di atas, kecuali [file status untuk disimpan](#state-files-to-keep).

1714 1717 

1715| Hapus | Anda kehilangan |1718| Hapus | Anda kehilangan |

1716| - | - |1719| - | - |


1726| `~/.claude/remote-settings.json` | Tidak ada. Diambil kembali saat peluncuran berikutnya. |1729| `~/.claude/remote-settings.json` | Tidak ada. Diambil kembali saat peluncuran berikutnya. |

1727| `~/.claude/cache/changelog.md` | Tidak ada. Disegarkan di latar belakang. |1730| `~/.claude/cache/changelog.md` | Tidak ada. Disegarkan di latar belakang. |

1728| `~/.claude/policy-limits.json` | Tidak ada. Disegarkan secara otomatis. |1731| `~/.claude/policy-limits.json` | Tidak ada. Disegarkan secara otomatis. |

1729| `~/.claude/tasks/` | Daftar tugas yang akan diambil sesi yang dilanjutkan |1732| `~/.claude/tasks/` | [Daftar tugas](/docs/id/interactive-mode#task-list) Anda, termasuk yang masih digunakan |

1730| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | Kesempatan untuk memulihkan [skills yang disinkronkan](/docs/id/skills#how-synced-skills-behave) dan [plugins yang disinkronkan](/docs/id/plugins/loading#synced-plugins) yang Claude Code hapus |1733| `~/.claude/skills/.trash/`, `~/.claude/plugins/.trash/` | Kesempatan untuk memulihkan [skills yang disinkronkan](/docs/id/skills#how-synced-skills-behave) dan [plugins yang disinkronkan](/docs/id/plugins/loading#synced-plugins) yang Claude Code hapus |

1731| `~/.claude/plugins/installed_plugins.set-aside.<date>.<hash>.json`, `~/.claude/plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Salinan catatan pemasangan plugin yang Claude Code hapus atau tidak dapat dibaca. Tidak ada yang membacanya kembali |1734| `~/.claude/plugins/installed_plugins.set-aside.<date>.<hash>.json`, `~/.claude/plugins/installed_plugins.unreadable.<date>.<hash>.kept` | Salinan catatan pemasangan plugin yang Claude Code hapus atau tidak dapat dibaca. Tidak ada yang membacanya kembali |

1732| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Tidak ada yang menghadap pengguna |1735| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Tidak ada yang menghadap pengguna |

Details

115| `--no-session-persistence` | Nonaktifkan persistensi sesi sehingga sesi tidak disimpan ke disk dan tidak dapat dilanjutkan. Mode cetak saja. Variabel lingkungan [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/id/env-vars) melakukan hal yang sama dalam mode apa pun | `claude -p --no-session-persistence "query"` |115| `--no-session-persistence` | Nonaktifkan persistensi sesi sehingga sesi tidak disimpan ke disk dan tidak dapat dilanjutkan. Mode cetak saja. Variabel lingkungan [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/id/env-vars) melakukan hal yang sama dalam mode apa pun | `claude -p --no-session-persistence "query"` |

116| `--output-format` | Tentukan format output untuk mode cetak (opsi: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |116| `--output-format` | Tentukan format output untuk mode cetak (opsi: `text`, `json`, `stream-json`) | `claude -p "query" --output-format json` |

117| `--permission-mode` | Mulai dalam [mode izin](/docs/id/permission-modes) yang ditentukan. Menerima `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, atau `manual` sebagai alias untuk `default`. Alias `manual` memilih mode izin yang UI label Manual dan memerlukan Claude Code v2.1.200 atau lebih baru; `claude --help` mencantumnya sebagai pengganti `default`, dan kedua nilai berfungsi. Menimpa `defaultMode` dari file pengaturan. Tanpa bendera ini atau `--dangerously-skip-permissions`, sesi baru dimulai dalam mode izin yang dijelaskan dalam [mode izin mana sesi dimulai](/docs/id/permission-modes#which-mode-a-session-starts-in), yang juga mencakup apa yang dimulai oleh jalankan `-p` | `claude --permission-mode plan` |117| `--permission-mode` | Mulai dalam [mode izin](/docs/id/permission-modes) yang ditentukan. Menerima `default`, `acceptEdits`, `plan`, `auto`, `dontAsk`, `bypassPermissions`, atau `manual` sebagai alias untuk `default`. Alias `manual` memilih mode izin yang UI label Manual dan memerlukan Claude Code v2.1.200 atau lebih baru; `claude --help` mencantumnya sebagai pengganti `default`, dan kedua nilai berfungsi. Menimpa `defaultMode` dari file pengaturan. Tanpa bendera ini atau `--dangerously-skip-permissions`, sesi baru dimulai dalam mode izin yang dijelaskan dalam [mode izin mana sesi dimulai](/docs/id/permission-modes#which-mode-a-session-starts-in), yang juga mencakup apa yang dimulai oleh jalankan `-p` | `claude --permission-mode plan` |

118| `--permission-prompt-tool` | Tentukan alat MCP untuk menangani prompt izin dalam mode non-interaktif. Claude Code menunggu server MCP alat itu untuk terhubung sebelum menjalankan putaran pertama, hingga waktu tunggu startup [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default. <br /><br />Alat prompt tidak dapat menyetujui alat MCP yang ditandai sebagai [memerlukan interaksi pengguna](/docs/id/mcp#require-approval-for-a-specific-tool): Claude Code mengonversi hasil `allow` untuk satu ke penolakan. Pembatasan ini memerlukan Claude Code v2.1.199 atau lebih baru | `claude -p --permission-prompt-tool mcp_auth_tool "query"` |118| `--permission-prompt-tool` | Tentukan tool MCP untuk menangani permintaan izin dalam mode non-interaktif. Teruskan nama lengkap, seperti `mcp__<server>__<tool>`, dari tool pada server MCP yang dimuat oleh eksekusi tersebut. Claude Code menunggu server MCP tool itu untuk terhubung sebelum menjalankan giliran pertama, hingga timeout startup [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default. <br /><br />Tool prompt tidak dapat menyetujui tool MCP yang ditandai sebagai [memerlukan interaksi pengguna](/docs/id/mcp#require-approval-for-a-specific-tool): Claude Code mengonversi hasil `allow` untuk tool tersebut menjadi penolakan. Pembatasan ini memerlukan Claude Code v2.1.199 atau lebih baru | `claude -p --mcp-config ./mcp.json --permission-prompt-tool mcp__permissions__approve "query"` |

119| `--permission-prompts` | Atur siapa yang menjawab prompt izin dalam mode cetak. Dengan `host` default, Claude Code mengirimnya ke host Agent SDK atau alat `--permission-prompt-tool`. Lewatkan `none` ketika tidak ada yang dapat menjawab, dan Claude Code menolaknya sebagai gantinya. Lihat [Matikan prompt izin dalam jalankan tanpa pengawasan](/docs/id/headless#turn-off-permission-prompts-in-unattended-runs). Memerlukan Claude Code v2.1.259 atau lebih baru | `claude -p --permission-prompts none "query"` |119| `--permission-prompts` | Atur siapa yang menjawab prompt izin dalam mode cetak. Dengan `host` default, Claude Code mengirimnya ke host Agent SDK atau alat `--permission-prompt-tool`. Lewatkan `none` ketika tidak ada yang dapat menjawab, dan Claude Code menolaknya sebagai gantinya. Lihat [Matikan prompt izin dalam jalankan tanpa pengawasan](/docs/id/headless#turn-off-permission-prompts-in-unattended-runs). Memerlukan Claude Code v2.1.259 atau lebih baru | `claude -p --permission-prompts none "query"` |

120| `--plugin-dir` | Muat plugin dari direktori atau arsip `.zip`, atau beberapa dari [folder plugin](/docs/id/plugins/create#load-a-directory-or-archive-for-one-session), hanya untuk sesi ini. Setiap bendera mengambil satu jalur. Ulangi bendera untuk lebih banyak jalur: `--plugin-dir A --plugin-dir B.zip`. Melewatkan folder plugin memerlukan Claude Code v2.1.265 atau lebih baru | `claude --plugin-dir ./my-plugin` |120| `--plugin-dir` | Muat plugin dari direktori atau arsip `.zip`, atau beberapa dari [folder plugin](/docs/id/plugins/create#load-a-directory-or-archive-for-one-session), hanya untuk sesi ini. Setiap bendera mengambil satu jalur. Ulangi bendera untuk lebih banyak jalur: `--plugin-dir A --plugin-dir B.zip`. Melewatkan folder plugin memerlukan Claude Code v2.1.265 atau lebih baru | `claude --plugin-dir ./my-plugin` |

121| `--plugin-url` | Ambil arsip plugin `.zip` dari URL hanya untuk sesi ini. Ulangi bendera untuk beberapa plugin, atau lewatkan URL yang dipisahkan spasi dalam nilai yang dikutip tunggal | `claude --plugin-url https://example.com/plugin.zip` |121| `--plugin-url` | Ambil arsip plugin `.zip` dari URL hanya untuk sesi ini. Ulangi bendera untuk beberapa plugin, atau lewatkan URL yang dipisahkan spasi dalam nilai yang dikutip tunggal | `claude --plugin-url https://example.com/plugin.zip` |

Details

117 117 

118* **Repositori diatur ke Manual**: cara meminta review dengan komentar118* **Repositori diatur ke Manual**: cara meminta review dengan komentar

119* **Pull request berasal dari fork**: bahwa maintainer dapat meminta review119* **Pull request berasal dari fork**: bahwa maintainer dapat meminta review

120* **Bot, atau seseorang tanpa akses tulis, memberi komentar `@claude review`**: bahwa tidak ada review yang dimulai, dan siapa yang dapat memintanya120* **Bot, atau seseorang tanpa akses tulis yang bukan penulis pull request tersebut, memberi komentar `@claude review`**: bahwa tidak ada review yang dimulai, dan siapa yang dapat memintanya

121* **Organisasi GitHub tidak tertaut ke organisasi Claude Anda**: bahwa review dijeda, dan cara menautkannya121* **Organisasi GitHub tidak tertaut ke organisasi Claude Anda**: bahwa review dijeda, dan cara menautkannya

122 122 

123Nonaktifkan pengaturan ini untuk menghentikan komentar-komentar tersebut.123Nonaktifkan pengaturan ini untuk menghentikan komentar-komentar tersebut.

Details

38 38 

39* **Code Review tidak diaktifkan untuk repositori ini**: Claude tidak memposting komentar maupun check run sebagai respons terhadap perintah tersebut. Minta seorang Owner untuk [menambahkan repositori](/docs/id/code-review-setup#add-more-repositories).39* **Code Review tidak diaktifkan untuk repositori ini**: Claude tidak memposting komentar maupun check run sebagai respons terhadap perintah tersebut. Minta seorang Owner untuk [menambahkan repositori](/docs/id/code-review-setup#add-more-repositories).

40* **Komentar tidak memenuhi suatu syarat**: komentar tersebut merupakan komentar inline atau isi review, bukan komentar tingkat atas yang baru, atau perintahnya tidak berada di awal komentar. Mengedit komentar sebelumnya alih-alih memposting komentar baru juga tidak dihitung, dan pull request harus dalam keadaan terbuka. Lihat [syarat untuk perintah komentar](/docs/id/code-review-pull-requests#comment-commands) dan posting komentar baru yang memenuhinya.40* **Komentar tidak memenuhi suatu syarat**: komentar tersebut merupakan komentar inline atau isi review, bukan komentar tingkat atas yang baru, atau perintahnya tidak berada di awal komentar. Mengedit komentar sebelumnya alih-alih memposting komentar baru juga tidak dihitung, dan pull request harus dalam keadaan terbuka. Lihat [syarat untuk perintah komentar](/docs/id/code-review-pull-requests#comment-commands) dan posting komentar baru yang memenuhinya.

41* **Anda tidak memiliki akses tulis**: Anda memerlukan izin write, maintain, atau admin pada repositori, dan pada pull request dari fork, izin yang berlaku adalah izin pada repositori dasar. Jika organisasi Anda mengaktifkan tips, Claude membalas "No review was started: manual reviews can only be requested by someone with write access to this repository." Minta seseorang yang memiliki akses tulis untuk memberi komentar.41* **Anda tidak memiliki akses tulis**: Anda memerlukan izin write, maintain, atau admin pada repositori. Pada pull request dari fork, izin yang berlaku adalah izin pada repositori dasar. Kecuali pull request tersebut milik Anda, Claude dapat membalas dengan [tip](/docs/id/code-review-setup#turn-tip-comments-on-or-off): "No review was started: manual reviews can only be requested by someone with write access to this repository." Minta seseorang yang memiliki akses tulis untuk memberi komentar.

42* **Anggaran habis**: Claude memposting komentar yang diawali dengan "⚠️ Code review skipped". Lihat [Review tidak berjalan dan PR menampilkan pesan anggaran](#review-didn’t-run-and-the-pr-shows-a-budget-message).42* **Anggaran habis**: Claude memposting komentar yang diawali dengan "⚠️ Code review skipped". Lihat [Review tidak berjalan dan PR menampilkan pesan anggaran](#review-didn’t-run-and-the-pr-shows-a-budget-message).

43 43 

44<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">44<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">

commands.md +5 −5

Details

65| `/background [prompt]` | Lepaskan sesi saat ini untuk berjalan sebagai [agent latar belakang](/docs/id/agent-view) dan bebaskan terminal ini. Berikan prompt untuk mengirim satu instruksi lagi sebelum melepaskan. Pantau sesi dengan `claude agents`. Untuk menyalin percakapan ke sesi latar belakang baru sementara sesi ini terus berjalan, gunakan `/fork`. Alias: `/bg` |65| `/background [prompt]` | Lepaskan sesi saat ini untuk berjalan sebagai [agent latar belakang](/docs/id/agent-view) dan bebaskan terminal ini. Berikan prompt untuk mengirim satu instruksi lagi sebelum melepaskan. Pantau sesi dengan `claude agents`. Untuk menyalin percakapan ke sesi latar belakang baru sementara sesi ini terus berjalan, gunakan `/fork`. Alias: `/bg` |

66| `/batch <instruction>` | **[Skill](/docs/id/skills#bundled-skills).** Orkestrasi perubahan skala besar di seluruh codebase secara paralel. Meneliti codebase, menguraikan pekerjaan menjadi 5 hingga 30 unit independen, dan menyajikan rencana. Setelah disetujui, spawn satu [subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) per unit dalam [worktree](/docs/id/worktrees) terisolasi. Setiap subagent mengimplementasikan unitnya, menjalankan tes, dan menerbitkan perubahannya. Memerlukan repositori git atau [hook `WorktreeCreate`](/docs/id/worktrees#non-git-version-control) yang membuat worktree. Di luar repositori git, `/batch` memerlukan Claude Code v2.1.281 atau lebih baru. Contoh: `/batch migrate src/ from JavaScript to TypeScript` |66| `/batch <instruction>` | **[Skill](/docs/id/skills#bundled-skills).** Orkestrasi perubahan skala besar di seluruh codebase secara paralel. Meneliti codebase, menguraikan pekerjaan menjadi 5 hingga 30 unit independen, dan menyajikan rencana. Setelah disetujui, spawn satu [subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) per unit dalam [worktree](/docs/id/worktrees) terisolasi. Setiap subagent mengimplementasikan unitnya, menjalankan tes, dan menerbitkan perubahannya. Memerlukan repositori git atau [hook `WorktreeCreate`](/docs/id/worktrees#non-git-version-control) yang membuat worktree. Di luar repositori git, `/batch` memerlukan Claude Code v2.1.281 atau lebih baru. Contoh: `/batch migrate src/ from JavaScript to TypeScript` |

67| `/branch [name]` | Buat branch dari percakapan saat ini pada titik ini, sehingga Anda dapat mencoba arah berbeda tanpa kehilangan percakapan seperti adanya. Beralih ke branch dan menyimpan yang asli, yang dapat Anda kembali dengan `/resume`. Untuk menjalankan salinan sebagai [sesi latar belakang](/docs/id/agent-view) terpisah alih-alih beralih ke dalamnya, gunakan `/fork`; untuk menyerahkan tugas sampingan ke [subagent](/docs/id/sub-agents) yang melaporkan kembali ke percakapan ini, gunakan `/subtask` |67| `/branch [name]` | Buat branch dari percakapan saat ini pada titik ini, sehingga Anda dapat mencoba arah berbeda tanpa kehilangan percakapan seperti adanya. Beralih ke branch dan menyimpan yang asli, yang dapat Anda kembali dengan `/resume`. Untuk menjalankan salinan sebagai [sesi latar belakang](/docs/id/agent-view) terpisah alih-alih beralih ke dalamnya, gunakan `/fork`; untuk menyerahkan tugas sampingan ke [subagent](/docs/id/sub-agents) yang melaporkan kembali ke percakapan ini, gunakan `/subtask` |

68| `/btw [question]` | Tanyakan [pertanyaan sampingan](/docs/id/interactive-mode#side-questions-with-%2Fbtw) tentang sesi saat ini tanpa menambahkan ke percakapan. Jika Anda menjalankan `/btw` tanpa pertanyaan, Claude Code menunjukkan pertanyaan sampingan terbaru Anda sehingga Anda dapat menelusuri jawaban sebelumnya; jika Anda belum menanyakan satu pun, Claude Code mencetak baris penggunaan. Sebelum v2.1.212, `/btw` memerlukan pertanyaan |68| `/btw [question]` | Tanyakan [pertanyaan sampingan](/docs/id/interactive-mode#side-questions-with-%2Fbtw) tentang sesi saat ini tanpa menambahkan ke percakapan. Jika Anda menjalankan `/btw` tanpa pertanyaan, Claude Code menunjukkan pertanyaan sampingan terbaru Anda sehingga Anda dapat menelusuri jawaban sebelumnya; jika Anda belum menanyakan satu pun, Claude Code mencetak baris penggunaan |

69| `/bug [report]` | Laporkan bug atau bagikan percakapan Anda. Anda memilih berapa banyak riwayat sesi yang akan disertakan dan konfirmasi di layar persetujuan sebelum apa pun dikirim. Ketika Anda masuk ke Anthropic pada koneksi pihak pertama, laporan pergi ke Anthropic; pada penyedia pihak ketiga, atau tanpa kredensial Anthropic, Claude Code menulis laporan ke [arsip lokal di bawah `~/.claude/feedback-bundles/`](/docs/id/data-usage#telemetry-services) yang Anda teruskan sendiri. Di [ekstensi VS Code](/docs/id/vs-code#use-the-prompt-box), `/bug` membuka dialog umpan balik ekstensi sendiri; memerlukan Claude Code v2.1.229 atau lebih baru. Ketika Anda menjalankannya saat Claude merespons, Claude Code membuka dialog segera. Sebelum v2.1.232, Claude Code mengantrikan perintah sampai giliran selesai. Alias: `/share`. Sebelum v2.1.212, `/bug` dan `/share` adalah alias dari `/feedback` |69| `/bug [report]` | Laporkan bug atau bagikan percakapan Anda. Anda memilih berapa banyak riwayat sesi yang akan disertakan dan konfirmasi di layar persetujuan sebelum apa pun dikirim. Ketika Anda masuk ke Anthropic pada koneksi pihak pertama, laporan pergi ke Anthropic; pada penyedia pihak ketiga, atau tanpa kredensial Anthropic, Claude Code menulis laporan ke [arsip lokal di bawah `~/.claude/feedback-bundles/`](/docs/id/data-usage#telemetry-services) yang Anda teruskan sendiri. Di [ekstensi VS Code](/docs/id/vs-code#use-the-prompt-box), `/bug` membuka dialog umpan balik ekstensi sendiri; memerlukan Claude Code v2.1.229 atau lebih baru. Ketika Anda menjalankannya saat Claude merespons, Claude Code membuka dialog segera. Sebelum v2.1.232, Claude Code mengantrikan perintah sampai giliran selesai. Alias: `/share`. Sebelum v2.1.212, `/bug` dan `/share` adalah alias dari `/feedback` |

70| `/cd <path>` | Pindahkan sesi ini ke direktori kerja baru, menjaga percakapan. Ketik jalur sebagian untuk melihat saran direktori yang cocok; tekan `Tab` untuk menerima satu. Untuk apa yang Claude Code terapkan dari direktori baru segera setelah Anda pindah, dan bagaimana `/cd` berbeda dari `/add-dir`, lihat [Pindahkan sesi ke direktori lain](/docs/id/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | Pindahkan sesi ini ke direktori kerja baru, menjaga percakapan. Ketik jalur sebagian untuk melihat saran direktori yang cocok; tekan `Tab` untuk menerima satu. Untuk apa yang Claude Code terapkan dari direktori baru segera setelah Anda pindah, dan bagaimana `/cd` berbeda dari `/add-dir`, lihat [Pindahkan sesi ke direktori lain](/docs/id/permissions#move-the-session-to-another-directory) |

71| `/chrome` | Konfigurasi pengaturan [Claude di Chrome](/docs/id/chrome) |71| `/chrome` | Konfigurasi pengaturan [Claude di Chrome](/docs/id/chrome) |


95| `/feedback [report]` | Kirim umpan balik produk tentang Claude Code. Membuka dialog yang sama seperti [`/bug`](#all-commands), dengan langkah persetujuan yang sama, aturan pengiriman, dan perilaku di tengah giliran. Dalam sesi dengan [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), `/feedback` tanpa argumen membuka antrian draf sebagai gantinya, di mana Anda meninjau, mengedit, mengirim, atau membuang draf yang Claude antrikan; antrian mencakup opsi untuk menulis laporan baru dalam dialog. Dengan argumen, dan untuk `/bug` selalu, dialog membuka langsung |95| `/feedback [report]` | Kirim umpan balik produk tentang Claude Code. Membuka dialog yang sama seperti [`/bug`](#all-commands), dengan langkah persetujuan yang sama, aturan pengiriman, dan perilaku di tengah giliran. Dalam sesi dengan [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), `/feedback` tanpa argumen membuka antrian draf sebagai gantinya, di mana Anda meninjau, mengedit, mengirim, atau membuang draf yang Claude antrikan; antrian mencakup opsi untuk menulis laporan baru dalam dialog. Dengan argumen, dan untuk `/bug` selalu, dialog membuka langsung |

96| `/fewer-permission-prompts` | **[Skill](/docs/id/skills#bundled-skills).** Pindai transkrip Anda untuk panggilan tool Bash dan MCP read-only umum, kemudian tambahkan allowlist yang diprioritaskan ke `.claude/settings.json` proyek untuk mengurangi permintaan izin |96| `/fewer-permission-prompts` | **[Skill](/docs/id/skills#bundled-skills).** Pindai transkrip Anda untuk panggilan tool Bash dan MCP read-only umum, kemudian tambahkan allowlist yang diprioritaskan ke `.claude/settings.json` proyek untuk mengurangi permintaan izin |

97| `/focus` | Alihkan tampilan fokus, yang menunjukkan hanya prompt terakhir Anda, ringkasan panggilan tool satu baris dengan diffstat edit, dan respons akhir. Ringkasan panggilan tool juga menghitung subagent yang diluncurkan dalam giliran dan meruntuhkan notifikasi tugas latar belakang yang selesai menjadi satu hitungan. Pilihan bertahan di seluruh sesi; atur [`viewMode`](/docs/id/settings-reference#viewmode) dalam pengaturan untuk menimpanya. Hanya tersedia dalam [rendering layar penuh](/docs/id/fullscreen). Dari klien [Remote Control](/docs/id/remote-control), jalankan `/focus [on\|off]` untuk mengaktifkan atau menonaktifkan tampilan fokus untuk sesi saat ini saja, tanpa mengubah pilihan yang disimpan; ini memerlukan Claude Code v2.1.281 atau lebih baru. [Ekstensi VS Code](/docs/id/vs-code#use-the-prompt-box) menawarkan tampilan Focus sendiri sebagai toggle menu perintah, disimpan sebagai pengaturan ekstensi, independen dari `viewMode` |97| `/focus` | Alihkan tampilan fokus, yang menunjukkan hanya prompt terakhir Anda, ringkasan panggilan tool satu baris dengan diffstat edit, dan respons akhir. Ringkasan panggilan tool juga menghitung subagent yang diluncurkan dalam giliran dan meruntuhkan notifikasi tugas latar belakang yang selesai menjadi satu hitungan. Pilihan bertahan di seluruh sesi; atur [`viewMode`](/docs/id/settings-reference#viewmode) dalam pengaturan untuk menimpanya. Hanya tersedia dalam [rendering layar penuh](/docs/id/fullscreen). Dari klien [Remote Control](/docs/id/remote-control), jalankan `/focus [on\|off]` untuk mengaktifkan atau menonaktifkan tampilan fokus untuk sesi saat ini saja, tanpa mengubah pilihan yang disimpan; ini memerlukan Claude Code v2.1.281 atau lebih baru. [Ekstensi VS Code](/docs/id/vs-code#use-the-prompt-box) menawarkan tampilan Focus sendiri sebagai toggle menu perintah, disimpan sebagai pengaturan ekstensi, independen dari `viewMode` |

98| `/fork [prompt]` | [Salin percakapan saat ini](/docs/id/agent-view#copy-the-session-with-%2Ffork) ke sesi latar belakang baru dan terus bekerja di sini. Berikan prompt dan salinan mulai mengerjakannya segera; tanpa prompt, salinan menunggu di tampilan agent untuk prompt pertamanya. Kecuali ketika salinan [mengedit di tempat](/docs/id/agent-view#how-file-edits-are-isolated), Claude Code menginstruksikannya untuk membuat worktree sendiri sebelum membuat perubahan kode; instruksi isolasi memerlukan Claude Code v2.1.221 atau lebih baru. Untuk menyerahkan tugas sampingan ke subagent yang hasilnya kembali ke percakapan ini, gunakan `/subtask`; untuk beralih ke salinan sendiri, gunakan `/branch`. Memerlukan Claude Code v2.1.212 atau lebih baru; pada v2.1.161 hingga v2.1.211, dan kapan pun [tampilan agent dimatikan](/docs/id/agent-view#turn-off-agent-view), `/fork` memulai [subagent fork](/docs/id/sub-agents#fork-the-current-conversation) sebagai gantinya |98| `/fork [prompt]` | [Salin percakapan saat ini](/docs/id/agent-view#copy-the-session-with-%2Ffork) ke sesi latar belakang baru dan terus bekerja di sini. Berikan prompt dan salinan mulai mengerjakannya segera; tanpa prompt, salinan menunggu di tampilan agent untuk prompt pertamanya. Kecuali ketika salinan [mengedit di tempat](/docs/id/agent-view#how-file-edits-are-isolated), Claude Code menginstruksikannya untuk membuat worktree sendiri sebelum membuat perubahan kode; instruksi isolasi memerlukan Claude Code v2.1.221 atau lebih baru. Untuk menyerahkan tugas sampingan ke subagent yang hasilnya kembali ke percakapan ini, gunakan `/subtask`; untuk beralih ke salinan sendiri, gunakan `/branch`. Ketika [tampilan agent dimatikan](/docs/id/agent-view#turn-off-agent-view), `/fork` memulai [subagent fork](/docs/id/sub-agents#fork-the-current-conversation) sebagai gantinya |

99| `/goal [condition\|clear]` | Atur [tujuan](/docs/id/goal): Claude terus bekerja di seluruh giliran sampai kondisi terpenuhi atau tujuan [dihapus karena alasan lain](/docs/id/goal#how-evaluation-works). Tanpa argumen, menunjukkan tujuan saat ini atau yang paling baru dicapai. `clear`, `stop`, `off`, `reset`, `none`, atau `cancel` menghapus tujuan aktif lebih awal |99| `/goal [condition\|clear]` | Atur [tujuan](/docs/id/goal): Claude terus bekerja di seluruh giliran sampai kondisi terpenuhi atau tujuan [dihapus karena alasan lain](/docs/id/goal#how-evaluation-works). Tanpa argumen, menunjukkan tujuan saat ini atau yang paling baru dicapai. `clear`, `stop`, `off`, `reset`, `none`, atau `cancel` menghapus tujuan aktif lebih awal |

100| `/heapdump` | Tulis snapshot heap JavaScript dan rincian memori ke `~/Desktop`, atau direktori home Anda di Linux tanpa folder Desktop, untuk mendiagnosis penggunaan memori tinggi. Lampirkan hanya file `-diagnostics.json` saat melaporkan masalah memori; `.heapsnapshot` berisi percakapan lengkap dan kredensial Anda, jadi jangan bagikan. [Tersembunyi dari menu perintah](#how-the-command-menu-matches-what-you-type); ketik sepenuhnya. Lihat [apa yang harus dilakukan dengan output](/docs/id/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | Tulis snapshot heap JavaScript dan rincian memori ke `~/Desktop`, atau direktori home Anda di Linux tanpa folder Desktop, untuk mendiagnosis penggunaan memori tinggi. Lampirkan hanya file `-diagnostics.json` saat melaporkan masalah memori; `.heapsnapshot` berisi percakapan lengkap dan kredensial Anda, jadi jangan bagikan. [Tersembunyi dari menu perintah](#how-the-command-menu-matches-what-you-type); ketik sepenuhnya. Lihat [apa yang harus dilakukan dengan output](/docs/id/troubleshooting#high-cpu-or-memory-usage) |

101| `/help` | Tampilkan bantuan dan perintah tersedia |101| `/help` | Tampilkan bantuan dan perintah tersedia |

102| `/hooks` | Lihat konfigurasi [hook](/docs/id/hooks#the-%2Fhooks-menu) |102| `/hooks` | Lihat konfigurasi [hook](/docs/id/hooks#the-%2Fhooks-menu) |

103| `/ide` | Kelola integrasi IDE dan tampilkan status |103| `/ide` | Kelola integrasi IDE dan tampilkan status |

104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Bawa konfigurasi dari OpenAI Codex, Google Gemini CLI, atau Cursor di mesin Anda ke Claude Code, termasuk file instruksi, server MCP, perintah, subagent, dan skill. Dalam [mode non-interaktif](/docs/id/headless) dengan `-p`, `/import` mencantumkan apa yang ditemukan dan memberikan perintah yang mengonfirmasi impor. Tambahkan `--dry-run` untuk pratinjau tanpa menulis apa pun, atau `--yes` untuk melewati pemilih interaktif. Tidak tersedia di Amazon Bedrock, Platform Agen Google Cloud, Microsoft Foundry, atau Claude Platform di AWS, atau melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway#availability-and-limitations). Juga tidak tersedia ketika Anda mematikan [pengambilan feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching). Memerlukan Claude Code v2.1.213 atau lebih baru. Mengimpor dari Cursor memerlukan v2.1.265 atau lebih baru |104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | Bawa konfigurasi dari OpenAI Codex, Google Gemini CLI, atau Cursor di mesin Anda ke Claude Code, termasuk file instruksi, server MCP, perintah, subagent, dan skill. Dalam [mode non-interaktif](/docs/id/headless) dengan `-p`, `/import` mencantumkan apa yang ditemukan dan memberikan perintah yang mengonfirmasi impor. Tambahkan `--dry-run` untuk pratinjau tanpa menulis apa pun, atau `--yes` untuk melewati pemilih interaktif. Tidak tersedia di Amazon Bedrock, Platform Agen Google Cloud, Microsoft Foundry, atau Claude Platform di AWS, atau melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway#availability-and-limitations). Juga tidak tersedia ketika Anda mematikan [pengambilan feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching). Mengimpor dari Cursor memerlukan v2.1.265 atau lebih baru |

105| `/init` | Inisialisasi proyek dengan panduan `CLAUDE.md`. Atur `CLAUDE_CODE_NEW_INIT=1` untuk alur interaktif yang juga memandu melalui skill, hook, dan file memori pribadi. Jika `/init` menemukan konfigurasi OpenAI Codex atau Google Gemini CLI, ia menawarkan untuk membawanya dengan `/import` |105| `/init` | Inisialisasi proyek dengan panduan `CLAUDE.md`. Atur `CLAUDE_CODE_NEW_INIT=1` untuk alur interaktif yang juga memandu melalui skill, hook, dan file memori pribadi. Jika `/init` menemukan konfigurasi OpenAI Codex atau Google Gemini CLI, ia menawarkan untuk membawanya dengan `/import` |

106| `/insights` | Hasilkan laporan HTML yang menganalisis sesi terbaru Anda di mesin ini: proyek mana yang Anda kerjakan, bagaimana Anda menggunakan Claude Code, di mana hal-hal salah, dan fitur untuk dicoba. Tidak tersedia dalam [sesi cloud](/docs/id/claude-code-on-the-web). Lihat [Analisis pola penggunaan Anda](/docs/id/costs#analyze-your-usage-patterns) untuk lokasi laporan, retensi, dan biaya |106| `/insights` | Hasilkan laporan HTML yang menganalisis sesi terbaru Anda di mesin ini: proyek mana yang Anda kerjakan, bagaimana Anda menggunakan Claude Code, di mana hal-hal salah, dan fitur untuk dicoba. Tidak tersedia dalam [sesi cloud](/docs/id/claude-code-on-the-web). Lihat [Analisis pola penggunaan Anda](/docs/id/costs#analyze-your-usage-patterns) untuk lokasi laporan, retensi, dan biaya |

107| `/install-github-app` | Pasang Aplikasi GitHub Claude untuk repositori, dengan langkah opsional untuk menyiapkan workflow [GitHub Actions](/docs/id/github-actions) dan rahasia. Memandu Anda melalui pemilihan repo dan konfigurasi integrasi. Hanya bekerja dengan repositori github.com. Ketika remote git repositori Anda berada di gitlab.com atau bitbucket.org, perintah mencetak pemberitahuan dan keluar alih-alih memulai pengaturan. Untuk menjalankan Claude Code dari pipeline GitLab, lihat [GitLab CI/CD](/docs/id/gitlab-ci-cd) |107| `/install-github-app` | Pasang Aplikasi GitHub Claude untuk repositori, dengan langkah opsional untuk menyiapkan workflow [GitHub Actions](/docs/id/github-actions) dan rahasia. Memandu Anda melalui pemilihan repo dan konfigurasi integrasi. Hanya bekerja dengan repositori github.com. Ketika remote git repositori Anda berada di gitlab.com atau bitbucket.org, perintah mencetak pemberitahuan dan keluar alih-alih memulai pengaturan. Untuk menjalankan Claude Code dari pipeline GitLab, lihat [GitLab CI/CD](/docs/id/gitlab-ci-cd) |


153| `/statusline` | Konfigurasi [baris status](/docs/id/statusline) Claude Code. Jelaskan apa yang Anda inginkan, atau jalankan tanpa argumen untuk auto-konfigurasi dari prompt shell Anda |153| `/statusline` | Konfigurasi [baris status](/docs/id/statusline) Claude Code. Jelaskan apa yang Anda inginkan, atau jalankan tanpa argumen untuk auto-konfigurasi dari prompt shell Anda |

154| `/stickers` | Pesan stiker Claude Code |154| `/stickers` | Pesan stiker Claude Code |

155| `/stop` | Hentikan [sesi latar belakang](/docs/id/agent-view) yang sedang Anda lampirkan, atau sesi yang Anda kirimi perintah ini sebagai [balasan peek](/docs/id/agent-view#peek-and-reply); transkrip dan worktree apa pun disimpan. Untuk melepaskan tanpa menghentikan, gunakan `/exit` atau tekan `←` |155| `/stop` | Hentikan [sesi latar belakang](/docs/id/agent-view) yang sedang Anda lampirkan, atau sesi yang Anda kirimi perintah ini sebagai [balasan peek](/docs/id/agent-view#peek-and-reply); transkrip dan worktree apa pun disimpan. Untuk melepaskan tanpa menghentikan, gunakan `/exit` atau tekan `←` |

156| `/subtask <task>` | Spawn [subagent fork](/docs/id/sub-agents#fork-the-current-conversation): subagent latar belakang yang mewarisi percakapan lengkap dan mengerjakan tugas saat Anda terus bekerja. Hasilnya kembali ke percakapan ini ketika selesai. Untuk menyalin percakapan ke sesi latar belakang terpisah sebagai gantinya, gunakan `/fork`. Memerlukan Claude Code v2.1.212 atau lebih baru; pada v2.1.161 hingga v2.1.211 perintah ini adalah `/fork`. Ketika [tampilan agent dimatikan](/docs/id/agent-view#turn-off-agent-view), `/subtask` tidak tersedia dan `/fork` mempertahankan perilaku subagent fork |156| `/subtask <task>` | Spawn [subagent fork](/docs/id/sub-agents#fork-the-current-conversation): subagent latar belakang yang mewarisi percakapan lengkap dan mengerjakan tugas saat Anda terus bekerja. Hasilnya kembali ke percakapan ini ketika selesai. Untuk menyalin percakapan ke sesi latar belakang terpisah sebagai gantinya, gunakan `/fork`. Ketika [tampilan agent dimatikan](/docs/id/agent-view#turn-off-agent-view), `/subtask` tidak tersedia dan `/fork` memulai subagent fork sebagai gantinya |

157| `/tasks` | Lihat dan kelola pekerjaan latar belakang dalam sesi saat ini, termasuk subagent yang telah selesai. Juga tersedia sebagai `/bashes` |157| `/tasks` | Lihat dan kelola pekerjaan latar belakang dalam sesi saat ini, termasuk subagent yang telah selesai. Juga tersedia sebagai `/bashes` |

158| `/team-onboarding` | Hasilkan panduan onboarding tim dari riwayat penggunaan Claude Code Anda. Claude menganalisis sesi, perintah, dan penggunaan server MCP Anda dari 30 hari terakhir dan menghasilkan panduan markdown yang dapat ditempel rekan kerja sebagai pesan pertama untuk pengaturan cepat. Untuk pelanggan claude.ai di paket Pro, Max, Team, dan Enterprise, juga mengembalikan tautan bagikan yang dapat dibuka rekan kerja langsung di Claude Code |158| `/team-onboarding` | Hasilkan panduan onboarding tim dari riwayat penggunaan Claude Code Anda. Claude menganalisis sesi, perintah, dan penggunaan server MCP Anda dari 30 hari terakhir. Claude menghasilkan panduan markdown yang dapat ditempel rekan kerja sebagai pesan pertama untuk pengaturan cepat. Untuk pelanggan claude.ai di paket Team dan Enterprise, juga mengembalikan tautan bagikan yang dapat dibuka rekan kerja langsung di Claude Code |

159| `/teleport` | Tarik [sesi cloud](/docs/id/claude-code-on-the-web#from-cloud-to-terminal) ke terminal ini. Membuka pemilih, kemudian mengambil branch dan percakapan. Juga tersedia sebagai `/tp`. Memerlukan langganan claude.ai |159| `/teleport` | Tarik [sesi cloud](/docs/id/claude-code-on-the-web#from-cloud-to-terminal) ke terminal ini. Membuka pemilih, kemudian mengambil branch dan percakapan. Juga tersedia sebagai `/tp`. Memerlukan langganan claude.ai |

160| `/terminal-setup` | [Pasang pintasan keyboard Shift+Enter untuk baris baru](/docs/id/terminal-config#enter-multiline-prompts) di VS Code, Cursor, Devin Desktop, Alacritty, atau Zed. Di Apple Terminal, [aktifkan Option+Enter untuk baris baru dan matikan bel audibel](/docs/id/terminal-config#enable-option-key-shortcuts-on-macos) sebagai gantinya. Di iTerm2, [aktifkan akses clipboard sehingga `/copy` berfungsi](/docs/id/terminal-config#enable-option-key-shortcuts-on-macos) |160| `/terminal-setup` | [Pasang pintasan keyboard Shift+Enter untuk baris baru](/docs/id/terminal-config#enter-multiline-prompts) di VS Code, Cursor, Devin Desktop, Alacritty, atau Zed. Di Apple Terminal, [aktifkan Option+Enter untuk baris baru dan matikan bel audibel](/docs/id/terminal-config#enable-option-key-shortcuts-on-macos) sebagai gantinya. Di iTerm2, [aktifkan akses clipboard sehingga `/copy` berfungsi](/docs/id/terminal-config#enable-option-key-shortcuts-on-macos) |

161| `/theme` | Ubah tema warna. Mencakup opsi `auto` yang cocok dengan latar belakang terang atau gelap terminal Anda, varian terang dan gelap, tema yang dapat diakses buta warna (daltonized), tema ANSI yang menggunakan palet warna terminal Anda, dan [tema kustom](/docs/id/terminal-config#create-a-custom-theme) apa pun dari `~/.claude/themes/` atau plugin. Pilih **New custom theme…** untuk membuat satu |161| `/theme` | Ubah tema warna. Mencakup opsi `auto` yang cocok dengan latar belakang terang atau gelap terminal Anda, varian terang dan gelap, tema yang dapat diakses buta warna (daltonized), tema ANSI yang menggunakan palet warna terminal Anda, dan [tema kustom](/docs/id/terminal-config#create-a-custom-theme) apa pun dari `~/.claude/themes/` atau plugin. Pilih **New custom theme…** untuk membuat satu |

Details

120Ketika peluncur tidak dapat berjalan, Claude Code menolak untuk memulai proses alih-alih memulainya tanpa pembungkus. Di Windows, [variabel diabaikan](#what-the-launcher-covers) dan proses dimulai tanpa pembungkus. Claude Code memegang skrip ke aturan-aturan ini:120Ketika peluncur tidak dapat berjalan, Claude Code menolak untuk memulai proses alih-alih memulainya tanpa pembungkus. Di Windows, [variabel diabaikan](#what-the-launcher-covers) dan proses dimulai tanpa pembungkus. Claude Code memegang skrip ke aturan-aturan ini:

121 121 

122* **Akhiri dengan `exec "$@"`.** Peluncur yang melahirkan anak dan keluar meninggalkan proses Claude Code yatim piatu yang tidak dapat dilacak layanan latar belakang. Tampilan agen menandai sesi seperti itu gagal dengan pesan yang menyebutkan peluncur, dan layanan mengumpulkan apa yang ditinggalkan peluncur.122* **Akhiri dengan `exec "$@"`.** Peluncur yang melahirkan anak dan keluar meninggalkan proses Claude Code yatim piatu yang tidak dapat dilacak layanan latar belakang. Tampilan agen menandai sesi seperti itu gagal dengan pesan yang menyebutkan peluncur, dan layanan mengumpulkan apa yang ditinggalkan peluncur.

123* **Jangan urutkan ulang, serap, atau tambahkan argumen.** Argumen pertama adalah biner Claude Code dan semuanya setelahnya adalah argv-nya.123* **Jangan urutkan ulang, serap, atau tambahkan argumen Claude Code.** Hapus [argumen milik peluncur sendiri](#pass-arguments-to-the-launcher), yang datang lebih dulu, dan teruskan sisanya ke `exec` sebagaimana diterima.

124* **Lewatkan setiap variabel lingkungan yang diwarisi melalui ke `exec`.** Menambahkan variabel, seperti kredensial yang disuntikkan, baik-baik saja; menjatuhkan yang diwarisi tidak.124* **Lewatkan setiap variabel lingkungan yang diwarisi melalui ke `exec`.** Menambahkan variabel, seperti kredensial yang disuntikkan, baik-baik saja; menjatuhkan yang diwarisi tidak.

125 * Token autentikasi per-sesi, pemilihan model dan penyedia, dan `CLAUDE_CODE_PROCESS_WRAPPER` itu sendiri semuanya berjalan di lingkungan yang diwarisi, jadi peluncur yang membangun ulangnya dari daftar izin memecahkan sesi yang dimulainya, dan `/status` melaporkan ketidakcocokan peluncur.125 * Token autentikasi per-sesi, pemilihan model dan penyedia, dan `CLAUDE_CODE_PROCESS_WRAPPER` itu sendiri semuanya berjalan di lingkungan yang diwarisi, jadi peluncur yang membangun ulangnya dari daftar izin memecahkan sesi yang dimulainya, dan `/status` melaporkan ketidakcocokan peluncur.

126 * Jika peluncur harus memasuki namespace atau sandbox yang mengatur ulang lingkungan, ekspor ulang lingkungan yang diwarisi di dalamnya secara verbatim.126 * Jika peluncur harus memasuki namespace atau sandbox yang mengatur ulang lingkungan, ekspor ulang lingkungan yang diwarisi di dalamnya secara verbatim.

127* **Capai `exec` dalam sekitar tiga detik setiap kali peluncur berjalan.** Pengiriman latar belakang dingin menjalankan peluncur dua kali berturut-turut sebelum byte pertama output, jadi lakukan pekerjaan lambat seperti pertukaran single sign-on dengan malas atau dari cache.127* **Capai `exec` dalam sekitar tiga detik setiap kali peluncur berjalan.** Sesi latar belakang dapat menjalankan peluncur tiga kali berturut-turut sebelum output pertamanya. Lakukan pekerjaan lambat seperti pertukaran single sign-on secara malas atau dari cache, dan berikan batas waktu tersendiri untuk setiap langkah yang menunggu jaringan.

128* **Toleransi untuk diinvokasi dari dalam dirinya sendiri.** Claude Code menerapkan peluncur ke setiap self-spawn bersarang, jadi peluncur yang memperoleh sumber daya eksklusif harus mendeteksi bahwa itu sudah memegangnya.128* **Toleransi untuk diinvokasi dari dalam dirinya sendiri.** Claude Code menerapkan peluncur ke setiap self-spawn bersarang, jadi peluncur yang memperoleh sumber daya eksklusif harus mendeteksi bahwa itu sudah memegangnya.

129* **Jangan tulis ke terminal sebelum Claude Code dimulai.** Apa pun yang dicetak sebelum `exec` dilaporkan sebagai penyebab kerusakan jika sesi mati sebelum inisialisasi.129* **Jangan tulis ke terminal atau output standar sebelum Claude Code dimulai.** Apa pun yang dicetak sebelum `exec` dilaporkan sebagai penyebab kerusakan jika sesi mati sebelum inisialisasi. Teks pada output standar juga sampai ke program yang membaca output Claude Code, seperti skrip yang mengurai hasil `claude -p`.

130* **Jangan bergantung pada cara argumen dieja.** Nilai sebuah flag dapat tiba sebagai argumennya sendiri, `--flag value`, atau digabungkan dengan flag, `--flag=value`. Bentuk yang digunakan sebuah flag dapat berubah antar versi.130* **Jangan bergantung pada cara argumen dieja.** Nilai sebuah flag dapat tiba sebagai argumennya sendiri, `--flag value`, atau digabungkan dengan flag, `--flag=value`. Bentuk yang digunakan sebuah flag dapat berubah antar versi.

131* **Jalankan `exec` dari direktori tempat peluncur dimulai.** Claude Code bekerja di direktori tempat ia dimulai, sehingga peluncur yang mengubah direktori dapat memulai sesi di proyek yang salah. Jika peluncur harus memasuki namespace atau sandbox yang mengatur ulang direktori kerja, kembalilah ke direktori awal di dalamnya, sebelum `exec`.131* **Jalankan `exec` dari direktori tempat peluncur dimulai.** Claude Code bekerja di direktori tempat ia dimulai, sehingga peluncur yang mengubah direktori dapat memulai sesi di proyek yang salah. Jika peluncur harus memasuki namespace atau sandbox yang mengatur ulang direktori kerja, kembalilah ke direktori awal di dalamnya, sebelum `exec`.

132* **Jangan membaca input standar.** Perintah yang membacanya sebelum `exec`, seperti perintah yang meminta kata sandi, dapat menunggu input yang tidak pernah datang dan membuat sesi macet. Perintah itu juga dapat mengambil input yang ditujukan untuk Claude Code, dan sesi kemudian dapat berjalan tanpa input tersebut tanpa melaporkan kesalahan. Alihkan input perintah semacam itu dari `/dev/null`.

133* **Panggil program lain dengan jalur absolut.** Peluncur dapat dimulai dengan `PATH` yang tidak memiliki direktori yang ditambahkan oleh profil shell Anda.

132 134 

133<h3 id="format-of-the-launcher-value">135<h3 id="format-of-the-launcher-value">

134 Format nilai peluncur136 Format nilai peluncur


138 140 

139Untuk melewatkan argumen peluncur Anda sendiri, tuliskan setelah jalur. Claude Code menguraikan nilai sebagai daftar argumen, bukan perintah shell:141Untuk melewatkan argumen peluncur Anda sendiri, tuliskan setelah jalur. Claude Code menguraikan nilai sebagai daftar argumen, bukan perintah shell:

140 142 

141* Whitespace memisahkan token, dan tanda kutip ganda mengelompokkan token yang berisi spasi.143* Whitespace memisahkan token, dan tanda kutip ganda mengelompokkan token yang berisi spasi. Tanda kutip tunggal adalah karakter biasa, sehingga `'a b'` adalah dua token.

142* Nilai yang dimulai dengan `[` dibaca sebagai array string JSON, seperti `["/opt/corp/launcher", "--profile", "cc"]`.144* Nilai yang dimulai dengan `[` dibaca sebagai array string JSON, seperti `["/opt/corp/launcher", "--profile", "cc"]`.

143* Sintaks shell tidak berfungsi: tidak ada ekspansi variabel atau globbing, dan operator yang tidak dikutip seperti `;`, `|`, `&`, atau `$(` ditolak sebagai kesalahan konfigurasi daripada diinterpretasikan ulang.145* Sintaks shell tidak berfungsi: tidak ada ekspansi variabel atau globbing, dan operator yang tidak dikutip seperti `;`, `|`, `&`, atau `$(` ditolak sebagai kesalahan konfigurasi daripada diinterpretasikan ulang.

144 146 

145Ketika nilai tidak dapat digunakan, Claude Code menolak untuk memulai proses yang terpengaruh dan [melaporkan alasannya](/docs/id/errors#claude_code_process_wrapper-launcher-errors).147Ketika nilai tidak dapat digunakan, Claude Code menolak untuk memulai proses yang terpengaruh dan [melaporkan alasannya](/docs/id/errors#claude_code_process_wrapper-launcher-errors).

146 148 

149Dalam file pengaturan, tuliskan bentuk array di dalam string JSON dan escape tanda kutipnya: `"[\"/opt/corp/launcher\", \"--profile\", \"cc\"]"`.

150 

151<h3 id="pass-arguments-to-the-launcher">

152 Meneruskan argumen ke peluncur

153</h3>

154 

155Tuliskan argumen milik peluncur sendiri setelah jalurnya di [nilai](#format-of-the-launcher-value), dan hapus argumen tersebut di skrip sebelum pemanggilan `exec`. Argumen tersebut sampai ke skrip lebih dulu, sebelum perintah Claude Code. Skrip berikut, yang ditulis untuk nilai `/opt/corp/launcher --profile cc`, menyimpan nama profil lalu menghapus kedua argumen dengan `shift`:

156 

157```bash theme={null}

158#!/bin/sh

159if [ "$1" = "--profile" ]; then

160 profile="$2"

161 shift 2

162fi

163# Your organization's setup for "$profile".

164exec "$@"

165```

166 

167Gunakan [langkah Verify](#set-up-the-launcher) untuk melihat perintah peluncuran yang diselesaikan Claude Code dari nilai tersebut.

168 

147<h2 id="relationship-to-claude_code_shell_prefix">169<h2 id="relationship-to-claude_code_shell_prefix">

148 Hubungan dengan `CLAUDE_CODE_SHELL_PREFIX`170 Hubungan dengan `CLAUDE_CODE_SHELL_PREFIX`

149</h2>171</h2>

desktop.md +333 −71

Details

44 Mulai sesi44 Mulai sesi

45</h2>45</h2>

46 46 

47Sebelum Anda mengirim pesan pertama, konfigurasikan empat hal di area prompt:47Sebelum Anda mengirim pesan pertama, pilih lingkungan, folder proyek, mode izin, dan model di baris di bawah kotak prompt:

48 48 

49* **Environment**: pilih di mana Claude berjalan. Pilih **Local** untuk mesin Anda, **Cloud** untuk [sesi cloud](#cloud-sessions) yang berlanjut setelah Anda menutup aplikasi, [**koneksi SSH**](#ssh-sessions) untuk mesin jarak jauh yang Anda kelola, atau di Windows [**distribusi WSL**](/docs/id/desktop-wsl). Tugas dalam sesi SSH dapat [terus berjalan saat Desktop terputus](#keep-a-task-running-while-desktop-is-disconnected), tetapi dengan akun Claude tugas tersebut dapat berhenti ketika masa berlaku login-nya habis. Lihat [konfigurasi lingkungan](#environment-configuration).49* **Environment**: gunakan pemilih lingkungan, kontrol pertama di baris tersebut, untuk memilih di mana Claude berjalan. Lihat [konfigurasi lingkungan](#environment-configuration).

50* **Project folder**: pilih folder atau repositori tempat Claude bekerja. Untuk sesi cloud, Anda dapat menambahkan [beberapa repositori](#run-long-running-tasks-in-the-cloud).50 * Jika sesi baru tidak memiliki pemilih lingkungan di bawah kotak prompt, ikuti [langkah-langkah tata letak sebelumnya](#check-which-layout-you-have).

51* **Model**: pilih [model](/docs/id/model-config#available-models) dari dropdown di sebelah tombol kirim. Anda dapat mengubah ini selama sesi.51* **Project folder**: klik kontrol folder proyek, di sebelah pemilih lingkungan, untuk memilih folder tempat Claude bekerja.

52* **Permission mode**: pilih berapa banyak otonomi yang dimiliki Claude dari [pemilih mode](#choose-a-permission-mode). Anda dapat mengubah ini selama sesi.52 * **Sesi cloud**: pilih [repositori](#run-long-running-tasks-in-the-cloud) alih-alih folder

53 * **[Lingkungan lokal atau SSH tersimpan](#create-a-saved-environment)**: lingkungan tersebut sudah menyimpan foldernya, sehingga baris tidak menampilkan kontrol folder proyek. Untuk mengubah folder, [edit lingkungan tersebut](#use-edit-or-remove-a-saved-environment).

54* **Permission mode**: gunakan [pemilih mode](#choose-a-permission-mode) untuk memilih berapa banyak otonomi yang dimiliki Claude. Anda dapat mengubah mode izin selama sesi.

55* **Model**: pilih [model](/docs/id/model-config#available-models) dari pemilih model di dekat ujung kanan baris. Anda dapat mengubah model selama sesi.

53 56 

54Ketik tugas Anda dan tekan **Enter** untuk memulai. Setiap sesi melacak konteksnya sendiri dan perubahan secara independen.57Ketik tugas Anda dan tekan **Enter** untuk memulai. Setiap sesi melacak konteksnya sendiri dan perubahan secara independen.

55 58 


65 68 

66Ketik apa yang ingin Anda lakukan Claude dan tekan **Enter** untuk mengirim. Claude membaca file proyek Anda, membuat perubahan, dan menjalankan perintah berdasarkan [permission mode](#choose-a-permission-mode) Anda. Anda dapat mengarahkan ulang Claude kapan saja: klik tombol stop untuk menghentikan segera, atau ketik koreksi dan tekan **Enter** untuk mengirimnya tanpa menghentikan tindakan yang sedang berjalan. Claude membaca koreksi segera setelah tindakan saat ini selesai dan menyesuaikan sebelum langkah berikutnya.69Ketik apa yang ingin Anda lakukan Claude dan tekan **Enter** untuk mengirim. Claude membaca file proyek Anda, membuat perubahan, dan menjalankan perintah berdasarkan [permission mode](#choose-a-permission-mode) Anda. Anda dapat mengarahkan ulang Claude kapan saja: klik tombol stop untuk menghentikan segera, atau ketik koreksi dan tekan **Enter** untuk mengirimnya tanpa menghentikan tindakan yang sedang berjalan. Claude membaca koreksi segera setelah tindakan saat ini selesai dan menyesuaikan sebelum langkah berikutnya.

67 70 

68Tombol **+** di sebelah kotak prompt memberi Anda akses ke lampiran file, [skills](#use-skills), [connectors](#connect-external-tools), dan [plugins](#install-plugins).71Klik tombol **+** di sebelah kotak prompt untuk lampiran file, [skills](#use-skills), [connectors](#connect-external-tools), dan [plugins](#install-plugins).

69 72 

70<h3 id="accept-a-suggested-prompt">73<h3 id="accept-a-suggested-prompt">

71 Terima prompt yang disarankan74 Terima prompt yang disarankan


82 Tambahkan file dan konteks ke prompt85 Tambahkan file dan konteks ke prompt

83</h3>86</h3>

84 87 

85Kotak prompt mendukung dua cara untuk membawa konteks eksternal:88Untuk memberikan file kepada Claude, @mention file tersebut atau lampirkan di kotak prompt:

86 89 

87* **@mention files**: ketik `@` diikuti dengan nama file untuk menambahkan file ke konteks percakapan. Claude kemudian dapat membaca dan mereferensikan file tersebut. @mention tidak tersedia di sesi cloud atau WSL.90* **@mention files**: ketik `@` diikuti dengan nama file untuk menambahkan file ke konteks percakapan.

88* **Attach files**: lampirkan gambar, PDF, dan file lainnya ke prompt Anda menggunakan tombol lampiran, atau seret dan lepas file langsung ke prompt. Ini berguna untuk berbagi tangkapan layar bug, mockup desain, atau dokumen referensi.91 * **Di sesi cloud**: `@` hanya dapat menampilkan daftar file setelah Anda mengirim pesan pertama. Jika `@` tidak menampilkan file apa pun, kirim pesan pertama Anda tanpa file tersebut, lalu @mention file itu di pesan berikutnya.

92* **Attach files**: lampirkan gambar, PDF, dan file lainnya ke prompt Anda dari tombol **+** di sebelah kotak prompt, atau seret dan lepas file langsung ke prompt. Ini berguna untuk berbagi tangkapan layar bug, mockup desain, atau dokumen referensi.

93 * **Di [sesi WSL](/docs/id/desktop-wsl)**: jika menu **+** menampilkan **Add image** alih-alih **Add files or photos**, Anda hanya dapat melampirkan gambar. Untuk memberikan file lain dari folder sesi kepada Claude, @mention file tersebut.

89 94 

90<h3 id="choose-a-permission-mode">95<h3 id="choose-a-permission-mode">

91 Pilih permission mode96 Pilih permission mode

92</h3>97</h3>

93 98 

94Permission modes mengontrol berapa banyak otonomi yang dimiliki Claude selama sesi: apakah itu meminta izin sebelum mengedit file, menjalankan perintah, atau keduanya. Anda dapat beralih permission modes kapan saja menggunakan pemilih mode di sebelah tombol kirim. Untuk menyetujui setiap perubahan sendiri, beralih ke Manual.99Permission modes mengontrol berapa banyak otonomi yang dimiliki Claude selama sesi: apakah itu meminta izin sebelum mengedit file, menjalankan perintah, atau keduanya. Anda dapat beralih permission modes kapan saja menggunakan pemilih mode di baris di bawah kotak prompt. Untuk menyetujui setiap perubahan sendiri, beralih ke Manual.

95 100 

96Untuk menetapkan mode default untuk sesi lokal baru, tambahkan `permissions.defaultMode` ke [file pengaturan](/docs/id/settings#where-settings-live) Anda. Aplikasi desktop membaca file pengaturan yang sama dengan CLI. Mode yang Anda pilih di pemilih diingat per folder dan diutamakan daripada `defaultMode` untuk folder itu, kecuali Plan, yang berlaku hanya untuk sesi saat ini.101Untuk menetapkan mode default untuk sesi lokal baru, tambahkan `permissions.defaultMode` ke [file pengaturan](/docs/id/settings#where-settings-live) Anda. Aplikasi desktop membaca file pengaturan yang sama dengan CLI. Mode yang Anda pilih di pemilih diingat per folder dan diutamakan daripada `defaultMode` untuk folder itu, kecuali Plan, yang berlaku hanya untuk sesi saat ini.

97 102 


129 134 

130Claude dapat memulai dev server dan membukanya di pane Browser untuk memverifikasi perubahannya. Ini berfungsi untuk aplikasi web frontend serta server backend: Claude dapat menguji endpoint API, melihat log server, dan mengulangi masalah yang ditemukannya. Dalam kebanyakan kasus, Claude memulai server secara otomatis setelah mengedit file proyek. Anda juga dapat meminta Claude untuk pratinjau kapan saja. Secara default, Claude [auto-verifies](#auto-verify-changes) perubahan setelah setiap edit.135Claude dapat memulai dev server dan membukanya di pane Browser untuk memverifikasi perubahannya. Ini berfungsi untuk aplikasi web frontend serta server backend: Claude dapat menguji endpoint API, melihat log server, dan mengulangi masalah yang ditemukannya. Dalam kebanyakan kasus, Claude memulai server secara otomatis setelah mengedit file proyek. Anda juga dapat meminta Claude untuk pratinjau kapan saja. Secara default, Claude [auto-verifies](#auto-verify-changes) perubahan setelah setiap edit.

131 136 

132Pane Browser juga dapat membuka file HTML statis, PDF, gambar, dan video dari proyek Anda. Klik path HTML, PDF, gambar, atau video di chat untuk membukanya di sana.137Di sesi lokal, klik path HTML, PDF, atau video di chat untuk membukanya di pane Browser.

133 138 

134<Note>139<Note>

135 Dalam [sesi SSH](#ssh-sessions), Claude tidak dapat membuka aplikasi Anda di pane Browser, karena Claude tidak memiliki tool pane tersebut di sana. Untuk melihat aplikasi sendiri, [teruskan port-nya ke komputer Anda](#reach-a-port-on-the-remote-machine).140 Dalam [sesi SSH](#ssh-sessions), Claude tidak dapat membuka aplikasi Anda di pane Browser, karena Claude tidak memiliki tool pane tersebut di sana. Untuk melihat aplikasi sendiri, [teruskan port-nya ke komputer Anda](#reach-a-port-on-the-remote-machine).

136</Note>141</Note>

137 142 

143Jika pane Browser tidak terbuka setelah Claude memulai server di sesi lokal, klik **Open** pada kartu server di chat.

144 

138Dari pane Browser, Anda dapat:145Dari pane Browser, Anda dapat:

139 146 

140* Berinteraksi dengan aplikasi yang sedang berjalan langsung di pane Browser147* Berinteraksi dengan aplikasi yang sedang berjalan langsung di pane Browser


185 Tinjau perubahan dengan diff view192 Tinjau perubahan dengan diff view

186</h3>193</h3>

187 194 

188Setelah Claude membuat perubahan pada kode Anda, diff view memungkinkan Anda meninjau modifikasi file demi file sebelum membuat pull request.195Setelah Claude membuat perubahan pada kode Anda, diff view memungkinkan Anda meninjau modifikasi file demi file sebelum membuat pull request. Untuk membuka diff view, klik jumlah baris, seperti `+12 -1`, di kartu **Changes** pada [panel detail sesi](#see-session-details). Anda juga dapat mengklik **Changes** di bilah judul sesi.

189 

190Ketika Claude mengubah file, indikator statistik diff muncul menunjukkan jumlah baris yang ditambahkan dan dihapus, seperti `+12 -1`. Klik indikator ini untuk membuka diff viewer, yang menampilkan daftar file di sebelah kiri dan perubahan untuk setiap file di sebelah kanan.

191 196 

192Untuk mengomentari baris tertentu, klik baris apa pun di diff untuk membuka kotak komentar. Ketik umpan balik Anda dan tekan **Enter** untuk menambahkan komentar. Setelah menambahkan komentar ke beberapa baris, kirimkan semua komentar sekaligus:197Untuk mengomentari baris tertentu, klik baris apa pun di diff untuk membuka kotak komentar. Ketik umpan balik Anda dan tekan **Enter** untuk menambahkan komentar. Setelah menambahkan komentar ke beberapa baris, kirimkan semua komentar sekaligus:

193 198 


213 Pantau status pull request218 Pantau status pull request

214</h3>219</h3>

215 220 

216Setelah Anda membuka pull request, bilah status CI muncul di sesi. Claude Code menggunakan GitHub CLI untuk menanyakan hasil pemeriksaan dan menampilkan kegagalan.221Agar Claude memperbaiki pemeriksaan yang gagal, atau agar GitHub melakukan merge pull request, aktifkan **Auto-fix** atau **Merge when ready**. Setelah Anda membuka pull request, pull request tersebut muncul di kartu **Changes** pada [panel detail sesi](#see-session-details) beserta status pemeriksaan CI-nya. Buka menu **⋮** di samping judulnya:

217 222 

218* **Auto-fix CI & address comments**: ketika diaktifkan, Claude secara otomatis mencoba memperbaiki pemeriksaan CI yang gagal dengan membaca output kegagalan dan mengulangi. Di sesi lokal, Claude juga menanggapi komentar review baru yang ditinggalkan oleh orang selain Anda, ketika penulisnya adalah pemilik repositori, anggota organisasi, kolaborator, atau GitHub App.223* **Auto-fix**: di sesi lokal, Claude juga menanggapi komentar review baru yang ditinggalkan oleh orang selain Anda. Penulis komentar harus merupakan pemilik repositori, anggota organisasi, kolaborator, atau GitHub App.

219* **Auto-merge when ready**: ketika diaktifkan, Claude menggabungkan PR setelah semua pemeriksaan lulus. Metode merge adalah squash. Aktifkan auto-merge di [pengaturan repositori GitHub Anda](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository) terlebih dahulu; tanpanya, Claude tidak dapat menggabungkan PR.224* **Merge when ready**: mengaktifkan auto-merge GitHub untuk PR. Di sesi lokal, Desktop meminta squash merge kecuali branch dasar menggunakan merge queue.

225 * **Di sesi SSH dan WSL**: **Merge when ready** dinonaktifkan, jadi aktifkan auto-merge untuk pull request di GitHub

226 * **Jika repositori tidak mengizinkan auto-merge**: **Merge when ready** tidak akan aktif, jadi aktifkan auto-merge di [pengaturan repositori GitHub Anda](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository) terlebih dahulu

227* **[Tata letak sebelumnya](#check-which-layout-you-have)**: setelah sesi memiliki pull request, klik **CI** di bilah statusnya.

220 228 

221Untuk mengaktifkannya, klik **CI** di bilah status. Untuk mengarsipkan sesi secara otomatis setelah PR di-merge atau ditutup, aktifkan [auto-archive](#work-in-parallel-with-sessions) di **Settings > Claude Code**.229Untuk mengarsipkan sesi secara otomatis setelah PR di-merge atau ditutup, aktifkan [auto-archive](#archive-a-session) di **Settings > Claude Code**.

222 230 

223<Note>231<Note>

224 Pemantauan PR memerlukan [GitHub CLI (`gh`)](https://cli.github.com/) untuk diinstal dan diautentikasi di mesin Anda. Jika `gh` tidak diinstal, Desktop akan meminta Anda untuk memasangnya saat pertama kali Anda mencoba membuat PR.232 Pemantauan PR memerlukan [GitHub CLI (`gh`)](https://cli.github.com/) untuk diinstal dan diautentikasi di mesin Anda. Jika `gh` tidak diinstal, Desktop akan meminta Anda untuk memasangnya saat pertama kali Anda mencoba membuat PR.


235Untuk bekerja di seluruh layar, keluarkan pane seperti diff atau terminal ke jendela tersendiri, dan doknya kembali ketika Anda selesai. Claude terus bekerja di jendela utama.243Untuk bekerja di seluruh layar, keluarkan pane seperti diff atau terminal ke jendela tersendiri, dan doknya kembali ketika Anda selesai. Claude terus bekerja di jendela utama.

236 244 

237<Note>245<Note>

238 Tata letak pane, terminal, editor file, dan view modes di bagian ini memerlukan Claude Desktop v1.2581.0 atau lebih baru. Buka **Claude → Check for Updates** di macOS atau **Help → Check for Updates** di Windows untuk memperbarui.246 Tata letak pane, terminal, editor file, dan view modes di bagian ini memerlukan Claude Desktop v1.2581.0 atau lebih baru. Buka **Claude > Check for Updates…** di macOS atau **Help > Check for Updates…** di Windows untuk memperbarui.

239</Note>247</Note>

240 248 

249<h3 id="see-session-details">

250 Lihat detail sesi

251</h3>

252 

253Panel detail sesi adalah sekumpulan kartu di sebelah chat yang menampilkan di mana sesi berjalan, apa yang diubahnya, dan apa yang sedang dijalankannya. Panel muncul setelah Anda memulai sesi, selama chat cukup lebar untuk menampungnya.

254 

255<h4 id="hide-or-show-the-session-details-panel">

256 Sembunyikan atau tampilkan panel detail sesi

257</h4>

258 

259Untuk menyembunyikan atau menampilkan panel, klik **Hide session rail** atau **Show session rail** di bilah judul sesi, atau di menu **⋮** pada bilah tersebut ketika jendela sempit. Jika Anda masih tidak melihat panel, [periksa tata letak tab Code mana yang Anda miliki](#check-which-layout-you-have).

260 

241<h3 id="run-commands-in-the-terminal">261<h3 id="run-commands-in-the-terminal">

242 Jalankan perintah di terminal262 Jalankan perintah di terminal

243</h3>263</h3>

244 264 

245Terminal terintegrasi memungkinkan Anda menjalankan perintah bersama sesi Anda tanpa beralih ke aplikasi lain. Klik **Terminal** di bilah judul sesi atau tekan **Ctrl+\`** di macOS atau Windows. Terminal terbuka di direktori kerja sesi Anda dan berbagi lingkungan yang sama dengan Claude, jadi perintah seperti `npm test` atau `git status` melihat file yang sama yang sedang diedit Claude. Untuk membuka tab terminal kedua, klik **+** di header pane terminal atau klik kanan folder di chat untuk memilih **Open in terminal**.265Terminal terintegrasi memungkinkan Anda menjalankan perintah bersama sesi Anda tanpa beralih ke aplikasi lain. Klik **Terminal** di bilah judul sesi atau tekan **Ctrl+\`** di macOS atau Windows. Terminal terbuka di direktori kerja sesi Anda dan berbagi lingkungan yang sama dengan Claude, jadi perintah seperti `npm test` atau `git status` melihat file yang sama yang sedang diedit Claude. Untuk membuka tab terminal kedua, klik **+** di header pane terminal atau klik kanan folder di chat untuk memilih **Open in terminal**.

246 266 

247Terminal tersedia di sesi lokal dan [SSH](#ssh-sessions), dengan batasan pada [mesin jarak jauh Windows](#windows-remote-machines).267Jika sesi WSL tidak memiliki terminal, lihat [Jika terminal atau konektor tidak tersedia](/docs/id/desktop-wsl#check-for-the-terminal-and-connectors). Terminal tersedia di sesi lokal dan [SSH](#ssh-sessions), dengan batasan pada [mesin jarak jauh Windows](#windows-remote-machines).

248 268 

249<h3 id="open-and-edit-files">269<h3 id="open-and-edit-files">

250 Buka dan edit file270 Buka dan edit file

251</h3>271</h3>

252 272 

253Klik path file di chat atau diff viewer untuk membukanya di pane file. Path HTML, PDF, gambar, dan video terbuka di [pane Browser](#preview-your-app) sebagai gantinya. Buat edit spot dan klik **Save** untuk menulisnya kembali. Jika file berubah di disk sejak Anda membukanya, pane memperingatkan Anda dan memungkinkan Anda menimpa atau membuang. Klik **Discard** untuk mengembalikan edit Anda, atau klik path di header pane untuk menyalin path absolut.273Untuk membuka file yang disebutkan Claude, klik path-nya di chat.

254 274 

255Pane file tersedia di sesi lokal dan SSH. Untuk sesi cloud, minta Claude untuk membuat perubahan.275Untuk mengedit file sendiri, gunakan [pane file](#arrange-your-workspace):

276 

277* **Sesi lokal**: Anda dapat mengedit file di dalam direktori kerja sesi, kecuali beberapa file yang hanya dapat dilihat seperti `.mcp.json` dan `.claude/settings.json`. Untuk mengubah salah satunya, [buka di aplikasi lain](#open-files-in-other-apps).

278* **Sesi cloud, SSH, dan WSL**: pane file hanya dapat dilihat, jadi minta Claude untuk melakukan edit.

279 

280<h4 id="save-edits-in-the-file-pane">

281 Simpan edit di pane file

282</h4>

283 

284Secara default, edit Anda di pane file tersimpan dengan sendirinya, sehingga pane tidak menampilkan tombol **Save**. Untuk menyimpan edit Anda sendiri, hapus centang **Auto save** di menu **⋮** pane. Dengan **Auto save** nonaktif, klik **Save** setelah Anda mengubah file untuk menulis edit Anda, atau **Cancel** untuk mengembalikannya.

285 

286Jika pane memperingatkan bahwa file berubah di disk, klik **Override** untuk menimpa versi di disk dengan edit Anda, atau **Discard** untuk membuang edit Anda.

256 287 

257<h3 id="open-files-in-other-apps">288<h3 id="open-files-in-other-apps">

258 Buka file di aplikasi lain289 Buka file di aplikasi lain


283 Pintasan keyboard314 Pintasan keyboard

284</h3>315</h3>

285 316 

286Tekan **Cmd+/** di macOS atau **Ctrl+/** di Windows untuk melihat semua pintasan keyboard yang tersedia di tab Code. Di Windows, gunakan **Ctrl** sebagai pengganti **Cmd** untuk pintasan di bawah. Siklus sesi, toggle terminal, dan toggle view-mode menggunakan **Ctrl** di setiap platform.317Tekan **Cmd+/** di macOS atau **Ctrl+/** di Windows untuk melihat semua pintasan yang tersedia di tab Code. Tabel di bagian ini menampilkan tombol macOS. Di Windows dan Linux, ganti tombol berikut:

318 

319* **Cmd+Option**: tekan **Alt**

320* **Cmd**: tekan **Ctrl**

321 

322Siklus sesi, toggle terminal, dan toggle view-mode menggunakan **Ctrl** di setiap platform.

287 323 

288| Shortcut | Action |324| Shortcut | Action |

289| - | - |325| - | - |

290| `Cmd` `/` | Tampilkan pintasan keyboard |326| `Cmd` `/` | Tampilkan pintasan keyboard |

291| `Cmd` `N` | Sesi baru |327| `Cmd` `N` | Sesi baru |

328| `Cmd` `Option` `1`–`9` | Di layar sesi baru pada [tata letak saat ini](#check-which-layout-you-have), pilih lingkungan |

329| `Cmd` `Option` `0` | Di layar sesi baru pada tata letak saat ini, buka [dialog **New environment**](#create-a-saved-environment) |

292| `Cmd` `W` | Tutup sesi |330| `Cmd` `W` | Tutup sesi |

293| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | Sesi berikutnya atau sebelumnya |331| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | Sesi berikutnya atau sebelumnya |

294| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | Sesi berikutnya atau sebelumnya |332| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | Sesi berikutnya atau sebelumnya |


404 Bekerja secara paralel dengan sesi442 Bekerja secara paralel dengan sesi

405</h3>443</h3>

406 444 

407Klik **+ 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).445Klik **+ New** 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.

408 446 

409Untuk 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.447Untuk 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.

410 448 

411Worktrees disimpan di `<project-root>/.claude/worktrees/` secara default. Anda dapat mengubah ini ke direktori kustom:449<h4 id="run-a-session-in-its-own-worktree">

450 Jalankan sesi di worktree-nya sendiri

451</h4>

452 

453Dalam proyek yang merupakan repositori Git, aktifkan **Worktree** sebelum Anda memulai sesi untuk menjalankannya di [Git worktree](/docs/id/worktrees)-nya sendiri, yaitu salinan proyek yang terisolasi. Secara default, **Worktree** nonaktif dan Claude bekerja langsung di folder proyek. Klik kontrol folder proyek di [baris di bawah kotak prompt](#start-a-session) dan aktifkan **Worktree**.

454 

455* **Dengan [lingkungan tersimpan](#create-a-saved-environment)**: atur **Worktree** saat Anda membuat atau mengedit lingkungan tersebut

456* **[Tata letak sebelumnya](#check-which-layout-you-have)**: pilih kotak centang **worktree** di sebelah nama branch, di atas kotak prompt

457 

458Worktree disimpan di `<project-root>/.claude/worktrees/` secara default. Untuk menyimpannya di direktori kustom:

412 459 

413* **Sesi lokal**: atur **Worktree location** di **Settings > Claude Code**460* **Sesi lokal**: atur **Worktree location** di **Settings > Claude Code**

414* **Sesi SSH**: atur **Worktree folder** pada [koneksi SSH](#choose-where-ssh-session-worktrees-go)461* **Sesi SSH**: atur **Worktree folder** pada [koneksi SSH](#choose-where-ssh-session-worktrees-go)

415 462 

416Anda juga dapat mengatur **Branch prefix** di **Settings > Claude Code**. Desktop menambahkannya di depan setiap nama branch worktree, yang berguna untuk menjaga branch yang dibuat Claude tetap terorganisir.463Anda juga dapat mengatur **Branch prefix** di **Settings > Claude Code**. Desktop menambahkannya di depan setiap nama branch worktree, yang berguna untuk menjaga branch yang dibuat Claude tetap terorganisir.

417 464 

418Untuk menghapus worktree ketika selesai, arahkan ke sesi di sidebar dan klik ikon archive. Untuk memiliki sesi mengarsipkan diri mereka sendiri ketika pull request mereka di-merge atau ditutup, aktifkan **Auto-archive after PR merge or close** di **Settings > Claude Code**. Auto-archive hanya berlaku untuk sesi lokal yang telah selesai berjalan.

419 

420Untuk menyertakan file yang diabaikan git seperti `.env` di worktree baru, buat file [`.worktreeinclude`](/docs/id/worktrees#copy-gitignored-files-into-worktrees) di root proyek Anda. Lihat [Apa yang dibagikan worktree dengan checkout utama](/docs/id/worktrees#what-worktrees-share-with-the-main-checkout) untuk mengetahui dari mana sesi worktree membaca pengaturan proyek, hook, dan skill.465Untuk menyertakan file yang diabaikan git seperti `.env` di worktree baru, buat file [`.worktreeinclude`](/docs/id/worktrees#copy-gitignored-files-into-worktrees) di root proyek Anda. Lihat [Apa yang dibagikan worktree dengan checkout utama](/docs/id/worktrees#what-worktrees-share-with-the-main-checkout) untuk mengetahui dari mana sesi worktree membaca pengaturan proyek, hook, dan skill.

421 466 

422<Note>467<Note>

423 Isolasi sesi memerlukan [Git](https://git-scm.com/downloads). Sebagian besar Mac menyertakan Git secara default. Jalankan `git --version` di Terminal untuk memeriksa; jika menampilkan nomor versi, Git sudah terinstal. Jika Anda mengalami kesalahan Git, tanyakan Claude di tab [Cowork](https://claude.com/product/cowork) untuk membantu memecahkan masalah setup Anda.468 Isolasi sesi memerlukan [Git](https://git-scm.com/downloads). Sebagian besar Mac menyertakan Git secara default. Jalankan `git --version` di Terminal untuk memeriksa; jika menampilkan nomor versi, Git sudah terinstal. Jika Anda mengalami kesalahan Git, tanyakan Claude di tab [Cowork](https://claude.com/product/cowork) untuk membantu memecahkan masalah setup Anda.

424</Note>469</Note>

425 470 

426Gunakan kontrol di bagian atas sidebar untuk memfilter sesi berdasarkan status, proyek, atau lingkungan, dan untuk mengelompokkan sesi berdasarkan proyek. Untuk mengganti nama sesi, klik judul sesi di toolbar di bagian atas sesi aktif.471<h3 id="add-folders-to-a-session">

472 Tambahkan folder ke sesi

473</h3>

474 

475Tambahkan folder sebelum sesi dimulai atau saat sesi berjalan:

476 

477* **Sebelum sesi lokal dimulai**: tambahkan folder di bawah **Folders** saat Anda [membuat lingkungan tersimpan](#create-a-saved-environment) atau mengeditnya, lalu [mulai sesi dari lingkungan tersimpan tersebut](#use-edit-or-remove-a-saved-environment).

478* **Saat sesi lokal atau [SSH](#ssh-sessions) berjalan**: klik **+** di sebelah kotak prompt dan pilih **Add folder**. Claude bekerja langsung di folder tersebut, tanpa [worktree](#run-a-session-in-its-own-worktree).

479 

480<h3 id="archive-a-session">

481 Arsipkan sesi

482</h3>

483 

484Sebelum Anda mengarsipkan sesi yang worktree-nya memiliki perubahan yang belum di-commit, lihat [Simpan perubahan yang belum di-commit saat sesi diarsipkan](#keep-uncommitted-changes-when-a-session-is-archived). Untuk mengarsipkan sesi, arahkan kursor ke sesi tersebut di sidebar, buka menunya, dan pilih **Archive**. Sesi berpindah ke [sesi yang diarsipkan](#organize-and-find-sessions) Anda.

485 

486Agar sesi mengarsipkan dirinya sendiri ketika pull request-nya di-merge atau ditutup, aktifkan **Auto-archive after PR merge or close** di **Settings > Claude Code**. Sesi cloud dan sesi yang masih berjalan tidak mengarsipkan dirinya sendiri.

487 

488<h4 id="keep-uncommitted-changes-when-a-session-is-archived">

489 Simpan perubahan yang belum di-commit saat sesi diarsipkan

490</h4>

491 

492Anda dapat kehilangan perubahan yang belum di-commit di worktree sesi saat sesi tersebut diarsipkan, jadi lakukan commit terlebih dahulu untuk apa yang ingin Anda simpan:

493 

494* **Jika Desktop menanyakan tentang perubahan tersebut**: pilih **Archive anyway** untuk membuangnya, atau batalkan dan lakukan commit

495* **Jika satu-satunya perubahan adalah file yang tidak terlacak**: commit file yang ingin Anda simpan sebelum pull request yang dibuka Claude di sesi tersebut di-merge, karena Desktop kemudian dapat menghapusnya tanpa bertanya

496* **Dalam kasus lainnya**: worktree tetap berada di disk beserta perubahannya. Untuk sesi lokal, Desktop menghapus keduanya sekitar 30 hari setelah sesi diarsipkan atau terakhir kali Anda membukanya, mana yang lebih akhir. Untuk menyimpan perubahan, buka sesi dari [tab **Archived**](#organize-and-find-sessions) dan pilih **Unarchive**

497 

498<h3 id="organize-and-find-sessions">

499 Atur dan temukan sesi

500</h3>

501 

502Anda mengelompokkan, mengurutkan, dan menemukan sesi dari sebuah ikon di daftar sesi sidebar:

503 

504* **Tata letak saat ini**: arahkan kursor ke judul di daftar sesi untuk menampilkan ikon **Group and sort**, lalu klik ikon tersebut. Untuk menemukan sesi yang diarsipkan, pilih **View all**, baris terakhir menu, lalu buka tab **Archived**.

505* **[Tata letak sebelumnya](#check-which-layout-you-have)**: ikon **Filter** ditampilkan tanpa perlu mengarahkan kursor. Klik ikon tersebut untuk mengatur daftar dengan **Group by** atau **Sort by**. Untuk menampilkan sesi yang diarsipkan, pilih **Status**, lalu **Archived**.

506 

507Untuk mengganti nama sesi, buka sesi tersebut dan klik judul sesi di bilah judul.

508 

509<h3 id="check-and-free-up-context">

510 Periksa dan bebaskan konteks

511</h3>

427 512 

428Untuk memeriksa penggunaan konteks, lihat [Check usage](#check-usage). Ketika konteks penuh, Claude secara otomatis merangkum percakapan dan terus bekerja. Anda juga dapat mengetik `/compact` untuk memicu perangkuman lebih awal dan membebaskan ruang konteks. Lihat [context window](/docs/id/how-claude-code-works#the-context-window) untuk detail tentang cara compaction bekerja.513Untuk memeriksa penggunaan konteks, lihat [Check usage](#check-usage). Ketika konteks penuh, Claude secara otomatis merangkum percakapan dan terus bekerja. Anda juga dapat mengetik `/compact` untuk memicu perangkuman lebih awal dan membebaskan ruang konteks. Lihat [context window](/docs/id/how-claude-code-works#the-context-window) untuk detail tentang cara compaction bekerja.

429 514 

515<h3 id="get-notified-when-a-session-finishes">

516 Dapatkan notifikasi saat sesi selesai

517</h3>

518 

430Aplikasi desktop mengirimkan notifikasi OS ketika sesi Code menyelesaikan tugas dan Anda tidak sedang melihat sesi tersebut. Untuk sesi yang termasuk dalam [proyek](/docs/id/claude-projects#see-what-needs-you-in-overview), Anda mendapatkan notifikasi proyek sebagai gantinya.519Aplikasi desktop mengirimkan notifikasi OS ketika sesi Code menyelesaikan tugas dan Anda tidak sedang melihat sesi tersebut. Untuk sesi yang termasuk dalam [proyek](/docs/id/claude-projects#see-what-needs-you-in-overview), Anda mendapatkan notifikasi proyek sebagai gantinya.

431 520 

432<h3 id="ask-a-side-question-without-derailing-the-session">521<h3 id="ask-a-side-question-without-derailing-the-session">


451 Bekerja lintas sesi540 Bekerja lintas sesi

452</h3>541</h3>

453 542 

454Claude dapat membuat daftar sesi tab Code Anda yang lain, membaca apa yang telah dilakukan masing-masing, dan mengirim pesan di antara mereka. Tanyakan dalam bahasa biasa: "sesi mana yang menyentuh refactor auth?", "apa yang disimpulkan sesi API?", atau "beritahu sesi pembayaran bahwa skema berubah". Anda juga dapat meminta Claude untuk mengganti nama atau mengarsipkan sesi. Claude mengarsipkan sesi dengan cara yang sama seperti ikon archive di sidebar, jadi minta untuk membersihkan sesi yang PR-nya telah di-merge.543Claude dapat membuat daftar sesi tab Code Anda yang lain, membaca apa yang telah dilakukan masing-masing, dan mengirim pesan di antara mereka. Tanyakan dalam bahasa biasa: "sesi mana yang menyentuh refactor auth?", "apa yang disimpulkan sesi API?", atau "beritahu sesi pembayaran bahwa skema berubah".

544 

545Anda juga dapat meminta Claude untuk mengganti nama atau mengarsipkan sesi. Misalnya, minta Claude untuk mengarsipkan sesi yang PR-nya telah di-merge.

455 546 

456Melalui surface ini, Claude hanya melihat sesi yang dijalankan aplikasi desktop itu sendiri: lokal, [SSH](#ssh-sessions), dan sesi [WSL](/docs/id/desktop-wsl) di tab Code. Claude tidak melihat sesi cloud, atau sesi yang Anda mulai dari CLI terminal atau ekstensi VS Code, bahkan di worktrees dari proyek yang sama, jadi dengan sembilan worktrees terminal terbuka dan dua sesi desktop, Claude yang menjawab di salah satunya melaporkan satu sesi desktop lainnya. Claude tidak pernah membuat daftar sesi tempat Anda bertanya. Secara default, Claude melihat 20 sesi yang paling aktif baru-baru ini dan melewati sesi yang diarsipkan kecuali Anda memintanya. [Cross-session messaging](/docs/id/cross-session-messaging) secara terpisah memungkinkan Claude mengirim pesan ke [sesi Claude Code Anda yang lain](/docs/id/cross-session-messaging#see-which-sessions-claude-can-reach), termasuk sesi terminal.547Melalui surface ini, Claude hanya melihat sesi yang dijalankan aplikasi desktop itu sendiri: lokal, [SSH](#ssh-sessions), dan sesi [WSL](/docs/id/desktop-wsl) di tab Code. Claude tidak melihat sesi cloud, atau sesi yang Anda mulai dari CLI terminal atau ekstensi VS Code, bahkan di worktrees dari proyek yang sama, jadi dengan sembilan worktrees terminal terbuka dan dua sesi desktop, Claude yang menjawab di salah satunya melaporkan satu sesi desktop lainnya. Claude tidak pernah membuat daftar sesi tempat Anda bertanya. Secara default, Claude melihat 20 sesi yang paling aktif baru-baru ini dan melewati sesi yang diarsipkan kecuali Anda memintanya. [Cross-session messaging](/docs/id/cross-session-messaging) secara terpisah memungkinkan Claude mengirim pesan ke [sesi Claude Code Anda yang lain](/docs/id/cross-session-messaging#see-which-sessions-claude-can-reach), termasuk sesi terminal.

457 548 


470 Jalankan tugas jangka panjang di cloud561 Jalankan tugas jangka panjang di cloud

471</h3>562</h3>

472 563 

473Untuk refaktor besar, suite pengujian, migrasi, atau tugas jangka panjang lainnya, pilih **Cloud** alih-alih **Local** saat memulai sesi. Sesi cloud berjalan pada infrastruktur yang dikelola Anthropic secara default dan terus berjalan bahkan jika Anda menutup aplikasi atau mematikan komputer. Periksa kembali kapan saja untuk melihat kemajuan atau mengarahkan Claude ke arah yang berbeda. Anda juga dapat memantau sesi cloud dari [claude.ai/code](https://claude.ai/code) atau [aplikasi Claude mobile](/docs/id/mobile).564Untuk refaktor besar, suite pengujian, migrasi, atau tugas jangka panjang lainnya, pilih lingkungan di bawah **Cloud** di [pemilih lingkungan](#start-a-session) saat memulai sesi. Sesi cloud berjalan pada infrastruktur yang dikelola Anthropic secara default dan terus berjalan bahkan jika Anda menutup aplikasi atau mematikan komputer. Periksa kembali kapan saja untuk melihat kemajuan atau mengarahkan Claude ke arah yang berbeda. Anda juga dapat memantau sesi cloud dari [claude.ai/code](https://claude.ai/code) atau [aplikasi Claude mobile](/docs/id/mobile).

565 

566Sesi cloud juga mendukung beberapa repositori. Pilih repositori:

474 567 

475Sesi cloud juga mendukung beberapa repositori. Setelah memilih lingkungan cloud, klik tombol **+** di sebelah repositori yang dipilih untuk menambahkan repositori tambahan ke sesi. Setiap repo mendapatkan pemilih branch sendiri. Ini berguna untuk tugas yang mencakup beberapa codebase, seperti memperbarui perpustakaan bersama dan konsumennya.568* **Tata letak saat ini**: di baris di bawah kotak prompt, setelah Anda memilih lingkungan cloud.

569* **[Tata letak sebelumnya](#check-which-layout-you-have)**: di atas kotak prompt. Untuk menambahkan repositori lain, klik **+** di sebelah repositori yang dipilih.

476 570 

477Lihat [Gunakan Claude Code di cloud](/docs/id/claude-code-on-the-web) untuk informasi lebih lanjut tentang cara kerja sesi cloud. Ketika satu badan pekerjaan memerlukan banyak sesi cloud, pilih **Projects** di sidebar untuk membuat [proyek](/docs/id/claude-projects), di mana Claude memulai dan melacak sesi untuk Anda dari satu percakapan.571Lihat [Gunakan Claude Code di cloud](/docs/id/claude-code-on-the-web) untuk informasi lebih lanjut tentang cara kerja sesi cloud. Ketika satu badan pekerjaan memerlukan banyak sesi cloud, pilih **Projects** di sidebar untuk membuat [proyek](/docs/id/claude-projects), di mana Claude memulai dan melacak sesi untuk Anda dari satu percakapan.

478 572 


500* **Anda mengaktifkannya untuk sesi tersebut**: dengan sakelar **Remote Control** milik sesi tersebut, atau dengan mengetik `/remote-control` di kotak prompt-nya.594* **Anda mengaktifkannya untuk sesi tersebut**: dengan sakelar **Remote Control** milik sesi tersebut, atau dengan mengetik `/remote-control` di kotak prompt-nya.

501* **Sesi terhubung saat dimulai**: sesi baru terhubung secara otomatis selama **Connect new sessions to Remote Control** aktif di **Settings > Claude Code**. Jika Anda belum pernah mengubah pengaturan tersebut, Desktop mengikuti [`remoteControlAtStartup`](/docs/id/settings-reference#remotecontrolatstartup) di pengaturan pengguna atau pengaturan terkelola Anda, lalu default organisasi Anda.595* **Sesi terhubung saat dimulai**: sesi baru terhubung secara otomatis selama **Connect new sessions to Remote Control** aktif di **Settings > Claude Code**. Jika Anda belum pernah mengubah pengaturan tersebut, Desktop mengikuti [`remoteControlAtStartup`](/docs/id/settings-reference#remotecontrolatstartup) di pengaturan pengguna atau pengaturan terkelola Anda, lalu default organisasi Anda.

502 596 

503Untuk melihat apakah sesi terhubung, lihat ikon laptop sebelum judul sesi di toolbar. Ikon tersebut disorot saat sesi terhubung atau sedang menghubungkan. Klik ikon tersebut untuk membuka sakelar **Remote Control** milik sesi tersebut.597Untuk melihat apakah sesi terhubung, periksa sakelar **Remote Control** di kartu **Environment** pada [panel detail sesi](#see-session-details)-nya.

504 598 

505Untuk menjaga agar sesi tidak muncul di perangkat Anda yang lain, matikan Remote Control pada tingkat yang Anda perlukan:599Untuk menjaga agar sesi tidak muncul di perangkat Anda yang lain, matikan Remote Control pada tingkat yang Anda perlukan:

506 600 


538 Hubungkan alat eksternal632 Hubungkan alat eksternal

539</h3>633</h3>

540 634 

541Untuk sesi lokal dan [SSH](#ssh-sessions), klik tombol **+** di sebelah kotak prompt dan pilih **Connectors** untuk menambahkan integrasi seperti Google Calendar, Slack, GitHub, Linear, Notion, dan lainnya. Anda dapat menambahkan connectors sebelum atau selama sesi. Tombol **+** tidak tersedia di sesi cloud atau WSL, tetapi [routines](/docs/id/routines) mengonfigurasi connectors pada waktu pembuatan routine.635Connectors adalah [MCP servers](/docs/id/mcp) dengan alur pengaturan grafis.

636 

637Klik **+** di sebelah kotak prompt, sebelum atau selama sesi, untuk menambahkan konektor dalam sesi lokal atau [SSH](#ssh-sessions) dengan akun Claude. Pilih **Add connectors** untuk membuka direktori konektor. Jika menu menampilkan **Connectors**, pilih itu, lalu **Browse connectors**.

638 

639<Note>

640 Kasus-kasus berikut dibahas di halaman lain:

542 641 

543Untuk mengelola atau memutuskan connectors, buka Settings → Connectors di aplikasi desktop, atau pilih **Manage connectors** dari menu Connectors di kotak prompt.642 * **Connectors berwarna abu-abu dalam sesi WSL**: lihat [If the terminal or connectors are unavailable](/docs/id/desktop-wsl#check-for-the-terminal-and-connectors)

643 * **Sesi cloud**: lihat [How connectors reach Claude Code](/docs/id/mcp#how-connectors-reach-claude-code)

644</Note>

544 645 

545Setelah terhubung, Claude dapat membaca kalender Anda, mengirim pesan, membuat masalah, dan berinteraksi dengan alat Anda secara langsung. Anda dapat meminta Claude konektor apa yang dikonfigurasi di sesi Anda.646Setelah terhubung, Claude dapat membaca kalender Anda, mengirim pesan, membuat masalah, dan berinteraksi dengan alat Anda secara langsung. Anda dapat meminta Claude konektor apa yang dikonfigurasi di sesi Anda. Untuk mengelola atau memutuskan konektor, buka **Settings > Connectors** di aplikasi desktop.

546 647 

547Connectors adalah [MCP servers](/docs/id/mcp) dengan alur pengaturan grafis. Gunakan untuk integrasi cepat dengan layanan yang didukung. Untuk integrasi yang tidak tercantum di Connectors, tambahkan MCP servers secara manual melalui [file pengaturan](/docs/id/mcp#installing-mcp-servers). Anda juga dapat [membuat custom connectors](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).648Untuk integrasi yang tidak tercantum di Connectors, tambahkan MCP servers secara manual melalui [file pengaturan](/docs/id/mcp#installing-mcp-servers). Anda juga dapat [membuat custom connectors](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).

548 649 

549<h3 id="use-skills">650<h3 id="use-skills">

550 Gunakan skills651 Gunakan skills


564 665 

565[Plugins](/docs/id/plugins/overview) adalah paket yang dapat digunakan kembali yang menambahkan skills, agents, hooks, MCP servers, dan konfigurasi LSP ke Claude Code. Anda dapat memasang plugins dari aplikasi desktop tanpa menggunakan terminal.666[Plugins](/docs/id/plugins/overview) adalah paket yang dapat digunakan kembali yang menambahkan skills, agents, hooks, MCP servers, dan konfigurasi LSP ke Claude Code. Anda dapat memasang plugins dari aplikasi desktop tanpa menggunakan terminal.

566 667 

567Untuk sesi lokal dan [SSH](#ssh-sessions), klik tombol **+** di sebelah kotak prompt dan pilih **Plugins** untuk melihat plugins yang diinstal dan skills mereka. Untuk menambahkan plugin, pilih **Add plugin** dari submenu untuk membuka plugin browser, yang menampilkan plugins yang tersedia dari [marketplaces](/docs/id/plugins/overview) yang dikonfigurasi termasuk marketplace Anthropic resmi. Pilih **Manage plugins** untuk mengaktifkan, menonaktifkan, atau mencopot plugins.668Dalam sesi lokal atau [sesi SSH](#ssh-sessions), klik **+** di sebelah kotak prompt dan pilih **Add plugins** untuk membuka plugin browser. Jika menu menampilkan **Plugins**, pilih itu, lalu **Browse plugins**, atau **Manage plugins** untuk mengaktifkan, menonaktifkan, atau mencopot plugins.

568 669 

569Anda dapat membatasi plugins ke akun pengguna Anda, proyek tertentu, atau lokal saja. Jika organisasi Anda mengelola plugins secara terpusat, plugins tersebut tersedia di sesi desktop dengan cara yang sama seperti di CLI, kecuali yang [ditahan aplikasi desktop di bawah `disableSideloadFlags`](/docs/id/settings-reference#disablesideloadflags).670Anda dapat membatasi plugins ke akun pengguna Anda, proyek tertentu, atau lokal saja. Jika organisasi Anda mengelola plugins secara terpusat, plugins tersebut tersedia di sesi desktop dengan cara yang sama seperti di CLI, kecuali yang [ditahan aplikasi desktop di bawah `disableSideloadFlags`](/docs/id/settings-reference#disablesideloadflags).

570 671 


632| `runtimeArgs` | string\[] | Argumen yang dilewatkan ke `runtimeExecutable`, seperti `["run", "dev"]` |733| `runtimeArgs` | string\[] | Argumen yang dilewatkan ke `runtimeExecutable`, seperti `["run", "dev"]` |

633| `port` | number | Port yang didengarkan server Anda. Default ke 3000 |734| `port` | number | Port yang didengarkan server Anda. Default ke 3000 |

634| `cwd` | string | Direktori kerja relatif terhadap root proyek Anda. Default ke root proyek. Gunakan `${workspaceFolder}` untuk mereferensikan root proyek secara eksplisit |735| `cwd` | string | Direktori kerja relatif terhadap root proyek Anda. Default ke root proyek. Gunakan `${workspaceFolder}` untuk mereferensikan root proyek secara eksplisit |

635| `env` | object | Variabel lingkungan tambahan sebagai pasangan kunci-nilai, seperti `{ "NODE_ENV": "development" }`. Jangan letakkan rahasia di sini karena file ini dilakukan commit ke repo Anda. Untuk meneruskan rahasia ke dev server Anda, aturlah di [local environment editor](#local-sessions) sebagai gantinya. |736| `env` | object | Environment variable tambahan sebagai pasangan kunci-nilai, seperti `{ "NODE_ENV": "development" }`. Jangan letakkan rahasia di sini karena file ini di-commit ke repo Anda. Untuk rahasia, lihat [Set environment variables for dev servers](#set-environment-variables-for-dev-servers). |

636| `autoPort` | boolean | Cara menangani konflik port. Lihat [Port conflicts](#port-conflicts) |737| `autoPort` | boolean | Cara menangani konflik port. Lihat [Port conflicts](#port-conflicts) |

637| `program` | string | Skrip untuk dijalankan dengan `node`. Lihat [when to use `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |738| `program` | string | Skrip untuk dijalankan dengan `node`. Lihat [when to use `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |

638| `args` | string\[] | Argumen yang dilewatkan ke `program`. Hanya digunakan ketika `program` diatur |739| `args` | string\[] | Argumen yang dilewatkan ke `program`. Hanya digunakan ketika `program` diatur |


795* **SSH**: berjalan di mesin jarak jauh yang Anda hubungkan melalui SSH, seperti server Anda sendiri, cloud VM, atau dev container. Tugas yang sedang berjalan dapat [terus berlanjut saat Desktop terputus](#keep-a-task-running-while-desktop-is-disconnected), tetapi dengan akun Claude, tugas tersebut dapat berhenti saat masa berlaku proses masuknya habis.896* **SSH**: berjalan di mesin jarak jauh yang Anda hubungkan melalui SSH, seperti server Anda sendiri, cloud VM, atau dev container. Tugas yang sedang berjalan dapat [terus berlanjut saat Desktop terputus](#keep-a-task-running-while-desktop-is-disconnected), tetapi dengan akun Claude, tugas tersebut dapat berhenti saat masa berlaku proses masuknya habis.

796* **WSL** (Windows): berjalan di dalam [distribusi WSL 2](/docs/id/desktop-wsl) di mesin Anda, menggunakan toolchain Linux dan path aslinya897* **WSL** (Windows): berjalan di dalam [distribusi WSL 2](/docs/id/desktop-wsl) di mesin Anda, menggunakan toolchain Linux dan path aslinya

797 898 

899<h3 id="create-a-saved-environment">

900 Membuat lingkungan tersimpan

901</h3>

902 

903Lingkungan tersimpan adalah entri di [pemilih lingkungan](#start-a-session) yang mencatat tempat Claude berjalan, sehingga Anda dapat memulai sesi berikutnya di sana. Lingkungan lokal atau SSH juga menyimpan folder tempat Claude bekerja. Lingkungan lokal dan SSH tersimpan [memerlukan Claude Desktop v2.37337.0 atau yang lebih baru](#check-which-layout-you-have).

904 

905<Steps>

906 <Step title="Buka dialog New environment">

907 Buka pemilih lingkungan di bawah kotak prompt dan pilih **New environment** di bagian bawah menunya.

908 </Step>

909 

910 <Step title="Pilih tempat Claude berjalan">

911 Pilih tab **Local**, **SSH**, atau [**Cloud**](#cloud-sessions) dan isi formulir di tab tersebut. Di tab **SSH**, pilih [koneksi](#ssh-sessions) dan folder di mesin jarak jauh.

912 </Step>

913 

914 <Step title="Simpan lingkungan">

915 Pilih **Create environment**, atau **Add environment** di tab **Cloud**.

916 </Step>

917</Steps>

918 

919<h4 id="environments-that-desktop-creates-for-you">

920 Lingkungan yang dibuat Desktop untuk Anda

921</h4>

922 

923Jika pemilih lingkungan mencantumkan lingkungan lokal atau SSH yang tidak Anda buat, Desktop yang membuatnya untuk Anda. Saat pertama kali Anda membuka tab Code dalam [tata letak saat ini](#check-which-layout-you-have), Desktop membuat hingga delapan lingkungan. Lingkungan tersebut berasal dari folder lokal dan SSH yang paling sering Anda gunakan dalam sebulan terakhir. Anda dapat [mengedit atau menghapusnya](#use-edit-or-remove-a-saved-environment).

924 

925<h4 id="use-edit-or-remove-a-saved-environment">

926 Menggunakan, mengedit, atau menghapus lingkungan tersimpan

927</h4>

928 

929Temukan entri lingkungan tersebut di [pemilih lingkungan](#start-a-session):

930 

931* **Memulai sesi**: pilih entri tersebut.

932* **Mengedit atau menghapus**: arahkan kursor ke entri dan klik ikon roda gigi. Untuk menghapus lingkungan lokal atau SSH, klik **Delete environment** di **Edit environment**.

933* **Mengarsipkan lingkungan cloud**: lihat [Mengarsipkan lingkungan](/docs/id/cloud-environments#archive-an-environment).

934 

798<h3 id="local-sessions">935<h3 id="local-sessions">

799 Local sessions936 Local sessions

800</h3>937</h3>

801 938 

802Aplikasi desktop tidak selalu mewarisi lingkungan shell lengkap Anda. Di macOS, ketika Anda meluncurkan aplikasi dari Dock atau Finder, itu membaca profil shell Anda, seperti `~/.zshrc` atau `~/.bashrc`, untuk memberikan `PATH` dan set tetap variabel Claude Code kepada Claude Code, tetapi variabel lain yang Anda ekspor di sana tidak diambil. Di Windows, aplikasi mewarisi variabel lingkungan pengguna dan sistem tetapi tidak membaca profil PowerShell.939Aplikasi desktop tidak selalu mewarisi lingkungan shell lengkap Anda. Di macOS, ketika Anda meluncurkan aplikasi dari Dock atau Finder, itu membaca profil shell Anda, seperti `~/.zshrc` atau `~/.bashrc`, untuk memberikan `PATH` dan set tetap variabel Claude Code kepada Claude Code, tetapi variabel lain yang Anda ekspor di sana tidak diambil. Di Windows, aplikasi mewarisi variabel lingkungan pengguna dan sistem tetapi tidak membaca profil PowerShell.

803 940 

804Untuk mengatur variabel lingkungan untuk sesi lokal dan dev server di platform apa pun, buka dropdown lingkungan di kotak prompt, arahkan ke **Local**, dan klik ikon gear untuk membuka editor lingkungan lokal. Variabel yang Anda simpan di sini disimpan terenkripsi di mesin Anda dan berlaku untuk setiap sesi lokal dan server pratinjau yang Anda mulai. Anda juga dapat menambahkan variabel ke kunci `env` di file `~/.claude/settings.json` Anda, meskipun ini hanya mencapai sesi Claude dan bukan dev server. Lihat [environment variables](/docs/id/env-vars) untuk daftar lengkap variabel yang didukung.941<h4 id="set-environment-variables-for-local-sessions">

942 Mengatur environment variable untuk sesi lokal

943</h4>

944 

945Tambahkan variabel ke lingkungan lokal tersimpan dan mulai sesi Anda dari lingkungan tersebut. Desktop [mengatur beberapa variabel sendiri](#environment-variables-desktop-sets-itself), seperti `API_TIMEOUT_MS`, dan sesi Anda mendapatkan nilai dari Desktop untuk variabel tersebut, bukan nilai Anda.

946 

947<Note>

948 Jika pemilih lingkungan Anda berada di atas kotak prompt, Anda menggunakan [tata letak sebelumnya](#check-which-layout-you-have), yang tidak memiliki lingkungan lokal tersimpan. Gunakan [editor lingkungan lokal](#use-the-local-environment-editor) sebagai gantinya.

949</Note>

950 

951<Steps>

952 <Step title="Buka formulir lingkungan">

953 Buka [**New environment**](#create-a-saved-environment) atau [**Edit environment**](#use-edit-or-remove-a-saved-environment).

954 </Step>

955 

956 <Step title="Masukkan variabel">

957 Pilih **Environment variables**, masukkan satu `KEY=value` per baris, lalu pilih **Done**.

958 </Step>

959 

960 <Step title="Simpan lingkungan">

961 Pilih **Create environment** atau **Save**.

962 </Step>

963</Steps>

964 

965Hanya sesi yang Anda mulai dari lingkungan tersebut yang mendapatkan variabel itu.

966 

967Untuk mengatur variabel bagi setiap sesi lokal, tambahkan ke [kunci `env`](/docs/id/env-vars#set-variables-in-settings-files) di file `~/.claude/settings.json` Anda. Claude Code [mengabaikan nilai tersebut](/docs/id/settings-reference#how-env-values-interact-with-your-shell) jika variabel itu sudah ada di lingkungan tempat Desktop memulai sesi. Lihat [environment variable](/docs/id/env-vars) untuk daftar lengkap variabel yang didukung.

968 

969<h4 id="set-environment-variables-for-dev-servers">

970 Mengatur environment variable untuk server dev

971</h4>

972 

973Untuk memberikan secret kepada server dev tanpa melakukan commit ke [`launch.json`](#configure-preview-servers), atur secret tersebut di salah satu tempat berikut, lalu mulai ulang Desktop:

974 

975* **macOS dan Linux**: ekspor di profil shell Anda

976* **Windows**: tambahkan ke environment variable pengguna atau sistem Anda

977* **Platform apa pun**: simpan di [editor lingkungan lokal](#use-the-local-environment-editor), jika Anda dapat membukanya

978 

979Server dev tidak mendapatkan variabel yang Anda tambahkan ke [lingkungan tersimpan](#create-a-saved-environment) atau ke `~/.claude/settings.json`.

980 

981<h4 id="use-the-local-environment-editor">

982 Menggunakan editor lingkungan lokal

983</h4>

984 

985Untuk membuka editor lingkungan lokal, klik ikon roda gigi pada entri untuk komputer Anda sendiri, bukan pada lingkungan tersimpan:

986 

987* **Pemilih di bawah kotak prompt**: arahkan kursor ke entri untuk komputer Anda, yang pertama di bawah **Local**. Jika ikon roda gigi muncul, klik ikon tersebut. Jika tidak, editor tidak tersedia, jadi atur variabel untuk [sesi lokal](#set-environment-variables-for-local-sessions) atau [server dev](#set-environment-variables-for-dev-servers) dengan cara lain.

988* **Pemilih di atas kotak prompt**: arahkan kursor ke **Local** dan klik ikon roda gigi

989 

990Masukkan satu `KEY=value` per baris dan pilih **Save changes**. Variabel yang Anda simpan di sini disimpan dalam bentuk terenkripsi di mesin Anda. Sesi lokal mendapatkannya, kecuali variabel apa pun yang [diatur Desktop sendiri](#environment-variables-desktop-sets-itself), seperti `API_TIMEOUT_MS`. Mulai ulang Desktop untuk memberikan variabel Anda kepada server dev.

991 

992<h4 id="environment-variables-desktop-sets-itself">

993 Environment variable yang diatur Desktop sendiri

994</h4>

995 

996Jika Anda mengatur `API_TIMEOUT_MS` atau `ANTHROPIC_BASE_URL` dan tidak ada yang berubah di sesi lokal Anda, itu karena Desktop mengatur [variabel](/docs/id/env-vars#variables) tersebut, di antara yang lain, sendiri. Sesi lokal mendapatkan nilai dari Desktop baik Anda mengaturnya di profil shell, variabel pengguna atau sistem Windows, editor lingkungan lokal, maupun lingkungan tersimpan. Memindahkan nilai Anda ke file pengaturan tidak membantu, karena Claude Code [mengabaikan nilai tersebut](/docs/id/settings-reference#how-env-values-interact-with-your-shell) dalam sesi lokal.

997 

998* `API_TIMEOUT_MS`: sesi lokal mendapatkan `900000`, yaitu 15 menit. Untuk timeout yang lebih lama, [instal Claude Code CLI](/docs/id/quickstart) dan gunakan sebagai pengganti Desktop. [Atur variabel di shell Anda](/docs/id/env-vars#set-variables-in-your-shell) dan jalankan `claude` di terminal Anda.

999* `ANTHROPIC_BASE_URL`: sesi lokal mendapatkan host API Anthropic saat Anda masuk dengan akun Claude. Untuk menggunakan gateway, siapkan [konfigurasi inferensi pihak ketiga](/docs/id/llm-gateway-connect#desktop-app) Desktop sebagai gantinya.

1000 

1001<h4 id="turn-off-extended-thinking">

1002 Mematikan extended thinking

1003</h4>

805 1004 

806[Extended thinking](/docs/id/model-config#extended-thinking) diaktifkan secara default, yang meningkatkan kinerja pada tugas penalaran kompleks tetapi menggunakan token tambahan. Pada Anthropic API, atur `MAX_THINKING_TOKENS` ke `0` di editor lingkungan lokal untuk mematikan pemikiran; ini tidak berpengaruh pada Opus 5.5, Sonnet 5.5, Haiku 5.5, atau model Fable, yang selalu menggunakan extended thinking. Dengan pemikiran dimatikan pada Anthropic API, Claude Code mengirimkan effort `high` alih-alih level yang lebih tinggi ke model yang diketahui [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5.1005[Extended thinking](/docs/id/model-config#extended-thinking) diaktifkan secara default, yang meningkatkan performa pada tugas penalaran kompleks tetapi menggunakan token tambahan. Untuk mematikannya, atur `MAX_THINKING_TOKENS` ke `0` di [lingkungan lokal tersimpan](#set-environment-variables-for-local-sessions) atau [editor lingkungan lokal](#use-the-local-environment-editor). Thinking kemudian mati di Anthropic API, kecuali pada Opus 5.5, Sonnet 5.5, Haiku 5.5, dan model Fable, yang selalu menggunakan extended thinking.

1006 

1007Pada Opus 5, pilih juga effort `high` atau lebih rendah sebelum Anda memulai sesi. Dalam [tata letak saat ini](#check-which-layout-you-have), buka pemilih model dan pilih level di bawah **Effort**. Jika Anda memulai sesi pada level yang lebih tinggi, mulai sesi baru pada `high` atau lebih rendah.

1008 

1009<h4 id="fixed-thinking-budgets">

1010 Thinking budget tetap

1011</h4>

807 1012 

808Pada model dengan [adaptive reasoning](/docs/id/model-config#adjust-effort-level), Claude Code mengabaikan angka itu sendiri dalam nilai `MAX_THINKING_TOKENS` yang positif karena adaptive reasoning mengontrol kedalaman pemikiran sebagai gantinya. Pada Opus 4.6 dan Sonnet 4.6, atur `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` ke `1` untuk menggunakan thinking budget tetap; model Fable, Sonnet 5 dan yang lebih baru, Haiku 5.5, serta Opus 4.7 dan yang lebih baru selalu menggunakan adaptive reasoning dan tidak memiliki mode anggaran tetap.1013Pada model dengan [adaptive reasoning](/docs/id/model-config#adjust-effort-level), Claude Code mengabaikan angka itu sendiri dalam nilai `MAX_THINKING_TOKENS` yang positif karena adaptive reasoning mengontrol kedalaman pemikiran sebagai gantinya. Pada Opus 4.6 dan Sonnet 4.6, atur `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` ke `1` untuk menggunakan thinking budget tetap; model Fable, Sonnet 5 dan yang lebih baru, Haiku 5.5, serta Opus 4.7 dan yang lebih baru selalu menggunakan adaptive reasoning dan tidak memiliki mode anggaran tetap.

809 1014 


811 Local sessions on managed devices1016 Local sessions on managed devices

812</h4>1017</h4>

813 1018 

814Administrator Anda dapat mematikan sesi lokal dengan pengaturan terkelola [`disableDesktopLocalSessions`](#managed-settings). Ketika mereka melakukannya, **Local** tetap berada di dropdown lingkungan tetapi berwarna abu-abu dan tidak dapat dipilih, dengan tooltip yang mengatakan organisasi Anda mematikannya, dan di Windows entri [WSL](/docs/id/desktop-wsl), yang ketersediaannya pada perangkat terkelola [diatur secara terpisah](/docs/id/admin-setup#wsl-sessions-in-claude-code-desktop), berwarna abu-abu dengan cara yang sama. Sesi baru default ke koneksi SSH pertama jika satu dikonfigurasi, dan Desktop menampilkan pesan bahwa sesi lokal tidak tersedia di perangkat ini jika Anda mencoba melanjutkan sesi yang ada. Pilih lingkungan [SSH](#ssh-sessions) atau [cloud](#cloud-sessions) sebagai gantinya, atau hubungi tim IT Anda.1019Jika entri untuk komputer Anda berwarna abu-abu di pemilih lingkungan, dengan tooltip **Disabled by your organization**, administrator Anda telah [mematikan sesi lokal](#managed-settings). Di Windows, entri [WSL](/docs/id/desktop-wsl), yang ketersediaannya di perangkat terkelola [diatur secara terpisah](/docs/id/admin-setup#wsl-sessions-in-claude-code-desktop), juga berwarna abu-abu dengan cara yang sama.

1020 

1021Sesi baru secara default menggunakan koneksi SSH pertama jika ada yang dikonfigurasi. Jika Anda mencoba melanjutkan sesi lokal yang sudah ada, Desktop menampilkan pesan bahwa sesi lokal tidak tersedia di perangkat ini. [Lingkungan lokal tersimpan](#create-a-saved-environment) menampilkan error ini saat Anda memilih salah satunya: `Couldn’t switch environments: the Local environment isn’t available anymore.` Pilih lingkungan [SSH](#ssh-sessions) atau [cloud](#cloud-sessions) sebagai gantinya, atau hubungi tim IT Anda.

815 1022 

816<h3 id="cloud-sessions">1023<h3 id="cloud-sessions">

817 Cloud sessions1024 Cloud sessions


819 1026 

820Sesi cloud terus berlanjut di latar belakang bahkan jika Anda menutup aplikasi. Penggunaan dihitung terhadap [batas rencana langganan](/docs/id/costs) Anda tanpa biaya komputasi terpisah.1027Sesi cloud terus berlanjut di latar belakang bahkan jika Anda menutup aplikasi. Penggunaan dihitung terhadap [batas rencana langganan](/docs/id/costs) Anda tanpa biaya komputasi terpisah.

821 1028 

822Anda dapat membuat lingkungan cloud kustom dengan tingkat akses jaringan dan variabel lingkungan yang berbeda. Untuk mengelolanya, buka dropdown lingkungan di kotak prompt dan pilih **Cloud**:1029Untuk menambahkan, mengedit, atau [mengarsipkan](/docs/id/cloud-environments#archive-an-environment) lingkungan cloud, buka [pemilih lingkungan](#start-a-session):

823 1030 

824* **Add an environment**: pilih **Add cloud environment**1031* **Menambahkan lingkungan**: pilih **New environment** di bagian bawah menu pemilih, lalu tab **Cloud** pada [dialog **New environment**](#create-a-saved-environment)

825* **Edit or archive one of your own environments**: arahkan ke atasnya dan klik ikon gear1032* **Edit or archive one of your own environments**: arahkan ke atasnya dan klik ikon gear

826 1033 

827Lihat [Configure cloud environments](/docs/id/cloud-environments) untuk detail tentang mengonfigurasi akses jaringan dan variabel lingkungan.1034Lihat [Configure cloud environments](/docs/id/cloud-environments) untuk detail tentang mengonfigurasi akses jaringan dan variabel lingkungan.


836 Jika Anda menggunakan Desktop dengan [penyedia pihak ketiga](/docs/id/third-party-integrations), sesi SSH memerlukan penyiapan tersendiri. Lihat [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1043 Jika Anda menggunakan Desktop dengan [penyedia pihak ketiga](/docs/id/third-party-integrations), sesi SSH memerlukan penyiapan tersendiri. Lihat [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).

837</Note>1044</Note>

838 1045 

839Untuk menambahkan koneksi SSH, buka dropdown lingkungan di kotak prompt sebelum Anda memulai sesi, lalu pilih **SSH > Add SSH connection…** dan isi detail koneksi:1046Tambahkan koneksi SSH di [dialog **New environment**](#create-a-saved-environment), lalu mulai sesi pada koneksi tersebut. Jika sesi baru tidak memiliki pemilih lingkungan di bawah kotak prompt, Anda menggunakan tata letak sebelumnya. Lihat [Memeriksa tata letak yang Anda miliki](#check-which-layout-you-have).

1047 

1048<Steps>

1049 <Step title="Buka dialog New environment">

1050 Sebelum Anda memulai sesi, buka pemilih lingkungan di bawah kotak prompt dan pilih **New environment** di bagian bawah menunya.

1051 </Step>

1052 

1053 <Step title="Tambahkan koneksi">

1054 Di tab **SSH** pada dialog **New environment**, buka daftar **Host**, pilih **Add SSH connection…**, dan isi detail koneksi:

840 1055 

841* **Name**: label ramah untuk koneksi ini1056 * **Name**: label yang mudah dikenali untuk koneksi ini.

842* **SSH host**: `user@hostname` atau host yang ditentukan di `~/.ssh/config`1057 * **SSH host**: `user@hostname` atau host yang didefinisikan di `~/.ssh/config`.

843* **SSH port**: default ke 22 jika dibiarkan kosong, atau menggunakan port dari konfigurasi SSH Anda1058 * **SSH port**: default ke 22 jika dibiarkan kosong, atau menggunakan port dari konfigurasi SSH Anda.

844* **SSH key (optional)**: path ke kunci pribadi Anda, seperti `~/.ssh/id_ed25519`. Biarkan kosong untuk menggunakan konfigurasi SSH atau SSH agent Anda.1059 * **SSH key (optional)**: path ke private key Anda, seperti `~/.ssh/id_ed25519`. Biarkan kosong untuk menggunakan konfigurasi SSH atau SSH agent Anda.

845* **Worktree folder**: folder di mesin jarak jauh, seperti `~/worktrees`, tempat sesi baru membuat worktree-nya. Biarkan kosong untuk menggunakan [default mesin jarak jauh](#choose-where-ssh-session-worktrees-go).1060 * **Worktree folder**: folder di mesin jarak jauh, seperti `~/worktrees`, tempat sesi baru membuat worktree-nya. Biarkan kosong untuk menggunakan [default mesin jarak jauh](#choose-where-ssh-session-worktrees-go).

846 1061 

847Setelah ditambahkan, koneksi muncul di bawah **SSH** di dropdown lingkungan. Pilih untuk memulai sesi di mesin itu. Claude berjalan di mesin jarak jauh dengan akses ke file dan tool-nya.1062 Lalu pilih **Add SSH connection**.

1063 </Step>

1064 

1065 <Step title="Mulai sesi pada koneksi tersebut">

1066 Pilih folder di mesin jarak jauh dan klik **Create environment**. Anda menyimpan mesin dan folder tersebut bersama-sama sebagai [lingkungan tersimpan](#create-a-saved-environment) untuk sesi berikutnya. Desktop memilihnya untuk sesi baru, jadi ketikkan tugas Anda dan tekan **Enter**.

1067 </Step>

1068</Steps>

848 1069 

849Mesin jarak jauh dapat menjalankan Linux, macOS, atau [Windows](#windows-remote-machines). Desktop menginstal Claude Code di mesin jarak jauh secara otomatis saat pertama kali Anda terhubung. Setelah terhubung, sesi SSH mendukung permission modes, connectors, plugins, dan MCP servers.1070Mesin jarak jauh dapat menjalankan Linux, macOS, atau [Windows](#windows-remote-machines). Desktop menginstal Claude Code di mesin jarak jauh secara otomatis saat pertama kali Anda terhubung. Setelah terhubung, sesi SSH mendukung permission modes, connectors, plugins, dan MCP servers.

850 1071 


1175 1396 

1176Pengeditan file dan beberapa tool dapat gagal saat Desktop terputus. Jika tugas memerlukannya, biarkan Desktop tetap terhubung:1397Pengeditan file dan beberapa tool dapat gagal saat Desktop terputus. Jika tugas memerlukannya, biarkan Desktop tetap terhubung:

1177 1398 

1178* **Worktree**: dalam sesi yang menggunakan [worktree](#work-in-parallel-with-sessions), Desktop memeriksa setiap pengeditan file sebelum Claude melakukannya. Saat Desktop terputus, setiap pengeditan menunggu sekitar 30 detik lalu gagal. Perintah shell tetap berjalan. Pada mesin jarak jauh Linux atau macOS, [pengeditan dapat tetap berfungsi](#worktree-edits-while-disconnected). Jika Anda tidak yakin, mulai sesi tanpa worktree.1399* **Worktree**: dalam sesi yang menggunakan [worktree](#run-a-session-in-its-own-worktree), Desktop memeriksa setiap pengeditan file sebelum Claude melakukannya. Saat Desktop terputus, setiap pengeditan menunggu sekitar 30 detik lalu gagal. Perintah shell tetap berjalan. Pada mesin jarak jauh Linux atau macOS, [pengeditan dapat tetap berfungsi](#worktree-edits-while-disconnected). Jika Anda tidak yakin, mulai sesi tanpa worktree.

1179* **Pembatasan folder**: jika organisasi Anda membatasi folder mana yang boleh digunakan sesi, Desktop memeriksa setiap pembacaan, pencarian, dan pengeditan file, dengan atau tanpa worktree. Saat Desktop terputus, masing-masing menunggu hingga 10 menit lalu gagal.1400* **Pembatasan folder**: jika organisasi Anda membatasi folder mana yang boleh digunakan sesi, Desktop memeriksa setiap pembacaan, pencarian, dan pengeditan file, dengan atau tanpa worktree. Saat Desktop terputus, masing-masing menunggu hingga 10 menit lalu gagal.

1180* **Konektor**: [konektor](#connect-external-tools) dan tool lain yang disediakan Desktop berjalan melalui Desktop, sehingga saat Desktop terputus setiap panggilan gagal setelah sekitar 30 detik1401* **Konektor**: [konektor](#connect-external-tools) dan tool lain yang disediakan Desktop berjalan melalui Desktop, sehingga saat Desktop terputus setiap panggilan gagal setelah sekitar 30 detik

1181* **Workflow**: Desktop memeriksa setiap [workflow](/docs/id/workflows) baru sebelum dimulai, sehingga saat Desktop terputus, workflow baru menunggu hingga 10 menit lalu gagal1402* **Workflow**: Desktop memeriksa setiap [workflow](/docs/id/workflows) baru sebelum dimulai, sehingga saat Desktop terputus, workflow baru menunggu hingga 10 menit lalu gagal


1264 Memilih lokasi worktree sesi SSH1485 Memilih lokasi worktree sesi SSH

1265</h4>1486</h4>

1266 1487 

1267Kecuali organisasi Anda membatasi folder mana yang boleh digunakan sesi, sesi SSH baru membuat [worktree](#work-in-parallel-with-sessions)-nya di lokasi pertama dari berikut ini yang telah diatur:1488Kecuali organisasi Anda membatasi folder yang boleh digunakan sesi, sesi SSH baru membuat [worktree](#run-a-session-in-its-own-worktree)-nya di lokasi pertama dari berikut ini yang diatur:

1268 1489 

12691. **Worktree folder** pada koneksi SSH14901. **Worktree folder** pada koneksi SSH

12702. [`worktree.location`](/docs/id/settings-reference#worktree-location) di `~/.claude/settings.json` pada mesin jarak jauh14912. [`worktree.location`](/docs/id/settings-reference#worktree-location) di `~/.claude/settings.json` pada mesin jarak jauh


1272 1493 

1273Setiap proyek mendapatkan subfoldernya sendiri di folder yang Anda atur, sehingga dengan `~/worktrees`, path sebuah worktree adalah `~/worktrees/<project>-<id>/<worktree-name>`. Jika folder yang Anda atur berada di dalam proyek, Desktop mengabaikannya untuk proyek tersebut dan menggunakan default. Pada [mesin jarak jauh Windows](#windows-remote-machines), Desktop selalu menggunakan default.1494Setiap proyek mendapatkan subfoldernya sendiri di folder yang Anda atur, sehingga dengan `~/worktrees`, path sebuah worktree adalah `~/worktrees/<project>-<id>/<worktree-name>`. Jika folder yang Anda atur berada di dalam proyek, Desktop mengabaikannya untuk proyek tersebut dan menggunakan default. Pada [mesin jarak jauh Windows](#windows-remote-machines), Desktop selalu menggunakan default.

1274 1495 

1275Untuk mengatur **Worktree folder** pada koneksi yang Anda tambahkan sebelumnya atau koneksi yang dikelola organisasi Anda, arahkan ke koneksi tersebut di dropdown lingkungan dan klik ikon gear.1496<a id="set-the-worktree-folder-on-an-existing-connection" />

1276 1497 

1277Bidang ini memerlukan Claude Desktop v1.44121.0 atau yang lebih baru. Jika organisasi Anda membatasi folder mana yang boleh digunakan sesi, Desktop menyembunyikan bidang ini dan menyimpan worktree di dalam proyek.1498<h5 id="set-the-worktree-folder-on-an-existing-connection">

1499 Mengatur folder worktree pada koneksi yang sudah ada

1500</h5>

1501 

1502Atur **Worktree folder** di pengaturan koneksi yang Anda tambahkan sebelumnya atau koneksi yang dikelola organisasi Anda. Kolom ini memerlukan Claude Desktop v1.44121.0 atau yang lebih baru. Jika organisasi Anda membatasi folder yang boleh digunakan sesi, Desktop menyembunyikan kolom ini dan menyimpan worktree di dalam proyek.

1503 

1504<Steps>

1505 <Step title="Temukan koneksi">

1506 Buka [pemilih lingkungan](#start-a-session) dan temukan koneksi di bawah **SSH**.

1507 </Step>

1508 

1509 <Step title="Buka pengaturan koneksi">

1510 Arahkan kursor ke koneksi dan klik ikon roda gigi. Jika dialog yang terbuka menampilkan **Edit connection…** di sebelah **Host**, pilih **Edit connection…**.

1511 </Step>

1512 

1513 <Step title="Atur folder">

1514 Di **Worktree folder**, masukkan folder di mesin jarak jauh, seperti `~/worktrees`, lalu pilih **Save changes**.

1515 </Step>

1516</Steps>

1278 1517 

1279<h4 id="files-and-processes-on-the-remote-machine">1518<h4 id="files-and-processes-on-the-remote-machine">

1280 File dan proses di mesin jarak jauh1519 File dan proses di mesin jarak jauh


1321 Mengakhiri proses satu sesi1560 Mengakhiri proses satu sesi

1322</h5>1561</h5>

1323 1562 

1324Untuk mengakhiri proses Claude Code milik satu sesi, [arsipkan sesi tersebut](#work-in-parallel-with-sessions) di Desktop selama Desktop terhubung ke mesin jarak jauh. Proses tetap berjalan setelah tugasnya selesai dan setelah Anda keluar dari Desktop.1563Untuk mengakhiri proses Claude Code satu sesi, [arsipkan sesi](#archive-a-session) di Desktop saat Desktop terhubung ke mesin jarak jauh. Proses tetap berjalan setelah tugasnya selesai dan setelah Anda keluar dari Desktop.

1325 1564 

1326Sebelum Anda mengarsipkan sesi yang memiliki worktree, lihat [Bekerja secara paralel dengan sesi](#work-in-parallel-with-sessions).1565Sebelum Anda mengarsipkan sesi yang worktree-nya memiliki perubahan yang belum di-commit, lihat [Mempertahankan perubahan yang belum di-commit saat sesi diarsipkan](#keep-uncommitted-changes-when-a-session-is-archived).

1327 1566 

1328<h5 id="see-which-user-the-processes-run-as">1567<h5 id="see-which-user-the-processes-run-as">

1329 Melihat pengguna yang menjalankan proses1568 Melihat pengguna yang menjalankan proses


1474 Pre-configure SSH connections for your team1713 Pre-configure SSH connections for your team

1475</h4>1714</h4>

1476 1715 

1477Administrator dapat mendistribusikan koneksi SSH kepada anggota tim dengan mengatur `sshConfigs` di [pengaturan terkelola](/docs/id/managed-settings). Koneksi yang ditentukan dengan cara ini muncul di dropdown lingkungan setiap pengguna secara otomatis dan ditampilkan sebagai terkelola. Pengguna dapat memilihnya dan [mengatur **Worktree folder** mereka sendiri](#choose-where-ssh-session-worktrees-go) untuk koneksi tersebut, tetapi tidak dapat mengedit hal lain atau menghapusnya di aplikasi.1716Admin dapat mendistribusikan koneksi SSH kepada anggota tim dengan mengatur `sshConfigs` di [pengaturan terkelola](/docs/id/managed-settings).

1717 

1718* **Apa yang dilihat pengguna**: koneksi yang didefinisikan dengan cara ini muncul secara otomatis di pemilih lingkungan setiap pengguna.

1719* **Apa yang dapat diubah pengguna**: pengguna dapat memilih koneksi terkelola dan [mengatur **Worktree folder** mereka sendiri](#set-the-worktree-folder-on-an-existing-connection) untuk koneksi tersebut. Mereka tidak dapat mengedit kolom lainnya atau menghapusnya di aplikasi.

1478 1720 

1479Contoh berikut pre-configure satu koneksi:1721Contoh berikut pre-configure satu koneksi:

1480 1722 


1563Untuk mengonfirmasi bahwa pengaturan berlaku, periksa komputer seorang developer:1805Untuk mengonfirmasi bahwa pengaturan berlaku, periksa komputer seorang developer:

1564 1806 

1565<Steps>1807<Steps>

1566 <Step title="Periksa dropdown lingkungan">1808 <Step title="Periksa pemilih lingkungan">

1567 Keluar dan buka kembali Desktop, lalu buka dropdown lingkungan di kotak prompt. **Local** berwarna abu-abu, dan **Shared Dev VM** muncul di bawah **SSH**. Jika **Local** masih tersedia, periksa versi Desktop, apakah file tersebut merupakan JSON yang valid, dan sumber terkelola mana yang dibaca komputer tersebut.1809 Keluar dan buka kembali Desktop, lalu buka [pemilih lingkungan](#start-a-session). Pengaturan telah berlaku jika pemilih menampilkan:

1810 

1811 * Entri untuk komputer tersebut, berwarna abu-abu

1812 * **Shared Dev VM** di bawah **SSH**. Jika tidak tercantum di sana, klik baris **SSH** tunggal, atau **More** di akhir grup.

1813 

1814 Jika entri untuk komputer masih tersedia, periksa penyebab berikut:

1815 

1816 * **Versi Desktop**: perbarui Desktop jika versinya lebih lama dari v1.37937.0.

1817 * **File pengaturan terkelola**: pastikan file tersebut merupakan JSON yang valid.

1818 * **Sumber terkelola**: pastikan komputer membaca [sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) yang menyimpan kunci-kunci tersebut.

1568 </Step>1819 </Step>

1569 1820 

1570 <Step title="Tambahkan host yang tidak ada di allowlist">1821 <Step title="Tambahkan host yang tidak ada di allowlist">

1571 [Tambahkan koneksi SSH](#ssh-sessions) dengan hostname yang tidak ada di allowlist, seperti `other.example.com`. Desktop menyimpan koneksi tersebut tetapi menolak untuk terhubung, dan menyatakan bahwa pengaturan organisasi Anda tidak mengizinkan koneksi tersebut.1822 [Tambahkan koneksi SSH](#ssh-sessions) dengan hostname yang tidak ada di allowlist, seperti `other.example.com`. Desktop menyimpan koneksi tetapi menolak untuk terhubung, dan menyatakan bahwa pengaturan organisasi Anda tidak mengizinkan koneksi tersebut.

1572 </Step>1823 </Step>

1573</Steps>1824</Steps>

1574 1825 


1612| `browserExternalPageTools` | atur ke `"disabled"` untuk mencegah Claude menggunakan tools untuk membaca atau bertindak pada halaman eksternal di [Browser pane](#browse-external-sites). Pengguna masih dapat menavigasi ke situs eksternal sendiri, dan pratinjau server dev lokal tidak terpengaruh. |1863| `browserExternalPageTools` | atur ke `"disabled"` untuk mencegah Claude menggunakan tools untuk membaca atau bertindak pada halaman eksternal di [Browser pane](#browse-external-sites). Pengguna masih dapat menavigasi ke situs eksternal sendiri, dan pratinjau server dev lokal tidak terpengaruh. |

1613| `disableMobileSimulatorTools` | atur ke `true` untuk memblokir tools Claude untuk mengontrol dan menangkap perangkat di [iOS Simulator pane](/docs/id/desktop-ios-simulator#turn-off-simulator-access). Pane tetap dapat digunakan untuk ketukan pengguna sendiri; hanya akses Claude yang dihapus. Nilainya harus berupa boolean JSON `true`; string `"true"` diabaikan. |1864| `disableMobileSimulatorTools` | atur ke `true` untuk memblokir tools Claude untuk mengontrol dan menangkap perangkat di [iOS Simulator pane](/docs/id/desktop-ios-simulator#turn-off-simulator-access). Pane tetap dapat digunakan untuk ketukan pengguna sendiri; hanya akses Claude yang dihapus. Nilainya harus berupa boolean JSON `true`; string `"true"` diabaikan. |

1614| `disableBrowserExternalNavigation` | atur ke `true` untuk mematikan penjelajahan eksternal di [Browser pane](#browse-external-sites) sepenuhnya. Baik pengguna maupun Claude tidak dapat menavigasi ke situs eksternal, dan pratinjau server dev localhost tidak terpengaruh. Nilainya harus berupa boolean JSON `true`; string `"true"` diabaikan. |1865| `disableBrowserExternalNavigation` | atur ke `true` untuk mematikan penjelajahan eksternal di [Browser pane](#browse-external-sites) sepenuhnya. Baik pengguna maupun Claude tidak dapat menavigasi ke situs eksternal, dan pratinjau server dev localhost tidak terpengaruh. Nilainya harus berupa boolean JSON `true`; string `"true"` diabaikan. |

1615| `sshConfigs` | pre-configure [SSH connections](#pre-configure-ssh-connections-for-your-team) yang muncul di dropdown lingkungan. Pengguna tidak dapat menghapus koneksi yang dikelola atau mengedit apa pun selain **Worktree folder** mereka sendiri. |1866| `sshConfigs` | pre-configure [SSH connections](#pre-configure-ssh-connections-for-your-team) yang muncul di pemilih lingkungan. Pengguna tidak dapat menghapus koneksi yang dikelola atau mengedit apa pun selain **Worktree folder** mereka sendiri. |

1616| `sshHostAllowlist` | batasi [SSH sessions](#restrict-which-ssh-hosts-users-can-connect-to) ke host yang nama hostname yang diselesaikannya cocok dengan salah satu pola ini. Dibaca dari pengaturan terkelola saja. |1867| `sshHostAllowlist` | batasi [SSH sessions](#restrict-which-ssh-hosts-users-can-connect-to) ke host yang nama hostname yang diselesaikannya cocok dengan salah satu pola ini. Dibaca dari pengaturan terkelola saja. |

1617| `disableDesktopLocalSessions` | atur ke `true` untuk mematikan [Code sessions yang berjalan di perangkat](#local-sessions-on-managed-devices), meninggalkan sesi SSH ke host lain dan sesi cloud tersedia. Nilainya harus berupa boolean JSON `true`. Dibaca dari pengaturan terkelola saja. Memerlukan Claude Desktop v1.37937.0 atau lebih baru. |1868| `disableDesktopLocalSessions` | atur ke `true` untuk mematikan [Code sessions yang berjalan di perangkat](#local-sessions-on-managed-devices), meninggalkan sesi SSH ke host lain dan sesi cloud tersedia. Nilainya harus berupa boolean JSON `true`. Dibaca dari pengaturan terkelola saja. Memerlukan Claude Desktop v1.37937.0 atau lebih baru. |

1618| `disableSshSavedPasswords` | atur ke `true` untuk menghentikan Desktop dari menawarkan untuk mengingat kata sandi SSH serta dari menggunakan atau menampilkan kata sandi yang telah disimpannya sebelumnya. Mengaktifkannya tidak menghapus kata sandi tersebut. Dibaca dari pengaturan terkelola saja. Memerlukan Claude Desktop v1.49585.0 atau lebih baru. |1869| `disableSshSavedPasswords` | atur ke `true` untuk menghentikan Desktop dari menawarkan untuk mengingat kata sandi SSH serta dari menggunakan atau menampilkan kata sandi yang telah disimpannya sebelumnya. Mengaktifkannya tidak menghapus kata sandi tersebut. Dibaca dari pengaturan terkelola saja. Memerlukan Claude Desktop v1.49585.0 atau lebih baru. |


1756 2007 

1757| CLI | Setara Desktop |2008| CLI | Setara Desktop |

1758| - | - |2009| - | - |

1759| `--model sonnet` | Dropdown model di sebelah tombol kirim |2010| `--model sonnet` | Pemilih model di baris di bawah kotak prompt |

1760| `--resume`, `--continue` | Klik sesi di sidebar, atau ketik `/resume` di kotak prompt untuk mengambil sesi yang Anda mulai dari CLI |2011| `--resume`, `--continue` | Klik sesi di sidebar, atau ketik `/resume` di kotak prompt untuk mengambil sesi yang Anda mulai dari CLI |

1761| `--permission-mode` | Pemilih mode di sebelah tombol kirim |2012| `--permission-mode` | Pemilih mode di baris di bawah kotak prompt |

1762| `--dangerously-skip-permissions` | Bypass permissions mode. Di paket Pro dan Max, aktifkan di Settings → Claude Code → "Allow bypass permissions mode"; di paket Team dan Enterprise, kebijakan organisasi mengontrolnya |2013| `--dangerously-skip-permissions` | Bypass permissions mode. Di paket Pro dan Max, aktifkan di Settings → Claude Code → "Allow bypass permissions mode"; di paket Team dan Enterprise, kebijakan organisasi mengontrolnya |

1763| `--add-dir` | Tambahkan beberapa repo dengan tombol **+** di sesi cloud |2014| `--add-dir` | [Tambahkan folder ke sesi](#add-folders-to-a-session) di sesi lokal dan SSH, atau pilih [beberapa repositori](#run-long-running-tasks-in-the-cloud) di sesi cloud |

1764| `--allowedTools`, `--disallowedTools` | Tidak ada setara per-sesi. Aturan izin di [file pengaturan](/docs/id/settings) masih berlaku. |2015| `--allowedTools`, `--disallowedTools` | Tidak ada setara per-sesi. Aturan izin di [file pengaturan](/docs/id/settings) masih berlaku. |

1765| `--verbose` | [Mode tampilan verbose](#switch-view-modes) |2016| `--verbose` | [Mode tampilan verbose](#switch-view-modes) |

1766| `--print`, `--output-format` | Tidak tersedia. Desktop hanya interaktif. |2017| `--print`, `--output-format` | Tidak tersedia. Desktop hanya interaktif. |

1767| `ANTHROPIC_MODEL` env var | Dropdown model di sebelah tombol kirim |2018| `ANTHROPIC_MODEL` env var | Pemilih model di baris di bawah kotak prompt |

1768| `MAX_THINKING_TOKENS` env var | Atur di editor lingkungan lokal. Lihat [konfigurasi lingkungan](#environment-configuration). |2019| `MAX_THINKING_TOKENS` env var | Lihat [Matikan extended thinking](#turn-off-extended-thinking) |

1769 2020 

1770<h3 id="shared-configuration">2021<h3 id="shared-configuration">

1771 Konfigurasi bersama2022 Konfigurasi bersama


1777* **[MCP servers](/docs/id/mcp)** yang dikonfigurasi di `~/.claude.json` atau `.mcp.json` bekerja di keduanya2028* **[MCP servers](/docs/id/mcp)** yang dikonfigurasi di `~/.claude.json` atau `.mcp.json` bekerja di keduanya

1778* **[Hooks](/docs/id/hooks)** dan **[skills](/docs/id/skills)** yang ditentukan dalam pengaturan berlaku untuk keduanya2029* **[Hooks](/docs/id/hooks)** dan **[skills](/docs/id/skills)** yang ditentukan dalam pengaturan berlaku untuk keduanya

1779* **[Settings](/docs/id/settings)** di `~/.claude.json` dan `~/.claude/settings.json` dibagikan. Aturan izin, tool yang diizinkan, dan pengaturan lainnya di `settings.json` berlaku untuk sesi Desktop.2030* **[Settings](/docs/id/settings)** di `~/.claude.json` dan `~/.claude/settings.json` dibagikan. Aturan izin, tool yang diizinkan, dan pengaturan lainnya di `settings.json` berlaku untuk sesi Desktop.

1780* **Models**: model yang sama [models](/docs/id/model-config#available-models) tersedia di keduanya. Di Desktop, pilih model dari dropdown di sebelah tombol kirim. Anda dapat mengubah model selama sesi dari dropdown yang sama.2031* **Models**: [model](/docs/id/model-config#available-models) yang sama tersedia di keduanya. Di Desktop, pilih model dari pemilih model di baris di bawah kotak prompt. Anda dapat mengubah model di tengah sesi dari pemilih yang sama.

1781 2032 

1782<h4 id="mcp-servers-from-the-claude-desktop-chat-app">2033<h4 id="mcp-servers-from-the-claude-desktop-chat-app">

1783 MCP servers dari aplikasi chat Claude Desktop2034 MCP servers dari aplikasi chat Claude Desktop


1805| [Penyedia pihak ketiga](/docs/id/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | API Anthropic secara default. Untuk perutean gateway, lihat [hubungkan aplikasi desktop ke gateway](/docs/id/llm-gateway-connect#desktop-app). Untuk menjalankan tab Code di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau gateway LLM yang di-host sendiri, lihat [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). |2056| [Penyedia pihak ketiga](/docs/id/third-party-integrations) | Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry | API Anthropic secara default. Untuk perutean gateway, lihat [hubungkan aplikasi desktop ke gateway](/docs/id/llm-gateway-connect#desktop-app). Untuk menjalankan tab Code di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau gateway LLM yang di-host sendiri, lihat [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview). |

1806| [MCP servers](/docs/id/mcp) | Konfigurasikan di file pengaturan | UI Connectors untuk sesi lokal dan SSH, atau file pengaturan |2057| [MCP servers](/docs/id/mcp) | Konfigurasikan di file pengaturan | UI Connectors untuk sesi lokal dan SSH, atau file pengaturan |

1807| [Plugins](/docs/id/plugins/overview) | Perintah `/plugin` | UI plugin manager |2058| [Plugins](/docs/id/plugins/overview) | Perintah `/plugin` | UI plugin manager |

1808| File @mention | Berbasis teks | Dengan autocomplete; hanya sesi lokal dan SSH |2059| File @mention | Berbasis teks | Dengan autocomplete, kecuali untuk pesan pertama sesi cloud |

1809| Lampiran file | Tidak tersedia | Gambar, PDF |2060| Lampiran file | Tidak tersedia | Gambar, PDF |

1810| Isolasi sesi | Flag [`--worktree`](/docs/id/cli-reference) | Opsi **worktree** saat memulai sesi |2061| Isolasi sesi | Flag [`--worktree`](/docs/id/cli-reference) | [Jalankan sesi di worktree-nya sendiri](#run-a-session-in-its-own-worktree) |

1811| Sesi ganda | Terminal terpisah | Tab sidebar |2062| Sesi ganda | Terminal terpisah | Tab sidebar |

1812| Tugas berulang | Cron jobs, CI pipelines | [Tugas terjadwal](/docs/id/desktop-scheduled-tasks) |2063| Tugas berulang | Cron jobs, CI pipelines | [Tugas terjadwal](/docs/id/desktop-scheduled-tasks) |

1813| Penggunaan komputer | [Aktifkan via `/mcp`](/docs/id/computer-use) di macOS | [Kontrol aplikasi dan layar](#let-claude-use-your-computer) di macOS dan Windows |2064| Penggunaan komputer | [Aktifkan via `/mcp`](/docs/id/computer-use) di macOS | [Kontrol aplikasi dan layar](#let-claude-use-your-computer) di macOS dan Windows |


1833 Troubleshooting2084 Troubleshooting

1834</h2>2085</h2>

1835 2086 

1836Bagian di bawah mencakup masalah khusus untuk aplikasi desktop. Untuk kesalahan API runtime yang muncul di chat seperti `API Error: 500`, `529 Overloaded`, `429`, atau `Prompt is too long`, lihat [Error reference](/docs/id/errors). Kesalahan tersebut dan perbaikannya sama di CLI, desktop, dan web.2087Bagian di bawah mencakup masalah khusus untuk aplikasi desktop. Untuk kesalahan API runtime yang muncul di chat seperti `API Error: 500`, `529 Overloaded`, `429`, atau `Prompt is too long`, lihat [Error reference](/docs/id/errors).

1837 2088 

1838<h3 id="check-your-version">2089<h3 id="check-your-version">

1839 Check your version2090 Check your version


1852 2103 

1853Untuk melihat versi Claude Code yang dijalankan oleh sebuah sesi, ketik `/status` di sesi lokal pada tab **Code** dan baca baris **Claude Code**, yang menampilkan versi seperti `2.1.286`.2104Untuk melihat versi Claude Code yang dijalankan oleh sebuah sesi, ketik `/status` di sesi lokal pada tab **Code** dan baca baris **Claude Code**, yang menampilkan versi seperti `2.1.286`.

1854 2105 

1855Untuk mendapatkan versi yang lebih baru untuk sesi lokal, buka **Claude → Check for Updates** di macOS atau **Help → Check for Updates** di Windows, kemudian mulai sesi baru.2106Untuk mendapatkan versi yang lebih baru untuk sesi lokal, buka **Claude > Check for Updates…** di macOS atau **Help > Check for Updates…** di Windows, kemudian mulai sesi baru.

1856 2107 

1857Dalam sesi lokal, tab **Code** menjalankan salinan Claude Code miliknya sendiri, yang memiliki nomor versinya sendiri. Aplikasi desktop mengunduh dan memperbarui salinan tersebut, sehingga versinya dapat berbeda dari perintah `claude` di terminal Anda, dan memperbarui salah satunya tidak memperbarui yang lain.2108Dalam sesi lokal, tab **Code** menjalankan salinan Claude Code miliknya sendiri, yang memiliki nomor versinya sendiri. Aplikasi desktop mengunduh dan memperbarui salinan tersebut, sehingga versinya dapat berbeda dari perintah `claude` di terminal Anda, dan memperbarui salah satunya tidak memperbarui yang lain.

1858 2109 

2110<h3 id="check-which-layout-you-have">

2111 Check which layout you have

2112</h3>

2113 

2114Jika sesi baru tidak memiliki [pemilih lingkungan](#start-a-session) di bawah kotak prompt, Anda menggunakan tata letak lama:

2115 

2116* **[Desktop yang lebih lama dari v2.37337.0](#check-your-version)**: perbarui untuk mendapatkan tata letak saat ini. Pilih **Claude > Check for Updates…** di macOS atau **Help > Check for Updates…** di Windows.

2117* **[Penyedia pihak ketiga](/docs/id/third-party-integrations)**: Anda tetap menggunakan tata letak lama, jadi tidak ada yang perlu dilakukan.

2118 

2119Dalam tata letak lama, pilih lingkungan dan folder proyek di atas kotak prompt, serta mode izin dan model di baris di bawahnya. Tata letak lama tidak memiliki [panel detail sesi](#see-session-details) dan [lingkungan lokal dan SSH yang disimpan](#create-a-saved-environment).

2120 

1859<h3 id="403-or-authentication-errors-in-the-code-tab">2121<h3 id="403-or-authentication-errors-in-the-code-tab">

1860 403 or authentication errors in the Code tab2122 403 or authentication errors in the Code tab

1861</h3>2123</h3>

Details

160* Konfirmasi Xcode dan simulator iOS terinstal dan Anda menggunakan [versi Xcode yang direkomendasikan](#requirements).160* Konfirmasi Xcode dan simulator iOS terinstal dan Anda menggunakan [versi Xcode yang direkomendasikan](#requirements).

161* Jika organisasi Anda mengelola Claude Code, [alat simulator mungkin dinonaktifkan oleh kebijakan](#turn-off-simulator-access).161* Jika organisasi Anda mengelola Claude Code, [alat simulator mungkin dinonaktifkan oleh kebijakan](#turn-off-simulator-access).

162* Jika Anda berada di organisasi Enterprise yang memiliki konfigurasi HIPAA diaktifkan, pane simulator tidak tersedia untuk Anda.162* Jika Anda berada di organisasi Enterprise yang memiliki konfigurasi HIPAA diaktifkan, pane simulator tidak tersedia untuk Anda.

163* Pane simulator memerlukan Claude Desktop v1.24012.0 atau lebih baru. Buka **Claude → Check for Updates**, lalu restart aplikasi.163* Pane simulator memerlukan Claude Desktop v1.24012.0 atau lebih baru. Buka **Claude > Check for Updates…**, lalu restart aplikasi.

164 164 

165<h3 id="the-simulator-pane-says-no-simulators-were-found">165<h3 id="the-simulator-pane-says-no-simulators-were-found">

166 Pane simulator mengatakan tidak ada simulator yang ditemukan166 Pane simulator mengatakan tidak ada simulator yang ditemukan


174 174 

175* [Computer use in Desktop](/docs/id/desktop#let-claude-use-your-computer): kontrol layar untuk aplikasi tanpa pane khusus175* [Computer use in Desktop](/docs/id/desktop#let-claude-use-your-computer): kontrol layar untuk aplikasi tanpa pane khusus

176* [Computer use from the CLI](/docs/id/computer-use): bagaimana CLI menjangkau iOS Simulator176* [Computer use from the CLI](/docs/id/computer-use): bagaimana CLI menjangkau iOS Simulator

177* [Work in parallel with sessions](/docs/id/desktop#work-in-parallel-with-sessions): bagaimana sesi mengisolasi perubahan177* [Jalankan sesi di worktree-nya sendiri](/docs/id/desktop#run-a-session-in-its-own-worktree): bagaimana sesi mengisolasi perubahan

178* [Get started with Claude Code Desktop](/docs/id/desktop-quickstart)178* [Get started with Claude Code Desktop](/docs/id/desktop-quickstart)

Details

63 63 

64<Steps>64<Steps>

65 <Step title="Pilih lingkungan dan folder">65 <Step title="Pilih lingkungan dan folder">

66 Pilih **Local** untuk menjalankan Claude di mesin Anda menggunakan file Anda secara langsung. Klik **Select folder** dan pilih direktori proyek Anda.66 Di [baris di bawah kotak prompt](/docs/id/desktop#start-a-session), klik kontrol pertama, yaitu pemilih lingkungan, lalu pilih entri teratas di grup **Local**. Kemudian klik kontrol folder proyek di samping pemilih lingkungan, pilih **Open folder…**, dan pilih direktori proyek Anda.

67 

68 Jika tidak ada pemilih lingkungan yang muncul di bawah kotak prompt Anda, Anda menggunakan tata letak sebelumnya. Lihat [Periksa tata letak yang Anda gunakan](/docs/id/desktop#check-which-layout-you-have).

67 69 

68 <Tip>70 <Tip>

69 Mulai dengan proyek kecil yang Anda kenal dengan baik. Ini adalah cara tercepat untuk melihat apa yang dapat dilakukan Claude Code.71 Mulai dengan proyek kecil yang Anda kenal dengan baik. Ini adalah cara tercepat untuk melihat apa yang dapat dilakukan Claude Code.


72 Anda juga dapat memilih:74 Anda juga dapat memilih:

73 75 

74 * **Cloud**: Jalankan sesi di cloud yang terus berlanjut bahkan jika Anda menutup aplikasi. Lihat [Use Claude Code in the cloud](/docs/id/claude-code-on-the-web) untuk mengetahui cara kerja sesi cloud.76 * **Cloud**: Jalankan sesi di cloud yang terus berlanjut bahkan jika Anda menutup aplikasi. Lihat [Use Claude Code in the cloud](/docs/id/claude-code-on-the-web) untuk mengetahui cara kerja sesi cloud.

75 * **SSH**: Terhubung ke mesin jarak jauh melalui SSH, seperti server Anda sendiri, cloud VM, atau dev container. Desktop secara otomatis menginstal Claude Code di mesin jarak jauh saat pertama kali Anda terhubung. Tugas yang sedang berjalan dapat [terus berjalan saat Desktop terputus](/docs/id/desktop#keep-a-task-running-while-desktop-is-disconnected), tetapi dengan akun Claude, tugas tersebut dapat berhenti ketika masa berlaku login-nya habis.77 * **SSH**: Terhubung ke mesin jarak jauh melalui SSH, seperti server Anda sendiri, cloud VM, atau dev container. [Tambahkan koneksi](/docs/id/desktop#ssh-sessions) terlebih dahulu. Desktop secara otomatis menginstal Claude Code di mesin jarak jauh saat pertama kali Anda terhubung. Tugas yang sedang berjalan dapat [terus berjalan saat Desktop terputus](/docs/id/desktop#keep-a-task-running-while-desktop-is-disconnected), tetapi dengan akun Claude, tugas tersebut dapat berhenti ketika masa berlaku login-nya habis.

76 * **WSL** (Windows): Jalankan sesi di dalam [distribusi WSL 2](/docs/id/desktop-wsl); Claude Code, tools, dan git berjalan di sisi Linux dengan path asli.78 * **WSL** (Windows): Jalankan sesi di dalam [distribusi WSL 2](/docs/id/desktop-wsl); Claude Code, tools, dan git berjalan di sisi Linux dengan path asli.

77 </Step>79 </Step>

78 80 

79 <Step title="Pilih model">81 <Step title="Pilih model">

80 Pilih model dari dropdown di sebelah tombol kirim. Lihat [models](/docs/id/model-config#available-models) untuk perbandingan model yang tersedia. Anda dapat mengubah model nanti dari dropdown yang sama.82 Pilih model dari pemilih model di dekat ujung kanan baris di bawah kotak prompt. Lihat [models](/docs/id/model-config#available-models) untuk perbandingan model yang tersedia. Anda dapat mengubah model nanti dari pemilih model.

81 </Step>83 </Step>

82 84 

83 <Step title="Beri tahu Claude apa yang harus dilakukan">85 <Step title="Beri tahu Claude apa yang harus dilakukan">


91 </Step>93 </Step>

92 94 

93 <Step title="Tinjau dan terima perubahan">95 <Step title="Tinjau dan terima perubahan">

94 Apa yang terjadi selanjutnya tergantung pada [permission mode](/docs/id/desktop#choose-a-permission-mode) yang ditampilkan di selector di sebelah tombol kirim:96 Periksa [permission mode](/docs/id/desktop#choose-a-permission-mode) Anda di baris di bawah kotak prompt untuk melihat apakah Claude menunggu persetujuan Anda:

95 97 

96 * **Auto or Accept edits**: Claude menerapkan perubahan filenya, dan indikator seperti `+12 -1` muncul sehingga Anda dapat meninjau perubahan tersebut di tampilan diff98 * **Auto or Accept edits**: Claude menerapkan perubahan filenya, dan indikator seperti `+12 -1` muncul sehingga Anda dapat meninjau perubahan tersebut di tampilan diff

97 * **Manual**: Claude mengusulkan setiap perubahan dan menunggu persetujuan Anda sebelum menerapkannya. File Anda tidak dimodifikasi sampai Anda menerima, dan jika Anda menolak perubahan, Claude menanyakan bagaimana Anda ingin melanjutkan99 * **Manual**: Claude mengusulkan setiap perubahan dan menunggu persetujuan Anda sebelum menerapkannya

98 100 

99 Dalam mode Manual, Anda akan melihat:101 Dalam mode Manual, Anda akan melihat:

100 102 


112 114 

113**Interupsi dan arahkan.** Anda dapat mengarahkan ulang Claude kapan saja. Klik tombol stop untuk menghentikan segera, atau ketik koreksi dan tekan **Enter** untuk mengirimnya tanpa menghentikan tindakan yang sedang berjalan. Bagaimanapun, Anda tidak perlu menunggu hingga selesai atau memulai dari awal.115**Interupsi dan arahkan.** Anda dapat mengarahkan ulang Claude kapan saja. Klik tombol stop untuk menghentikan segera, atau ketik koreksi dan tekan **Enter** untuk mengirimnya tanpa menghentikan tindakan yang sedang berjalan. Bagaimanapun, Anda tidak perlu menunggu hingga selesai atau memulai dari awal.

114 116 

115**Berikan Claude lebih banyak konteks.** Ketik `@filename` di kotak prompt untuk menarik file tertentu ke dalam percakapan, lampirkan gambar dan PDF menggunakan tombol lampiran, atau seret dan lepas file langsung ke prompt. Semakin banyak konteks yang dimiliki Claude, semakin baik hasilnya. Lihat [Add files and context](/docs/id/desktop#add-files-and-context-to-prompts).117**Berikan Claude lebih banyak konteks.** Ketik `@filename` di kotak prompt untuk menarik file tertentu ke dalam percakapan. Semakin banyak konteks yang dimiliki Claude, semakin baik hasilnya. Lihat [Add files and context](/docs/id/desktop#add-files-and-context-to-prompts).

116 118 

117**Gunakan skills untuk tugas yang dapat diulang.** Ketik `/` atau klik **+** → **Slash commands** untuk menjelajahi [built-in commands](/docs/id/commands), [custom skills](/docs/id/skills), dan plugin skills. Skills adalah prompt yang dapat digunakan kembali yang dapat Anda panggil kapan pun Anda membutuhkannya, seperti daftar periksa tinjauan kode atau langkah-langkah penerapan.119**Gunakan skills untuk tugas yang dapat diulang.** Ketik `/` atau klik **+** → **Slash commands** untuk menjelajahi [built-in commands](/docs/id/commands), [custom skills](/docs/id/skills), dan plugin skills. Skills adalah prompt yang dapat digunakan kembali yang dapat Anda panggil kapan pun Anda membutuhkannya, seperti daftar periksa tinjauan kode atau langkah-langkah penerapan.

118 120 


125* **Accept edits**: Claude secara otomatis menerima pengeditan file untuk iterasi yang lebih cepat.127* **Accept edits**: Claude secara otomatis menerima pengeditan file untuk iterasi yang lebih cepat.

126* **Plan**: Claude mengusulkan pendekatan tanpa mengedit file apa pun, yang berguna sebelum refaktor besar.128* **Plan**: Claude mengusulkan pendekatan tanpa mengedit file apa pun, yang berguna sebelum refaktor besar.

127 129 

128**Tambahkan plugin untuk kemampuan lebih.** Klik tombol **+** di sebelah kotak prompt dan pilih **Plugins** untuk menjelajahi dan menginstal [plugins](/docs/id/desktop#install-plugins) yang menambahkan skills, agents, MCP servers, dan lainnya.130**Tambahkan plugin untuk kemampuan lebih.** Instal [plugins](/docs/id/desktop#install-plugins) yang menambahkan skills, agent, server MCP, dan lainnya.

129 131 

130**Atur ruang kerja Anda.** Seret pane chat, diff, terminal, file, dan browser ke tata letak apa pun yang Anda inginkan. Buka terminal dengan **Ctrl+\`** untuk menjalankan perintah bersama sesi Anda, atau klik jalur file untuk membukanya di pane file. Lihat [Arrange your workspace](/docs/id/desktop#arrange-your-workspace).132**Atur ruang kerja Anda.** Seret pane chat, diff, terminal, file, dan browser ke tata letak apa pun yang Anda inginkan. Buka terminal dengan **Ctrl+\`** untuk menjalankan perintah bersama sesi Anda, atau klik jalur file untuk membukanya. Lihat [Arrange your workspace](/docs/id/desktop#arrange-your-workspace).

131 133 

132**Pratinjau aplikasi Anda.** Ketika Anda menjalankan dev server Anda di desktop, aplikasi Anda terbuka di pane Browser, yang juga dapat [membuka situs eksternal](/docs/id/desktop#browse-external-sites). Claude dapat melihat aplikasi yang sedang berjalan, menguji endpoint, memeriksa log, dan melakukan iterasi pada apa yang dilihatnya. Lihat [Preview your app](/docs/id/desktop#preview-your-app).134**Pratinjau aplikasi Anda.** Ketika Anda menjalankan dev server Anda di desktop, aplikasi Anda terbuka di pane Browser, yang juga dapat [membuka situs eksternal](/docs/id/desktop#browse-external-sites). Claude dapat melihat aplikasi yang sedang berjalan, menguji endpoint, memeriksa log, dan melakukan iterasi pada apa yang dilihatnya. Lihat [Preview your app](/docs/id/desktop#preview-your-app).

133 135 

134**Lacak permintaan pull Anda.** Setelah membuka PR, Claude Code memantau hasil pemeriksaan CI dan dapat secara otomatis memperbaiki kegagalan atau menggabungkan PR setelah semua pemeriksaan lulus. Lihat [Monitor pull request status](/docs/id/desktop#monitor-pull-request-status).136**Lacak pull request Anda.** Setelah membuka PR, Claude Code memantau hasil pemeriksaan CI dan dapat secara otomatis memperbaiki kegagalan. Lihat [Monitor pull request status](/docs/id/desktop#monitor-pull-request-status).

135 137 

136**Letakkan Claude sesuai jadwal.** Atur [scheduled tasks](/docs/id/desktop-scheduled-tasks) untuk menjalankan Claude secara otomatis secara berulang: tinjauan kode harian setiap pagi, audit dependensi mingguan, atau briefing yang menarik dari alat yang terhubung Anda.138**Letakkan Claude sesuai jadwal.** Atur [scheduled tasks](/docs/id/desktop-scheduled-tasks) untuk menjalankan Claude secara otomatis secara berulang: tinjauan kode harian setiap pagi, audit dependensi mingguan, atau briefing yang menarik dari alat yang terhubung Anda.

137 139 

Details

33</Tip>33</Tip>

34 34 

35<Note>35<Note>

36 Secara default, tugas terjadwal berjalan terhadap status apapun yang ada di direktori kerja Anda, termasuk perubahan yang belum di-commit. Aktifkan toggle worktree saat membuat tugas untuk memberikan setiap run worktree Git terisolasi sendiri, dengan cara yang sama seperti [sesi paralel](/docs/id/desktop#work-in-parallel-with-sessions) bekerja.36 Secara default, tugas terjadwal berjalan terhadap status apapun yang ada di direktori kerja Anda, termasuk perubahan yang belum di-commit. Aktifkan toggle worktree saat membuat tugas untuk memberikan setiap run [worktree Git terisolasi](/docs/id/desktop#run-a-session-in-its-own-worktree) sendiri.

37</Note>37</Note>

38 38 

39<h2 id="create-a-scheduled-task">39<h2 id="create-a-scheduled-task">

desktop-wsl.md +19 −5

Details

24 24 

25<Steps>25<Steps>

26 <Step title="Pilih distribusi">26 <Step title="Pilih distribusi">

27 Mulai sesi baru di tab Code dan buka pemilih lingkungan. Distribusi WSL 2 yang terinstal muncul di bagian **WSL**. Pilih satu.27 Mulai sesi baru di tab Code dan buka [pemilih lingkungan](/docs/id/desktop#start-a-session) di bawah kotak prompt, atau di atasnya pada [tata letak sebelumnya](/docs/id/desktop#check-which-layout-you-have). Distribusi WSL 2 yang terinstal muncul di bagian **WSL**. Pilih satu.

28 </Step>28 </Step>

29 29 

30 <Step title="Pilih folder">30 <Step title="Pilih folder">


32 </Step>32 </Step>

33 33 

34 <Step title="Percayai folder">34 <Step title="Percayai folder">

35 Sesi pertama di folder menampilkan dialog kepercayaan ruang kerja. Anda memberikan kepercayaan per distribusi dan folder. Folder yang Anda percayai di satu distribusi tidak dipercayai di distribusi lain atau di jalur yang sama di Windows.35 Sesi pertama di folder menampilkan dialog kepercayaan workspace. Anda memberikan kepercayaan per distribusi dan folder. Folder yang Anda percayai di satu distribusi tidak dipercayai di distribusi lain atau di jalur yang sama di Windows.

36 </Step>36 </Step>

37</Steps>37</Steps>

38 38 

39Sesi pertama di distribusi membutuhkan waktu sedikit lebih lama sementara Claude melakukan pengaturan di dalamnya. Anda juga dapat membuka folder `\\wsl.localhost\...` dari pemilih folder normal, dan itu dibuka kembali di dalam distribusi tersebut.39Sesi pertama di distribusi membutuhkan waktu sedikit lebih lama sementara Claude melakukan pengaturan di dalamnya. Anda juga dapat membuka folder `\\wsl.localhost\...` dari pemilih folder normal, dan itu dibuka kembali di dalam distribusi tersebut.

40 40 

41Folder yang baru-baru ini Anda gunakan muncul di pemilih per distribusi, jadi menghubungkan kembali ke proyek hanya membutuhkan satu klik.

42 

43<h2 id="what-works-in-a-wsl-session">41<h2 id="what-works-in-a-wsl-session">

44 Apa yang berfungsi dalam sesi WSL42 Apa yang berfungsi dalam sesi WSL

45</h2>43</h2>

46 44 

47Sesi paralel, obrolan samping, tinjauan diff visual, status cabang dan permintaan tarik, dan worktrees semuanya berfungsi, didukung oleh git dan toolchain di dalam distribusi. "Buka di editor" membuka VS Code yang terhubung ke distribusi melalui [Remote - WSL](https://code.visualstudio.com/docs/remote/wsl).45Sesi paralel, obrolan samping, tinjauan diff visual, status cabang dan permintaan tarik, dan worktrees semuanya berfungsi, didukung oleh git dan toolchain di dalam distribusi. "Buka di editor" membuka VS Code yang terhubung ke distribusi melalui [Remote - WSL](https://code.visualstudio.com/docs/remote/wsl).

48 46 

49Beberapa fitur belum tersedia di sesi WSL: terminal terintegrasi, konektor dan plugin, forking sesi, panel browser file, dan saran file ketika Anda mengetik `@` di komposer.47Jika suatu fitur Desktop tidak tersedia atau terbatas dalam sesi WSL, periksa apakah fitur tersebut termasuk salah satu dari berikut ini:

48 

49* **Terminal dan konektor**: sesi Anda mungkin tidak memiliki [terminal terintegrasi](/docs/id/desktop#run-commands-in-the-terminal), [konektor](/docs/id/desktop#connect-external-tools), atau keduanya. Lihat [Jika terminal atau konektor tidak tersedia](#check-for-the-terminal-and-connectors).

50* **[Plugin](/docs/id/desktop#install-plugins)**: tidak tersedia dalam sesi WSL

51* **Pengeditan file**: Anda dapat melihat file di [panel file](/docs/id/desktop#open-and-edit-files) tetapi tidak dapat mengeditnya di sana, jadi mintalah Claude untuk melakukan perubahan

52* **Lampiran**: jika menu **+** menampilkan **Add image** alih-alih **Add files or photos**, Anda hanya dapat melampirkan gambar. Lihat [Menambahkan file dan konteks ke prompt](/docs/id/desktop#add-files-and-context-to-prompts).

53 

54<a id="check-for-the-terminal-and-connectors" />

55 

56<h3 id="if-the-terminal-or-connectors-are-unavailable">

57 Jika terminal atau konektor tidak tersedia

58</h3>

59 

60Anda tidak dapat mengaktifkan terminal terintegrasi atau konektor untuk sesi WSL sendiri:

61 

62* **Akun Claude**: kedua fitur tersebut diluncurkan secara terpisah. Pilih **Help > Check for Updates…**, dan jika suatu fitur masih tidak ada setelah Anda memperbarui, tidak ada yang perlu dilakukan.

63* **[Penyedia pihak ketiga](/docs/id/third-party-integrations)**: sesi WSL tidak mendapatkan terminal atau konektor, dan memperbarui Desktop tidak mengubah hal tersebut

50 64 

51<h2 id="managed-devices">65<h2 id="managed-devices">

52 Perangkat yang dikelola66 Perangkat yang dikelola

env-vars.md +7 −11

Details

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

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

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

199| `API_TIMEOUT_MS` | Timeout untuk permintaan API dalam milidetik (default: 600000, atau 10 menit; maksimum: 2147483647). Permintaan streaming harus menerima header responsnya dalam batas waktu ini. Tingkatkan nilai ini ketika permintaan mengalami timeout pada jaringan yang lambat atau saat merutekan melalui proxy |199| `API_TIMEOUT_MS` | Waktu dalam milidetik yang dimiliki setiap percobaan permintaan API untuk menerima header responsnya (default: 600000, atau 10 menit; maksimum: 2147483647). Ini tidak membatasi berapa lama respons streaming berjalan setelah itu. Jika Anda menetapkan nilai positif, setiap percobaan [permintaan non-streaming](/docs/id/errors#streaming-response-ended-before-any-complete-data-was-received) harus selesai dalam batas tersebut. Tingkatkan nilai ini ketika permintaan mengalami timeout pada jaringan lambat atau saat merutekan melalui proxy |

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/)) |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/)) |

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

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


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

231| `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 |231| `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 |

232| `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) |232| `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) |

233| `CLAUDE_CODE_AUTO_MODE_MODEL` | Menetapkan model untuk permintaan pengklasifikasi yang dikirim Claude Code dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode). Gunakan ID model lengkap seperti `claude-sonnet-4-6`. Untuk kasus di mana Claude Code mengabaikannya, lihat [Memilih model pengklasifikasi](/docs/id/permission-modes#choose-the-classifier-model). Memerlukan Claude Code v2.1.302 atau yang lebih baru |

233| `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 |234| `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 |

234| `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 |235| `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 |

235| `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 |236| `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 |


241| `CLAUDE_CODE_CLIENT_CERT` | Path ke file sertifikat klien untuk autentikasi mTLS |242| `CLAUDE_CODE_CLIENT_CERT` | Path ke file sertifikat klien untuk autentikasi mTLS |

242| `CLAUDE_CODE_CLIENT_KEY` | Path ke file kunci privat klien untuk autentikasi mTLS |243| `CLAUDE_CODE_CLIENT_KEY` | Path ke file kunci privat klien untuk autentikasi mTLS |

243| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase untuk CLAUDE\_CODE\_CLIENT\_KEY yang terenkripsi (opsional) |244| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase untuk CLAUDE\_CODE\_CLIENT\_KEY yang terenkripsi (opsional) |

244| `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` |245| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Dihapus di v2.1.186 dan sekarang tidak berpengaruh. Sebelumnya menetapkan timeout terpisah untuk fase koneksi, TLS, dan header respons dari permintaan API streaming. Gunakan `API_TIMEOUT_MS` sebagai gantinya. Untuk fase header respons dari permintaan streaming, lihat `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

245| `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` |246| `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` |

246| `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 |247| `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 |

247| `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) |248| `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) |


304| `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) |305| `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) |

305| `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) |306| `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) |

306| `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 |307| `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 |

307| `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) |308| `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` agar jeda tersebut tidak berlaku hingga Anda mencapai batas. Memerlukan Claude Code v2.1.238 atau lebih baru. Lihat [Saran prompt](/docs/id/interactive-mode#prompt-suggestions) |

308| `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) |309| `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) |

309| `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) |310| `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) |

310| `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 |311| `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 |


316| `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 |317| `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 |

317| `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 |318| `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 |

318| `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 |319| `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 |

319| `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 |320| `CLAUDE_CODE_FORK_SUBAGENT` | Mengontrol mode fork, yang aktif secara default dan memungkinkan Claude memulai [fork](/docs/id/sub-agents#fork-the-current-conversation) sendiri. Saat mode fork aktif, Claude juga tidak dapat [menunggu subagent](/docs/id/sub-agents#run-subagents-in-foreground-or-background) dalam sesi terminal interaktif, VS Code, atau desktop di mesin Anda. Atur ke `0` untuk mematikan mode fork. Untuk versi, lihat [Mematikan mode fork](/docs/id/sub-agents#turn-fork-mode-on-or-off) |

320| `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 |321| `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 |

321| `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 |322| `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 |

322| `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 |323| `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 |


340| `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 |341| `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 |

341| `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 |342| `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 |

342| `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 |343| `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 |

343| `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 |344| `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 dan menyebutkannya dalam jawabannya. 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 |

344| `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 |345| `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 |

345| `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 |346| `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 |

346| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Berapa lama dalam milidetik giliran pertama sesi [non-interaktif](/docs/id/headless) menunggu server MCP yang masih menyambung, menggantikan [penantian giliran pertama](/docs/id/agent-sdk/mcp#connection-timing) default. Ketika diatur, penantian mencakup setiap server yang tertunda; dalam [lingkungan self-hosted](/docs/id/self-hosted-environments-configuration#connection-timing), ini hanya mengubah berapa lama penantian berlangsung. Atur ke `0` untuk melewati penantian. Server [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tetap menggunakan penantian `MCP_TIMEOUT`-nya sendiri terlepas dari nilai ini. Memerlukan Claude Code v2.1.274 atau lebih baru |347| `CLAUDE_CODE_MCP_STARTUP_WAIT_MS` | Berapa lama dalam milidetik giliran pertama sesi [non-interaktif](/docs/id/headless) menunggu server MCP yang masih menyambung, menggantikan [penantian giliran pertama](/docs/id/agent-sdk/mcp#connection-timing) default. Ketika diatur, penantian mencakup setiap server yang tertunda; dalam [lingkungan self-hosted](/docs/id/self-hosted-environments-configuration#connection-timing), ini hanya mengubah berapa lama penantian berlangsung. Atur ke `0` untuk melewati penantian. Server [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tetap menggunakan penantian `MCP_TIMEOUT`-nya sendiri terlepas dari nilai ini. Memerlukan Claude Code v2.1.274 atau lebih baru |


599* Menjalankan [`/skill-doctor`](/docs/id/skills#find-unused-skills) atau membuka laporannya di tab **Stats** `/plugin`600* Menjalankan [`/skill-doctor`](/docs/id/skills#find-unused-skills) atau membuka laporannya di tab **Stats** `/plugin`

600* Menyinkronkan [skills](/docs/id/skills#where-synced-skills-load) dan [plugin](/docs/id/plugins/loading#synced-plugins) yang diaktifkan untuk akun claude.ai Anda ke sesi terminal Anda601* Menyinkronkan [skills](/docs/id/skills#where-synced-skills-load) dan [plugin](/docs/id/plugins/loading#synced-plugins) yang diaktifkan untuk akun claude.ai Anda ke sesi terminal Anda

601* Mengaktifkan [mod You should know](/docs/id/interactive-mode#you-should-know-suggestions)602* Mengaktifkan [mod You should know](/docs/id/interactive-mode#you-should-know-suggestions)

602* Melihat apa yang digambar oleh [mod](/docs/id/plugins/mods/overview#where-mods-run) di panel chat ekstensi VS Code; hook mod tersebut tetap berjalan

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

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

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


613 Sesi pertama setelah instalasi atau upgrade613 Sesi pertama setelah instalasi atau upgrade

614</h3>614</h3>

615 615 

616Dalam sesi pertama Anda setelah menginstal Claude Code, atau setelah upgrade ke versi yang menambahkan suatu fitur, [fitur yang dibatasi flag](#features-that-need-feature-flag-fetching) dapat tidak tersedia. Sesi tersebut juga dapat dimulai dalam [mode izin](/docs/id/permission-modes#which-mode-a-session-starts-in) yang berbeda dari sesi-sesi Anda berikutnya. Saat Claude Code mengambil flag selama sesi tersebut, Claude Code menyimpannya di mesin, sehingga sesi Anda berikutnya di mesin tersebut memiliki fitur itu dan mode izin awal yang biasa.616Dalam sesi pertama Anda setelah menginstal Claude Code, atau setelah upgrade ke versi yang menambahkan suatu fitur, [fitur yang dibatasi flag](#features-that-need-feature-flag-fetching) dapat tidak tersedia. Saat Claude Code mengambil feature flag-nya selama sesi tersebut, Claude Code menyimpannya di mesin, sehingga sesi Anda berikutnya di mesin tersebut memiliki fitur itu.

617 

618Setelah instalasi baru, dalam sesi non-interaktif seperti `claude -p`, Agent SDK, atau ekstensi VS Code, Claude Code dapat memperoleh flag sebelum [memilih mode izin awal](/docs/id/permission-modes#which-mode-a-session-starts-in), tetapi tidak selalu menunggunya.

619 617 

620Dalam pengaturan seperti berikut, sesi setelah sesi pertama juga dimulai tanpa flag yang baru diambil:618Dalam pengaturan seperti berikut, sesi setelah sesi pertama juga dimulai tanpa flag yang baru diambil:

621 619 

622* **Lingkungan bersih pada setiap run**: jika setiap run dimulai di container CI, atau lingkungan lain mana pun tanpa flag yang disimpan oleh sesi sebelumnya, setiap run adalah sesi pertama620* **Lingkungan bersih pada setiap run**: jika setiap run dimulai di container CI, atau lingkungan lain mana pun tanpa flag yang disimpan oleh sesi sebelumnya, setiap run adalah sesi pertama

623* **Token gateway tanpa kunci API**: jika Anda melakukan autentikasi dengan `ANTHROPIC_AUTH_TOKEN` dan tanpa kunci API, dan `ANTHROPIC_BASE_URL` mengarah ke host selain milik Anthropic, seperti [LLM gateway](/docs/id/llm-gateway), Claude Code tidak memiliki kredensial untuk mengambil flag621* **Token gateway tanpa kunci API**: jika Anda melakukan autentikasi dengan `ANTHROPIC_AUTH_TOKEN` dan tanpa kunci API, dan `ANTHROPIC_BASE_URL` mengarah ke host selain milik Anthropic, seperti [LLM gateway](/docs/id/llm-gateway), Claude Code tidak memiliki kredensial untuk mengambil flag

624 622 

625Untuk memilih mode izin yang digunakan sesi dalam pengaturan ini saat dimulai, lihat [Memulai dalam mode izin yang berbeda](/docs/id/permission-modes#start-in-a-different-mode).

626 

627<h2 id="see-also">623<h2 id="see-also">

628 Lihat juga624 Lihat juga

629</h2>625</h2>

errors.md +32 −5

Details

41| `Auto mode classifier transcript exceeded context window` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |41| `Auto mode classifier transcript exceeded context window` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |

42| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |42| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) |

43| `The server-side auto mode classifier gave no verdict` | [Server errors](#the-server-returned-no-safety-verdict) |43| `The server-side auto mode classifier gave no verdict` | [Server errors](#the-server-returned-no-safety-verdict) |

44| `<tool> was not reviewed and did not run: the conversation is too long for auto mode's classifier` | [Server errors](#was-not-reviewed-and-did-not-run) |

44| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [Server errors](#the-server-returned-no-safety-verdict) |45| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [Server errors](#the-server-returned-no-safety-verdict) |

45| `Agent terminated early due to an API error` | [Server errors](#agent-terminated-early-due-to-an-api-error) |46| `Agent terminated early due to an API error` | [Server errors](#agent-terminated-early-due-to-an-api-error) |

46| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Usage limits](#youve-hit-your-session-limit) |47| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Usage limits](#youve-hit-your-session-limit) |


471| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/id/env-vars) | unset | Waktu maksimum dalam milidetik yang dihabiskan setiap permintaan API untuk menunggu kesalahan `429` dan `529` ketika `CLAUDE_CODE_RETRY_WATCHDOG` ditetapkan. Ketika tidak ditetapkan, waktu tunggunya tidak terbatas. Memerlukan Claude Code v2.1.295 atau lebih baru. |472| [`CLAUDE_CODE_RETRY_WATCHDOG_MAX_WAIT_MS`](/docs/id/env-vars) | unset | Waktu maksimum dalam milidetik yang dihabiskan setiap permintaan API untuk menunggu kesalahan `429` dan `529` ketika `CLAUDE_CODE_RETRY_WATCHDOG` ditetapkan. Ketika tidak ditetapkan, waktu tunggunya tidak terbatas. Memerlukan Claude Code v2.1.295 atau lebih baru. |

472| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/id/env-vars) | 500 | Penundaan awal dalam milidetik dari backoff di antara retry permintaan yang ditolak API dengan kesalahan `529` overloaded. Naikkan, hingga 32000, untuk menyebarkan retry dalam rentang waktu yang lebih panjang ketika API sedang mencapai kapasitas. 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 lebih baru. |473| [`CLAUDE_CODE_OVERLOADED_RETRY_BASE_DELAY_MS`](/docs/id/env-vars) | 500 | Penundaan awal dalam milidetik dari backoff di antara retry permintaan yang ditolak API dengan kesalahan `529` overloaded. Naikkan, hingga 32000, untuk menyebarkan retry dalam rentang waktu yang lebih panjang ketika API sedang mencapai kapasitas. 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 lebih baru. |

473| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/id/env-vars) | 32000 | Batas atas dalam milidetik untuk backoff di antara retry permintaan yang ditolak API dengan kesalahan `529` overloaded. Naikkan, hingga 64000, agar jarak antar retry berikutnya terus bertambah ketika API sedang mencapai kapasitas. 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.296 atau lebih baru. |474| [`CLAUDE_CODE_OVERLOADED_RETRY_MAX_DELAY_MS`](/docs/id/env-vars) | 32000 | Batas atas dalam milidetik untuk backoff di antara retry permintaan yang ditolak API dengan kesalahan `529` overloaded. Naikkan, hingga 64000, agar jarak antar retry berikutnya terus bertambah ketika API sedang mencapai kapasitas. 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.296 atau lebih baru. |

474| [`API_TIMEOUT_MS`](/docs/id/env-vars) | 600000 | Per-request timeout dalam milliseconds. Naikkan untuk jaringan lambat atau proxy. Ini juga membatasi berapa lama Claude Code menunggu response headers, dijelaskan dalam [No response from API](#no-response-from-api). |475| [`API_TIMEOUT_MS`](/docs/id/env-vars) | 600000 | Waktu dalam milidetik yang dimiliki setiap percobaan permintaan untuk menerima response headers-nya. Ini tidak membatasi berapa lama respons streaming berjalan setelah itu. Naikkan untuk jaringan lambat atau proxy. Untuk cara ini membatasi first-byte deadline, lihat [No response from API](#no-response-from-api). |

475| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/id/env-vars) | unset | Batas pengiriman ulang [permintaan non-streaming](#streaming-response-ended-before-any-complete-data-was-received) yang mengalami timeout. Saat batas tercapai, permintaan gagal. Respons dari Claude yang membutuhkan waktu lebih lama dari timeout untuk dihasilkan akan mengalami timeout lagi pada setiap pengiriman ulang, jadi tetapkan angka rendah seperti `0` agar gagal lebih cepat. Setiap percobaan non-streaming mengalami timeout setelah 300 detik dalam sesi lokal, atau setelah `API_TIMEOUT_MS` ketika Anda menetapkan nilai positif. Memerlukan Claude Code v2.1.285 atau lebih baru. |476| [`CLAUDE_CODE_NONSTREAMING_TIMEOUT_RETRIES`](/docs/id/env-vars) | unset | Batas pengiriman ulang [permintaan non-streaming](#streaming-response-ended-before-any-complete-data-was-received) yang mengalami timeout. Saat batas tercapai, permintaan gagal. Respons dari Claude yang membutuhkan waktu lebih lama dari timeout untuk dihasilkan akan mengalami timeout lagi pada setiap pengiriman ulang, jadi tetapkan angka rendah seperti `0` agar gagal lebih cepat. Setiap percobaan non-streaming mengalami timeout setelah 300 detik dalam sesi lokal, atau setelah `API_TIMEOUT_MS` ketika Anda menetapkan nilai positif. Memerlukan Claude Code v2.1.285 atau lebih baru. |

476| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/id/env-vars) | unset | Deadline dalam milliseconds untuk first response byte dari streaming request. Memerlukan Claude Code v2.1.242 atau lebih baru. Untuk bagaimana Claude Code memilih deadline ketika ini unset, lihat [No response from API](#no-response-from-api). |477| [`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/id/env-vars) | unset | Deadline dalam milliseconds untuk first response byte dari streaming request. Memerlukan Claude Code v2.1.242 atau lebih baru. Untuk bagaimana Claude Code memilih deadline ketika ini unset, lihat [No response from API](#no-response-from-api). |

477 478 


535Request timed out536Request timed out

536```537```

537 538 

538Ini dapat terjadi selama periode beban tinggi atau ketika model menghasilkan respons yang sangat besar. Timeout permintaan default adalah 10 menit.539Timeout permintaan default adalah 10 menit.

539 540 

540**Yang harus dilakukan:**541**Yang harus dilakukan:**

541 542 


627<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.628<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.

628```629```

629 630 

630Dalam sesi interaktif, baris redup `Not run · auto mode's check had no usable answer` muncul di bawah panggilan tool alih-alih pesan ini. Tekan `Ctrl+O` untuk membaca pesan di [penampil transkrip](/docs/id/interactive-mode#transcript-viewer). Penolakan di bawah [The server returned no safety verdict](#the-server-returned-no-safety-verdict) menampilkan baris yang sama. Sebelum v2.1.296, pesan muncul di bawah panggilan sebagai kesalahan merah.631Dalam sesi interaktif, baris redup `Not run · auto mode's check had no usable answer` muncul di bawah panggilan tool alih-alih pesan ini. Tekan `Ctrl+O` untuk membaca pesan di [penampil transkrip](/docs/id/interactive-mode#transcript-viewer). Penolakan `gave no verdict` di bawah [The server returned no safety verdict](#the-server-returned-no-safety-verdict) menampilkan baris yang sama. Sebelum v2.1.296, pesan muncul di bawah panggilan sebagai kesalahan merah.

631 632 

632Ketika Claude Code dapat menentukan kategori kegagalan, ia menyebutkan kategori dalam tanda kurung setelah `temporarily unavailable`, misalnya `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Kategorinya adalah `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)`, dan `(connection failed)`. Jika `(timed out)` atau `(connection failed)` terulang, periksa koneksi Anda; lihat [Unable to connect to API](#unable-to-connect-to-api). Sebelum v2.1.229, pesan tidak pernah menyebutkan kategori dan berbunyi `Wait briefly and then try this action again`.633Ketika Claude Code dapat menentukan kategori kegagalan, ia menyebutkan kategori dalam tanda kurung setelah `temporarily unavailable`, misalnya `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`. Kategorinya adalah `(rate-limited)`, `(overloaded)`, `(server error)`, `(timed out)`, dan `(connection failed)`. Jika `(timed out)` atau `(connection failed)` terulang, periksa koneksi Anda; lihat [Unable to connect to API](#unable-to-connect-to-api). Sebelum v2.1.229, pesan tidak pernah menyebutkan kategori dan berbunyi `Wait briefly and then try this action again`.

633 634 


638* Coba lagi setelah beberapa detik; Claude melihat pesan yang sama dan biasanya mencoba ulang sendiri. Kegagalan sementara tidak terkait dengan [auto mode eligibility](/docs/id/permission-modes#eliminate-prompts-with-auto-mode); Anda tidak perlu mengubah pengaturan639* Coba lagi setelah beberapa detik; Claude melihat pesan yang sama dan biasanya mencoba ulang sendiri. Kegagalan sementara tidak terkait dengan [auto mode eligibility](/docs/id/permission-modes#eliminate-prompts-with-auto-mode); Anda tidak perlu mengubah pengaturan

639* Jika retry terus gagal, lanjutkan dengan tugas read-only dan kembali ke tindakan yang diblokir nanti640* Jika retry terus gagal, lanjutkan dengan tugas read-only dan kembali ke tindakan yang diblokir nanti

640* Di Amazon Bedrock, jika pesan kembali pada setiap retry, periksa bahwa akun Anda dapat memanggil model yang disebutkan: untuk model Amazon Bedrock standar, konfirmasi [IAM policy](/docs/id/amazon-bedrock#iam-configuration) Anda memungkinkan memanggilnya; untuk ID model Mantle, [hubungi tim akun AWS Anda](/docs/id/amazon-bedrock#mantle-endpoint-errors)641* Di Amazon Bedrock, jika pesan kembali pada setiap retry, periksa bahwa akun Anda dapat memanggil model yang disebutkan: untuk model Amazon Bedrock standar, konfirmasi [IAM policy](/docs/id/amazon-bedrock#iam-configuration) Anda memungkinkan memanggilnya; untuk ID model Mantle, [hubungi tim akun AWS Anda](/docs/id/amazon-bedrock#mantle-endpoint-errors)

642* Jika pesan kembali pada setiap retry dan menyebutkan model yang Anda tetapkan di [`CLAUDE_CODE_AUTO_MODE_MODEL`](/docs/id/permission-modes#choose-the-classifier-model), periksa bahwa API atau penyedia cloud tempat sesi Anda berjalan menyediakan ID model tersebut. Jika tidak, tetapkan variabel ke ID model yang disediakannya, atau hapus variabel untuk menggunakan [model pengklasifikasi default](/docs/id/permission-modes#default-classifier-model).

641 643 

642Ketika permintaan pengklasifikasi gagal karena token OAuth Anda kedaluwarsa atau diputar oleh sesi lain, Claude Code menyegarkan token dan mencoba ulang permintaan sekali, jadi kedaluwarsa token biasa tidak muncul sebagai pesan ini. Sebelum v2.1.216, token yang kedaluwarsa atau diputar menggagalkan setiap permintaan pengklasifikasi, dan auto mode menolak setiap tindakan yang diperiksa dengan pesan ini sampai token disegarkan.644Ketika permintaan pengklasifikasi gagal karena token OAuth Anda kedaluwarsa atau diputar oleh sesi lain, Claude Code menyegarkan token dan mencoba ulang permintaan sekali, jadi kedaluwarsa token biasa tidak muncul sebagai pesan ini. Sebelum v2.1.216, token yang kedaluwarsa atau diputar menggagalkan setiap permintaan pengklasifikasi, dan auto mode menolak setiap tindakan yang diperiksa dengan pesan ini sampai token disegarkan.

643 645 


672* Dalam sesi interaktif, beralih ke [permission mode](/docs/id/permission-modes) yang berbeda sehingga Anda dapat menyetujui tindakan ketika diminta674* Dalam sesi interaktif, beralih ke [permission mode](/docs/id/permission-modes) yang berbeda sehingga Anda dapat menyetujui tindakan ketika diminta

673* Mulai percakapan segar tanpa konten pemicu675* Mulai percakapan segar tanpa konten pemicu

674 676 

675Ketika percakapan telah tumbuh lebih besar dari context window pengklasifikasi:677Ketika percakapan terlalu panjang untuk permintaan pengklasifikasi Claude Code dan Claude Code tidak dapat [melakukan compaction sendiri](#was-not-reviewed-and-did-not-run):

676 678 

677```text theme={null}679```text theme={null}

678Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)680Auto mode classifier transcript exceeded context window — falling back to manual approval (try /compact to reduce conversation size)


715 717 

716**Yang harus dilakukan:**718**Yang harus dilakukan:**

717 719 

720* Dalam sesi interaktif, tekan `Ctrl+O` untuk membaca teks penolakan di [penampil transkrip](/docs/id/interactive-mode#transcript-viewer).

721* Jika penolakan menyebutkan `(the conversation is too long for the check)`, jalankan `/compact` di prompt Claude Code untuk memperpendek percakapan. Sampai percakapan lebih pendek, mengirim pesan lain akan mendapatkan penolakan yang sama. Jika Anda mematikan [auto-compact](/docs/id/settings-reference#autocompactenabled), aktifkan kembali agar Claude Code melakukan compaction sendiri di lain waktu.

718* Kirim pesan lain untuk membuat Claude mencoba lagi. Hitungan respons dimulai dari awal.722* Kirim pesan lain untuk membuat Claude mencoba lagi. Hitungan respons dimulai dari awal.

719* Jika berhenti terulang dan permintaan Anda melewati [LLM gateway or proxy](/docs/id/llm-gateway), periksa apakah itu memotong respons streaming pendek atau menulis ulangnya. [Server-side classifier review](/docs/id/permission-modes#server-side-classifier-review) mengatakan perilaku gateway mana yang menyebabkan penolakan, dan [gateway compatibility guide](/docs/id/llm-gateway-protocol#feature-pass-through) mencantumkan apa yang harus dilewatkan tanpa perubahan.723* Jika berhenti terulang dan permintaan Anda melewati [LLM gateway or proxy](/docs/id/llm-gateway), periksa apakah itu memotong respons streaming pendek atau menulis ulangnya. [Server-side classifier review](/docs/id/permission-modes#server-side-classifier-review) mengatakan perilaku gateway mana yang menyebabkan penolakan, dan [gateway compatibility guide](/docs/id/llm-gateway-protocol#feature-pass-through) mencantumkan apa yang harus dilewatkan tanpa perubahan.

720* Atur `CLAUDE_CODE_AUTO_MODE_SERVER=0` sebelum Anda memulai Claude Code untuk menggunakan permintaan pengklasifikasi miliknya sendiri. Sebelum v2.1.281, Claude Code tidak membaca variabel pada koneksi langsung ke Anthropic API.724* Atur `CLAUDE_CODE_AUTO_MODE_SERVER=0` sebelum Anda memulai Claude Code untuk menggunakan permintaan pengklasifikasi miliknya sendiri. Sebelum v2.1.281, Claude Code tidak membaca variabel pada koneksi langsung ke Anthropic API.


722 726 

723Sebelum v2.1.280, Claude Code menolak setiap tindakan dari respons tanpa putusan segera dan tidak pernah menghentikan giliran.727Sebelum v2.1.280, Claude Code menolak setiap tindakan dari respons tanpa putusan segera dan tidak pernah menghentikan giliran.

724 728 

729Sebelum v2.1.302, pada koneksi langsung ke Anthropic API, Claude Code tidak melakukan compaction pada percakapan yang telah menjadi terlalu panjang untuk pemeriksaan server.

730 

731<h3 id="was-not-reviewed-and-did-not-run">

732 Was not reviewed and did not run

733</h3>

734 

735Penolakan `was not reviewed and did not run` berarti percakapan terlalu panjang bagi pengklasifikasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk memeriksa tindakan, sehingga tindakan tidak berjalan. Claude Code mengembalikan pesan ini ke Claude:

736 

737```text theme={null}

738<tool> was not reviewed and did not run: the conversation is too long for auto mode's classifier. Claude Code will try to compact the conversation before the next request; if this action is still needed after that, issue it again and it will be reviewed normally.

739```

740 

741Jika compaction gagal, tindakan berikutnya yang tidak dapat diperiksa pengklasifikasi mendapatkan salah satu dari dua pesan lain:

742 

743* Penolakan [`gave no verdict (the conversation is too long for the check)`](#the-server-returned-no-safety-verdict)

744* Pesan [`Auto mode classifier transcript exceeded context window`](#auto-mode-cannot-determine-the-safety-of-an-action)

745 

746**Yang harus dilakukan:**

747 

748* Jika compaction yang diumumkan pesan berhasil, Anda tidak perlu melakukan apa pun.

749* Jika Anda melihat salah satu dari dua pesan tersebut, jalankan `/compact` di prompt Claude Code untuk memperpendek percakapan sendiri. Jika Anda mematikan [auto-compact](/docs/id/settings-reference#autocompactenabled), aktifkan kembali agar Claude Code melakukan compaction sendiri di lain waktu.

750 

725<h3 id="agent-terminated-early-due-to-an-api-error">751<h3 id="agent-terminated-early-due-to-an-api-error">

726 Agent terminated early due to an API error752 Agent terminated early due to an API error

727</h3>753</h3>


4554* Perbaiki setiap entri yang disebutkan kesalahan dengan mengacu pada [tool yang tersedia untuk subagent](/docs/id/sub-agents#available-tools)4580* Perbaiki setiap entri yang disebutkan kesalahan dengan mengacu pada [tool yang tersedia untuk subagent](/docs/id/sub-agents#available-tools)

4555* Hapus entri untuk tool yang tidak dimiliki sesi, seperti tool MCP dari server yang tidak terhubung4581* Hapus entri untuk tool yang tidak dimiliki sesi, seperti tool MCP dari server yang tidak terhubung

4556* Jika entri menyebutkan server MCP yang terhubung, bandingkan entri tersebut dengan nama server itu sebagaimana dieja oleh [nama tool](/docs/id/permissions#mcp) server tersebut, seperti `reports__v2` dalam `mcp__reports__v2__get_totals`. Untuk server itu, tulis `mcp__reports__v2__*`, yaitu `mcp__` diikuti nama lengkapnya dan `__*`. Dengan `mcp__reports` yang lebih pendek, yang menyebutkan server bernama `reports`, subagent tidak mendapatkan satu pun tool `reports__v2`4582* Jika entri menyebutkan server MCP yang terhubung, bandingkan entri tersebut dengan nama server itu sebagaimana dieja oleh [nama tool](/docs/id/permissions#mcp) server tersebut, seperti `reports__v2` dalam `mcp__reports__v2__get_totals`. Untuk server itu, tulis `mcp__reports__v2__*`, yaitu `mcp__` diikuti nama lengkapnya dan `__*`. Dengan `mcp__reports` yang lebih pendek, yang menyebutkan server bernama `reports`, subagent tidak mendapatkan satu pun tool `reports__v2`

4557* Untuk tool yang [dilepaskan subagent latar belakang](/docs/id/sub-agents#available-tools), seperti `CronCreate`, hapus entri tersebut. Untuk mempertahankan tool tersebut, [matikan mode fork](/docs/id/sub-agents#turn-fork-mode-on-or-off) dan minta Claude menjalankan subagent di foreground4583* Untuk tool yang [dilepaskan subagent latar belakang](/docs/id/sub-agents#available-tools), seperti `CronCreate`, hapus entri tersebut

4584* Untuk mempertahankan tool seperti `CronCreate` sebagai gantinya, [biarkan Claude menunggu subagent](/docs/id/sub-agents#let-claude-wait-for-a-subagent), karena subagent yang ditunggu Claude berjalan di foreground dan mempertahankan tool tersebut. Jika definisi mengatur `background: true`, hapus bidang itu terlebih dahulu, karena bidang tersebut membuat subagent tetap berjalan di latar belakang

4558* Hapus bidang `tools` alih-alih mencantumkan tool untuk memberikan subagent setiap [tool yang tersedia untuk subagent](/docs/id/sub-agents#available-tools)4585* Hapus bidang `tools` alih-alih mencantumkan tool untuk memberikan subagent setiap [tool yang tersedia untuk subagent](/docs/id/sub-agents#available-tools)

4559* Untuk daftar `tools` yang hanya berisi `Agent`, naikkan [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) atau berikan agent setidaknya satu tool lain: Claude Code menahan `Agent` pada batas itu, jadi daftar tanpa isi lain akan menghasilkan tidak ada tool4586* Untuk daftar `tools` yang hanya berisi `Agent`, naikkan [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) atau berikan agent setidaknya satu tool lain: Claude Code menahan `Agent` pada batas itu, jadi daftar tanpa isi lain akan menghasilkan tidak ada tool

4560 4587 

fast-mode.md +24 −24

Details

24* Untuk pengguna Claude Code pada paket berlangganan (Pro/Max/Team/Enterprise), mode cepat tersedia hanya melalui penggunaan kredit dan tidak termasuk dalam batas laju penggunaan berlangganan.24* Untuk pengguna Claude Code pada paket berlangganan (Pro/Max/Team/Enterprise), mode cepat tersedia hanya melalui penggunaan kredit dan tidak termasuk dalam batas laju penggunaan berlangganan.

25 25 

26<h2 id="toggle-fast-mode">26<h2 id="toggle-fast-mode">

27 Aktifkan mode cepat27 Mengaktifkan atau menonaktifkan fast mode

28</h2>28</h2>

29 29 

30Dalam CLI, aktifkan mode cepat dengan salah satu cara berikut:30Di CLI, aktifkan atau nonaktifkan fast mode dengan salah satu cara berikut:

31 31 

32* Jalankan `/fast`, tekan Space untuk mengaktifkan atau menonaktifkan, kemudian tekan Enter untuk mengonfirmasi32* Jalankan `/fast`, tekan Space untuk mengaktifkan atau menonaktifkan, lalu tekan Enter untuk mengonfirmasi

33* Atur `"fastMode": true` di [file pengaturan pengguna Anda](/docs/id/settings)33* Atur `"fastMode": true` di [file pengaturan pengguna](/docs/id/settings) Anda

34 34 

35Secara default, mode cepat yang Anda aktifkan dalam sesi interaktif bertahan di seluruh sesi. Anda dapat mengonfigurasi mode cepat untuk disetel ulang setiap sesi. Lihat [require per-session opt-in](#require-per-session-opt-in) untuk detail.35Secara default, fast mode yang Anda aktifkan dalam sesi interaktif akan tetap berlaku di seluruh sesi. Anda dapat mengonfigurasi fast mode agar diatur ulang di setiap sesi. Lihat [mewajibkan opt-in per sesi](#require-per-session-opt-in) untuk detailnya.

36 36 

37Di luar [sesi cloud](#use-fast-mode-in-cloud-sessions), dalam [mode non-interaktif](/docs/id/headless) dengan flag `-p`, `/fast` hanya berfungsi dalam sesi yang diluncurkan dengan mode cepat dalam nilai [`--settings`](/docs/id/cli-reference#cli-flags) nya, misalnya `claude -p --settings '{"fastMode": true}'`; toggle kemudian berlaku hanya untuk sesi itu dan tidak disimpan sebagai default Anda. Bentuk `-p` memerlukan Claude Code v2.1.205 atau lebih baru. Di tempat lain dalam mode non-interaktif, perintah melaporkan bahwa mode cepat tidak tersedia.37Di luar [sesi cloud](#use-fast-mode-in-cloud-sessions), dalam [mode non-interaktif](/docs/id/headless) dengan flag `-p`, `/fast` hanya berfungsi dalam sesi yang diluncurkan dengan fast mode di nilai [`--settings`](/docs/id/cli-reference#cli-flags)-nya, misalnya `claude -p --settings '{"fastMode": true}'`; pengalihan tersebut kemudian hanya berlaku untuk sesi itu dan tidak disimpan sebagai default Anda. Bentuk `-p` memerlukan Claude Code v2.1.205 atau yang lebih baru. Di tempat lain dalam mode non-interaktif, perintah tersebut melaporkan bahwa fast mode tidak tersedia.

38 38 

39Anda dapat menjalankan `/fast` saat Claude sedang bekerja, dan Claude Code mengalihkan mode cepat tanpa menunggu giliran berakhir. Claude Code menyelesaikan giliran yang sedang berjalan pada kecepatan aslinya, sehingga perubahan kecepatan berlaku mulai dari giliran Anda berikutnya. Jika model Anda saat ini tidak mendukung mode cepat, mengaktifkannya juga beralih ke model Anda, dan Claude Code menggunakan model baru dari permintaan berikutnya dalam giliran itu.39Anda dapat menjalankan `/fast` saat Claude sedang bekerja, dan Claude Code akan mengalihkan fast mode tanpa menunggu giliran berakhir. Claude Code menyelesaikan giliran yang sedang berjalan dengan kecepatan aslinya, sehingga perubahan kecepatan berlaku mulai giliran Anda berikutnya. Jika model Anda saat ini tidak mendukung fast mode, mengaktifkannya juga akan mengganti model Anda ke model lain, dan Claude Code menggunakan model baru tersebut mulai dari permintaan berikutnya dalam giliran itu.

40 40 

41Untuk efisiensi biaya terbaik, aktifkan mode cepat di awal sesi daripada beralih di tengah percakapan. Lihat [understand the cost tradeoff](#understand-the-cost-tradeoff) untuk detail.41Untuk efisiensi biaya terbaik, aktifkan fast mode di awal sesi daripada beralih di tengah percakapan. Lihat [memahami pertukaran biaya](#understand-the-cost-tradeoff) untuk detailnya.

42 42 

43Ketika Anda mengaktifkan mode cepat:43Saat Anda mengaktifkan fast mode:

44 44 

45* Jika model Anda saat ini tidak mendukung mode cepat, Claude Code beralih ke Opus45* Jika model Anda saat ini tidak mendukung fast mode, Claude Code beralih ke Opus

46* Anda akan melihat pesan konfirmasi: "Fast mode ON"46* Anda akan melihat pesan konfirmasi: "Fast mode ON"

47* Ikon kecil `↯` muncul di sebelah prompt saat mode cepat aktif47* Ikon kecil `↯` muncul di samping prompt selama fast mode aktif

48* Jalankan `/fast` lagi kapan saja untuk memeriksa apakah mode cepat aktif atau tidak48* Jalankan `/fast` lagi kapan saja untuk memeriksa apakah fast mode aktif atau tidak

49 49 

50Opus 5.5 adalah default mode cepat di Claude Code v2.1.280 dan lebih baru. Sebelum v2.1.280, mode cepat default ke Opus 5 dari v2.1.219, ke Opus 4.8 pada v2.1.154 hingga v2.1.218, dan ke Opus 4.7 pada v2.1.142 hingga v2.1.153.50Opus 5.5 adalah default fast mode di Claude Code v2.1.280 dan yang lebih baru. Sebelum v2.1.280, fast mode secara default menggunakan Opus 5 sejak v2.1.219, dan Opus 4.8 pada v2.1.154 hingga v2.1.218.

51 51 

52Ketika Anda menonaktifkan mode cepat dengan `/fast` lagi, Anda tetap berada di Opus. Untuk beralih ke model yang berbeda, gunakan `/model`.52Saat Anda menonaktifkan fast mode dengan `/fast` lagi, Anda tetap menggunakan Opus. Untuk beralih ke model lain, gunakan `/model`.

53 53 

54<h3 id="switch-models-while-fast-mode-is-on">54<h3 id="switch-models-while-fast-mode-is-on">

55 Beralih model saat mode cepat aktif55 Beralih model saat fast mode aktif

56</h3>56</h3>

57 57 

58Mode cepat mengikuti peralihan model Anda di kedua arah:58Fast mode mengikuti peralihan model Anda di kedua arah:

59 59 

60* **Beralih pergi**: ketika Anda beralih ke model yang tidak mendukung mode cepat, Claude Code mematikan mode cepat. Ini termasuk Opus 4.7; sebelum v2.1.221, mode cepat tetap aktif setelah peralihan ke Opus 4.7 dan API menolak permintaan.60* **Beralih dari model yang didukung**: saat Anda beralih ke model yang tidak mendukung fast mode, Claude Code mematikan fast mode. Ini termasuk Opus 4.7; sebelum v2.1.221, fast mode tetap aktif setelah beralih ke Opus 4.7 dan API menolak permintaan tersebut.

61* **Beralih kembali**: beralih kembali ke model Opus yang didukung menyalakan mode cepat lagi ketika preferensi mode cepat yang disimpan Anda aktif, preferensi yang sama yang dimulai sesi baru secara default. Peralihan model tidak pernah menyalakan mode cepat untuk sesi yang preferensi yang disimpannya mati, dan dengan [per-session opt-in](#require-per-session-opt-in) yang dikonfigurasi, beralih kembali tidak menyalakannya juga; jalankan `/fast` untuk mengaktifkannya kembali.61* **Beralih kembali**: beralih kembali ke model Opus yang didukung akan mengaktifkan fast mode lagi jika preferensi fast mode yang Anda simpan aktif, yaitu preferensi yang sama yang secara default menjadi titik awal sesi baru. Peralihan model tidak pernah mengaktifkan fast mode untuk sesi yang preferensi tersimpannya nonaktif, dan jika [opt-in per sesi](#require-per-session-opt-in) dikonfigurasi, beralih kembali juga tidak mengaktifkannya; jalankan `/fast` untuk mengaktifkannya kembali.

62 62 

63Kapan pun peralihan model menyalakan atau mematikan mode cepat, Claude Code menampilkan konfirmasi `Fast mode ON` atau `Fast mode OFF`, dan ikon `↯` muncul saat mode cepat aktif. Ini berlaku apakah Anda beralih dengan `/model`, dengan [`/config model=<model>`](/docs/id/settings), atau dari perangkat yang terhubung melalui [Remote Control](/docs/id/remote-control).63Setiap kali peralihan model mengaktifkan atau mematikan fast mode, Claude Code menampilkan konfirmasi `Fast mode ON` atau `Fast mode OFF`, dan ikon `↯` muncul selama fast mode aktif. Hal ini berlaku baik Anda beralih dengan `/model`, dengan [`/config model=<model>`](/docs/id/settings), maupun dari perangkat yang terhubung melalui [Remote Control](/docs/id/remote-control).

64 64 

65Claude Code mengirim ulang status mode cepat sesi ke perangkat yang terhubung melalui Remote Control setelah peralihan model, koneksi ulang, atau pemeriksaan [availability](#use-fast-mode-behind-proxies-and-llm-gateways) yang gagal.65Claude Code mengirim ulang status fast mode sesi ke perangkat yang terhubung melalui Remote Control setelah peralihan model, penyambungan ulang, atau [pemeriksaan ketersediaan](#use-fast-mode-behind-proxies-and-llm-gateways) yang gagal.

66 66 

67<h3 id="use-fast-mode-in-cloud-sessions">67<h3 id="use-fast-mode-in-cloud-sessions">

68 Gunakan mode cepat dalam sesi cloud68 Menggunakan fast mode dalam sesi cloud

69</h3>69</h3>

70 70 

71Mode cepat berfungsi dalam [sesi cloud](/docs/id/claude-code-on-the-web) ketika tersedia di akun Anda, apakah sesi berjalan pada infrastruktur yang dikelola Anthropic atau [runner yang di-host sendiri](/docs/id/self-hosted-environments). Memerlukan Claude Code v2.1.271 atau lebih baru di lingkungan sesi.71Fast mode berfungsi dalam [sesi cloud](/docs/id/claude-code-on-the-web) jika tersedia di akun Anda, baik sesi berjalan di infrastruktur yang dikelola Anthropic maupun di [runner yang di-hosting sendiri](/docs/id/self-hosted-environments). Memerlukan Claude Code v2.1.271 atau yang lebih baru di lingkungan sesi.

72 72 

73Ketik `/fast on` dalam sesi untuk mengaktifkan mode cepat. Itu tetap aktif hanya untuk sesi itu dan tidak disimpan sebagai default Anda. [Persyaratan](#requirements) juga berlaku dalam sesi cloud.73Ketik `/fast on` di sesi untuk mengaktifkan fast mode. Fast mode tetap aktif hanya untuk sesi tersebut dan tidak disimpan sebagai default Anda. [Persyaratan](#requirements) juga berlaku dalam sesi cloud.

74 74 

75Di browser di [claude.ai/code](https://claude.ai/code), Anda juga dapat mengaktifkan dan menonaktifkan mode cepat dari menu model di kotak pesan. Menu menampilkan switch ketika paket Anda mencakup mode cepat dan model yang dipilih mendukungnya.75Di browser pada [claude.ai/code](https://claude.ai/code), Anda juga dapat mengaktifkan dan menonaktifkan fast mode dari menu model pada kotak pesan. Menu tersebut menampilkan sakelar jika paket Anda menyertakan fast mode dan model yang dipilih mendukungnya.

76 76 

77<h2 id="understand-the-cost-tradeoff">77<h2 id="understand-the-cost-tradeoff">

78 Pahami pertukaran biaya78 Pahami pertukaran biaya

fullscreen.md +2 −2

Details

101* **Klik di input prompt** untuk memposisikan kursor Anda di mana saja dalam teks yang Anda ketik.101* **Klik di input prompt** untuk memposisikan kursor Anda di mana saja dalam teks yang Anda ketik.

102* **Klik saran dalam daftar perintah `/` atau file `@`** untuk menerimanya. Mengarahkan kursor menyoroti baris di bawah kursor Anda.102* **Klik saran dalam daftar perintah `/` atau file `@`** untuk menerimanya. Mengarahkan kursor menyoroti baris di bawah kursor Anda.

103* **Klik opsi dalam menu pilih** untuk memilihnya. Ini mencakup prompt izin, `/model`, `/config`, dan dialog lainnya yang menampilkan daftar opsi.103* **Klik opsi dalam menu pilih** untuk memilihnya. Ini mencakup prompt izin, `/model`, `/config`, dan dialog lainnya yang menampilkan daftar opsi.

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

105* **Klik nilai pengaturan di panel `/config`** untuk mengubahnya, dan gulir daftar pengaturan dengan roda mouse. Memerlukan Claude Code v2.1.271 atau lebih baru.105* **Klik nilai pengaturan di panel `/config`** untuk mengubahnya, dan gulir daftar pengaturan dengan roda mouse. Memerlukan Claude Code v2.1.271 atau lebih baru.

106* **Gulir menu pilih atau multi-pilih dengan roda mouse** ketika memiliki lebih banyak opsi daripada yang ditampilkan sekaligus, seperti daftar `/model` di jendela terminal pendek. Roda menggulir daftar saat pointer berada di atas opsinya. Memerlukan Claude Code v2.1.280 atau lebih baru.106* **Gulir menu pilih atau multi-pilih dengan roda mouse** ketika memiliki lebih banyak opsi daripada yang ditampilkan sekaligus, seperti daftar `/model` di jendela terminal pendek. Roda menggulir daftar saat pointer berada di atas opsinya. Memerlukan Claude Code v2.1.280 atau lebih baru.

107* **Gulir daftar yang meluap dengan scrollbar-nya.** Dalam panel daftar seperti `/skills`, `/mcp`, dan daftar Installed `/plugin`, scrollbar muncul di samping daftar dengan lebih banyak baris daripada yang muat saat pointer berada di atasnya. Klik trek untuk melompat ke titik itu, atau seret ibu jari. Memerlukan Claude Code v2.1.281 atau lebih baru.107* **Gulir daftar yang meluap dengan scrollbar-nya.** Dalam panel daftar seperti `/skills`, `/mcp`, dan daftar Installed `/plugin`, scrollbar muncul di samping daftar dengan lebih banyak baris daripada yang muat saat pointer berada di atasnya. Klik trek untuk melompat ke titik itu, atau seret ibu jari. Memerlukan Claude Code v2.1.281 atau lebih baru.


146| `Ctrl+End` | Lompat ke pesan terbaru dan aktifkan kembali auto-follow |146| `Ctrl+End` | Lompat ke pesan terbaru dan aktifkan kembali auto-follow |

147| Roda mouse | Gulir beberapa baris sekaligus |147| Roda mouse | Gulir beberapa baris sekaligus |

148 148 

149Anda dapat menggulir kembali ke awal sesi bahkan setelah [compaction](/docs/id/context-window#what-survives-compaction). Claude terus bekerja dari ringkasan compaction, tetapi Claude Code menyimpan setiap pesan sebelumnya dalam scrollback fullscreen di seluruh compaction berulang.149Jika Anda menutup sesi yang telah [dipadatkan](/docs/id/context-window#what-survives-compaction) lalu [melanjutkannya](/docs/id/sessions#what-a-resumed-session-restores), pengguliran ke atas berhenti di baris `Conversation compacted`, dan pesan-pesan Anda sebelumnya tetap tersimpan di disk dalam [file transkrip](/docs/id/sessions#where-transcripts-are-stored). Untuk mendapatkan detail dari pesan-pesan tersebut, minta Claude mencarinya di file tersebut.

150 150 

151Pada keyboard tanpa tombol `PgUp`, `PgDn`, `Home`, atau `End` khusus, seperti keyboard MacBook, tahan `Fn` dengan tombol panah: `Fn+↑` mengirim `PgUp`, `Fn+↓` mengirim `PgDn`, `Fn+←` mengirim `Home`, dan `Fn+→` mengirim `End`. `Ctrl+Fn+→` tidak menjangkau Claude Code di macOS, jadi keyboard MacBook tidak memiliki chord jump-to-bottom yang berfungsi secara default. Sebagai gantinya, gunakan salah satu opsi ini:151Pada keyboard tanpa tombol `PgUp`, `PgDn`, `Home`, atau `End` khusus, seperti keyboard MacBook, tahan `Fn` dengan tombol panah: `Fn+↑` mengirim `PgUp`, `Fn+↓` mengirim `PgDn`, `Fn+←` mengirim `Home`, dan `Fn+→` mengirim `End`. `Ctrl+Fn+→` tidak menjangkau Claude Code di macOS, jadi keyboard MacBook tidak memiliki chord jump-to-bottom yang berfungsi secara default. Sebagai gantinya, gunakan salah satu opsi ini:

152 152 

headless.md +5 −4

Details

138 Stdin yang disalurkan dibatasi pada 10MB. Jika Anda melampaui batas, Claude Code keluar dengan kesalahan yang jelas dan status bukan nol. Untuk bekerja dengan input yang lebih besar, tulis konten ke file dan referensikan jalur file dalam prompt Anda alih-alih menyalurkannya.138 Stdin yang disalurkan dibatasi pada 10MB. Jika Anda melampaui batas, Claude Code keluar dengan kesalahan yang jelas dan status bukan nol. Untuk bekerja dengan input yang lebih besar, tulis konten ke file dan referensikan jalur file dalam prompt Anda alih-alih menyalurkannya.

139</Note>139</Note>

140 140 

141Jika Claude Code tidak dapat membaca stdin, misalnya karena proses yang memulainya memutuskan ujungnya, Claude Code mencetak peringatan ke stderr dan melanjutkan dengan prompt dari baris perintah. Sebelum v2.1.211, stdin yang tidak dapat dibaca di Windows menghancurkan sesi atau membuatnya keluar diam-diam tanpa output.141Jika Claude Code tidak dapat membaca stdin, misalnya karena proses yang memulainya memutuskan ujungnya, Claude Code mencetak peringatan ke stderr dan melanjutkan dengan prompt dari baris perintah.

142 142 

143<h3 id="add-claude-to-a-build-script">143<h3 id="add-claude-to-a-build-script">

144 Tambahkan Claude ke skrip build144 Tambahkan Claude ke skrip build


213 213 

214Baris terakhir dari stream adalah pesan `result` dengan teks respons akhir, biaya, dan metadata sesi.214Baris terakhir dari stream adalah pesan `result` dengan teks respons akhir, biaya, dan metadata sesi.

215 215 

216Jika konsumen Anda membaca stream dengan lambat, Claude Code menunggu output yang antri untuk terkuras sebelum keluar, menskalakan waktu tunggu dengan berapa banyak yang masih antri, dibatasi pada 30 detik. Sebelum v2.1.214 waktu tunggu keluar dibatasi pada sekitar dua detik, yang dapat memotong akhir respons besar.216Jika konsumen Anda membaca stream dengan lambat, Claude Code menunggu output yang antri untuk terkuras sebelum keluar, menskalakan waktu tunggu dengan berapa banyak yang masih antri, dibatasi pada 30 detik.

217 217 

218Contoh berikut menggunakan [jq](https://jqlang.org/) untuk memfilter delta teks dan menampilkan hanya teks streaming. Flag `-r` menampilkan string mentah (tanpa tanda kutip) dan `-j` bergabung tanpa baris baru sehingga token streaming terus menerus:218Contoh berikut menggunakan [jq](https://jqlang.org/) untuk memfilter delta teks dan menampilkan hanya teks streaming. Flag `-r` menampilkan string mentah (tanpa tanda kutip) dan `-j` bergabung tanpa baris baru sehingga token streaming terus menerus:

219 219 


249 249 

250Jika sebagian pesan ini tidak ada di stream Anda, periksa versi Claude Code Anda terhadap versi minimum berikut:250Jika sebagian pesan ini tidak ada di stream Anda, periksa versi Claude Code Anda terhadap versi minimum berikut:

251 251 

252* **`--forward-subagent-text` dan `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`**: v2.1.211 atau lebih baru

253* **Penerusan di setiap kedalaman nesting**: v2.1.219 atau lebih baru252* **Penerusan di setiap kedalaman nesting**: v2.1.219 atau lebih baru

254* **Forked skill yang dimulai Claude dengan tool Skill dari percakapan utama**: v2.1.86 atau lebih baru untuk blok `tool_use` dan `tool_result`-nya, dan v2.1.265 atau lebih baru untuk pesan `user` pertamanya serta blok teks dan thinking-nya253* **Forked skill yang dimulai Claude dengan tool Skill dari percakapan utama**: v2.1.86 atau lebih baru untuk blok `tool_use` dan `tool_result`-nya, dan v2.1.265 atau lebih baru untuk pesan `user` pertamanya serta blok teks dan thinking-nya

255* **Pesan subagent yang dibuat oleh forked skill, dan pesan forked skill yang dimulai di dalam subagent atau forked skill lainnya**: v2.1.275 atau lebih baru254* **Pesan subagent yang dibuat oleh forked skill, dan pesan forked skill yang dimulai di dalam subagent atau forked skill lainnya**: v2.1.275 atau lebih baru


336 --allowedTools "Bash,Read,Edit"335 --allowedTools "Bash,Read,Edit"

337```336```

338 337 

339Untuk menetapkan baseline untuk seluruh sesi alih-alih mencantumkan tool individual, berikan [mode izin](/docs/id/permission-modes). Jalankan di mana tidak ada yang menetapkan mode izin mengambil [mode izin awal bawaan](/docs/id/permission-modes#which-mode-a-session-starts-in), yang dapat berupa `auto`, jadi berikan yang Anda inginkan:338Panggilan ke tool yang tidak Anda cantumkan tetap berjalan jika tidak memerlukan persetujuan. Dalam jalankan `claude -p` [mode Manual](/docs/id/permission-modes#available-modes), panggilan yang memerlukan persetujuan ditolak kecuali ada sesuatu yang menyetujuinya, seperti [hook `PermissionRequest`](/docs/id/hooks#permissionrequest) atau [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags). Dengan Claude Code v2.1.302 atau lebih baru, jalankan `claude -p` dimulai dalam mode Manual ketika [tidak ada yang menetapkan mode izin](/docs/id/permission-modes#which-mode-a-non-interactive-run-starts-in).

339 

340Untuk menetapkan baseline untuk seluruh sesi alih-alih mencantumkan tool individual, berikan [mode izin](/docs/id/permission-modes) dengan `--permission-mode`, seperti `auto`, `dontAsk`, atau `acceptEdits`:

340 341 

341* **`auto`**: berikan `--permission-mode auto` agar pengklasifikasi meninjau sebagian besar tindakan alih-alih Anda342* **`auto`**: berikan `--permission-mode auto` agar pengklasifikasi meninjau sebagian besar tindakan alih-alih Anda

342* **`dontAsk`**: Claude Code menolak setiap panggilan yang sebaliknya akan memunculkan permintaan izin, yang berguna untuk jalankan CI yang terkunci. Tindakan yang tidak memerlukan persetujuan dalam mode Manual tetap berjalan, seperti pembacaan file di direktori kerja Anda dan [set perintah read-only](/docs/id/permissions#read-only-commands), begitu juga tindakan yang dicakup oleh entri `--allowedTools` Anda atau aturan `permissions.allow`. `AskUserQuestion`, tool konektor yang [diatur organisasi Anda ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools), tool MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool), dan [pembacaan dari jalur jaringan](/docs/id/permissions#network-paths) ditolak bahkan ketika aturan allow cocok343* **`dontAsk`**: Claude Code menolak setiap panggilan yang sebaliknya akan memunculkan permintaan izin, yang berguna untuk jalankan CI yang terkunci. Tindakan yang tidak memerlukan persetujuan dalam mode Manual tetap berjalan, seperti pembacaan file di direktori kerja Anda dan [set perintah read-only](/docs/id/permissions#read-only-commands), begitu juga tindakan yang dicakup oleh entri `--allowedTools` Anda atau aturan `permissions.allow`. `AskUserQuestion`, tool konektor yang [diatur organisasi Anda ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools), tool MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool), dan [pembacaan dari jalur jaringan](/docs/id/permissions#network-paths) ditolak bahkan ketika aturan allow cocok

hooks.md +26 −32

Details

423* **[Prompt hooks](#prompt-and-agent-hook-fields)** (`type: "prompt"`): kirimkan prompt ke model Claude untuk evaluasi single-turn. Model mengembalikan keputusannya sebagai JSON. Lihat [Prompt-based hooks](#prompt-based-hooks).423* **[Prompt hooks](#prompt-and-agent-hook-fields)** (`type: "prompt"`): kirimkan prompt ke model Claude untuk evaluasi single-turn. Model mengembalikan keputusannya sebagai JSON. Lihat [Prompt-based hooks](#prompt-based-hooks).

424* **[Agent hooks](#prompt-and-agent-hook-fields)** (`type: "agent"`): spawn subagent yang dapat menggunakan tools seperti Read, Grep, dan Glob untuk memverifikasi kondisi sebelum mengembalikan keputusan. Agent hooks adalah eksperimental dan mungkin berubah. Lihat [Agent-based hooks](#agent-based-hooks).424* **[Agent hooks](#prompt-and-agent-hook-fields)** (`type: "agent"`): spawn subagent yang dapat menggunakan tools seperti Read, Grep, dan Glob untuk memverifikasi kondisi sebelum mengembalikan keputusan. Agent hooks adalah eksperimental dan mungkin berubah. Lihat [Agent-based hooks](#agent-based-hooks).

425 425 

426Semua matching hooks berjalan secara paralel. Jika Anda mendefinisikan handler yang sama di lebih dari satu file pengaturan, itu berjalan sekali. Salinan handler yang sama dari plugin atau skill tetap terpisah.426Ketika sebuah event dijalankan, hook yang cocok dengannya berjalan secara paralel. Jika lebih dari 12 di antaranya adalah prompt atau agent hook, 12 di antaranya berjalan sekaligus dan sisanya dimulai saat hook yang sedang berjalan selesai. [`timeout`](#common-fields) setiap hook yang menunggu mulai dihitung ketika hook tersebut dimulai.

427 

428Jika Anda mendefinisikan handler yang sama di lebih dari satu file pengaturan, itu berjalan sekali. Salinan handler yang sama dari plugin atau skill tetap terpisah.

427 429 

428Handlers berjalan di direktori saat ini dengan lingkungan Claude Code. Jika direktori saat ini tidak lagi ada, misalnya worktree atau direktori temp yang shell lain hapus di tengah-sesi, Claude Code menjalankan command hooks dari yang pertama dari ini yang masih ada: direktori tempat sesi dimulai, akar proyek, direktori home Anda, atau direktori temp sistem. Claude Code mencatat warning yang menamai direktori fallback dalam [debug log](#debug-hooks). Untuk sesi worktree yang Anda mulai dari aplikasi desktop, lihat [Apa yang dibagikan worktree dengan checkout utama](/docs/id/worktrees#what-worktrees-share-with-the-main-checkout).430Handlers berjalan di direktori saat ini dengan lingkungan Claude Code. Jika direktori saat ini tidak lagi ada, misalnya worktree atau direktori temp yang shell lain hapus di tengah-sesi, Claude Code menjalankan command hooks dari yang pertama dari ini yang masih ada: direktori tempat sesi dimulai, akar proyek, direktori home Anda, atau direktori temp sistem. Claude Code mencatat warning yang menamai direktori fallback dalam [debug log](#debug-hooks). Untuk sesi worktree yang Anda mulai dari aplikasi desktop, lihat [Apa yang dibagikan worktree dengan checkout utama](/docs/id/worktrees#what-worktrees-share-with-the-main-checkout).

429 431 


445 447 

446Bidang `if` menyimpan tepat satu aturan izin. Tidak ada sintaks `&&`, `||`, atau list untuk menggabungkan aturan; untuk menerapkan beberapa kondisi, tentukan handler hook terpisah untuk masing-masing.448Bidang `if` menyimpan tepat satu aturan izin. Tidak ada sintaks `&&`, `||`, atau list untuk menggabungkan aturan; untuk menerapkan beberapa kondisi, tentukan handler hook terpisah untuk masing-masing.

447 449 

448Dalam kondisi `if` untuk file tool, pola direktori single-segment seperti `"Edit(src/**)"` cocok hanya dengan direktori `src` di direktori kerja dan file di bawahnya. Untuk mencocokkan direktori bernama `src` di kedalaman apa pun, tulis `"Edit(**/src/**)"`. Sebelum v2.1.214, `"Edit(src/**)"` cocok dengan direktori bernama `src` di kedalaman apa pun di bawah direktori kerja.450Dalam kondisi `if` untuk file tool, pola direktori single-segment seperti `"Edit(src/**)"` cocok hanya dengan direktori `src` di direktori kerja dan file di bawahnya. Untuk mencocokkan direktori bernama `src` di kedalaman apa pun, tulis `"Edit(**/src/**)"`.

449 451 

450<h4 id="bash-if-matching">452<h4 id="bash-if-matching">

451 Bagaimana pola `if` mencocokkan perintah Bash453 Bagaimana pola `if` mencocokkan perintah Bash


825 Output exit code827 Output exit code

826</h3>828</h3>

827 829 

828Exit 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:830Ketika eksekusi hook Anda selesai, Claude Code menggunakan exit code-nya untuk memutuskan apakah akan melanjutkan tindakan yang memicunya, seperti panggilan tool atau prompt:

829 831 

830* **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. [Hook yang memulai proses latar belakang](#hooks-that-start-a-background-process) membahas pengecualiannya.832* **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. [Hook yang memulai proses latar belakang](#hooks-that-start-a-background-process) membahas pengecualiannya.

831* **Error blocking**: hook Anda keluar dengan 2. Pada [event yang dapat memblokir](#exit-code-2-behavior-per-event), Claude Code menghentikan tindakan.833* **Error blocking**: hook Anda keluar dengan 2. Pada [event yang dapat memblokir](#exit-code-2-behavior-per-event), Claude Code menghentikan tindakan.


853 Exit code 0855 Exit code 0

854</h4>856</h4>

855 857 

856Exit 0 berarti berhasil, dan merupakan exit code yang dimaksudkan ketika Anda mencetak JSON untuk kontrol terstruktur.858Exit 0 berarti berhasil, dan merupakan exit code yang dimaksudkan ketika Anda mencetak JSON untuk kontrol terstruktur. Ketika hook Anda keluar dengan 0 tetapi mencetak JSON yang tidak dapat di-parse atau gagal [validasi skema](#json-output), tindakan dilanjutkan kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails). Alih-alih berhasil dengan field Anda diterapkan, eksekusi tersebut menjadi [error non-blocking](#exit-code-output).

857 

858Untuk sebagian besar event, Claude Code menulis stdout ke log debug dan tidak menampilkannya di transkrip. Pengecualiannya adalah `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart`, dan `PostModelSwitch`, di mana Claude Code menambahkan stdout teks biasa sebagai konteks yang dapat dilihat dan ditindaklanjuti oleh Claude.

859 859 

860Untuk hook yang tidak [async](#how-async-hooks-execute), Claude Code mem-parse stdout Anda sebagai [output JSON](#json-output) ketika seluruh output adalah satu objek JSON tanpa apa pun di sekitarnya selain whitespace, dan jika tidak, sebagai teks biasa atau kegagalan parse:860Untuk memperbaiki output Anda, gunakan pesan parse atau validasi yang dimuat oleh pemberitahuan `<hook name> hook error`. Untuk hook yang tidak [async](#how-async-hooks-execute), stdout Anda dihitung sebagai [output JSON](#json-output) hanya ketika Anda mencetak satu objek JSON, dalam satu baris atau beberapa baris, tanpa apa pun di sekitarnya selain whitespace. Claude Code membaca stdout lainnya sebagai teks biasa atau kegagalan parse:

861 861 

862* **Satu objek JSON, dalam satu baris atau beberapa baris**: di-parse sebagai output JSON.

863* **Output yang tidak diawali dengan `{`, atau yang diawali dengan `{` tetapi tidak diakhiri dengan `}`**: teks biasa. Array JSON dan string JSON yang diberi tanda kutip merupakan teks biasa menurut aturan ini.862* **Output yang tidak diawali dengan `{`, atau yang diawali dengan `{` tetapi tidak diakhiri dengan `}`**: teks biasa. Array JSON dan string JSON yang diberi tanda kutip merupakan teks biasa menurut aturan ini.

864* **Dua baris atau lebih yang masing-masing dapat di-parse sebagai JSON secara terpisah, dengan baris pertama diawali `{` dan baris terakhir diakhiri `}`**: teks biasa ketika tidak ada baris yang merupakan objek output JSON yang mengatur suatu field, dan kegagalan parse ketika ada baris yang demikian.863* **Dua baris atau lebih yang masing-masing dapat di-parse sebagai JSON secara terpisah, dengan baris pertama diawali `{` dan baris terakhir diakhiri `}`**: teks biasa ketika tidak ada baris yang merupakan objek output JSON yang mengatur suatu field. Ketika ada baris yang demikian, output tersebut adalah kegagalan parse, jadi cetak objek tersebut tanpa apa pun lainnya di stdout.

865* **Apa pun lainnya yang diawali dengan `{` dan diakhiri dengan `}` tetapi bukan JSON yang valid**: kegagalan parse.864* **Apa pun lainnya yang diawali dengan `{` dan diakhiri dengan `}` tetapi bukan JSON yang valid**: kegagalan parse.

866 865 

867Kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails), kegagalan parse atau objek yang di-parse tetapi gagal [validasi skema](#json-output) 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.866Untuk sebagian besar event, Claude Code menulis stdout ke log debug dan tidak menampilkannya di transkrip. Pengecualiannya adalah `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart`, dan `PostModelSwitch`, di mana Claude Code menambahkan stdout teks biasa sebagai konteks yang dapat dilihat dan ditindaklanjuti oleh Claude. Pada event tersebut, Claude Code tidak menambahkan stdout yang gagal di-parse.

868 867 

869Claude 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.868Claude 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.

870 869 


907 Exit code lainnya906 Exit code lainnya

908</h4>907</h4>

909 908 

910Kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails), exit code selain 0 atau 2 dengan teks biasa atau tanpa apa pun di stdout adalah [error non-blocking](#exit-code-output). Jika tindakan dilanjutkan, Anda melihat pemberitahuan `<hook name> hook error` di transkrip dengan `Failed with non-blocking status code:` dan baris pertama stderr hook Anda.909Pemberitahuan `<hook name> hook error` dengan `Failed with non-blocking status code:` berarti exit code hook Anda bukan 0 atau 2 dan stdout-nya berupa teks biasa atau kosong. Kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails), ini adalah [error non-blocking](#exit-code-output), sehingga hook Anda tidak menghentikan tindakan. Untuk menangkap stderr lengkap hook Anda alih-alih hanya baris pertama yang ditampilkan pemberitahuan, aktifkan [logging debug](#debug-hooks).

911 910 

912Misalnya, ketika hook `PreToolUse` pada `Bash` mencetak `something broke` ke stderr dan keluar dengan 1, pemberitahuan `PreToolUse:Bash hook error` memuat baris ini:911Misalnya, ketika hook `PreToolUse` pada `Bash` mencetak `something broke` ke stderr dan keluar dengan 1, pemberitahuan `PreToolUse:Bash hook error` memuat baris ini:

913 912 


915Failed with non-blocking status code: something broke914Failed with non-blocking status code: something broke

916```915```

917 916 

918Untuk menangkap stderr lengkap alih-alih hanya baris pertamanya, aktifkan [logging debug](#debug-hooks).917Jika pemberitahuan memuat pesan `No such file or directory` dari shell, seperti pada baris berikut, hook tidak pernah berjalan, misalnya karena path skripnya tidak ada:

919 

920Kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails), hook 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, ketika path skrip tidak ada, pemberitahuan memuat baris seperti ini:

921 918 

922```text theme={null}919```text theme={null}

923Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory920Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory

924```921```

925 922 

923Jika path-nya salah, perbaiki di tempat hook dikonfigurasi. Dalam bentuk shell, ketika path skrip tidak ada atau tidak dapat dieksekusi, shell keluar dengan kode seperti 127 dan pemberitahuan memuat pesan interpreter. Kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails), hook yang tidak dapat dimulai juga merupakan error non-blocking.

924 

926Saat 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 ketika hook tidak dapat dimulai, atur [`onFailure: "block"`](#block-the-action-when-a-hook-fails).925Saat 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 ketika hook tidak dapat dimulai, atur [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

927 926 

928<Warning>927<Warning>


933 Timeout932 Timeout

934</h4>933</h4>

935 934 

936Selain hook perintah yang Anda jalankan dengan [`async: true`](#run-hooks-in-the-background), Claude Code membatalkan hook `command`, `http`, atau `mcp_tool` yang mencapai [`timeout`](#common-fields)-nya, membuang output hook, sehingga pada sebagian besar event hook yang mengalami timeout tidak memberikan keputusan.935Selain hook perintah yang Anda jalankan dengan [`async: true`](#run-hooks-in-the-background), Claude Code membatalkan hook `command`, `http`, atau `mcp_tool` yang mencapai [`timeout`](#common-fields)-nya, membuang output hook, sehingga pada sebagian besar event hook yang mengalami timeout tidak memberikan keputusan. Pada [`PreModelSwitch`](#premodelswitch), hook yang dibatalkan karena timeout memblokir pergantian model.

937 936 

938Pada [`PreModelSwitch`](#premodelswitch), hook yang dibatalkan karena timeout memblokir pergantian model. Pada `PreToolUse`, kedua keluarga hook berbeda:937Pada `PreToolUse`, hook `command`, `http`, atau `mcp_tool` yang mengalami timeout tidak memblokir panggilan tool, kecuali untuk hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails). 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). [Callback hook Agent SDK](/docs/id/agent-sdk/hooks) yang melebihi timeout-nya [memblokir panggilan tool](#pretooluse).

939 

940* Hook `command`, `http`, atau `mcp_tool` yang mengalami timeout tidak memblokir panggilan tool, kecuali untuk hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails). 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).

941* [Callback hook Agent SDK](/docs/id/agent-sdk/hooks) yang melebihi timeout-nya [memblokir panggilan tool](#pretooluse).

942 938 

943<h4 id="hooks-that-start-a-background-process">939<h4 id="hooks-that-start-a-background-process">

944 Hook yang memulai proses latar belakang940 Hook yang memulai proses latar belakang


1086 Penanganan respons HTTP1082 Penanganan respons HTTP

1087</h3>1083</h3>

1088 1084 

1089Hook HTTP menggunakan kode status HTTP dan body respons alih-alih exit code dan stdout. Hasil di bawah ini berlaku untuk sebagian besar event; event dengan kontrak kegagalannya sendiri dalam [tabel per event](#exit-code-2-behavior-per-event), seperti `WorktreeCreate`, juga menerapkan kontrak tersebut pada hook HTTP yang gagal:1085Hook HTTP menggunakan kode status HTTP dan body respons alih-alih exit code dan stdout. Untuk memblokir tindakan ketika permintaan gagal atau mengembalikan status non-2xx, atur [`onFailure: "block"`](#block-the-action-when-a-hook-fails). Untuk memblokir panggilan tool atau menolak izin, kembalikan respons 2xx dengan body JSON yang berisi [field keputusan](#decision-control) yang sesuai.

1086 

1087Setelah [error non-blocking](#exit-code-output), tindakan dilanjutkan kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails). Kecuali pada event dengan kontrak kegagalannya sendiri dalam [tabel per event](#exit-code-2-behavior-per-event), seperti `WorktreeCreate`, Anda mendapatkan hasil berikut untuk setiap respons atau kegagalan:

1090 1088 

1091* **2xx dengan body kosong**: berhasil, setara dengan exit code 0 tanpa output1089* **2xx dengan body kosong**: berhasil, setara dengan exit code 0 tanpa output

1092* **2xx dengan body objek JSON**: di-parse menggunakan skema [output JSON](#json-output) yang sama seperti hook perintah. Body yang gagal validasi skema adalah error non-blocking1090* **2xx dengan body objek JSON**: di-parse menggunakan skema [output JSON](#json-output) yang sama seperti hook perintah. Body yang gagal validasi skema adalah error non-blocking


1095* **Kegagalan koneksi**: error non-blocking1093* **Kegagalan koneksi**: error non-blocking

1096* **Timeout**: hook dibatalkan, seperti dijelaskan di bagian [Timeout](#timeouts)1094* **Timeout**: hook dibatalkan, seperti dijelaskan di bagian [Timeout](#timeouts)

1097 1095 

1098Setelah [error non-blocking](#exit-code-output), tindakan dilanjutkan kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](#block-the-action-when-a-hook-fails). Untuk memblokir panggilan tool atau menolak izin, kembalikan respons 2xx dengan body JSON yang berisi [field keputusan](#decision-control) yang sesuai. Untuk memblokir tindakan ketika permintaan gagal atau mengembalikan status non-2xx, atur [`onFailure: "block"`](#block-the-action-when-a-hook-fails).

1099 

1100<h3 id="json-output">1096<h3 id="json-output">

1101 Output JSON1097 Output JSON

1102</h3>1098</h3>


1319| `compact` | Compaction otomatis atau manual |1315| `compact` | Compaction otomatis atau manual |

1320| `fork` | Sesi baru yang di-fork dari sesi yang sudah ada: `--fork-session` dengan `--resume` atau `--continue`, salinan latar belakang `/fork`, `/branch`, atau percakapan yang Anda [pindahkan ke latar belakang](/docs/id/agent-view#from-inside-a-session) |1316| `fork` | Sesi baru yang di-fork dari sesi yang sudah ada: `--fork-session` dengan `--resume` atau `--continue`, salinan latar belakang `/fork`, `/branch`, atau percakapan yang Anda [pindahkan ke latar belakang](/docs/id/agent-view#from-inside-a-session) |

1321 1317 

1322Sebelum v2.1.214, sesi hasil fork melaporkan source `"resume"`.

1323 

1324Saat Anda memulai sesi interaktif, melanjutkan percakapan saat peluncuran dengan `--continue` atau `--resume`, atau menjalankan `/clear`, hook SessionStart berjalan di latar belakang. Anda dapat langsung mengetik, dan percakapan yang Anda lanjutkan muncul tanpa menunggu hook. Respons pertama Claude tetap menunggu hook selesai, sehingga konteksnya sampai ke Claude.1318Saat Anda memulai sesi interaktif, melanjutkan percakapan saat peluncuran dengan `--continue` atau `--resume`, atau menjalankan `/clear`, hook SessionStart berjalan di latar belakang. Anda dapat langsung mengetik, dan percakapan yang Anda lanjutkan muncul tanpa menunggu hook. Respons pertama Claude tetap menunggu hook selesai, sehingga konteksnya sampai ke Claude.

1325 1319 

1326Saat Anda berpindah percakapan dengan `/resume` di dalam sesi, perpindahan tersebut justru menunggu hook selesai. Jika Anda menjalankan `/clear` atau berpindah ke percakapan lain saat hook latar belakang masih berjalan, apa pun yang dikembalikannya tidak diterapkan ke sesi.1320Saat Anda berpindah percakapan dengan `/resume` di dalam sesi, perpindahan tersebut justru menunggu hook selesai. Jika Anda menjalankan `/clear` atau berpindah ke percakapan lain saat hook latar belakang masih berjalan, apa pun yang dikembalikannya tidak diterapkan ke sesi.


1583 1577 

1584Selain 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 terpicu, dan bahwa output telah dibuang.1578Selain 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 terpicu, dan bahwa output telah dibuang.

1585 1579 

1586[Hook callback Agent SDK](/docs/id/agent-sdk/hooks) pada `UserPromptSubmit` yang mencapai timeout-nya akan memblokir prompt dengan pesan yang menyebutkan hook dan timeout-nya, karena callback di sana dapat bertindak sebagai gerbang kebijakan yang tidak boleh gagal terbuka. Sesi tetap berlanjut. Sebelum v2.1.208, timeout callback pada event tersebut mengakhiri giliran dengan error eksekusi.1580[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 secara terbuka. Sesi tetap berlanjut.

1587 1581 

1588<h4 id="userpromptsubmit-input">1582<h4 id="userpromptsubmit-input">

1589 Input UserPromptSubmit1583 Input UserPromptSubmit


2058 2052 

2059| Kolom | Tipe | Contoh | Deskripsi |2053| Kolom | Tipe | Contoh | Deskripsi |

2060| :- | :- | :- | :- |2054| :- | :- | :- | :- |

2061| `status` | string | `"completed"` | `"completed"` untuk subagent latar depan, `"async_launched"` untuk subagent latar belakang. Subagent berjalan di latar belakang secara default, sehingga panggilan Agent yang tidak menyertakan `run_in_background` juga menghasilkan `"async_launched"` |2055| `status` | string | `"completed"` | `"completed"` untuk subagent latar depan, `"async_launched"` untuk subagent latar belakang. Untuk mengetahui subagent mana yang berjalan dengan cara masing-masing, lihat [Menjalankan subagent di latar depan atau latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) |

2062| `agentId` | string | `"a4d2c8f1e0b3a297"` | Pengidentifikasi untuk eksekusi subagent |2056| `agentId` | string | `"a4d2c8f1e0b3a297"` | Pengidentifikasi untuk eksekusi subagent |

2063| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Blok teks terakhir subagent, atau, untuk subagent yang laporannya melalui `SubagentHandback`, catatan singkat tentang penyerahan tersebut sebagai gantinya |2057| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | Blok teks terakhir subagent, atau, untuk subagent yang laporannya melalui `SubagentHandback`, catatan singkat tentang penyerahan tersebut sebagai gantinya |

2064| `resolvedModel` | string | `"claude-sonnet-4-5"` | Model yang digunakan subagent saat mulai, yang mungkin berbeda dari model yang diminta |2058| `resolvedModel` | string | `"claude-sonnet-4-5"` | Model yang digunakan subagent saat mulai, yang mungkin berbeda dari model yang diminta |

2065| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Model yang digunakan secara berurutan, dengan pengulangan berturut-turut digabungkan; hanya ditetapkan saat model ditukar di tengah eksekusi. Memerlukan Claude Code v2.1.212 atau lebih baru |2059| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | Model yang digunakan secara berurutan, dengan pengulangan berturut-turut diciutkan; hanya ditetapkan ketika model ditukar di tengah run |

2066| `totalTokens` | number | `12450` | Jumlah token dari permintaan API terakhir subagent: gabungan token input, output, dan cache. Ini bukan total di seluruh eksekusi |2060| `totalTokens` | number | `12450` | Jumlah token dari permintaan API terakhir subagent: gabungan token input, output, dan cache. Ini bukan total di seluruh eksekusi |

2067| `totalDurationMs` | number | `48211` | Durasi waktu nyata eksekusi subagent |2061| `totalDurationMs` | number | `48211` | Durasi waktu nyata eksekusi subagent |

2068| `totalToolUseCount` | number | `7` | Jumlah panggilan tool yang dilakukan subagent |2062| `totalToolUseCount` | number | `7` | Jumlah panggilan tool yang dilakukan subagent |


2072 2066 

2073Untuk subagent latar belakang, tool kembali saat tugas berpindah ke latar belakang, sehingga `tool_response` tidak membawa kolom penggunaan: peluncuran latar belakang langsung kembali, dan tugas latar depan yang dipindahkan Claude Code ke latar belakang di tengah eksekusi kembali pada transisi tersebut. Respons tersebut memiliki `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, dan `resolvedModel`.2067Untuk subagent latar belakang, tool kembali saat tugas berpindah ke latar belakang, sehingga `tool_response` tidak membawa kolom penggunaan: peluncuran latar belakang langsung kembali, dan tugas latar depan yang dipindahkan Claude Code ke latar belakang di tengah eksekusi kembali pada transisi tersebut. Respons tersebut memiliki `status: "async_launched"`, `agentId`, `description`, `prompt`, `outputFile`, dan `resolvedModel`.

2074 2068 

2075Pada respons `completed`, `resolvedModel` menyebutkan model yang digunakan subagent saat mulai, yang dapat berbeda dari nilai `model` di `tool_input`, misalnya saat `availableModels` atau override lain berlaku. Pada respons `async_launched`, `resolvedModel` menyebutkan model yang digunakan saat agent berpindah ke latar belakang, sehingga pertukaran yang terjadi sebelum pemindahan ke latar belakang tercermin di sana. `modelsUsed` dan perilaku `resolvedModel` pada saat pemindahan ke latar belakang memerlukan Claude Code v2.1.212 atau lebih baru.2069Pada respons `completed`, `resolvedModel` menyebutkan model yang digunakan subagent saat dimulai, yang dapat berbeda dari nilai `model` di `tool_input`, misalnya ketika `availableModels` atau override lain berlaku. Pada respons `async_launched`, `resolvedModel` menyebutkan model yang digunakan ketika agent berpindah ke latar belakang, sehingga pertukaran yang terjadi sebelum dipindahkan ke latar belakang tercermin di sana.

2076 2070 

2077<a id="askuserquestion" />2071<a id="askuserquestion" />

2078 2072 


2120 2114 

2121Saat hook mengembalikan `"ask"`, permintaan izin yang ditampilkan kepada pengguna menyertakan label yang mengidentifikasi asal hook: `[settings]` untuk hook dari file pengaturan mana pun atau dari frontmatter agent, `[plugin:<name>]` untuk hook plugin, atau `[skill]` untuk hook dari frontmatter skill. Ini membantu pengguna memahami sumber konfigurasi mana yang meminta konfirmasi.2115Saat hook mengembalikan `"ask"`, permintaan izin yang ditampilkan kepada pengguna menyertakan label yang mengidentifikasi asal hook: `[settings]` untuk hook dari file pengaturan mana pun atau dari frontmatter agent, `[plugin:<name>]` untuk hook plugin, atau `[skill]` untuk hook dari frontmatter skill. Ini membantu pengguna memahami sumber konfigurasi mana yang meminta konfirmasi.

2122 2116 

2123`"ask"` dari hook juga memaksa permintaan izin di [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode): pengklasifikasi tetap dapat menolak panggilan tool, tetapi tidak dapat menyetujui panggilan tersebut secara diam-diam. Sebelum v2.1.211, pengklasifikasi dapat menyetujui perintah Bash yang berjalan di luar [sandbox](/docs/id/sandboxing) tanpa menampilkan permintaan yang diminta hook; pengklasifikasi tetap menerapkan aturan keamanannya sendiri pada perintah tersebut, dan `"deny"` dari hook selalu dipatuhi.2117`"ask"` dari hook juga memaksa permintaan izin dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode): pengklasifikasi tetap dapat menolak panggilan tool, tetapi tidak dapat menyetujui panggilan tersebut secara diam-diam.

2124 2118 

2125```json theme={null}2119```json theme={null}

2126{2120{


3696| `source` | string | Asal permintaan: `"command"` untuk `/model <name>`, pengaturan Model di `/config`, atau mengaktifkan fast mode; `"picker"` untuk pemilih model; `"sdk"` untuk permintaan `set_model`, atau perubahan model dalam permintaan `apply_flag_settings`, dari host Agent SDK atau Remote Control |3690| `source` | string | Asal permintaan: `"command"` untuk `/model <name>`, pengaturan Model di `/config`, atau mengaktifkan fast mode; `"picker"` untuk pemilih model; `"sdk"` untuk permintaan `set_model`, atau perubahan model dalam permintaan `apply_flag_settings`, dari host Agent SDK atau Remote Control |

3697| `context_tokens` | number | Token yang dikirim ulang oleh permintaan berikutnya sebagai prompt-nya: gabungan token input, cache read, cache creation, dan output dari respons terakhir di percakapan utama. `0` sebelum respons pertama |3691| `context_tokens` | number | Token yang dikirim ulang oleh permintaan berikutnya sebagai prompt-nya: gabungan token input, cache read, cache creation, dan output dari respons terakhir di percakapan utama. `0` sebelum respons pertama |

3698| `prompt_cache_warm` | boolean | Apakah prompt cache model saat ini kemungkinan masih hangat, yang berarti pergantian akan mengorbankannya |3692| `prompt_cache_warm` | boolean | Apakah prompt cache model saat ini kemungkinan masih hangat, yang berarti pergantian akan mengorbankannya |

3699| `cache_ttl` | string | [Masa berlaku prompt cache](/docs/id/prompt-caching#cache-lifetime) yang diminta Claude Code untuk sesi ini: `"5m"` atau `"1h"` |3693| `cache_ttl` | string | [Masa berlaku prompt cache](/docs/id/prompt-caching#cache-lifetime) percakapan utama pada saat pergantian ini: `"5m"` atau `"1h"` |

3700| `estimated_cache_write_usd` | number | Estimasi biaya dalam dolar AS untuk menulis `context_tokens` ke prompt cache pada `to_model` dengan tarif `cache_ttl`, tidak termasuk respons berikutnya. Server mungkin tidak perlu melakukan cache ulang seluruh konteks, jadi anggap ini sebagai estimasi |3694| `estimated_cache_write_usd` | number | Estimasi biaya dalam dolar AS untuk menulis `context_tokens` ke prompt cache pada `to_model` dengan tarif `cache_ttl`, tidak termasuk respons berikutnya. Server mungkin tidak perlu melakukan cache ulang seluruh konteks, jadi anggap ini sebagai estimasi |

3701| `pricing` | string | Cara Claude Code menghitung harga `estimated_cache_write_usd`: `"configured"` dengan tarif organisasi Anda sendiri ketika organisasi telah mengonfigurasinya, `"catalog"` dengan harga daftar, atau `"default"` ketika `to_model` tidak memiliki harga yang diketahui dan Claude Code mengasumsikan tarif default |3695| `pricing` | string | Cara Claude Code menghitung harga `estimated_cache_write_usd`: `"configured"` dengan tarif organisasi Anda sendiri ketika organisasi telah mengonfigurasinya, `"catalog"` dengan harga daftar, atau `"default"` ketika `to_model` tidak memiliki harga yang diketahui dan Claude Code mengasumsikan tarif default |

3702 3696 


3757 3751 

3758Hook PreModelSwitch yang tidak merespons sebelum timeout-nya memblokir peralihan. Timeout default untuk event ini adalah 30 detik.3752Hook PreModelSwitch yang tidak merespons sebelum timeout-nya memblokir peralihan. Timeout default untuk event ini adalah 30 detik.

3759 3753 

3760Untuk efek exit code selain 0 atau 2, lihat [Exit code lainnya](#other-exit-codes).3754Exit code selain 0 atau 2 tanpa output JSON yang valid merupakan [error yang tidak memblokir](#other-exit-codes), sehingga peralihan tetap berlangsung, kecuali untuk hook [yang kegagalannya memblokir peralihan](#block-the-action-when-a-hook-fails).

3761 3755 

3762<h3 id="postmodelswitch">3756<h3 id="postmodelswitch">

3763 PostModelSwitch3757 PostModelSwitch


4275Apa yang terjadi pada `ok: false` tergantung pada event:4269Apa yang terjadi pada `ok: false` tergantung pada event:

4276 4270 

4277* `Stop` dan `SubagentStop`: alasan diumpankan kembali ke Claude sebagai instruksi berikutnya dan giliran berlanjut, kecuali respons juga menetapkan `impossible: true`, dalam hal ini Claude Code mengizinkan stop dan giliran berakhir4271* `Stop` dan `SubagentStop`: alasan diumpankan kembali ke Claude sebagai instruksi berikutnya dan giliran berlanjut, kecuali respons juga menetapkan `impossible: true`, dalam hal ini Claude Code mengizinkan stop dan giliran berakhir

4278* `PreToolUse`: panggilan tool ditolak; secara default giliran berakhir dan alasan penolakan muncul dalam chat sebagai baris peringatan. Atur `continueOnBlock: true` untuk mengembalikan alasan ke Claude sebagai kesalahan tool sehingga dapat menyesuaikan dan melanjutkan, setara dengan `permissionDecision: "deny"` dari command hook. Sebelum v2.1.210, alasan penolakan dikembalikan ke Claude sebagai kesalahan tool dan giliran berlanjut4272* `PreToolUse`: panggilan tool ditolak; secara default giliran berakhir dan alasan penolakan muncul dalam chat sebagai baris peringatan. Atur `continueOnBlock: true` untuk mengembalikan alasan ke Claude sebagai kesalahan tool sehingga dapat menyesuaikan dan melanjutkan, setara dengan `permissionDecision: "deny"` dari command hook

4279* `PostToolUse`: secara default giliran berakhir dan alasan muncul dalam chat sebagai baris peringatan. Atur `continueOnBlock: true` untuk mengirimkan alasan kembali ke Claude dan melanjutkan giliran alih-alih4273* `PostToolUse`: secara default giliran berakhir dan alasan muncul dalam chat sebagai baris peringatan. Atur `continueOnBlock: true` untuk mengirimkan alasan kembali ke Claude dan melanjutkan giliran alih-alih

4280* `PostToolBatch`, `UserPromptSubmit`, dan `UserPromptExpansion`: giliran berakhir dan alasan muncul sebagai baris peringatan. Events ini mengakhiri giliran pada `decision: "block"` terlepas dari `continue`4274* `PostToolBatch`, `UserPromptSubmit`, dan `UserPromptExpansion`: giliran berakhir dan alasan muncul sebagai baris peringatan. Events ini mengakhiri giliran pada `decision: "block"` terlepas dari `continue`

4281* `PostToolUseFailure` dan `TaskCreated`: alasan dikembalikan ke Claude sebagai kesalahan tool dan giliran berlanjut, terlepas dari `continueOnBlock`4275* `PostToolUseFailure` dan `TaskCreated`: alasan dikembalikan ke Claude sebagai kesalahan tool dan giliran berlanjut, terlepas dari `continueOnBlock`

hooks-guide.md +19 −24

Details

627exit 0 # exit 0 = no decision; the normal permission flow applies627exit 0 # exit 0 = no decision; the normal permission flow applies

628```628```

629 629 

630Kode keluar menentukan apa yang terjadi selanjutnya:630Dengan kode keluar selain 0 dan 2 serta tanpa output JSON yang valid, tindakan berlanjut pada sebagian besar acara, kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](/docs/id/hooks#block-the-action-when-a-hook-fails). Hook dengan `onFailure` yang diatur ke `"block"` adalah salah satu contohnya. Keluar 0 untuk melaporkan tidak ada keberatan, atau keluar 2 untuk memblokir tindakan:

631 631 

632* **Exit 0**: hook Anda melaporkan tidak ada keberatan melalui kode keluarnya.632* **Exit 0**: jika Anda keluar 0 dari hook `PreToolUse`, panggilan tool tetap melalui [alur izin](/docs/id/permissions) normal, karena exit 0 tidak menyetujuinya. Untuk hook `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart`, dan `PostModelSwitch`, Claude Code menambahkan stdout yang [diperlakukannya sebagai teks biasa](/docs/id/hooks#exit-code-0) ke konteks Claude.

633 * Untuk hook `PreToolUse` ini tidak menyetujui panggilan alat: [alur izin](/docs/id/permissions) normal masih berlaku.633* **Exit 2**: tulis alasan ke stderr. Tergantung pada acaranya, Claude menerimanya sebagai umpan balik sehingga dapat menyesuaikan, pengguna melihatnya, atau tidak ada pesan yang muncul, seperti pada `ConfigChange` dan `Elicitation`. Beberapa acara tidak dapat diblokir: untuk `SessionStart` dan lainnya, exit 2 menampilkan stderr kepada pengguna dan eksekusi berlanjut. Lihat [exit code 2 behavior per event](/docs/id/hooks#exit-code-2-behavior-per-event) untuk daftar lengkap.

634 * Untuk hook `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart`, dan `PostModelSwitch`, Claude Code menambahkan stdout yang [diperlakukan sebagai teks biasa](/docs/id/hooks#exit-code-0) ke konteks Claude.634* **Kode keluar lainnya**: untuk pengecualian per-acara, seperti `WorktreeCreate` yang gagal pada kode keluar nonzero apa pun, lihat [Exit code output](/docs/id/hooks#exit-code-output). Pada acara lain, kecuali hook tersebut adalah hook yang kegagalannya memblokir tindakan, temukan kasus Anda berdasarkan apa yang dicetak hook Anda ke stdout:

635* **Exit 2**: Claude Code memblokir tindakan. Tulis alasan ke stderr. Di mana itu mendarat tergantung pada acara: beberapa acara memberinya ke Claude sebagai umpan balik sehingga dapat menyesuaikan, yang lain menampilkannya kepada pengguna, dan beberapa, seperti `ConfigChange` dan `Elicitation`, tidak menampilkan pesan. Beberapa acara tidak dapat diblokir: untuk `SessionStart` dan lainnya, exit 2 menampilkan stderr kepada pengguna dan eksekusi berlanjut. Lihat [exit code 2 behavior per event](/docs/id/hooks#exit-code-2-behavior-per-event) untuk daftar lengkap.635 * Objek yang diurai yang lulus validasi skema: Claude Code mengabaikan kode keluar, JSON saja yang menentukan hasilnya, dan hook tidak dilaporkan sebagai kesalahan.

636* **Kode keluar lainnya**: untuk sebagian besar acara, tindakan berlanjut sebagai [kesalahan non-blocking](/docs/id/hooks#exit-code-output), kecuali hook tersebut adalah hook [yang kegagalannya memblokir tindakan](/docs/id/hooks#block-the-action-when-a-hook-fails) atau output JSON-nya lulus validasi:636 * Objek yang diurai yang gagal validasi skema, atau stdout yang Claude Code [coba parse sebagai JSON](/docs/id/hooks#exit-code-0) tetapi bukan JSON yang valid: tindakan berlanjut sebagai kesalahan non-blocking. Periksa pemberitahuan `<hook name> hook error` untuk pesan validasi atau parse.

637 * Objek yang diurai yang lulus validasi skema: Claude Code mengabaikan kode keluar, JSON saja yang menentukan hasilnya, dan hook tidak dilaporkan sebagai kesalahan. Pengecualian per-acara, seperti `WorktreeCreate` gagal pada kode keluar nonzero apa pun, tercantum di bagian [Exit code output](/docs/id/hooks#exit-code-output) referensi.637 * Stdout yang [diperlakukan Claude Code sebagai teks biasa](/docs/id/hooks#exit-code-0), atau stdout kosong: tindakan berlanjut sebagai kesalahan non-blocking. Transkrip menunjukkan pemberitahuan `<hook name> hook error`, kemudian baris pertama stderr dengan awalan `Failed with non-blocking status code:`. Untuk menangkap stderr lengkap, aktifkan [debug logging](/docs/id/hooks#debug-hooks) dengan `claude --debug` atau dengan menjalankan `/debug` di tengah sesi.

638 * Objek yang diurai yang gagal validasi skema, atau stdout yang Claude Code [coba parse sebagai JSON](/docs/id/hooks#exit-code-0) tetapi bukan JSON yang valid: kesalahan non-blocking; pemberitahuan membawa pesan validasi atau parse.

639 * Stdout yang Claude Code [diperlakukan sebagai teks biasa](/docs/id/hooks#exit-code-0), atau stdout kosong: tindakan berlanjut sebagai kesalahan non-blocking. Transkrip menunjukkan pemberitahuan `<hook name> hook error`, kemudian baris pertama stderr dengan awalan `Failed with non-blocking status code:`. Untuk menangkap stderr lengkap, aktifkan [debug logging](/docs/id/hooks#debug-hooks) dengan `claude --debug` atau dengan menjalankan `/debug` di tengah sesi.

640 638 

641<h4 id="structured-json-output">639<h4 id="structured-json-output">

642 Structured JSON output640 Structured JSON output


662 660 

663Dengan `"deny"`, Claude Code membatalkan panggilan alat dan memberi makan `permissionDecisionReason` kembali ke Claude.661Dengan `"deny"`, Claude Code membatalkan panggilan alat dan memberi makan `permissionDecisionReason` kembali ke Claude.

664 662 

665Pada `PreToolUse`, Claude Code menangani setiap nilai `permissionDecision` sebagai berikut:663Pada `PreToolUse`, Anda juga dapat mengembalikan `"ask"` untuk menampilkan dialog izin normal kepada pengguna, atau `"allow"` untuk melewati dialog izin interaktif. Dengan `"allow"`, aturan deny dan ask, termasuk daftar deny terkelola perusahaan, tetap berlaku, begitu pula dialog izin untuk:

666 664 

667* `"allow"`: lewati dialog izin interaktif. Aturan deny dan ask, termasuk daftar deny terkelola perusahaan, masih berlaku, begitu pula dialog izin untuk:665* Pembacaan dari [jalur jaringan](/docs/id/permissions#network-paths)

668 666* Tool MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool)

669 * Pembacaan dari [jalur jaringan](/docs/id/permissions#network-paths)667* Tool konektor yang [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code

670 * Tool MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool)

671 * Tool konektor yang [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code

672 668 

673 Untuk apa yang dilakukan `"allow"` dalam plan mode, lihat [Hook approvals in plan mode](/docs/id/permissions#hook-approvals-in-plan-mode).669 Untuk apa yang dilakukan `"allow"` dalam plan mode, lihat [Hook approvals in plan mode](/docs/id/permissions#hook-approvals-in-plan-mode).

674* `"deny"`: batalkan panggilan alat dan kirim alasan ke Claude

675* `"ask"`: tampilkan prompt izin kepada pengguna seperti biasa

676 670 

677Nilai keempat, `"defer"`, tersedia dalam [non-interactive mode](/docs/id/headless) dengan flag `-p`. Ini keluar dari proses dengan panggilan alat yang dipertahankan sehingga pembungkus Agent SDK dapat mengumpulkan input dan melanjutkan. Lihat [Defer a tool call for later](/docs/id/hooks#defer-a-tool-call-for-later) dalam referensi.671Nilai keempat, `"defer"`, tersedia dalam [non-interactive mode](/docs/id/headless) dengan flag `-p`. Ini keluar dari proses dengan panggilan alat yang dipertahankan sehingga pembungkus Agent SDK dapat mengumpulkan input dan melanjutkan. Lihat [Defer a tool call for later](/docs/id/hooks#defer-a-tool-call-for-later) dalam referensi.

678 672 


893* `"ok": true`: tindakan berlanjut887* `"ok": true`: tindakan berlanjut

894* `"ok": false`: apa yang terjadi tergantung pada peristiwa:888* `"ok": false`: apa yang terjadi tergantung pada peristiwa:

895 * `Stop` dan `SubagentStop`: `reason` diberi makan kembali ke Claude sehingga terus bekerja, kecuali respons juga menetapkan `"impossible": true` untuk menandai kondisi sebagai salah satu yang tidak dapat pernah dipenuhi, dalam hal ini Claude Code memungkinkan stop dan giliran berakhir889 * `Stop` dan `SubagentStop`: `reason` diberi makan kembali ke Claude sehingga terus bekerja, kecuali respons juga menetapkan `"impossible": true` untuk menandai kondisi sebagai salah satu yang tidak dapat pernah dipenuhi, dalam hal ini Claude Code memungkinkan stop dan giliran berakhir

896 * `PreToolUse`: panggilan alat ditolak; secara default giliran berakhir dan `reason` penolakan muncul dalam obrolan sebagai baris peringatan. Atur `continueOnBlock: true` pada hook untuk sebagai gantinya mengembalikan `reason` ke Claude sebagai kesalahan alat, sehingga dapat menyesuaikan dan melanjutkan. Sebelum v2.1.210, `reason` penolakan dikembalikan ke Claude sebagai kesalahan alat dan giliran berlanjut890 * `PreToolUse`: panggilan tool ditolak; secara default giliran berakhir dan `reason` penolakan muncul dalam obrolan sebagai baris peringatan. Atur `continueOnBlock: true` pada hook untuk sebagai gantinya mengembalikan `reason` ke Claude sebagai kesalahan tool, sehingga dapat menyesuaikan dan melanjutkan

897 * `PostToolUse`: secara default giliran berakhir dan `reason` muncul dalam obrolan sebagai baris peringatan. Atur `continueOnBlock: true` untuk memberi makan `reason` kembali ke Claude dan melanjutkan giliran sebagai gantinya891 * `PostToolUse`: secara default giliran berakhir dan `reason` muncul dalam obrolan sebagai baris peringatan. Atur `continueOnBlock: true` untuk memberi makan `reason` kembali ke Claude dan melanjutkan giliran sebagai gantinya

898 * `PostToolBatch`, `UserPromptSubmit`, dan `UserPromptExpansion`: giliran berakhir dan `reason` muncul dalam obrolan sebagai baris peringatan892 * `PostToolBatch`, `UserPromptSubmit`, dan `UserPromptExpansion`: giliran berakhir dan `reason` muncul dalam obrolan sebagai baris peringatan

899 893 


1019 Hooks dan mode izin1013 Hooks dan mode izin

1020</h3>1014</h3>

1021 1015 

1022Hook `PreToolUse` aktif sebelum pemeriksaan mode izin apa pun, dalam setiap [mode izin](/docs/id/permission-modes), termasuk `dontAsk`. Hook yang mengembalikan `permissionDecision: "deny"` memblokir alat bahkan dalam mode `bypassPermissions` atau dengan `--dangerously-skip-permissions`. Ini memungkinkan Anda menegakkan kebijakan yang pengguna tidak dapat lewati dengan mengubah mode izin mereka.1016Dengan hook dalam file pengaturan atau dalam `hooks/hooks.json` milik plugin, Anda tidak dapat melonggarkan pembatasan melampaui apa yang diizinkan aturan izin, dan `"deny"` dari hook tetap berlaku dalam setiap mode izin:

1023 

1024Kebalikannya tidak benar: hook dalam file pengaturan dan dalam `hooks/hooks.json` plugin dapat mengetatkan pembatasan tetapi tidak melonggarkannya melampaui apa yang diizinkan aturan izin. Hook yang mengembalikan `"allow"` tidak melewati aturan deny dari pengaturan, dan tidak dapat menekan permintaan izin untuk:

1025 1017 

1026* Pembacaan dari [jalur jaringan](/docs/id/permissions#network-paths)1018* **Apa yang tetap berlaku di atas `"allow"`**: hook yang mengembalikan `"allow"` tidak melewati aturan deny dari pengaturan, dan tidak dapat menekan permintaan izin untuk:

1027* Tool MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool)1019 * Pembacaan dari [jalur jaringan](/docs/id/permissions#network-paths)

1028* Tool konektor yang [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code1020 * Tool MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool)

1021 * Tool konektor yang [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code

1029 1022 

1030Dalam [plan mode](/docs/id/permissions#hook-approvals-in-plan-mode), jika hook `PreToolUse` Anda mengembalikan `"allow"` untuk pengeditan file, Anda mendapatkan permintaan izin, pemblokiran, atau persetujuan yang sama seperti yang akan didapat pengeditan tersebut tanpa hook. Untuk mencabut batasan ini pada persetujuan hook, [setujui rencana](/docs/id/permission-modes#review-and-approve-a-plan) atau beralih ke mode izin lain.1023Dalam [plan mode](/docs/id/permissions#hook-approvals-in-plan-mode), jika hook `PreToolUse` Anda mengembalikan `"allow"` untuk pengeditan file, Anda mendapatkan permintaan izin, pemblokiran, atau persetujuan yang sama seperti yang akan didapat pengeditan tersebut tanpa hook. Untuk mencabut batasan ini pada persetujuan hook, [setujui rencana](/docs/id/permission-modes#review-and-approve-a-plan) atau beralih ke mode izin lain.

1031 1024 

1025* **`"deny"` dalam setiap mode izin**: hook yang mengembalikan `permissionDecision: "deny"` memblokir tool bahkan dalam mode `bypassPermissions` atau dengan `--dangerously-skip-permissions`. Hook `PreToolUse` aktif sebelum pemeriksaan mode izin apa pun, dalam setiap [mode izin](/docs/id/permission-modes), termasuk `dontAsk`. Ini memungkinkan Anda menegakkan kebijakan yang tidak dapat dilewati pengguna dengan mengubah mode izin mereka.

1026 

1032Sebuah [mod](/docs/id/plugins/mods/overview) yang Anda instal yang menangani `tool.check` dapat menyetujui panggilan yang hook `PreToolUse` Anda blokir, kecuali hook berada dalam pengaturan terkelola. Dalam plan mode, mod dapat menyetujui panggilan semacam itu jika bersifat read-only, tetapi tidak untuk pengeditan file atau panggilan lain yang tidak read-only. [Perluas izin dengan hooks](/docs/id/permissions#extend-permissions-with-hooks) mencantumkan aturan mana yang berlaku atas mod.1027Sebuah [mod](/docs/id/plugins/mods/overview) yang Anda instal yang menangani `tool.check` dapat menyetujui panggilan yang hook `PreToolUse` Anda blokir, kecuali hook berada dalam pengaturan terkelola. Dalam plan mode, mod dapat menyetujui panggilan semacam itu jika bersifat read-only, tetapi tidak untuk pengeditan file atau panggilan lain yang tidak read-only. [Perluas izin dengan hooks](/docs/id/permissions#extend-permissions-with-hooks) mencantumkan aturan mana yang berlaku atas mod.

1033 1028 

1034<h3 id="hook-not-firing">1029<h3 id="hook-not-firing">

Details

183 Petakan ulang urutan kunci mode INSERT183 Petakan ulang urutan kunci mode INSERT

184</h3>184</h3>

185 185 

186Pengaturan [`vimInsertModeRemaps`](/docs/id/settings-reference#viminsertmoderemaps) memetakan urutan mode INSERT dua kunci ke Escape, sehingga pemetaan seperti `jj` mengembalikan Anda ke mode NORMAL. Memerlukan Claude Code v2.1.208 atau lebih baru.186Pengaturan [`vimInsertModeRemaps`](/docs/id/settings-reference#viminsertmoderemaps) memetakan urutan mode INSERT dua kunci ke Escape, sehingga pemetaan seperti `jj` mengembalikan Anda ke mode NORMAL.

187 187 

188Contoh `~/.claude/settings.json` berikut mengaktifkan mode vim dan memetakan `jj` ke Escape:188Contoh `~/.claude/settings.json` berikut mengaktifkan mode vim dan memetakan `jj` ke Escape:

189 189 


248| `cc` | Ubah baris |248| `cc` | Ubah baris |

249| `C` | Ubah hingga akhir baris |249| `C` | Ubah hingga akhir baris |

250| `cw`/`ce`/`cb` | Ubah kata/hingga akhir/kembali |250| `cw`/`ce`/`cb` | Ubah kata/hingga akhir/kembali |

251| `s` | Ganti karakter: hapus karakter di bawah kursor dan masuk mode INSERT. Memerlukan Claude Code v2.1.211 atau lebih baru |251| `s` | Ganti karakter: hapus karakter di bawah kursor dan masuk mode INSERT |

252| `S` | Ganti baris: kosongkan baris dan masuk mode INSERT. Memerlukan Claude Code v2.1.211 atau lebih baru |252| `S` | Ganti baris: kosongkan baris dan masuk mode INSERT |

253| `yy`/`Y` | Yank (salin) baris |253| `yy`/`Y` | Yank (salin) baris |

254| `yw`/`ye`/`yb` | Yank kata/hingga akhir/kembali |254| `yw`/`ye`/`yb` | Yank kata/hingga akhir/kembali |

255| `p` | Tempel setelah kursor |255| `p` | Tempel setelah kursor |


471* Setelah giliran pertama percakapan, dalam beberapa sesi471* Setelah giliran pertama percakapan, dalam beberapa sesi

472* Respons sebelumnya berakhir dengan kesalahan472* Respons sebelumnya berakhir dengan kesalahan

473* Saat Anda berada dalam Plan Mode473* Saat Anda berada dalam Plan Mode

474* Akun Anda mendekati atau mencapai batas penggunaan. Untuk menjaga saran tetap aktif sampai Anda mencapai batas, atur [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/id/env-vars) ke `true`. Sebelum v2.1.238, Claude Code melewatkan saran di dekat batas bahkan dengan variabel diatur ke `true`474* Akun Anda mendekati atau mencapai batas penggunaan. Agar pelewatan ini tidak berlaku sampai Anda mencapai batas, atur [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/id/env-vars) ke `true`. Sebelum v2.1.238, Claude Code melewatkan saran di dekat batas bahkan dengan variabel diatur ke `true`

475* Dalam [agent team](/docs/id/agent-teams), dalam sesi rekan kerja secara default. Sesi pemimpin menampilkan saran475* Dalam [agent team](/docs/id/agent-teams), dalam sesi rekan kerja secara default. Sesi pemimpin menampilkan saran

476 476 

477Pemberitahuan `Showing fewer prompt suggestions · use one to bring them back` berarti Claude Code menampilkan saran lebih jarang karena Anda membiarkan banyak saran berturut-turut tidak digunakan. Untuk kembali ke frekuensi biasa, gunakan sebuah saran atau atur [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/id/env-vars) ke `true`.477Pemberitahuan `Showing fewer prompt suggestions · use one to bring them back` berarti Claude Code menampilkan saran lebih jarang karena Anda membiarkan banyak saran berturut-turut tidak digunakan. Untuk kembali ke frekuensi biasa, gunakan sebuah saran atau atur [`CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION`](/docs/id/env-vars) ke `true`.


759 759 

760Lima pertanyaan sampingan sebelumnya terbaru Anda muncul sebagai daftar yang redup di atas jawaban saat ini, dengan hitungan yang lebih lama. Mereka tetap keluar dari riwayat percakapan.760Lima pertanyaan sampingan sebelumnya terbaru Anda muncul sebagai daftar yang redup di atas jawaban saat ini, dengan hitungan yang lebih lama. Mereka tetap keluar dari riwayat percakapan.

761 761 

762Untuk kembali ke overlay setelah menutupnya, jalankan `/btw` tanpa pertanyaan. Overlay dibuka kembali pada pertukaran paling baru Anda. Sebelum v2.1.212, `/btw` tanpa pertanyaan mencetak pesan penggunaan sebagai gantinya.762Untuk kembali ke overlay setelah menutupnya, jalankan `/btw` tanpa pertanyaan. Overlay dibuka kembali pada pertukaran paling baru Anda.

763 763 

764Setelah jawaban muncul, overlay menerima kunci-kunci ini.764Setelah jawaban muncul, overlay menerima kunci-kunci ini.

765 765 

keybindings.md +3 −4

Details

462| `abovePrompt:highlightNext` | Down | Sorot opsi berikutnya dalam select yang difokuskan |462| `abovePrompt:highlightNext` | Down | Sorot opsi berikutnya dalam select yang difokuskan |

463| `abovePrompt:highlightPrevious` | Up | Sorot opsi sebelumnya dalam select yang difokuskan |463| `abovePrompt:highlightPrevious` | Up | Sorot opsi sebelumnya dalam select yang difokuskan |

464 464 

465Dua konteks mengikat lebih banyak kunci ke tindakan-tindakan ini secara default:465Dalam [konteks `AbovePrompt`](#contexts), Right dan Left juga menjalankan `abovePrompt:next` dan `abovePrompt:previous` secara default, dan Space juga menjalankan `abovePrompt:press`.

466 

467* **`AbovePrompt`**: Right dan Left juga menjalankan `abovePrompt:next` dan `abovePrompt:previous`, dan Space juga menjalankan `abovePrompt:press`

468* **`AbovePromptInput`**: Down dan Up juga menjalankan `abovePrompt:next` dan `abovePrompt:previous`

469 466 

470Konteks `AbovePrompt` juga mengikat Up, Down, PageUp, PageDown, Home, dan End ke [tindakan scroll pane](#pane-actions) `pane:scrollUp` hingga `pane:bottom`, jadi untuk mengubah salah satu kunci tersebut untuk pita, ikat tindakan scroll dalam blok `AbovePrompt`.467Konteks `AbovePrompt` juga mengikat Up, Down, PageUp, PageDown, Home, dan End ke [tindakan scroll pane](#pane-actions) `pane:scrollUp` hingga `pane:bottom`, jadi untuk mengubah salah satu kunci tersebut untuk pita, ikat tindakan scroll dalam blok `AbovePrompt`.

471 468 


769* Dalam mode NORMAL vim, `?` menampilkan menu bantuan (perilaku vim)766* Dalam mode NORMAL vim, `?` menampilkan menu bantuan (perilaku vim)

770* Dalam mode NORMAL vim, `/` membuka pencarian riwayat, sama seperti Ctrl+R dalam mode standar767* Dalam mode NORMAL vim, `/` membuka pencarian riwayat, sama seperti Ctrl+R dalam mode standar

771 768 

769Pada baris `Other` dari pertanyaan yang diajukan Claude, Escape tidak langsung membatalkan pertanyaan dalam mode vim. Kecuali dalam [mode pembaca layar](/docs/id/accessibility), baris tersebut dimulai dalam mode INSERT setiap kali Anda memfokuskannya. Ketika Anda menekan Escape di baris `Other`, baris tersebut beralih ke mode NORMAL atau membuang perintah vim yang baru diketik sebagian, dan pertanyaan tetap terbuka. Tekan Escape lagi dalam mode NORMAL untuk membatalkan pertanyaan.

770 

772<h2 id="validation">771<h2 id="validation">

773 Validasi772 Validasi

774</h2>773</h2>

mcp.md +5 −5

Details

324* Untuk server di [cakupan](#mcp-installation-scopes) lokal, proyek, atau pengguna atau dalam konfigurasi MCP terkelola, asal menunjukkan host seperti yang ditulis dalam konfigurasi itu, jadi referensi `${VAR}` di host tidak diperluas dalam pesan.324* Untuk server di [cakupan](#mcp-installation-scopes) lokal, proyek, atau pengguna atau dalam konfigurasi MCP terkelola, asal menunjukkan host seperti yang ditulis dalam konfigurasi itu, jadi referensi `${VAR}` di host tidak diperluas dalam pesan.

325* Untuk kegagalan tanpa kode status atau kode kesalahan, Claude Code menunjukkan teks kesalahan tanpa asal.325* Untuk kegagalan tanpa kode status atau kode kesalahan, Claude Code menunjukkan teks kesalahan tanpa asal.

326 326 

327Server jarak jauh yang konfigurasinya memiliki `url` kosong ditampilkan sebagai `not configured` di `/mcp`, di `claude mcp list`, dan di [manajer `/plugin`](/docs/id/plugins/install), dan Claude Code tidak mencoba terhubung ke sana. Plugin dapat menyertakan entri placeholder seperti ini untuk konektor yang Anda konfigurasikan nanti, jadi Claude Code tidak melaporkannya sebagai kesalahan atau masalah setup. Tampilan detail server di `/mcp` bertuliskan `No URL configured for this server`; atur `url` entri untuk menghubungkannya. Sebelum v2.1.208, Claude Code melaporkan `url` kosong sebagai masalah konfigurasi dengan prompt untuk menghubungkan kembali.327Server jarak jauh yang konfigurasinya memiliki `url` kosong ditampilkan sebagai `not configured` di `/mcp`, di `claude mcp list`, dan di [manajer `/plugin`](/docs/id/plugins/install), dan Claude Code tidak mencoba terhubung ke sana. Plugin dapat menyertakan entri placeholder seperti ini untuk konektor yang Anda konfigurasikan nanti, jadi Claude Code tidak melaporkannya sebagai kesalahan atau masalah setup. Tampilan detail server di `/mcp` bertuliskan `No URL configured for this server`; atur `url` entri untuk menghubungkannya.

328 328 

329<h4 id="configuration-warnings">329<h4 id="configuration-warnings">

330 Peringatan konfigurasi330 Peringatan konfigurasi


403* **Dalam sesi terminal interaktif**, Claude Code mengambil daftar yang diperbarui dari server tersebut, sehingga Anda tidak perlu menghubungkannya kembali.403* **Dalam sesi terminal interaktif**, Claude Code mengambil daftar yang diperbarui dari server tersebut, sehingga Anda tidak perlu menghubungkannya kembali.

404* **Dalam [mode non-interaktif](/docs/id/headless) dengan flag `-p` dan di [Agent SDK](/docs/id/agent-sdk/overview)**, Claude Code hanya menyegarkan daftar tool pada notifikasi ini.404* **Dalam [mode non-interaktif](/docs/id/headless) dengan flag `-p` dan di [Agent SDK](/docs/id/agent-sdk/overview)**, Claude Code hanya menyegarkan daftar tool pada notifikasi ini.

405 405 

406Jika permintaan penyegaran gagal, Claude Code mempertahankan tool, prompt, dan sumber daya server yang sebelumnya ditemukan sampai penyegaran berikutnya berhasil. Sebelum v2.1.214, kesalahan sementara selama penyegaran mengganti tool, prompt, dan sumber daya server dengan daftar kosong.406Jika permintaan penyegaran gagal, Claude Code mempertahankan tool, prompt, dan sumber daya server yang sebelumnya ditemukan sampai penyegaran berikutnya berhasil.

407 407 

408<h4 id="notification-streams-on-the-v2-runtime">408<h4 id="notification-streams-on-the-v2-runtime">

409 Stream notifikasi pada runtime v2409 Stream notifikasi pada runtime v2


502 Pemindahan otomatis panggilan tool yang panjang ke latar belakang502 Pemindahan otomatis panggilan tool yang panjang ke latar belakang

503</h3>503</h3>

504 504 

505Panggilan tool MCP dalam percakapan utama yang masih berjalan setelah dua menit dipindahkan ke tugas latar belakang alih-alih memblokir sesi. Claude menerima ID tugas segera dan terus bekerja, dan hasilnya tiba sebagai notifikasi tugas ketika panggilan selesai. Pemindahan otomatis ke latar belakang memerlukan Claude Code v2.1.212 atau lebih baru.505Panggilan tool MCP dalam percakapan utama yang masih berjalan setelah dua menit dipindahkan ke tugas latar belakang alih-alih memblokir sesi. Claude menerima ID tugas segera dan terus bekerja, dan hasilnya tiba sebagai notifikasi tugas ketika panggilan selesai.

506 506 

507Tugas muncul di [`/tasks`](/docs/id/commands#all-commands), tempat Anda juga dapat menghentikannya, dan tugas tidak bertahan setelah keluar dari sesi. Entri tugas menunjukkan kemajuan terbaru yang telah dilaporkan server. Jika Anda menghentikan tugas, Claude Code membatalkan panggilan dan memberi tahu Claude bahwa tidak ada hasil yang akan datang. Menghentikan tugas tidak menjamin server berhenti: server mungkin sudah mengerjakan sebagian pekerjaan, atau mungkin tetap menyelesaikannya.507Tugas muncul di [`/tasks`](/docs/id/commands#all-commands), tempat Anda juga dapat menghentikannya, dan tugas tidak bertahan setelah keluar dari sesi. Entri tugas menunjukkan kemajuan terbaru yang telah dilaporkan server. Jika Anda menghentikan tugas, Claude Code membatalkan panggilan dan memberi tahu Claude bahwa tidak ada hasil yang akan datang. Menghentikan tugas tidak menjamin server berhenti: server mungkin sudah mengerjakan sebagian pekerjaan, atau mungkin tetap menyelesaikannya.

508 508 


1301 Bagaimana connector mencapai Claude Code1301 Bagaimana connector mencapai Claude Code

1302</h3>1302</h3>

1303 1303 

1304Pengaturan mana yang mengatur connector claude.ai tergantung pada tempat sesi Anda berjalan, karena hanya beberapa sesi yang mengambil connector dari claude.ai sendiri. Setiap baris di bawah menunjukkan bagaimana connector tiba dalam satu jenis sesi dan apa yang mengontrolnya di sana. [Sesi WSL](/docs/id/desktop-wsl#what-works-in-a-wsl-session) aplikasi desktop tidak memiliki baris karena connector belum tersedia di dalamnya.1304Pengaturan mana yang mengatur konektor claude.ai tergantung pada tempat sesi Anda berjalan, karena hanya beberapa sesi yang mengambil konektor dari claude.ai sendiri. Setiap baris di bawah menunjukkan bagaimana konektor tiba dalam satu jenis sesi dan apa yang mengontrolnya di sana. Sesi WSL aplikasi desktop tidak memiliki baris karena konektor [masih dalam proses peluncuran ke sesi tersebut](/docs/id/desktop-wsl#check-for-the-terminal-and-connectors).

1305 1305 

1306| Tempat sesi berjalan | Bagaimana connector tiba | Apa yang mengontrol mereka |1306| Tempat sesi berjalan | Bagaimana connector tiba | Apa yang mengontrol mereka |

1307| :- | :- | :- |1307| :- | :- | :- |


1531 1531 

1532Beberapa surface, seperti [Remote Control](/docs/id/remote-control) dan aplikasi yang dibangun di [Agent SDK](/docs/id/agent-sdk/overview), biasanya memungkinkan Anda menyetujui panggilan tool dengan satu ketukan. Untuk tool yang ditandai dengan anotasi ini, Claude Code menahan tindakan satu ketukan dan menampilkan dialog izin lengkap tool tersebut sebagai gantinya, sehingga persetujuan tetap berasal dari seseorang yang menjawab dialog izin, bukan dari sebuah ketukan.1532Beberapa surface, seperti [Remote Control](/docs/id/remote-control) dan aplikasi yang dibangun di [Agent SDK](/docs/id/agent-sdk/overview), biasanya memungkinkan Anda menyetujui panggilan tool dengan satu ketukan. Untuk tool yang ditandai dengan anotasi ini, Claude Code menahan tindakan satu ketukan dan menampilkan dialog izin lengkap tool tersebut sebagai gantinya, sehingga persetujuan tetap berasal dari seseorang yang menjawab dialog izin, bukan dari sebuah ketukan.

1533 1533 

1534Claude Code menahan persetujuan satu ketukan dengan cara yang sama untuk permintaan izin apa pun yang hanya dapat dirender sepenuhnya oleh dialog terminal, seperti permintaan yang membawa peringatan keamanan atau opsi selalu-izinkan yang tidak dapat ditampilkan oleh surface jarak jauh. Anda menjawab permintaan itu di dialog terminal, bukan dari Remote Control. Memerlukan Claude Code v2.1.214 atau lebih baru.1534Claude Code menahan persetujuan satu ketukan dengan cara yang sama untuk permintaan izin apa pun yang hanya dapat dirender sepenuhnya oleh dialog terminal, seperti permintaan yang membawa peringatan keamanan atau opsi selalu-izinkan yang tidak dapat ditampilkan oleh surface jarak jauh. Anda menjawab permintaan itu di dialog terminal, bukan dari Remote Control.

1535 1535 

1536<h2 id="respond-to-mcp-elicitation-requests">1536<h2 id="respond-to-mcp-elicitation-requests">

1537 Merespons permintaan elicitation MCP1537 Merespons permintaan elicitation MCP

memory.md +3 −3

Details

521* Aturan Copilot di `.github/copilot-instructions.md`521* Aturan Copilot di `.github/copilot-instructions.md`

522* Dengan `CLAUDE_CODE_NEW_INIT=1` diatur: `AGENTS.md`, `.devin/rules/`, `.windsurf/rules/` atau `.windsurfrules`, dan `.clinerules`522* Dengan `CLAUDE_CODE_NEW_INIT=1` diatur: `AGENTS.md`, `.devin/rules/`, `.windsurf/rules/` atau `.windsurfrules`, dan `.clinerules`

523 523 

524Anda juga dapat menjalankan [`/import`](/docs/id/commands) untuk membawa konfigurasi agen pengkodean yang didukung ke Claude Code, yang menambahkan salinan satu kali file instruksi seperti `AGENTS.md` ke `CLAUDE.md` yang cocok dan membawa server MCP, perintah, subagen, dan skills. Memerlukan Claude Code v2.1.213 atau lebih baru.524Anda juga dapat menjalankan [`/import`](/docs/id/commands) untuk membawa konfigurasi agent pengkodean yang didukung ke Claude Code, yang menambahkan salinan satu kali file instruksi seperti `AGENTS.md` ke `CLAUDE.md` yang cocok dan membawa server MCP, perintah, subagent, dan skills.

525 525 

526<h2 id="auto-memory">526<h2 id="auto-memory">

527 Auto memory527 Auto memory


605 605 

606200 baris pertama `MEMORY.md`, atau 25KB pertama, mana pun yang lebih dulu, dimuat di awal setiap percakapan. Konten di luar batas itu tidak dimuat saat awal sesi. Claude membuat `MEMORY.md` ringkas dengan memindahkan catatan terperinci ke file topik terpisah.606200 baris pertama `MEMORY.md`, atau 25KB pertama, mana pun yang lebih dulu, dimuat di awal setiap percakapan. Konten di luar batas itu tidak dimuat saat awal sesi. Claude membuat `MEMORY.md` ringkas dengan memindahkan catatan terperinci ke file topik terpisah.

607 607 

608Setelah Claude menulis ke `MEMORY.md`, Claude Code mengukur file terhadap batas baca 200 baris dan 25KB. Jika file mendekati batas, Claude Code mengingatkan Claude untuk mempersingkatnya: simpan satu baris per entri, pindahkan detail ke file topik, dan gabungkan atau lepaskan entri yang sudah usang. Jika file melampaui batas, penulisan masih berhasil, tetapi Claude Code mengembalikan [kesalahan yang memberi tahu Claude untuk menulis ulang indeks](/docs/id/errors#memory-index-is-over-its-read-limit), karena semua yang melampaui batas dijatuhkan pada beban berikutnya.608Setelah Claude menulis ke `MEMORY.md`, Claude Code mengukur file terhadap batas baca 200 baris dan 25KB. Jika file mendekati batas, Claude Code mengingatkan Claude untuk mempersingkatnya: simpan satu baris per entri, pindahkan detail ke file topik, dan gabungkan atau hapus entri yang sudah usang. Jika file melampaui batas, penulisan masih berhasil, tetapi Claude Code mengembalikan [kesalahan yang memberi tahu Claude untuk menulis ulang indeks](/docs/id/errors#memory-index-is-over-its-read-limit), karena semua yang melampaui batas dibuang pada pemuatan berikutnya.

609 609 

610Batas ini hanya berlaku untuk `MEMORY.md`. Claude Code memuat file CLAUDE.md hingga 4 MiB sepenuhnya dan melewati file yang lebih besar. File yang lebih pendek menghasilkan kepatuhan yang lebih baik.610Batas ini hanya berlaku untuk `MEMORY.md`. Claude Code memuat file CLAUDE.md hingga 4 MiB sepenuhnya dan melewati file yang lebih besar. File yang lebih pendek menghasilkan kepatuhan yang lebih baik.

611 611 


615 615 

616Claude membaca dan menulis file memori selama sesi Anda. Ketika Anda melihat pesan seperti "Saved 2 memories" atau "Recalled 2 memories" di antarmuka Claude Code, Claude secara aktif memperbarui atau membaca dari `~/.claude/projects/<project>/memory/`.616Claude membaca dan menulis file memori selama sesi Anda. Ketika Anda melihat pesan seperti "Saved 2 memories" atau "Recalled 2 memories" di antarmuka Claude Code, Claude secara aktif memperbarui atau membaca dari `~/.claude/projects/<project>/memory/`.

617 617 

618Ketika Claude menulis file memori yang dimulai dengan frontmatter YAML, Claude Code mencatat waktu penulisan dalam bidang frontmatter `modified` sebagai stempel waktu ISO 8601. Stempel waktu menunjukkan seberapa terkini faktanya, baik untuk Anda maupun untuk Claude ketika membacanya kembali. File apa pun yang memiliki frontmatter mendapatkan bidang saat Claude menulis ulang, termasuk file yang dibuat di versi sebelumnya; Claude Code tidak pernah menambahkan frontmatter ke file yang tidak memilikinya. Bidang `modified` memerlukan Claude Code v2.1.214 atau lebih baru.618Ketika Claude menulis file memori yang dimulai dengan frontmatter YAML, Claude Code mencatat waktu penulisan dalam bidang frontmatter `modified` sebagai stempel waktu ISO 8601. Stempel waktu menunjukkan seberapa terkini faktanya, baik untuk Anda maupun untuk Claude ketika membacanya kembali.

619 619 

620<h3 id="audit-and-edit-your-memory">620<h3 id="audit-and-edit-your-memory">

621 Audit dan edit memori Anda621 Audit dan edit memori Anda

model-config.md +2 −1

Details

274* **Penggantian skill atau perintah**: Claude Code mengabaikan penggantian, termasuk alias keluarga terblokir, dan skill atau perintah berjalan pada model sesi. Skill atau perintah yang [berjalan dalam subagent](/docs/id/skills#run-skills-in-a-subagent) mengikuti perilaku subagent di atas sebagai gantinya274* **Penggantian skill atau perintah**: Claude Code mengabaikan penggantian, termasuk alias keluarga terblokir, dan skill atau perintah berjalan pada model sesi. Skill atau perintah yang [berjalan dalam subagent](/docs/id/skills#run-skills-in-a-subagent) mengikuti perilaku subagent di atas sebagai gantinya

275* **Pengaturan `advisorModel`**: advisor dinonaktifkan untuk sesi275* **Pengaturan `advisorModel`**: advisor dinonaktifkan untuk sesi

276* **Bendera `--advisor`**: Claude Code keluar dengan kesalahan saat peluncuran. Dalam [sesi latar belakang](/docs/id/agent-view), itu memulai sesi tanpa advisor sebagai gantinya dari keluar276* **Bendera `--advisor`**: Claude Code keluar dengan kesalahan saat peluncuran. Dalam [sesi latar belakang](/docs/id/agent-view), itu memulai sesi tanpa advisor sebagai gantinya dari keluar

277* **`CLAUDE_CODE_AUTO_MODE_MODEL`**: Claude Code mengabaikan variabel dan memilih model untuk [permintaan pengklasifikasi auto mode](/docs/id/permission-modes#default-classifier-model) seolah-olah Anda tidak menetapkannya

277 278 

278Claude Code menyembunyikan model yang dikecualikan dari pemilih `/model`. Apakah ID model yang Anda cantumkan juga mendapatkan barisnya sendiri berbeda menurut penyedia:279Claude Code menyembunyikan model yang dikecualikan dari pemilih `/model`. Apakah ID model yang Anda cantumkan juga mendapatkan barisnya sendiri berbeda menurut penyedia:

279 280 


285* **[Rantai model fallback](#fallback-model-chains)**: entri di luar daftar putih dijatuhkan286* **[Rantai model fallback](#fallback-model-chains)**: entri di luar daftar putih dijatuhkan

286* **Upgrade mode rencana**: pada API Anthropic dan Claude Platform on AWS, upgrade seperti [`opusplan`](#opusplan-model-setting) ke model yang dikecualikan menggunakan versi terbaru keluarga upgrade yang diizinkan. Pada penyedia dengan ID model khusus penyedia, dan ketika tidak ada versi yang diizinkan, upgrade dilewati dan perencanaan berlanjut pada model sesi.287* **Upgrade mode rencana**: pada API Anthropic dan Claude Platform on AWS, upgrade seperti [`opusplan`](#opusplan-model-setting) ke model yang dikecualikan menggunakan versi terbaru keluarga upgrade yang diizinkan. Pada penyedia dengan ID model khusus penyedia, dan ketika tidak ada versi yang diizinkan, upgrade dilewati dan perencanaan berlanjut pada model sesi.

287* **[Fallback model otomatis](#automatic-model-fallback)**: fallback yang targetnya dikecualikan tidak berjalan, jadi permintaan yang ditandai berakhir dengan penolakan sebagai gantinya288* **[Fallback model otomatis](#automatic-model-fallback)**: fallback yang targetnya dikecualikan tidak berjalan, jadi permintaan yang ditandai berakhir dengan penolakan sebagai gantinya

288* **[Pengklasifikasi auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode)**: default Claude Sonnet 5 untuk pengklasifikasi hanya berlaku ketika allowlist mengizinkan Sonnet 5. Ketika dikecualikan, pengklasifikasi berjalan pada model sesi, yang sudah diatur oleh allowlist, atau pada model Opus ketika sesi berjalan pada [model Fable](#work-with-fable). Pada penyedia selain API Anthropic, fallback Opus tersebut berjalan pada model yang Anda tetapkan dalam `ANTHROPIC_DEFAULT_OPUS_MODEL` atau, jika tidak, pada Opus 5, tanpa memeriksa allowlist. Memerlukan Claude Code v2.1.210 atau lebih baru289* **[Pengklasifikasi auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode)**: ketika allowlist mengecualikan [model pengklasifikasi default](/docs/id/permission-modes#default-classifier-model), permintaan pengklasifikasi yang akan menggunakan model tersebut berjalan pada model sesi, atau pada model Opus dalam sesi [Fable](#work-with-fable). Pada penyedia selain API Anthropic, fallback Opus tersebut berjalan pada model yang Anda tetapkan dalam `ANTHROPIC_DEFAULT_OPUS_MODEL` atau, jika tidak, pada Opus 5, tanpa memeriksa allowlist. Memerlukan Claude Code v2.1.210 atau lebih baru

289* **[Mode cepat](/docs/id/fast-mode)**: mengaktifkan mode cepat ditolak ketika model yang akan dijalankan sesi setelahnya berada di luar daftar putih290* **[Mode cepat](/docs/id/fast-mode)**: mengaktifkan mode cepat ditolak ketika model yang akan dijalankan sesi setelahnya berada di luar daftar putih

290* **Fallback ketersediaan pada Amazon Bedrock dan Agent Platform Google Cloud**: ketika akun Anda kehilangan akses ke model di tengah sesi, peralihan ke model lain melewati model yang dikecualikan. Pemeriksaan model saat startup pada [Amazon Bedrock](/docs/id/amazon-bedrock#when-your-organization-enforces-a-model-allowlist) dan [Agent Platform Google Cloud](/docs/id/google-vertex-ai#when-your-organization-enforces-a-model-allowlist) melewati model yang dikecualikan hanya ketika pengaturan terkelola juga menetapkan [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)291* **Fallback ketersediaan pada Amazon Bedrock dan Agent Platform Google Cloud**: ketika akun Anda kehilangan akses ke model di tengah sesi, peralihan ke model lain melewati model yang dikecualikan. Pemeriksaan model saat startup pada [Amazon Bedrock](/docs/id/amazon-bedrock#when-your-organization-enforces-a-model-allowlist) dan [Agent Platform Google Cloud](/docs/id/google-vertex-ai#when-your-organization-enforces-a-model-allowlist) melewati model yang dikecualikan hanya ketika pengaturan terkelola juga menetapkan [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)

291 292 

Details

137| `OTEL_LOG_TOOL_CONTENT` | Aktifkan pencatatan konten alat dalam [`tool.output` span event](#tool-output-span-event) (default: dinonaktifkan). Atribut span membawa konten alat di bawah [gerbang mereka sendiri](#new-context-gates). Memerlukan [tracing](#traces-beta). Konten dipotong pada batas konten (60 KB secara default) | `1` untuk mengaktifkan |137| `OTEL_LOG_TOOL_CONTENT` | Aktifkan pencatatan konten alat dalam [`tool.output` span event](#tool-output-span-event) (default: dinonaktifkan). Atribut span membawa konten alat di bawah [gerbang mereka sendiri](#new-context-gates). Memerlukan [tracing](#traces-beta). Konten dipotong pada batas konten (60 KB secara default) | `1` untuk mengaktifkan |

138| `OTEL_LOG_MANAGED_SETTINGS` | Tambahkan pengaturan terkelola yang disembunyikan, dan digest SHA-256 dari pengaturan sebelum penyembunyian, ke event [managed settings resolved](#managed-settings-resolved-event) (default: dinonaktifkan). Nilai dalam pengaturan proyek atau lokal tidak mengaktifkannya. Memerlukan Claude Code v2.1.274 atau lebih baru | `1` untuk mengaktifkan |138| `OTEL_LOG_MANAGED_SETTINGS` | Tambahkan pengaturan terkelola yang disembunyikan, dan digest SHA-256 dari pengaturan sebelum penyembunyian, ke event [managed settings resolved](#managed-settings-resolved-event) (default: dinonaktifkan). Nilai dalam pengaturan proyek atau lokal tidak mengaktifkannya. Memerlukan Claude Code v2.1.274 atau lebih baru | `1` untuk mengaktifkan |

139| `OTEL_LOG_RAW_API_BODIES` | Pancarkan permintaan dan respons JSON API Pesan Anthropic lengkap sebagai event log `api_request_body` / `api_response_body` (default: dinonaktifkan). Badan mencakup seluruh riwayat percakapan. Mengaktifkan ini menyiratkan persetujuan untuk semua yang `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, dan `OTEL_LOG_TOOL_CONTENT` akan ungkapkan | `1` untuk badan inline yang dipotong pada batas konten (60 KB secara default), atau `file:<dir>` untuk badan yang tidak dipotong di disk dengan pointer `body_ref` dalam event |139| `OTEL_LOG_RAW_API_BODIES` | Pancarkan permintaan dan respons JSON API Pesan Anthropic lengkap sebagai event log `api_request_body` / `api_response_body` (default: dinonaktifkan). Badan mencakup seluruh riwayat percakapan. Mengaktifkan ini menyiratkan persetujuan untuk semua yang `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, dan `OTEL_LOG_TOOL_CONTENT` akan ungkapkan | `1` untuk badan inline yang dipotong pada batas konten (60 KB secara default), atau `file:<dir>` untuk badan yang tidak dipotong di disk dengan pointer `body_ref` dalam event |

140| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Batas konten: panjang maksimum atribut yang membawa konten seperti respons model, konten alat, prompt sistem, dan badan API mentah, termasuk penanda pemotongan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Default diukur untuk backend yang membatasi nilai atribut pada 64 KB; naikkan hanya jika backend Anda menerima nilai yang lebih besar, atau turunkan untuk mengurangi volume telemetri. Ketika batas atribut SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` atau salah satu varian logrecord dan span-nya, diatur lebih rendah, Claude Code memotong pada nilai yang lebih kecil itu sehingga penanda `[TRUNCATED ...]` tetap dalam batas SDK. Memerlukan Claude Code v2.1.214 atau lebih baru | `262144` |140| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Batas konten: panjang maksimum atribut yang membawa konten seperti respons model, konten tool, system prompt, dan badan API mentah, termasuk penanda pemotongan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Default diukur untuk backend yang membatasi nilai atribut pada 64 KB; naikkan hanya jika backend Anda menerima nilai yang lebih besar, atau turunkan untuk mengurangi volume telemetri. Ketika batas atribut SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` atau salah satu varian logrecord dan span-nya, diatur lebih rendah, Claude Code memotong pada nilai yang lebih kecil itu sehingga penanda `[TRUNCATED ...]` tetap dalam batas SDK | `262144` |

141| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferensi temporalitas metrik (default: `delta`). Atur ke `cumulative` jika backend Anda mengharapkan temporalitas kumulatif | `delta`, `cumulative` |141| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferensi temporalitas metrik (default: `delta`). Atur ke `cumulative` jika backend Anda mengharapkan temporalitas kumulatif | `delta`, `cumulative` |

142| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval untuk menyegarkan header dinamis (default: 1740000ms / 29 menit) | `900000` |142| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval untuk menyegarkan header dinamis (default: 1740000ms / 29 menit) | `900000` |

143 143 

144Untuk protokol `http/protobuf` dan `http/json`, Claude Code mengirim setiap permintaan ekspor dengan header `Content-Length`. Sebelum v2.1.212, versi Claude Code dari v2.1.191 ke depan mengirim permintaan ini dengan pengkodean transfer chunked; Azure Monitor dan endpoint lain yang memerlukan panjang yang dideklarasikan menolaknya dengan error `411 Length Required` atau `400`.144Untuk protokol `http/protobuf` dan `http/json`, Claude Code mengirim setiap permintaan ekspor dengan header `Content-Length`.

145 145 

146<h3 id="mtls-authentication">146<h3 id="mtls-authentication">

147 Autentikasi mTLS147 Autentikasi mTLS


202 202 

203Konteks jejak masuk juga berlaku untuk [event](#events). Dalam sesi Agent SDK dan `-p` dengan `TRACEPARENT` diatur, setiap catatan log event OTLP membawa nilai `trace_id` dan `span_id` yang menghubungkannya ke jejak aplikasi Anda, bahkan ketika eksporter jejak tidak dikonfigurasi, sehingga backend logging Anda dapat mengorelasikan event dengan sisa jejak.203Konteks jejak masuk juga berlaku untuk [event](#events). Dalam sesi Agent SDK dan `-p` dengan `TRACEPARENT` diatur, setiap catatan log event OTLP membawa nilai `trace_id` dan `span_id` yang menghubungkannya ke jejak aplikasi Anda, bahkan ketika eksporter jejak tidak dikonfigurasi, sehingga backend logging Anda dapat mengorelasikan event dengan sisa jejak.

204 204 

205Catatan yang dipancarkan saat interaksi aktif membawa ID span interaksi, bahkan ketika Claude Code memancarkannya di luar konteks async span, seperti dalam callback prompt izin atau untuk catatan yang di-buffer selama startup dan diekspor nanti. Catatan yang dipancarkan tanpa span interaksi aktif membawa ID `TRACEPARENT` masuk secara langsung. Sebelum v2.1.214, catatan yang dipancarkan di luar konteks async span membawa ID `TRACEPARENT` masuk sebagai gantinya. Sebelum v2.1.212, catatan event yang dipancarkan di luar span aktif tidak membawa `trace_id` atau `span_id`.205Catatan yang dipancarkan saat interaksi aktif membawa ID span interaksi, bahkan ketika Claude Code memancarkannya di luar konteks async span, seperti dalam callback permintaan izin atau untuk catatan yang di-buffer selama startup dan diekspor nanti. Catatan yang dipancarkan tanpa span interaksi aktif membawa ID `TRACEPARENT` masuk secara langsung.

206 206 

207<h4 id="span-hierarchy">207<h4 id="span-hierarchy">

208 Hierarki span208 Hierarki span


311* Panggilan Edit atau Write, kecuali Anda juga menetapkan `OTEL_LOG_TOOL_DETAILS=1`311* Panggilan Edit atau Write, kecuali Anda juga menetapkan `OTEL_LOG_TOOL_DETAILS=1`

312* Panggilan WebFetch atau WebSearch yang Claude Code pindahkan ke latar belakang saat berjalan agar pesan yang sedang menunggu dapat mencapai Claude. Hasil yang tiba kemudian juga tidak dicatat. Untuk mengetahui kapan Claude Code memindahkan panggilan, lihat [Kapan Claude Code mengirim apa yang Anda antrekan](/docs/id/interactive-mode#when-claude-code-sends-what-you-queued) untuk terminal dan [field `priority`](/docs/id/agent-sdk/typescript#sdkusermessage) untuk sesi Agent SDK312* Panggilan WebFetch atau WebSearch yang Claude Code pindahkan ke latar belakang saat berjalan agar pesan yang sedang menunggu dapat mencapai Claude. Hasil yang tiba kemudian juga tidak dicatat. Untuk mengetahui kapan Claude Code memindahkan panggilan, lihat [Kapan Claude Code mengirim apa yang Anda antrekan](/docs/id/interactive-mode#when-claude-code-sends-what-you-queued) untuk terminal dan [field `priority`](/docs/id/agent-sdk/typescript#sdkusermessage) untuk sesi Agent SDK

313 313 

314Event membawa atribut ini, masing-masing dipotong pada batas konten (60 KB secara default). `Gerbang oleh` menamai variabel yang atribut butuhkan di atas `OTEL_LOG_TOOL_CONTENT=1`, dan untuk Edit dan Write variabel itu membuka gerbang event itu sendiri daripada atribut.314Event membawa atribut ini, masing-masing dipotong pada batas konten (60 KB secara default). `Gated by` menamai variabel yang atribut butuhkan di atas `OTEL_LOG_TOOL_CONTENT=1`, dan untuk Edit dan Write variabel itu membuka gerbang event itu sendiri daripada atribut.

315 315 

316| Atribut | Deskripsi | Gerbang oleh |316| Atribut | Deskripsi | Gerbang oleh |

317| - | - | - |317| - | - | - |


328| Atribut | Deskripsi | Gerbang oleh |328| Atribut | Deskripsi | Gerbang oleh |

329| - | - | - |329| - | - | - |

330| `duration_ms` | Waktu yang dihabiskan menunggu keputusan izin | |330| `duration_ms` | Waktu yang dihabiskan menunggu keputusan izin | |

331| `decision` | `accept` atau `reject` | |331| `decision` | `accept`, `reject`, atau `cancelled`, di mana `cancelled` berarti Claude Code berhenti menunggu keputusan izin untuk panggilan tool tersebut dan tidak menjalankannya | |

332| `source` | Sumber keputusan, cocok dengan [Tool decision event](#tool-decision-event) | |332| `source` | Untuk `accept` atau `reject`, asal keputusan, seperti `config`, `hook`, atau `user_temporary`, dengan makna yang dijelaskan di bawah [Tool decision event](#tool-decision-event). Untuk `cancelled`, hal yang mengakhiri penantian sebelum keputusan apa pun dibuat, seperti `user_abort` | |

333 

334Keputusan `cancelled` dengan `source` `user_abort` berarti sebuah pesan yang memerlukan pengiriman segera menginterupsi giliran saat permintaan izin atau pemeriksaan [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) masih tertunda. Misalnya, selama pemeriksaan auto mode, pengguna memiliki pesan dalam antrean dan [mengirimnya segera](/docs/id/interactive-mode#when-claude-code-sends-what-you-queued).

333 335 

334**`claude_code.tool.execution`**336**`claude_code.tool.execution`**

335 337 


368 Atribut tambahan yang membawa konten seperti `new_context`, `system_reminders`, `system_prompt_preview`, `user_system_prompt`, `tool_input`, dan `response.model_output` dipancarkan hanya ketika tracing beta terperinci aktif. Atribut-atribut ini bukan bagian dari skema span yang stabil.370 Atribut tambahan yang membawa konten seperti `new_context`, `system_reminders`, `system_prompt_preview`, `user_system_prompt`, `tool_input`, dan `response.model_output` dipancarkan hanya ketika tracing beta terperinci aktif. Atribut-atribut ini bukan bagian dari skema span yang stabil.

369</Note>371</Note>

370 372 

371Atribut-atribut ini muncul pada span di bawah, dan `Gerbang oleh` menamai variabel yang dibutuhkan atribut di atas tracing beta terperinci. Nilai yang lebih panjang dari batas konten (60 KB secara default) dipotong.373Atribut-atribut ini muncul pada span di bawah, dan `Gated by` menamai variabel yang dibutuhkan atribut di atas tracing beta terperinci. Nilai yang lebih panjang dari batas konten (60 KB secara default) dipotong.

372 374 

373| Atribut | Span | Deskripsi | Gerbang oleh |375| Atribut | Span | Deskripsi | Gerbang oleh |

374| - | - | - | - |376| - | - | - | - |


820| - | - |822| - | - |

821| `prompt.id` | Pengenal UUID v4 yang menghubungkan semua peristiwa yang dihasilkan saat memproses prompt pengguna tunggal |823| `prompt.id` | Pengenal UUID v4 yang menghubungkan semua peristiwa yang dihasilkan saat memproses prompt pengguna tunggal |

822| `event.sequence` | Penghitung berbasis 0 untuk mengurutkan peristiwa, dihitung per proses Claude Code daripada per sesi |824| `event.sequence` | Penghitung berbasis 0 untuk mengurutkan peristiwa, dihitung per proses Claude Code daripada per sesi |

823| `message.uuid` | UUID pesan seperti yang disimpan dalam transkrip sesi, file `~/.claude/projects/*/*.jsonl`. Hadir pada `assistant_response`, pada `api_response_body`, dan pada `user_prompt` kecuali untuk pengiriman perintah, yang dapat menghasilkan nol atau banyak pesan. Pada `assistant_response` dan `api_response_body`, ini adalah entri transkrip akhir respons, yang `parentUuid` giliran berikutnya rantai dari. Memerlukan Claude Code v2.1.214 atau lebih baru, atau v2.1.274 atau lebih baru pada `api_response_body` |825| `message.uuid` | UUID pesan sebagaimana disimpan dalam transkrip sesi, yaitu file `~/.claude/projects/*/*.jsonl`. Ada pada `assistant_response`, pada `api_response_body`, dan pada `user_prompt` kecuali untuk dispatch perintah, yang dapat menghasilkan nol atau banyak pesan. Pada `assistant_response` dan `api_response_body`, ini adalah entri transkrip terakhir dari respons, yang menjadi rujukan rantai `parentUuid` giliran berikutnya. Memerlukan Claude Code v2.1.274 atau yang lebih baru pada `api_response_body` |

824| `request_id` | ID yang ditetapkan server dari permintaan API, dibaca dari header respons `request-id`, seperti `req_011...`. Pada respons tanpa header `request-id`, seperti pada [Amazon Bedrock](/docs/id/amazon-bedrock), nilai berasal dari header `x-amzn-requestid` sebagai gantinya. Hadir pada `api_request`, `api_error`, `api_refusal`, `assistant_response`, dan `api_response_body` ketika respons membawa salah satu header. Cocok dengan atribut yang sama pada span trace `llm_request`. Sumber `x-amzn-requestid` memerlukan Claude Code v2.1.282 atau lebih baru |826| `request_id` | ID yang ditetapkan server dari permintaan API, dibaca dari header respons `request-id`, seperti `req_011...`. Pada respons tanpa header `request-id`, seperti pada [Amazon Bedrock](/docs/id/amazon-bedrock), nilai berasal dari header `x-amzn-requestid` sebagai gantinya. Hadir pada `api_request`, `api_error`, `api_refusal`, `assistant_response`, dan `api_response_body` ketika respons membawa salah satu header. Cocok dengan atribut yang sama pada span trace `llm_request`. Sumber `x-amzn-requestid` memerlukan Claude Code v2.1.282 atau lebih baru |

825| `client_request_id` | UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`. Hadir pada `api_request` dan `api_error` pada koneksi API pihak pertama; tidak ada pada backend penyedia pihak ketiga dan ketika permintaan diulang melalui fallback non-streaming. Memasangkan permintaan dengan responsnya dan tetap tersedia untuk kegagalan seperti timeout yang tidak pernah menghasilkan `request_id` server. Cocok dengan atribut yang sama pada span trace `llm_request`. Memerlukan Claude Code v2.1.214 atau lebih baru |827| `client_request_id` | UUID yang dibuat klien dan dikirim sebagai header permintaan `x-client-request-id`. Ada pada `api_request` dan `api_error` pada koneksi API pihak pertama; tidak ada pada backend penyedia pihak ketiga dan ketika permintaan dicoba ulang melalui fallback non-streaming. Memasangkan permintaan dengan responsnya dan tetap tersedia untuk kegagalan seperti timeout yang tidak pernah menghasilkan `request_id` server. Cocok dengan atribut yang sama pada span trace `llm_request` |

826 828 

827Untuk melacak semua aktivitas yang dipicu oleh prompt tunggal, filter peristiwa Anda berdasarkan nilai `prompt.id` tertentu. Ini mengembalikan peristiwa user\_prompt, peristiwa api\_request apa pun, dan peristiwa tool\_result apa pun yang terjadi saat memproses prompt tersebut.829Untuk melacak semua aktivitas yang dipicu oleh prompt tunggal, filter peristiwa Anda berdasarkan nilai `prompt.id` tertentu. Ini mengembalikan peristiwa user\_prompt, peristiwa api\_request apa pun, dan peristiwa tool\_result apa pun yang terjadi saat memproses prompt tersebut.

828 830 


851* `prompt_length`: Panjang prompt853* `prompt_length`: Panjang prompt

852* `prompt`: Konten prompt. Disunting secara default. Atur `OTEL_LOG_USER_PROMPTS=1` untuk menyertakannya854* `prompt`: Konten prompt. Disunting secara default. Atur `OTEL_LOG_USER_PROMPTS=1` untuk menyertakannya

853* `prompt_text`: Nilai yang sama dengan `prompt`, disamarkan dengan ketentuan yang sama. Backend yang menyimpan nama atribut bertitik sebagai objek bersarang membaca `prompt.id` sebagai `id` di dalam objek bernama `prompt` dan dapat kehilangan string prompt. Bacalah `prompt_text` pada backend tersebut. Memerlukan Claude Code v2.1.287 atau yang lebih baru855* `prompt_text`: Nilai yang sama dengan `prompt`, disamarkan dengan ketentuan yang sama. Backend yang menyimpan nama atribut bertitik sebagai objek bersarang membaca `prompt.id` sebagai `id` di dalam objek bernama `prompt` dan dapat kehilangan string prompt. Bacalah `prompt_text` pada backend tersebut. Memerlukan Claude Code v2.1.287 atau yang lebih baru

854* `message.uuid`: UUID pesan pengguna yang dihasilkan, cocok dengan entri transkrip yang disimpan. Tidak ada pada pengiriman perintah, yang dapat menghasilkan nol atau banyak pesan. Memerlukan Claude Code v2.1.214 atau lebih baru856* `message.uuid`: UUID pesan pengguna yang dihasilkan, cocok dengan entri transkrip yang disimpan. Tidak ada pada dispatch perintah, yang dapat menghasilkan nol atau banyak pesan.

855* `command_name`: Nama perintah ketika prompt memanggil satu. Nama perintah bawaan dan bundel seperti `compact` atau `debug` dipancarkan apa adanya; alias seperti `reset` dipancarkan seperti yang diketik daripada nama kanonik. Nama perintah kustom, plugin, dan MCP runtuh menjadi `custom` atau `mcp` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur857* `command_name`: Nama perintah ketika prompt memanggil satu. Nama perintah bawaan dan bundel seperti `compact` atau `debug` dipancarkan apa adanya; alias seperti `reset` dipancarkan seperti yang diketik daripada nama kanonik. Nama perintah kustom, plugin, dan MCP runtuh menjadi `custom` atau `mcp` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur

856* `command_source`: Asal perintah saat ada: `builtin`, `custom`, atau `mcp`. Perintah yang disediakan plugin melaporkan sebagai `custom`858* `command_source`: Asal perintah saat ada: `builtin`, `custom`, atau `mcp`. Perintah yang disediakan plugin melaporkan sebagai `custom`

857 859 


873* `response`: Teks respons, dipotong pada batas konten (60 KB secara default). Disunting menjadi `<REDACTED>` secara default. Atur `OTEL_LOG_ASSISTANT_RESPONSES=1` untuk menyertakannya. Ketika `OTEL_LOG_ASSISTANT_RESPONSES` tidak diatur, `OTEL_LOG_USER_PROMPTS` mengontrolnya sebagai gantinya, jadi atur `OTEL_LOG_ASSISTANT_RESPONSES=0` untuk menjaga respons disunting saat pencatatan prompt aktif875* `response`: Teks respons, dipotong pada batas konten (60 KB secara default). Disunting menjadi `<REDACTED>` secara default. Atur `OTEL_LOG_ASSISTANT_RESPONSES=1` untuk menyertakannya. Ketika `OTEL_LOG_ASSISTANT_RESPONSES` tidak diatur, `OTEL_LOG_USER_PROMPTS` mengontrolnya sebagai gantinya, jadi atur `OTEL_LOG_ASSISTANT_RESPONSES=0` untuk menjaga respons disunting saat pencatatan prompt aktif

874* `model`: Pengenal model (misalnya, "claude-sonnet-5")876* `model`: Pengenal model (misalnya, "claude-sonnet-5")

875* `request_id`: ID permintaan API, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)877* `request_id`: ID permintaan API, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

876* `message.uuid`: UUID entri transkrip akhir respons. Respons API disimpan sebagai satu entri transkrip per blok konten; ini adalah yang terakhir, yang `parentUuid` giliran berikutnya rantai dari. Memerlukan Claude Code v2.1.214 atau lebih baru878* `message.uuid`: UUID entri transkrip terakhir dari respons. Respons API disimpan sebagai satu entri transkrip per blok konten; ini adalah entri terakhir, yang menjadi rujukan rantai `parentUuid` giliran berikutnya.

877* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen879* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen

878 880 

879<h4 id="tool-result-event">881<h4 id="tool-result-event">


902* `tool_result_size_bytes`: Ukuran hasil alat dalam byte904* `tool_result_size_bytes`: Ukuran hasil alat dalam byte

903* `mcp_server_scope`: Pengenal cakupan server MCP (untuk alat MCP)905* `mcp_server_scope`: Pengenal cakupan server MCP (untuk alat MCP)

904* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (ketika `OTEL_LOG_TOOL_DETAILS=1`): identitas commit dari run `git commit` yang berhasil oleh alat Bash atau PowerShell. `vcs.ref.head.revision` adalah SHA commit, `vcs.ref.head.name` adalah cabang tempat commit dilakukan, dan `vcs.ref.head.type` adalah `branch`. Nama dan jenis dihilangkan ketika commit dilakukan pada HEAD terlepas. Memerlukan Claude Code v2.1.269 atau lebih baru906* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (ketika `OTEL_LOG_TOOL_DETAILS=1`): identitas commit dari run `git commit` yang berhasil oleh alat Bash atau PowerShell. `vcs.ref.head.revision` adalah SHA commit, `vcs.ref.head.name` adalah cabang tempat commit dilakukan, dan `vcs.ref.head.type` adalah `branch`. Nama dan jenis dihilangkan ketika commit dilakukan pada HEAD terlepas. Memerlukan Claude Code v2.1.269 atau lebih baru

905* `tool_parameters` (ketika `OTEL_LOG_TOOL_DETAILS=1`): String JSON yang berisi parameter khusus alat. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, pasangan `mcp_server_name`/`mcp_tool_name` disertakan bahkan dengan flag off, pengecualian yang sama yang ditulis host seperti [Peristiwa keputusan alat](#tool-decision-event), memerlukan Claude Code v2.1.214 atau lebih baru. Parameter bervariasi menurut alat:907* `tool_parameters` (ketika `OTEL_LOG_TOOL_DETAILS=1`): String JSON yang berisi parameter spesifik tool. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, pasangan `mcp_server_name`/`mcp_tool_name` disertakan bahkan ketika flag dimatikan, pengecualian yang sama untuk nama yang ditentukan host seperti pada [Event keputusan tool](#tool-decision-event). Parameter bervariasi menurut tool:

906 * Untuk alat Bash: menyertakan `bash_command`, `full_command`, `timeout`, `description`, dan `dangerouslyDisableSandbox`, ditambah `git_commit_id` dan `git_branch` ketika perintah `git commit` berhasil. `git_commit_id` adalah SHA commit lengkap ketika commit adalah HEAD dari direktori kerja sesi, dan SHA singkat git sebaliknya. `git_branch` adalah cabang tempat commit dilakukan, dihilangkan pada HEAD terlepas908 * Untuk tool Bash: mencakup `bash_command`, `full_command`, `timeout`, `description`, dan `dangerouslyDisableSandbox`, ditambah `git_commit_id` dan `git_branch` ketika perintah `git commit` berhasil. `git_commit_id` adalah SHA commit lengkap ketika commit tersebut adalah HEAD dari direktori kerja sesi, dan SHA singkat git jika tidak. `git_branch` adalah branch tempat commit dibuat, dihilangkan pada detached HEAD

907 * Untuk alat Bash workspace aplikasi desktop, yang juga melaporkan `tool_name` sebagai `Bash`: menyertakan hanya `bash_command`, `full_command`, dan `timeout`909 * Untuk tool Bash workspace aplikasi desktop, yang juga melaporkan `tool_name` sebagai `Bash`: hanya mencakup `bash_command`, `full_command`, dan `timeout`

908 * Untuk alat MCP: menyertakan `mcp_server_name`, `mcp_tool_name`910 * Untuk tool MCP: mencakup `mcp_server_name`, `mcp_tool_name`

909 * Untuk alat Skill: menyertakan `skill_name`911 * Untuk tool Skill: mencakup `skill_name`

910 * Untuk alat Agent atau alat Task warisan: menyertakan `subagent_type`912 * Untuk tool Agent atau tool Task lama: mencakup `subagent_type`

911* `tool_input` (ketika `OTEL_LOG_TOOL_DETAILS=1`): Argumen alat yang diserialisasi JSON. Nilai individual di atas 512 karakter dipotong, dan muatan lengkap dibatasi hingga \~4 K karakter. Berlaku untuk semua alat termasuk alat MCP.913* `tool_input` (ketika `OTEL_LOG_TOOL_DETAILS=1`): Argumen alat yang diserialisasi JSON. Nilai individual di atas 512 karakter dipotong, dan muatan lengkap dibatasi hingga \~4 K karakter. Berlaku untuk semua alat termasuk alat MCP.

912 914 

913<h4 id="api-request-event">915<h4 id="api-request-event">


933* `cache_read_tokens`: Jumlah token yang dibaca dari cache935* `cache_read_tokens`: Jumlah token yang dibaca dari cache

934* `cache_creation_tokens`: Jumlah token yang digunakan untuk pembuatan cache936* `cache_creation_tokens`: Jumlah token yang digunakan untuk pembuatan cache

935* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).937* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).

936* `client_request_id`: UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`; lihat tabel [atribut korelasi peristiwa](#event-correlation-attributes) untuk kapan ada. Memerlukan Claude Code v2.1.214 atau lebih baru938* `client_request_id`: UUID yang dibuat klien dan dikirim sebagai header permintaan `x-client-request-id`; lihat tabel [atribut korelasi event](#event-correlation-attributes) untuk kapan atribut ini ada

937* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif939* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif

938* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen940* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen

939* `effort`: [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan: `"low"`, `"medium"`, `"high"`, `"xhigh"`, atau `"max"`. Tidak ada ketika Claude Code tidak mengirim tingkat upaya, misalnya pada model yang tidak mendukung upaya.941* `effort`: [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan: `"low"`, `"medium"`, `"high"`, `"xhigh"`, atau `"max"`. Tidak ada ketika Claude Code tidak mengirim tingkat upaya, misalnya pada model yang tidak mendukung upaya.


959* `duration_ms`: Durasi permintaan dalam milidetik961* `duration_ms`: Durasi permintaan dalam milidetik

960* `attempt`: Jumlah percobaan yang dilakukan, termasuk permintaan awal. [Mendeteksi retry yang habis](#detect-retry-exhaustion) menjelaskan kapan hitungan dimulai lagi962* `attempt`: Jumlah percobaan yang dilakukan, termasuk permintaan awal. [Mendeteksi retry yang habis](#detect-retry-exhaustion) menjelaskan kapan hitungan dimulai lagi

961* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).963* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).

962* `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 baru964* `client_request_id`: UUID yang dibuat klien dan dikirim sebagai header permintaan `x-client-request-id`. Tersedia bahkan ketika kegagalan seperti timeout atau error koneksi tidak pernah menghasilkan `request_id` server; lihat tabel [atribut korelasi event](#event-correlation-attributes) untuk kapan atribut ini ada.

963* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif965* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif

964* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen966* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen

965* `effort`: [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan. Tidak ada ketika Claude Code tidak mengirim tingkat upaya, misalnya pada model yang tidak mendukung upaya.967* `effort`: [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan. Tidak ada ketika Claude Code tidak mengirim tingkat upaya, misalnya pada model yang tidak mendukung upaya.


1057* `tool_name`: Nama alat (misalnya, "Read", "Edit", "Write", "NotebookEdit")1059* `tool_name`: Nama alat (misalnya, "Read", "Edit", "Write", "NotebookEdit")

1058* `tool_use_id`: Pengenal unik untuk invokasi alat ini. Cocok dengan `tool_use_id` yang dilewatkan ke hooks, memungkinkan korelasi antara peristiwa OTel dan data yang ditangkap hook.1060* `tool_use_id`: Pengenal unik untuk invokasi alat ini. Cocok dengan `tool_use_id` yang dilewatkan ke hooks, memungkinkan korelasi antara peristiwa OTel dan data yang ditangkap hook.

1059* `decision`: Baik `"accept"` atau `"reject"`1061* `decision`: Baik `"accept"` atau `"reject"`

1060* `tool_source`: Selalu ada. Asal alat, sebagai set nilai yang ditulis CLI tertutup. Memerlukan Claude Code v2.1.214 atau lebih baru1062* `tool_source`: Selalu ada. Asal-usul tool, sebagai himpunan tertutup nilai yang ditentukan CLI:

1061 * `"builtin"`: alat CLI itu sendiri1063 * `"builtin"`: tool milik CLI sendiri

1062 * `"mcp"`: server MCP secara umum1064 * `"mcp"`: server MCP secara umum

1063 * `"sdk_host_builtin_mcp"`: server in-process yang dibangun ke Claude Desktop itu sendiri, dalam sesi yang dimiliki Claude Desktop. Claude Desktop memiliki sesi yang diluncurkannya dari salah satu titik masuk miliknya sendiri, `claude-desktop`, `claude-desktop-3p`, atau `local-agent`, ketika sesi itu bukan anak bersarang; sesi bersarang, termasuk sesi yang Claude Code itu sendiri hasilkan, melaporkan server ini sebagai `"mcp"`1065 * `"sdk_host_builtin_mcp"`: server in-process yang dibangun ke dalam Claude Desktop itu sendiri, dalam sesi yang dimiliki Claude Desktop. Claude Desktop memiliki sesi yang dimulainya dari salah satu entrypoint miliknya, `claude-desktop`, `claude-desktop-3p`, atau `local-agent`, ketika sesi tersebut bukan turunan bertingkat; sesi bertingkat, termasuk sesi yang dibuat oleh Claude Code sendiri, melaporkan server ini sebagai `"mcp"`

1064* `source`: Dari mana keputusan berasal:1066* `source`: Asal keputusan:

1065 * `"config"`: Diputuskan secara otomatis tanpa diminta, berdasarkan pengaturan proyek, aturan izin atau tolak dalam pengaturan pribadi pengguna, kebijakan yang dikelola perusahaan, flag `--allowedTools` atau `--disallowedTools`, mode izin aktif, hibah cakupan sesi dari prompt sebelumnya dalam sesi CLI interaktif yang sama, atau karena alat itu aman secara inheren. Peristiwa tidak menunjukkan sumber mana dari ini yang cocok. Claude Code juga melaporkan `"config"` ketika permintaan prompt izin itu sendiri gagal, misalnya ketika callback [`canUseTool`](/docs/id/agent-sdk/typescript#canusetool) SDK Agent atau alat [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) mengembalikan hasil yang tidak valid, atau ketika aliran input ditutup saat permintaan tertunda. Sebelum v2.1.216, Claude Code melaporkan kegagalan ini sebagai `"user_reject"`.1067 * `"config"`: Diputuskan secara otomatis tanpa meminta, oleh salah satu sumber berikut:

1068 

1069 * Pengaturan proyek

1070 * Aturan allow atau deny dalam pengaturan pribadi pengguna

1071 * Kebijakan terkelola enterprise

1072 * Flag `--allowedTools` atau `--disallowedTools`

1073 * Mode izin yang aktif

1074 * Pengklasifikasi auto mode, yang verdiknya dicatat oleh event yang sama dalam `classifier_verdict`

1075 * Pemberian izin untuk sisa sesi, yang diberikan pada permintaan izin sebelumnya dalam sesi CLI interaktif yang sama

1076 * Tool yang secara inheren aman

1077 

1078 Nilai `source` tidak menunjukkan sumber mana yang cocok.

1079 

1080 Claude Code juga melaporkan `"config"` ketika permintaan dialog izin itu sendiri gagal. Misalnya, permintaan tersebut gagal ketika callback [`canUseTool`](/docs/id/agent-sdk/typescript#canusetool) Agent SDK atau tool [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) mengembalikan hasil yang tidak valid, atau ketika stream input ditutup saat permintaan masih tertunda. Sebelum v2.1.216, Claude Code melaporkan kegagalan ini sebagai `"user_reject"`.

1066 * `"hook"`: Hook `PreToolUse` atau `PermissionRequest` mengembalikan keputusan.1081 * `"hook"`: Hook `PreToolUse` atau `PermissionRequest` mengembalikan keputusan.

1067 * `"user_permanent"`: Dipancarkan ketika pengguna memilih "Ya, dan jangan tanya lagi untuk ..." di prompt izin, yang menyimpan aturan izin ke pengaturan pribadi mereka. Dalam CLI interaktif ini hanya dipancarkan untuk pilihan itu sendiri; panggilan kemudian yang cocok dengan aturan yang disimpan memancarkan `"config"` sebagai gantinya. Dalam sesi SDK Agent atau non-interaktif `-p`, baik pilihan awal maupun kecocokan aturan kemudian memancarkan `"user_permanent"`. Diperlakukan sebagai penerimaan.1082 * `"user_permanent"`: Dipancarkan ketika pengguna memilih "Yes, and don't ask again for ..." pada permintaan izin, yang menyimpan aturan allow ke pengaturan pribadi mereka. Dalam CLI interaktif, nilai ini hanya dipancarkan untuk pilihan itu sendiri; panggilan berikutnya yang cocok dengan aturan yang disimpan memancarkan `"config"`. Dalam sesi Agent SDK atau `-p` non-interaktif, baik pilihan awal maupun kecocokan aturan berikutnya memancarkan `"user_permanent"`. Diperlakukan sebagai penerimaan.

1068 * `"user_temporary"`: Dipancarkan ketika pengguna memilih "Ya" di prompt izin untuk persetujuan satu kali, atau memilih opsi yang memberikan akses untuk sisa sesi pada prompt edit atau baca file. Dalam CLI interaktif ini hanya dipancarkan untuk pilihan itu sendiri; panggilan kemudian yang diizinkan oleh hibah cakupan sesi itu memancarkan `"config"` sebagai gantinya. Dalam sesi SDK Agent atau non-interaktif `-p`, baik pilihan maupun kecocokan kemudian memancarkan `"user_temporary"`. Diperlakukan sebagai penerimaan.1083 * `"user_temporary"`: Dipancarkan ketika pengguna memilih "Yes" pada permintaan izin untuk persetujuan satu kali, atau memilih opsi yang memberikan akses untuk sisa sesi pada permintaan izin edit atau baca file. Dalam CLI interaktif, nilai ini hanya dipancarkan untuk pilihan itu sendiri; panggilan berikutnya yang diizinkan oleh pemberian izin bercakupan sesi tersebut memancarkan `"config"`. Dalam sesi Agent SDK atau `-p` non-interaktif, baik pilihan maupun kecocokan berikutnya memancarkan `"user_temporary"`. Diperlakukan sebagai penerimaan.

1069 * `"user_abort"`: Dipancarkan ketika pengguna menutup prompt izin tanpa menjawab. Dalam sesi SDK Agent dan non-interaktif `-p`, ini termasuk mengganggu giliran saat permintaan izin `canUseTool` atau `--permission-prompt-tool` tertunda; sebelum v2.1.216, Claude Code melaporkan gangguan itu sebagai `"user_reject"`. Diperlakukan sebagai penolakan.1084 * `"user_abort"`: Dipancarkan ketika pengguna menutup permintaan izin tanpa menjawab. Dalam sesi Agent SDK dan `-p` non-interaktif, ini mencakup menginterupsi giliran saat permintaan izin `canUseTool` atau `--permission-prompt-tool` masih tertunda; sebelum v2.1.216, Claude Code melaporkan interupsi tersebut sebagai `"user_reject"`. Diperlakukan sebagai penolakan.

1070 * `"user_reject"`: Dipancarkan ketika pengguna memilih "Tidak" saat diminta. Dalam CLI interaktif ini hanya dipancarkan untuk pilihan itu sendiri; panggilan yang cocok dengan aturan tolak dalam pengaturan pribadi pengguna memancarkan `"config"` sebagai gantinya. Dalam sesi SDK Agent atau non-interaktif `-p`, panggilan yang cocok dengan aturan tolak dalam pengaturan pribadi memancarkan `"user_reject"`. Diperlakukan sebagai penolakan.1085 * `"user_reject"`: Dipancarkan ketika pengguna memilih "No" saat diminta. Dalam CLI interaktif, nilai ini hanya dipancarkan untuk pilihan itu sendiri; panggilan yang cocok dengan aturan deny dalam pengaturan pribadi pengguna memancarkan `"config"`. Dalam sesi Agent SDK atau `-p` non-interaktif, panggilan yang cocok dengan aturan deny dalam pengaturan pribadi memancarkan `"user_reject"`. Diperlakukan sebagai penolakan.

1071* `tool_parameters` (ketika `OTEL_LOG_TOOL_DETAILS=1`): String JSON yang berisi parameter khusus alat. Bentuk yang sama dengan [Peristiwa hasil alat](#tool-result-event), minus bidang pasca-eksekusi seperti `git_commit_id`. Nilai dapat berbeda dari `tool_result` untuk panggilan yang diterima jika keputusan izin menulis ulang input alat melalui `updatedInput`. Gunakan atribut ini untuk melihat perintah mana yang ditolak ketika `decision` adalah `"reject"`.1086* `classifier_verdict`: Verdik [pengklasifikasi](/docs/id/permission-modes#how-the-classifier-evaluates-actions) auto mode untuk panggilan tersebut, atau alasan Claude Code menolak panggilan ketika tidak ada verdik. Memerlukan Claude Code v2.1.301 atau yang lebih baru

1072 * Untuk alat `"sdk_host_builtin_mcp"`: `mcp_server_name` dan `mcp_tool_name` disertakan bahkan ketika `OTEL_LOG_TOOL_DETAILS` off, karena aplikasi host mendefinisikan nama ini; tanpanya, panggilan yang ditolak ke salah satu server bawaan ini tidak dapat dikaitkan pada aliran default. Untuk server MCP yang dikonfigurasi pengguna, `tool_name` peristiwa selalu literal `"mcp_tool"`, dan nama server dan alat muncul hanya dalam `tool_parameters` dengan flag on; konten argumen memerlukan flag di mana-mana. Memerlukan Claude Code v2.1.214 atau lebih baru1087 

1073 * Untuk alat Bash: menyertakan `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. Alat bash workspace aplikasi desktop juga melaporkan `tool_name` sebagai `Bash`, tetapi hanya menyertakan `bash_command`, `full_command`, dan `timeout`1088 * `"allow"`: pengklasifikasi menyetujui panggilan

1074 * Untuk alat MCP: menyertakan `mcp_server_name`, `mcp_tool_name`1089 * `"block"`: pengklasifikasi memblokir panggilan. Pemeriksaan pengklasifikasi yang gagal di tengah jalan juga dapat berakhir sebagai `"block"`, sehingga gangguan sebagian pada pengklasifikasi dapat muncul sebagai lebih banyak blokir, bukan sebagai `"unavailable"`

1075 * Untuk alat Skill: menyertakan `skill_name`1090 * `"no_verdict"`: pemeriksaan berjalan tetapi [tidak memberikan verdik yang dapat digunakan](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action), sehingga Claude Code menolak panggilan. Penolakan ini tidak berarti pengklasifikasi menganggap panggilan tersebut tidak aman

1076 * Untuk alat Agent atau alat Task warisan: menyertakan `subagent_type`1091 * `"unavailable"`: permintaan ke pengklasifikasi gagal, misalnya karena rate limit, timeout, atau error koneksi, sehingga Claude Code menolak panggilan. Dengan [peninjauan pengklasifikasi sisi server](/docs/id/permission-modes#server-side-classifier-review), nilai ini juga menandai panggilan yang ditolak karena [server tidak mengembalikan verdik keamanan](/docs/id/errors#the-server-returned-no-safety-verdict)

1092 

1093 Atribut ini juga muncul pada panggilan plan mode ketika [pengklasifikasi meninjau perintah dalam plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode). Atribut ini tidak ada dalam kasus berikut:

1094 

1095 * [Aturan izin](/docs/id/permissions#manage-permissions) allow atau deny yang memutuskan panggilan

1096 * Claude Code menyetujui panggilan dalam auto mode tanpa menanyakan pengklasifikasi

1097 * Pengguna menjawab permintaan izin yang ditampilkan Claude Code setelah [blokir berulang](/docs/id/permission-modes#repeated-block-thresholds)

1098 * Dalam eksekusi `-p` tanpa `--permission-prompt-tool`, Claude Code menolak panggilan setelah blokir berulang karena tidak ada yang dapat menjawab permintaan izin. Event tersebut melaporkan `decision` sebagai `"reject"` dan `source` sebagai `"config"`

1099* `classifier_category` (ketika `OTEL_LOG_TOOL_DETAILS=1`): Nama [aturan bawaan](/docs/id/auto-mode-config#inspect-the-defaults-and-your-effective-config) yang disebutkan pengklasifikasi ketika memblokir panggilan, dalam huruf kecil dengan garis bawah, seperti `"data_exfiltration"` untuk aturan Data Exfiltration. Memerlukan Claude Code v2.1.301 atau yang lebih baru. Atribut ini ada ketika semua kondisi berikut terpenuhi:

1100 * `classifier_verdict` adalah `"block"`

1101 * Claude Code mengirimkan permintaan pengklasifikasi sendiri, alih-alih menggunakan [peninjauan pengklasifikasi sisi server](/docs/id/permission-modes#server-side-classifier-review)

1102 * Pengklasifikasi menyebutkan tepat satu aturan, dan aturan tersebut adalah aturan bawaan, bukan aturan yang Anda tulis

1103* `permission_mode`: [Mode izin](/docs/id/permission-modes) yang aktif ketika pemeriksaan izin panggilan ini dimulai: `"default"`, `"plan"`, `"acceptEdits"`, `"bypassPermissions"`, `"dontAsk"`, atau `"auto"`. Mode manual muncul sebagai `"default"`. Panggilan [subagent](/docs/id/sub-agents#permission-modes) melaporkan mode izin subagent, bukan mode izin sesi. Memerlukan Claude Code v2.1.301 atau yang lebih baru

1104* `tool_parameters` (ketika `OTEL_LOG_TOOL_DETAILS=1`): String JSON yang berisi parameter spesifik tool. Bentuknya sama dengan [Event hasil tool](#tool-result-event), tanpa field pasca-eksekusi seperti `git_commit_id`. Nilainya mungkin berbeda dari `tool_result` untuk panggilan yang diterima jika keputusan izin menulis ulang input tool melalui `updatedInput`. Gunakan atribut ini untuk melihat perintah mana yang ditolak ketika `decision` bernilai `"reject"`.

1105 * Untuk tool `"sdk_host_builtin_mcp"`: `mcp_server_name` dan `mcp_tool_name` disertakan bahkan ketika `OTEL_LOG_TOOL_DETAILS` dimatikan, karena aplikasi host yang mendefinisikan nama-nama ini; tanpanya, panggilan yang ditolak ke salah satu server bawaan ini tidak dapat diatribusikan pada stream default. Untuk server MCP yang dikonfigurasi pengguna, `tool_name` pada event selalu berupa literal `"mcp_tool"`, dan nama server serta tool hanya muncul di `tool_parameters` dengan flag aktif; konten argumen memerlukan flag di mana pun.

1106 * Untuk tool Bash: mencakup `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. Tool bash workspace aplikasi desktop juga melaporkan `tool_name` sebagai `Bash`, tetapi hanya mencakup `bash_command`, `full_command`, dan `timeout`

1107 * Untuk tool MCP: mencakup `mcp_server_name`, `mcp_tool_name`

1108 * Untuk tool Skill: mencakup `skill_name`

1109 * Untuk tool Agent atau tool Task lama: mencakup `subagent_type`

1077 1110 

1078<h4 id="permission-mode-changed-event">1111<h4 id="permission-mode-changed-event">

1079 Peristiwa mode izin berubah1112 Peristiwa mode izin berubah


1081 1114 

1082Dicatat ketika mode izin berubah, misalnya dari siklus `Shift+Tab`, keluar dari plan mode, atau pemeriksaan gerbang auto mode.1115Dicatat ketika mode izin berubah, misalnya dari siklus `Shift+Tab`, keluar dari plan mode, atau pemeriksaan gerbang auto mode.

1083 1116 

1117Untuk mengelompokkan panggilan tool berdasarkan mode izin saat masing-masing diperiksa, gunakan `permission_mode` pada [Event keputusan tool](#tool-decision-event).

1118 

1084**Nama Peristiwa**: `claude_code.permission_mode_changed`1119**Nama Peristiwa**: `claude_code.permission_mode_changed`

1085 1120 

1086**Atribut**:1121**Atribut**:


1091* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)1126* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1092* `from_mode`: Mode izin sebelumnya, misalnya `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, atau `"bypassPermissions"`1127* `from_mode`: Mode izin sebelumnya, misalnya `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, atau `"bypassPermissions"`

1093* `to_mode`: Mode izin baru1128* `to_mode`: Mode izin baru

1094* `trigger`: Penyebab perubahan. Salah satu dari `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"`, atau `"auto_opt_in"`. Tidak ada untuk beberapa perubahan, seperti ketika SDK menetapkan mode izin melalui [`setPermissionMode()`](/docs/id/agent-sdk/typescript#query-object)1129* `trigger`: Penyebab perubahan, misalnya `"shift_tab"`, `"exit_plan_mode"`, atau `"auto_gate_denied"`. Tidak ada untuk beberapa perubahan, seperti ketika SDK menetapkan mode izin melalui [`setPermissionMode()`](/docs/id/agent-sdk/typescript#query-object)

1095 1130 

1096<h4 id="auth-event">1131<h4 id="auth-event">

1097 Peristiwa auth1132 Peristiwa auth


1402* `total_tool_uses`: Jumlah panggilan alat yang dibuat subagen di seluruh run1437* `total_tool_uses`: Jumlah panggilan alat yang dibuat subagen di seluruh run

1403* `duration_ms`: Waktu run dalam milidetik1438* `duration_ms`: Waktu run dalam milidetik

1404* `model`: Model yang diselesaikan subagen untuk dijalankan1439* `model`: Model yang diselesaikan subagen untuk dijalankan

1405* `final_model`: Model yang menghasilkan respons akhir subagen, yang berbeda dari `model` setelah switch mid-run seperti fallback. Memerlukan Claude Code v2.1.212 atau lebih baru1440* `final_model`: Model yang menghasilkan respons akhir subagent, yang berbeda dari `model` setelah terjadi peralihan di tengah proses seperti fallback

1406* `model_swapped`: Apakah lebih dari satu model melayani permintaan subagen. Memerlukan Claude Code v2.1.212 atau lebih baru1441* `model_swapped`: Apakah lebih dari satu model melayani permintaan subagent

1407* `plugin_id_hash`, `plugin.name`: Ada untuk agen yang disediakan plugin. Nama plugin marketplace resmi muncul verbatim; nama plugin lainnya diganti dengan `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur1442* `plugin_id_hash`, `plugin.name`: Ada untuk agen yang disediakan plugin. Nama plugin marketplace resmi muncul verbatim; nama plugin lainnya diganti dengan `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur

1408 1443 

1409<h4 id="feedback-survey-event">1444<h4 id="feedback-survey-event">


1548 Metrik biaya adalah perkiraan. Untuk data penagihan resmi, lihat penyedia API Anda (Claude Console, Amazon Bedrock, atau Google Cloud's Agent Platform).1583 Metrik biaya adalah perkiraan. Untuk data penagihan resmi, lihat penyedia API Anda (Claude Console, Amazon Bedrock, atau Google Cloud's Agent Platform).

1549</Note>1584</Note>

1550 1585 

1551Claude Code menghitung setiap respons streaming terhadap metrik biaya dan token tepat sekali, termasuk ketika gateway atau proxy di belakang `ANTHROPIC_BASE_URL` melakukan streaming penggunaan secara progresif di beberapa frame. Sebelum v2.1.214, stream yang membawa penggunaan di lebih dari satu frame menginflasi `claude_code.cost.usage` dan `claude_code.token.usage` dengan kira-kira satu permintaan penuh tambahan per frame tambahan.1586Claude Code menghitung setiap respons streaming terhadap metrik biaya dan token tepat sekali, termasuk ketika gateway atau proxy di belakang `ANTHROPIC_BASE_URL` melakukan streaming penggunaan secara progresif di beberapa frame.

1552 1587 

1553<h3 id="alerting-and-segmentation">1588<h3 id="alerting-and-segmentation">

1554 Peringatan dan segmentasi1589 Peringatan dan segmentasi


1570 1605 

1571Claude 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.1606Claude 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.

1572 1607 

1573Atribut `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.1608Atribut `attempt` pada acara mencatat jumlah upaya. `CLAUDE_CODE_MAX_RETRIES` default ke 10 dan dibatasi pada 15; jika [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/id/env-vars) diatur, nilai default-nya lebih tinggi dan tidak ada batas.

1574 1609 

1575Ketika permintaan menghabiskan semua retry pada kesalahan transien, `attempt` paling banyak satu lebih dari batas efektif tersebut: 11 secara default.1610Ketika permintaan menghabiskan semua retry pada kesalahan transien, `attempt` paling banyak satu lebih dari batas efektif tersebut: 11 secara default.

1576 1611 


1646 1681 

1647Tanpa `OTEL_LOG_TOOL_DETAILS`, acara ini menghilangkan detail pengidentifikasi:1682Tanpa `OTEL_LOG_TOOL_DETAILS`, acara ini menghilangkan detail pengidentifikasi:

1648 1683 

1649* `tool_result`: menyimpan `mcp_server_scope` dan `tool_name` diredaksi ke literal `"mcp_tool"` untuk server yang dikonfigurasi pengguna, menghilangkan konten argumen. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, ini juga menyimpan pasangan `mcp_server_name`/`mcp_tool_name` di dalam `tool_parameters`, pengecualian yang sama yang dipengaruhi host seperti `tool_decision`, memerlukan Claude Code v2.1.214 atau lebih baru1684* `tool_result`: menyimpan `mcp_server_scope` dan `tool_name` diredaksi ke literal `"mcp_tool"` untuk server yang dikonfigurasi pengguna, menghilangkan konten argumen. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, ini juga menyimpan pasangan `mcp_server_name`/`mcp_tool_name` di dalam `tool_parameters`, pengecualian yang sama yang dipengaruhi host seperti `tool_decision`

1650* `tool_decision`: menyimpan `tool_source` dan `tool_name` diredaksi ke literal `"mcp_tool"` untuk server yang dikonfigurasi pengguna, menghilangkan konten argumen. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, ini juga menyimpan pasangan `mcp_server_name`/`mcp_tool_name` di dalam `tool_parameters`; `tool_source` dan pasangan nama keduanya memerlukan Claude Code v2.1.214 atau lebih baru1685* `tool_decision`: menyimpan `tool_source` dan `tool_name` diredaksi ke literal `"mcp_tool"` untuk server yang dikonfigurasi pengguna, menghilangkan konten argumen. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, ini juga menyimpan pasangan `mcp_server_name`/`mcp_tool_name` di dalam `tool_parameters`

1651* `mcp_server_connection`: menghilangkan `server_name` dan pesan kesalahan, tetapi menyimpan `is_plugin`, `plugin_id_hash`, dan `plugin.name`, dengan nama plugin non-Anthropic diredaksi ke literal `"third-party"`, sehingga server yang disediakan plugin tetap dapat dibedakan tanpa pencatatan terperinci1686* `mcp_server_connection`: menghilangkan `server_name` dan pesan kesalahan, tetapi menyimpan `is_plugin`, `plugin_id_hash`, dan `plugin.name`, dengan nama plugin non-Anthropic diredaksi ke literal `"third-party"`, sehingga server yang disediakan plugin tetap dapat dibedakan tanpa pencatatan terperinci

1652 1687 

1653<h3 id="map-security-questions-to-events">1688<h3 id="map-security-questions-to-events">


1658 1693 

1659| Sinyal | Acara | Atribut Kunci |1694| Sinyal | Acara | Atribut Kunci |

1660| - | - | - |1695| - | - | - |

1661| Panggilan alat diizinkan atau ditolak, dan oleh apa | `tool_decision` | `decision`, `source`, `tool_name`, `tool_parameters` |1696| Panggilan tool diizinkan atau ditolak, dan dari mana keputusan berasal, seperti aturan, hook, atau pengguna | [`tool_decision`](#tool-decision-event) | `decision`, `source`, `classifier_verdict`, `permission_mode`, `tool_name`; `tool_parameters` saat Anda mengatur `OTEL_LOG_TOOL_DETAILS=1` |

1697| Pengklasifikasi auto mode mengizinkan atau memblokir panggilan tool, atau Claude Code menolak panggilan tanpa putusan pengklasifikasi | [`tool_decision`](#tool-decision-event) di mana `classifier_verdict` ada. Untuk penolakan tanpa putusan, `classifier_verdict` adalah `"no_verdict"` atau `"unavailable"` | `classifier_verdict`, `permission_mode`, `tool_name`; `classifier_category` saat Anda mengatur `OTEL_LOG_TOOL_DETAILS=1` |

1662| Eskalasi mode izin | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |1698| Eskalasi mode izin | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |

1699| Mode izin mana yang digunakan untuk memeriksa setiap panggilan tool, termasuk panggilan yang dibuat subagent | [`tool_decision`](#tool-decision-event) | `permission_mode`, `session.id` |

1663| Hook kebijakan memblokir tindakan | `hook_execution_complete` | `hook_event`, `num_blocking` |1700| Hook kebijakan memblokir tindakan | `hook_execution_complete` | `hook_event`, `num_blocking` |

1664| Login, logout, dan kegagalan autentikasi | `auth` | `action`, `success`, `error_category` |1701| Login, logout, dan kegagalan autentikasi | `auth` | `action`, `success`, `error_category` |

1665| Server MCP terhubung atau gagal | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |1702| Server MCP terhubung atau gagal | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |


1824 1861 

1825 * Di bawah detailed beta tracing, spans juga membawa pesan pengguna baru, hasil tool, dan system reminder yang dikirim bersama setiap permintaan, teks system prompt, serta output model. [Atribut konten di bawah detailed beta tracing](#new-context-gates) mencantumkan setiap atribut. Acara `claude_code.system_prompt` membawa system prompt lengkap1862 * Di bawah detailed beta tracing, spans juga membawa pesan pengguna baru, hasil tool, dan system reminder yang dikirim bersama setiap permintaan, teks system prompt, serta output model. [Atribut konten di bawah detailed beta tracing](#new-context-gates) mencantumkan setiap atribut. Acara `claude_code.system_prompt` membawa system prompt lengkap

1826* Teks respons asisten tidak dikumpulkan secara default. Hanya panjang respons yang dicatat. Untuk menyertakan teks respons, atur `OTEL_LOG_ASSISTANT_RESPONSES=1`. Seperti semua data OpenTelemetry dari Claude Code, teks respons dikirim hanya ke endpoint OTel yang Anda konfigurasikan, tidak pernah ke Anthropic. Ketika variabel ini tidak diatur, `OTEL_LOG_USER_PROMPTS` digunakan sebagai fallback, jadi atur `OTEL_LOG_ASSISTANT_RESPONSES=0` jika Anda menginginkan konten prompt tanpa konten respons dalam acara. Di bawah detailed beta tracing, span `claude_code.llm_request` tetap membawa output model dalam [`response.model_output`](#new-context-gates), yang mengikuti `OTEL_LOG_USER_PROMPTS` alih-alih variabel ini1863* Teks respons asisten tidak dikumpulkan secara default. Hanya panjang respons yang dicatat. Untuk menyertakan teks respons, atur `OTEL_LOG_ASSISTANT_RESPONSES=1`. Seperti semua data OpenTelemetry dari Claude Code, teks respons dikirim hanya ke endpoint OTel yang Anda konfigurasikan, tidak pernah ke Anthropic. Ketika variabel ini tidak diatur, `OTEL_LOG_USER_PROMPTS` digunakan sebagai fallback, jadi atur `OTEL_LOG_ASSISTANT_RESPONSES=0` jika Anda menginginkan konten prompt tanpa konten respons dalam acara. Di bawah detailed beta tracing, span `claude_code.llm_request` tetap membawa output model dalam [`response.model_output`](#new-context-gates), yang mengikuti `OTEL_LOG_USER_PROMPTS` alih-alih variabel ini

1827* Argumen input tool dan parameter tidak dicatat secara default. Untuk menyertakannya, atur `OTEL_LOG_TOOL_DETAILS=1`. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, `tool_decision` dan `tool_result` membawa pasangan `mcp_server_name`/`mcp_tool_name`, nama yang ditulis host daripada konten argumen, bahkan dengan flag mati. Pengecualian memerlukan Claude Code v2.1.214 atau lebih baru. Data ini dikirim hanya ke endpoint OTEL yang Anda konfigurasikan, tidak pernah ke Anthropic. Argumen mungkin masih berisi nilai sensitif, jadi konfigurasikan backend telemetri Anda untuk memfilter atau menyunting atribut ini sesuai kebutuhan. Saat diaktifkan:1864* Argumen input tool dan parameter tidak dicatat secara default. Untuk menyertakannya, atur `OTEL_LOG_TOOL_DETAILS=1`. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, `tool_decision` dan `tool_result` membawa pasangan `mcp_server_name`/`mcp_tool_name`, nama yang ditulis host daripada konten argumen, bahkan dengan flag mati. Data ini dikirim hanya ke endpoint OTEL yang Anda konfigurasikan, tidak pernah ke Anthropic. Argumen mungkin masih berisi nilai sensitif, jadi konfigurasikan backend telemetri Anda untuk memfilter atau menyunting atribut ini sesuai kebutuhan. Saat diaktifkan:

1828 * Acara `tool_result` dan `tool_decision` menyertakan atribut `tool_parameters` dengan perintah Bash, nama server MCP dan tool, dan nama skill. Bidang seperti `full_command` dipancarkan tanpa pemotongan1865 * Acara `tool_result` dan `tool_decision` menyertakan atribut `tool_parameters` dengan perintah Bash, nama server MCP dan tool, dan nama skill. Bidang seperti `full_command` dipancarkan tanpa pemotongan

1829 * Acara `tool_result` juga menyertakan atribut `tool_input` dengan jalur file, URL, pola pencarian, dan argumen lainnya. Nilai individual di atas 512 karakter dipotong dan total dibatasi hingga \~4 K karakter1866 * Acara `tool_result` juga menyertakan atribut `tool_input` dengan jalur file, URL, pola pencarian, dan argumen lainnya. Nilai individual di atas 512 karakter dipotong dan total dibatasi hingga \~4 K karakter

1830 * Acara `user_prompt` menyertakan `command_name` verbatim untuk perintah custom, plugin, dan MCP1867 * Acara `user_prompt` menyertakan `command_name` verbatim untuk perintah custom, plugin, dan MCP

Details

223* `CLAUDE_STREAM_IDLE_TIMEOUT_MS` menetapkan tenggat waktu kedua watchdog. Claude Code menaikkan nilai di bawah 5 menit menjadi 5 menit, dan membatasi nilai pada 30 menit untuk byte-level watchdog.223* `CLAUDE_STREAM_IDLE_TIMEOUT_MS` menetapkan tenggat waktu kedua watchdog. Claude Code menaikkan nilai di bawah 5 menit menjadi 5 menit, dan membatasi nilai pada 30 menit untuk byte-level watchdog.

224* `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` menetapkan tenggat waktu byte-level watchdog tanpa mengubah event-level watchdog, diklem antara 10 detik dan 30 menit, dan mengambil prioritas atas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` untuk watchdog itu.224* `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` menetapkan tenggat waktu byte-level watchdog tanpa mengubah event-level watchdog, diklem antara 10 detik dan 30 menit, dan mengambil prioritas atas `CLAUDE_STREAM_IDLE_TIMEOUT_MS` untuk watchdog itu.

225* `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` menetapkan first-byte deadline secara langsung. Biarkan tidak diatur dan Claude Code menggunakan tenggat waktu byte-level watchdog, sehingga `CLAUDE_STREAM_IDLE_TIMEOUT_MS` dan `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` juga mengubah deadline. Untuk klem, tunjangan unggah, batas `API_TIMEOUT_MS`, dan berapa lama percobaan ulang menunggu setelah penghentian tanpa respons, lihat [No response from API](/docs/id/errors#no-response-from-api).225* `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` menetapkan first-byte deadline secara langsung. Biarkan tidak diatur dan Claude Code menggunakan tenggat waktu byte-level watchdog, sehingga `CLAUDE_STREAM_IDLE_TIMEOUT_MS` dan `CLAUDE_BYTE_STREAM_IDLE_TIMEOUT_MS` juga mengubah deadline. Untuk klem, tunjangan unggah, batas `API_TIMEOUT_MS`, dan berapa lama percobaan ulang menunggu setelah penghentian tanpa respons, lihat [No response from API](/docs/id/errors#no-response-from-api).

226* `API_TIMEOUT_MS` membatasi waktu tunggu header respons. Di tempat first-byte deadline tidak berjalan, seperti sesi Claude apps gateway, atur ke nilai di bawah `300000`, yaitu 5 menit, untuk mencoba ulang permintaan yang tidak dijawab lebih cepat. Pertahankan nilainya di atas waktu tunggu header terlama, dan [permintaan non-streaming](/docs/id/errors#streaming-response-ended-before-any-complete-data-was-received) terlama, yang Anda perkirakan: permintaan yang membutuhkan waktu lebih lama akan mengalami timeout lagi pada setiap retry.226* `API_TIMEOUT_MS` membatasi waktu tunggu header respons, bukan berapa lama respons melakukan streaming setelahnya. Di tempat first-byte deadline tidak berjalan, seperti sesi Claude apps gateway, atur ke nilai di bawah `300000`, yaitu 5 menit, untuk mencoba ulang permintaan yang tidak dijawab lebih cepat. Pertahankan nilainya di atas waktu tunggu header terlama, dan [permintaan non-streaming](/docs/id/errors#streaming-response-ended-before-any-complete-data-was-received) terlama, yang Anda perkirakan: permintaan yang membutuhkan waktu lebih lama akan mengalami timeout lagi pada setiap retry.

227* `API_FORCE_IDLE_TIMEOUT` diatur ke `0` mematikan body idle timeout, dan diatur ke `1` menghidupkannya untuk setiap penyedia. Watchdog berjalan independen darinya, jadi untuk membiarkan aliran berhenti lebih lama dari ambang batas mereka, juga naikkan atau nonaktifkan mereka.227* `API_FORCE_IDLE_TIMEOUT` diatur ke `0` mematikan body idle timeout, dan diatur ke `1` menghidupkannya untuk setiap penyedia. Watchdog berjalan independen darinya, jadi untuk membiarkan aliran berhenti lebih lama dari ambang batas mereka, juga naikkan atau nonaktifkan mereka.

228 228 

229Ketika watchdog menghentikan aliran yang macet, Claude Code memperlakukan penghentian sebagai kegagalan mid-stream, dan apa yang Anda lihat tergantung pada seberapa jauh respons telah sampai. Claude Code mencoba ulang permintaan atau mengakhiri giliran dengan kesalahan, menyimpan output yang selesai dan menampilkan [pemberitahuan respons tidak lengkap](/docs/id/errors#the-response-above-may-be-incomplete), atau mengakhiri giliran secara normal. [Percobaan ulang otomatis](/docs/id/errors#automatic-retries) mengatakan di mana setiap hasil berlaku.229Ketika watchdog menghentikan aliran yang macet, Claude Code memperlakukan penghentian sebagai kegagalan mid-stream, dan apa yang Anda lihat tergantung pada seberapa jauh respons telah sampai. Claude Code mencoba ulang permintaan atau mengakhiri giliran dengan kesalahan, menyimpan output yang selesai dan menampilkan [pemberitahuan respons tidak lengkap](/docs/id/errors#the-response-above-may-be-incomplete), atau mengakhiri giliran secara normal. [Percobaan ulang otomatis](/docs/id/errors#automatic-retries) mengatakan di mana setiap hasil berlaku.

Details

86| Cara Anda menjalankan Claude Code | Mode izin awal bawaan |86| Cara Anda menjalankan Claude Code | Mode izin awal bawaan |

87| :- | :- |87| :- | :- |

88| File pengaturan apa pun menetapkan `disableAutoMode` ke `"disable"` | `default` |88| File pengaturan apa pun menetapkan `disableAutoMode` ke `"disable"` | `default` |

89| `claude -p` atau [Agent SDK](/docs/id/agent-sdk/permissions#permission-modes) | `default` dalam sesi yang [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching). Dalam sesi yang tidak, seperti pada penyedia pihak ketiga atau dengan telemetri mati, `auto` dengan Claude Code v2.1.285 atau lebih baru dan `default` pada versi sebelumnya. Sesi dalam organisasi yang kebijakannya menahan default `auto` dimulai dalam `default` sebagai gantinya |89| `claude -p` atau [Agent SDK](/docs/id/agent-sdk/permissions#permission-modes) | `default` |

90| Organisasi Anda telah menerapkan [konfigurasi HIPAA](#hipaa-configuration) dan sesi tersebut [memenuhi syarat untuknya](/docs/id/hipaa-setup#check-how-developers-sign-in-and-connect) | `default` dengan Claude Code v2.1.285 atau lebih baru; auto mode tetap tersedia untuk dialihkan |90| Organisasi Anda telah menerapkan [konfigurasi HIPAA](#hipaa-configuration) dan sesi tersebut [memenuhi syarat untuknya](/docs/id/hipaa-setup#check-how-developers-sign-in-and-connect) | `default` dengan Claude Code v2.1.285 atau lebih baru; auto mode tetap tersedia untuk dialihkan |

91| Di terminal atau melalui [ekstensi VS Code](/docs/id/vs-code) | `auto` dengan Claude Code v2.1.283 atau lebih baru; pada versi sebelumnya, `auto` pada paket Pro, Max, atau Team dalam sesi yang [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), dan `default` sebaliknya |91| Di terminal atau melalui [ekstensi VS Code](/docs/id/vs-code) | `auto` dengan Claude Code v2.1.283 atau lebih baru; pada versi sebelumnya, `auto` pada paket Pro, Max, atau Team dalam sesi yang [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), dan `default` sebaliknya |

92 92 

93Dalam [sesi pertama Anda setelah instalasi atau upgrade](/docs/id/env-vars#first-session-after-an-install-or-upgrade), Claude Code dapat memilih mode izin awal sebelum flag fiturnya tiba. Sesi itu dapat dimulai dalam mode izin yang berbeda dari yang diberikan tabel.

94 

95Ketika flag, file pengaturan, atau default bawaan memilih `auto` tetapi auto mode tidak tersedia untuk sesi, Claude Code memulai sesi dalam Manual sebagai gantinya. Auto mode tidak tersedia ketika sesi tidak memenuhi [persyaratan ketersediaan](#eliminate-prompts-with-auto-mode), seperti file pengaturan mematikannya atau model yang tidak mendukungnya, atau ketika Anthropic untuk sementara telah mematikannya di sisi server.93Ketika flag, file pengaturan, atau default bawaan memilih `auto` tetapi auto mode tidak tersedia untuk sesi, Claude Code memulai sesi dalam Manual sebagai gantinya. Auto mode tidak tersedia ketika sesi tidak memenuhi [persyaratan ketersediaan](#eliminate-prompts-with-auto-mode), seperti file pengaturan mematikannya atau model yang tidak mendukungnya, atau ketika Anthropic untuk sementara telah mematikannya di sisi server.

96 94 

97Pertama kali default bawaan memulai salah satu sesi Anda dalam auto mode, Claude Code menampilkan pemberitahuan yang menghubungkan ke halaman ini:95Pertama kali default bawaan memulai salah satu sesi Anda dalam auto mode, Claude Code menampilkan pemberitahuan yang menghubungkan ke halaman ini:


101 99 

102Jika `~/.claude/settings.json` Anda menetapkan `defaultMode` selain `auto` dan tidak ada file pengaturan lain yang menetapkan satu, sesi Anda terus dimulai dalam mode itu. Pada paket Pro, Max, dan Team, dan dalam sesi yang [tidak mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), Claude Code meminta sekali, di terminal atau di ekstensi VS Code, apakah akan mengubah pengaturan ke auto mode. Jika Anda menolak, pengaturan Anda tetap seperti adanya.100Jika `~/.claude/settings.json` Anda menetapkan `defaultMode` selain `auto` dan tidak ada file pengaturan lain yang menetapkan satu, sesi Anda terus dimulai dalam mode itu. Pada paket Pro, Max, dan Team, dan dalam sesi yang [tidak mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), Claude Code meminta sekali, di terminal atau di ekstensi VS Code, apakah akan mengubah pengaturan ke auto mode. Jika Anda menolak, pengaturan Anda tetap seperti adanya.

103 101 

102<h3 id="which-mode-a-non-interactive-run-starts-in">

103 Panggilan tool ditolak dalam eksekusi `claude -p` dan Agent SDK

104</h3>

105 

106Di Claude Code v2.1.302 atau lebih baru, eksekusi `claude -p` dan [Agent SDK](/docs/id/agent-sdk/permissions#permission-modes) [tanpa mode izin yang ditetapkan](#which-mode-a-session-starts-in) dimulai dalam mode Manual. Mode ini muncul sebagai `default` dalam opsi SDK dan pengaturan. Panggilan yang memerlukan persetujuan ditolak kecuali Anda menyetujuinya dengan aturan izin allow, hook, callback `canUseTool`, atau `--permission-prompt-tool`.

107 

108Agar panggilan ini disetujui, tambahkan aturan allow atau mulai dalam auto mode:

109 

110* **[Tambahkan aturan allow](/docs/id/permissions#manage-permissions)**: Claude menjalankan panggilan yang Anda cantumkan. Lewatkan [`--allowedTools "Bash(npm test)"`](/docs/id/headless#auto-approve-tools) ke `claude -p`, atau atur [opsi allowed-tools](/docs/id/agent-sdk/permissions#allow-and-deny-rules) SDK Anda.

111* **Mulai dalam [auto mode](#eliminate-prompts-with-auto-mode)**: model pengklasifikasi meninjau panggilan, sehingga Anda tidak perlu mencantumkan apa pun sebelumnya. Lewatkan `--permission-mode auto` ke `claude -p`, atau atur [opsi mode izin](/docs/id/agent-sdk/permissions#set-permission-mode) SDK Anda.

112 

113Contoh-contoh ini menunjukkan bentuk auto mode untuk CLI dan setiap SDK:

114 

115<Tabs>

116 <Tab title="CLI">

117 ```bash theme={null}

118 claude -p "Run the test suite and fix any failures" --permission-mode auto

119 ```

120 </Tab>

121 

122 <Tab title="TypeScript">

123 ```typescript theme={null}

124 const options = {

125 permissionMode: "auto"

126 };

127 ```

128 </Tab>

129 

130 <Tab title="Python">

131 ```python theme={null}

132 from claude_agent_sdk import ClaudeAgentOptions

133 

134 options = ClaudeAgentOptions(permission_mode="auto")

135 ```

136 </Tab>

137</Tabs>

138 

139Sebelum v2.1.302, eksekusi ini dapat dimulai dalam auto mode jika tidak [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), misalnya pada [penyedia pihak ketiga](/docs/id/third-party-integrations) atau dengan `DISABLE_TELEMETRY`.

140 

104<h3 id="start-in-a-different-mode">141<h3 id="start-in-a-different-mode">

105 Mulai dalam mode izin yang berbeda142 Mulai dalam mode izin yang berbeda

106</h3>143</h3>


216 </Tab>253 </Tab>

217 254 

218 <Tab title="Desktop">255 <Tab title="Desktop">

219 **Selama sesi**: di tab Code, gunakan pemilih mode di sebelah tombol kirim. Tidak setiap mode muncul di pemilih:256 **Selama sesi**: di tab Code, gunakan pemilih mode di baris di bawah kotak prompt. Tidak setiap mode muncul di pemilih:

220 257 

221 * **Auto**: muncul ketika [mode auto tersedia](#eliminate-prompts-with-auto-mode)258 * **Auto**: muncul ketika [mode auto tersedia](#eliminate-prompts-with-auto-mode)

222 * **Bypass permissions**: memerlukan toggle **Allow bypass permissions mode** dalam pengaturan Desktop pada paket Pro dan Max; pada paket Team dan Enterprise, kebijakan organisasi mengontrolnya sebagai gantinya259 * **Bypass permissions**: memerlukan toggle **Allow bypass permissions mode** dalam pengaturan Desktop pada paket Pro dan Max; pada paket Team dan Enterprise, kebijakan organisasi mengontrolnya sebagai gantinya


345 Auto mode pada Bedrock, Agent Platform, atau Foundry382 Auto mode pada Bedrock, Agent Platform, atau Foundry

346</h3>383</h3>

347 384 

348Pada [Amazon Bedrock](/docs/id/amazon-bedrock), [Agent Platform Google Cloud](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, auto mode tersedia secara default. Ketika tidak ada hal lain yang menetapkan mode izin, ini juga merupakan [mode izin awal bawaan](#which-mode-a-session-starts-in), pada versi yang tercantum dalam tabel di bagian tersebut. Untuk memilih mode izin awal sendiri, atur `permissions.defaultMode` seperti yang dijelaskan [Mulai dalam mode izin yang berbeda](#start-in-a-different-mode), atau pilih mode izin dari indikator mode ekstensi VS Code.385Pada [Amazon Bedrock](/docs/id/amazon-bedrock), [Agent Platform Google Cloud](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, auto mode tersedia secara default. Jika Anda tidak menetapkan mode izin di sana, sesi interaktif dimulai dalam auto mode, dan eksekusi `claude -p` atau Agent SDK dimulai dalam mode Manual, yang nilai konfigurasinya adalah `default`:

386 

387* **Sesi terminal interaktif dan VS Code**: untuk memulainya dalam mode izin selain auto, atur `permissions.defaultMode` seperti yang dijelaskan [Mulai dalam mode izin yang berbeda](#start-in-a-different-mode), atau pilih salah satu dari [indikator mode](#switch-permission-modes) ekstensi VS Code. [Mode mana yang digunakan saat sesi dimulai](#which-mode-a-session-starts-in) mencantumkan versi Claude Code yang memulainya dalam auto mode.

388* **Eksekusi `claude -p` dan Agent SDK**: untuk memulainya dalam auto mode, teruskan `--permission-mode auto` ke `claude -p`, atau teruskan `permissionMode: "auto"` di TypeScript atau `permission_mode="auto"` di Python. Jika Anda tidak meneruskan mode izin apa pun, lihat [Panggilan tool ditolak dalam eksekusi `claude -p` dan Agent SDK](#which-mode-a-non-interactive-run-starts-in), yang juga mencakup versi Claude Code sebelumnya.

349 389 

350Hanya Claude Sonnet 5 atau lebih baru, Opus 4.7 atau lebih baru, Haiku 5.5, dan model Fable yang didukung pada penyedia ini. Pada model lain apa pun, sesi dimulai dalam Manual sebagai gantinya. Auto mode dengan Haiku 5.5 pada penyedia ini memerlukan Claude Code v2.1.293 atau lebih baru.390Hanya Claude Sonnet 5 atau lebih baru, Opus 4.7 atau lebih baru, Haiku 5.5, dan model Fable yang didukung pada penyedia ini. Pada model lain apa pun, sesi dimulai dalam Manual sebagai gantinya. Auto mode dengan Haiku 5.5 pada penyedia ini memerlukan Claude Code v2.1.293 atau lebih baru.

351 391 


368 408 

369Untuk melewati permintaan ke server dan selalu menggunakan permintaan pengklasifikasi Claude Code sendiri, atur [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/id/env-vars). Pada koneksi langsung ke Anthropic API, variabel ini memerlukan Claude Code v2.1.281 atau lebih baru. Menetapkannya ke `1` di sana mengaktifkan tinjauan server dalam sesi yang belum memilikinya, kecuali Anda juga menetapkan `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Jika Anda menetapkan `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` dan membiarkan `CLAUDE_CODE_AUTO_MODE_SERVER` tidak ditetapkan, Claude Code juga berhenti meminta server, kecuali seperti yang dijelaskan [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities).409Untuk melewati permintaan ke server dan selalu menggunakan permintaan pengklasifikasi Claude Code sendiri, atur [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/id/env-vars). Pada koneksi langsung ke Anthropic API, variabel ini memerlukan Claude Code v2.1.281 atau lebih baru. Menetapkannya ke `1` di sana mengaktifkan tinjauan server dalam sesi yang belum memilikinya, kecuali Anda juga menetapkan `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Jika Anda menetapkan `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` dan membiarkan `CLAUDE_CODE_AUTO_MODE_SERVER` tidak ditetapkan, Claude Code juga berhenti meminta server, kecuali seperti yang dijelaskan [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities).

370 410 

411<h3 id="default-classifier-model">

412 Model pengklasifikasi default

413</h3>

414 

415Secara default, permintaan pengklasifikasi dikirim ke Claude Sonnet 5. Jika `/status` menampilkan `Auto mode server` sebagai `Enabled`, permintaan tersebut dikirim hanya untuk panggilan di luar [tinjauan server](#server-side-classifier-review).

416 

417Temukan baris pertama dalam tabel ini yang cocok dengan sesi Anda. Anda mendapatkan model dari baris tersebut sebagai pengganti Sonnet 5.

418 

419| Sesi Anda | Model pengklasifikasi |

420| - | - |

421| Memiliki model pengklasifikasi yang dikonfigurasi Anthropic | Model yang dikonfigurasi. [Periksa log debug](#classifier-model-check) untuk melihat model mana |

422| Berjalan pada Claude Sonnet 4.6 | Sonnet 4.6 |

423| Memiliki [`ANTHROPIC_DEFAULT_SONNET_MODEL`](/docs/id/model-config#environment-variables) yang ditetapkan | Nilainya, atau Sonnet 5 jika nilainya adalah Claude Sonnet 5.5 atau Claude Opus 5.5 |

424 

425Jika Sonnet 5 atau model dalam `ANTHROPIC_DEFAULT_SONNET_MODEL` tidak tersedia dari penyedia Anda atau dikecualikan oleh [kebijakan model](/docs/id/model-config#restrict-model-selection) organisasi Anda, Claude Code menggunakan model fallback. Model tersebut adalah model sesi Anda, atau model Opus dalam [sesi Fable](/docs/id/model-config#work-with-fable).

426 

427<h3 id="choose-the-classifier-model">

428 Pilih model pengklasifikasi

429</h3>

430 

431Dengan Claude Code v2.1.302 atau lebih baru, atur [`CLAUDE_CODE_AUTO_MODE_MODEL`](/docs/id/env-vars) ke ID model lengkap untuk menjalankan pengklasifikasi pada model selain [default](#default-classifier-model). ID model lengkap milik penyedia cloud Anda sendiri juga berfungsi. Contoh `~/.claude/settings.json` ini menetapkan Claude Sonnet 4.6:

432 

433```json theme={null}

434{

435 "env": {

436 "CLAUDE_CODE_AUTO_MODE_MODEL": "claude-sonnet-4-6"

437 }

438}

439```

440 

441<h4 id="classifier-model-not-reviewing">

442 Ketika model Anda bukan yang meninjau

443</h4>

444 

445| Situasi | Apa yang terjadi | Apa yang harus dilakukan |

446| - | - | - |

447| Dalam sesi, `/status` menampilkan [`Auto mode server`](#server-side-classifier-review) sebagai `Enabled` | Model Anda hanya meninjau apa yang tidak ditinjau server | Tidak perlu tindakan |

448| Anda menetapkan Claude Opus 5, Claude Sonnet 5.5, Claude Opus 5.5 atau model yang dikecualikan oleh [kebijakan model](/docs/id/model-config#restrict-model-selection) organisasi Anda | [Model pengklasifikasi default](#default-classifier-model) yang meninjau | Tetapkan model lain |

449| Anthropic mengonfigurasi model pengklasifikasi untuk sesi Anda | Model tersebut yang meninjau | Tidak perlu tindakan |

450| Penyedia Anda tidak dapat melayani model tersebut | Permintaan gagal dan Claude Code [menolak setiap tindakan yang ditinjau](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action) | Tetapkan model yang dilayani penyedia tersebut, atau hapus variabel tersebut |

451 

452<h4 id="classifier-model-check">

453 Periksa model mana yang digunakan pengklasifikasi

454</h4>

455 

456Dari shell Anda, mulai sesi auto mode dengan [`--debug-file`](/docs/id/cli-reference#cli-flags):

457 

458```bash theme={null}

459claude --permission-mode auto --debug-file classifier-debug.log

460```

461 

462Minta Claude menjalankan perintah shell yang tidak read-only, lalu cari `classifier_request_started` di log:

463 

464* **Model Anda setelah `model=`**: variabel tersebut berlaku

465* **Model lain setelah `model=`**: cari `ignoring CLAUDE_CODE_AUTO_MODE_MODEL` di log, yang memberikan alasannya dan langkah apa pun yang perlu diambil

466* **Tidak ada baris seperti itu**: baca `Auto mode server` di `/status` pada prompt Claude Code:

467 * **`Enabled`**: [server](#server-side-classifier-review) diatur untuk meninjau panggilan sesi ini. Tidak ada yang perlu diubah.

468 * **`Disabled`**: pastikan [mode izin](#switch-permission-modes) adalah auto, lalu minta Claude menjalankan perintah lain yang tidak read-only.

469 

371<h3 id="what-the-classifier-blocks-by-default">470<h3 id="what-the-classifier-blocks-by-default">

372 Apa yang diblokir pengklasifikasi secara default471 Apa yang diblokir pengklasifikasi secara default

373</h3>472</h3>


384* Memodifikasi infrastruktur bersama483* Memodifikasi infrastruktur bersama

385* Menghancurkan secara permanen file yang sudah ada sebelum sesi484* Menghancurkan secara permanen file yang sudah ada sebelum sesi

386* Force push485* Force push

387* Melakukan commit atau push perubahan yang akan mengirim rahasia atau data sensitif ke luar repositori saat dijalankan, atau memperluas apa yang diekspos oleh deploy. Ini mencakup workflow CI atau konfigurasi deploy yang meneruskan rahasia ke tujuan yang belum menerimanya, skrip atau langkah penyiapan yang membaca penyimpanan rahasia dan mengirim datanya keluar, dan perubahan konfigurasi yang memperluas apa yang dipublikasikan deploy, seperti pengaturan registri, visibilitas, artefak, atau sourcemap. Pemeriksaan ini berlaku di branch apa pun, berlaku bahkan ketika repositori bersifat publik, dan terpicu ketika perubahan di-commit atau di-push, terlepas dari apakah commit atau push itu memicu pipeline; untuk melewatinya diperlukan penyebutan efek eksekusinya, bukan hanya commit atau push-nya. Sebelum v2.1.211, pemeriksaan ini dibatasi pada branch default: push ke sana diblokir ketika membawa konten sensitif, perubahan yang disembunyikan atau dideskripsikan secara keliru dibandingkan dengan apa yang Anda minta, konten yang dibawa dari luar repositori, atau melewati tinjauan yang Anda minta486* Melakukan commit atau push perubahan yang akan mengirim rahasia atau data sensitif ke luar repositori saat dijalankan, atau memperluas apa yang diekspos oleh deploy. Ini mencakup workflow CI atau konfigurasi deploy yang meneruskan rahasia ke tujuan yang belum menerimanya, skrip atau langkah penyiapan yang membaca penyimpanan rahasia dan mengirim datanya keluar, dan perubahan konfigurasi yang memperluas apa yang dipublikasikan deploy, seperti pengaturan registri, visibilitas, artefak, atau sourcemap. Pemeriksaan ini berlaku di branch apa pun, berlaku bahkan ketika repositori bersifat publik, dan terpicu ketika perubahan di-commit atau di-push, terlepas dari apakah commit atau push itu memicu pipeline; untuk melewatinya diperlukan penyebutan efek eksekusinya, bukan hanya commit atau push-nya

388* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, atau `git stash clear`, yang diasumsikan pengklasifikasi akan membuang perubahan yang belum di-commit487* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, atau `git stash clear`, yang diasumsikan pengklasifikasi akan membuang perubahan yang belum di-commit

389* `git commit --amend` ketika commit di HEAD tidak dibuat dalam sesi ini488* `git commit --amend` ketika commit di HEAD tidak dibuat dalam sesi ini

390* Mulai v2.1.198, `git commit --amend` ketika commit di HEAD sudah di-push. Mengubah pesan saja tidak diblokir: `--amend -m` tanpa ada yang baru di-stage, pada commit yang dibuat Claude selama sesi ini489* Mulai v2.1.198, `git commit --amend` ketika commit di HEAD sudah di-push. Mengubah pesan saja tidak diblokir: `--amend -m` tanpa ada yang baru di-stage, pada commit yang dibuat Claude selama sesi ini


568 </Accordion>667 </Accordion>

569 668 

570 <Accordion title="Biaya dan latensi">669 <Accordion title="Biaya dan latensi">

571 Pengklasifikasi berjalan pada Claude Sonnet 5 secara default, bukan pada pilihan `/model` Anda. Model pengklasifikasi yang dikonfigurasi Anthropic di sisi server diutamakan daripada default tersebut. Ketika model sesi Anda adalah Claude Sonnet 4.6, atau ketika [`availableModels`](/docs/id/model-config#restrict-model-selection) mengecualikan Sonnet 5, pengklasifikasi berjalan pada model sesi sebagai gantinya, atau pada model Opus ketika sesi berjalan pada [model Fable](/docs/id/model-config#work-with-fable). Pada penyedia selain Anthropic API, fallback Opus tersebut adalah model yang Anda tetapkan dalam [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/id/model-config#environment-variables), atau Opus 5 jika Anda belum menetapkannya.670 Permintaan pengklasifikasi Claude Code dapat berjalan pada model selain pilihan `/model` Anda. Lihat [model mana yang digunakannya](#default-classifier-model).

572 

573 Permintaan auto mode pertama dalam sesi memvalidasi default Sonnet 5: jika permintaan berhasil, Sonnet 5 tetap menjadi model pengklasifikasi sesi, dan jika gagal karena model tidak tersedia, sesi menggunakan fallback sebagai gantinya.

574 671 

575 Pada paket Enterprise dan pada akun yang menggunakan Claude API, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry, panggilan pengklasifikasi dihitung dalam penggunaan token Anda. Setiap pemeriksaan mengirim sebagian transkrip ditambah tindakan yang tertunda, sehingga menambah satu perjalanan bolak-balik sebelum eksekusi. Pembacaan dan pengeditan di direktori kerja di luar jalur yang dilindungi melewati pengklasifikasi, sehingga overhead terutama berasal dari perintah shell dan operasi jaringan. Ketika server meninjau tindakan sebagai bagian dari permintaan model sesi, tidak ada panggilan pengklasifikasi terpisah yang dihitung; lihat [Tinjauan pengklasifikasi di sisi server](#server-side-classifier-review).672 Pada paket Enterprise dan pada akun yang menggunakan Claude API, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry, panggilan pengklasifikasi dihitung dalam penggunaan token Anda. Setiap pemeriksaan mengirim sebagian transkrip ditambah tindakan yang tertunda, sehingga menambah satu perjalanan bolak-balik sebelum eksekusi. Pembacaan dan pengeditan di direktori kerja di luar jalur yang dilindungi melewati pengklasifikasi, sehingga overhead terutama berasal dari perintah shell dan operasi jaringan. Ketika server meninjau tindakan sebagai bagian dari permintaan model sesi, tidak ada panggilan pengklasifikasi terpisah yang dihitung; lihat [Tinjauan pengklasifikasi di sisi server](#server-side-classifier-review).

576 673 

permissions.md +3 −3

Details

391 391 

392Claude Code memeriksa path gambar yang ditempelkan dan daftar direktori di v2.1.290 dan yang lebih baru.392Claude Code memeriksa path gambar yang ditempelkan dan daftar direktori di v2.1.290 dan yang lebih baru.

393 393 

394Aturan deny `Read` juga memblokir [tool Edit dan Write](/docs/id/errors#file-is-covered-by-a-read-deny-rule) pada path yang sama, termasuk membuat file baru di sana. NotebookEdit tidak tercakup, jadi tambahkan aturan deny `Edit` untuk path yang tidak boleh diubah oleh tool apa pun. Pemeriksaan ini memerlukan Claude Code v2.1.208 atau yang lebih baru untuk edit, dan v2.1.228 atau yang lebih baru untuk penulisan.394Aturan deny `Read` juga memblokir [tool Edit dan Write](/docs/id/errors#file-is-covered-by-a-read-deny-rule) pada path yang sama, termasuk membuat file baru di sana. NotebookEdit tidak tercakup, jadi tambahkan aturan deny `Edit` untuk path yang tidak boleh diubah oleh tool apa pun. Untuk tool Write, pemeriksaan ini memerlukan Claude Code v2.1.228 atau yang lebih baru.

395 395 

396Claude Code memeriksa izin file hanya terhadap aturan `Edit(path)` dan `Read(path)`. Jika Anda menulis aturan path untuk `Write`, `NotebookEdit`, `Glob`, atau tool lama `MultiEdit`, Claude Code menerima aturan tersebut tetapi tidak pernah merujuknya, dan [memberi peringatan saat startup](/docs/id/errors#is-not-matched-by-file-permission-checks), kecuali untuk aturan `Glob` yang diteruskan dalam `--allowedTools`. Gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`, `NotebookEdit(docs/**)`, atau `MultiEdit(docs/**)`, dan `Read(docs/**)` sebagai pengganti `Glob(docs/**)`. Claude Code tidak memberi peringatan tentang aturan nama tool tanpa path, seperti aturan deny untuk `Write`; aturan tersebut dicocokkan di tingkat tool di mana saja. Memerlukan Claude Code v2.1.210 atau yang lebih baru.396Claude Code memeriksa izin file hanya terhadap aturan `Edit(path)` dan `Read(path)`. Jika Anda menulis aturan path untuk `Write`, `NotebookEdit`, `Glob`, atau tool lama `MultiEdit`, Claude Code menerima aturan tersebut tetapi tidak pernah merujuknya, dan [memberi peringatan saat startup](/docs/id/errors#is-not-matched-by-file-permission-checks), kecuali untuk aturan `Glob` yang diteruskan dalam `--allowedTools`. Gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`, `NotebookEdit(docs/**)`, atau `MultiEdit(docs/**)`, dan `Read(docs/**)` sebagai pengganti `Glob(docs/**)`. Claude Code tidak memberi peringatan tentang aturan nama tool tanpa path, seperti aturan deny untuk `Write`; aturan tersebut dicocokkan di tingkat tool di mana saja.

397 397 

398<Warning>398<Warning>

399 Aturan deny Read dan Edit berlaku untuk tool file bawaan Claude, untuk perintah file yang dikenali Claude Code dalam Bash, seperti `cat`, `head`, `tail`, `sed`, dan `tee`, serta untuk target [pengalihan](#redirections) Bash seperti `> file` dan `< file`. Aturan tersebut tidak berlaku untuk perintah yang membaca file tanpa menyebutkan namanya, seperti `grep -r pattern .` yang dijalankan dari direktori yang berisi file tersebut, atau untuk subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file sendiri. Untuk penegakan tingkat OS yang memblokir semua proses agar tidak mengakses sebuah path, [aktifkan sandbox](/docs/id/sandboxing).399 Aturan deny Read dan Edit berlaku untuk tool file bawaan Claude, untuk perintah file yang dikenali Claude Code dalam Bash, seperti `cat`, `head`, `tail`, `sed`, dan `tee`, serta untuk target [pengalihan](#redirections) Bash seperti `> file` dan `< file`. Aturan tersebut tidak berlaku untuk perintah yang membaca file tanpa menyebutkan namanya, seperti `grep -r pattern .` yang dijalankan dari direktori yang berisi file tersebut, atau untuk subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file sendiri. Untuk penegakan tingkat OS yang memblokir semua proses agar tidak mengakses sebuah path, [aktifkan sandbox](/docs/id/sandboxing).


762 762 

763Ketika Anda mengaktifkan sandboxing dan membiarkan `autoAllowBashIfSandboxed` pada default `true`, perintah Bash yang di-sandbox berjalan tanpa meminta bahkan jika izin Anda mencakup aturan ask `Bash` biasa, atau [bentuk setara `Bash(*)`](#match-all-uses-of-a-tool): batas sandbox menggantikan prompt seluruh alat tersebut.763Ketika Anda mengaktifkan sandboxing dan membiarkan `autoAllowBashIfSandboxed` pada default `true`, perintah Bash yang di-sandbox berjalan tanpa meminta bahkan jika izin Anda mencakup aturan ask `Bash` biasa, atau [bentuk setara `Bash(*)`](#match-all-uses-of-a-tool): batas sandbox menggantikan prompt seluruh alat tersebut.

764 764 

765Dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), Claude Code melewati substitusi ini. Tanpa aturan ask, [perintah baca-saja bawaan](#read-only-commands) masih berjalan tanpa meminta, dan perintah shell lainnya melalui alur izin reguler sementara Anda masih merencanakan; lihat [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) untuk bagaimana Claude Code membatasi perintah di sana. Dengan aturan ask `Bash` biasa, setiap perintah Bash meminta, termasuk perintah baca-saja yang di-sandbox, sama seperti di luar sandboxing. Sebelum v2.1.212, substitusi diterapkan dalam plan mode juga.765Dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), Claude Code melewati substitusi ini. Tanpa aturan ask, [perintah read-only bawaan](#read-only-commands) masih berjalan tanpa meminta izin, dan perintah shell lainnya melalui alur izin reguler sementara Anda masih merencanakan; lihat [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) untuk bagaimana Claude Code membatasi perintah di sana. Dengan aturan ask `Bash` biasa, setiap perintah Bash meminta izin, termasuk perintah read-only yang di-sandbox, sama seperti di luar sandboxing.

766 766 

767Pemeriksaan ini masih berlaku:767Pemeriksaan ini masih berlaku:

768 768 

Details

95 95 

96 <Steps>96 <Steps>

97 <Step title="Buka browser plugin">97 <Step title="Buka browser plugin">

98 Klik tombol **+** di sebelah kotak prompt dan pilih **Plugins**, kemudian **Add plugin**. Browser plugin membuka dengan plugin dari marketplace Anda.98 Klik tombol **+** di sebelah kotak prompt dan pilih **Add plugins**. Jika menu **+** menampilkan **Plugins** alih-alih **Add plugins**, pilih **Plugins**, kemudian **Browse plugins**. Browser plugin membuka dengan plugin dari marketplace Anda.

99 </Step>99 </Step>

100 100 

101 <Step title="Pilih plugin">101 <Step title="Pilih plugin">


107 </Step>107 </Step>

108 </Steps>108 </Steps>

109 109 

110 Untuk mengaktifkan, menonaktifkan, atau mencopot nanti, gunakan **+ > Plugins > Manage plugins**. Browser plugin tidak tersedia di sesi cloud aplikasi desktop. Lihat [Install plugins in the desktop app](/docs/id/desktop#install-plugins).110 Untuk mengaktifkan, menonaktifkan, atau mencopot plugin nanti, lihat [Install plugins in the desktop app](/docs/id/desktop#install-plugins).

111 </Tab>111 </Tab>

112 112 

113 <Tab title="VS Code">113 <Tab title="VS Code">

Details

362 Menggambar di ekstensi VS Code362 Menggambar di ekstensi VS Code

363</h3>363</h3>

364 364 

365Di ekstensi VS Code, apa yang digambar mod muncul di panel obrolan dengan ekstensi versi 2.1.299 atau lebih baru, dalam sesi yang [mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching). Dalam hook `ui.render` untuk panel tersebut, `e.surface` adalah `vscode`. Untuk memeriksa titik render dan elemen mana yang digambar panel, dan prop mana yang diabaikannya, lihat tabel [titik render](/docs/id/plugins/mods/reference#render-sites) dan [elemen](/docs/id/plugins/mods/reference#elements).365Di ekstensi VS Code, apa yang digambar mod muncul di panel obrolan dengan ekstensi versi 2.1.299 atau lebih baru. Sesi yang [tidak mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti sesi di Amazon Bedrock, memerlukan versi 2.1.304 atau lebih baru. Dalam hook `ui.render` untuk panel tersebut, `e.surface` adalah `vscode`. Untuk memeriksa titik render dan elemen mana yang digambar panel, dan prop mana yang diabaikannya, lihat tabel [titik render](/docs/id/plugins/mods/reference#render-sites) dan [elemen](/docs/id/plugins/mods/reference#elements).

366 366 

367Agar mod bekerja di panel obrolan maupun di terminal, perhatikan perbedaan berikut:367Agar mod bekerja di panel obrolan maupun di terminal, perhatikan perbedaan berikut:

368 368 

Details

219| `claude` di terminal, termasuk terminal terintegrasi editor dan plugin JetBrains | Ya | Ya |219| `claude` di terminal, termasuk terminal terintegrasi editor dan plugin JetBrains | Ya | Ya |

220| Tab Code aplikasi Desktop, kecuali dalam sesi WSL | Ya | Ya, kecuali elemen yang ditandai [tabel elemen](/docs/id/plugins/mods/reference#elements) sebagai terminal-only |220| Tab Code aplikasi Desktop, kecuali dalam sesi WSL | Ya | Ya, kecuali elemen yang ditandai [tabel elemen](/docs/id/plugins/mods/reference#elements) sebagai terminal-only |

221| [Sesi WSL](/docs/id/desktop-wsl) di aplikasi Desktop | Tidak, karena plugin tidak tersedia dalam sesi WSL | Tidak |221| [Sesi WSL](/docs/id/desktop-wsl) di aplikasi Desktop | Tidak, karena plugin tidak tersedia dalam sesi WSL | Tidak |

222| Panel chat ekstensi VS Code | Ya | Ya, dengan ekstensi versi 2.1.299 atau lebih baru, dalam sesi yang [mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching). Tabel [titik render](/docs/id/plugins/mods/reference#render-sites) dan [elemen](/docs/id/plugins/mods/reference#elements) menandai apa yang digambar panel. |222| Panel chat ekstensi VS Code | Ya | Ya, dengan ekstensi versi 2.1.299 atau lebih baru. Sesi yang [tidak mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti sesi di Amazon Bedrock, memerlukan versi 2.1.304 atau lebih baru. Tabel [titik render](/docs/id/plugins/mods/reference#render-sites) dan [elemen](/docs/id/plugins/mods/reference#elements) menandai apa yang digambar panel. |

223| `claude -p` dan [Agent SDK](/docs/id/agent-sdk/overview) | Ya | Tidak |223| `claude -p` dan [Agent SDK](/docs/id/agent-sdk/overview) | Ya | Tidak |

224| [Remote Control](/docs/id/remote-control) dari claude.ai atau aplikasi mobile | Ya, dalam sesi di mesin Anda | Di terminal di mesin Anda |224| [Remote Control](/docs/id/remote-control) dari claude.ai atau aplikasi mobile | Ya, dalam sesi di mesin Anda | Di terminal di mesin Anda |

225| [Sesi cloud](/docs/id/claude-code-on-the-web) | Ya, untuk plugin yang [menjangkau sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup) | Tidak |225| [Sesi cloud](/docs/id/claude-code-on-the-web) | Ya, untuk plugin yang [menjangkau sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup) | Tidak |

Details

257 257 

258Titik render adalah titik ekstensi di antarmuka Claude Code. Setiap baris adalah nilai `e.component` dalam hook `ui.render`, dengan field `e.props` dan aplikasi yang merendernya. `e.surface` menyebutkan aplikasi yang sedang menggambar, seperti `terminal`, `desktop`, atau `vscode`. [Mengubah apa yang sudah digambar Claude Code](/docs/id/plugins/mods/interface#change-what-claude-code-already-draws) menunjukkan apa yang dapat dilakukan hook di sebuah titik, dengan contoh untuk setiap pilihan.258Titik render adalah titik ekstensi di antarmuka Claude Code. Setiap baris adalah nilai `e.component` dalam hook `ui.render`, dengan field `e.props` dan aplikasi yang merendernya. `e.surface` menyebutkan aplikasi yang sedang menggambar, seperti `terminal`, `desktop`, atau `vscode`. [Mengubah apa yang sudah digambar Claude Code](/docs/id/plugins/mods/interface#change-what-claude-code-already-draws) menunjukkan apa yang dapat dilakukan hook di sebuah titik, dengan contoh untuk setiap pilihan.

259 259 

260Rendering di ekstensi VS Code memerlukan ekstensi versi 2.1.299 atau lebih baru dan sesi yang [mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching). [Menggambar di ekstensi VS Code](/docs/id/plugins/mods/interface#draw-in-the-vs-code-extension) mencantumkan apa yang digambar secara berbeda oleh ekstensi tersebut.260Rendering di ekstensi VS Code memerlukan ekstensi versi 2.1.299 atau lebih baru. Sesi yang [tidak mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching) memerlukan versi 2.1.304 atau lebih baru. [Menggambar di ekstensi VS Code](/docs/id/plugins/mods/interface#draw-in-the-vs-code-extension) mencantumkan apa yang digambar secara berbeda oleh ekstensi tersebut.

261 261 

262| Titik | `e.props` | `e.requestId` | Dirender di |262| Titik | `e.props` | `e.requestId` | Dirender di |

263| :- | :- | :- | :- |263| :- | :- | :- | :- |

Details

315 315 

316* **Titik render atau elemen tidak digambar di aplikasi tersebut**: cari titik render Anda di tabel [titik render](/docs/id/plugins/mods/reference#render-sites) dan elemen Anda di tabel [elemen](/docs/id/plugins/mods/reference#elements). Untuk elemen yang tidak dimiliki aplikasi, periksa `e.surface` di hook dan kembalikan tree yang dapat digambar oleh aplikasi tersebut.316* **Titik render atau elemen tidak digambar di aplikasi tersebut**: cari titik render Anda di tabel [titik render](/docs/id/plugins/mods/reference#render-sites) dan elemen Anda di tabel [elemen](/docs/id/plugins/mods/reference#elements). Untuk elemen yang tidak dimiliki aplikasi, periksa `e.surface` di hook dan kembalikan tree yang dapat digambar oleh aplikasi tersebut.

317* **Ekstensi VS Code lebih lama dari 2.1.299**: panel chat menggambar untuk mod mulai dari [versi ekstensi](/docs/id/vs-code#install-the-extension) 2.1.299. Periksa versinya di tampilan Extensions VS Code dan perbarui ekstensi di sana.317* **Ekstensi VS Code lebih lama dari 2.1.299**: panel chat menggambar untuk mod mulai dari [versi ekstensi](/docs/id/vs-code#install-the-extension) 2.1.299. Periksa versinya di tampilan Extensions VS Code dan perbarui ekstensi di sana.

318* **Sesi VS Code tidak mengambil feature flag**: menggambar di panel chat memerlukannya. Sesi di Amazon Bedrock, Agent Platform milik Google Cloud, atau Microsoft Foundry, atau melalui [Claude apps gateway](/docs/id/claude-apps-gateway), melewatinya, di antara sesi lain yang tercantum di [Fitur yang memerlukan pengambilan feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching). Untuk melihat gambar dalam sesi seperti itu, jalankan `claude` di terminal sebagai gantinya, seperti terminal terintegrasi VS Code.318* **Ekstensi lebih lama dari 2.1.304 dan sesi tidak mengambil feature flag**: perbarui ekstensi, atau jalankan `claude` di terminal terintegrasi VS Code sebagai gantinya. Sesi di Amazon Bedrock, Agent Platform milik Google Cloud, atau Microsoft Foundry melewati pengambilan tersebut. Untuk sesi lain yang melewatinya, seperti sesi [Claude apps gateway](/docs/id/claude-apps-gateway), lihat [Fitur yang memerlukan pengambilan feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching).

319 319 

320<h2 id="an-edit-or-a-value-is-lost">320<h2 id="an-edit-or-a-value-is-lost">

321 Edit atau nilai hilang321 Edit atau nilai hilang

Details

40 40 

41Instal plugin dari permukaan yang Anda gunakan:41Instal plugin dari permukaan yang Anda gunakan:

42 42 

43* **Aplikasi desktop Claude, sesi lokal atau SSH**: klik tombol **+** di sebelah prompt, lalu **Plugins**, lalu **Add plugin** untuk membuka [plugin browser](/docs/id/desktop#install-plugins)43* **Aplikasi desktop Claude, sesi lokal atau SSH**: gunakan tab **Desktop app** di bawah [Install a plugin](/docs/id/plugins/install#install-a-plugin)

44* **Ekstensi VS Code**: gunakan tab **VS Code** di bawah [Install a plugin](/docs/id/plugins/install#install-a-plugin)44* **Ekstensi VS Code**: gunakan tab **VS Code** di bawah [Install a plugin](/docs/id/plugins/install#install-a-plugin)

45* **Claude Code di web, atau sesi cloud desktop**: sesi cloud tidak memiliki plugin browser. Lihat tab **Cloud session** di bawah [Install a plugin](/docs/id/plugins/install#install-a-plugin) untuk apa yang dimuat sesi cloud45* **Claude Code di web, atau sesi cloud desktop**: sesi cloud tidak memiliki plugin browser. Lihat tab **Cloud session** di bawah [Install a plugin](/docs/id/plugins/install#install-a-plugin) untuk apa yang dimuat sesi cloud

46* **Terminal yang Anda miliki akses**: jalankan `claude` dan ketik `/plugin` di sana, atau jalankan `claude plugin install <plugin>@<marketplace>` di shell Anda tanpa memulai sesi46* **Terminal yang Anda miliki akses**: jalankan `claude` dan ketik `/plugin` di sana, atau jalankan `claude plugin install <plugin>@<marketplace>` di shell Anda tanpa memulai sesi

Details

122mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }122mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }

123```123```

124 124 

125Setelah file pengaturan sudah ada, luncurkan Claude Code dengan `npx` dan berikan `claude` sebagai perintah untuk dibungkus:125Instal runtime secara global, di bawah prefix yang berada di luar setiap jalur yang Anda izinkan untuk ditulis:

126 126 

127```bash theme={null}127```bash theme={null}

128npx @anthropic-ai/sandbox-runtime claude128npm install -g @anthropic-ai/sandbox-runtime

129```129```

130 130 

131Claude Code dimulai di dalam sandbox dengan batas filesystem dan jaringan yang Anda konfigurasikan. Perintah yang sama berfungsi untuk sandboxing server MCP mandiri atau proses pembantu lainnya.131Setelah file pengaturan sudah ada, luncurkan Claude Code melalui runtime dari direktori proyek Anda:

132 

133```bash theme={null}

134srt claude

135```

136 

137Claude Code dimulai di dalam sandbox dengan batas filesystem dan jaringan yang Anda konfigurasikan. Perintah `srt` yang sama berfungsi untuk sandboxing server MCP mandiri atau proses pembantu lainnya.

132 138 

133<h3 id="what-the-runtime-blocks-on-its-own">139<h3 id="what-the-runtime-blocks-on-its-own">

134 Apa yang diblokirkan runtime sendiri140 Apa yang diblokirkan runtime sendiri

Details

33 33 

34`/plugin` membuka panel interaktif di CLI terminal. Jika Claude melaporkan bahwa `/plugin` tidak tersedia di lingkungan ini, instal dengan cara lain:34`/plugin` membuka panel interaktif di CLI terminal. Jika Claude melaporkan bahwa `/plugin` tidak tersedia di lingkungan ini, instal dengan cara lain:

35 35 

36* **Aplikasi desktop Claude, sesi lokal atau SSH**: buka [browser plugin](/docs/id/desktop#install-plugins) dengan mengklik tombol **+** di sebelah prompt, kemudian **Plugins**, kemudian **Add plugin**36* **Aplikasi desktop Claude, sesi lokal atau SSH**: gunakan tab **Desktop app** di bawah [Install a plugin](/docs/id/plugins/install#install-a-plugin)

37* **Ekstensi VS Code**: instal dari [dialog **Manage plugins**](/docs/id/vs-code#manage-plugins)37* **Ekstensi VS Code**: instal dari [dialog **Manage plugins**](/docs/id/vs-code#manage-plugins)

38* **Sesi cloud**: sesi cloud tidak memuat plugin dari pengaturan pengguna Anda atau dari `.claude/settings.json` repositori, seperti yang dijelaskan dalam [What carries over from your setup](/docs/id/cloud-environments#what-carries-over-from-your-setup). Untuk plugin yang didistribusikan organisasi Anda melalui pengaturan terkelola, lihat [Manage plugins for your organization](/docs/id/plugins/org)38* **Sesi cloud**: sesi cloud tidak memuat plugin dari pengaturan pengguna Anda atau dari `.claude/settings.json` repositori, seperti yang dijelaskan dalam [What carries over from your setup](/docs/id/cloud-environments#what-carries-over-from-your-setup). Untuk plugin yang didistribusikan organisasi Anda melalui pengaturan terkelola, lihat [Manage plugins for your organization](/docs/id/plugins/org)

39 39 

Details

554* **Dengan [`--retire-at`](/docs/id/self-hosted-environments-reference#runner-cli-flags)**: sisakan cukup waktu antara waktu retire dan waktu host berhenti agar giliran tipikal dapat selesai, ditambah waktu tunggu untuk tugas latar belakang yang dijelaskan [Runner lifecycle](/docs/id/self-hosted-environments#runner-lifecycle), ditambah waktu yang dicatat. Hitung waktu retire di setiap peluncuran, misalnya `date +%s` ditambah masa hidup yang dimaksudkan untuk runner.554* **Dengan [`--retire-at`](/docs/id/self-hosted-environments-reference#runner-cli-flags)**: sisakan cukup waktu antara waktu retire dan waktu host berhenti agar giliran tipikal dapat selesai, ditambah waktu tunggu untuk tugas latar belakang yang dijelaskan [Runner lifecycle](/docs/id/self-hosted-environments#runner-lifecycle), ditambah waktu yang dicatat. Hitung waktu retire di setiap peluncuran, misalnya `date +%s` ditambah masa hidup yang dimaksudkan untuk runner.

555* **Dengan [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal)**: stop timeout juga harus mencakup menit yang Anda konfigurasi dan waktu tunggu tambahan sebelum drain dimulai, 75 detik pada pengaturan default. [Defer the drain past the first signal](#defer-the-drain-past-the-first-signal) menjelaskan keduanya. Runner juga mencatat waktu yang lebih panjang ini saat startup.555* **Dengan [`--defer-shutdown-max-min`](#defer-the-drain-past-the-first-signal)**: stop timeout juga harus mencakup menit yang Anda konfigurasi dan waktu tunggu tambahan sebelum drain dimulai, 75 detik pada pengaturan default. [Defer the drain past the first signal](#defer-the-drain-past-the-first-signal) menjelaskan keduanya. Runner juga mencatat waktu yang lebih panjang ini saat startup.

556 556 

557<h3 id="post-a-status-message-before-a-restart">

558 Kirim pesan status sebelum restart

559</h3>

560 

561Sebelum restart yang akan mengganggu sesi, minta seorang [Owner](/docs/id/cloud-environments#organization-shared-environments) mengirim pesan status pada environment dari [halaman admin **Cloud environments**](https://claude.ai/admin-settings/cloud-environments). Di [claude.ai/code](https://claude.ai/code), anggota melihat pesan tersebut di sesi mereka dalam environment itu. Minta Owner menetapkan waktu kedaluwarsa saat mengirim pesan, atau hapus pesan tersebut setelah runner kembali aktif.

562 

557<h3 id="defer-the-drain-past-the-first-signal">563<h3 id="defer-the-drain-past-the-first-signal">

558 Defer the drain past the first signal564 Defer the drain past the first signal

559</h3>565</h3>


632 Sematkan versi638 Sematkan versi

633</h2>639</h2>

634 640 

635Proses Claude Code anak setiap sesi menjalankan biner runner itu sendiri, dan runner mematikan auto-update di dalam sesi yang dihasilkannya, jadi setiap sesi menjalankan versi yang Anda instal di host atau bangun ke gambar. Update tingkat host berlaku waktu berikutnya runner dimulai.641Secara default, proses anak setiap sesi menjalankan biner runner itu sendiri, dan runner mematikan auto-update di dalam sesi yang dihasilkannya. Dengan default tersebut, setiap sesi menjalankan versi yang Anda instal di host atau yang di-build ke dalam gambar. Update tingkat host berlaku waktu berikutnya runner dimulai.

636 642 

637Pilih versi yang dijalankan sesi Anda dan kapan versi tersebut berubah:643Pilih versi yang dijalankan sesi Anda dan kapan versi tersebut berubah:

638 644 


640* **Untuk menyimpan armada pada satu versi**: bangun gambar dengan versi yang disematkan, atau pada host telanjang instal versi spesifik dan [nonaktifkan auto-update](/docs/id/setup#disable-auto-updates)646* **Untuk menyimpan armada pada satu versi**: bangun gambar dengan versi yang disematkan, atau pada host telanjang instal versi spesifik dan [nonaktifkan auto-update](/docs/id/setup#disable-auto-updates)

641* **Untuk upgrade armada tetap**: baca entri [changelog](/docs/en/changelog) antara versi Anda dan versi yang akan Anda instal, kemudian instal versi yang lebih baru atau build ulang gambar dan mulai ulang runner647* **Untuk upgrade armada tetap**: baca entri [changelog](/docs/en/changelog) antara versi Anda dan versi yang akan Anda instal, kemudian instal versi yang lebih baru atau build ulang gambar dan mulai ulang runner

642* **Untuk upgrade runner sesuai permintaan**: baca entri [changelog](/docs/en/changelog) antara versi Anda dan versi yang akan Anda instal, kemudian ubah gambar yang dimulai oleh [hook `spawn-runner`](/docs/id/self-hosted-environments-configuration#the-spawn-runner-hook) Anda. Setiap runner baru mendapatkan versi baru. Runner yang sudah berjalan, termasuk runner siaga yang dimulai oleh [`--min-idle`](/docs/id/self-hosted-environments-reference#orchestrator-cli-flags), mempertahankan versinya hingga keluar. Jangan mulai ulang runner tersebut, karena perintah kerjanya hanya sekali pakai.648* **Untuk upgrade runner sesuai permintaan**: baca entri [changelog](/docs/en/changelog) antara versi Anda dan versi yang akan Anda instal, kemudian ubah gambar yang dimulai oleh [hook `spawn-runner`](/docs/id/self-hosted-environments-configuration#the-spawn-runner-hook) Anda. Setiap runner baru mendapatkan versi baru. Runner yang sudah berjalan, termasuk runner siaga yang dimulai oleh [`--min-idle`](/docs/id/self-hosted-environments-reference#orchestrator-cli-flags), mempertahankan versinya hingga keluar. Jangan mulai ulang runner tersebut, karena perintah kerjanya hanya sekali pakai.

649* **Jika sesi memulai biner yang berbeda**: jika Anda menggunakan [`--exec-path`](/docs/id/self-hosted-environments-reference#runner-cli-flags) atau [hook `command`](/docs/id/self-hosted-environments-configuration#command) untuk memulai biner Claude Code selain biner runner itu sendiri, sesi menjalankan versi biner tersebut. Perbarui biner tersebut saat Anda memperbarui runner.

643* **Plugin**: marketplace plugin tidak auto-update juga; atur `FORCE_AUTOUPDATE_PLUGINS=1` dalam lingkungan runner untuk membiarkan plugin auto-update sementara biner tetap disematkan650* **Plugin**: marketplace plugin tidak auto-update juga; atur `FORCE_AUTOUPDATE_PLUGINS=1` dalam lingkungan runner untuk membiarkan plugin auto-update sementara biner tetap disematkan

644 651 

645<h2 id="scale-the-fleet">652<h2 id="scale-the-fleet">


699 * **Sebelum mengaktifkan flag ini**: batasi siapa yang dapat melakukan push ke ref `claude/*` pada remote sumber. Saat dilanjutkan, runner mengambil branch yang sebelumnya di-push tanpa memverifikasi siapa yang melakukan push-nya.706 * **Sebelum mengaktifkan flag ini**: batasi siapa yang dapat melakukan push ke ref `claude/*` pada remote sumber. Saat dilanjutkan, runner mengambil branch yang sebelumnya di-push tanpa memverifikasi siapa yang melakukan push-nya.

700* **Repositori yang ditambahkan di tengah sesi dapat gagal diklon**: Claude mengklonnya dengan `git clone` melalui HTTPS. Pada runner tanpa [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), klon gagal dengan kesalahan autentikasi git jika tidak ada apa pun di host yang dapat membaca repositori tersebut. Jika memungkinkan, pilih setiap repositori yang dibutuhkan sesi ketika Anda membuatnya.707* **Repositori yang ditambahkan di tengah sesi dapat gagal diklon**: Claude mengklonnya dengan `git clone` melalui HTTPS. Pada runner tanpa [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), klon gagal dengan kesalahan autentikasi git jika tidak ada apa pun di host yang dapat membaca repositori tersebut. Jika memungkinkan, pilih setiap repositori yang dibutuhkan sesi ketika Anda membuatnya.

701* **Beberapa konektor tidak muncul dalam sesi yang di-host sendiri**: konektor yang belum Anda hubungkan dalam pengaturan claude.ai tidak terdaftar dalam sesi yang di-host sendiri, dan sesi tidak akan meminta Anda untuk menghubungkannya. Hubungkan dalam Pengaturan terlebih dahulu, kemudian mulai sesi segar. Menambahkan konektor ke sesi yang sudah berjalan juga tidak membuat alat-alatnya tersedia untuk Claude; mulai sesi segar untuk mengambil konektor yang baru ditambahkan.708* **Beberapa konektor tidak muncul dalam sesi yang di-host sendiri**: konektor yang belum Anda hubungkan dalam pengaturan claude.ai tidak terdaftar dalam sesi yang di-host sendiri, dan sesi tidak akan meminta Anda untuk menghubungkannya. Hubungkan dalam Pengaturan terlebih dahulu, kemudian mulai sesi segar. Menambahkan konektor ke sesi yang sudah berjalan juga tidak membuat alat-alatnya tersedia untuk Claude; mulai sesi segar untuk mengambil konektor yang baru ditambahkan.

709* **Ketika seseorang mengarsipkan atau menghapus sesi, atau melepaskan runner-nya dari menu sesi**: jangan mengandalkan push [`--push-outcome-on-release`](/docs/id/self-hosted-environments-reference#runner-cli-flags). Untuk menyimpan commit dalam kasus tersebut, push `HEAD` ke branch penyelamat dari [hook `post-session`](/docs/id/self-hosted-environments-configuration#post-session). Jika Anda memulai dari contoh di sana, ubah agar contoh tersebut melakukan push bahkan ketika tidak ada perubahan yang belum di-commit, karena contoh tersebut hanya melakukan push setelah commit snapshot.

702 710 

703<h3 id="report-an-issue">711<h3 id="report-an-issue">

704 Laporkan masalah712 Laporkan masalah


745 Jika setiap panggilan mulai gagal sekitar 30 menit ke dalam sesi, skrip wrapper mungkin telah memutuskan stdin sesi, jadi rotasi token tidak dapat menjangkaunya; lihat [Keep stdin and file descriptor 3 attached](/docs/id/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached).753 Jika setiap panggilan mulai gagal sekitar 30 menit ke dalam sesi, skrip wrapper mungkin telah memutuskan stdin sesi, jadi rotasi token tidak dapat menjangkaunya; lihat [Keep stdin and file descriptor 3 attached](/docs/id/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached).

746 754 

747 Sebelum v2.1.274, runner berhenti mencoba ulang pengambilan yang gagal setelah beberapa upaya dan menunggu yang dijadwalkan berikutnya. Turn yang gagal tidak memicu pengambilan, jadi setiap turn gagal dengan 401 sampai pengambilan yang dijadwalkan berikutnya.755 Sebelum v2.1.274, runner berhenti mencoba ulang pengambilan yang gagal setelah beberapa upaya dan menunggu yang dijadwalkan berikutnya. Turn yang gagal tidak memicu pengambilan, jadi setiap turn gagal dengan 401 sampai pengambilan yang dijadwalkan berikutnya.

756* **Giliran gagal di claude.ai/code dengan `This model needs a newer version of Claude Code`**: versi Claude Code yang digunakan runner Anda untuk memulai sesi lebih lama daripada yang dibutuhkan model sesi tersebut, sehingga API [menolak permintaan tersebut](/docs/id/errors#claude-code-does-not-support-this-model). Tingkatkan runner ke versi yang diminta oleh pesan tersebut, atau versi yang lebih baru, seperti dijelaskan dalam [Pin the version](#pin-the-version). Sampai saat itu, pengguna dapat memilih model lain dalam sesi.

748* **Pod dibunuh di tengah-drain**: naikkan `terminationGracePeriodSeconds` ke setidaknya nilai yang dicatat runner saat startup. Lihat [Shutdown timing](#shutdown-timing).757* **Pod dibunuh di tengah-drain**: naikkan `terminationGracePeriodSeconds` ke setidaknya nilai yang dicatat runner saat startup. Lihat [Shutdown timing](#shutdown-timing).

749 758 

750Setelah logging diinisialisasi, runner menulis log lifecycle-nya, termasuk baris `[runner:fatal]`, ke stdout, dan output debug ke stderr, semuanya sebagai baris teks biasa daripada JSON. Kegagalan direktori dasar yang dijelaskan dalam entri troubleshooting di atas mencetak ke stderr sebelum titik itu. Tangkap kedua aliran dengan `--log-file`, yang juga memungkinkan `self-hosted-runner doctor` untuk mengekornya, atau dengan pengumpulan log platform Anda.759Setelah logging diinisialisasi, runner menulis log lifecycle-nya, termasuk baris `[runner:fatal]`, ke stdout, dan output debug ke stderr, semuanya sebagai baris teks biasa daripada JSON. Kegagalan direktori dasar yang dijelaskan dalam entri troubleshooting di atas mencetak ke stderr sebelum titik itu. Tangkap kedua aliran dengan `--log-file`, yang juga memungkinkan `self-hosted-runner doctor` untuk mengekornya, atau dengan pengumpulan log platform Anda.

Details

153 Prioritas pengaturan153 Prioritas pengaturan

154</h3>154</h3>

155 155 

156Pengaturan yang dikelola server dan [pengaturan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) keduanya menempati tingkat tertinggi dalam [hierarki pengaturan](/docs/id/settings#settings-precedence) Claude Code. Kunci yang Anda atur di sini diutamakan daripada kunci yang sama dalam file pengaturan milik pengguna sendiri atau dalam nilai `--settings`, kecuali [pengecualian terhadap prioritas pengaturan terkelola](/docs/id/settings#exceptions-to-managed-settings-precedence).156Pengaturan yang dikelola server dan [pengaturan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) sama-sama menempati tingkat tertinggi dalam [hierarki pengaturan](/docs/id/settings#settings-precedence) Claude Code. Key yang Anda tetapkan di sini diutamakan daripada key yang sama dalam file pengaturan milik pengguna sendiri atau dalam nilai `--settings`, kecuali untuk [pengecualian terhadap prioritas pengaturan terkelola](/docs/id/settings#exceptions-to-managed-settings-precedence).

157 157 

158Dalam tingkat terkelola, Claude Code secara default menggunakan sumber pertama yang mengirimkan setidaknya satu kunci kebijakan, memeriksa pengaturan yang dikelola server terlebih dahulu dan kemudian pengaturan yang dikelola endpoint, kecuali [kunci pengecualian per-kunci yang dibahas selanjutnya](#per-key-exceptions-across-managed-sources). [Bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#precedence-within-the-managed-tier) memiliki peringkat lengkap, pengecualian untuk kunci kontrol, dan opt-in yang berlaku untuk setiap sumber.158Di dalam tingkat terkelola, secara default Claude Code menggunakan sumber pertama yang mengirimkan setidaknya satu key kebijakan, dengan memeriksa pengaturan yang dikelola server terlebih dahulu lalu pengaturan yang dikelola endpoint, kecuali untuk [key pengecualian yang dibahas berikutnya](#per-key-exceptions-across-managed-sources). [Cara Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#precedence-within-the-managed-tier) memuat peringkat lengkapnya, pengecualian untuk key kontrol, serta opsi opt-in yang menerapkan setiap sumber.

159 159 

160Jika sumber yang dipilih adalah kebijakan MDM atau file pengaturan terkelola yang [`policyHelper`](/docs/id/settings-reference#policyhelper)-nya menyediakan pengaturan terkelola, output helper menggantikan sumber tersebut sebagai satu-satunya konfigurasi terkelola untuk jalankan. Claude Code tidak berkonsultasi dengan `policyHelper` yang dikonfigurasi dalam pengaturan berbasis MDM atau file saat pengaturan yang dikelola server mengirimkan kunci kebijakan.160Jika sumber yang dipilih adalah kebijakan MDM atau file pengaturan terkelola yang [`policyHelper`](/docs/id/settings-reference#policyhelper)-nya menyediakan pengaturan terkelola, output helper tersebut menggantikan sumber itu sebagai satu-satunya konfigurasi terkelola untuk eksekusi tersebut. Claude Code tidak memeriksa `policyHelper` yang dikonfigurasi dalam MDM atau pengaturan berbasis file selama pengaturan yang dikelola server mengirimkan key kebijakan.

161 161 

162Jika pengambilan yang lebih baru menemukan pengaturan yang dikelola server dihapus, Claude Code menjalankan helper tersebut segera daripada pada peluncuran berikutnya. Entri [`policyHelper`](/docs/id/settings-reference#policyhelper) mencakup apa yang terjadi ketika jalankan tersebut gagal.162Jika pengambilan berikutnya mendapati pengaturan yang dikelola server telah dihapus, Claude Code langsung menjalankan helper tersebut alih-alih menunggu peluncuran berikutnya. Entri [`policyHelper`](/docs/id/settings-reference#policyhelper) menjelaskan apa yang terjadi ketika eksekusi tersebut gagal.

163 163 

164Jika Anda menghapus konfigurasi pengaturan yang dikelola server di konsol admin dengan tujuan untuk kembali ke plist yang dikelola endpoint atau kebijakan registri, perhatikan bahwa [pengaturan yang di-cache](#fetch-and-caching-behavior) bertahan pada mesin klien hingga pengambilan berikutnya yang berhasil, dan kunci yang [hanya berlaku pada peluncuran berikutnya](#fetch-and-caching-behavior), seperti `model`, tetap berlaku hingga setiap klien diluncurkan ulang. Jalankan `/status` untuk melihat sumber terkelola mana yang aktif.164Jika Anda mengosongkan konfigurasi yang dikelola server di konsol admin dengan maksud beralih kembali ke kebijakan plist atau registry yang dikelola endpoint, perhatikan bahwa [pengaturan yang di-cache](#fetch-and-caching-behavior) tetap ada di mesin klien hingga pengambilan berikutnya berhasil, dan key yang [hanya berlaku pada peluncuran berikutnya](#fetch-and-caching-behavior), seperti `model`, tetap berlaku hingga setiap klien diluncurkan ulang. Jalankan `/status` untuk melihat sumber terkelola mana yang aktif.

165 165 

166<h3 id="per-key-exceptions-across-managed-sources">166<h3 id="per-key-exceptions-across-managed-sources">

167 Pengecualian per-kunci di seluruh sumber terkelola167 Pengecualian per key di seluruh sumber terkelola

168</h3>168</h3>

169 169 

170Kunci-kunci ini adalah pengecualian terhadap aturan tanpa penggabungan:170Key berikut merupakan pengecualian terhadap aturan tanpa penggabungan:

171 171 

172* **Kunci kunci lintas sumber**: serangkaian kecil kunci, seperti kunci daftar pasir sandbox, [tercantum di halaman pengaturan terkelola](/docs/id/managed-settings#precedence-within-the-managed-tier). Claude Code menghormatinya ketika sumber terkelola yang dikendalikan admin apa pun menetapkannya; tingkat registri HKCU yang dapat ditulis pengguna dikecualikan.172* **Key penguncian lintas sumber**: sekumpulan kecil key, seperti kunci allowlist sandbox, yang [tercantum di halaman pengaturan terkelola](/docs/id/managed-settings#precedence-within-the-managed-tier). Claude Code mematuhinya ketika sumber terkelola mana pun yang dikendalikan admin menetapkannya; tingkat registry HKCU yang dapat ditulis pengguna dikecualikan.

173 173 

174 Ketika [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan pengaturan terkelola, outputnya adalah satu-satunya sumber yang pemeriksaan ini baca, terlepas dari [`forceRemoteSettingsRefresh`](/docs/id/settings-reference#forceremotesettingsrefresh), yang Claude Code baca dari sumber admin secara langsung pada startup.174 Ketika [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan pengaturan terkelola, output-nya adalah satu-satunya sumber yang dibaca oleh pemeriksaan ini, kecuali [`forceRemoteSettingsRefresh`](/docs/id/settings-reference#forceremotesettingsrefresh), yang dibaca Claude Code langsung dari sumber admin saat startup.

175* **Blok `env`**: terlepas dari unit telemetri dan variabel routing yang dipasangkan dengan kunci kredensial, keduanya dibahas di bawah, blok ini menggabungkan per kunci di seluruh sumber yang dikendalikan admin. Untuk setiap variabel lingkungan, sumber dengan prioritas tertinggi yang mendefinisikannya menang, dan sumber admin yang lebih rendah mengisi variabel yang sumber yang lebih tinggi biarkan tidak diatur. Entri `env` yang dikelola endpoint oleh karena itu berlaku kapan pun konfigurasi yang dikelola server meninggalkan variabel tersebut tidak diatur, atau saat nilai server yang di-cache untuk itu [ditahan menunggu konfirmasi server](#fetch-and-caching-behavior). Memerlukan Claude Code v2.1.223 atau lebih baru. Sebelum v2.1.223, Claude Code menerapkan blok `env` sumber yang dipilih secara keseluruhan saja.175* **Blok `env`**: selain unit telemetri dan variabel routing yang dipasangkan dengan key kredensial, yang keduanya dibahas di bawah, blok ini digabungkan per key di seluruh sumber yang dikendalikan admin. Untuk setiap environment variable, sumber dengan prioritas tertinggi yang mendefinisikannya menang, dan sumber admin yang lebih rendah mengisi variabel yang tidak ditetapkan oleh sumber yang lebih tinggi. Dengan demikian, entri `env` yang dikelola endpoint berlaku setiap kali konfigurasi yang dikelola server tidak menetapkan variabel tersebut, atau selama nilai server yang di-cache untuk variabel tersebut [ditahan menunggu konfirmasi server](#fetch-and-caching-behavior). Memerlukan Claude Code v2.1.223 atau yang lebih baru. Sebelum v2.1.223, Claude Code hanya menerapkan seluruh blok `env` dari sumber yang dipilih.

176 * **Unit telemetri**: kunci exporter `OTEL_EXPORTER_OTLP_*`, toggle penangkapan konten `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER`, dan variabel tracing beta `ENABLE_BETA_TRACING_DETAILED` dan `BETA_TRACING_ENDPOINT` mengikuti sumber tertinggi yang menetapkan salah satu dari mereka sebagai unit. Sumber yang mengirimkan kunci kredensial `otelHeadersHelper` juga mengklaim unit, tetapi mendarat variabel ini hanya ketika itu adalah sumber yang dipilih: sumber yang tidak dipilih tetapi mengirimkan kunci tidak berkontribusi pada salah satu dari mereka dan masih memblokir sumber yang lebih rendah dari mengisinya. Bagaimanapun, endpoint exporter dari satu sumber tidak pernah dapat dipasangkan dengan kredensial dari sumber lain.176 * **Unit telemetri**: key exporter `OTEL_EXPORTER_OTLP_*`, toggle penangkapan konten `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER`, serta variabel tracing beta `ENABLE_BETA_TRACING_DETAILED` dan `BETA_TRACING_ENDPOINT` mengikuti sumber tertinggi yang menetapkan salah satunya sebagai satu unit. Sumber yang mengirimkan key kredensial `otelHeadersHelper` juga mengklaim unit ini, tetapi hanya menerapkan variabel-variabel ini ketika sumber tersebut adalah sumber yang dipilih: sumber yang tidak dipilih tetapi mengirimkan key tersebut tidak menyumbangkan satu pun variabel ini dan tetap mencegah sumber yang lebih rendah mengisinya. Bagaimanapun, endpoint exporter dari satu sumber tidak pernah dapat dipasangkan dengan kredensial dari sumber lain.

177 * **Routing yang dipasangkan kredensial**: sumber yang memasangkan variabel routing dengan kunci kredensial yang hanya dipilih-sumber, seperti `apiKeyHelper` atau `otelHeadersHelper`, berkontribusi pada variabel routing tersebut hanya ketika itu memenangkan slot.177 * **Routing yang dipasangkan dengan kredensial**: sumber yang memasangkan variabel routing dengan key kredensial yang hanya berlaku untuk sumber terpilih, seperti `apiKeyHelper` atau `otelHeadersHelper`, menyumbangkan variabel routing tersebut hanya ketika sumber itu memenangkan slot.

178* **`allowedProviders`**: daftar yang diatur pada mesin dan daftar yang dikelola server menggabungkan seperti [catatan Scope entri tersebut](/docs/id/settings-reference#allowedproviders) menyatakan. Memerlukan Claude Code v2.1.285 atau lebih baru178* **`allowedProviders`**: daftar yang ditetapkan di mesin dan daftar yang dikelola server digabungkan sebagaimana dinyatakan dalam [catatan Cakupan pada entrinya](/docs/id/settings-reference#allowedproviders). Memerlukan Claude Code v2.1.285 atau yang lebih baru

179* **Kunci masuk gateway**: Claude Code tidak pernah membaca [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/id/settings-reference#gatewayinternalnetworks), atau nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) dari pengaturan yang dikelola server, jadi nilai di sana tidak berlaku atau menyembunyikan yang diatur dalam kebijakan MDM atau file pengaturan terkelola. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) mengatakan sumber admin mana di mesin yang menyediakannya.179* **Key masuk gateway**: Claude Code tidak pernah membaca [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/id/settings-reference#gatewayinternalnetworks), atau nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) dari pengaturan yang dikelola server, sehingga nilai di sana tidak berlaku maupun menyembunyikan nilai yang ditetapkan dalam kebijakan MDM atau file pengaturan terkelola. [Entri `managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) menjelaskan sumber admin mana di mesin yang menyediakannya.

180 180 

181<h3 id="fetch-and-caching-behavior">181<h3 id="fetch-and-caching-behavior">

182 Perilaku pengambilan dan caching182 Perilaku pengambilan dan caching

183</h3>183</h3>

184 184 

185Claude Code mengambil pengaturan dari server Anthropic pada startup dan melakukan polling untuk pembaruan setiap jam selama sesi aktif.185Claude Code mengambil pengaturan dari server Anthropic saat startup dan melakukan polling untuk pembaruan setiap jam selama sesi aktif.

186 186 

187Klien yang masuk melalui [gateway aplikasi Claude](#platform-availability) mengambil pengaturannya dari gateway dan menunggu pengambilan tersebut sebelum sesi dimulai, jadi pengambilan dalam daftar di bawah tidak berlaku untuk itu. [Paksakan startup yang tertutup gagal](#enforce-fail-closed-startup) mencakup apa yang terjadi ketika pengambilan tersebut gagal.187Klien yang masuk melalui [Claude apps gateway](#platform-availability) mengambil pengaturannya dari gateway dan menunggu pengambilan tersebut sebelum sesi dimulai, sehingga pengambilan dalam daftar di bawah tidak berlaku untuknya. [Menerapkan startup fail-closed](#enforce-fail-closed-startup) menjelaskan apa yang terjadi ketika pengambilan tersebut gagal.

188 188 

189**Peluncuran pertama tanpa pengaturan yang di-cache:**189**Peluncuran pertama tanpa pengaturan yang di-cache:**

190 190 

191* Ketika pengembang masuk pada startup, seperti pada jalankan pertama atau setelah `/logout`, Claude Code menunggu hingga lima detik untuk pengambilan sebelum membuka sesi. Ketika kebijakan tiba tepat waktu, Claude Code memberlakukannya dari layar pertama dan menampilkan [`companyAnnouncements`](/docs/id/settings-reference#companyannouncements) Anda di atasnya. Ketika payload memerlukan [persetujuan keamanan](#security-approval-dialogs), Claude Code mengakhiri penunggu dan menerapkan payload setelah pengembang menyetujui191* Ketika pengembang masuk saat startup, misalnya pada eksekusi pertama atau setelah `/logout`, Claude Code menunggu hingga lima detik untuk pengambilan sebelum membuka sesi. Ketika kebijakan tiba tepat waktu, Claude Code menerapkannya sejak layar pertama dan menampilkan [`companyAnnouncements`](/docs/id/settings-reference#companyannouncements) Anda di sana. Ketika payload memerlukan [persetujuan keamanan](#security-approval-dialogs), Claude Code mengakhiri penantian dan menerapkan payload setelah pengembang menyetujuinya

192* Pada startup lainnya, dan ketika penunggu lima detik habis, Claude Code membuka sesi sementara pengambilan berlanjut, jadi jendela singkat berlalu sebelum pengaturan dimuat dan pembatasan berlaku192* Pada startup lainnya, dan ketika penantian lima detik tersebut habis, Claude Code membuka sesi sementara pengambilan berlanjut, sehingga ada jeda singkat sebelum pengaturan dimuat dan pembatasan berlaku

193* Jika pengambilan gagal, Claude Code melanjutkan tanpa pengaturan yang dikelola server dan memperingatkan dalam sesi interaktif bahwa tidak ada kebijakan jarak jauh yang berlaku; pengaturan yang dikelola endpoint masih berlaku. Jika sumber terkelola menetapkan [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup), Claude Code keluar sebagai gantinya193* Jika pengambilan gagal, Claude Code melanjutkan tanpa pengaturan yang dikelola server dan memperingatkan dalam sesi interaktif bahwa tidak ada kebijakan jarak jauh yang berlaku; pengaturan yang dikelola endpoint tetap berlaku. Jika sumber terkelola menetapkan [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup), Claude Code akan keluar

194 194 

195**Peluncuran berikutnya dengan pengaturan yang di-cache:**195**Peluncuran berikutnya dengan pengaturan yang di-cache:**

196 196 

197* Pengaturan yang di-cache berlaku segera pada startup, kecuali untuk nilai `modelPricing` dan `managedMcpServers` yang di-cache dan variabel lingkungan yang Claude Code tahan sampai server mengonfirmasi payload197* Pengaturan yang di-cache langsung berlaku saat startup, kecuali nilai `modelPricing` dan `managedMcpServers` yang di-cache serta environment variable yang ditahan Claude Code hingga server mengonfirmasi payload

198* [`modelPricing`](/docs/id/settings-reference#modelpricing) yang di-cache tidak berlaku hingga pengambilan sesi mengonfirmasi payload. Sampai saat itu, angka biaya yang dilihat pengembang di `/usage` dan baris status berada pada harga daftar198* [`modelPricing`](/docs/id/settings-reference#modelpricing) yang di-cache tidak berlaku hingga pengambilan sesi mengonfirmasi payload. Sampai saat itu, angka biaya yang dilihat pengembang di `/usage` dan baris status menggunakan harga daftar

199* Blok [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) yang di-cache tidak berlaku hingga pengambilan sesi mengonfirmasi payload. Claude Code menunggu hingga 30 detik untuk pengambilan tersebut sebelum menghubungkan server MCP. Jika pengambilan gagal atau habis waktu, sesi dimulai tanpa server organisasi, `/status` mengatakan demikian, dan mereka terhubung setelah pengambilan yang lebih baru mengonfirmasinya. Lihat [Ketika server yang disediakan terhubung](/docs/id/managed-mcp#when-provided-servers-connect) untuk perilaku lengkap, termasuk peluncuran pertama. Memerlukan Claude Code v2.1.259 atau lebih baru199* Blok [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) yang di-cache tidak berlaku hingga pengambilan sesi mengonfirmasi payload. Claude Code menunggu hingga 30 detik untuk pengambilan tersebut sebelum menghubungkan server MCP. Jika pengambilan gagal atau mengalami timeout, sesi dimulai tanpa server milik organisasi, `/status` menyatakan hal tersebut, dan server-server tersebut terhubung setelah pengambilan berikutnya mengonfirmasinya. Lihat [Kapan server yang disediakan terhubung](/docs/id/managed-mcp#when-provided-servers-connect) untuk perilaku lengkapnya, termasuk peluncuran pertama. Memerlukan Claude Code v2.1.259 atau yang lebih baru

200* Claude Code mengambil pengaturan segar di latar belakang200* Claude Code mengambil pengaturan terbaru di latar belakang

201* Pengaturan yang di-cache bertahan melalui kegagalan jaringan. Jika pengambilan startup gagal, Claude Code memperingatkan dalam sesi interaktif bahwa kebijakan yang di-cache berlaku201* Pengaturan yang di-cache tetap bertahan saat terjadi kegagalan jaringan. Jika pengambilan saat startup gagal, Claude Code memperingatkan dalam sesi interaktif bahwa kebijakan yang di-cache sedang berlaku

202* Sampai pengambilan berhasil, nilai yang ditahan pada startup tetap ditahan202* Hingga pengambilan berhasil, nilai yang ditahan saat startup tetap ditahan

203 203 

204Claude Code menahan beberapa kategori variabel dalam blok `env` yang di-cache hingga server mengonfirmasi payload untuk sesi. Ini mencegah nilai proxy, otoritas sertifikat, endpoint, atau kredensial yang di-cache dari mengarahkan ulang, mencegat, atau melakukan autentikasi ulang pengambilan pengaturan yang mengonfirmasi payload. Pengerasan hanya berlaku pada cache pengaturan yang diambil server: [pengaturan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) yang digunakan melalui MDM atau `managed-settings.json` tidak terpengaruh. Penahan memerlukan Claude Code v2.1.198 atau lebih baru; sebelum v2.1.198, seluruh blok `env` yang di-cache berlaku pada startup. Kategori yang ditahan mencakup:204Claude Code menahan beberapa kategori variabel dalam blok `env` yang di-cache hingga server mengonfirmasi payload untuk sesi tersebut. Hal ini mencegah nilai proxy, certificate authority, endpoint, atau kredensial yang di-cache mengalihkan, menyadap, atau mengautentikasi ulang pengambilan pengaturan yang mengonfirmasi payload. Penguatan ini hanya berlaku untuk cache pengaturan yang diambil dari server: [pengaturan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) yang di-deploy melalui MDM atau `managed-settings.json` tidak terpengaruh. Kategori yang ditahan meliputi:

205 205 

206* Konfigurasi proxy dan TLS, seperti `HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS`, dan variabel sertifikat klien mTLS `CLAUDE_CODE_CLIENT_CERT` dan `CLAUDE_CODE_CLIENT_KEY`206* Konfigurasi proxy dan TLS, seperti `HTTPS_PROXY`, `NODE_EXTRA_CA_CERTS`, serta variabel sertifikat klien mTLS `CLAUDE_CODE_CLIENT_CERT` dan `CLAUDE_CODE_CLIENT_KEY`

207* Routing API dan pemilihan penyedia, termasuk `ANTHROPIC_BASE_URL`, variabel pemilihan penyedia seperti `CLAUDE_CODE_USE_BEDROCK` dan `CLAUDE_CODE_USE_VERTEX`, dan URL endpoint penyedia seperti `ANTHROPIC_BEDROCK_BASE_URL`207* Routing API dan pemilihan penyedia, termasuk `ANTHROPIC_BASE_URL`, variabel pemilihan penyedia seperti `CLAUDE_CODE_USE_BEDROCK` dan `CLAUDE_CODE_USE_VERTEX`, serta URL endpoint penyedia seperti `ANTHROPIC_BEDROCK_BASE_URL`

208* Kredensial autentikasi, seperti `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, dan `CLAUDE_CODE_OAUTH_TOKEN`208* Kredensial autentikasi, seperti `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, dan `CLAUDE_CODE_OAUTH_TOKEN`

209* Pemilih direktori konfigurasi `CLAUDE_CONFIG_DIR`209* Pemilih direktori konfigurasi `CLAUDE_CONFIG_DIR`

210* Pemilih sumber kredensial dan direktori konfigurasi, dalam Claude Code v2.1.223 atau lebih baru: variabel Workload Identity Federation seperti `ANTHROPIC_FEDERATION_RULE_ID` dan `ANTHROPIC_IDENTITY_TOKEN`, pemilih profil dan direktori konfigurasi `ANTHROPIC_PROFILE` dan `ANTHROPIC_CONFIG_DIR`, dan variabel direktori sistem operasi `HOME`, `XDG_CONFIG_HOME`, `APPDATA`, dan `USERPROFILE`210* Pemilih sumber kredensial dan direktori konfigurasi, di Claude Code v2.1.223 atau yang lebih baru: variabel Workload Identity Federation seperti `ANTHROPIC_FEDERATION_RULE_ID` dan `ANTHROPIC_IDENTITY_TOKEN`, pemilih profil dan direktori konfigurasi `ANTHROPIC_PROFILE` dan `ANTHROPIC_CONFIG_DIR`, serta variabel direktori sistem operasi `HOME`, `XDG_CONFIG_HOME`, `APPDATA`, dan `USERPROFILE`

211 211 

212Claude Code membaca variabel Workload Identity Federation dan pemilih `ANTHROPIC_PROFILE` dan `ANTHROPIC_CONFIG_DIR` hanya pada startup, jadi nilai yang dikirimkan server untuk mereka tidak mengalihkan sumber kredensial sesi bahkan setelah pengambilan berhasil. Untuk mengirimkan pemilih tersebut pada Claude Code v2.1.223 atau lebih baru, gunakan [pengaturan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) seperti MDM atau `managed-settings.json`. Untuk `CLAUDE_CONFIG_DIR` dan variabel direktori sistem operasi, penahan itu sendiri adalah perlindungan: nilai yang di-cache tetap keluar dari lingkungan sampai server mengonfirmasi payload.212Claude Code membaca variabel Workload Identity Federation serta pemilih `ANTHROPIC_PROFILE` dan `ANTHROPIC_CONFIG_DIR` hanya saat startup, sehingga nilai yang dikirim server untuk variabel tersebut tidak mengubah sumber kredensial sesi bahkan setelah pengambilan berhasil. Untuk mengirimkan pemilih tersebut di Claude Code v2.1.223 atau yang lebih baru, gunakan [pengaturan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) seperti MDM atau `managed-settings.json`. Untuk `CLAUDE_CONFIG_DIR` dan variabel direktori sistem operasi, penahanan itu sendirilah yang menjadi perlindungannya: nilai yang di-cache tetap berada di luar environment hingga server mengonfirmasi payload.

213 213 

214Setiap kunci lain dalam blok `env` yang di-cache berlaku pada startup. Setelah server mengonfirmasi payload, dan Anda menyetujuinya jika memerlukan [persetujuan keamanan](#security-approval-dialogs), variabel yang ditahan berlaku untuk sisa sesi.214Setiap key lain dalam blok `env` yang di-cache berlaku saat startup. Setelah server mengonfirmasi payload, dan Anda menyetujuinya jika payload tersebut memerlukan [persetujuan keamanan](#security-approval-dialogs), variabel yang ditahan berlaku selama sisa sesi.

215 215 

216Jika organisasi Anda memerlukan proxy untuk menjangkau `api.anthropic.com`, penahan hanya mempengaruhi blok `env` yang dikirimkan server itu sendiri: proxy yang diatur dalam blok `env` yang [dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) melalui MDM atau `managed-settings.json`, di lingkungan shell, atau di [pengaturan pengguna](/docs/id/settings#where-settings-live) mencapai pengambilan pengaturan. Sumber yang dikelola endpoint memerlukan Claude Code v2.1.223 atau lebih baru: nilai proxy yang dikelola server yang di-cache ditahan sampai pengambilan mengonfirmasinya, jadi nilai yang dikelola endpoint mengisi per kunci dan mencapai pengambilan itu sendiri. Sebelum v2.1.223, gunakan lingkungan shell atau pengaturan pengguna sehingga proxy berlaku bersama payload server yang di-cache. Peluncuran pertama tidak memiliki cache, jadi sumber yang dikelola endpoint, lingkungan shell, atau pengaturan pengguna masih diperlukan untuk pengambilan awal.216Jika organisasi Anda memerlukan proxy untuk menjangkau `api.anthropic.com`, penahanan ini hanya memengaruhi blok `env` yang dikirim server itu sendiri: proxy yang ditetapkan dalam blok `env` [yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) melalui MDM atau `managed-settings.json`, dalam environment shell, atau dalam [pengaturan pengguna](/docs/id/settings#where-settings-live) akan menjangkau pengambilan pengaturan. Sumber yang dikelola endpoint memerlukan Claude Code v2.1.223 atau yang lebih baru: nilai proxy yang dikelola server dan di-cache ditahan hingga pengambilan mengonfirmasinya, sehingga nilai yang dikelola endpoint mengisinya per key dan menjangkau pengambilan itu sendiri. Sebelum v2.1.223, gunakan environment shell atau pengaturan pengguna agar proxy berlaku bersamaan dengan payload server yang di-cache. Peluncuran pertama tidak memiliki cache, sehingga sumber yang dikelola endpoint, environment shell, atau pengaturan pengguna tetap diperlukan untuk pengambilan awal.

217 217 

218Claude Code menerapkan sebagian besar pembaruan pengaturan ke sesi yang sedang berjalan tanpa restart. Beberapa pembaruan hanya berlaku pada peluncuran berikutnya, termasuk konfigurasi exporter OpenTelemetry, kunci `model`, dan penghapusan variabel dari blok `env`.218Claude Code menerapkan sebagian besar pembaruan pengaturan ke sesi yang sedang berjalan tanpa perlu memulai ulang. Beberapa pembaruan hanya berlaku pada peluncuran berikutnya, termasuk konfigurasi exporter OpenTelemetry, key `model`, dan penghapusan variabel dari blok `env`.

219 219 

220<h3 id="invalid-entries-in-delivered-settings">220<h3 id="invalid-entries-in-delivered-settings">

221 Entri tidak valid dalam pengaturan yang dikirimkan221 Entri tidak valid dalam pengaturan yang dikirim

222</h3>222</h3>

223 223 

224Ketika bagian dari payload gagal validasi skema, Claude Code menampilkan kesalahan validasi dan menerapkan setiap pengaturan yang valid yang tersisa; [Entri tidak valid dalam pengaturan terkelola](/docs/id/managed-settings#invalid-entries-in-managed-settings) mengatakan apa yang dihapusnya dan kunci mana yang kembali ke nilai yang lebih ketat. Memerlukan Claude Code v2.1.169 atau lebih baru.224Ketika sebagian payload gagal dalam validasi skema, Claude Code menampilkan kesalahan validasi dan menerapkan setiap pengaturan valid yang tersisa; [Entri tidak valid dalam pengaturan terkelola](/docs/id/managed-settings#invalid-entries-in-managed-settings) menjelaskan apa yang dibuang dan key mana yang beralih ke nilai yang lebih ketat. Memerlukan Claude Code v2.1.169 atau yang lebih baru.

225 225 

226Pengiriman yang dikelola server menambahkan perilaku ini:226Pengiriman yang dikelola server menambahkan perilaku berikut:

227 227 

228* Startup yang berjalan pada cache di `~/.claude/remote-settings.json` memperlakukan entri tidak valid dengan cara yang dilakukan pengambilan yang menulis cache:228* Startup yang berjalan menggunakan cache di `~/.claude/remote-settings.json` memperlakukan entri tidak valid dengan cara yang sama seperti pengambilan yang menulis cache tersebut:

229 * Entri yang gagal validasi tetap dihapus.229 * Entri yang gagal validasi tetap dibuang.

230 * [Kunci yang gagal tertutup](/docs/id/managed-settings#keys-that-fail-closed) menyimpan nilai yang lebih ketat.230 * [Key yang fail closed](/docs/id/managed-settings#keys-that-fail-closed) mempertahankan nilai yang lebih ketat.

231 * Nilai `cleanupPeriodDays` atau `desktopSessionCleanupPeriodDays` yang tidak valid tetap dalam salinan yang di-cache dan tidak pernah diterapkan.231 * Nilai `cleanupPeriodDays` atau `desktopSessionCleanupPeriodDays` yang tidak valid tetap berada dalam salinan yang di-cache dan tidak pernah diterapkan.

232* Claude Code tidak menerapkan apa pun dari payload dan membiarkan cache tidak berubah ketika ketiga hal ini semuanya benar:232* Claude Code tidak menerapkan apa pun dari payload dan membiarkan cache tidak berubah ketika ketiga kondisi berikut terpenuhi:

233 233 

234 * Setiap pengaturan dalam payload gagal validasi.234 * Setiap pengaturan dalam payload gagal validasi.

235 * Tidak ada satupun dari mereka yang kembali ke nilai yang lebih ketat.235 * Tidak satu pun di antaranya beralih ke nilai yang lebih ketat.

236 * Payload menyimpan kunci selain dua kunci retensi tersebut.236 * Payload berisi key selain kedua key retensi tersebut.

237 237 

238 Pemberitahuan startup, `/status`, dan `claude doctor` kemudian melaporkan [beban gagal](/docs/id/errors#remote-managed-settings-failed-to-load) dengan penyebab `no setting in the server response could be applied as written`, dan entri tersebut mengatakan kebijakan mana yang dijalankan sesi. Klien yang [memberlakukan startup tertutup gagal](#enforce-fail-closed-startup) keluar pada startup sebagai gantinya.238 Pemberitahuan startup, `/status`, dan `claude doctor` kemudian melaporkan [kegagalan pemuatan](/docs/id/errors#remote-managed-settings-failed-to-load) dengan penyebab `no setting in the server response could be applied as written`, dan entri tersebut menjelaskan kebijakan mana yang digunakan sesi. Klien yang [menerapkan startup fail-closed](#enforce-fail-closed-startup) akan keluar saat startup.

239* [Dialog persetujuan keamanan](#security-approval-dialogs) mengevaluasi payload yang diselamatkan, jadi entri tidak valid yang dilucuti tidak pernah disajikan untuk persetujuan dan tidak pernah dieksekusi.239* [Dialog persetujuan keamanan](#security-approval-dialogs) mengevaluasi payload yang telah diselamatkan, sehingga entri tidak valid yang dihapus tidak pernah ditampilkan untuk persetujuan dan tidak pernah dieksekusi.

240 240 

241Untuk men-debug masalah pengiriman, jalankan `claude --debug-file <path>` dan cari log untuk `Remote settings`. Validasi perubahan payload dengan `claude doctor` pada mesin uji sebelum meluncurkannya ke organisasi.241Untuk men-debug masalah pengiriman, jalankan `claude --debug-file <path>` dan cari `Remote settings` di log. Validasi perubahan payload dengan `claude doctor` pada mesin uji sebelum meluncurkannya ke organisasi.

242 242 

243<h3 id="enforce-fail-closed-startup">243<h3 id="enforce-fail-closed-startup">

244 Paksakan startup yang tertutup gagal244 Menerapkan startup fail-closed

245</h3>245</h3>

246 246 

247Secara default, jika pengambilan pengaturan jarak jauh gagal pada startup, CLI melanjutkan dengan pengaturan yang di-cache dari pengambilan terakhir yang berhasil, kecuali untuk [nilai yang Claude Code tahan](#fetch-and-caching-behavior) sampai pengambilan berhasil. Pada mesin yang tidak pernah mengambilnya, CLI melanjutkan tanpa pengaturan yang dikelola server dan masih menerapkan [pengaturan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) apa pun di perangkat.247Secara default, jika pengambilan pengaturan jarak jauh gagal saat startup, CLI melanjutkan dengan pengaturan yang di-cache dari pengambilan terakhir yang berhasil, kecuali [nilai yang ditahan Claude Code](#fetch-and-caching-behavior) hingga pengambilan berhasil. Pada mesin yang belum pernah mengambilnya, CLI melanjutkan tanpa pengaturan yang dikelola server dan tetap menerapkan [pengaturan yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) apa pun di perangkat.

248 248 

249Untuk menghentikan klien agar tidak memulai pada pengaturan yang dikelola server yang di-cache atau tidak ada, atur `forceRemoteSettingsRefresh: true` dalam pengaturan terkelola Anda.249Untuk mencegah klien memulai dengan pengaturan yang dikelola server yang di-cache atau tidak ada, tetapkan `forceRemoteSettingsRefresh: true` dalam pengaturan terkelola Anda.

250 250 

251Klien yang masuk melalui [gateway aplikasi Claude](#platform-availability) menunggu pengambilan startup apakah atau tidak Anda mengatur ini, dan menangani pengambilan yang gagal sebagai berikut:251Klien yang masuk melalui [Claude apps gateway](#platform-availability) menunggu pengambilan saat startup terlepas dari apakah Anda menetapkan ini atau tidak, dan menangani pengambilan yang gagal sebagai berikut:

252 252 

253* Jika gateway menjawab peluncuran interaktif yang dihadiri dengan `401` dan pengaturan ini mati, gateway telah mengakhiri masuk tersebut. Claude Code mencetak [`Cloud gateway session expired — run /login to reconnect.`](/docs/id/errors#cloud-gateway-session-expired) dan membuka sesi yang keluar dari gateway sampai pengguna menjalankan `/login`.253* Jika gateway menjawab peluncuran interaktif yang diawasi dengan `401` dan pengaturan ini nonaktif, gateway telah mengakhiri proses masuk tersebut. Claude Code mencetak [`Cloud gateway session expired — run /login to reconnect.`](/docs/id/errors#cloud-gateway-session-expired) dan membuka sesi dalam keadaan keluar dari gateway hingga pengguna menjalankan `/login`.

254* Ketika pengambilan gagal dengan cara lain, atau dalam jenis peluncuran lain apa pun kecuali subperintah `claude auth`, klien keluar dengan kesalahan.254* Ketika pengambilan gagal dengan cara lain, atau pada jenis peluncuran lainnya kecuali subperintah `claude auth`, klien keluar dengan kesalahan.

255 255 

256Ketika pengaturan ini aktif dalam sesi yang mengambil pengaturan yang dikelola server, CLI memblokir pada startup sampai pengaturan jarak jauh diambil segar. Jika pengambilan gagal, CLI keluar daripada melanjutkan tanpa kebijakan. Pengaturan ini memperpanjang dirinya sendiri: setelah dikirimkan dari server, pengaturan ini juga di-cache secara lokal sehingga startup berikutnya memberlakukan perilaku yang sama bahkan sebelum pengambilan pertama yang berhasil dari sesi baru. Sesi yang [tidak mengambil pengaturan yang dikelola server](#platform-availability) dimulai tanpa menunggu.256Ketika pengaturan ini aktif dalam sesi yang mengambil pengaturan yang dikelola server, CLI memblokir saat startup hingga pengaturan jarak jauh berhasil diambil ulang. Jika pengambilan gagal, CLI keluar alih-alih melanjutkan tanpa kebijakan. Pengaturan ini melanggengkan dirinya sendiri: setelah dikirim dari server, pengaturan ini juga di-cache secara lokal sehingga startup berikutnya menerapkan perilaku yang sama bahkan sebelum pengambilan pertama yang berhasil pada sesi baru. Sesi yang [tidak mengambil pengaturan yang dikelola server](#platform-availability) dimulai tanpa menunggu.

257 257 

258Untuk mengaktifkan ini, tambahkan kunci ke konfigurasi pengaturan terkelola Anda:258Untuk mengaktifkannya, tambahkan key tersebut ke konfigurasi pengaturan terkelola Anda:

259 259 

260```json theme={null}260```json theme={null}

261{261{


263}263}

264```264```

265 265 

266Anda juga dapat mengatur kunci ini dalam profil MDM yang [dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) atau file `managed-settings.json` sistem untuk memberlakukan perilaku tertutup gagal pada peluncuran pertama, sebelum payload server apa pun telah dikirimkan. Flag ini adalah pengecualian terhadap [aturan prioritas](#settings-precedence) di atas: Claude Code menghormatinya ketika diatur dalam sumber terkelola yang dikendalikan admin apa pun, bahkan jika payload yang dikelola server yang di-cache juga ada, jadi nilai yang dikirimkan MDM tidak diabaikan ketika pengaturan yang dikelola server ada.266Anda juga dapat menetapkan key ini dalam profil MDM [yang dikelola endpoint](/docs/id/managed-settings#delivery-mechanisms) atau file `managed-settings.json` sistem untuk menerapkan perilaku fail-closed pada peluncuran pertama, sebelum payload server apa pun tiba. Flag ini merupakan pengecualian terhadap [aturan prioritas](#settings-precedence) di atas: Claude Code mematuhinya ketika sumber terkelola mana pun yang dikendalikan admin menetapkannya, bahkan jika payload yang dikelola server dan di-cache juga ada, sehingga Claude Code tidak mengabaikan nilai yang dikirim MDM ketika pengaturan yang dikelola server ada.

267 267 

268Ketika [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan pengaturan terkelola, outputnya menggantikan setiap sumber terkelola lainnya untuk kunci yang Claude Code baca setelah startup. Untuk sumber yang Claude Code baca kunci ini dari, lihat [entri pengaturannya](/docs/id/settings-reference#forceremotesettingsrefresh). Entri `policyHelper` mengatakan sumber mana Claude Code membaca helper dari dan kapan itu berjalan.268Ketika [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan pengaturan terkelola, output-nya menggantikan setiap sumber terkelola lainnya untuk key yang dibaca Claude Code setelah startup. Untuk sumber tempat Claude Code membaca key ini, lihat [entri pengaturannya](/docs/id/settings-reference#forceremotesettingsrefresh). Entri `policyHelper` menjelaskan dari sumber mana Claude Code membaca helper dan kapan helper dijalankan.

269 269 

270Pengambilan pengaturan juga mengirimkan header `Cache-Control: no-cache` sehingga proxy HTTP perantara tidak melayani respons yang sudah usang.270Pengambilan pengaturan juga mengirimkan header `Cache-Control: no-cache` agar proxy HTTP perantara tidak menyajikan respons yang kedaluwarsa.

271 271 

272Sebelum mengaktifkan pengaturan ini, pastikan kebijakan jaringan Anda memungkinkan konektivitas ke `api.anthropic.com`. Jika endpoint tersebut tidak dapat dijangkau, CLI keluar pada startup dan pengguna tidak dapat memulai Claude Code.272Sebelum mengaktifkan pengaturan ini, pastikan kebijakan jaringan Anda mengizinkan konektivitas ke `api.anthropic.com`. Jika endpoint tersebut tidak dapat dijangkau, CLI keluar saat startup dan pengguna tidak dapat memulai Claude Code.

273 273 

274Subperintah `claude auth` seperti `claude auth login` dikecualikan dari pemeriksaan ini dan dari keluar startup gateway, sehingga pengguna dapat melakukan autentikasi ulang ketika kredensial yang kedaluwarsa adalah alasan pengambilan pengaturan gagal.274Subperintah `claude auth` seperti `claude auth login` dikecualikan dari pemeriksaan ini dan dari keluarnya startup gateway, sehingga pengguna dapat mengautentikasi ulang ketika kredensial yang kedaluwarsa menjadi penyebab kegagalan pengambilan pengaturan.

275 275 

276<h3 id="security-approval-dialogs">276<h3 id="security-approval-dialogs">

277 Dialog persetujuan keamanan277 Dialog persetujuan keamanan

278</h3>278</h3>

279 279 

280Pengaturan tertentu yang dapat menimbulkan risiko keamanan memerlukan persetujuan pengguna eksplisit sebelum Claude Code menerapkannya dalam sesi interaktif:280Pengaturan tertentu yang dapat menimbulkan risiko keamanan memerlukan persetujuan eksplisit dari pengguna sebelum Claude Code menerapkannya dalam sesi interaktif:

281 281 

282* **Pengaturan perintah shell**: pengaturan yang menjalankan perintah shell, seperti `apiKeyHelper`, `statusLine`, dan `otelHeadersHelper`282* **Pengaturan perintah shell**: pengaturan yang mengeksekusi perintah shell, seperti `apiKeyHelper`, `statusLine`, dan `otelHeadersHelper`

283* **Pengaturan biner sandbox**: `sandbox.bwrapPath`, `sandbox.socatPath`, dan `sandbox.ripgrep`. Masing-masing pengaturan ini menunjuk pada executable, dan Claude Code menjalankan executable tersebut283* **Pengaturan biner sandbox**: `sandbox.bwrapPath`, `sandbox.socatPath`, dan `sandbox.ripgrep`. Masing-masing pengaturan ini menunjuk ke sebuah executable, dan Claude Code menjalankan executable tersebut

284* **Pengaturan jaringan dan isolasi sandbox**: pengaturan [sandbox](/docs/id/sandboxing) yang memungkinkan proxy sandbox membaca, mengarahkan ulang, atau mengautentikasi lalu lintas, atau yang melemahkan isolasi sandbox: `sandbox.network.tlsTerminate`, `sandbox.network.httpProxyPort`, `sandbox.network.socksProxyPort`, `sandbox.credentials`, `sandbox.allowAppleEvents`, `sandbox.enableWeakerNestedSandbox`, `sandbox.enableWeakerNetworkIsolation`, `sandbox.filesystem.disabled`, `sandbox.network.allowAllUnixSockets`, `sandbox.network.allowUnixSockets`, dan `sandbox.network.allowMachLookup`. Blok `sandbox.credentials` yang hanya berisi aturan `deny` tidak memerlukan persetujuan, karena membatasi sandbox tanpa memberikan proxy kredensial. Sebelum v2.1.251, Claude Code menerapkan pengaturan ini tanpa persetujuan284* **Pengaturan jaringan dan isolasi sandbox**: pengaturan [sandbox](/docs/id/sandboxing) yang memungkinkan proxy sandbox membaca, mengalihkan, atau mengautentikasi lalu lintas, atau yang melemahkan isolasi sandbox: `sandbox.network.tlsTerminate`, `sandbox.network.httpProxyPort`, `sandbox.network.socksProxyPort`, `sandbox.credentials`, `sandbox.allowAppleEvents`, `sandbox.enableWeakerNestedSandbox`, `sandbox.enableWeakerNetworkIsolation`, `sandbox.filesystem.disabled`, `sandbox.network.allowAllUnixSockets`, `sandbox.network.allowUnixSockets`, dan `sandbox.network.allowMachLookup`. Blok `sandbox.credentials` yang hanya berisi aturan `deny` tidak memerlukan persetujuan, karena blok tersebut membatasi sandbox tanpa memberikan kredensial kepada proxy. Sebelum v2.1.251, Claude Code menerapkan pengaturan ini tanpa persetujuan

285* **Variabel lingkungan kustom**: variabel `env` yang dikirimkan yang memerlukan persetujuan pengguna, seperti proxy dan variabel URL dasar; lihat [Variabel lingkungan dan dialog persetujuan](#environment-variables-and-the-approval-dialog)285* **Environment variable kustom**: variabel `env` yang dikirim dan memerlukan persetujuan pengguna, seperti variabel proxy dan base-URL; lihat [Environment variable dan dialog persetujuan](#environment-variables-and-the-approval-dialog)

286* **Konfigurasi hook**: definisi hook apa pun286* **Konfigurasi hook**: definisi hook apa pun

287 287 

288Ketika pengaturan ini ada, pengguna melihat dialog keamanan yang menjelaskan apa yang sedang dikonfigurasi. Pengguna harus menyetujui untuk melanjutkan. Jika pengguna menolak pengaturan, Claude Code keluar.288Ketika pengaturan ini ada, pengguna melihat dialog keamanan yang menjelaskan apa yang sedang dikonfigurasi. Pengguna harus menyetujui untuk melanjutkan. Jika pengguna menolak pengaturan tersebut, Claude Code akan keluar.

289 289 

290CLAUDE.md yang dikelola yang dikirimkan melalui kunci [`claudeMd`](/docs/id/settings-reference#claudemd) tidak memerlukan persetujuan, karena itu adalah teks instruksi untuk Claude daripada perintah yang Claude Code jalankan. Claude Code masih memeriksa [izin](/docs/id/permissions) untuk alat yang Claude gunakan saat mengikuti instruksi tersebut. Sebelum v2.1.260, nilai `claudeMd` memerlukan persetujuan juga.290CLAUDE.md terkelola yang dikirim melalui key [`claudeMd`](/docs/id/settings-reference#claudemd) tidak memerlukan persetujuan, karena berupa teks instruksi untuk Claude, bukan perintah yang dijalankan Claude Code. Claude Code tetap memeriksa [izin](/docs/id/permissions) untuk tool yang digunakan Claude saat mengikuti instruksi tersebut. Sebelum v2.1.260, nilai `claudeMd` juga memerlukan persetujuan.

291 291 

292<h4 id="approval-memory">292<h4 id="approval-memory">

293 Memori persetujuan293 Memori persetujuan

294</h4>294</h4>

295 295 

296Claude Code mencatat persetujuan Anda di direktori konfigurasi Anda, `~/.claude` kecuali Anda mengatur [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars). Apa yang dicatat tergantung pada kredensial yang digunakan pengambilan pengaturan:296Claude Code mencatat persetujuan Anda di direktori konfigurasi Anda, yaitu `~/.claude` kecuali Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars). Apa yang dicatat bergantung pada kredensial yang digunakan oleh pengambilan pengaturan:

297 297 

298* **Login claude.ai yang disimpan oleh `/login` atau `claude auth login`, atau [masuk Console tanpa kunci](/docs/id/authentication#sign-in-without-an-api-key)**: satu persetujuan per organisasi, dipegang oleh akun yang menyetujui paling baru.298* **Login claude.ai yang disimpan oleh `/login` atau `claude auth login`, atau [proses masuk Console tanpa kunci](/docs/id/authentication#sign-in-without-an-api-key)**: satu persetujuan per organisasi, dipegang oleh akun yang terakhir menyetujuinya.

299* **Masuk [gateway aplikasi Claude](/docs/id/claude-apps-gateway)**: satu persetujuan per gateway.299* **Proses masuk [Claude apps gateway](/docs/id/claude-apps-gateway)**: satu persetujuan per gateway.

300 300 

301 Jika Anda keluar dan masuk kembali ke gateway yang sama, Claude Code tidak menampilkan dialog lagi saat pengaturan yang memerlukan persetujuan tidak berubah. Claude Code menampilkannya lagi ketika pengaturan tersebut berubah, ketika Anda masuk ke gateway yang berbeda, dan ketika Anda menerima sertifikat baru untuk gateway yang sama.301 Jika Anda keluar lalu masuk kembali ke gateway yang sama, Claude Code tidak menampilkan dialog lagi selama pengaturan yang memerlukan persetujuan tidak berubah. Claude Code menampilkannya lagi ketika pengaturan tersebut berubah, ketika Anda masuk ke gateway yang berbeda, dan ketika Anda menerima sertifikat baru untuk gateway yang sama.

302 302 

303 Claude Code tidak menyimpan persetujuan untuk gateway pengembangan loopback yang dicapai melalui HTTP biasa, jadi dialog muncul lagi setelah setiap masuk.303 Claude Code tidak menyimpan persetujuan untuk gateway pengembangan loopback yang dijangkau melalui HTTP biasa, sehingga dialog muncul lagi setelah setiap proses masuk.

304* **Kredensial lainnya**, seperti kunci API atau `CLAUDE_CODE_OAUTH_TOKEN`: satu persetujuan untuk pengaturan yang dikirimkan, disimpan dengan salinan yang di-cache dari pengaturan di direktori konfigurasi tersebut. Claude Code menampilkan dialog lagi ketika pengaturan yang memerlukan persetujuan berubah, dan setelah Anda menjalankan `/logout` atau `claude auth logout`, salah satu dari keduanya menghapus salinan yang di-cache.304* **Kredensial lainnya**, seperti kunci API atau `CLAUDE_CODE_OAUTH_TOKEN`: satu persetujuan untuk pengaturan yang dikirim, disimpan bersama salinan pengaturan yang di-cache di direktori konfigurasi tersebut. Claude Code menampilkan dialog lagi ketika pengaturan yang memerlukan persetujuan berubah, dan setelah Anda menjalankan `/logout` atau `claude auth logout`, yang masing-masing menghapus salinan yang di-cache.

305 305 

306Persetujuan untuk `sandbox.credentials` atau `sandbox.network.tlsTerminate` juga mencakup entri [`sandbox.network.allowedDomains`](/docs/id/settings-reference#sandbox-network-alloweddomains) dalam pengaturan yang dikirimkan yang sama, karena kedua pengaturan bertindak pada daftar izin tersebut. Dialog muncul lagi ketika administrator Anda menambah atau menghapus salah satu entri tersebut, meskipun `sandbox.network.allowedDomains` tidak memerlukan persetujuan dengan sendirinya.306Persetujuan untuk `sandbox.credentials` atau `sandbox.network.tlsTerminate` juga mencakup entri [`sandbox.network.allowedDomains`](/docs/id/settings-reference#sandbox-network-alloweddomains) dalam pengaturan yang dikirim yang sama, karena kedua pengaturan tersebut bekerja pada allowlist tersebut. Dialog muncul lagi ketika administrator Anda menambahkan atau menghapus salah satu entri tersebut, meskipun `sandbox.network.allowedDomains` sendiri tidak memerlukan persetujuan.

307 307 

308Dengan login claude.ai yang disimpan:308Dengan login claude.ai yang tersimpan:

309 309 

310* Jika Anda keluar dan masuk kembali, atau beralih ke organisasi lain dan kemudian kembali, Claude Code tidak menampilkan dialog lagi saat pengaturan tersebut tidak berubah, kecuali akun lain menyetujuinya untuk organisasi tersebut di direktori konfigurasi yang sama di antara.310* Jika Anda keluar lalu masuk kembali, atau beralih ke organisasi lain lalu kembali, Claude Code tidak menampilkan dialog lagi selama pengaturan tersebut tidak berubah, kecuali akun lain menyetujuinya untuk organisasi tersebut di direktori konfigurasi yang sama di antara waktu tersebut.

311* Jika Anda masuk ke organisasi yang sama dengan akun yang berbeda, Claude Code menampilkan dialog lagi bahkan ketika pengaturan tidak berubah. Persetujuan akun tersebut menggantikan yang sebelumnya, jadi ketika Anda beralih kembali, Claude Code menampilkan dialog sekali lagi.311* Jika Anda masuk ke organisasi yang sama dengan akun yang berbeda, Claude Code menampilkan dialog lagi meskipun pengaturannya tidak berubah. Persetujuan akun tersebut menggantikan persetujuan sebelumnya, sehingga ketika Anda beralih kembali, Claude Code menampilkan dialog sekali lagi.

312 312 

313Claude Code tidak selalu dapat menampilkan dialog. Setiap kasus di bawah mengatakan pengaturan mana yang berlaku ketika tidak dapat dan kapan Anda berikutnya melihat dialog:313Claude Code tidak selalu dapat menampilkan dialog. Setiap kasus di bawah menjelaskan pengaturan mana yang berlaku ketika dialog tidak dapat ditampilkan dan kapan Anda akan melihat dialog berikutnya:

314 314 

315* **Sesi interaktif yang tidak dapat menampilkan dialog**: Claude Code tidak menerapkan pengaturan yang dikirimkan dan menyimpan pengaturan yang terakhir disetujui. Dialog muncul dalam sesi berikutnya yang dapat menampilkannya. Memerlukan Claude Code v2.1.211 atau lebih baru.315* **Sesi interaktif yang tidak dapat menampilkan dialog**: Claude Code tidak menerapkan pengaturan yang dikirim dan mempertahankan pengaturan yang terakhir disetujui. Dialog muncul di sesi berikutnya yang dapat menampilkannya.

316* **`claude install` atau `claude update`**: Claude Code tidak menampilkan dialog selama perintah apa pun. Perintah berjalan dengan pengaturan yang terakhir disetujui, dan dialog muncul dalam sesi interaktif Anda berikutnya. Jika Claude Code menunggu pengambilan pengaturan pada startup, seperti dengan [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) diatur atau pada penyebaran [gateway aplikasi Claude](/docs/id/claude-apps-gateway), itu menampilkan dialog selama perintah sebagai gantinya, dan jalankan install dari pipa gagal; lihat [`Raw mode is not supported` during install](/docs/id/troubleshoot-install#raw-mode-is-not-supported-during-install). Sebelum v2.1.246, Claude Code mencoba menampilkan dialog selama perintah ini juga.316* **`claude install` atau `claude update`**: Claude Code tidak menampilkan dialog selama kedua perintah tersebut. Perintah berjalan dengan pengaturan yang terakhir disetujui, dan dialog muncul di sesi interaktif Anda berikutnya. Jika Claude Code menunggu pengambilan pengaturan saat startup, seperti ketika [`forceRemoteSettingsRefresh`](#enforce-fail-closed-startup) ditetapkan atau pada deployment [Claude apps gateway](/docs/id/claude-apps-gateway), Claude Code menampilkan dialog selama perintah tersebut, dan instalasi yang dijalankan dari pipe akan gagal; lihat [`Raw mode is not supported` selama instalasi](/docs/id/troubleshoot-install#raw-mode-is-not-supported-during-install). Sebelum v2.1.246, Claude Code juga mencoba menampilkan dialog selama perintah-perintah ini.

317* **Kesalahan menutup dialog sebelum Anda menjawab**: Claude Code tidak menerapkan pengaturan yang dikirimkan dan menyimpan pengaturan yang terakhir disetujui. Itu menampilkan dialog lagi dalam sesi berikutnya yang dapat menampilkannya.317* **Kesalahan menutup dialog sebelum Anda menjawab**: Claude Code tidak menerapkan pengaturan yang dikirim dan mempertahankan pengaturan yang terakhir disetujui. Claude Code menampilkan dialog lagi di sesi berikutnya yang dapat menampilkannya.

318* **Jalankan non-interaktif**, seperti `claude -p`, sesi Agent SDK, atau sesi di panel chat ekstensi VS Code atau tab Code aplikasi desktop: Claude Code tidak dapat menampilkan dialog, jadi ketika pengaturan yang dikirimkan memerlukan persetujuan, itu menerapkannya hanya untuk jalankan itu. Itu tidak merekamnya sebagai disetujui atau menulisnya ke [cache lokal](#fetch-and-caching-behavior), dan sesi interaktif berikutnya menampilkan dialog. Sampai pengguna menyetujui dalam sesi interaktif, setiap jalankan non-interaktif mengambil pengaturan lagi pada startup. Sebelum v2.1.207, jalankan non-interaktif menyimpan pengaturan sebagai disetujui, jadi sesi interaktif kemudian tidak pernah menampilkan dialog untuk mereka.318* **Eksekusi non-interaktif**, seperti `claude -p`, sesi Agent SDK, atau sesi di panel chat ekstensi VS Code atau tab Code aplikasi desktop: Claude Code tidak dapat menampilkan dialog, sehingga ketika pengaturan yang dikirim memerlukan persetujuan, Claude Code menerapkannya hanya untuk eksekusi tersebut. Claude Code tidak mencatatnya sebagai disetujui atau menuliskannya ke [cache lokal](#fetch-and-caching-behavior), dan sesi interaktif berikutnya menampilkan dialog. Hingga pengguna menyetujui dalam sesi interaktif, setiap eksekusi non-interaktif mengambil pengaturan lagi saat startup. Sebelum v2.1.207, eksekusi non-interaktif menyimpan pengaturan sebagai disetujui, sehingga sesi interaktif berikutnya tidak pernah menampilkan dialog untuk pengaturan tersebut.

319 319 

320<h4 id="environment-variables-and-the-approval-dialog">320<h4 id="environment-variables-and-the-approval-dialog">

321 Variabel lingkungan dan dialog persetujuan321 Environment variable dan dialog persetujuan

322</h4>322</h4>

323 323 

324Claude Code menerapkan beberapa variabel `env` yang dikirimkan tanpa menampilkan dialog persetujuan pengguna, termasuk:324Claude Code menerapkan beberapa variabel `env` yang dikirim tanpa menampilkan dialog persetujuan kepada pengguna, termasuk:

325 325 

326* Pengalihan fitur dan perintah326* Toggle fitur dan perintah

327* Pemilihan model dan pengaturan perilaku, seperti `ANTHROPIC_MODEL`, `DISABLE_PROMPT_CACHING`, dan `CLAUDE_CODE_EFFORT_LEVEL`327* Pengaturan pemilihan dan perilaku model, seperti `ANTHROPIC_MODEL`, `DISABLE_PROMPT_CACHING`, dan `CLAUDE_CODE_EFFORT_LEVEL`

328* Jendela konteks dan pengaturan pemadatan, seperti `DISABLE_AUTO_COMPACT`328* Pengaturan context window dan compaction, seperti `DISABLE_AUTO_COMPACT`

329* Opsi UI terminal dan aksesibilitas329* Opsi UI terminal dan aksesibilitas

330* Batas numerik, anggaran, dan waktu tunggu330* Batas numerik, anggaran, dan timeout

331 331 

332Variabel yang dikirimkan lainnya dapat memerlukan persetujuan pengguna sebelum berlaku; nilai proxy, URL dasar, atau `OTEL_EXPORTER_OTLP_ENDPOINT` yang tidak kosong selalu demikian. Ketika variabel yang dikirimkan memerlukan persetujuan, dialog menamakannya, sehingga pengguna melihat dengan tepat apa yang diminta kebijakan untuk diatur. Sebelum v2.1.218, Claude Code menerapkan lebih sedikit variabel tanpa bertanya kepada pengguna, jadi pengaturan seperti `DISABLE_AUTO_COMPACT` memicu dialog pada nilai apa pun yang tidak kosong.332Variabel lain yang dikirim dapat memerlukan persetujuan pengguna sebelum berlaku; nilai proxy, base-URL, atau `OTEL_EXPORTER_OTLP_ENDPOINT` yang tidak kosong selalu memerlukannya. Ketika variabel yang dikirim memerlukan persetujuan, dialog menyebutkan namanya, sehingga pengguna melihat dengan tepat apa yang diminta kebijakan untuk ditetapkan. Sebelum v2.1.218, Claude Code menerapkan lebih sedikit variabel tanpa meminta pengguna, sehingga pengaturan seperti `DISABLE_AUTO_COMPACT` memicu dialog pada nilai tidak kosong apa pun.

333 333 

334Claude Code memutuskan apakah empat toggle privasi memerlukan persetujuan berdasarkan nilai yang dikirimkan daripada nama variabel: `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_ERROR_REPORTING`, `DISABLE_TELEMETRY`, dan `DO_NOT_TRACK`. Nilai yang benar seperti `1` atau `true` hanya mematikan pelacakan, pelaporan, atau lalu lintas nonessential lainnya, jadi Claude Code menerapkannya tanpa bertanya kepada pengguna. Untuk nilai apa pun yang tidak kosong lainnya, Claude Code menampilkan dialog. Sebelum v2.1.218, semua kecuali `DO_NOT_TRACK` diterapkan tanpa persetujuan pada nilai apa pun, dan `DO_NOT_TRACK` memicu dialog pada nilai apa pun yang tidak kosong.334Claude Code menentukan apakah empat toggle privasi memerlukan persetujuan berdasarkan nilai yang dikirim, bukan berdasarkan nama variabel: `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, `DISABLE_ERROR_REPORTING`, `DISABLE_TELEMETRY`, dan `DO_NOT_TRACK`. Nilai truthy seperti `1` atau `true` hanya mematikan pelacakan, pelaporan, atau lalu lintas nonesensial lainnya, sehingga Claude Code menerapkannya tanpa meminta pengguna. Untuk nilai tidak kosong lainnya, Claude Code menampilkan dialog. Sebelum v2.1.218, semuanya kecuali `DO_NOT_TRACK` berlaku tanpa persetujuan pada nilai apa pun, dan `DO_NOT_TRACK` memicu dialog pada nilai tidak kosong apa pun.

335 335 

336Claude Code juga memutuskan apakah [`API_FORCE_IDLE_TIMEOUT`](/docs/id/env-vars) memerlukan persetujuan berdasarkan nilai yang dikirimkan: nilai yang benar hanya mengaktifkan [body idle timeout](/docs/id/network-config#streaming-idle-watchdogs), jadi Claude Code menerapkannya tanpa bertanya kepada pengguna. Untuk nilai apa pun yang tidak kosong lainnya, Claude Code menampilkan dialog. Sebelum v2.1.248, nilai apa pun yang tidak kosong memicu dialog.336Claude Code juga menentukan apakah [`API_FORCE_IDLE_TIMEOUT`](/docs/id/env-vars) memerlukan persetujuan berdasarkan nilai yang dikirim: nilai truthy hanya mengaktifkan [body idle timeout](/docs/id/network-config#streaming-idle-watchdogs), sehingga Claude Code menerapkannya tanpa meminta pengguna. Untuk nilai tidak kosong lainnya, Claude Code menampilkan dialog. Sebelum v2.1.248, nilai tidak kosong apa pun memicu dialog.

337 337 

338Apakah [`ANTHROPIC_CUSTOM_HEADERS`](/docs/id/env-vars#variables) memerlukan persetujuan juga tergantung pada nilai yang dikirimkan. Header yang hanya menandai permintaan, seperti `Accept-Language`, diterapkan tanpa dialog. Baris yang menamai kredensial, pemilih org atau tenant, penggantian routing atau host, atau header perilaku API, seperti `Authorization`, `X-Api-Key`, `Host`, `anthropic-beta`, atau header `X-Amzn-Bedrock-*`, memerlukan persetujuan. Demikian juga baris yang namanya bukan token header HTTP yang valid, atau yang nilainya berisi karakter yang header HTTP tidak dapat bawa. Pemeriksaan mencocokkan kata di dalam nama header, jadi `X-Client-Version`, yang berisi `client` dan `version`, memerlukan persetujuan juga. Sebelum v2.1.251, nilai `ANTHROPIC_CUSTOM_HEADERS` apa pun diterapkan tanpa itu.338Apakah [`ANTHROPIC_CUSTOM_HEADERS`](/docs/id/env-vars#variables) memerlukan persetujuan juga bergantung pada nilai yang dikirim. Header yang hanya menandai permintaan, seperti `Accept-Language`, berlaku tanpa dialog. Baris yang menyebutkan kredensial, pemilih org atau tenant, override routing atau host, atau header perilaku API, seperti `Authorization`, `X-Api-Key`, `Host`, `anthropic-beta`, atau header `X-Amzn-Bedrock-*`, memerlukan persetujuan. Sebuah baris juga memerlukan persetujuan ketika namanya bukan token header HTTP yang valid atau nilainya berisi karakter yang tidak dapat dibawa oleh header HTTP. Pemeriksaan ini mencocokkan kata-kata di dalam nama header, sehingga `X-Client-Version`, yang mengandung `client` dan `version`, juga memerlukan persetujuan. Sebelum v2.1.251, nilai `ANTHROPIC_CUSTOM_HEADERS` apa pun berlaku tanpa persetujuan.

339 339 

340Nilai falsy seperti `0` atau `false` untuk [`ENABLE_BETA_TRACING_DETAILED`](/docs/id/env-vars#variables) atau [`OTEL_LOG_RAW_API_BODIES`](/docs/id/env-vars#variables) diterapkan tanpa dialog, karena hanya mematikan tracing terperinci atau penangkapan badan API mentah. Nilai apa pun yang tidak kosong lainnya untuk variabel apa pun memerlukan persetujuan.340Nilai falsy seperti `0` atau `false` untuk [`ENABLE_BETA_TRACING_DETAILED`](/docs/id/env-vars#variables) atau [`OTEL_LOG_RAW_API_BODIES`](/docs/id/env-vars#variables) berlaku tanpa dialog, karena nilai tersebut hanya mematikan tracing terperinci atau penangkapan body API mentah. Nilai tidak kosong lainnya untuk salah satu variabel tersebut memerlukan persetujuan.

341 341 

342<h2 id="platform-availability">342<h2 id="platform-availability">

343 Ketersediaan platform343 Ketersediaan platform

sessions.md +4 −3

Details

51 51 

52Ketika Claude Code memuat percakapan dari transkrip-nya, sesi yang dilanjutkan memulihkan percakapan bersama dengan status yang disimpan di dalamnya:52Ketika Claude Code memuat percakapan dari transkrip-nya, sesi yang dilanjutkan memulihkan percakapan bersama dengan status yang disimpan di dalamnya:

53 53 

54* Riwayat percakapan: riwayat lengkap, termasuk panggilan tool dan hasil. Tool yang masih berjalan ketika proses sebelumnya berakhir, misalnya dalam kerusakan, tidak selesai atau berjalan lagi ketika Anda melanjutkan. Claude melihat panggilan yang ditandai sebagai terputus sebelum hasilnya dicatat dan diberitahu untuk memeriksa apakah itu berlaku sebelum menjalankannya lagi, kecuali [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/id/env-vars#variables) diatur.54* Riwayat percakapan: pesan, panggilan tool, dan hasil. Jika sesi telah melalui [compaction](/docs/id/context-window#what-survives-compaction), percakapan terbuka pada baris `Conversation compacted`. Claude melanjutkan dengan ringkasan compaction terakhir, pesan yang tidak diringkas oleh compaction tersebut, dan setiap pesan sejak itu. Pesan yang diringkas oleh compaction terakhir tidak dimuat lagi.

55* Panggilan tool yang terputus: tool yang masih berjalan ketika proses sebelumnya berakhir, misalnya dalam kerusakan, tidak selesai atau dijalankan ulang ketika Anda melanjutkan. Claude melihat panggilan yang ditandai sebagai terputus sebelum hasilnya dicatat dan diberitahu untuk memeriksa apakah itu berlaku sebelum menjalankannya lagi, kecuali [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/id/env-vars#variables) diatur.

55* Model: sesi berlanjut pada model yang digunakannya, kecuali dalam kasus di [Mengatur model Anda](/docs/id/model-config#setting-your-model).56* Model: sesi berlanjut pada model yang digunakannya, kecuali dalam kasus di [Mengatur model Anda](/docs/id/model-config#setting-your-model).

56* Agent: sesi yang dimulai dengan [`--agent`](/docs/id/sub-agents#invoke-subagents-explicitly) atau pengaturan `agent` berlanjut sebagai agent tersebut, mempertahankan pembatasan tool dan model-nya. Teruskan `--agent` saat melanjutkan untuk memilih yang berbeda; untuk system prompt dalam kedua kasus, lihat [Flag system prompt dalam percakapan yang dilanjutkan](/docs/id/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code mencari agent di dua tempat: direktori asli sesi, asalkan Anda telah [mempercayai workspace tersebut](/docs/id/permissions#project-allow-rules-and-workspace-trust), dan kemudian direktori tempat Anda melanjutkan, sehingga agent yang bersifat proyek masih dimuat ketika Anda melanjutkan dari direktori lain. Jika Claude Code tidak menemukan agent di salah satu tempat, sesi dilanjutkan dengan tool default dan menampilkan [peringatan yang menyebutkan agent](/docs/id/errors#session-agent-no-longer-available).57* Agent: sesi yang dimulai dengan [`--agent`](/docs/id/sub-agents#invoke-subagents-explicitly) atau pengaturan `agent` berlanjut sebagai agent tersebut, mempertahankan pembatasan tool dan model-nya. Teruskan `--agent` saat melanjutkan untuk memilih yang berbeda; untuk system prompt dalam kedua kasus, lihat [Flag system prompt dalam percakapan yang dilanjutkan](/docs/id/cli-reference#system-prompt-flags-in-resumed-conversations). Claude Code mencari agent di dua tempat: direktori asli sesi, asalkan Anda telah [mempercayai workspace tersebut](/docs/id/permissions#project-allow-rules-and-workspace-trust), dan kemudian direktori tempat Anda melanjutkan, sehingga agent yang bersifat proyek masih dimuat ketika Anda melanjutkan dari direktori lain. Jika Claude Code tidak menemukan agent di salah satu tempat, sesi dilanjutkan dengan tool default dan menampilkan [peringatan yang menyebutkan agent](/docs/id/errors#session-agent-no-longer-available).

57* Mode izin: jika Anda melanjutkan dari terminal dengan `claude --continue`, `claude --resume <session-id>`, atau `claude --resume <name>` ketika nama cocok dengan satu sesi, tanpa `-p`, Claude Code memulihkan mode izin yang ada di sesi, kecuali dalam kasus di [mode izin saat melanjutkan](#permission-mode-on-resume), yang juga mencakup pemilih sesi, `/resume`, dan melanjutkan dengan `claude -p`. Teruskan `--permission-mode` atau `--dangerously-skip-permissions` untuk menimpa mode yang dipulihkan.58* Mode izin: jika Anda melanjutkan dari terminal dengan `claude --continue`, `claude --resume <session-id>`, atau `claude --resume <name>` ketika nama cocok dengan satu sesi, tanpa `-p`, Claude Code memulihkan mode izin yang ada di sesi, kecuali dalam kasus di [mode izin saat melanjutkan](#permission-mode-on-resume), yang juga mencakup pemilih sesi, `/resume`, dan melanjutkan dengan `claude -p`. Teruskan `--permission-mode` atau `--dangerously-skip-permissions` untuk menimpa mode yang dipulihkan.


162| Dari pemilih sesi | Sorot sesi dan tekan `Ctrl+R` |163| Dari pemilih sesi | Sorot sesi dan tekan `Ctrl+R` |

163| Saat menerima plan | Menerima plan dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) memberikan sesi judul yang dihasilkan berdasarkan plan kecuali Anda telah menamainya |164| Saat menerima plan | Menerima plan dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) memberikan sesi judul yang dihasilkan berdasarkan plan kecuali Anda telah menamainya |

164| Dari claude.ai atau aplikasi Claude | Ubah nama [sesi Remote Control](/docs/id/remote-control#connect-from-another-device); Claude Code menerapkan nama yang sama di CLI. Memerlukan Claude Code v2.1.221 atau lebih baru |165| Dari claude.ai atau aplikasi Claude | Ubah nama [sesi Remote Control](/docs/id/remote-control#connect-from-another-device); Claude Code menerapkan nama yang sama di CLI. Memerlukan Claude Code v2.1.221 atau lebih baru |

165| Dari aplikasi desktop | Ubah nama sesi di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions) |166| Dari aplikasi desktop | Ubah nama sesi di [aplikasi desktop](/docs/id/desktop#organize-and-find-sessions) |

166 167 

167Setelah Anda memberi nama sesi melalui rute CLI atau dari claude.ai, kembali ke sesi tersebut dengan `claude --resume <name>` atau `/resume <name>`; sesi aplikasi desktop dilanjutkan di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions). Lihat [Resume a session](#resume-a-session) untuk mengetahui bagaimana perilaku resolusi nama di seluruh worktrees.168Setelah Anda memberi nama sesi melalui rute CLI atau dari claude.ai, kembali ke sesi tersebut dengan `claude --resume <name>` atau `/resume <name>`; sesi aplikasi desktop dilanjutkan di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions). Lihat [Resume a session](#resume-a-session) untuk mengetahui bagaimana perilaku resolusi nama di seluruh worktrees.

168 169 

169Sesi yang tidak Anda beri nama masih mendapatkan dua label yang ditetapkan Claude Code. Hanya judul yang dihasilkan yang berfungsi sebagai handle resume:170Sesi yang tidak Anda beri nama masih mendapatkan dua label yang ditetapkan Claude Code. Hanya judul yang dihasilkan yang berfungsi sebagai handle resume:

170 171 

171* Nama tampilan default: sesi interaktif yang tidak pernah Anda beri nama masih mendapatkan nama tampilan default saat dimulai. Memerlukan Claude Code v2.1.196 atau lebih baru. Default menggabungkan nama direktori kerja dengan akhiran dua karakter, misalnya `my-app-3f`, dan mengidentifikasi sesi dalam daftar sesi yang berjalan, seperti [agent view](/docs/id/agent-view) dan output `claude agents --json`. Default bukan handle resume. Jika Anda meneruskannya ke `claude --resume` atau `/resume`, Claude Code tidak menemukan sesi.172* Nama tampilan default: sesi interaktif yang tidak pernah Anda beri nama masih mendapatkan nama tampilan default saat dimulai. Default menggabungkan nama direktori kerja dengan akhiran dua karakter, misalnya `my-app-3f`, dan mengidentifikasi sesi dalam daftar sesi yang berjalan, seperti [agent view](/docs/id/agent-view) dan output `claude agents --json`. Default bukan handle resume. Jika Anda meneruskannya ke `claude --resume` atau `/resume`, Claude Code tidak menemukan sesi.

172* Judul yang dihasilkan: jika Anda tidak memberi nama sesi, Claude Code menghasilkan judul sesi untuk itu. Judul adalah ringkasan singkat dari prompt pertama Anda, ditulis oleh permintaan latar belakang ke model kecil/cepat, biasanya model kelas Haiku. Jalankan `claude -p` yang Anda mulai langsung dari shell atau script tidak mendapatkan satu.173* Judul yang dihasilkan: jika Anda tidak memberi nama sesi, Claude Code menghasilkan judul sesi untuk itu. Judul adalah ringkasan singkat dari prompt pertama Anda, ditulis oleh permintaan latar belakang ke model kecil/cepat, biasanya model kelas Haiku. Jalankan `claude -p` yang Anda mulai langsung dari shell atau script tidak mendapatkan satu.

173 174 

174 Menerima plan menggantikan judul yang dihasilkan dengan judul berdasarkan plan. Anda dapat meneruskan salah satu judul ke `claude --resume` atau `/resume`, dan Claude Code menyelesaikannya dengan cara yang sama seperti nama yang Anda atur.175 Menerima plan menggantikan judul yang dihasilkan dengan judul berdasarkan plan. Anda dapat meneruskan salah satu judul ke `claude --resume` atau `/resume`, dan Claude Code menyelesaikannya dengan cara yang sama seperti nama yang Anda atur.

Details

795| [`spinnerTipsEnabled`](#spinnertipsenabled) | Sembunyikan tips dalam spinner saat Claude bekerja | Interface and terminal | Any file |795| [`spinnerTipsEnabled`](#spinnertipsenabled) | Sembunyikan tips dalam spinner saat Claude bekerja | Interface and terminal | Any file |

796| [`spinnerTipsOverride`](#spinnertipsoverride) | Tambahkan tips Anda sendiri ke rotasi spinner, atau ganti tips bawaan | Interface and terminal | Any file |796| [`spinnerTipsOverride`](#spinnertipsoverride) | Tambahkan tips Anda sendiri ke rotasi spinner, atau ganti tips bawaan | Interface and terminal | Any file |

797| [`spinnerVerbs`](#spinnerverbs) | Tambahkan atau ganti kata kerja yang ditampilkan saat giliran berjalan | Interface and terminal | Any file |797| [`spinnerVerbs`](#spinnerverbs) | Tambahkan atau ganti kata kerja yang ditampilkan saat giliran berjalan | Interface and terminal | Any file |

798| [`sshConfigs`](#sshconfigs) | Tambahkan [koneksi SSH](/docs/id/desktop#pre-configure-ssh-connections-for-your-team) ke dropdown lingkungan Desktop | Remote, desktop, and notifications | User or managed |798| [`sshConfigs`](#sshconfigs) | Tambahkan [koneksi SSH](/docs/id/desktop#pre-configure-ssh-connections-for-your-team) ke pemilih lingkungan Desktop | Remote, desktop, and notifications | User or managed |

799| [`sshHostAllowlist`](#sshhostallowlist) | Batasi host mana yang dapat dijangkau [sesi SSH Desktop](/docs/id/desktop#restrict-which-ssh-hosts-users-can-connect-to) | Remote, desktop, and notifications | Managed |799| [`sshHostAllowlist`](#sshhostallowlist) | Batasi host mana yang dapat dijangkau [sesi SSH Desktop](/docs/id/desktop#restrict-which-ssh-hosts-users-can-connect-to) | Remote, desktop, and notifications | Managed |

800| [`statusLine`](#statusline) | Jalankan perintah Anda sendiri untuk merender [baris status](/docs/id/statusline) di bawah prompt | Interface and terminal | Any file |800| [`statusLine`](#statusline) | Jalankan perintah Anda sendiri untuk merender [baris status](/docs/id/statusline) di bawah prompt | Interface and terminal | Any file |

801| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Buat allowlist sumber [marketplace](/docs/id/plugins/overview) yang dapat ditambahkan dan digunakan pengguna untuk memasang | Plugins and skills | Managed |801| [`strictKnownMarketplaces`](#strictknownmarketplaces) | Buat allowlist sumber [marketplace](/docs/id/plugins/overview) yang dapat ditambahkan dan digunakan pengguna untuk memasang | Plugins and skills | Managed |


4096 `vimInsertModeRemaps`4096 `vimInsertModeRemaps`

4097</h3>4097</h3>

4098 4098 

4099Petakan urutan INSERT-mode dua kunci ke Escape dalam [mode editor vim](/docs/id/interactive-mode#vim-editor-mode). Setiap kunci adalah tepat dua karakter yang dapat dicetak diketik berurutan, dan `"<Esc>"` adalah satu-satunya target yang didukung; Claude Code mengabaikan entri lain. Memerlukan Claude Code v2.1.208 atau lebih baru.4099Petakan urutan INSERT-mode dua kunci ke Escape dalam [mode editor vim](/docs/id/interactive-mode#vim-editor-mode). Setiap kunci adalah tepat dua karakter yang dapat dicetak yang diketik berurutan, dan `"<Esc>"` adalah satu-satunya target yang didukung; Claude Code mengabaikan entri lain.

4100 4100 

4101* **Scope**: [`User or managed`](#scopes). Repositori tidak dapat memetakan ulang keystroke Anda.4101* **Scope**: [`User or managed`](#scopes). Repositori tidak dapat memetakan ulang keystroke Anda.

4102* **Type**: object memetakan urutan dua karakter ke `"<Esc>"`4102* **Type**: object memetakan urutan dua karakter ke `"<Esc>"`


4110}4110}

4111```4111```

4112 4112 

4113Tidak berpengaruh kecuali `editorMode` adalah `"vim"`. Lihat [Remap INSERT-mode key sequences](/docs/id/interactive-mode#remap-insert-mode-key-sequences). Memerlukan Claude Code v2.1.208 atau lebih baru.4113Tidak berpengaruh kecuali `editorMode` adalah `"vim"`. Lihat [Remap INSERT-mode key sequences](/docs/id/interactive-mode#remap-insert-mode-key-sequences).

4114 4114 

4115<h3 id="voice">4115<h3 id="voice">

4116 `voice`4116 `voice`


5850 `disableDesktopLocalSessions`5850 `disableDesktopLocalSessions`

5851</h3>5851</h3>

5852 5852 

5853Matikan sesi Code yang berjalan di perangkat di [aplikasi desktop](/docs/id/desktop#local-sessions-on-managed-devices), untuk deployment di mana pengembang harus bekerja di mesin jarak jauh melalui SSH. Di tab Code, lingkungan **Local** tetap berada di dropdown lingkungan tetapi berwarna abu-abu dan tidak dapat dipilih, dengan tooltip yang mengatakan organisasi Anda mematikannya; di Windows entri WSL berwarna abu-abu dengan cara yang sama, meskipun apakah sesi WSL berjalan di perangkat yang dikelola sama sekali [diatur secara terpisah](/docs/id/admin-setup#wsl-sessions-in-claude-code-desktop). Sesi baru default ke [koneksi SSH](/docs/id/desktop#ssh-sessions) pertama jika satu dikonfigurasi, dan aplikasi menolak untuk memulai atau melanjutkan sesi di perangkat, termasuk koneksi SSH kembali ke mesin yang sama. Sesi SSH ke host lain dan sesi cloud tidak terpengaruh. Aplikasi desktop membaca kunci ini; CLI terminal mengabaikannya. Memerlukan Claude Desktop v1.37937.0 atau lebih baru.5853Matikan sesi Code yang berjalan di perangkat di [aplikasi desktop](/docs/id/desktop#local-sessions-on-managed-devices), untuk deployment di mana pengembang harus bekerja di mesin jarak jauh melalui SSH. Dengan kunci diatur ke `true`, pengguna melihat hal berikut di tab Code:

5854 

5855* **Pemilih lingkungan**: entri untuk komputer pengguna berwarna abu-abu dan tidak dapat dipilih, dengan tooltip **Disabled by your organization**. Di Windows entri WSL berwarna abu-abu dengan cara yang sama, meskipun apakah sesi WSL berjalan di perangkat terkelola sama sekali [diatur secara terpisah](/docs/id/admin-setup#wsl-sessions-in-claude-code-desktop).

5856* **Sesi baru**: default ke [koneksi SSH](/docs/id/desktop#ssh-sessions) pertama jika ada yang dikonfigurasi

5857* **Sesi di perangkat**: aplikasi menolak untuk memulai atau melanjutkan sesi di perangkat, termasuk koneksi SSH kembali ke mesin yang sama

5858* **Sesi SSH ke host lain dan sesi cloud**: tidak terpengaruh

5859 

5860Aplikasi desktop membaca kunci ini; CLI terminal mengabaikannya. Memerlukan Claude Desktop v1.37937.0 atau lebih baru.

5854 5861 

5855* **Scope**: [`Managed`](#scopes). Secara default, aplikasi desktop membaca kunci dari [satu sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources).5862* **Scope**: [`Managed`](#scopes). Secara default, aplikasi desktop membaca kunci dari [satu sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources).

5856* **Type**: Boolean; hanya Boolean JSON `true` yang berlaku5863* **Type**: Boolean; hanya Boolean JSON `true` yang berlaku


5997 `sshConfigs`6004 `sshConfigs`

5998</h3>6005</h3>

5999 6006 

6000Tambahkan koneksi SSH ke dropdown lingkungan [Desktop](/docs/id/desktop#pre-configure-ssh-connections-for-your-team). Administrator menggunakannya untuk mendistribusikan koneksi bersama ke tim. Koneksi yang Anda tentukan dalam pengaturan terkelola ditampilkan sebagai terkelola. Pengguna dapat memilihnya dan [mengatur **Worktree folder** mereka sendiri](/docs/id/desktop#choose-where-ssh-session-worktrees-go) untuk koneksi tersebut, tetapi tidak dapat mengedit hal lain atau menghapusnya di aplikasi.6007Tambahkan koneksi SSH ke pemilih lingkungan [Desktop](/docs/id/desktop#pre-configure-ssh-connections-for-your-team). Administrator menggunakan `sshConfigs` untuk mendistribusikan koneksi bersama ke tim. Pengguna dapat memilih koneksi terkelola dan [mengatur **Worktree folder** mereka sendiri](/docs/id/desktop#set-the-worktree-folder-on-an-existing-connection) untuk koneksi tersebut. Mereka tidak dapat mengedit kolom lainnya atau menghapusnya di aplikasi.

6001 6008 

6002* **Scope**: [`User or managed`](#scopes). Aplikasi desktop membaca kunci ini. Secara default, aplikasi membaca koneksi terkelola dari [satu sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources).6009* **Scope**: [`User or managed`](#scopes). Aplikasi desktop membaca kunci ini. Secara default, aplikasi membaca koneksi terkelola dari [satu sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources).

6003* **Type**: array objek, masing-masing dengan `id`, `name`, dan `sshHost` yang diperlukan dan `sshPort` dan `sshIdentityFile` opsional6010* **Type**: array objek, masing-masing dengan `id`, `name`, dan `sshHost` yang diperlukan dan `sshPort` dan `sshIdentityFile` opsional

statusline.md +2 −2

Details

199| `workspace.added_dirs` | Direktori tambahan yang ditambahkan melalui `/add-dir` atau `--add-dir`. Array kosong jika tidak ada yang telah ditambahkan |199| `workspace.added_dirs` | Direktori tambahan yang ditambahkan melalui `/add-dir` atau `--add-dir`. Array kosong jika tidak ada yang telah ditambahkan |

200| `workspace.git_worktree` | Nama git worktree ketika direktori saat ini berada di dalam linked worktree yang dibuat dengan `git worktree add`. Tidak ada di main working tree. Diisi untuk git worktree apa pun, tidak seperti `worktree.*`, yang hanya ada saat sesi berada dalam [sesi worktree](/docs/id/worktrees) |200| `workspace.git_worktree` | Nama git worktree ketika direktori saat ini berada di dalam linked worktree yang dibuat dengan `git worktree add`. Tidak ada di main working tree. Diisi untuk git worktree apa pun, tidak seperti `worktree.*`, yang hanya ada saat sesi berada dalam [sesi worktree](/docs/id/worktrees) |

201| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Identitas repositori yang diuraikan dari remote `origin`, misalnya `"github.com"`, `"anthropics"`, `"claude-code"`. Tidak ada di luar repositori git atau ketika tidak ada remote `origin` yang dikonfigurasi. Untuk proyek gitlab.com yang bersarang dalam subgroup, `owner` adalah jalur namespace lengkap dengan garis miring, seperti `"group/subgroup"`. Sebelum v2.1.260, `workspace.repo` tidak ada untuk proyek-proyek ini |201| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Identitas repositori yang diuraikan dari remote `origin`, misalnya `"github.com"`, `"anthropics"`, `"claude-code"`. Tidak ada di luar repositori git atau ketika tidak ada remote `origin` yang dikonfigurasi. Untuk proyek gitlab.com yang bersarang dalam subgroup, `owner` adalah jalur namespace lengkap dengan garis miring, seperti `"group/subgroup"`. Sebelum v2.1.260, `workspace.repo` tidak ada untuk proyek-proyek ini |

202| `cost.total_cost_usd` | Perkiraan biaya sesi dalam USD, dihitung sisi klien dengan harga daftar kecuali tabel [`modelPricing`](/docs/id/settings-reference#modelpricing) berlaku. Mungkin berbeda dari tagihan aktual Anda. Direset ke \$0 ketika `/clear` memulai sesi baru. Sebelum v2.1.211, total dibawa setelah `/clear` |202| `cost.total_cost_usd` | Perkiraan biaya sesi dalam USD, dihitung sisi klien dengan harga daftar kecuali tabel [`modelPricing`](/docs/id/settings-reference#modelpricing) berlaku. Mungkin berbeda dari tagihan aktual Anda. Direset ke \$0 ketika `/clear` memulai sesi baru |

203| `cost.total_duration_ms` | Total waktu dinding jam sejak sesi dimulai, dalam milidetik. Terakumulasi di seluruh resume dan tidak termasuk waktu saat sesi tidak berjalan |203| `cost.total_duration_ms` | Total waktu dinding jam sejak sesi dimulai, dalam milidetik. Terakumulasi di seluruh resume dan tidak termasuk waktu saat sesi tidak berjalan |

204| `cost.total_api_duration_ms` | Total waktu yang dihabiskan menunggu respons API dalam milidetik |204| `cost.total_api_duration_ms` | Total waktu yang dihabiskan menunggu respons API dalam milidetik |

205| `cost.total_lines_added`, `cost.total_lines_removed` | Baris kode yang diubah |205| `cost.total_lines_added`, `cost.total_lines_removed` | Baris kode yang diubah |


1199| `label` | string | Ringkasan kemajuan singkat tugas jika Claude Code memilikinya, jika tidak teksnya sama dengan `description` |1199| `label` | string | Ringkasan kemajuan singkat tugas jika Claude Code memilikinya, jika tidak teksnya sama dengan `description` |

1200| `startTime` | number | Waktu tugas dimulai, dalam milidetik sejak epoch Unix |1200| `startTime` | number | Waktu tugas dimulai, dalam milidetik sejak epoch Unix |

1201| `model` | string, opsional | ID model yang diselesaikan tempat tugas berjalan. Dihilangkan hingga model diselesaikan |1201| `model` | string, opsional | ID model yang diselesaikan tempat tugas berjalan. Dihilangkan hingga model diselesaikan |

1202| `effort` | string atau number, opsional | Effort penalaran yang ditetapkan untuk subagent dalam [frontmatter definisinya](/docs/id/sub-agents#supported-frontmatter-fields) atau pada invokasi individual: `low`, `medium`, `high`, `xhigh`, `max`, atau anggaran token numerik. Ini adalah nilai yang dikonfigurasi, dan effort yang diterapkan Claude Code dapat berbeda jika model tidak mendukung tingkat tersebut. Dihilangkan ketika tidak ada effort yang ditetapkan. Memerlukan Claude Code v2.1.213 atau lebih baru |1202| `effort` | string atau number, opsional | Effort penalaran yang ditetapkan untuk subagent dalam [frontmatter definisinya](/docs/id/sub-agents#supported-frontmatter-fields) atau pada invokasi individual: `low`, `medium`, `high`, `xhigh`, `max`, atau anggaran token numerik. Ini adalah nilai yang dikonfigurasi, dan effort yang diterapkan Claude Code dapat berbeda jika model tidak mendukung tingkat tersebut. Dihilangkan ketika tidak ada effort yang ditetapkan |

1203| `contextWindowSize` | number, opsional | Context window dari `model` dalam token, dihitung dengan cara yang sama seperti [`context_window.context_window_size`](#context-window-fields) baris status utama, sehingga Anda dapat merender persentase per-baris dari `tokenCount`. Dihilangkan ketika `model` dihilangkan |1203| `contextWindowSize` | number, opsional | Context window dari `model` dalam token, dihitung dengan cara yang sama seperti [`context_window.context_window_size`](#context-window-fields) baris status utama, sehingga Anda dapat merender persentase per-baris dari `tokenCount`. Dihilangkan ketika `model` dihilangkan |

1204| `tokenCount` | number | Jumlah token berjalan subagent, angka yang ditampilkan oleh baris default |1204| `tokenCount` | number | Jumlah token berjalan subagent, angka yang ditampilkan oleh baris default |

1205| `tokenSamples` | array of numbers | Hingga 16 pembacaan `tokenCount` terakhir, satu per tick refresh, yang terlama terlebih dahulu dan diakhiri dengan yang saat ini |1205| `tokenSamples` | array of numbers | Hingga 16 pembacaan `tokenCount` terakhir, satu per tick refresh, yang terlama terlebih dahulu dan diakhiri dengan yang saat ini |

sub-agents.md +53 −35

Details

287 287 

288Subagent dengan `isolation: worktree` menjalankan perintah Bash dan PowerShell-nya di dalam worktree-nya. Perintah yang direktori kerjanya diselesaikan ke checkout utama Anda, misalnya karena direktori worktree dihapus saat subagent berjalan, gagal dengan kesalahan.288Subagent dengan `isolation: worktree` menjalankan perintah Bash dan PowerShell-nya di dalam worktree-nya. Perintah yang direktori kerjanya diselesaikan ke checkout utama Anda, misalnya karena direktori worktree dihapus saat subagent berjalan, gagal dengan kesalahan.

289 289 

290Pemeriksaan direktori kerja ini mencakup seluruh repositori yang berisi direktori tempat Anda meluncurkan Claude Code. Ketika sesi Anda berjalan di [worktree](/docs/id/worktrees) tertaut miliknya sendiri, pemeriksaan juga mencakup checkout utama yang worktree itu tertaut darinya. Sebelum v2.1.210, pemeriksaan hanya mencakup direktori peluncuran itu sendiri. Perintah yang direktori kerjanya diselesaikan di tempat lain di repositori yang sama, seperti akar repositori saat Anda meluncurkan Claude Code dari subdirektori monorepo, berjalan di sana sebagai gantinya dari gagal.290Pemeriksaan direktori kerja ini mencakup seluruh repositori yang berisi direktori tempat Anda meluncurkan Claude Code. Ketika sesi Anda berjalan di [worktree](/docs/id/worktrees) tertaut miliknya sendiri, pemeriksaan juga mencakup checkout utama yang worktree itu tertaut darinya.

291 291 

292Untuk perintah Bash, Claude Code juga memeriksa perintah itu sendiri dalam dua cara:292Untuk perintah Bash, Claude Code juga memeriksa perintah itu sendiri dalam dua cara:

293 293 


325| `mcpServers` | Tidak | [Server MCP](/docs/id/mcp) yang tersedia untuk subagent ini. Setiap entri adalah nama server yang mereferensikan server yang sudah dikonfigurasi (misalnya, `"slack"`) atau definisi inline dengan nama server sebagai kunci dan [MCP server config](/docs/id/mcp#installing-mcp-servers) lengkap sebagai nilai. Diabaikan untuk [plugin subagents](#choose-the-subagent-scope) |325| `mcpServers` | Tidak | [Server MCP](/docs/id/mcp) yang tersedia untuk subagent ini. Setiap entri adalah nama server yang mereferensikan server yang sudah dikonfigurasi (misalnya, `"slack"`) atau definisi inline dengan nama server sebagai kunci dan [MCP server config](/docs/id/mcp#installing-mcp-servers) lengkap sebagai nilai. Diabaikan untuk [plugin subagents](#choose-the-subagent-scope) |

326| `hooks` | Tidak | [Lifecycle hooks](#define-hooks-for-subagents) yang dibatasi ke subagent ini. Diabaikan untuk [plugin subagents](#choose-the-subagent-scope) |326| `hooks` | Tidak | [Lifecycle hooks](#define-hooks-for-subagents) yang dibatasi ke subagent ini. Diabaikan untuk [plugin subagents](#choose-the-subagent-scope) |

327| `memory` | Tidak | [Persistent memory scope](#enable-persistent-memory): `user`, `project`, atau `local`. Memungkinkan pembelajaran lintas sesi |327| `memory` | Tidak | [Persistent memory scope](#enable-persistent-memory): `user`, `project`, atau `local`. Memungkinkan pembelajaran lintas sesi |

328| `background` | Tidak | Atur ke `true` untuk menjaga subagent ini di latar belakang bahkan ketika Claude meminta untuk menjalankannya di latar depan. Tempat [fork mode](#turn-fork-mode-on-or-off) aktif, Claude Code sudah menjalankan subagent yang Claude hasilkan [di latar belakang](#run-subagents-in-foreground-or-background) |328| `background` | Tidak | Atur ke `true` untuk menjaga subagent ini di latar belakang bahkan ketika Claude meminta untuk menunggunya. Secara default, subagent yang Claude hasilkan dari percakapan utama sudah [dimulai di latar belakang](#run-subagents-in-foreground-or-background) |

329| `omitClaudeMd` | Tidak | Atur ke `true` untuk memulai subagent ini tanpa file CLAUDE.md pengguna, proyek, dan lokal dalam [konteks awal](#what-loads-at-startup)-nya; [managed policy files](/docs/id/memory#how-claude-md-files-load) masih dimuat, kecuali untuk [managed subagents](#choose-the-subagent-scope). Gunakan untuk subagent yang mengambil semua yang mereka butuhkan dari prompt delegasi. Diabaikan ketika agent berjalan sebagai agent sesi utama melalui `--agent` atau pengaturan `agent`. Memerlukan Claude Code v2.1.271 atau lebih baru |329| `omitClaudeMd` | Tidak | Atur ke `true` untuk memulai subagent ini tanpa file CLAUDE.md pengguna, proyek, dan lokal dalam [konteks awal](#what-loads-at-startup)-nya; [managed policy files](/docs/id/memory#how-claude-md-files-load) masih dimuat, kecuali untuk [managed subagents](#choose-the-subagent-scope). Gunakan untuk subagent yang mengambil semua yang mereka butuhkan dari prompt delegasi. Diabaikan ketika agent berjalan sebagai agent sesi utama melalui `--agent` atau pengaturan `agent`. Memerlukan Claude Code v2.1.271 atau lebih baru |

330| `effort` | Tidak | Tingkat effort ketika subagent ini aktif. Menimpa tingkat effort sesi, tetapi tidak menimpa environment variable [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/id/env-vars#variables). Opsi: `low`, `medium`, `high`, `xhigh`, `max`; level yang tersedia tergantung pada model. Lihat [Pilih tingkat effort](#choose-an-effort-level) |330| `effort` | Tidak | Tingkat effort ketika subagent ini aktif. Menimpa tingkat effort sesi, tetapi tidak menimpa environment variable [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/id/env-vars#variables). Opsi: `low`, `medium`, `high`, `xhigh`, `max`; level yang tersedia tergantung pada model. Lihat [Pilih tingkat effort](#choose-an-effort-level) |

331| `isolation` | Tidak | Atur ke `worktree` untuk menjalankan subagent dalam [git worktree](/docs/id/worktrees) sementara, memberikannya salinan terisolasi dari repositori yang bercabang secara default dari [default branch](/docs/id/worktrees#choose-the-base-branch) Anda daripada `HEAD` sesi induk. Worktree secara otomatis dibersihkan jika subagent tidak membuat perubahan |331| `isolation` | Tidak | Atur ke `worktree` untuk menjalankan subagent dalam [git worktree](/docs/id/worktrees) sementara, memberikannya salinan terisolasi dari repositori yang bercabang secara default dari [default branch](/docs/id/worktrees#choose-the-base-branch) Anda daripada `HEAD` sesi induk. Worktree secara otomatis dibersihkan jika subagent tidak membuat perubahan |


405 405 

406Untuk memeriksa model mana yang dijalankan subagent, jalankan [`/tasks`](/docs/id/commands). Claude Code menamai model pada baris subagent, dan menambahkan [tingkat effort](/docs/id/model-config#adjust-effort-level) yang diatur untuk subagent itu, jika ada. Memerlukan Claude Code v2.1.242 atau lebih baru.406Untuk memeriksa model mana yang dijalankan subagent, jalankan [`/tasks`](/docs/id/commands). Claude Code menamai model pada baris subagent, dan menambahkan [tingkat effort](/docs/id/model-config#adjust-effort-level) yang diatur untuk subagent itu, jika ada. Memerlukan Claude Code v2.1.242 atau lebih baru.

407 407 

408Parameter `model` per-invokasi juga berlaku ketika subagent [dilanjutkan atau dikirim pesan tindak lanjut](#resume-subagents), jadi subagent tetap pada model itu. Sebelum v2.1.211, melanjutkan menghapus nilai per-invokasi dan subagent kembali ke field `model` definisinya atau, tanpanya, model percakapan utama.408Parameter `model` per-invokasi juga berlaku ketika subagent [dilanjutkan atau dikirim pesan tindak lanjut](#resume-subagents), jadi subagent tetap pada model itu.

409 409 

410Mulai v2.1.198, subagent juga mewarisi konfigurasi [extended thinking](/docs/id/model-config#extended-thinking) percakapan utama: jika thinking aktif dalam sesi Anda, aktif untuk subagent, dan jika mati, tetap mati. Tidak ada pengaturan thinking per-subagent. Sebelum v2.1.198, subagent berjalan dengan extended thinking dinonaktifkan terlepas dari pengaturan percakapan utama.410Mulai v2.1.198, subagent juga mewarisi konfigurasi [extended thinking](/docs/id/model-config#extended-thinking) percakapan utama: jika thinking aktif dalam sesi Anda, aktif untuk subagent, dan jika mati, tetap mati. Tidak ada pengaturan thinking per-subagent. Sebelum v2.1.198, subagent berjalan dengan extended thinking dinonaktifkan terlepas dari pengaturan percakapan utama.

411 411 


501---501---

502```502```

503 503 

504Ketika tidak ada dalam daftar `tools` yang diselesaikan ke tool, misalnya karena setiap entri salah eja atau menamai tool yang tidak tersedia untuk subagent, Claude Code biasanya menolak untuk meluncurkan subagent dan tool Agent mengembalikan kesalahan yang menamai entri yang tidak diselesaikan; lihat [Agent would be spawned with zero tools](/docs/id/errors#agent-would-be-spawned-with-zero-tools) untuk pesan dan cara memperbaiki setiap entri. Sebelum v2.1.208, subagent itu diluncurkan tanpa tool dan dapat mengembalikan hasil kosong atau membingungkan.504Ketika tidak ada dalam daftar `tools` yang diselesaikan ke tool, misalnya karena setiap entri salah eja atau menamai tool yang tidak tersedia untuk subagent, Claude Code biasanya menolak untuk meluncurkan subagent dan tool Agent mengembalikan kesalahan yang menamai entri yang tidak diselesaikan; lihat [Agent would be spawned with zero tools](/docs/id/errors#agent-would-be-spawned-with-zero-tools) untuk pesan dan cara memperbaiki setiap entri.

505 505 

506Field `tools` dan `disallowedTools` juga menerima entri untuk seluruh server MCP:506Field `tools` dan `disallowedTools` juga menerima entri untuk seluruh server MCP:

507 507 


969* **Subagent foreground** memblokir percakapan utama sampai selesai. Permintaan izin diteruskan kepada Anda saat muncul.969* **Subagent foreground** memblokir percakapan utama sampai selesai. Permintaan izin diteruskan kepada Anda saat muncul.

970* **Subagent background** berjalan secara bersamaan sementara Anda terus bekerja. Ketika subagent background mencapai panggilan tool yang memerlukan izin, Claude Code menampilkan permintaan izin di sesi utama Anda dan menyebutkan subagent yang bertanya. Setujui untuk membiarkan subagent melanjutkan, atau tekan Esc untuk menolak panggilan tool itu saja tanpa menghentikan subagent.970* **Subagent background** berjalan secara bersamaan sementara Anda terus bekerja. Ketika subagent background mencapai panggilan tool yang memerlukan izin, Claude Code menampilkan permintaan izin di sesi utama Anda dan menyebutkan subagent yang bertanya. Setujui untuk membiarkan subagent melanjutkan, atau tekan Esc untuk menolak panggilan tool itu saja tanpa menghentikan subagent.

971 971 

972Untuk setiap subagent yang Claude hasilkan dengan tool Agent, Claude Code memilih foreground atau background dari kasus pertama yang berlaku:972<h4 id="which-subagents-run-in-the-background">

973 Subagent mana yang berjalan di background

974</h4>

975 

976Tanpa konfigurasi apa pun, subagent yang Claude hasilkan dari percakapan utama Anda dimulai di background.

973 977 

974* Jika anggota [tim agent](/docs/id/agent-teams#limitations) dalam proses yang menghasilkan subagent, Claude Code menjalankannya di foreground. Claude Code menolak dengan kesalahan untuk menghasilkan subagent anggota tim yang definisinya menetapkan [`background: true`](#supported-frontmatter-fields). Di mana [fork mode](#turn-fork-mode-on-or-off) mati dan Anda belum [mematikan tugas latar belakang](/docs/id/env-vars), Claude Code juga menolak dengan kesalahan ketika anggota tim menetapkan `run_in_background: true`.978* **`claude -p` dan Agent SDK**: Claude dapat menunggu, berdasarkan penilaiannya sendiri atau ketika Anda memintanya.

975* Jika Anda menetapkan [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/id/env-vars) ke `1`, Claude Code menjalankan subagent di foreground, dalam setiap jenis sesi dan apakah fork mode aktif atau tidak.979* **Sesi terminal interaktif, VS Code, dan sesi aplikasi desktop di mesin Anda**: agar Claude dapat menunggu subagent, [matikan fork mode](#let-claude-wait-for-a-subagent), yang [aktif secara default](#turn-fork-mode-on-or-off).

976* Di mana [fork mode](#turn-fork-mode-on-or-off) aktif, seperti yang terjadi secara default dalam sesi interaktif, Claude Code menjalankan subagent di background, subagent fork dan non-fork sama-sama, dan Claude tidak dapat meminta foreground.

977* Di mana fork mode mati, Claude menjalankan subagent di background secara default dan di foreground ketika memerlukan hasil sebelum melanjutkan. Fork mode mati dalam [mode non-interaktif](/docs/id/headless) dengan `-p` dan dalam Agent SDK kecuali Anda mengaktifkannya. Untuk menjaga subagent tertentu di background bahkan ketika Claude menginginkan hasil, atur bidang frontmatter [`background`](#supported-frontmatter-fields) ke `true`.

978 980 

979Untuk skill dengan `context: fork`, Claude Code mengikuti aturan dalam [Jalankan skills dalam subagent](/docs/id/skills#run-skills-in-a-subagent) sebagai gantinya, apakah fork mode aktif atau tidak.981Untuk skill dengan `context: fork`, Claude Code mengikuti aturan dalam [Jalankan skills dalam subagent](/docs/id/skills#run-skills-in-a-subagent) sebagai gantinya, apakah fork mode aktif atau tidak.

980 982 

983<h4 id="let-claude-wait-for-a-subagent">

984 Biarkan Claude menunggu subagent

985</h4>

986 

9871. Matikan [fork mode](#turn-fork-mode-on-or-off) dengan mengatur `CLAUDE_CODE_FORK_SUBAGENT` ke `0`, misalnya dalam [`settings.json`](/docs/id/settings):

988 

989 ```json theme={null}

990 {

991 "env": {

992 "CLAUDE_CODE_FORK_SUBAGENT": "0"

993 }

994 }

995 ```

996 

9972. Jalankan `claude` lagi dari shell Anda, atau buka percakapan VS Code baru.

998 

9993. Minta Claude untuk menunggu ketika Anda memerlukan hasil terlebih dahulu, misalnya "run the reviewer subagent and wait for its report".

1000 

1001Untuk tetap bekerja selagi Claude menunggu, tekan **Ctrl+B** di terminal atau klik [**Run in background**](/docs/id/vs-code#move-a-running-command-or-subagent-to-the-background) di VS Code.

1002 

1003Jika Anda mengatur environment variable [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/id/env-vars) ke `1` alih-alih mematikan fork mode, Claude menunggu setiap subagent dan tugas latar belakang dimatikan, termasuk **Ctrl+B**.

1004 

1005<h4 id="tools-permissions-and-results-of-background-subagents">

1006 Tool, izin, dan hasil subagent background

1007</h4>

1008 

981Subagent background berjalan dengan [set tool bawaan yang lebih kecil](#available-tools) daripada subagent foreground, kecuali untuk fork percakapan dan subagent foreground yang [dilanjutkan](#resume-subagents).1009Subagent background berjalan dengan [set tool bawaan yang lebih kecil](#available-tools) daripada subagent foreground, kecuali untuk fork percakapan dan subagent foreground yang [dilanjutkan](#resume-subagents).

982 1010 

983Subagent background menampilkan setiap permintaan izin di sesi utama Anda. Ketika Anda menjawab salah satu permintaan izin tersebut dengan pilihan yang berlangsung melampaui panggilan tool itu, seperti hibah yang berlangsung untuk sisa sesi, Claude Code menerapkan jawaban Anda ke seluruh sesi, termasuk percakapan utama Anda.1011Subagent background menampilkan setiap permintaan izin di sesi utama Anda. Ketika Anda menjawab salah satu permintaan izin tersebut dengan pilihan yang berlangsung melampaui panggilan tool itu, seperti hibah yang berlangsung untuk sisa sesi, Claude Code menerapkan jawaban Anda ke seluruh sesi, termasuk percakapan utama Anda.

984 1012 

985Subagent background dapat meninggalkan perintah [Bash atau PowerShell](/docs/id/tools-reference#background-commands) background [berjalan melampaui akhir giliran](/docs/id/interactive-mode#how-backgrounding-works). Ketika perintah itu berakhir, Claude Code mengirim notifikasi ke subagent.1013Subagent background dapat meninggalkan perintah [Bash atau PowerShell](/docs/id/tools-reference#background-commands) background [berjalan melampaui akhir giliran](/docs/id/interactive-mode#how-backgrounding-works). Ketika perintah itu berakhir, Claude Code mengirim notifikasi ke subagent.

986 1014 

987Hasil subagent background mencapai Claude sebagai notifikasi penyelesaian dalam giliran yang lebih baru. Claude menunggu notifikasi itu sebelum melaporkan hasil subagent, dan jika Anda bertanya tentang kemajuan terlebih dahulu, itu melaporkan bahwa subagent masih berjalan. Sebelum v2.1.211, Claude kadang melaporkan hasil untuk subagent background yang belum selesai.1015Hasil subagent background mencapai Claude sebagai notifikasi penyelesaian dalam giliran yang lebih baru. Claude menunggu notifikasi itu sebelum melaporkan hasil subagent, dan jika Anda bertanya tentang kemajuan terlebih dahulu, itu melaporkan bahwa subagent masih berjalan.

988 1016 

989Anda juga dapat mengarahkan ini sendiri:1017<h4 id="finished-subagents-in-the-panel-and-task-list">

990 1018 Subagent yang selesai di panel dan daftar tugas

991* Di mana fork mode mati, minta Claude untuk menjalankan tugas di background atau di foreground1019</h4>

992* Tekan **Ctrl+B** untuk menempatkan tugas yang sedang berjalan di background

993 1020 

994Claude Code menghapus baris subagent background dari panel subagent di bawah input prompt dengan salah satu dari dua cara, tergantung bagaimana subagent berakhir:1021Claude Code menghapus baris subagent background dari panel subagent di bawah input prompt dengan salah satu dari dua cara, tergantung bagaimana subagent berakhir:

995 1022 


1036 1063 

1037Laporan [subagent background](#run-subagents-in-foreground-or-background) tiba di dalam notifikasi penyelesaian, yang ditandai sebagai peristiwa otomatis daripada pesan dari Anda.1064Laporan [subagent background](#run-subagents-in-foreground-or-background) tiba di dalam notifikasi penyelesaian, yang ditandai sebagai peristiwa otomatis daripada pesan dari Anda.

1038 1065 

1039<Note>

1040 Pemindaian output subagent memerlukan Claude Code v2.1.210 atau lebih baru.

1041</Note>

1042 

1043<h3 id="common-patterns">1066<h3 id="common-patterns">

1044 Pola umum1067 Pola umum

1045</h3>1068</h3>


1109 1132 

1110Secara default, subagent dapat menghasilkan subagent-nya sendiri, hingga tiga lapisan di bawah percakapan utama. Pada batas kedalaman, Claude Code menahan tool `Agent` dari setiap subagent kecuali [fork](#fork-the-current-conversation), jadi subagent pada batas melakukan pekerjaan yang didelegasikan itu sendiri dan mengembalikan satu ringkasan. Fork pada batas menyimpan `Agent` dalam daftar tool yang diwariskan, tetapi tool mengembalikan kesalahan daripada menghasilkan.1133Secara default, subagent dapat menghasilkan subagent-nya sendiri, hingga tiga lapisan di bawah percakapan utama. Pada batas kedalaman, Claude Code menahan tool `Agent` dari setiap subagent kecuali [fork](#fork-the-current-conversation), jadi subagent pada batas melakukan pekerjaan yang didelegasikan itu sendiri dan mengembalikan satu ringkasan. Fork pada batas menyimpan `Agent` dalam daftar tool yang diwariskan, tetapi tool mengembalikan kesalahan daripada menghasilkan.

1111 1134 

1112Subagent bersarang cocok untuk tugas yang didelegasikan yang itu sendiri terbagi menjadi subtask paralel, seperti subagent reviewer yang mengirimkan verifier per temuan. Dalam sesi interaktif, hanya ringkasan subagent tingkat atas yang kembali kepada Anda dan output perantara tetap keluar dari percakapan utama Anda: subagent yang meluncurkan subagent background menunggu hasil mereka sebelum selesai. Dalam [mode non-interaktif](/docs/id/headless) dan Agent SDK, subagent peluncur tidak menunggu, jadi subagent background bersarang yang selesai setelah peluncurnya telah berakhir melaporkan ke percakapan utama Anda sebagai gantinya.1135Subagent bersarang cocok untuk tugas yang didelegasikan yang itu sendiri terbagi menjadi subtask paralel, seperti subagent reviewer yang mengirimkan verifier per temuan. Secara default, subagent yang menghasilkan menunggu laporan setiap subagent bersarang:

1136 

1137* **Sesi terminal interaktif**: hanya ringkasan subagent tingkat atas yang kembali kepada Anda, karena subagent yang meluncurkan subagent background menunggu hasil mereka sebelum selesai.

1138* **`claude -p` dan Agent SDK**: subagent yang menghasilkan menunggu selama [fork mode](#turn-fork-mode-on-or-off) aktif. Jika Anda mematikan fork mode, subagent bersarang dimulai di [background](#run-subagents-in-foreground-or-background) sebagai gantinya. Subagent yang menghasilkan tidak menunggu subagent bersarang background, yang melaporkan ke percakapan utama Anda jika berjalan lebih lama daripada subagent yang menghasilkannya.

1113 1139 

1114Untuk mengubah batas, atur [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/id/env-vars) ke jumlah lapisan subagent yang Anda inginkan di bawah percakapan utama Anda. Misalnya, entri ini dalam [`settings.json`](/docs/id/settings) membatasi nesting pada dua lapisan:1140Untuk mengubah batas, atur [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/id/env-vars) ke jumlah lapisan subagent yang Anda inginkan di bawah percakapan utama Anda. Misalnya, entri ini dalam [`settings.json`](/docs/id/settings) membatasi nesting pada dua lapisan:

1115 1141 


1277</h2>1303</h2>

1278 1304 

1279<Note>1305<Note>

1280 Jalankan subagent yang di-fork dengan `/subtask`, yang memerlukan Claude Code v2.1.212 atau lebih baru. Ketika [tampilan agent dimatikan](/docs/id/agent-view#turn-off-agent-view), `/subtask` tidak tersedia dan `/fork` memulai subagent yang di-fork sebagai gantinya; jika tidak `/fork` menyalin seluruh sesi ke [sesi latar belakang](/docs/id/agent-view#from-inside-a-session) baru.1306 Ketika [tampilan agent dimatikan](/docs/id/agent-view#turn-off-agent-view), `/subtask` tidak tersedia dan `/fork` memulai subagent yang di-fork sebagai gantinya; jika tidak, `/fork` menyalin seluruh sesi ke [sesi latar belakang](/docs/id/agent-view#from-inside-a-session) baru.

1281</Note>1307</Note>

1282 1308 

1283Fork adalah subagent yang mewarisi seluruh percakapan sejauh ini daripada memulai segar. Ini menghilangkan isolasi input yang sebaliknya disediakan subagent: fork melihat prompt sistem yang sama, alat, model, dan riwayat pesan sebagai sesi utama, sehingga Anda dapat menyerahkan tugas sampingan tanpa menjelaskan situasinya lagi. Panggilan alat fork sendiri masih tetap keluar dari percakapan Anda dan hanya hasil akhirnya yang kembali, sehingga jendela konteks utama Anda tetap bersih. Gunakan fork ketika subagent lain mana pun memerlukan terlalu banyak latar belakang untuk berguna, atau ketika Anda ingin mencoba beberapa pendekatan secara paralel dari titik awal yang sama.1309Fork adalah subagent yang mewarisi seluruh percakapan sejauh ini daripada memulai segar. Ini menghilangkan isolasi input yang sebaliknya disediakan subagent: fork melihat prompt sistem yang sama, alat, model, dan riwayat pesan sebagai sesi utama, sehingga Anda dapat menyerahkan tugas sampingan tanpa menjelaskan situasinya lagi. Panggilan alat fork sendiri masih tetap keluar dari percakapan Anda dan hanya hasil akhirnya yang kembali, sehingga jendela konteks utama Anda tetap bersih. Gunakan fork ketika subagent lain mana pun memerlukan terlalu banyak latar belakang untuk berguna, atau ketika Anda ingin mencoba beberapa pendekatan secara paralel dari titik awal yang sama.

1284 1310 

1285Claude memulai fork dengan meminta tipe subagent `fork` melalui alat Agent. Anda mengontrol apakah itu dapat dengan [mode fork](#turn-fork-mode-on-or-off), yang diaktifkan secara default dalam sesi interaktif.1311Claude dapat memulai fork sendiri selama mode fork aktif, sebagaimana halnya secara default. Untuk menghentikan fork, lihat [Nonaktifkan mode fork](#turn-fork-mode-on-or-off).

1286 1312 

1287Anda dapat memulai fork sendiri dengan `/subtask` diikuti oleh tugas, terlepas dari apakah mode fork diaktifkan atau tidak. Pada v2.1.161 hingga v2.1.211 perintahnya adalah `/fork`. Claude Code memberi nama fork dari kata-kata pertama tugas. Contoh berikut mem-fork percakapan untuk draft kasus uji sementara Anda melanjutkan dengan implementasi dalam sesi utama:1313Anda dapat memulai fork sendiri dengan `/subtask` diikuti oleh tugas, terlepas dari apakah mode fork diaktifkan atau tidak. Claude Code memberi nama fork dari kata-kata pertama tugas. Contoh berikut mem-fork percakapan untuk membuat draf kasus uji sementara Anda melanjutkan implementasi dalam sesi utama:

1288 1314 

1289```text wrap theme={null}1315```text wrap theme={null}

1290/subtask draft unit tests for the parser changes so far1316/subtask draft unit tests for the parser changes so far


1327| Konteks | Riwayat percakapan lengkap | Konteks segar dengan prompt yang Anda lewatkan |1353| Konteks | Riwayat percakapan lengkap | Konteks segar dengan prompt yang Anda lewatkan |

1328| Prompt sistem dan alat | Sama dengan sesi utama | Dari [file definisi](#write-subagent-files) subagent, [disaring untuk run latar belakang](#available-tools) |1354| Prompt sistem dan alat | Sama dengan sesi utama | Dari [file definisi](#write-subagent-files) subagent, [disaring untuk run latar belakang](#available-tools) |

1329| Model | Sama dengan sesi utama | Dari bidang `model` subagent |1355| Model | Sama dengan sesi utama | Dari bidang `model` subagent |

1330| Izin | Prompt muncul di terminal Anda | [Prompt muncul di sesi utama Anda](#run-subagents-in-foreground-or-background) saat berjalan di latar belakang |

1331| Prompt cache | Dibagikan dengan sesi utama | Cache terpisah |1356| Prompt cache | Dibagikan dengan sesi utama | Cache terpisah |

1332 1357 

1333Karena system prompt fork dan definisi tool identik dengan induk, permintaan pertamanya menggunakan kembali [prompt cache](/docs/id/prompt-caching#subagents-and-the-cache) induk. Karena penggunaan kembali tersebut, fork lebih murah daripada subagent segar untuk tugas yang memerlukan konteks yang sama.1358Karena system prompt fork dan definisi tool identik dengan induk, permintaan pertamanya menggunakan kembali [prompt cache](/docs/id/prompt-caching#subagents-and-the-cache) induk. Karena penggunaan kembali tersebut, fork lebih murah daripada subagent segar untuk tugas yang memerlukan konteks yang sama.


1335Ketika Claude menelurkan fork melalui alat Agent, Claude dapat melewatkan `isolation: "worktree"` sehingga edit file fork ditulis ke git worktree terpisah daripada checkout Anda. Fork tidak dapat menelurkan fork lebih lanjut.1360Ketika Claude menelurkan fork melalui alat Agent, Claude dapat melewatkan `isolation: "worktree"` sehingga edit file fork ditulis ke git worktree terpisah daripada checkout Anda. Fork tidak dapat menelurkan fork lebih lanjut.

1336 1361 

1337<h3 id="turn-fork-mode-on-or-off">1362<h3 id="turn-fork-mode-on-or-off">

1338 Aktifkan atau nonaktifkan mode fork1363 Nonaktifkan mode fork

1339</h3>1364</h3>

1340 1365 

1341Claude Code mengaktifkan mode fork secara default dalam sesi interaktif dan membiarkannya dimatikan secara default dalam [mode non-interaktif](/docs/id/headless) dengan `-p` dan dalam Agent SDK. Default interaktif memerlukan Claude Code v2.1.232 atau lebih baru. Pada versi sebelumnya, atur `CLAUDE_CODE_FORK_SUBAGENT` ke `1` untuk mengaktifkan mode fork.1366Mode fork memungkinkan Claude memulai fork sendiri. Untuk menghentikan Claude dari memulai fork:

1342 

1343Anda dapat mengetahui mode fork diaktifkan dari cara Claude Code menangani alat Agent:

1344 

1345* Claude dapat menelurkan fork dengan meminta tipe subagent `fork`. Ketika Claude tidak meminta tipe, Claude mendapatkan subagent [general-purpose](#built-in-subagents), jika sesi masih memiliki tipe tersebut. Subagent yang di-spawn dari definisi, seperti Explore, bekerja seperti biasanya.

1346* Claude Code menjalankan subagent yang Claude spawn di latar belakang, fork dan subagent non-fork sama-sama, terlepas dari [kasus yang tetap di latar depan](#run-subagents-in-foreground-or-background). Claude Code juga menghapus parameter `run_in_background` alat Agent, sehingga Claude tidak dapat meminta latar depan.

1347 

1348Atur variabel lingkungan [`CLAUDE_CODE_FORK_SUBAGENT`](/docs/id/env-vars) untuk mengganti default:

1349 1367 

1350* `1` mengaktifkan mode fork dalam mode non-interaktif dan Agent SDK juga1368* **Hentikan fork saja**: tambahkan `"Agent(fork)"` ke `permissions.deny` dalam [pengaturan](#disable-specific-subagents) Anda.

1351* `0` menonaktifkan mode fork dalam setiap jenis sesi1369* **Nonaktifkan mode fork**: atur `CLAUDE_CODE_FORK_SUBAGENT` ke `0`, dengan mengikuti langkah-langkah di [Biarkan Claude menunggu subagent](#let-claude-wait-for-a-subagent).

1352 1370 

1353Untuk menjaga mode fork tetap aktif tetapi menghentikan Claude dari menelurkan fork, [tolak tipe subagent `fork`](#disable-specific-subagents) dengan aturan `Agent(fork)`. Claude Code masih menjalankan subagent yang Claude spawn di latar belakang, terlepas dari [kasus yang sama yang tetap di latar depan](#run-subagents-in-foreground-or-background).1371Selama mode fork aktif, Claude juga tidak dapat [menunggu subagent](#run-subagents-in-foreground-or-background) dalam sesi terminal interaktif, VS Code, atau desktop di mesin Anda. Mode fork aktif secara default sejak Claude Code v2.1.302, dan dalam sesi terminal interaktif sejak v2.1.232.

1354 1372 

1355<h2 id="example-subagents">1373<h2 id="example-subagents">

1356 Contoh subagent1374 Contoh subagent

Details

58 58 

59 Jika Anda menerima prompt pengaturan terminal first-run Claude Code, ini sudah selesai. Prompt tersebut menjalankan `/terminal-setup` untuk Anda, yang mengaktifkan Option sebagai Meta dan mematikan bel audibel di profil Apple Terminal Anda.59 Jika Anda menerima prompt pengaturan terminal first-run Claude Code, ini sudah selesai. Prompt tersebut menjalankan `/terminal-setup` untuk Anda, yang mengaktifkan Option sebagai Meta dan mematikan bel audibel di profil Apple Terminal Anda.

60 60 

61 Dalam [mode pembaca layar](/docs/id/accessibility), `/terminal-setup` membiarkan pengaturan bel tidak berubah sehingga bel terminal tetap audibel. Sebelum v2.1.211, `/terminal-setup` mematikan bel bahkan dalam mode pembaca layar. Jika penjalankan sebelumnya mematikan bel, aktifkan kembali di Settings → Profiles → Advanced → "Audible bell".61 Dalam [mode pembaca layar](/docs/id/accessibility), `/terminal-setup` membiarkan pengaturan bel tidak berubah sehingga bel terminal tetap audibel. Jika penjalankan sebelumnya mematikan bel, aktifkan kembali di Settings → Profiles → Advanced → "Audible bell".

62 </Tab>62 </Tab>

63 63 

64 <Tab title="iTerm2">64 <Tab title="iTerm2">

tools-reference.md +23 −23

Details

26| `CronDelete` | Membatalkan tugas terjadwal berdasarkan ID | Tidak |26| `CronDelete` | Membatalkan tugas terjadwal berdasarkan ID | Tidak |

27| `CronList` | Mencantumkan semua tugas terjadwal dalam sesi | Tidak |27| `CronList` | Mencantumkan semua tugas terjadwal dalam sesi | Tidak |

28| `Edit` | Membuat pengeditan tertarget ke file tertentu. Lihat [Perilaku tool Edit](#edit-tool-behavior) | Ya |28| `Edit` | Membuat pengeditan tertarget ke file tertentu. Lihat [Perilaku tool Edit](#edit-tool-behavior) | Ya |

29| `EndConversation` | Mengakhiri sesi, dalam kasus langka input penyalahgunaan berkelanjutan atau ketika Anda meminta Claude untuk mendemonstrasikan tool. Memerlukan Claude Code v2.1.213 atau lebih baru. Lihat [Perilaku tool EndConversation](#endconversation-tool-behavior) | Tidak |29| `EndConversation` | Mengakhiri sesi, dalam kasus langka input penyalahgunaan berkelanjutan atau ketika Anda meminta Claude untuk mendemonstrasikan tool. Lihat [Perilaku tool EndConversation](#endconversation-tool-behavior) | Tidak |

30| `EnterPlanMode` | Beralih ke Plan Mode untuk merancang pendekatan sebelum coding | Tidak |30| `EnterPlanMode` | Beralih ke Plan Mode untuk merancang pendekatan sebelum coding | Tidak |

31| `EnterWorktree` | Membuat [git worktree](/docs/id/worktrees) terisolasi dan beralih ke dalamnya. Berikan `path` untuk beralih ke worktree yang ada alih-alih membuat yang baru. Pada entri pertama target mungkin worktree dari repositori saat ini atau, dalam ruang kerja multi-repo, dari repositori yang bersarang di dalamnya. Sebelum v2.1.203, worktree repositori bersarang ditolak. A `path` di luar `.claude/worktrees/` meminta persetujuan Anda sebelum memasuki, karena memindahkan direktori kerja sesi dan akses tulis ke lokasi tersebut. Pembuatan worktree baru dan path di bawah `.claude/worktrees/` tidak meminta. Sebelum v2.1.206, Claude memasuki path di luar `.claude/worktrees/` tanpa prompt. Dari dalam sesi worktree, atau dari subagent dengan direktori kerja yang disematkan seperti [`isolation: worktree`](/docs/id/sub-agents#supported-frontmatter-fields), hanya bentuk `path` yang tersedia dan target harus berada di bawah `.claude/worktrees/` dari repositori sesi | Ya |31| `EnterWorktree` | Membuat [git worktree](/docs/id/worktrees) terisolasi dan beralih ke dalamnya. Berikan `path` untuk beralih ke worktree yang ada alih-alih membuat yang baru. Pada entri pertama target mungkin worktree dari repositori saat ini atau, dalam ruang kerja multi-repo, dari repositori yang bersarang di dalamnya. Sebelum v2.1.203, worktree repositori bersarang ditolak. A `path` di luar `.claude/worktrees/` meminta persetujuan Anda sebelum memasuki, karena memindahkan direktori kerja sesi dan akses tulis ke lokasi tersebut. Pembuatan worktree baru dan path di bawah `.claude/worktrees/` tidak meminta. Sebelum v2.1.206, Claude memasuki path di luar `.claude/worktrees/` tanpa prompt. Dari dalam sesi worktree, atau dari subagent dengan direktori kerja yang disematkan seperti [`isolation: worktree`](/docs/id/sub-agents#supported-frontmatter-fields), hanya bentuk `path` yang tersedia dan target harus berada di bawah `.claude/worktrees/` dari repositori sesi | Ya |

32| `ExitPlanMode` | Menyajikan rencana untuk persetujuan dan keluar dari Plan Mode | Ya |32| `ExitPlanMode` | Menyajikan rencana untuk persetujuan dan keluar dari Plan Mode | Ya |


48| `SendFeedback` | Menyusun laporan umpan balik tentang Claude Code, mencakup masalah produk atau perilaku Claude sendiri dalam sesi, dan mengantreannya di mesin Anda untuk Anda tinjau. Claude Code tidak mengirim apa pun sampai Anda memilih untuk mengirim draf. Lihat [Perilaku tool SendFeedback](#sendfeedback-tool-behavior). Memerlukan Claude Code v2.1.238 atau lebih baru | Tidak |48| `SendFeedback` | Menyusun laporan umpan balik tentang Claude Code, mencakup masalah produk atau perilaku Claude sendiri dalam sesi, dan mengantreannya di mesin Anda untuk Anda tinjau. Claude Code tidak mengirim apa pun sampai Anda memilih untuk mengirim draf. Lihat [Perilaku tool SendFeedback](#sendfeedback-tool-behavior). Memerlukan Claude Code v2.1.238 atau lebih baru | Tidak |

49| `SendMessage` | Mengirim pesan ke agent lain: rekan tim [tim agent](/docs/id/agent-teams), [subagent yang dilanjutkan](/docs/id/sub-agents#resume-subagents) berdasarkan ID atau nama agent, atau salah satu sesi Claude Code Anda yang lain, di mesin ini atau di luar. Pesan ke sesi lain memerlukan Claude Code v2.1.224 atau lebih baru. [Pesan lintas-sesi](/docs/id/cross-session-messaging) mencakup sesi mana yang dapat dijangkau Claude, [seperti apa pesan ketika tiba](/docs/id/cross-session-messaging#what-a-message-looks-like), dan [bagaimana Claude mendapat pemberitahuan ketika sesi lain menjadi idle](/docs/id/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude dapat menyertakan input `summary` opsional, biasanya 5-10 kata, yang ditampilkan Claude Code sebagai pratinjau satu baris. Ketika Claude menghilangkannya pada [pesan teks biasa](/docs/id/cross-session-messaging#limitations), Claude Code menggunakan baris pertama pesan sebagai ringkasan. Claude Code memotong ringkasan lebih panjang dari 200 karakter dengan elipsis | Tidak |49| `SendMessage` | Mengirim pesan ke agent lain: rekan tim [tim agent](/docs/id/agent-teams), [subagent yang dilanjutkan](/docs/id/sub-agents#resume-subagents) berdasarkan ID atau nama agent, atau salah satu sesi Claude Code Anda yang lain, di mesin ini atau di luar. Pesan ke sesi lain memerlukan Claude Code v2.1.224 atau lebih baru. [Pesan lintas-sesi](/docs/id/cross-session-messaging) mencakup sesi mana yang dapat dijangkau Claude, [seperti apa pesan ketika tiba](/docs/id/cross-session-messaging#what-a-message-looks-like), dan [bagaimana Claude mendapat pemberitahuan ketika sesi lain menjadi idle](/docs/id/cross-session-messaging#get-a-notice-when-another-session-goes-idle). Claude dapat menyertakan input `summary` opsional, biasanya 5-10 kata, yang ditampilkan Claude Code sebagai pratinjau satu baris. Ketika Claude menghilangkannya pada [pesan teks biasa](/docs/id/cross-session-messaging#limitations), Claude Code menggunakan baris pertama pesan sebagai ringkasan. Claude Code memotong ringkasan lebih panjang dari 200 karakter dengan elipsis | Tidak |

50| `SendUserFile` | Mengirim file dari sesi ke Anda dengan keterangan opsional, sehingga laporan yang dihasilkan, diagram, tangkapan layar, atau artefak build mencapai perangkat Anda alih-alih hanya disebutkan dalam transkrip. Input `display` opsional mengontrol presentasi: `render` membuka file inline dalam klien, `attach` menampilkan kartu unduhan saja, dan ketika tidak diatur klien memutuskan berdasarkan jenis file. Tersedia ketika klien [Remote Control](/docs/id/remote-control) terhubung atau dalam [sesi cloud](/docs/id/claude-code-on-the-web). Pengiriman berjalan melalui infrastruktur yang dihosting Anthropic, jadi tool tidak tersedia di Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry | Tidak |50| `SendUserFile` | Mengirim file dari sesi ke Anda dengan keterangan opsional, sehingga laporan yang dihasilkan, diagram, tangkapan layar, atau artefak build mencapai perangkat Anda alih-alih hanya disebutkan dalam transkrip. Input `display` opsional mengontrol presentasi: `render` membuka file inline dalam klien, `attach` menampilkan kartu unduhan saja, dan ketika tidak diatur klien memutuskan berdasarkan jenis file. Tersedia ketika klien [Remote Control](/docs/id/remote-control) terhubung atau dalam [sesi cloud](/docs/id/claude-code-on-the-web). Pengiriman berjalan melalui infrastruktur yang dihosting Anthropic, jadi tool tidak tersedia di Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry | Tidak |

51| `ShareOnboardingGuide` | Mengunggah `ONBOARDING.md` dan mengembalikan tautan berbagi yang dapat dibuka rekan tim di Claude Code. Dipanggil dari `/team-onboarding` setelah panduan ditulis. Tersedia untuk pelanggan claude.ai pada paket Pro, Max, Team, dan Enterprise | Ya |51| `ShareOnboardingGuide` | Mengunggah `ONBOARDING.md` dan mengembalikan tautan berbagi yang dapat dibuka rekan tim di Claude Code. Dipanggil dari `/team-onboarding` setelah panduan ditulis. Tersedia untuk pelanggan claude.ai pada paket Team dan Enterprise | Ya |

52| `Skill` | Menjalankan [skill](/docs/id/skills#control-who-invokes-a-skill) dalam percakapan utama | Ya |52| `Skill` | Menjalankan [skill](/docs/id/skills#control-who-invokes-a-skill) dalam percakapan utama | Ya |

53| `SubagentHandback` | Mengirimkan laporan akhir subagent ke percakapan mana pun yang menerima hasil subagent tersebut. Disediakan hanya dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), ke subagent yang dijalankan tool Agent secara lokal selain [fork](/docs/id/sub-agents#fork-the-current-conversation), dan tersedia di CLI terminal, ekstensi IDE, sesi cloud, dan Agent SDK; pengklasifikasi meninjau laporan sebelum dikirimkan. Memerlukan Claude Code v2.1.271 atau lebih baru | Tidak |53| `SubagentHandback` | Mengirimkan laporan akhir subagent ke percakapan mana pun yang menerima hasil subagent tersebut. Disediakan hanya dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), ke subagent yang dijalankan tool Agent secara lokal selain [fork](/docs/id/sub-agents#fork-the-current-conversation), dan tersedia di CLI terminal, ekstensi IDE, sesi cloud, dan Agent SDK; pengklasifikasi meninjau laporan sebelum dikirimkan. Memerlukan Claude Code v2.1.271 atau lebih baru | Tidak |

54| `TaskCreate` | Membuat tugas baru dalam daftar tugas. Disediakan secara default hanya pada model yang tercantum di bawah [Ketersediaan tool Task](#task-tool-availability), dan pada model lain ketika Anda memilih untuk ikut serta | Tidak |54| `TaskCreate` | Membuat tugas baru dalam daftar tugas. Disediakan secara default hanya pada model yang tercantum di bawah [Ketersediaan tool Task](#task-tool-availability), dan pada model lain ketika Anda memilih untuk ikut serta | Tidak |


92 92 

93Tools yang tidak tercantum di sini, seperti `ExitPlanMode` atau `ShareOnboardingGuide`, hanya menerima nama tools tanpa specifier.93Tools yang tidak tercantum di sini, seperti `ExitPlanMode` atau `ShareOnboardingGuide`, hanya menerima nama tools tanpa specifier.

94 94 

95Aturan izin `Edit(...)` juga memberikan akses baca ke jalur yang sama, jadi Anda tidak perlu aturan `Read(...)` yang cocok. Aturan penolakan `Read(...)` juga memblokir tools Edit dan Write pada jalur yang sama, termasuk membuat file baru di sana, karena kedua tools mengubah konten yang harus dapat dibaca kembali oleh Claude. Pemeriksaan penolakan `Read` memerlukan Claude Code v2.1.208 atau lebih baru pada edit, dan v2.1.228 atau lebih baru pada write.95Aturan izin `Edit(...)` juga memberikan akses baca ke jalur yang sama, jadi Anda tidak perlu aturan `Read(...)` yang cocok. Aturan penolakan `Read(...)` juga memblokir tools Edit dan Write pada jalur yang sama, termasuk membuat file baru di sana, karena kedua tools mengubah konten yang harus dapat dibaca kembali oleh Claude. Untuk tool Write, pemeriksaan penolakan `Read` memerlukan Claude Code v2.1.228 atau lebih baru.

96 96 

97Field `matcher` Hook menggunakan nama tools tanpa format yang diparenthesiskan. Lihat [pola matcher](/docs/id/hooks#matcher-patterns) untuk aturan pencocokan. Untuk nama field yang setiap tools teruskan ke `tool_input` dalam hooks, lihat [referensi input PreToolUse](/docs/id/hooks#pretooluse-input).97Field `matcher` Hook menggunakan nama tools tanpa format yang diparenthesiskan. Lihat [pola matcher](/docs/id/hooks#matcher-patterns) untuk aturan pencocokan. Untuk nama field yang setiap tools teruskan ke `tool_input` dalam hooks, lihat [referensi input PreToolUse](/docs/id/hooks#pretooluse-input).

98 98 


100 Perilaku tool Agent100 Perilaku tool Agent

101</h2>101</h2>

102 102 

103Tool Agent menjalankan subagent dalam jendela konteks terpisah. Subagent bekerja melalui tugasnya secara otonom, kemudian mengembalikan hasilnya ke percakapan induk. Induk tidak melihat panggilan tool perantara atau output subagent, hanya hasil akhir itu. Dengan [agent teams](/docs/id/agent-teams) diaktifkan, panggilan yang membawa `name` dapat meluncurkan [teammate](/docs/id/agent-teams#how-claude-starts-agent-teams) sebagai gantinya, yang melaporkan kembali melalui pesan tim daripada dengan mengembalikan hasil.103Tool Agent menjalankan subagent dalam context window terpisah. Subagent bekerja melalui tugasnya secara otonom, kemudian mengembalikan hasilnya ke percakapan induk. Induk tidak melihat panggilan tool perantara atau output subagent, hanya hasil akhir itu. Tool yang sama juga dapat meluncurkan teammate atau fork:

104 104 

105Untuk membatasi berapa banyak putaran yang dijalankan subagent, atur `maxTurns` dalam [definisi subagent](/docs/id/sub-agents#supported-frontmatter-fields). Ketika subagent mencapai batas, Claude Code menandai hasil yang dikembalikan sebagai output parsial, dan Claude dapat [melanjutkan subagent](/docs/id/sub-agents#resume-subagents) untuk melanjutkan.105* **Teammate**: dengan [tim agent](/docs/id/agent-teams) diaktifkan, panggilan yang membawa `name` dapat meluncurkan [teammate](/docs/id/agent-teams#how-claude-starts-agent-teams) sebagai gantinya, yang melaporkan kembali melalui pesan tim daripada dengan mengembalikan hasil

106* **Fork**: di mana pun [fork mode](/docs/id/sub-agents#turn-fork-mode-on-or-off) aktif, tool ini dapat meluncurkan [forked subagent](/docs/id/sub-agents#fork-the-current-conversation), yang mewarisi percakapan induk penuh daripada memulai dari awal

106 107 

107Tool Agent yang sama juga meluncurkan [forked subagents](/docs/id/sub-agents#fork-the-current-conversation) di mana pun [fork mode](/docs/id/sub-agents#turn-fork-mode-on-or-off) aktif. Fork mewarisi percakapan induk penuh daripada memulai dari awal, berjalan di latar belakang terlepas dari [kasus yang tetap di latar depan](/docs/id/sub-agents#run-subagents-in-foreground-or-background), dan masih menampilkan prompt izin di terminal Anda. Sisa bagian ini menjelaskan subagent non-fork.108Untuk membatasi berapa banyak putaran yang dijalankan subagent, atur `maxTurns` dalam [definisi subagent](/docs/id/sub-agents#supported-frontmatter-fields). Ketika subagent mencapai batas, Claude Code menandai hasil yang dikembalikan sebagai output parsial, dan Claude dapat [melanjutkan subagent](/docs/id/sub-agents#resume-subagents) untuk melanjutkan.

108 109 

109Tool mana yang dapat digunakan subagent non-fork tergantung pada bidang `tools` dan `disallowedTools` dalam [definisi subagent](/docs/id/sub-agents):110Tool mana yang dapat digunakan subagent non-fork tergantung pada bidang `tools` dan `disallowedTools` dalam [definisi subagent](/docs/id/sub-agents):

110 111 


279 280 

280Alat Edit melakukan penggantian string yang tepat. Alat ini mengambil `old_string` dan `new_string` dan mengganti yang pertama dengan yang kedua. Alat ini tidak menggunakan regex atau fuzzy matching.281Alat Edit melakukan penggantian string yang tepat. Alat ini mengambil `old_string` dan `new_string` dan mengganti yang pertama dengan yang kedua. Alat ini tidak menggunakan regex atau fuzzy matching.

281 282 

282Pemeriksaan berikut harus lulus agar edit dapat diterapkan. Sebelum salah satu dari mereka, jalur yang cocok dengan [aturan deny `Read`](/docs/id/permissions#tool-specific-permission-rules) ditolak, termasuk membuat file baru di sana. Penolakan memerlukan Claude Code v2.1.208 atau lebih baru.283Pemeriksaan berikut harus lulus agar edit dapat diterapkan. Sebelum salah satu dari mereka, jalur yang cocok dengan [aturan deny `Read`](/docs/id/permissions#tool-specific-permission-rules) ditolak, termasuk membuat file baru di sana.

283 284 

284* **Read-before-edit**: Claude membaca file dalam percakapan saat ini sebelum mengeditnya, dan pembacaan yang terpotong dengan pemberitahuan [`PARTIAL view`](#large-files) tidak dihitung. Claude Opus 4.6, Claude Haiku 4.5, dan model yang lebih lama selalu memerlukan pembacaan. Model yang lebih baru dapat mengedit file yang belum dibaca ketika membacanya tidak memerlukan prompt izin dan alat Read tersedia.285* **Read-before-edit**: Claude membaca file dalam percakapan saat ini sebelum mengeditnya, dan pembacaan yang terpotong dengan pemberitahuan [`PARTIAL view`](#large-files) tidak dihitung. Claude Opus 4.6, Claude Haiku 4.5, dan model yang lebih lama selalu memerlukan pembacaan. Model yang lebih baru dapat mengedit file yang belum dibaca ketika membacanya tidak memerlukan prompt izin dan alat Read tersedia.

285* **Match**: `old_string` harus muncul dalam file persis seperti yang ditulis. Perbedaan spasi atau indentasi satu karakter saja sudah cukup untuk tidak cocok.286* **Match**: `old_string` harus muncul dalam file persis seperti yang ditulis. Perbedaan spasi atau indentasi satu karakter saja sudah cukup untuk tidak cocok.

286* **Uniqueness**: `old_string` harus muncul tepat satu kali. Ketika muncul lebih dari sekali, Claude baik menyediakan string yang lebih panjang dengan konteks sekitar yang cukup untuk menentukan satu kemunculan, atau menetapkan `replace_all: true` untuk mengganti semuanya.287* **Uniqueness**: `old_string` harus muncul tepat satu kali. Ketika muncul lebih dari sekali, Claude baik menyediakan string yang lebih panjang dengan konteks sekitar yang cukup untuk menentukan satu kemunculan, atau menetapkan `replace_all: true` untuk mengganti semuanya.

287 288 

288File yang berubah di disk setelah Claude terakhir membacanya masih dapat diedit ketika `old_string` cocok dengan konten saat ini dengan tepat dan jelas serta Claude Code dapat membaca file tanpa meminta. Pencocokan terhadap konten file saat ini menjaga keamanan ini, dan hasilnya mencatat bahwa file membawa perubahan lain sehingga Claude membacanya kembali sebelum edit yang bergantung pada konten sekitar. Dalam kasus lain, seperti `old_string` yang sudah usang atau yang cocok lebih dari sekali tanpa `replace_all`, Claude membaca file lagi sebelum mengedit. Penanganan yang santai terhadap file yang belum dibaca dan berubah memerlukan Claude Code v2.1.208 atau lebih baru; sebelum itu, Claude Code menolak edit apa pun ke file yang belum dibacanya dalam percakapan atau yang berubah di disk setelah pembacaan.289File yang berubah di disk setelah Claude terakhir membacanya masih dapat diedit ketika `old_string` cocok dengan konten saat ini dengan tepat dan jelas serta Claude Code dapat membaca file tanpa meminta. Pencocokan terhadap konten file saat ini menjaga keamanan ini, dan hasilnya mencatat bahwa file membawa perubahan lain sehingga Claude membacanya kembali sebelum edit yang bergantung pada konten sekitar. Dalam kasus lain, seperti `old_string` yang sudah usang atau yang cocok lebih dari sekali tanpa `replace_all`, Claude membaca file lagi sebelum mengedit.

289 290 

290Claude juga dapat mengedit file tanpa Read terpisah setelah melihat file tersebut dengan perintah Bash seperti `cat` atau `grep`. Perintah-perintah tersebut adalah `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep`, dan `rg`, masing-masing dijalankan pada satu file tanpa pipa atau pengalihan. Pencarian yang tidak menampilkan kecocokan apa pun tidak dihitung sebagai pembacaan, begitu pula perintah apa pun di luar daftar ini.291Claude juga dapat mengedit file tanpa Read terpisah setelah melihat file tersebut dengan perintah Bash seperti `cat` atau `grep`. Perintah-perintah tersebut adalah `cat`, `nl`, `bat`, `batcat`, `head`, `tail`, `sed -n 'X,Yp'`, `grep`, `egrep`, `fgrep`, dan `rg`, masing-masing dijalankan pada satu file tanpa pipa atau pengalihan. Pencarian yang tidak menampilkan kecocokan apa pun tidak dihitung sebagai pembacaan, begitu pula perintah apa pun di luar daftar ini.

291 292 


322 323 

323Tool muncul hanya ketika semua hal berikut berlaku:324Tool muncul hanya ketika semua hal berikut berlaku:

324 325 

325* **Version**: Claude Code v2.1.213 atau lebih baru.

326* **Model**: model sesi adalah Claude Opus 4.8, Claude Sonnet 5, Claude Fable 5, atau versi yang lebih baru dari salah satu keluarga tersebut.326* **Model**: model sesi adalah Claude Opus 4.8, Claude Sonnet 5, Claude Fable 5, atau versi yang lebih baru dari salah satu keluarga tersebut.

327* **Surface**: sesi terminal interaktif, termasuk sesi `claude` di terminal terintegrasi IDE, yang merupakan cara [plugin JetBrains](/docs/id/jetbrains) menjalankannya. Permukaan lain tidak menyertakan tool, seperti:327* **Surface**: sesi terminal interaktif, termasuk sesi `claude` di terminal terintegrasi IDE, yang merupakan cara [plugin JetBrains](/docs/id/jetbrains) menjalankannya. Permukaan lain tidak menyertakan tool, seperti:

328 * run `-p` non-interaktif328 * run `-p` non-interaktif


337 Perilaku Glob tool337 Perilaku Glob tool

338</h2>338</h2>

339 339 

340Glob tool menemukan file berdasarkan pola nama. Di Windows, ini adalah bagian dari set tool default. Di macOS, Linux, dan WSL, Claude Code mengeluarkan Glob dan [Grep](#grep-tool-behavior) dari set tool default, dan Claude mencari dengan `find` dan `grep` melalui Bash tool sebagai gantinya. Di shell Claude, kedua perintah tersebut menjalankan versi embedded dari `bfs` dan `ugrep`, dan pencarian mencapai hooks dan aturan izin Anda sebagai panggilan `Bash`.340Glob tool menemukan file berdasarkan pola nama. Di Windows, ini adalah bagian dari set tool default. Di macOS, Linux, dan WSL, Claude Code mengeluarkan Glob dan [Grep](#grep-tool-behavior) dari set tool default, dan Claude mencari dengan `find` dan `grep` melalui Bash tool sebagai gantinya. Di shell Claude, kedua perintah tersebut menjalankan versi embedded dari `bfs` dan `ugrep`, dan pencarian mencapai hook dan aturan izin Anda sebagai panggilan `Bash`.

341 341 

342Di macOS, Linux, dan WSL, Anda mendapatkan kembali Glob dan Grep tools dalam kasus-kasus ini:342Di macOS, Linux, dan WSL, Anda mendapatkan kembali Glob dan Grep tools dalam kasus-kasus ini:

343 343 


355 355 

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

357 357 

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

359 359 

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

361 361 

362<h2 id="grep-tool-behavior">362<h2 id="grep-tool-behavior">

363 Perilaku Grep tool363 Perilaku Grep tool


373 373 

374* `files_with_matches`: jalur file saja, tidak ada konten baris. Ini adalah default.374* `files_with_matches`: jalur file saja, tidak ada konten baris. Ini adalah default.

375* `content`: baris yang cocok dengan file dan nomor baris. Ketika parameter `offset` tool menunjuk melampaui kecocokan terakhir untuk pola yang memiliki kecocokan, Grep mengembalikan `No entries at this offset`, sehingga Claude memperluas atau mengatur ulang offset alih-alih menyimpulkan pola tidak cocok.375* `content`: baris yang cocok dengan file dan nomor baris. Ketika parameter `offset` tool menunjuk melampaui kecocokan terakhir untuk pola yang memiliki kecocokan, Grep mengembalikan `No entries at this offset`, sehingga Claude memperluas atau mengatur ulang offset alih-alih menyimpulkan pola tidak cocok.

376* `count`: jumlah kecocokan per file, diikuti dengan total di semua file yang cocok. Total mencakup setiap kecocokan bahkan ketika parameter `head_limit` atau `offset` tool memotong entri per-file yang terdaftar. Sebelum v2.1.208, total hanya menjumlahkan entri yang terdaftar.376* `count`: jumlah kecocokan per file, diikuti dengan total di semua file yang cocok. Total mencakup setiap kecocokan bahkan ketika parameter `head_limit` atau `offset` tool memotong entri per-file yang terdaftar.

377 377 

378Claude dapat membatasi hasil berdasarkan file dengan parameter `glob`, seperti `**/*.tsx`, atau berdasarkan bahasa dengan parameter `type`, seperti `py` atau `rust`. Secara default, pola cocok dalam satu baris. Claude dapat mengatur `multiline: true` untuk cocok di seluruh batas baris.378Claude dapat membatasi hasil berdasarkan file dengan parameter `glob`, seperti `**/*.tsx`, atau berdasarkan bahasa dengan parameter `type`, seperti `py` atau `rust`. Secara default, pola cocok dalam satu baris. Claude dapat mengatur `multiline: true` untuk cocok di seluruh batas baris.

379 379 


536 Pengkodean Windows dan kode keluar536 Pengkodean Windows dan kode keluar

537</h3>537</h3>

538 538 

539Di Windows, perilaku pengkodean PowerShell dan kode keluar berikut memerlukan Claude Code v2.1.214 atau lebih baru:

540 

541* Pengalihan dengan `>` dan `>>` menulis file UTF-8 di PowerShell 5.1539* Pengalihan dengan `>` dan `>>` menulis file UTF-8 di PowerShell 5.1

542* Claude Code mengkodekan teks yang disalurkan ke input standar perintah native sebagai UTF-8540* Claude Code mengkodekan teks yang disalurkan ke input standar perintah native sebagai UTF-8

543* Claude Code menangkap output kesalahan tanpa urutan pelarian ANSI541* Claude Code menangkap output kesalahan tanpa urutan pelarian ANSI

544* Perintah yang proses anak-anaknya menunggu input standar menerima end-of-file alih-alih hang542* Perintah yang proses anak-anaknya menunggu input standar menerima end-of-file alih-alih hang

545* Kode keluar 1 dari `where.exe` berarti tidak ada kecocokan, dan dari `fc.exe` dan `diff.exe` berarti file berbeda, jadi ketika perintah menghasilkan output, Claude Code memperlakukan kode keluar tersebut sebagai jawaban negatif yang valid daripada kesalahan perintah. Claude Code masih melaporkan bentuk yang disenyapkan, seperti `where.exe /Q` atau pengalihan ke `$null`, sebagai kegagalan pada kode keluar 1543* Kode keluar 1 dari `where.exe` berarti tidak ada kecocokan, dan dari `fc.exe` dan `diff.exe` berarti file berbeda, jadi ketika perintah menghasilkan output, Claude Code memperlakukan kode keluar tersebut sebagai jawaban negatif yang valid daripada kesalahan perintah. Claude Code masih melaporkan bentuk yang disenyapkan, seperti `where.exe /Q` atau pengalihan ke `$null`, sebagai kegagalan pada kode keluar 1

546 544 

547Sebelum v2.1.214, `>` di PowerShell 5.1 menulis file UTF-16LE, input yang disalurkan non-ASCII tiba sebagai `?`, dan skrip Python bisa crash dengan `UnicodeEncodeError` saat mencetak karakter non-ASCII.

548 

549<h3 id="preview-limitations">545<h3 id="preview-limitations">

550 Keterbatasan pratinjau546 Keterbatasan pratinjau

551</h3>547</h3>


561 557 

562Alat Read mengambil jalur file dan mengembalikan isinya dengan nomor baris. Claude diinstruksikan untuk selalu melewatkan jalur absolut.558Alat Read mengambil jalur file dan mengembalikan isinya dengan nomor baris. Claude diinstruksikan untuk selalu melewatkan jalur absolut.

563 559 

564Membaca file kosong mengembalikan pemberitahuan bahwa file ada tetapi isinya kosong, dan `offset` melampaui baris terakhir mengembalikan pemberitahuan yang memberikan jumlah baris file. Sebelum v2.1.208, membaca file kosong mengembalikan pemberitahuan past-the-end sebagai gantinya.560Membaca file kosong mengembalikan pemberitahuan bahwa file ada tetapi isinya kosong, dan `offset` melampaui baris terakhir mengembalikan pemberitahuan yang memberikan jumlah baris file.

565 561 

566Read menangani beberapa jenis file di luar teks biasa:562Read menangani beberapa jenis file di luar teks biasa:

567 563 

568* **Gambar**: PNG, JPG, dan format gambar lainnya dikembalikan sebagai konten visual yang dapat dilihat Claude, bukan sebagai byte mentah. Claude Code mengubah ukuran dan mengompresi ulang gambar besar agar sesuai dengan batas ukuran gambar model sebelum mengirimkannya, jadi Claude mungkin melihat versi yang diperkecil dari tangkapan layar besar. Gambar yang masih lebih besar dari 500KB setelah pengubahan ukuran tersebut dikodekan ulang sebagai JPEG dengan kualitas berkurang dengan dimensi pikselnya tidak berubah. Jika Claude melewatkan detail tingkat piksel halus dalam gambar besar, minta untuk memotong wilayah yang diminati terlebih dahulu, misalnya dengan ImageMagick melalui Bash.564* **Gambar**: File PNG, JPEG, GIF, dan WebP dikembalikan sebagai konten visual yang dapat dilihat Claude, bukan sebagai byte mentah. Claude Code mengubah ukuran dan mengompresi ulang gambar besar agar sesuai dengan batas ukuran gambar model sebelum mengirimkannya, jadi Claude mungkin melihat versi yang diperkecil dari tangkapan layar besar.

565 

566 Jika Claude melewatkan detail tingkat piksel halus dalam gambar besar, minta Claude untuk memotong wilayah yang Anda perlukan, misalnya dengan ImageMagick melalui Bash, lalu membaca hasil potongan tersebut.

569* **PDFs**: Claude membaca file `.pdf` pendek secara keseluruhan. Untuk PDF yang lebih panjang dari 10 halaman, file tersebut dibaca dalam rentang dengan parameter `pages`, seperti `"1-5"`, hingga 20 halaman sekaligus. Pembacaan rentang halaman merender halaman dengan `pdftoppm` dari poppler-utils, jadi instal dengan `brew install poppler` di macOS atau `apt-get install poppler-utils` di Debian dan Ubuntu. Di Windows dan platform lainnya, instal build poppler yang menempatkan `pdftoppm` di `PATH` Anda. Tanpa itu, pembacaan rentang halaman gagal dengan `pdftoppm is not installed`.567* **PDFs**: Claude membaca file `.pdf` pendek secara keseluruhan. Untuk PDF yang lebih panjang dari 10 halaman, file tersebut dibaca dalam rentang dengan parameter `pages`, seperti `"1-5"`, hingga 20 halaman sekaligus. Pembacaan rentang halaman merender halaman dengan `pdftoppm` dari poppler-utils, jadi instal dengan `brew install poppler` di macOS atau `apt-get install poppler-utils` di Debian dan Ubuntu. Di Windows dan platform lainnya, instal build poppler yang menempatkan `pdftoppm` di `PATH` Anda. Tanpa itu, pembacaan rentang halaman gagal dengan `pdftoppm is not installed`.

570* **Jupyter notebooks**: File `.ipynb` mengembalikan semua sel dengan keluarannya, termasuk kode, markdown, dan visualisasi. Notebook yang sel-selnya berjumlah lebih dari 256 KB, atau lebih dari [batas token](#large-files), mengembalikan kesalahan sebagai gantinya. Claude Code menolak untuk membaca file notebook di atas 100 MB; kesalahan memberi tahu Claude cara membaca sebagian dari notebook sebagai gantinya, seperti irisan sel, dengan perintah shell.568* **Jupyter notebooks**: File `.ipynb` mengembalikan semua sel dengan keluarannya, termasuk kode, markdown, dan visualisasi. Notebook yang sel-selnya berjumlah lebih dari 256 KB, atau lebih dari [batas token](#large-files), mengembalikan kesalahan sebagai gantinya. Claude Code menolak untuk membaca file notebook di atas 100 MB; kesalahan memberi tahu Claude cara membaca sebagian dari notebook sebagai gantinya, seperti irisan sel, dengan perintah shell.

571 569 

572Read hanya membaca file, bukan direktori. Claude mencantumkan isi direktori dengan perintah shell seperti `ls`.570Read hanya membaca file, bukan direktori. Claude mencantumkan isi direktori dengan perintah shell seperti `ls`.

573 571 

572Read menolak file yang ekstensinya dianggap biner, seperti `.xlsx`, `.parquet`, `.heic`, atau `.zip`. Claude tetap melanjutkan pekerjaan setelah penolakan: kesalahan tersebut menyarankan skill untuk jenis file itu jika tersedia, atau jika tidak, perintah shell atau skrip yang dapat membaca format tersebut. Jika Anda [menyebut dengan `@`](/docs/id/common-workflows#reference-files-and-directories) file yang ditolak oleh Read, Claude menerima jalur file tersebut tetapi tidak menerima isinya.

573 

574<h3 id="large-files">574<h3 id="large-files">

575 File besar575 File besar

576</h3>576</h3>


691* 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.691* 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.

692* 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.692* 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.

693* 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.693* 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.

694* Ketika langkah ekstraksi mengalami API yang kelebihan beban, Claude Code mencoba ulang dengan backoff; pengambilan yang masih gagal mengembalikan hasil kesalahan. Sebelum v2.1.212, teks kesalahan API dapat sampai ke Claude seolah-olah itu adalah konten halaman yang diekstrak.694* Ketika langkah ekstraksi mengalami API yang kelebihan beban, Claude Code mencoba ulang dengan backoff; pengambilan yang masih gagal mengembalikan hasil kesalahan.

695 695 

696Dalam mode Manual dan `acceptEdits` [permission modes](/docs/id/permission-modes), WebFetch meminta sebelum mengambil, kecuali untuk domain yang [permission rules](/docs/id/permissions#manage-permissions) Anda sudah izinkan atau tolak dan serangkaian domain dokumentasi pra-persetujuan bawaan yang mengambil tanpa prompt. Apa pun yang aturan Anda izinkan, pengambilan juga melewati [WebFetch domain safety check](/docs/id/data-usage#webfetch-domain-safety-check) terlebih dahulu; bagian itu mencakup apa yang dikirim pemeriksaan dan pengaturan yang melewatinya. Prompt menawarkan tiga opsi:696Dalam mode Manual dan `acceptEdits` [permission modes](/docs/id/permission-modes), WebFetch meminta sebelum mengambil, kecuali untuk domain yang [permission rules](/docs/id/permissions#manage-permissions) Anda sudah izinkan atau tolak dan serangkaian domain dokumentasi pra-persetujuan bawaan yang mengambil tanpa prompt. Apa pun yang aturan Anda izinkan, pengambilan juga melewati [WebFetch domain safety check](/docs/id/data-usage#webfetch-domain-safety-check) terlebih dahulu; bagian itu mencakup apa yang dikirim pemeriksaan dan pengaturan yang melewatinya. Prompt menawarkan tiga opsi:

697 697 


727 727 

728Alat ini dapat mengeluarkan hingga delapan pencarian backend per panggilan, menyempurnakan pencarian secara internal sebelum mengembalikan hasil. Claude dapat membatasi hasil dengan `allowed_domains` untuk menyertakan hanya host tertentu, atau `blocked_domains` untuk mengecualikannya. Kedua daftar tidak dapat digabungkan dalam satu panggilan.728Alat ini dapat mengeluarkan hingga delapan pencarian backend per panggilan, menyempurnakan pencarian secara internal sebelum mengembalikan hasil. Claude dapat membatasi hasil dengan `allowed_domains` untuk menyertakan hanya host tertentu, atau `blocked_domains` untuk mengecualikannya. Kedua daftar tidak dapat digabungkan dalam satu panggilan.

729 729 

730Ketika permintaan pencarian mengenai API yang kelebihan beban, Claude Code mencoba ulang dengan backoff; panggilan yang masih gagal mengembalikan hasil kesalahan. Sebelum v2.1.212, teks kesalahan API dapat mencapai Claude seolah-olah itu adalah hasil pencarian.730Ketika permintaan pencarian mengenai API yang kelebihan beban, Claude Code mencoba ulang dengan backoff; panggilan yang masih gagal mengembalikan hasil kesalahan.

731 731 

732Aturan izin WebSearch tidak memerlukan spesifier. Entri `WebSearch` kosong dalam `allow` atau `deny` adalah satu-satunya bentuk.732Aturan izin WebSearch tidak memerlukan spesifier. Entri `WebSearch` kosong dalam `allow` atau `deny` adalah satu-satunya bentuk.

733 733 


741 Batas pencarian sesi741 Batas pencarian sesi

742</h3>742</h3>

743 743 

744Sesi terminal interaktif memiliki batas 200 panggilan WebSearch. Pencarian dari percakapan utama dan dari [subagent](/docs/id/sub-agents), seperti fan-out penelitian paralel, dihitung terhadap batas yang sama. Batas ini memerlukan Claude Code v2.1.212 atau lebih baru.744Sesi terminal interaktif memiliki batas 200 panggilan WebSearch. Pencarian dari percakapan utama dan dari [subagent](/docs/id/sub-agents), seperti fan-out penelitian paralel, dihitung terhadap batas yang sama.

745 745 

746Selama sesi berada pada batas, pencarian muncul dalam percakapan sebagai panggilan yang tidak melakukan apa pun. Claude menerima pemberitahuan yang memberi tahu Claude untuk melanjutkan dengan informasi yang telah dikumpulkannya dan, jika memerlukan lebih banyak pencarian, untuk meminta Anda menaikkan batas.746Selama sesi berada pada batas, pencarian muncul dalam percakapan sebagai panggilan yang tidak melakukan apa pun. Claude menerima pemberitahuan yang memberi tahu Claude untuk melanjutkan dengan informasi yang telah dikumpulkannya, menyampaikan hal tersebut dalam jawabannya, dan, jika memerlukan lebih banyak pencarian, meminta Anda menaikkan batas.

747 747 

748Untuk mendapatkan lebih banyak pencarian, naikkan batas maksimum, tunggu hingga batas terisi ulang, atau mulai percakapan baru:748Untuk mendapatkan lebih banyak pencarian, naikkan batas maksimum, tunggu hingga batas terisi ulang, atau mulai percakapan baru:

749 749 

Details

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

18| Setelah Anda memperbarui Claude Code atau Agent SDK, panggilan tool ditolak di `claude -p` atau eksekusi SDK yang tidak meneruskan `--permission-mode`, `permissionMode`, atau `permission_mode` | [Tool calls denied in `claude -p` and Agent SDK runs](/docs/id/permission-modes#which-mode-a-non-interactive-run-starts-in) |

18| `API Error: 5xx`, `529 Overloaded`, `429`, kesalahan validasi permintaan | [Error reference](/docs/id/errors) |19| `API Error: 5xx`, `529 Overloaded`, `429`, kesalahan validasi permintaan | [Error reference](/docs/id/errors) |

19| `model not found` atau `you may not have access to it` | [Error reference](/docs/id/errors#theres-an-issue-with-the-selected-model) |20| `model not found` atau `you may not have access to it` | [Error reference](/docs/id/errors#theres-an-issue-with-the-selected-model) |

20| Perintah yang dijalankan Claude gagal dengan `Your disk quota is full`, `is full (ENOSPC)`, atau `Command output was lost` | [Error reference](/docs/id/errors#disk-quota-or-temp-filesystem-is-full) |21| Perintah yang dijalankan Claude gagal dengan `Your disk quota is full`, `is full (ENOSPC)`, atau `Command output was lost` | [Error reference](/docs/id/errors#disk-quota-or-temp-filesystem-is-full) |

vs-code.md +25 −9

Details

268 268 

269Klik tombol **Session history** di bagian atas panel Claude Code untuk mengakses riwayat percakapan Anda. Anda dapat mencari berdasarkan kata kunci atau menelusuri berdasarkan waktu.269Klik tombol **Session history** di bagian atas panel Claude Code untuk mengakses riwayat percakapan Anda. Anda dapat mencari berdasarkan kata kunci atau menelusuri berdasarkan waktu.

270 270 

271Klik percakapan mana pun untuk melanjutkannya dengan riwayat pesan lengkap. Jika percakapan sudah terbuka di tab lain pada jendela saat ini, mengkliknya akan beralih ke tab tersebut. Jika pesan tetap kosong pada awalnya, lihat [mengapa pesan kosong dan kapan pesan muncul](#a-resumed-conversation-is-blank-at-first). Untuk informasi lebih lanjut tentang melanjutkan sesi, lihat [Mengelola sesi](/docs/id/sessions).271Klik percakapan mana pun untuk melanjutkannya. Jika percakapan sudah terbuka di tab lain pada jendela saat ini, mengkliknya akan beralih ke tab tersebut. Jika percakapan terbuka tanpa menampilkan pesan apa pun, lihat [mengapa percakapan yang dilanjutkan awalnya kosong](#a-resumed-conversation-is-blank-at-first). Untuk informasi lebih lanjut tentang melanjutkan sesi, lihat [Mengelola sesi](/docs/id/sessions).

272 272 

273* **Judul sesi**: sesi baru menerima judul yang dihasilkan AI berdasarkan pesan pertama Anda.273* **Judul sesi**: sesi baru menerima judul yang dihasilkan AI berdasarkan pesan pertama Anda.

274* **Ganti nama dan arsipkan**: arahkan kursor ke sesi untuk menampilkan tindakan ini. Ganti nama untuk memberinya judul deskriptif, atau arsipkan untuk memindahkannya ke grup **Archived sessions** di bagian bawah daftar.274* **Ganti nama dan arsipkan**: arahkan kursor ke sesi untuk menampilkan tindakan ini. Ganti nama untuk memberinya judul deskriptif, atau arsipkan untuk memindahkannya ke grup **Archived sessions** di bagian bawah daftar.


414 414 

415Pembukaan tidak selesai ketika panel mengalami crash atau berhenti merespons saat memuat percakapan, atau ketika Anda memuat ulang atau menutup jendela dalam waktu sekitar tiga detik setelah percakapan dibuka. Percakapan tidak berubah dan tetap ada di [Riwayat sesi](#resume-past-conversations).415Pembukaan tidak selesai ketika panel mengalami crash atau berhenti merespons saat memuat percakapan, atau ketika Anda memuat ulang atau menutup jendela dalam waktu sekitar tiga detik setelah percakapan dibuka. Percakapan tidak berubah dan tetap ada di [Riwayat sesi](#resume-past-conversations).

416 416 

417* **Untuk tetap membukanya**: klik **Open it anyway** atau pilih percakapan dari Riwayat sesi. Jika percakapan terbuka dan panel tetap berfungsi, percakapan akan kembali setelah pemuatan ulang berikutnya seperti biasa. Jika panel berhenti merespons lagi, muat ulang jendela untuk kembali ke obrolan baru dengan pemberitahuan tersebut.417* **Untuk tetap membukanya**: klik **Open it anyway** atau pilih percakapan dari Riwayat sesi. Setelah percakapan selesai dibuka, percakapan tersebut [akan kembali setelah pemuatan ulang berikutnya seperti biasa](#continue-conversations-after-a-reload).

418* **Jika panel berhenti merespons saat percakapan dimuat**: muat ulang jendela. Obrolan baru akan terbuka.

418* **Untuk membiarkannya tertutup**: lanjutkan bekerja di obrolan baru. Pemberitahuan akan hilang setelah Anda mengirim prompt.419* **Untuk membiarkannya tertutup**: lanjutkan bekerja di obrolan baru. Pemberitahuan akan hilang setelah Anda mengirim prompt.

419 420 

420<h3 id="run-multiple-conversations">421<h3 id="run-multiple-conversations">


556 Plugin yang menggambar di panel557 Plugin yang menggambar di panel

557</h3>558</h3>

558 559 

559Plugin yang berisi [mod](/docs/id/plugins/mods/overview) dapat menggambar di panel obrolan. Menggambar memerlukan ekstensi versi 2.1.299 atau yang lebih baru dan sesi yang [mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching). Dari plugin seperti itu, Anda dapat melihat:560Plugin yang berisi [mod](/docs/id/plugins/mods/overview) dapat menggambar di panel obrolan. Menggambar memerlukan ekstensi versi 2.1.299 atau yang lebih baru. Sesi yang [tidak mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti sesi di Amazon Bedrock, memerlukan versi 2.1.304 atau yang lebih baru. Dari plugin seperti itu, Anda dapat melihat:

560 561 

561* Panel di samping percakapan atau di atas kotak prompt562* Panel di samping percakapan atau di atas kotak prompt

562* Toast atau baris status di atas kotak prompt563* Toast atau baris status di atas kotak prompt


624 625 

625Ketika sebuah perintah atau [subagent](/docs/id/sub-agents) membuat Claude menunggu lebih lama dari yang Anda inginkan, klik **Run in background** di bawah panggilan tool-nya dalam percakapan. Memerlukan Claude Code v2.1.287 atau yang lebih baru.626Ketika sebuah perintah atau [subagent](/docs/id/sub-agents) membuat Claude menunggu lebih lama dari yang Anda inginkan, klik **Run in background** di bawah panggilan tool-nya dalam percakapan. Memerlukan Claude Code v2.1.287 atau yang lebih baru.

626 627 

627* **Waktu**: tindakan ini muncul setelah sebuah perintah berjalan selama sekitar dua detik, atau segera setelah sebuah subagent dimulai.628* **Waktu**: tindakan ini muncul setelah sebuah perintah berjalan selama sekitar dua detik, atau segera setelah Claude mulai menunggu [subagent](/docs/id/sub-agents#run-subagents-in-foreground-or-background) yang dibuatnya dari percakapan utama.

628* **Setelah Anda mengklik**: Claude berhenti menunggu dan melanjutkan giliran. Perintah atau subagent tersebut tetap berjalan sebagai [tugas latar belakang](/docs/id/tools-reference#background-commands) yang memberi tahu Claude ketika selesai.629* **Setelah Anda mengklik**: Claude berhenti menunggu dan melanjutkan giliran. Perintah atau subagent tersebut tetap berjalan sebagai [tugas latar belakang](/docs/id/tools-reference#background-commands) yang memberi tahu Claude ketika selesai.

629 630 

630Untuk memeriksa tugas tersebut atau menghentikannya sementara itu, ketik `/tasks` di kotak prompt untuk membuka [peta agent](#use-the-prompt-box). Sebuah subagent tetap berada di posisinya dalam pohon agent di sana, dan sebuah perintah dicantumkan di bawah agent-agent tersebut dengan [output terbarunya pada kartunya](#monitor-background-processes).631Untuk memeriksa tugas tersebut atau menghentikannya sementara itu, ketik `/tasks` di kotak prompt untuk membuka [peta agent](#use-the-prompt-box). Sebuah subagent tetap berada di posisinya dalam pohon agent di sana, dan sebuah perintah dicantumkan di bawah agent-agent tersebut dengan [output terbarunya pada kartunya](#monitor-background-processes).

631 632 

633<h4 id="the-run-in-background-action-is-missing-under-a-subagent">

634 Tindakan Run in background tidak muncul di bawah subagent

635</h4>

636 

637Secara default di VS Code, subagent tidak menampilkan tindakan ini. Untuk mengetahui penyebabnya pada satu subagent, buka kartunya di [peta agent](#use-the-prompt-box) dan baca baris `Spawned by`:

638 

639* **`Spawned by the main agent`**: subagent tersebut dimulai di latar belakang, sehingga Claude tidak menunggunya dan Anda tidak perlu melakukan apa pun. Agar Claude menunggu subagent, lihat [Membiarkan Claude menunggu subagent](/docs/id/sub-agents#let-claude-wait-for-a-subagent).

640* **`Spawned by` menyebutkan subagent lain**: tindakan ini hanya muncul untuk subagent yang dibuat oleh agent utama, bukan untuk [subagent bersarang](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) yang ditunggu oleh subagent lain. Untuk mengakhiri subagent bersarang lebih awal, klik **Stop agent** pada kartunya. Subagent yang menunggu kemudian melanjutkan tanpa hasil tersebut.

641 

632<h3 id="monitor-background-processes">642<h3 id="monitor-background-processes">

633 Memantau proses latar belakang643 Memantau proses latar belakang

634</h3>644</h3>


1028 1038 

1029Jika satu rumus ditampilkan apa adanya sementara rumus lain di dekatnya di-typeset, periksa kemungkinan penyebab berikut:1039Jika satu rumus ditampilkan apa adanya sementara rumus lain di dekatnya di-typeset, periksa kemungkinan penyebab berikut:

1030 1040 

1031* **Terbaca sebagai sesuatu selain matematika**: teks `$…$` yang terbaca sebagai kata tetap ditampilkan apa adanya, seperti `$O(n log n)$`. Teks `$…$` yang diawali dengan angka, seperti `$30$` atau `$1/N$`, juga tetap ditampilkan apa adanya kecuali karakter seperti `=`, `+`, atau `^` menandainya sebagai matematika. Minta Claude untuk menggunakan blok `$$` pada barisnya sendiri sebagai gantinya, yang di-typeset oleh panel tanpa pemeriksaan ini.1041* **Rumus bersifat inline dan panel tidak memperlakukannya sebagai matematika**: minta Claude untuk mengirimnya lagi sebagai blok `$$` pada barisnya sendiri. Panel membiarkan rumus inline apa adanya ketika teks di antara pembatas `$…$`-nya:

1032* **Memiliki spasi tambahan, panjang, atau terpisah di beberapa baris**: `$ x^2 $` dengan spasi di dalam tanda dolar, konten `$…$` lebih dari 60 karakter, serta `$…$` atau `\(…\)` yang terpisah di dua baris tidak di-typeset. Minta Claude untuk menggunakan blok `$$` pada barisnya sendiri sebagai gantinya, yang tidak memiliki batasan-batasan ini.1042 * Lebih dari sekadar aritmetika sederhana tetapi tidak memiliki karakter seperti `=`, `+`, atau `^` yang menandainya sebagai matematika, seperti pada `$O(n log n)$`

1033* **TeX tidak dapat di-typeset**: rumus dengan kesalahan sintaksis, definisi makro seperti `\newcommand` atau `\def`, atau `%` yang tidak di-escape ditampilkan apa adanya. Minta Claude untuk menulis ulang rumus tersebut dengan kesalahan yang telah diperbaiki, tanpa makro, atau dengan `\%` untuk tanda persen.1043 * Diawali dengan angka dan tidak memiliki karakter semacam itu, seperti pada `$30$` dan `$1/N$`

1034* **Terlalu besar**: rumus yang lebih panjang dari 8.192 karakter, atau rumus yang akan digambar jauh lebih besar daripada sumbernya, ditampilkan apa adanya. Minta Claude untuk memecahnya menjadi rumus-rumus yang lebih kecil atau menuliskannya dengan lebih ringkas.1044 * Memiliki spasi di dalam tanda dolar, seperti pada `$ x^2 $`

1035* **Muncul setelah sejumlah besar matematika**: dalam satu blok teks pada sebuah respons, panel melakukan typeset rumus secara berurutan hingga batas tertentu. Rumus berikutnya yang melewati batas tersebut ditampilkan apa adanya. Minta Claude untuk mengirim ulang rumus yang Anda butuhkan secara terpisah.1045 * Lebih panjang dari 60 karakter

1046 * Terpisah di dua baris. Rumus `\(…\)` yang terpisah di dua baris juga tidak di-typeset.

1047* **Rumus memiliki kesalahan sintaksis TeX**: minta Claude untuk menulis ulang rumus tersebut dengan kesalahan yang telah diperbaiki.

1048* **Rumus mendefinisikan makro**: rumus dengan definisi makro seperti `\newcommand` atau `\def` ditampilkan apa adanya. Minta Claude untuk menulis ulang rumus tersebut tanpa makro.

1049* **Rumus berisi `%` yang tidak di-escape**: minta Claude untuk menulis ulang rumus tersebut dengan `\%` untuk tanda persen.

1050* **Rumus terlalu besar**: rumus yang lebih panjang dari 8.192 karakter, atau rumus yang hasil typeset-nya akan jauh lebih besar daripada sumber TeX-nya, ditampilkan apa adanya. Minta Claude untuk memecahnya menjadi rumus-rumus yang lebih kecil atau menuliskannya dengan lebih ringkas.

1051* **Rumus muncul setelah sejumlah besar matematika**: dalam satu blok teks pada sebuah respons, panel melakukan typeset rumus secara berurutan hingga batas tertentu. Rumus berikutnya yang melewati batas tersebut ditampilkan apa adanya. Minta Claude untuk mengirim ulang rumus yang Anda butuhkan secara terpisah.

1036 1052 

1037<h3 id="claude-code-never-responds">1053<h3 id="claude-code-never-responds">

1038 Claude Code tidak pernah merespons1054 Claude Code tidak pernah merespons

Details

78 <p className="digest-wins-title">Kemenangan lainnya</p>78 <p className="digest-wins-title">Kemenangan lainnya</p>

79 79 

80 <div className="digest-wins-grid">80 <div className="digest-wins-grid">

81 <div><code>claude agents</code> mendapatkan flag dispatch (<code>--add-dir</code>, <code>--settings</code>, <code>--mcp-config</code>, <code>--plugin-dir</code>, <code>--permission-mode</code>, <code>--model</code>, <code>--effort</code>, <code>--dangerously-skip-permissions</code>) untuk mengonfigurasi sesi latar belakang, dan <code>claude agents --cwd \<path></code> membatasi daftar sesi ke direktori</div>81 <div><code>claude agents</code> mendapatkan flag dispatch (`--add-dir`, `--settings`, `--mcp-config`, `--plugin-dir`, `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions`) untuk mengonfigurasi sesi latar belakang, dan `claude agents --cwd <path>` membatasi daftar sesi ke direktori</div>

82 <div>Hook baru <code>args: string\[]</code> bentuk exec menjalankan perintah secara langsung tanpa shell, jadi placeholder jalur tidak perlu dikutip</div>82 <div>Hook baru <code>args: string\[]</code> bentuk exec menjalankan perintah secara langsung tanpa shell, jadi placeholder jalur tidak perlu dikutip</div>

83 <div>Opsi konfigurasi <code>continueOnBlock</code> baru untuk hook <code>PostToolUse</code> mengirimkan alasan penolakan hook kembali ke Claude dan melanjutkan giliran alih-alih mengakhirinya</div>83 <div>Opsi konfigurasi <code>continueOnBlock</code> baru untuk hook <code>PostToolUse</code> mengirimkan alasan penolakan hook kembali ke Claude dan melanjutkan giliran alih-alih mengakhirinya</div>

84 <div>Bidang <code>terminalSequence</code> baru dalam output JSON hook memungkinkan hook memancarkan notifikasi desktop, judul jendela, dan bel tanpa terminal yang mengontrol</div>84 <div>Bidang <code>terminalSequence</code> baru dalam output JSON hook memungkinkan hook memancarkan notifikasi desktop, judul jendela, dan bel tanpa terminal yang mengontrol</div>

85 <div>Menu Rewind menambahkan "Summarize up to here" untuk mengompresi konteks sebelumnya sambil menjaga giliran terbaru tetap utuh</div>85 <div>Menu Rewind menambahkan "Summarize up to here" untuk mengompresi konteks sebelumnya sambil menjaga giliran terbaru tetap utuh</div>

86 <div>Remote Control, <code>/schedule</code>, konektor MCP Claude.ai, dan preferensi notifikasi sekarang dinonaktifkan ketika <code>ANTHROPIC\_API\_KEY</code>, <code>apiKeyHelper</code>, atau <code>ANTHROPIC\_AUTH\_TOKEN</code> diatur, bahkan bersama login Claude.ai; batalkan pengaturan kunci API untuk menggunakan fitur-fitur ini</div>86 <div>Remote Control, <code>/schedule</code>, konektor MCP claude.ai, dan preferensi notifikasi sekarang dinonaktifkan ketika <code>ANTHROPIC\_API\_KEY</code>, <code>apiKeyHelper</code>, atau <code>ANTHROPIC\_AUTH\_TOKEN</code> diatur, bahkan bersama login claude.ai; batalkan pengaturan kunci API untuk menggunakan fitur-fitur ini</div>

87 <div>Server stdio MCP sekarang menerima <code>CLAUDE\_PROJECT\_DIR</code> di lingkungan mereka, mencocokkan hook, dan konfigurasi plugin dapat mereferensikan <code>\${"{"}CLAUDE\_PROJECT\_DIR{"}"}</code> dalam perintah</div>87 <div>Server stdio MCP sekarang menerima <code>CLAUDE\_PROJECT\_DIR</code> di lingkungan mereka, mencocokkan hook, dan konfigurasi plugin dapat mereferensikan <code>\${"{"}CLAUDE\_PROJECT\_DIR{"}"}</code> dalam perintah</div>

88 <div><code>claude plugin details \<name></code> menampilkan inventaris komponen plugin dan biaya token per-sesi yang diproyeksikan, dan panel detail <code>/plugin</code> sekarang juga mencantumkan server LSP yang disediakan plugin</div>88 <div><code>claude plugin details \<name></code> menampilkan inventaris komponen plugin dan biaya token per-sesi yang diproyeksikan, dan panel detail <code>/plugin</code> sekarang juga mencantumkan server LSP yang disediakan plugin</div>

89 <div>Plugin dengan <code>SKILL.md</code> tingkat root dan tidak ada subdirektori <code>skills/</code> sekarang ditampilkan sebagai skill</div>89 <div>Plugin dengan <code>SKILL.md</code> tingkat root dan tidak ada subdirektori <code>skills/</code> sekarang ditampilkan sebagai skill</div>

workflows.md +0 −4

Details

153* prompt tugas terjadwal153* prompt tugas terjadwal

154* payload webhook atau komentar pull request yang disalurkan ke percakapan154* payload webhook atau komentar pull request yang disalurkan ke percakapan

155 155 

156<Note>

157 Sebelum v2.1.210, kata kunci memulai alur kerja dari salah satu rute ini juga, termasuk payload webhook atau komentar pull request yang disalurkan ke percakapan.

158</Note>

159 

160<h3 id="let-claude-decide-with-ultracode">156<h3 id="let-claude-decide-with-ultracode">

161 Biarkan Claude memutuskan dengan ultracode157 Biarkan Claude memutuskan dengan ultracode

162</h3>158</h3>

worktrees.md +6 −3

Details

9[git worktree](https://git-scm.com/docs/git-worktree) adalah direktori kerja terpisah dengan file dan branch sendiri, berbagi riwayat repositori dan remote yang sama dengan checkout utama Anda. Menjalankan setiap sesi Claude Code dalam worktree-nya sendiri memberikan salinan file terpisah untuk diedit, sehingga satu sesi dapat membangun fitur sementara sesi kedua memperbaiki bug.9[git worktree](https://git-scm.com/docs/git-worktree) adalah direktori kerja terpisah dengan file dan branch sendiri, berbagi riwayat repositori dan remote yang sama dengan checkout utama Anda. Menjalankan setiap sesi Claude Code dalam worktree-nya sendiri memberikan salinan file terpisah untuk diedit, sehingga satu sesi dapat membangun fitur sementara sesi kedua memperbaiki bug.

10 10 

11<Note>11<Note>

12 Worktrees memerlukan repositori git; untuk sistem kontrol versi lainnya, [konfigurasikan hook untuk menggantikan logika git](#non-git-version-control). Di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions), pilih opsi **worktree** saat Anda memulai sesi untuk memberikannya worktree-nya sendiri.12 Jika Anda menggunakan sistem kontrol versi lain atau aplikasi desktop, ikuti instruksi untuk pengaturan Anda:

13 

14 * **Sistem kontrol versi lainnya**: worktrees memerlukan repositori git; [konfigurasikan hook untuk menggantikan logika git](#non-git-version-control)

15 * **Aplikasi desktop**: lihat [Jalankan sesi dalam worktree-nya sendiri](/docs/id/desktop#run-a-session-in-its-own-worktree)

13</Note>16</Note>

14 17 

15Worktrees adalah salah satu dari beberapa cara untuk menjalankan Claude secara paralel. Mereka mengisolasi edit file. [Subagents](/docs/id/sub-agents) membagi pekerjaan di dalam satu sesi, dan [cross-session messaging](/docs/id/cross-session-messaging) memungkinkan Claude melewatkan temuan antar sesi di worktrees Anda. Lihat [Run agents in parallel](/docs/id/agents) untuk membandingkan pendekatan, atau lompat ke [Isolate subagents with worktrees](#isolate-subagents-with-worktrees) untuk menggunakan worktrees dan subagents bersama-sama.18Worktrees adalah salah satu dari beberapa cara untuk menjalankan Claude secara paralel. Mereka mengisolasi edit file. [Subagents](/docs/id/sub-agents) membagi pekerjaan di dalam satu sesi, dan [cross-session messaging](/docs/id/cross-session-messaging) memungkinkan Claude melewatkan temuan antar sesi di worktrees Anda. Lihat [Run agents in parallel](/docs/id/agents) untuk membandingkan pendekatan, atau lompat ke [Isolate subagents with worktrees](#isolate-subagents-with-worktrees) untuk menggunakan worktrees dan subagents bersama-sama.


270 273 

271Semua ini berlaku baik Anda membuat worktree dengan `--worktree` maupun dengan `git worktree add`.274Semua ini berlaku baik Anda membuat worktree dengan `--worktree` maupun dengan `git worktree add`.

272 275 

273Dalam sesi worktree yang Anda mulai dari [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions), Claude Code membaca konfigurasi proyek seperti pengaturan, hook, skill, agent, perintah, dan server [`.mcp.json`](/docs/id/mcp#project-scope) dari root checkout utama, bukan dari worktree. Perintah hook dijalankan di root tersebut, dan `${CLAUDE_PROJECT_DIR}` menunjuk ke sana. Untuk menjangkau file yang sedang dikerjakan Claude, baca path worktree dari [kolom input `cwd`](/docs/id/hooks#common-input-fields) milik hook. File `CLAUDE.md` dan `.claude/rules/` tetap dimuat dari worktree.276Dalam sesi worktree yang Anda mulai dari [aplikasi desktop](/docs/id/desktop#run-a-session-in-its-own-worktree), Claude Code membaca konfigurasi proyek seperti pengaturan, hook, skill, agent, perintah, dan server [`.mcp.json`](/docs/id/mcp#project-scope) dari root checkout utama. Perintah hook dijalankan di root tersebut, dan `${CLAUDE_PROJECT_DIR}` menunjuk ke sana. Untuk menjangkau file yang sedang dikerjakan Claude, baca path worktree dari [kolom input `cwd`](/docs/id/hooks#common-input-fields) milik hook. File `CLAUDE.md` dan `.claude/rules/` tetap dimuat dari worktree.

274 277 

275<h2 id="manage-worktrees-manually">278<h2 id="manage-worktrees-manually">

276 Kelola worktrees secara manual279 Kelola worktrees secara manual


434* [Cross-session messaging](/docs/id/cross-session-messaging): biarkan sesi dalam worktrees Anda melewatkan temuan satu sama lain437* [Cross-session messaging](/docs/id/cross-session-messaging): biarkan sesi dalam worktrees Anda melewatkan temuan satu sama lain

435* [Agent teams](/docs/id/agent-teams): koordinasikan beberapa sesi Claude secara otomatis438* [Agent teams](/docs/id/agent-teams): koordinasikan beberapa sesi Claude secara otomatis

436* [Manage sessions](/docs/id/sessions): beri nama, lanjutkan, dan beralih antar percakapan439* [Manage sessions](/docs/id/sessions): beri nama, lanjutkan, dan beralih antar percakapan

437* [Desktop parallel sessions](/docs/id/desktop#work-in-parallel-with-sessions): sesi yang didukung worktree dalam aplikasi desktop440* [Jalankan sesi Desktop di worktree-nya sendiri](/docs/id/desktop#run-a-session-in-its-own-worktree): sesi yang didukung worktree dalam aplikasi desktop