SpyBara
Go Premium

Documentation 2026-10-14 22:58 UTC to 2026-10-15 23:58 UTC

51 files changed +1,758 −539. 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

346 346 

347Ketika Anda resume, full context dari previous turns dipulihkan: files yang dibaca, analysis yang dilakukan, dan actions yang diambil. Anda juga dapat fork sesi untuk branch ke pendekatan berbeda tanpa memodifikasi original.347Ketika Anda resume, full context dari previous turns dipulihkan: files yang dibaca, analysis yang dilakukan, dan actions yang diambil. Anda juga dapat fork sesi untuk branch ke pendekatan berbeda tanpa memodifikasi original.

348 348 

349Lihat [Session management](/docs/id/agent-sdk/sessions) untuk full guide pada resume, continue, dan fork patterns. Untuk resume sessions di seluruh stateless containers atau serverless hosts, pass adapter [`session_store` / `sessionStore`](/docs/id/agent-sdk/session-storage) sehingga SDK mencerminkan transcripts ke backend Anda sendiri dan host lain dapat meresume mereka. Claude Code subprocess masih menulis ke local disk terlebih dahulu. Lihat [Dual-write architecture](/docs/id/agent-sdk/session-storage#dual-write-architecture) untuk copy mana yang bertahan lebih lama dari sesi fresh versus run yang dilanjutkan dari store, dan bagaimana cara menjaga local copy tetap ephemeral.349Lihat [Manajemen sesi](/docs/id/agent-sdk/sessions) untuk panduan lengkap tentang pola resume, continue, dan fork. Untuk melanjutkan sesi di seluruh container stateless atau host serverless, berikan adapter [`session_store` / `sessionStore`](/docs/id/agent-sdk/session-storage) agar SDK mencerminkan transkrip ke backend Anda sendiri dan host lain dapat melanjutkannya. Subprocess Claude Code tetap menulis ke disk lokal terlebih dahulu. Lihat [Arsitektur dual-write](/docs/id/agent-sdk/session-storage#dual-write-architecture) untuk mengetahui salinan mana yang bertahan lebih lama pada sesi baru dibandingkan dengan run yang dilanjutkan dari store, dan cara menjaga salinan lokal tetap ephemeral.

350 350 

351<Note>351<Note>

352 Di Python, `ClaudeSDKClient` menangani session IDs secara otomatis di seluruh multiple calls. Lihat [Python SDK reference](/docs/id/agent-sdk/python#choosing-between-query-and-claudesdkclient) untuk details.352 Di Python, `ClaudeSDKClient` menangani session IDs secara otomatis di seluruh multiple calls. Lihat [Python SDK reference](/docs/id/agent-sdk/python#choosing-between-query-and-claudesdkclient) untuk details.


522* **Membangun interactive UI?** Aktifkan [streaming](/docs/id/agent-sdk/streaming-output) untuk menampilkan live text dan tool calls saat loop berjalan.522* **Membangun interactive UI?** Aktifkan [streaming](/docs/id/agent-sdk/streaming-output) untuk menampilkan live text dan tool calls saat loop berjalan.

523* **Butuh tighter control atas apa yang dapat dilakukan agent?** Lock down tool access dengan [permissions](/docs/id/agent-sdk/permissions), dan gunakan [hooks](/docs/id/agent-sdk/hooks) untuk audit, block, atau transform tool calls sebelum dieksekusi.523* **Butuh tighter control atas apa yang dapat dilakukan agent?** Lock down tool access dengan [permissions](/docs/id/agent-sdk/permissions), dan gunakan [hooks](/docs/id/agent-sdk/hooks) untuk audit, block, atau transform tool calls sebelum dieksekusi.

524* **Menjalankan long atau expensive tasks?** Offload isolated work ke [subagents](/docs/id/agent-sdk/subagents) untuk keep main context Anda lean.524* **Menjalankan long atau expensive tasks?** Offload isolated work ke [subagents](/docs/id/agent-sdk/subagents) untuk keep main context Anda lean.

525* **Deploying sebagai service?** Lihat [Hosting the Agent SDK](/docs/id/agent-sdk/hosting) untuk container dan serverless guidance, dan [Session storage](/docs/id/agent-sdk/session-storage) untuk persist sessions ke backend Anda sendiri.525* **Melakukan deployment sebagai layanan?** Lihat [Hosting Agent SDK](/docs/id/agent-sdk/hosting) untuk panduan container dan serverless, dan [Penyimpanan sesi](/docs/id/agent-sdk/session-storage) untuk menyimpan sesi ke backend Anda sendiri.

526 526 

527Untuk broader conceptual picture dari agentic loop (bukan SDK-specific), lihat [How Claude Code works](/docs/id/how-claude-code-works). Untuk panduan praktis dalam merancang loops di Claude Code, dari turn-based hingga goal-based dan proactive loops, lihat [Loop engineering: getting started with loops](https://claude.com/blog/getting-started-with-loops) di blog.527Untuk broader conceptual picture dari agentic loop (bukan SDK-specific), lihat [How Claude Code works](/docs/id/how-claude-code-works). Untuk panduan praktis dalam merancang loops di Claude Code, dari turn-based hingga goal-based dan proactive loops, lihat [Loop engineering: getting started with loops](https://claude.com/blog/getting-started-with-loops) di blog.

Details

636| Keterbatasan | Deskripsi |636| Keterbatasan | Deskripsi |

637| - | - |637| - | - |

638| Hanya alat Write/Edit/NotebookEdit | Perubahan yang dilakukan melalui perintah Bash tidak dilacak |638| Hanya alat Write/Edit/NotebookEdit | Perubahan yang dilakukan melalui perintah Bash tidak dilacak |

639| Suntingan subagent | Suntingan yang diterapkan [subagent](/docs/id/agent-sdk/subagents) tidak dilacak atau dipulihkan, kecuali skill dengan `context: fork` yang berjalan di foreground; gunakan git untuk mengembalikan suntingan yang tidak dilacak |639| Suntingan subagent | Suntingan yang diterapkan [subagent](/docs/id/agent-sdk/subagents) tidak dilacak, kecuali skill dengan `context: fork` yang berjalan di foreground. Pemulihan hanya mengembalikan suntingan tersebut pada file yang sudah disunting oleh percakapan utama; gunakan git untuk mengembalikan sisanya |

640| Sesi yang sama | Checkpoint terikat pada sesi yang membuatnya |640| Sesi yang sama | Checkpoint terikat pada sesi yang membuatnya |

641| Konten file saja | Membuat, memindahkan, atau menghapus direktori tidak dibatalkan oleh pemulihan |641| Konten file saja | Membuat, memindahkan, atau menghapus direktori tidak dibatalkan oleh pemulihan |

642| File lokal | File jarak jauh atau jaringan tidak dilacak |642| File lokal | File jarak jauh atau jaringan tidak dilacak |

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# Hosting the Agent SDK5# Hosting Agent SDK

6 6 

7> Terapkan Agent SDK dalam produksi: arsitektur subprocess, persistensi sesi, penskalaan, observabilitas, dan isolasi multi-tenant untuk Docker, Kubernetes, dan penyedia sandbox.7> Terapkan Agent SDK dalam produksi: arsitektur subprocess, persistensi sesi, penskalaan, observabilitas, dan isolasi multi-tenant untuk Docker, Kubernetes, dan penyedia sandbox.

8 8 


255 255 

256* **Transkrip saja**: `SessionStore` mencerminkan transkrip, bukan file memori `CLAUDE.md` atau artefak direktori kerja lainnya. Pasang volume bersama atau sinkronkan yang lain secara terpisah.256* **Transkrip saja**: `SessionStore` mencerminkan transkrip, bukan file memori `CLAUDE.md` atau artefak direktori kerja lainnya. Pasang volume bersama atau sinkronkan yang lain secara terpisah.

257* **Cermin, bukan penggantian**: subprocess menulis ke disk lokal terlebih dahulu, dan SDK meneruskan salinan setiap batch ke toko. Transkrip lokal sesi segar bertahan lebih lama dari jalannya; sesi yang dilanjutkan dari toko menghapus salinan lokalnya di akhir, jadi toko menyimpan salinan yang tahan lama saja. Lihat [Arsitektur dual-write](/docs/id/agent-sdk/session-storage#dual-write-architecture).257* **Cermin, bukan penggantian**: subprocess menulis ke disk lokal terlebih dahulu, dan SDK meneruskan salinan setiap batch ke toko. Transkrip lokal sesi segar bertahan lebih lama dari jalannya; sesi yang dilanjutkan dari toko menghapus salinan lokalnya di akhir, jadi toko menyimpan salinan yang tahan lama saja. Lihat [Arsitektur dual-write](/docs/id/agent-sdk/session-storage#dual-write-architecture).

258* **Pesan `mirror_error`**: ketika SDK tidak dapat mengirimkan batch ke toko, SDK menghapus batch, memancarkan pesan `{ type: "system", subtype: "mirror_error" }`, dan melanjutkan kueri. Beri peringatan pada ini jika daya tahan toko penting. Lihat [Mirror writes adalah best-effort](/docs/id/agent-sdk/session-storage#mirror-writes-are-best-effort) untuk perilaku retry dan timeout.258* **Pesan `mirror_error`**: ketika SDK tidak dapat mengirimkan batch ke toko, SDK menghapus batch, memancarkan pesan `{ type: "system", subtype: "mirror_error" }`, dan melanjutkan kueri. Beri peringatan pada ini jika daya tahan toko penting. Lihat [Penulisan cerminan adalah best-effort](/docs/id/agent-sdk/session-storage#mirror-writes-are-best-effort) untuk perilaku retry dan timeout.

259 259 

260<h3 id="observability">260<h3 id="observability">

261 Observabilitas261 Observabilitas


391| Tidak ada batas waktu dinding per subagen | Batasi setiap [subagen](/docs/id/agent-sdk/subagents) dengan `maxTurns` di `AgentDefinition`-nya. `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` menetapkan watchdog stall yang aktif ketika subagen berhenti menghasilkan output; ini bukan batas waktu runtime total. |391| Tidak ada batas waktu dinding per subagen | Batasi setiap [subagen](/docs/id/agent-sdk/subagents) dengan `maxTurns` di `AgentDefinition`-nya. `CLAUDE_ASYNC_AGENT_STALL_TIMEOUT_MS` menetapkan watchdog stall yang aktif ketika subagen berhenti menghasilkan output; ini bukan batas waktu runtime total. |

392 392 

393<h2 id="troubleshoot-deployment-failures">393<h2 id="troubleshoot-deployment-failures">

394 Troubleshoot deployment failures394 Pemecahan masalah kegagalan deployment

395</h2>395</h2>

396 396 

397Gunakan bagian ini ketika agen yang berfungsi di mesin Anda gagal dalam layanan yang diterapkan. Setiap item di bawah ini menamai kegagalan dan menautkan entri yang mencakupnya:397Gunakan bagian ini ketika agen yang berfungsi di mesin Anda gagal dalam layanan yang diterapkan. Setiap item di bawah ini menamai kegagalan dan menautkan entri yang mencakupnya:

398 398 

399* **CLI not found at service start**: di Python, kontainer atau manajer layanan menjalankan aplikasi Anda dengan `PATH` yang berbeda dari shell Anda, jadi instalasi yang berfungsi secara lokal tidak terlihat oleh proses. Di TypeScript, pembangunan gambar melewatkan dependensi opsional SDK, atau `pathToClaudeCodeExecutable` menunjuk ke file yang tidak ada di gambar. Lihat [Claude Code not found](/docs/id/agent-sdk/troubleshooting#clinotfounderror-claude-code-not-found).399* **CLI tidak ditemukan saat layanan dimulai**: di Python, kontainer atau manajer layanan menjalankan aplikasi Anda dengan `PATH` yang berbeda dari shell Anda, jadi instalasi yang berfungsi secara lokal tidak terlihat oleh proses. Di TypeScript, pembangunan gambar melewatkan dependensi opsional SDK, atau `pathToClaudeCodeExecutable` menunjuk ke file yang tidak ada di gambar. Lihat [Claude Code not found](/docs/id/agent-sdk/troubleshooting#clinotfounderror-claude-code-not-found).

400* **CLI present in the image but won't launch**: Claude Code tidak dapat dimulai dari biner yang tidak cocok dengan arsitektur kontainer atau libc, atau dari file yang kehilangan izin eksekusinya dalam pembangunan gambar. Lihat [Failed to start Claude Code](/docs/id/agent-sdk/troubleshooting#cliconnectionerror-failed-to-start-claude-code).400* **CLI ada di gambar tetapi tidak dapat dijalankan**: Claude Code tidak dapat dimulai dari biner yang tidak cocok dengan arsitektur kontainer atau libc, atau dari file yang kehilangan izin eksekusinya dalam pembangunan gambar. Lihat [Failed to start Claude Code](/docs/id/agent-sdk/troubleshooting#cliconnectionerror-failed-to-start-claude-code).

401* **Claude Code process exits mid-run**: kesalahan yang diterima aplikasi Anda tergantung pada bahasa SDK dan pada apakah CLI melaporkan hasil kesalahan terlebih dahulu. Entri di bawah [CLI process exit](/docs/id/agent-sdk/troubleshooting#cli-process-exit) mencakup setiap pesan.401* **Proses Claude Code berhenti di tengah eksekusi**: kesalahan yang diterima aplikasi Anda tergantung pada bahasa SDK dan pada apakah CLI melaporkan hasil kesalahan terlebih dahulu. Entri di bawah [CLI process exit](/docs/id/agent-sdk/troubleshooting#cli-process-exit) mencakup setiap pesan.

402 402 

403<h2 id="next-steps">403<h2 id="next-steps">

404 Langkah Berikutnya404 Langkah Berikutnya

405</h2>405</h2>

406 406 

407* [Hosting cookbook](https://github.com/anthropics/claude-cookbooks/blob/main/claude_agent_sdk/07_Hosting_the_agent.ipynb): panduan notebook dengan [kode yang dapat digunakan](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting) untuk Docker, Modal, dan Kubernetes.407* [Cookbook hosting](https://github.com/anthropics/claude-cookbooks/blob/main/claude_agent_sdk/07_Hosting_the_agent.ipynb): panduan notebook dengan [kode yang dapat digunakan](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting) untuk Docker, Modal, dan Kubernetes.

408* [Penyimpanan sesi](/docs/id/agent-sdk/session-storage): pertahankan transkrip di seluruh host dengan adaptor `SessionStore`.408* [Penyimpanan sesi](/docs/id/agent-sdk/session-storage): pertahankan transkrip di seluruh host dengan adaptor `SessionStore`.

409* [Observability](/docs/id/agent-sdk/observability): ekspor jejak OTEL, metrik, dan log ke kolektor Anda.409* [Observability](/docs/id/agent-sdk/observability): ekspor jejak OTEL, metrik, dan log ke kolektor Anda.

410* [Secure deployment](/docs/id/agent-sdk/secure-deployment): kontrol jaringan, manajemen kredensial, dan pengerasan isolasi.410* [Deployment yang aman](/docs/id/agent-sdk/secure-deployment): kontrol jaringan, manajemen kredensial, dan pengerasan isolasi.

411* [Cost tracking](/docs/id/agent-sdk/cost-tracking): akuntansi token dan biaya per-sesi.411* [Pelacakan biaya](/docs/id/agent-sdk/cost-tracking): akuntansi token dan biaya per-sesi.

Details

205 205 

206**Perilaku saat ini:** Menghilangkan `settingSources` pada `query()` memuat pengaturan pengguna, proyek, dan filesystem lokal, sesuai dengan CLI. Ini mencakup `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, file CLAUDE.md, dan perintah kustom.206**Perilaku saat ini:** Menghilangkan `settingSources` pada `query()` memuat pengaturan pengguna, proyek, dan filesystem lokal, sesuai dengan CLI. Ini mencakup `~/.claude/settings.json`, `.claude/settings.json`, `.claude/settings.local.json`, file CLAUDE.md, dan perintah kustom.

207 207 

208Untuk menjalankan terisolasi dari pengaturan filesystem, teruskan `settingSources: []`, atau `setting_sources=[]` di Python. Lihat [Control filesystem settings with settingSources](/docs/id/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) untuk mengetahui apa yang dimuat setiap sumber.208Untuk menjalankan terisolasi dari pengaturan filesystem, teruskan `settingSources: []`, atau `setting_sources=[]` di Python. Lihat [Kontrol pengaturan filesystem dengan settingSources](/docs/id/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) untuk mengetahui apa yang dimuat setiap sumber.

209 209 

210Isolasi sangat penting untuk pipeline CI/CD, aplikasi yang diterapkan, lingkungan pengujian, dan sistem multi-tenant di mana kustomisasi lokal tidak boleh bocor.210Isolasi sangat penting untuk pipeline CI/CD, aplikasi yang diterapkan, lingkungan pengujian, dan sistem multi-tenant di mana kustomisasi lokal tidak boleh bocor.

211 211 

212<Note>212<Note>

213 Python SDK 0.1.59 dan lebih awal memperlakukan daftar kosong sama dengan menghilangkan opsi, jadi tingkatkan sebelum mengandalkan `setting_sources=[]`. Lihat [What settingSources does not control](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk input yang dibaca bahkan ketika `settingSources` adalah `[]`.213 Python SDK 0.1.59 dan lebih awal memperlakukan daftar kosong sama dengan menghilangkan opsi, jadi tingkatkan sebelum mengandalkan `setting_sources=[]`. Lihat [Apa yang tidak dikontrol settingSources](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) untuk input yang dibaca bahkan ketika `settingSources` adalah `[]`.

214</Note>214</Note>

215 215 

216<h2 id="next-steps">216<h2 id="next-steps">

Details

15 15 

16Agent SDK dapat mengekspor data ini sebagai OpenTelemetry traces, metrics, dan log events ke backend apa pun yang menerima OpenTelemetry Protocol (OTLP), baik platform observability yang di-host atau collector yang di-host sendiri.16Agent SDK dapat mengekspor data ini sebagai OpenTelemetry traces, metrics, dan log events ke backend apa pun yang menerima OpenTelemetry Protocol (OTLP), baik platform observability yang di-host atau collector yang di-host sendiri.

17 17 

18Panduan ini menjelaskan bagaimana SDK memancarkan telemetry, cara mengonfigurasi ekspor, dan cara menandai dan memfilter data setelah mencapai backend Anda. Untuk membaca penggunaan token dan biaya langsung dari aliran respons SDK alih-alih mengekspor ke backend, lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking).18Panduan ini menjelaskan bagaimana SDK memancarkan telemetry, cara mengonfigurasi ekspor, dan cara menandai dan memfilter data setelah mencapai backend Anda. Untuk membaca penggunaan token dan biaya langsung dari aliran respons SDK alih-alih mengekspor ke backend, lihat [Lacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking).

19 

20<Note>

21 Untuk Claude API atau Managed Agents, lihat [OpenTelemetry untuk Claude API](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

22</Note>

19 23 

20<h2 id="how-telemetry-flows-from-the-sdk">24<h2 id="how-telemetry-flows-from-the-sdk">

21 Bagaimana telemetry mengalir dari SDK25 Bagaimana telemetry mengalir dari SDK


262 266 

263Panduan-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:

264 268 

265* [Track cost and usage](/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 token dan cost data dari message stream tanpa backend eksternal.

266* [Hosting the 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.

267* [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

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

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

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

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

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

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

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


1007| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Subagent yang didefinisikan secara programatis |1007| `agents` | `dict[str, AgentDefinition] \| None` | `None` | Subagent yang didefinisikan secara programatis |

1008| `plugins` | `list[SdkPluginConfig]` | `[]` | Muat plugin kustom dari jalur lokal. Lihat [Plugins](/docs/id/agent-sdk/plugins) untuk detail |1008| `plugins` | `list[SdkPluginConfig]` | `[]` | Muat plugin kustom dari jalur lokal. Lihat [Plugins](/docs/id/agent-sdk/plugins) untuk detail |

1009| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Konfigurasi perilaku sandbox secara programatis. Lihat [Sandbox settings](#sandboxsettings) untuk detail |1009| `sandbox` | [`SandboxSettings`](#sandboxsettings) ` \| None` | `None` | Konfigurasi perilaku sandbox secara programatis. Lihat [Sandbox settings](#sandboxsettings) untuk detail |

1010| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Kontrol pengaturan filesystem mana yang akan dimuat. Teruskan `[]` untuk menonaktifkan pengaturan pengguna, proyek, dan lokal. Dengan `skills` diatur dan field ini tidak diatur, hanya sumber pengguna dan proyek yang dimuat. Atur `setting_sources` secara eksplisit untuk menyimpan pengaturan lokal. Pengaturan kebijakan terkelola endpoint dimuat terlepas dari itu; pengaturan yang dikelola server diambil ketika sesi mengautentikasi dengan kredensial organisasi pada [konfigurasi yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Untuk input yang dibaca terlepas dari opsi ini, lihat [What settingSources does not control](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) |1010| `setting_sources` | `list[SettingSource] \| None` | `None` (CLI defaults: all sources) | Kontrol pengaturan filesystem mana yang akan dimuat. Teruskan `[]` untuk menonaktifkan pengaturan pengguna, proyek, dan lokal. Dengan `skills` diatur dan field ini tidak diatur, hanya sumber pengguna dan proyek yang dimuat. Atur `setting_sources` secara eksplisit untuk menyimpan pengaturan lokal. Pengaturan kebijakan terkelola endpoint dimuat terlepas dari itu; pengaturan yang dikelola server diambil ketika sesi mengautentikasi dengan kredensial organisasi pada [konfigurasi yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Untuk input yang dibaca terlepas dari opsi ini, lihat [Apa yang tidak dikontrol settingSources](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

1011| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills yang tersedia untuk sesi. Teruskan `"all"` untuk mengaktifkan setiap skill yang ditemukan, atau daftar nama skill. Teruskan nama yang tepat saja. SDK menolak nama yang salah bentuk dan bentuk wildcard dengan `ValueError` sebelum memulai proses Claude Code; pemeriksaan ini memerlukan Python Agent SDK 0.2.129 atau lebih baru. Ketika diatur, SDK secara otomatis menambahkan tool Skill ke `allowed_tools`. Jika Anda juga meneruskan `tools`, sertakan `"Skill"` dalam daftar itu. Lihat [Skills](/docs/id/agent-sdk/skills) |1011| `skills` | `list[str] \| Literal["all"] \| None` | `None` | Skills yang tersedia untuk sesi. Teruskan `"all"` untuk mengaktifkan setiap skill yang ditemukan, atau daftar nama skill. Teruskan nama yang tepat saja. SDK menolak nama yang salah bentuk dan bentuk wildcard dengan `ValueError` sebelum memulai proses Claude Code; pemeriksaan ini memerlukan Python Agent SDK 0.2.129 atau lebih baru. Ketika diatur, SDK secara otomatis menambahkan tool Skill ke `allowed_tools`. Jika Anda juga meneruskan `tools`, sertakan `"Skill"` dalam daftar itu. Lihat [Skills](/docs/id/agent-sdk/skills) |

1012| `max_thinking_tokens` | `int \| None` | `None` | *Deprecated* - Token maksimal untuk blok thinking. Gunakan `thinking` sebagai gantinya |1012| `max_thinking_tokens` | `int \| None` | `None` | *Deprecated* - Token maksimal untuk blok thinking. Gunakan `thinking` sebagai gantinya |

1013| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Mengontrol perilaku extended thinking. Diutamakan daripada `max_thinking_tokens` |1013| `thinking` | [`ThinkingConfig`](#thinkingconfig) ` \| None` | `None` | Mengontrol perilaku extended thinking. Diutamakan daripada `max_thinking_tokens` |

1014| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Tingkat effort untuk kedalaman thinking. Lihat [adjust the effort level](/docs/id/model-config#adjust-effort-level) |1014| `effort` | [`EffortLevel`](#effortlevel) ` \| None` | `None` | Tingkat effort untuk kedalaman thinking. Lihat [adjust the effort level](/docs/id/model-config#adjust-effort-level) |

1015| `session_store` | [`SessionStore`](/docs/id/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Cerminkan transkrip sesi ke backend eksternal sehingga host lain dapat melanjutkannya. Lihat [Persist sessions to external storage](/docs/id/agent-sdk/session-storage) |1015| `session_store` | [`SessionStore`](/docs/id/agent-sdk/session-storage#the-sessionstore-interface) ` \| None` | `None` | Cerminkan transkrip sesi ke backend eksternal sehingga host lain dapat melanjutkannya. Lihat [Simpan sesi ke penyimpanan eksternal](/docs/id/agent-sdk/session-storage) |

1016| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Kapan membuang entri transkrip yang dicerminkan ke `session_store`. `"batched"` membuang sekali per giliran atau ketika buffer penuh; `"eager"` memicu pembilasan latar belakang setelah setiap frame. Diabaikan ketika `session_store` adalah `None` |1016| `session_store_flush` | `Literal["batched", "eager"]` | `"batched"` | Kapan membuang entri transkrip yang dicerminkan ke `session_store`. `"batched"` membuang sekali per giliran atau ketika buffer penuh; `"eager"` memicu pembilasan latar belakang setelah setiap frame. Diabaikan ketika `session_store` adalah `None` |

1017| `load_timeout_ms` | `int` | `60000` | Per-call timeout untuk `session_store.load()` dan `list_subkeys()` selama materialisasi resume, dalam milidetik |1017| `load_timeout_ms` | `int` | `60000` | Per-call timeout untuk `session_store.load()` dan `list_subkeys()` selama materialisasi resume, dalam milidetik |

1018| `task_budget` | `TaskBudget \| None` | `None` | Budget token sisi API. Dikirim sebagai `output_config.task_budget` dengan header beta `task-budgets-2026-03-13`. Teruskan `{"total": <int>}`. |1018| `task_budget` | `TaskBudget \| None` | `None` | Budget token sisi API. Dikirim sebagai `output_config.task_budget` dengan header beta `task-budgets-2026-03-13`. Teruskan `{"total": <int>}`. |


1144 Perilaku default1144 Perilaku default

1145</h4>1145</h4>

1146 1146 

1147Ketika `setting_sources` dihilangkan atau `None` dan `skills` tidak diatur, `query()` memuat pengaturan filesystem yang sama seperti CLI Claude Code: pengguna, proyek, dan lokal. Dengan `skills` diatur, baris [`setting_sources`](#claudeagentoptions) menjelaskan default saat ini. Pengaturan kebijakan terkelola endpoint dimuat dalam semua kasus; pengaturan yang dikelola server diambil ketika sesi mengautentikasi dengan kredensial organisasi pada [konfigurasi yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Untuk informasi lebih lanjut, lihat [What settingSources does not control](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control).1147Ketika `setting_sources` dihilangkan atau `None` dan `skills` tidak diatur, `query()` memuat pengaturan filesystem yang sama seperti CLI Claude Code: pengguna, proyek, dan lokal. Dengan `skills` diatur, baris [`setting_sources`](#claudeagentoptions) menjelaskan default saat ini. Pengaturan kebijakan terkelola endpoint dimuat dalam semua kasus; pengaturan yang dikelola server diambil ketika sesi mengautentikasi dengan kredensial organisasi pada [konfigurasi yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Untuk informasi lebih lanjut, lihat [Apa yang tidak dikontrol settingSources](/docs/id/agent-sdk/claude-code-features#what-settingsources-does-not-control).

1148 1148 

1149<h4 id="why-use-setting_sources">1149<h4 id="why-use-setting_sources">

1150 Mengapa menggunakan setting\_sources1150 Mengapa menggunakan setting\_sources


1923| `cacheCreationInputTokens` | `int` | Token pembuatan cache untuk model ini. |1923| `cacheCreationInputTokens` | `int` | Token pembuatan cache untuk model ini. |

1924| `webSearchRequests` | `int` | Permintaan pencarian web yang dibuat oleh model ini. |1924| `webSearchRequests` | `int` | Permintaan pencarian web yang dibuat oleh model ini. |

1925| `thinkingTokens` | `int` | Token thinking yang dihasilkan oleh model ini, sudah dihitung dalam `outputTokens`. Tidak ada sampai giliran berjalan pada versi Claude Code yang mencatatnya, dan tidak dideklarasikan pada TypedDict, jadi bacanya dengan `.get()`. Memerlukan Python Agent SDK 0.2.150 atau lebih baru, yang CLI bundel-nya mencatatnya. |1925| `thinkingTokens` | `int` | Token thinking yang dihasilkan oleh model ini, sudah dihitung dalam `outputTokens`. Tidak ada sampai giliran berjalan pada versi Claude Code yang mencatatnya, dan tidak dideklarasikan pada TypedDict, jadi bacanya dengan `.get()`. Memerlukan Python Agent SDK 0.2.150 atau lebih baru, yang CLI bundel-nya mencatatnya. |

1926| `costUSD` | `float` | Biaya yang diperkirakan dalam USD untuk model ini, dihitung sisi klien. Lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) untuk peringatan penagihan. |1926| `costUSD` | `float` | Biaya yang diperkirakan dalam USD untuk model ini, dihitung sisi klien. Lihat [Lacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking) untuk peringatan penagihan. |

1927| `contextWindow` | `int` | Ukuran context window untuk model ini. |1927| `contextWindow` | `int` | Ukuran context window untuk model ini. |

1928| `maxOutputTokens` | `int` | Batas token output maksimal untuk model ini. |1928| `maxOutputTokens` | `int` | Batas token output maksimal untuk model ini. |

1929| `canonicalModel` | `str` | ID model kanonik yang digunakan untuk pencarian harga. Mungkin berbeda dari string model mentah yang menjadi kunci entri, seperti ID spesifik penyedia atau alias. Tidak selalu ada. |1929| `canonicalModel` | `str` | ID model kanonik yang digunakan untuk pencarian harga. Mungkin berbeda dari string model mentah yang menjadi kunci entri, seperti ID spesifik penyedia atau alias. Tidak selalu ada. |

Details

156 156 

157Contoh berikut memantau aliran asisten untuk blok `tool_use` `TaskCreate` dan `TaskUpdate` dan menyimpan peta tugas yang dikunci berdasarkan ID tugas dalam kelas `TaskTracker`, merender ulang ringkasan kemajuan pada setiap perubahan. Ringkasan menghitung tugas yang diselesaikan dan sedang berlangsung dan menampilkan label `activeForm` setiap item aktif sebagai pengganti `subject`-nya. Gunakan bentuk ini ketika aplikasi Anda mempertahankan tampilan kemajuan daripada mencatat setiap peristiwa.157Contoh berikut memantau aliran asisten untuk blok `tool_use` `TaskCreate` dan `TaskUpdate` dan menyimpan peta tugas yang dikunci berdasarkan ID tugas dalam kelas `TaskTracker`, merender ulang ringkasan kemajuan pada setiap perubahan. Ringkasan menghitung tugas yang diselesaikan dan sedang berlangsung dan menampilkan label `activeForm` setiap item aktif sebagai pengganti `subject`-nya. Gunakan bentuk ini ketika aplikasi Anda mempertahankan tampilan kemajuan daripada mencatat setiap peristiwa.

158 158 

159ID tugas yang ditugaskan tidak ada dalam input `TaskCreate`. Claude Code mengirimkan output terstruktur setiap alat pada pesan pengguna yang membawa blok `tool_result`-nya, dalam bidang `tool_use_result`. Untuk `TaskCreate`, objek itu didokumentasikan untuk TypeScript sebagai `TaskCreateOutput` di bawah [Tool Output Types](/docs/id/agent-sdk/typescript#tool-output-types), dan di Python bidangnya adalah dict biasa dari bentuk yang sama. Pelacak memasangkan setiap blok `tool_result` dengan panggilan `tool_use`-nya berdasarkan `tool_use_id` dan membaca `task.id` dari `tool_use_result` pesan yang dipasangkan. Claude dapat membaca daftar kembali dengan `TaskList` dan detail lengkap satu tugas dengan `TaskGet`.159ID tugas yang ditugaskan tidak ada dalam input `TaskCreate`. Claude Code mengirimkan output terstruktur setiap alat pada pesan pengguna yang membawa blok `tool_result`-nya, dalam bidang `tool_use_result`. Untuk `TaskCreate`, objek itu didokumentasikan untuk TypeScript sebagai `TaskCreateOutput` di bawah [Tipe Output Tool](/docs/id/agent-sdk/typescript#tool-output-types), dan di Python bidangnya adalah dict biasa dari bentuk yang sama. Pelacak memasangkan setiap blok `tool_result` dengan panggilan `tool_use`-nya berdasarkan `tool_use_id` dan membaca `task.id` dari `tool_use_result` pesan yang dipasangkan. Claude dapat membaca daftar kembali dengan `TaskList` dan detail lengkap satu tugas dengan `TaskGet`.

160 160 

161<CodeGroup>161<CodeGroup>

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

Details

18| Claude tidak mendelegasikan ke subagents, filesystem-based agents tidak memuat | [Subagents troubleshooting](/docs/id/agent-sdk/subagents#troubleshooting) |18| Claude tidak mendelegasikan ke subagents, filesystem-based agents tidak memuat | [Subagents troubleshooting](/docs/id/agent-sdk/subagents#troubleshooting) |

19| Opsi checkpointing tidak dikenali, pesan pengguna tanpa UUIDs, `No file checkpoint found`, `File rewinding is not enabled`, `ProcessTransport is not ready for writing` | [File checkpointing troubleshooting](/docs/id/agent-sdk/file-checkpointing#troubleshooting) |19| Opsi checkpointing tidak dikenali, pesan pengguna tanpa UUIDs, `No file checkpoint found`, `File rewinding is not enabled`, `ProcessTransport is not ready for writing` | [File checkpointing troubleshooting](/docs/id/agent-sdk/file-checkpointing#troubleshooting) |

20| Hook tidak aktif, matcher tidak memfilter seperti yang diharapkan, hook timeout, tool diblokir secara tidak terduga, input yang dimodifikasi tidak diterapkan, session hooks tidak tersedia di Python, subagent permission prompts berlipat ganda, recursive hook loops dengan subagents, `systemMessage` tidak muncul di output | [Fix common issues](/docs/id/agent-sdk/hooks#fix-common-issues) di halaman hooks |20| Hook tidak aktif, matcher tidak memfilter seperti yang diharapkan, hook timeout, tool diblokir secara tidak terduga, input yang dimodifikasi tidak diterapkan, session hooks tidak tersedia di Python, subagent permission prompts berlipat ganda, recursive hook loops dengan subagents, `systemMessage` tidak muncul di output | [Fix common issues](/docs/id/agent-sdk/hooks#fix-common-issues) di halaman hooks |

21| Agent yang bekerja di mesin Anda gagal dalam layanan yang diterapkan atau container | [Troubleshoot deployment failures](/docs/id/agent-sdk/hosting#troubleshoot-deployment-failures) |21| Agent yang bekerja di mesin Anda gagal dalam layanan yang diterapkan atau container | [Pemecahan masalah kegagalan deployment](/docs/id/agent-sdk/hosting#troubleshoot-deployment-failures) |

22| `Not logged in`, `Invalid API key`, `API Error`, `429`, `There's an issue with the selected model` | [Error reference](/docs/id/errors#find-your-error) |22| `Not logged in`, `Invalid API key`, `API Error`, `429`, `There's an issue with the selected model` | [Error reference](/docs/id/errors#find-your-error) |

23| `CLINotFoundError`, `CLIConnectionError`, `ProcessError`, `Claude Code process exited with code N`, `Claude Code returned an error result`, `structured_output` adalah `None` | [CLI startup](#cli-startup), [CLI process exit](#cli-process-exit), dan [Structured outputs](#structured-outputs) di halaman ini |23| `CLINotFoundError`, `CLIConnectionError`, `ProcessError`, `Claude Code process exited with code N`, `Claude Code returned an error result`, `structured_output` adalah `None` | [CLI startup](#cli-startup), [CLI process exit](#cli-process-exit), dan [Structured outputs](#structured-outputs) di halaman ini |

24 24 

agent-view.md +5 −5

Details

500 What carries over when you background500 What carries over when you background

501</h4>501</h4>

502 502 

503Memindahkan ke latar belakang memulai proses baru yang melanjutkan dari percakapan yang disimpan, dan pekerjaan yang sedang berlangsung pindah ke sana: perintah shell latar belakang yang sedang berjalan, subagent yang di-background, workflow dinamis, tugas terjadwal yang Anda buat dengan [`/loop`](/docs/id/scheduled-tasks), dan [balasan otomatis Claude terhadap komentar artifact](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own) semuanya terbawa dan terus berjalan di sana. Subagent berpindah bersama dengan semua yang dimulainya, jadi subagent hanya terbawa ketika semua pekerjaan itu juga dapat berpindah. Untuk menghentikan pekerjaan yang sedang berlangsung alih-alih membawanya, atur environment variable [`CLAUDE_DISABLE_ADOPT=1`](/docs/id/env-vars#variables); Claude Code kemudian meminta Anda untuk mengonfirmasi sebelum memindahkan ke latar belakang.503Memindahkan ke latar belakang memulai proses baru yang melanjutkan dari percakapan yang disimpan, dan pekerjaan latar belakang yang sedang berlangsung pindah ke sana: perintah shell latar belakang yang sedang berjalan, subagent yang di-background, workflow dinamis, tugas terjadwal yang Anda buat dengan [`/loop`](/docs/id/scheduled-tasks), dan [balasan otomatis Claude terhadap komentar artifact](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own) semuanya terbawa dan terus berjalan di sana. Subagent berpindah bersama dengan semua yang dimulainya, jadi subagent hanya terbawa ketika semua pekerjaan itu juga dapat berpindah. Untuk menghentikan pekerjaan latar belakang yang sedang berlangsung alih-alih membawanya, atur environment variable [`CLAUDE_DISABLE_ADOPT=1`](/docs/id/env-vars#variables); Claude Code kemudian meminta Anda untuk mengonfirmasi sebelum memindahkan ke latar belakang.

504 504 

505Ketika [workflow dinamis](/docs/id/workflows) masih memiliki subagent yang berjalan, Claude Code bertanya sebelum memindahkan ke latar belakang dengan dialog `Background this session?`, yang menyebutkan berapa banyak subagent yang akan dimulai ulang. Pilih `Stay` untuk membiarkan mereka selesai terlebih dahulu. Jika Anda mengonfirmasi, Claude Code memutar ulang run tersebut dalam sesi latar belakang: subagent yang masih berjalan dimulai dari awal, jadi token yang telah mereka gunakan sejauh ini dihabiskan lagi. Lihat [Resume after a pause](/docs/id/workflows#resume-after-a-pause) untuk subagent selesai mana yang mengembalikan hasil tersimpannya dan mana yang berjalan lagi.505Ketika [workflow dinamis](/docs/id/workflows) masih memiliki subagent yang berjalan, Claude Code bertanya sebelum memindahkan ke latar belakang dengan dialog `Background this session?`, yang menyebutkan berapa banyak subagent yang akan dimulai ulang. Pilih `Stay` untuk membiarkan mereka selesai terlebih dahulu. Jika Anda mengonfirmasi, Claude Code memutar ulang run tersebut dalam sesi latar belakang: subagent yang masih berjalan dimulai dari awal, jadi token yang telah mereka gunakan sejauh ini dihabiskan lagi. Lihat [Resume after a pause](/docs/id/workflows#resume-after-a-pause) untuk subagent selesai mana yang mengembalikan hasil tersimpannya dan mana yang berjalan lagi.

506 506 

507Claude Code menghentikan pekerjaan yang tidak dapat terbawa, seperti [monitor](/docs/id/tools-reference#monitor-tool) yang sedang berjalan, dan menghentikan subagent yang di-background yang memiliki monitor bersamanya. Ketika ada pekerjaan seperti itu yang berjalan, Claude Code menampilkan dialog `Background this session?` sehingga Anda dapat mengonfirmasi sebelum pekerjaan itu dihentikan.507Claude Code menghentikan pekerjaan latar belakang yang tidak dapat terbawa, seperti [monitor](/docs/id/tools-reference#monitor-tool) yang sedang berjalan, dan menghentikan subagent yang di-background yang memiliki monitor bersamanya. Ketika ada pekerjaan seperti itu yang berjalan, Claude Code menampilkan dialog `Background this session?` sehingga Anda dapat mengonfirmasi sebelum pekerjaan itu dihentikan.

508 508 

509Setelah berada di latar belakang, sesi dapat memulai subagent, monitor, dan perintah latar belakang baru, dan semuanya terus berjalan melewati detach dan reattach berikutnya.509Setelah berada di latar belakang, sesi dapat memulai subagent, monitor, dan perintah latar belakang baru, dan semuanya terus berjalan melewati detach dan reattach berikutnya.

510 510 


949 Melepaskan menunjukkan dialog `Background this session?`949 Melepaskan menunjukkan dialog `Background this session?`

950</h3>950</h3>

951 951 

952Jika Anda menekan `←` untuk melepaskan sesi saat ini dan Claude Code menampilkan dialog `Background this session?`, sesi memiliki pekerjaan yang sedang berlangsung yang akan dihentikan, dimulai ulang, atau dibiarkan berjalan tanpa pengawasan jika dilepaskan, dan Claude Code bertanya sebelum melakukan salah satu dari hal tersebut:952Jika Anda menekan `←` untuk melepaskan sesi saat ini dan Claude Code menampilkan dialog `Background this session?`, sesi memiliki pekerjaan latar belakang yang sedang berlangsung yang akan dihentikan, dimulai ulang, atau dibiarkan berjalan tanpa pengawasan jika dilepaskan, dan Claude Code bertanya sebelum melakukan salah satu dari hal tersebut:

953 953 

954* **Pekerjaan yang tidak dapat dipindahkan**: sesi memiliki pekerjaan yang tidak dapat dipindahkan ke sesi latar belakang, seperti [monitor](/docs/id/tools-reference#monitor-tool) yang sedang berjalan. Dialog menyebutkan pekerjaan yang akan dihentikan Claude Code dan, secara terpisah, menghitung tugas yang dibawa.954* **Pekerjaan yang tidak dapat dipindahkan**: sesi memiliki pekerjaan yang tidak dapat dipindahkan ke sesi latar belakang, seperti [monitor](/docs/id/tools-reference#monitor-tool) yang sedang berjalan. Dialog menyebutkan pekerjaan latar belakang yang akan dihentikan Claude Code dan, secara terpisah, menghitung tugas yang dibawa.

955* **Alur kerja dengan subagent yang sedang berjalan**: [alur kerja dinamis](/docs/id/workflows) masih memiliki subagent yang sedang berjalan. Alur kerja itu sendiri dibawa, tetapi subagent yang sedang berjalannya dimulai ulang dari awal, dan dialog mengatakan berapa banyak.955* **Alur kerja dengan subagent yang sedang berjalan**: [alur kerja dinamis](/docs/id/workflows) masih memiliki subagent yang sedang berjalan. Alur kerja itu sendiri dibawa, tetapi subagent yang sedang berjalannya dimulai ulang dari awal, dan dialog mengatakan berapa banyak.

956* **Balasan artifact otomatis**: Claude [membalas komentar pada artifact dengan sendirinya](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own). Balasan tersebut berlanjut dalam sesi latar belakang, dan dialog mengatakan demikian.956* **Balasan artifact otomatis**: Claude [membalas komentar pada artifact dengan sendirinya](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own). Balasan tersebut berlanjut dalam sesi latar belakang, dan dialog mengatakan demikian.

957 957 


1175| v2.1.199 | Sesi latar belakang yang prosesnya keluar sebelum selesai dimulai pada host dengan memori rendah menampilkan `possibly low memory — free some up and retry` dalam status barisnya alih-alih hanya alasan keluar mentah. Memindahkan sesi ke latar belakang dengan `←` atau `/background` membawa `/color`-nya ke baris baru. |1175| v2.1.199 | Sesi latar belakang yang prosesnya keluar sebelum selesai dimulai pada host dengan memori rendah menampilkan `possibly low memory — free some up and retry` dalam status barisnya alih-alih hanya alasan keluar mentah. Memindahkan sesi ke latar belakang dengan `←` atau `/background` membawa `/color`-nya ke baris baru. |

1176| v2.1.198 | Agent view mengirim notifikasi melalui `preferredNotifChannel` ketika sesi latar belakang memerlukan input, selesai, atau gagal, dan memicu hook `Notification` dengan tipe `agent_needs_input` atau `agent_completed`. `←` dan `/exit` di dalam `claude attach <id>` kembali ke agent view alih-alih keluar ke shell; `Ctrl+Z` kembali ke shell. Sesi latar belakang yang mengisolasi pekerjaannya dalam worktree melakukan commit, mem-push branch terisolasinya sendiri, tidak pernah `main` atau `master`, dan membuka pull request draf ketika selesai alih-alih bertanya terlebih dahulu. `/login` berjalan dalam agent view dan membuka dialog masuk. Dialog keluar `Background work is running` menawarkan `Move to background and exit`. Handoff saat keluar juga mencakup subagent latar belakang, yang dilanjutkan dari transkrip mereka pada saat dibangunkan berikutnya alih-alih dilaporkan gagal. `claude --bg` yang dikombinasikan dengan `-p` atau `--print` ditolak dengan kesalahan. Host sesi latar belakang meminta izin Local Network macOS pada akses LAN pertama alih-alih gagal dengan `connect: no route to host`. |1176| v2.1.198 | Agent view mengirim notifikasi melalui `preferredNotifChannel` ketika sesi latar belakang memerlukan input, selesai, atau gagal, dan memicu hook `Notification` dengan tipe `agent_needs_input` atau `agent_completed`. `←` dan `/exit` di dalam `claude attach <id>` kembali ke agent view alih-alih keluar ke shell; `Ctrl+Z` kembali ke shell. Sesi latar belakang yang mengisolasi pekerjaannya dalam worktree melakukan commit, mem-push branch terisolasinya sendiri, tidak pernah `main` atau `master`, dan membuka pull request draf ketika selesai alih-alih bertanya terlebih dahulu. `/login` berjalan dalam agent view dan membuka dialog masuk. Dialog keluar `Background work is running` menawarkan `Move to background and exit`. Handoff saat keluar juga mencakup subagent latar belakang, yang dilanjutkan dari transkrip mereka pada saat dibangunkan berikutnya alih-alih dilaporkan gagal. `claude --bg` yang dikombinasikan dengan `-p` atau `--print` ditolak dengan kesalahan. Host sesi latar belakang meminta izin Local Network macOS pada akses LAN pertama alih-alih gagal dengan `connect: no route to host`. |

1177| v2.1.196 | Satu tekan `←` memindahkan sesi latar depan ke latar belakang; versi sebelumnya memerlukan dua tekan, dengan hint footer dan konfirmasi. `--dangerously-skip-permissions` yang diteruskan ke `claude agents` menampilkan penafian bypass alih-alih diam-diam dijatuhkan. Sesi interaktif yang tidak pernah Anda beri nama membawa nama default seperti `my-app-3f` dalam daftar sesi dan `claude agents --json`. Perintah shell latar belakang dan alur kerja dinamis bertahan ketika proses sesi dihentikan, dimulai ulang, atau diperbarui, termasuk di Windows; atur `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` untuk mematikan handoff. Transkrip yang salah terbaca sebagai kosong saat restart diberi nama baru dengan akhiran `.orphaned-` alih-alih dihapus. |1177| v2.1.196 | Satu tekan `←` memindahkan sesi latar depan ke latar belakang; versi sebelumnya memerlukan dua tekan, dengan hint footer dan konfirmasi. `--dangerously-skip-permissions` yang diteruskan ke `claude agents` menampilkan penafian bypass alih-alih diam-diam dijatuhkan. Sesi interaktif yang tidak pernah Anda beri nama membawa nama default seperti `my-app-3f` dalam daftar sesi dan `claude agents --json`. Perintah shell latar belakang dan alur kerja dinamis bertahan ketika proses sesi dihentikan, dimulai ulang, atau diperbarui, termasuk di Windows; atur `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` untuk mematikan handoff. Transkrip yang salah terbaca sebagai kosong saat restart diberi nama baru dengan akhiran `.orphaned-` alih-alih dihapus. |

1178| v2.1.195 | Pekerjaan yang sedang berlangsung juga terbawa ketika Anda memindahkan sesi ke latar belakang di Windows; atur `CLAUDE_DISABLE_ADOPT=1` untuk menghentikannya. Grup `Completed` mengisi ruang vertikal yang tersisa dan header dipadatkan pada terminal yang pendek. Versi Claude Code yang lebih lama tidak lagi menjatuhkan field `state.json` sesi yang lebih baru atau menyembunyikan sesi tersebut dari `claude agents`. Melampirkan ke sesi yang dihentikan beralih segera alih-alih menampilkan layar kosong hingga lima detik. Supervisor yang tidak dapat menerima koneksi keluar dan melepaskan lock-nya sendiri. |1178| v2.1.195 | Pekerjaan latar belakang yang sedang berlangsung juga terbawa ketika Anda memindahkan sesi ke latar belakang di Windows; atur `CLAUDE_DISABLE_ADOPT=1` untuk menghentikannya. Grup `Completed` mengisi ruang vertikal yang tersisa dan header dipadatkan pada terminal yang pendek. Versi Claude Code yang lebih lama tidak lagi menjatuhkan field `state.json` sesi yang lebih baru atau menyembunyikan sesi tersebut dari `claude agents`. Melampirkan ke sesi yang dihentikan beralih segera alih-alih menampilkan layar kosong hingga lima detik. Supervisor yang tidak dapat menerima koneksi akan keluar dan melepaskan lock-nya dengan sendirinya. |

1179| v2.1.191 | `claude --bg` dengan nama `--agent` yang tidak cocok dengan subagent Anda mana pun menggagalkan peluncuran: sesi langsung keluar dengan kesalahan `--agent '<name>' not found` alih-alih berjalan dengan agent default. |1179| v2.1.191 | `claude --bg` dengan nama `--agent` yang tidak cocok dengan subagent Anda mana pun menggagalkan peluncuran: sesi langsung keluar dengan kesalahan `--agent '<name>' not found` alih-alih berjalan dengan agent default. |

1180| v2.1.174 | Sesi latar belakang tidak lagi mewarisi variabel endpoint gateway seperti `ANTHROPIC_BASE_URL` dari shell peluncuran supervisor; supervisor menyediakan snapshot kredensial baru ke worker yang sudah dihangatkan, memperbaiki kesalahan `Could not resolve authentication method` yang keliru. |1180| v2.1.174 | Sesi latar belakang tidak lagi mewarisi variabel endpoint gateway seperti `ANTHROPIC_BASE_URL` dari shell peluncuran supervisor; supervisor menyediakan snapshot kredensial baru ke worker yang sudah dihangatkan, memperbaiki kesalahan `Could not resolve authentication method` yang keliru. |

1181| v2.1.172 | `/model` dalam input dispatch menetapkan override model dispatch yang dicakup sesi. |1181| v2.1.172 | `/model` dalam input dispatch menetapkan override model dispatch yang dicakup sesi. |

analytics.md +2 −0

Details

13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Metrik penggunaan, metrik kontribusi dengan integrasi GitHub, papan peringkat, ekspor data | [Detail](#access-analytics-for-team-and-enterprise) |13| Claude for Teams / Enterprise | [claude.ai/analytics/claude-code](https://claude.ai/analytics/claude-code) | Metrik penggunaan, metrik kontribusi dengan integrasi GitHub, papan peringkat, ekspor data | [Detail](#access-analytics-for-team-and-enterprise) |

14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Metrik penggunaan, pelacakan pengeluaran, wawasan tim | [Detail](#access-analytics-for-api-customers) |14| API (Claude Console) | [platform.claude.com/claude-code](https://platform.claude.com/claude-code) | Metrik penggunaan, pelacakan pengeluaran, wawasan tim | [Detail](#access-analytics-for-api-customers) |

15 15 

16Code Review memiliki dasbornya sendiri. Untuk aktivitas review dan pengeluaran, lihat [Lihat penggunaan](/docs/id/code-review-costs#view-usage).

17 

16<h2 id="access-analytics-for-team-and-enterprise">18<h2 id="access-analytics-for-team-and-enterprise">

17 Akses analitik untuk Team dan Enterprise19 Akses analitik untuk Team dan Enterprise

18</h2>20</h2>

artifacts.md +5 −3

Details

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

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

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

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

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

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

80| Dalam mode [Manual](/docs/id/permission-modes) atau `acceptEdits`, Claude membuat perubahan kecil pada file artifact yang tidak dapat ia edit tanpa persetujuan Anda, seperti file proyek dalam mode Manual | Bertanya sebelum menerbitkan perubahan tersebut. Anda tetap ditanya meskipun aturan izin allow mencakup tool `Artifact`, karena edit pada file tersebut memerlukan persetujuan Anda |

81 81 

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

83 

84Jika permintaan izin penerbitan menyertakan kalimat seperti `Also makes 1 edit to that file on disk.`, Claude sedang mengubah file artifact dan menerbitkannya dalam satu langkah. Ketika Anda menyetujui permintaan tersebut, Claude Code menerbitkan halaman, kemudian menulis perubahan ke file Anda.

83 85 

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

85 Perbarui artefak87 Perbarui artefak


149* **Sesi cloud tanpa akses jaringan**: untuk [lingkungan cloud](/docs/id/cloud-environments#access-levels), itu adalah level **None**. Dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), pengklasifikasi dapat menyetujuinya sebagai gantinya; dalam sesi [Cowork](https://claude.com/product/cowork), persetujuan sepenuhnya ada pada Anda.151* **Sesi cloud tanpa akses jaringan**: untuk [lingkungan cloud](/docs/id/cloud-environments#access-levels), itu adalah level **None**. Dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), pengklasifikasi dapat menyetujuinya sebagai gantinya; dalam sesi [Cowork](https://claude.com/product/cowork), persetujuan sepenuhnya ada pada Anda.

150* **Artifact publik milik organisasi lain**: Claude Code menanyakan Anda terlebih dahulu, bahkan dalam auto mode. Ketika Claude Code tidak dapat menanyakan Anda, seperti dalam mode `bypassPermissions`, Claude tidak dapat membaca artifact tersebut. Claude hanya dapat membaca artifact ini selama [pengambilan feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching) aktif.152* **Artifact publik milik organisasi lain**: Claude Code menanyakan Anda terlebih dahulu, bahkan dalam auto mode. Ketika Claude Code tidak dapat menanyakan Anda, seperti dalam mode `bypassPermissions`, Claude tidak dapat membaca artifact tersebut. Claude hanya dapat membaca artifact ini selama [pengambilan feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching) aktif.

151* **Pemilik atau pengaturan jaringan yang belum terkonfirmasi**: ketika Claude Code tidak dapat memastikan siapa yang membuat artifact, atau tidak dapat memastikan pengaturan jaringan sesi cloud, Claude Code akan bertanya, dan persetujuan Anda hanya berlaku untuk satu permintaan tersebut.153* **Pemilik atau pengaturan jaringan yang belum terkonfirmasi**: ketika Claude Code tidak dapat memastikan siapa yang membuat artifact, atau tidak dapat memastikan pengaturan jaringan sesi cloud, Claude Code akan bertanya, dan persetujuan Anda hanya berlaku untuk satu permintaan tersebut.

152* **Plan mode, atau pengambilan feature flag dinonaktifkan**: dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), atau jika Anda menonaktifkan [pengambilan feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching), Claude Code bertanya sebelum tool Artifact membaca artifact yang dibuat oleh orang lain di organisasi Anda.154* **Plan mode**: dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), Claude Code bertanya sebelum tool Artifact membaca artifact yang dibuat oleh orang lain di organisasi Anda.

153 155 

154Ketika Claude membaca artifact dengan WebFetch, [aturan permintaan izin](/docs/id/tools-reference#webfetch-tool-behavior) milik WebFetch sendiri tetap berlaku.156Ketika Claude membaca artifact dengan WebFetch, [aturan permintaan izin](/docs/id/tools-reference#webfetch-tool-behavior) milik WebFetch sendiri tetap berlaku.

155 157 

Details

102Sebuah [subagent](/docs/id/sub-agents) membuat edit dengan alat pengeditan file Claude, tetapi Claude Code biasanya tidak menangkap edit tersebut dalam checkpoint sesi Anda. Apakah rewind memulihkannya tergantung pada cara subagent berjalan:102Sebuah [subagent](/docs/id/sub-agents) membuat edit dengan alat pengeditan file Claude, tetapi Claude Code biasanya tidak menangkap edit tersebut dalam checkpoint sesi Anda. Apakah rewind memulihkannya tergantung pada cara subagent berjalan:

103 103 

104* **Foreground forked skill**: sebuah [skill dengan `context: fork`](/docs/id/skills#run-skills-in-a-subagent) yang berjalan di foreground mengedit working tree Anda selama giliran Anda sendiri, sehingga rewind memulihkan editnya seperti biasa. Atur `background: false` untuk menjalankan fork di foreground; beberapa situasi, [tercantum di halaman skills](/docs/id/skills#run-skills-in-a-subagent), menjalankannya di sana terlepas dari pengaturannya.104* **Foreground forked skill**: sebuah [skill dengan `context: fork`](/docs/id/skills#run-skills-in-a-subagent) yang berjalan di foreground mengedit working tree Anda selama giliran Anda sendiri, sehingga rewind memulihkan editnya seperti biasa. Atur `background: false` untuk menjalankan fork di foreground; beberapa situasi, [tercantum di halaman skills](/docs/id/skills#run-skills-in-a-subagent), menjalankannya di sana terlepas dari pengaturannya.

105* **Subagent lainnya**: rewind tidak memulihkan edit. Gunakan git untuk mengembalikannya. Ini termasuk forked skill yang berjalan di background, default, dan background [`/code-review --fix`](/docs/id/code-review) run.105* **Subagent lainnya**: rewind hanya memulihkan file yang sudah diedit Claude dalam percakapan Anda. Edit subagent pada file lain tetap ada, jadi gunakan git untuk mengembalikannya. Ini termasuk forked skill yang berjalan di background, default, dan background [`/code-review --fix`](/docs/id/code-review-local) run.

106 106 

107<h3 id="external-changes-not-tracked">107<h3 id="external-changes-not-tracked">

108 Perubahan eksternal tidak dilacak108 Perubahan eksternal tidak dilacak

Details

385 aws ecs register-task-definition --cli-input-json file://claude-gateway-task.json385 aws ecs register-task-definition --cli-input-json file://claude-gateway-task.json

386 ```386 ```

387 387 

388 Letakkan ALB internal di depan dengan grup target yang memeriksa kesehatan gateway. `--ip-address-type ipv4` penting: ALB dual-stack internal menerbitkan catatan AAAA jangkauan publik, yang pemeriksaan jaringan pribadi `/login` menolak:388 Letakkan ALB internal di depan dengan grup target yang memeriksa kesehatan gateway. `--ip-address-type ipv4` penting: ALB dual-stack internal menerbitkan catatan AAAA jangkauan publik, yang ditolak oleh pemeriksaan jaringan pribadi `/login`:

389 389 

390 ```bash theme={null}390 ```bash theme={null}

391 ALB_ARN="$(aws elbv2 create-load-balancer --name claude-gateway \391 ALB_ARN="$(aws elbv2 create-load-balancer --name claude-gateway \

Details

64Lihat [Hubungkan dari terminal Anda](/docs/id/web-quickstart#connect-from-your-terminal) untuk panduan `/web-setup`, termasuk apa yang disimpan `/web-setup` dan cara menghapusnya.64Lihat [Hubungkan dari terminal Anda](/docs/id/web-quickstart#connect-from-your-terminal) untuk panduan `/web-setup`, termasuk apa yang disimpan `/web-setup` dan cara menghapusnya.

65 65 

66<Note>66<Note>

67 Organisasi dengan [Zero Data Retention](/docs/id/zero-data-retention) yang diaktifkan, atau dengan [konfigurasi HIPAA](/docs/id/hipaa-setup) yang diterapkan, tidak dapat menggunakan `/web-setup` atau fitur sesi cloud lainnya.67 Organisasi dengan [Zero Data Retention](/docs/id/zero-data-retention) yang diaktifkan, atau dengan [konfigurasi HIPAA](/docs/id/hipaa-setup) yang diterapkan, tidak dapat menggunakan `/web-setup` atau fitur sesi cloud lainnya. Organisasi yang menggunakan [kunci enkripsi yang dikelola pelanggan](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) juga tidak dapat memulai sesi cloud.

68</Note>68</Note>

69 69 

70<h3 id="quick-setup-for-team-and-enterprise">70<h3 id="quick-setup-for-team-and-enterprise">

Details

559 559 

560`matcher` membatasi hook ke acara `startup` dan `resume`, dan `$CLAUDE_PROJECT_DIR` diselesaikan ke akar repositori, jadi hook menemukan skrip terlepas dari direktori kerja sesi.560`matcher` membatasi hook ke acara `startup` dan `resume`, dan `$CLAUDE_PROJECT_DIR` diselesaikan ke akar repositori, jadi hook menemukan skrip terlepas dari direktori kerja sesi.

561 561 

562Selanjutnya, buat skrip di `scripts/install_pkgs.sh`. Itu keluar segera di luar cloud, kemudian menginstal dependensi Anda:562Selanjutnya, buat skrip di `scripts/install_pkgs.sh`. Skrip ini keluar segera di luar cloud, kemudian menginstal dependensi Anda. Skrip ini melewati `npm install` selama `package.json`, `package-lock.json`, dan skrip itu sendiri tidak berubah sejak instalasi terakhir yang berhasil:

563 563 

564```bash theme={null}564```bash theme={null}

565#!/bin/bash565#!/bin/bash


568 exit 0568 exit 0

569fi569fi

570 570 

571npm install571cd "$CLAUDE_PROJECT_DIR" || exit 1

572hashes=node_modules/.install_pkgs.sha256

573 

574if ! sha256sum --check --status "$hashes" 2>/dev/null; then

575 # Delete the old hashes first, so a failed install runs again next time

576 rm -f "$hashes"

577 if npm install; then

578 sha256sum scripts/install_pkgs.sh package.json package-lock.json > "$hashes" || rm -f "$hashes"

579 fi

580fi

581 

582# pip skips requirements that are already satisfied

572pip install -r requirements.txt583pip install -r requirements.txt

573exit 0584exit 0

574```585```

575 586 

576Pemeriksaan `CLAUDE_CODE_REMOTE` adalah apa yang membatasi instalasi ke sesi cloud: VM sesi membawa variabel itu sebagai `true`, tidak pernah `true` secara lokal, jadi di laptop Anda skrip keluar sebelum menginstal apa pun.587Pemeriksaan `CLAUDE_CODE_REMOTE` adalah apa yang membatasi instalasi ke sesi cloud: VM sesi membawa variabel itu sebagai `true`, tidak pernah `true` secara lokal, jadi di laptop Anda skrip keluar sebelum menginstal apa pun.

577 588 

578Bersama-sama, dua file memberikan setiap sesi cloud `npm install` dan `pip install` segar saat startup sambil meninggalkan sesi lokal tidak tersentuh.589Untuk memastikan `npm install` berhasil, mulai sesi cloud dan minta Claude menampilkan `node_modules/.install_pkgs.sha256`. File tersebut mencantumkan hash untuk masing-masing dari ketiga file. Jika file tersebut tidak ada, minta Claude menjalankan `npm install` dan melaporkan kesalahannya.

590 

591<Note>

592 Jika `npm install` membaca file lain, seperti `package.json` milik workspace, `.npmrc`, atau input skrip `postinstall` Anda, tambahkan file-file tersebut ke perintah `sha256sum` yang menyimpan hash. Jika tidak, Anda akan tetap menggunakan paket lama setelah salah satu file tersebut berubah.

593</Note>

579 594 

580<h4 id="limitations-in-cloud-sessions">595<h4 id="limitations-in-cloud-sessions">

581 Batasan di sesi cloud596 Batasan di sesi cloud


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

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

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

590* **Menambah latensi startup**: hook berjalan setiap kali sesi dimulai atau dilanjutkan, tidak seperti skrip setup yang mendapat manfaat dari [caching lingkungan](#environment-caching). Jaga skrip instalasi cepat dengan memeriksa apakah dependensi sudah ada sebelum menginstal ulang.605* **Menambah latensi startup**: hook berjalan setiap kali sesi dimulai atau dilanjutkan, tidak seperti skrip setup yang mendapat manfaat dari [caching lingkungan](#environment-caching). Jaga skrip instalasi tetap cepat dengan melewati pekerjaan yang sudah selesai, seperti yang dilakukan oleh [skrip instalasi dependensi](#install-dependencies-with-a-sessionstart-hook).

591 606 

592Untuk menyesuaikan gambar dasar, gunakan skrip setup untuk menginstal apa yang Anda butuhkan di atas [gambar yang disediakan](#installed-tools), atau jalankan gambar Anda sendiri sebagai kontainer bersama Claude dengan `docker compose`. Mengganti gambar dasar sepenuhnya belum didukung.607Untuk menyesuaikan gambar dasar, gunakan skrip setup untuk menginstal apa yang Anda butuhkan di atas [gambar yang disediakan](#installed-tools), atau jalankan gambar Anda sendiri sebagai kontainer bersama Claude dengan `docker compose`. Mengganti gambar dasar sepenuhnya belum didukung.

593 608 

code-review.md +87 −390

Details

4 4 

5# Code Review5# Code Review

6 6 

7> Siapkan ulasan PR otomatis yang menangkap kesalahan logika, kerentanan keamanan, dan regresi menggunakan analisis multi-agen dari seluruh basis kode Anda7> Tangkap bug di pull request GitHub dengan Code Review: Claude me-review setiap perubahan, memverifikasi temuannya, dan berkomentar sebaris. Untuk paket Team dan Enterprise

8 8 

9<Note>9Dengan Code Review, Claude me-review pull request di repositori GitHub Anda. Beberapa agent membaca setiap perubahan bersama kode di sekitarnya, mencari masalah seperti kesalahan logika, kerentanan keamanan, atau kasus tepi yang rusak. Langkah verifikasi memeriksa temuan terhadap kode sebelum temuan tersebut dilaporkan.

10 Code Review sedang dalam research preview, tersedia untuk langganan [Team dan Enterprise](https://claude.ai/admin-settings/claude-code). Fitur ini tidak tersedia untuk organisasi yang mengaktifkan [Zero Data Retention](/docs/id/zero-data-retention) atau yang menerapkan [konfigurasi HIPAA](/docs/id/hipaa-setup), dan tidak tercakup dalam BAA Anthropic. Pada paket lain, Anda masih dapat [meninjau diff secara lokal](#review-a-diff-locally) dengan perintah `/code-review`.

11</Note>

12 

13Code Review menganalisis permintaan tarik GitHub Anda dan memposting temuan sebagai komentar sebaris pada baris kode tempat ditemukannya masalah. Armada agen khusus memeriksa perubahan kode dalam konteks basis kode lengkap Anda, mencari kesalahan logika, kerentanan keamanan, kasus tepi yang rusak, dan regresi halus.

14 

15Temuan diberi tag berdasarkan tingkat keparahan dan tidak menyetujui atau memblokir PR Anda, sehingga alur kerja ulasan yang ada tetap utuh. Anda dapat menyesuaikan apa yang Claude tandai dengan menambahkan file `CLAUDE.md` atau `REVIEW.md` ke repositori Anda.

16 

17Untuk menjalankan Claude di infrastruktur CI Anda sendiri alih-alih layanan terkelola ini, lihat [GitHub Actions](/docs/id/github-actions) atau [GitLab CI/CD](/docs/id/gitlab-ci-cd). Untuk repositori pada instans GitHub yang di-host sendiri, lihat [GitHub Enterprise Server](/docs/id/github-enterprise-server).

18 

19Halaman ini mencakup:

20 

21* [Cara kerja ulasan](#how-reviews-work)

22* [Penyiapan](#set-up-code-review)

23* [Memicu ulasan secara manual](#manually-trigger-reviews) dengan `@claude review` dan `@claude review always`

24* [Menyesuaikan ulasan](#customize-reviews) dengan `CLAUDE.md` dan `REVIEW.md`

25* [Harga](#pricing)

26* [Pemecahan masalah](#troubleshooting) jalankan yang gagal dan komentar yang hilang

27* [Meninjau diff secara lokal](#review-a-diff-locally) dengan perintah `/code-review`

28 

29<h2 id="how-reviews-work">

30 Cara kerja ulasan

31</h2>

32 

33Setelah Owner [mengaktifkan Code Review](#set-up-code-review) untuk organisasi Anda, ulasan dipicu ketika PR dibuka, pada setiap push, atau ketika diminta secara manual, tergantung pada perilaku yang dikonfigurasi repositori. Mengomentari `@claude review` [memulai ulasan pada PR](#manually-trigger-reviews) dalam mode apa pun.

34 

35Ketika ulasan berjalan, beberapa agen menganalisis diff dan kode sekitarnya secara paralel pada infrastruktur Anthropic. Setiap agen mencari kelas masalah yang berbeda, kemudian langkah verifikasi memeriksa kandidat terhadap perilaku kode aktual untuk menyaring positif palsu. Hasilnya dideduplikasi, diurutkan berdasarkan tingkat keparahan, dan diposting sebagai komentar sebaris pada baris spesifik tempat masalah ditemukan, dengan ringkasan dalam badan ulasan. Jika tidak ada masalah yang ditemukan, Code Review memperbarui jalankan pemeriksaan GitHub untuk menunjukkan bahwa tidak ada masalah yang terdeteksi. Claude juga dapat memposting komentar konfirmasi singkat pada PR.

36 

37Ulasan diskalakan dalam biaya dengan ukuran dan kompleksitas PR, selesai rata-rata dalam 20 menit. Owner dapat memantau aktivitas ulasan dan pengeluaran melalui [dasbor analitik](#view-usage).

38 

39<h3 id="severity-levels">

40 Tingkat keparahan

41</h3>

42 

43Setiap temuan diberi tag dengan tingkat keparahan:

44 

45| Penanda | Keparahan | Arti |

46| :- | :- | :- |

47| 🔴 | Penting | Bug yang harus diperbaiki sebelum penggabungan |

48| 🟡 | Nit | Masalah kecil, layak diperbaiki tetapi tidak memblokir |

49| 🟣 | Sudah ada sebelumnya | Bug yang ada di basis kode tetapi tidak diperkenalkan oleh PR ini |

50 

51Temuan mencakup bagian **Why this was flagged** yang dapat diperluas yang dapat Anda perluas untuk membaca mengapa Claude menandai masalah dan bagaimana Claude memverifikasi masalah.

52 

53<h3 id="rate-and-reply-to-findings">

54 Menilai dan membalas temuan

55</h3>

56 

57Setiap komentar ulasan dari Claude tiba dengan 👍 dan 👎 sudah terpasang sehingga kedua tombol muncul di UI GitHub untuk penilaian satu klik. Klik 👍 jika temuan berguna atau 👎 jika salah atau bising. Anthropic mengumpulkan hitungan reaksi setelah PR digabungkan dan menggunakannya untuk menyetel pengulas. Reaksi tidak memicu ulasan kembali atau mengubah apa pun pada PR.

58 

59Membalas komentar sebaris tidak mendorong Claude untuk merespons atau memperbarui PR. Untuk bertindak atas temuan, perbaiki kode dan push. Jika PR berlangganan ulasan yang dipicu push, jalankan berikutnya menyelesaikan utas ketika masalah diperbaiki. Untuk meminta ulasan segar tanpa push, komentari `@claude review` sebagai [komentar PR tingkat atas](#manually-trigger-reviews).

60 

61Untuk menolak temuan tanpa perubahan kode, selesaikan utas; membalas tidak menolaknya.

62 

63<h3 id="check-run-output">

64 Output jalankan pemeriksaan

65</h3>

66 

67Selain komentar ulasan sebaris, setiap ulasan mengisi jalankan pemeriksaan **Claude Code Review** yang muncul bersama pemeriksaan CI Anda. Perluas tautan **Details** untuk melihat ringkasan setiap temuan di satu tempat, diurutkan berdasarkan keparahan:

68 

69| Keparahan | File:Baris | Masalah |

70| - | - | - |

71| 🔴 Penting | `src/auth/session.ts:142` | Penyegaran token berjalan dengan logout, meninggalkan sesi basi aktif |

72| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` secara diam-diam mengembalikan 0 pada input yang salah bentuk |

73 

74Setiap temuan juga muncul sebagai anotasi di tab **Files changed**, ditandai langsung pada baris diff yang relevan. Temuan Penting dirender dengan penanda merah, nit dengan peringatan kuning, dan bug yang sudah ada sebelumnya dengan pemberitahuan abu-abu. Anotasi dan tabel keparahan ditulis ke jalankan pemeriksaan secara independen dari komentar ulasan sebaris, sehingga tetap tersedia bahkan jika GitHub menolak komentar sebaris pada baris yang bergerak.

75 

76Jalankan pemeriksaan selalu selesai dengan kesimpulan netral sehingga tidak pernah memblokir penggabungan melalui aturan perlindungan cabang. Jika Anda ingin menggerbang penggabungan pada temuan Code Review, baca rincian keparahan dari output jalankan pemeriksaan di CI Anda sendiri. Baris terakhir dari teks Details adalah komentar yang dapat dibaca mesin yang dapat diurai alur kerja Anda dengan `gh` dan jq. Untuk menemukan ID jalankan pemeriksaan, daftarkan jalankan pemeriksaan komit dengan `gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'` dan ambil `id` dari jalankan `Claude Code Review`. Ganti `OWNER`, `REPO`, dan `CHECK_RUN_ID` dengan pemilik repositori, nama repositori, dan ID tersebut:

77 

78```bash theme={null}

79gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

80 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

81```

82 

83Ini mengembalikan objek JSON dengan hitungan per keparahan, misalnya `{"normal": 2, "nit": 1, "pre_existing": 0}`. Kunci `normal` menyimpan hitungan temuan Penting; nilai bukan nol berarti Claude menemukan setidaknya satu bug yang layak diperbaiki sebelum penggabungan.

84 

85<h3 id="what-code-review-checks">

86 Apa yang Code Review periksa

87</h3>

88 

89Secara default, Code Review berfokus pada kebenaran: bug yang akan merusak produksi, bukan preferensi pemformatan atau cakupan pengujian yang hilang. Anda dapat memperluas apa yang diperiksa dengan [menambahkan file panduan](#customize-reviews) ke repositori Anda.

90 

91<h2 id="set-up-code-review">

92 Siapkan Code Review

93</h2>

94 

95Pemilik mengaktifkan Code Review sekali untuk organisasi dan memilih repositori mana yang akan disertakan.

96 

97<Steps>

98 <Step title="Buka pengaturan admin Claude Code">

99 Buka [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) dan temukan bagian Code Review. Anda memerlukan peran Pemilik atau Pemilik Utama di organisasi Claude Anda dan izin untuk memasang GitHub Apps di organisasi GitHub Anda.

100 </Step>

101 

102 <Step title="Mulai penyiapan">

103 Klik **Setup**. Ini memulai alur instalasi GitHub App.

104 </Step>

105 

106 <Step title="Pasang Claude GitHub App">

107 Ikuti petunjuk untuk memasang Claude GitHub App: pilih organisasi GitHub yang memiliki repositori yang ingin Anda tinjau, pilih repositori mana yang dapat diakses aplikasi, dan setujui izin yang diminta.

108 

109 Untuk meninjau permintaan tarik, Claude membaca konten repositori Anda melalui akses baca aplikasi, dan memposting komentar serta [jalankan pemeriksaan](#check-run-output) melalui akses tulisnya ke permintaan tarik dan pemeriksaan. Selama instalasi, Anda memberikan kumpulan izin yang lebih luas yang dibagikan oleh fitur Claude lainnya, seperti [GitHub Actions](/docs/id/github-actions); lihat [izin GitHub App](/docs/id/github-actions#github-app-permissions) untuk daftar lengkapnya.

110 </Step>

111 

112 <Step title="Pilih repositori">

113 Pilih repositori mana yang akan diaktifkan untuk Code Review. Jika Anda tidak melihat repositori, pastikan Anda memberikan akses Claude GitHub App ke repositori tersebut selama instalasi. Anda dapat menambahkan lebih banyak repositori nanti.

114 </Step>

115 

116 <Step title="Atur pemicu ulasan per repo">

117 Setelah penyiapan selesai, bagian Code Review menampilkan repositori Anda dalam tabel. Untuk setiap repositori, gunakan dropdown **Review Behavior** untuk memilih kapan ulasan berjalan:

118 

119 * **Once after PR creation**: ulasan berjalan sekali ketika PR dibuka atau ditandai siap untuk ditinjau

120 * **After every push**: ulasan berjalan pada setiap push ke cabang PR, menangkap masalah baru saat PR berkembang dan secara otomatis menyelesaikan utas ketika Anda memperbaiki masalah yang ditandai

121 * **Manual**: membuka atau push ke PR tidak memulai ulasan; komentari [`@claude review`](#manually-trigger-reviews) untuk meminta satu, atau `@claude review always` untuk juga berlangganan PR ke ulasan pada push berikutnya

122 

123 Pilihan mana pun yang Anda pilih, Claude meninjau [permintaan tarik dari fork](#review-pull-requests-from-forks) hanya ketika seseorang mengomentari `@claude review` di dalamnya.

124 

125 Meninjau pada setiap push menjalankan ulasan paling banyak dan biaya paling banyak. Mode manual berguna untuk repo lalu lintas tinggi di mana Anda ingin memilih PR tertentu untuk ditinjau, atau hanya mulai meninjau PR Anda setelah siap.

126 </Step>

127</Steps>

128 

129Tabel repositori juga menampilkan biaya rata-rata per ulasan untuk setiap repo berdasarkan aktivitas terbaru. Gunakan menu tindakan baris untuk mengaktifkan atau menonaktifkan Code Review per repositori, atau untuk menghapus repositori sepenuhnya.

130 

131Untuk memverifikasi penyiapan, buka PR pengujian. Jika Anda memilih pemicu otomatis, jalankan pemeriksaan bernama **Claude Code Review** muncul dalam beberapa menit. Jika Anda memilih Manual, komentari `@claude review` pada PR untuk memulai ulasan pertama. Jika tidak ada jalankan pemeriksaan yang muncul, konfirmasi repositori terdaftar di pengaturan admin Anda dan Claude GitHub App memiliki akses ke repositori tersebut.

132 10 

133<h2 id="manually-trigger-reviews">11Temuan tiba sebagai komentar sebaris pada baris yang bersangkutan, diurutkan berdasarkan [tingkat keparahan](/docs/id/code-review-pull-requests#severity-levels), dengan ringkasan dan check run pada pull request. Review tidak pernah menyetujui atau memblokir pull request, sehingga keputusan untuk melakukan merge tetap berada di tangan tim Anda.

134 Memicu ulasan secara manual

135</h2>

136 

137Perintah komentar memulai ulasan sesuai permintaan. Perintah-perintah ini berfungsi terlepas dari pemicu yang dikonfigurasi repositori, sehingga Anda dapat menggunakannya untuk memilih PR tertentu ke dalam ulasan dalam mode Manual atau untuk mendapatkan ulasan kembali segera di mode lain.

138 12 

139| Perintah | Apa yang dilakukannya |13<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=0351c96df9efa3105172eb00a672f130" className="dark:hidden" alt="Diagram review dalam empat tahap. Pull request di GitHub diteruskan ke beberapa agent yang mencari secara paralel di infrastruktur Anthropic. Langkah verifikasi membuang positif palsu, temuan yang tersisa dideduplikasi dan diurutkan berdasarkan tingkat keparahan, dan review memposting komentar sebaris, ringkasan, dan check run kembali ke GitHub." width="760" height="300" data-path="images/code-review-pipeline.svg" />

140| :- | :- |

141| `@claude review` | Memulai ulasan tunggal tanpa berlangganan PR ke ulasan yang dipicu push di masa depan |

142| `@claude review always` | Memulai ulasan dan berlangganan PR ke ulasan yang dipicu push ke depannya |

143| `@claude review once` | Sama seperti `@claude review`: memulai ulasan tunggal tanpa berlangganan |

144 14 

145Gunakan `@claude review always` ketika Anda menginginkan setiap push berikutnya ke PR untuk memulai ulasan segar, seperti pada PR prioritas tinggi di repositori yang diatur ke mode Manual. Karena perintah dasar tidak berlangganan PR, Anda dapat meminta pendapat kedua sekali saja tanpa mengubah apakah push berikutnya memicu ulasan.15<img src="https://mintcdn.com/claude-code/gLJVaPQEgKC8ZyUD/images/code-review-pipeline-dark.svg?fit=max&auto=format&n=gLJVaPQEgKC8ZyUD&q=85&s=9cf26bde98f4e999d0d9ff5bf5bdff40" className="hidden dark:block" alt="Diagram review dalam empat tahap. Pull request di GitHub diteruskan ke beberapa agent yang mencari secara paralel di infrastruktur Anthropic. Langkah verifikasi membuang positif palsu, temuan yang tersisa dideduplikasi dan diurutkan berdasarkan tingkat keparahan, dan review memposting komentar sebaris, ringkasan, dan check run kembali ke GitHub." width="760" height="300" data-path="images/code-review-pipeline-dark.svg" />

146 16 

147<Note>17<Note>

148 Sebelum pembaruan Juli 2026, `@claude review` berlangganan PR ke ulasan yang dipicu push. Jika Anda mengandalkan perilaku tersebut, komentar `@claude review always` sebagai gantinya. `@claude review once` masih berfungsi dan berperilaku sama seperti perintah dasar.18 Code Review menggunakan AI untuk me-review kode dan mungkin melewatkan bug, kerentanan keamanan, atau masalah lainnya. Review tanpa temuan tidak berarti kode Anda bebas dari kesalahan atau aman.

149</Note>19</Note>

150 20 

151Agar perintah apa pun memicu ulasan:21<span id="review-a-diff-locally" />

152 

153* Posting sebagai komentar PR tingkat atas, bukan komentar sebaris pada baris diff

154* Letakkan perintah di awal komentar, dengan `once` atau `always` pada baris yang sama dengan sisa perintah

155* Anda harus memiliki izin tulis, pertahankan, atau admin pada repositori

156* PR harus terbuka

157 

158Tidak seperti pemicu otomatis, pemicu manual berjalan pada PR draf, karena permintaan eksplisit menandakan Anda menginginkan ulasan sekarang terlepas dari status draf.

159 

160Jika ulasan sudah berjalan pada PR tersebut, permintaan antri sampai ulasan yang sedang berlangsung selesai. Anda dapat memantau kemajuan melalui jalankan pemeriksaan pada PR.

161 

162<h3 id="review-pull-requests-from-forks">

163 Ulasan permintaan tarik dari fork

164</h3>

165 

166Claude tidak meninjau permintaan tarik dari fork secara otomatis, terlepas dari pengaturan **Review Behavior** repositori. Untuk memulai satu, komentar `@claude review` pada permintaan tarik. [Persyaratan untuk perintah komentar](#manually-trigger-reviews) masih berlaku, dan akses tulis yang Anda butuhkan adalah ke repositori dasar, bukan fork.

167 22 

168Untuk mendapatkan ulasan lain dari permintaan tarik fork, posting komentar `@claude review` baru. `@claude review always` juga berfungsi, tetapi tidak berlangganan permintaan tarik ke ulasan pada push berikutnya. Tidak ada yang lain selain perintah komentar yang memulai ulasan pada permintaan tarik fork:23Untuk mengaktifkan Code Review, seorang Owner organisasi Claude Anda mengikuti [Siapkan Code Review](/docs/id/code-review-setup). Claude juga dapat me-review kode tanpa layanan ini. Jalankan [`/code-review`](/docs/id/code-review-local) di sesi Claude Code Anda pada paket apa pun, atau [bandingkan semua opsi](#compare-ways-to-get-a-review).

169 24 

170* Mengklik **Re-run** pada jalankan pemeriksaan tidak memulai ulasan25<h2 id="availability">

171* Mendorong komit baru tidak memulai ulasan, bahkan di repositori yang diatur ke **After every push**26 Ketersediaan

172 

173<h2 id="customize-reviews">

174 Sesuaikan ulasan

175</h2>27</h2>

176 28 

177Code Review membaca dua file dari repositori Anda untuk memandu apa yang ditandai. Keduanya berbeda dalam seberapa kuat mereka mempengaruhi ulasan:29Periksa apakah organisasi Anda memenuhi syarat sebelum Anda menyiapkan Code Review:

178 

179* **`CLAUDE.md`**: instruksi proyek bersama yang digunakan Claude Code untuk semua tugas, bukan hanya ulasan. Code Review membacanya sebagai konteks proyek dan menandai pelanggaran yang baru diperkenalkan sebagai nit.

180* **`REVIEW.md`**: instruksi khusus ulasan, diberikan kepada agen yang menemukan dan memverifikasi temuan dan dikonsultasikan oleh agen yang menentukan peringkat dan melaporkan temuan. Gunakan untuk mengatakan apa yang ingin ditandai oleh tim Anda, pada tingkat keparahan apa, dan bagaimana temuan dilaporkan.

181 

182<h3 id="claude-md">

183 CLAUDE.md

184</h3>

185 

186Code Review membaca file `CLAUDE.md` repositori Anda dan memperlakukan pelanggaran yang baru diperkenalkan sebagai temuan tingkat [nit](#severity-levels). Ini berfungsi dua arah: jika PR Anda mengubah kode dengan cara yang membuat pernyataan `CLAUDE.md` ketinggalan zaman, Claude menandai bahwa dokumen perlu diperbarui juga.

187 

188Claude membaca file `CLAUDE.md` di setiap tingkat hierarki direktori Anda, jadi aturan di `CLAUDE.md` subdirektori hanya berlaku untuk file di bawah jalur tersebut. Lihat [dokumentasi memori](/docs/id/memory) untuk lebih lanjut tentang cara kerja `CLAUDE.md`.

189 30 

190Untuk panduan khusus ulasan yang tidak ingin Anda terapkan pada sesi Claude Code umum, gunakan [`REVIEW.md`](#review-md) sebagai gantinya.31* **Paket**: [Team dan Enterprise](/docs/id/feature-availability)

191 32* **Host kode**: repositori yang di-host di GitHub, termasuk [GitHub Enterprise Server](/docs/id/github-enterprise-server) dan GitHub Enterprise Cloud dengan residensi data. Untuk residensi data, minta seorang Owner mengikuti [penyiapan admin GitHub Enterprise Server](/docs/id/github-enterprise-server#admin-setup) dan memasukkan hostname `ghe.com` milik enterprise Anda.

192<h3 id="review-md">33* **Retensi data**: Code Review tidak tersedia untuk organisasi yang mengaktifkan [Zero Data Retention](/docs/id/zero-data-retention) atau yang menerapkan [konfigurasi HIPAA](/docs/id/hipaa-setup), dan tidak tercakup dalam Business Associate Agreement (BAA) Anthropic.

193 REVIEW\.md34* **Kunci enkripsi**: Code Review belum tersedia untuk organisasi yang menggunakan kunci enkripsi yang dikelola pelanggan (CMEK).

194</h3>35* **Penyedia cloud**: Anda memerlukan organisasi Claude pada salah satu paket ini meskipun developer Anda menggunakan Claude Code melalui Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry

195 36 

196`REVIEW.md` adalah file di akar repositori Anda yang menyesuaikan Code Review dengan repo Anda. Agen dalam saluran ulasan yang menemukan dan memverifikasi temuan menerima isinya sebagai instruksi ulasan repositori Anda, bersama dengan panduan ulasan default Code Review, dan agen yang menentukan peringkat dan melaporkan temuan berkonsultasi dengannya sebelum menetapkan keparahan dan menulis ulasan.37<h2 id="set-up-and-use-code-review">

197 38 Siapkan dan gunakan Code Review

198Letakkan aturan yang ingin Anda terapkan langsung di `REVIEW.md`.

199 

200<h4 id="what-you-can-tune">

201 Apa yang dapat Anda sesuaikan

202</h4>

203 

204`REVIEW.md` adalah markdown bentuk bebas, jadi apa pun yang dapat Anda ekspresikan sebagai instruksi ulasan berada dalam cakupan. Pola di bawah ini memiliki dampak paling besar dalam praktik.

205 

206**Keparahan**: tentukan ulang apa yang 🔴 Penting berarti untuk repo Anda. Kalibrasi default menargetkan kode produksi; repo dokumen, repo konfigurasi, atau prototipe mungkin menginginkan definisi yang jauh lebih sempit. Nyatakan secara eksplisit kelas temuan mana yang Penting dan mana yang paling banyak Nit. Anda juga dapat meningkatkan ke arah lain, misalnya memperlakukan pelanggaran `CLAUDE.md` apa pun sebagai Penting daripada nit default.

207 

208**Volume nit**: batasi berapa banyak komentar 🟡 Nit yang diposting ulasan tunggal. Prosa dan file konfigurasi dapat dipoles selamanya. Batas seperti "laporkan paling banyak lima nit, sebutkan sisanya sebagai hitungan dalam ringkasan" membuat ulasan dapat ditindaklanjuti.

209 

210**Aturan lewati**: daftar jalur, pola cabang, dan kategori temuan di mana Claude tidak boleh memposting temuan. Kandidat umum adalah kode yang dihasilkan, lockfile, dependensi yang dijual, dan cabang yang dibuat mesin, bersama dengan apa pun yang CI Anda sudah terapkan seperti linting atau pemeriksaan ejaan. Untuk jalur yang memerlukan beberapa ulasan tetapi bukan pengawasan penuh, tetapkan standar yang lebih tinggi alih-alih melewati sepenuhnya: "di `scripts/`, hanya laporkan jika hampir pasti dan parah."

211 

212**Pemeriksaan khusus repo**: tambahkan aturan yang ingin Anda tandai pada setiap PR, seperti "rute API baru harus memiliki tes integrasi." Karena `REVIEW.md` menjangkau setiap agen temuan dan verifikasi secara langsung, ini mendarat lebih andal daripada aturan yang sama dalam `CLAUDE.md` yang panjang.

213 

214**Bilah verifikasi**: memerlukan bukti sebelum kelas temuan diposting. Misalnya, "klaim perilaku memerlukan kutipan `file:line` dalam sumber, bukan inferensi dari penamaan" mengurangi positif palsu yang akan menghabiskan penulis putaran perjalanan.

215 

216**Konvergensi ulasan kembali**: beri tahu Claude cara berperilaku ketika PR sudah ditinjau. Aturan seperti "setelah ulasan pertama, tekan nit baru dan posting temuan Penting saja" menghentikan perbaikan satu baris dari mencapai putaran ketujuh hanya berdasarkan gaya.

217 

218**Bentuk ringkasan**: minta badan ulasan untuk dibuka dengan tally satu baris seperti `2 faktual, 4 gaya`, dan untuk memimpin dengan "tidak ada masalah faktual" ketika itu kasusnya. Penulis ingin mengetahui bentuk pekerjaan sebelum detail.

219 

220<h4 id="example">

221 Contoh

222</h4>

223 

224`REVIEW.md` ini mengkalibrasi ulang keparahan untuk layanan backend, membatasi nit, melewati file yang dihasilkan, dan menambahkan pemeriksaan khusus repo.

225 

226```markdown theme={null}

227# Instruksi ulasan

228 

229## Apa yang Penting berarti di sini

230 

231Cadangkan Penting untuk temuan yang akan merusak perilaku, membocorkan data,

232atau memblokir rollback: logika yang tidak benar, kueri basis data yang tidak terbatas, PII

233dalam log atau pesan kesalahan, dan migrasi yang tidak kompatibel

234ke belakang. Gaya, penamaan, dan saran refactoring adalah Nit paling

235banyak.

236 

237## Batasi nit

238 

239Laporkan paling banyak lima Nit per ulasan. Jika Anda menemukan lebih banyak, katakan "plus N

240item serupa" dalam ringkasan alih-alih mempostingnya sebaris. Jika

241semuanya yang Anda temukan adalah Nit, pimpin ringkasan dengan "Tidak ada masalah pemblokiran."

242 

243## Jangan laporkan

244 

245- Apa pun yang CI sudah terapkan: lint, pemformatan, kesalahan tipe

246- File yang dihasilkan di bawah `src/gen/` dan file `*.lock` apa pun

247- Kode khusus pengujian yang sengaja melanggar aturan produksi

248 

249## Selalu periksa

250 

251- Rute API baru memiliki tes integrasi

252- Baris log tidak menyertakan alamat email, ID pengguna, atau badan permintaan

253- Kueri basis data dibatasi ke penyewa pemanggil

254```

255 

256<h4 id="keep-it-focused">

257 Jaga agar tetap fokus

258</h4>

259 

260Panjang memiliki biaya: `REVIEW.md` yang panjang mengencerkan aturan yang paling penting. Jaga agar tetap pada instruksi yang mengubah perilaku ulasan, dan tinggalkan konteks proyek umum di `CLAUDE.md`.

261 

262<h2 id="view-usage">

263 Lihat penggunaan

264</h2>39</h2>

265 40 

266Buka [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) untuk melihat aktivitas Code Review di seluruh organisasi Anda. Dasbor menampilkan:41<span id="set-up-code-review" />

267 42 

268| Bagian | Apa yang ditampilkan |43<span id="pricing" />

269| :- | :- |

270| PRs reviewed | Hitungan harian permintaan tarik yang ditinjau selama rentang waktu yang dipilih |

271| Code Review cost | Pengeluaran Code Review sejauh ini pada bulan ini |

272| Feedback | Hitungan komentar ulasan yang secara otomatis diselesaikan karena pengembang mengatasi masalah |

273| Repository breakdown | Hitungan per-repo PR yang ditinjau, komentar yang diselesaikan, dan eksekusi review, dengan perkiraan biaya dan tampilan per-PR |

274 44 

275Kartu Code Review cost hanya menampilkan jumlah ketika bulan saat ini dipilih. Angka biaya di analitik dapat berbeda dari faktur Anda. Biaya pada Repository breakdown diperkirakan berdasarkan harga daftar, sebelum diskon atau kredit apa pun, dan hanya mencakup review yang diposting Claude pada pull request. Untuk pengeluaran yang akurat sesuai faktur, lihat tagihan Anthropic Anda.45<span id="manually-trigger-reviews" />

276 46 

277<h2 id="pricing">47<span id="customize-reviews" />

278 Harga

279</h2>

280 

281Code Review ditagih berdasarkan penggunaan token. Setiap ulasan rata-rata \$15-25 dalam biaya, diskalakan dengan ukuran PR, kompleksitas basis kode, dan berapa banyak masalah yang memerlukan verifikasi. Penggunaan Code Review ditagih secara terpisah melalui [penggunaan ekstra](https://support.claude.com/id/articles/12429409-extra-usage-for-paid-claude-plans) dan tidak dihitung terhadap penggunaan yang disertakan dalam paket Anda.

282 

283Pemicu ulasan yang Anda pilih mempengaruhi biaya total:

284 

285* **Once after PR creation**: berjalan sekali per PR

286* **After every push**: berjalan pada setiap push, mengalikan biaya dengan jumlah push

287* **Manual**: tidak ada ulasan pada PR terbuka atau push, jadi biaya hanya terjadi dari ulasan yang diminta seseorang

288 48 

289Dalam mode Once after PR creation atau Manual, mengomentari `@claude review always` [memilih PR ke dalam ulasan yang dipicu push](#manually-trigger-reviews), jadi biaya tambahan terjadi per push setelah komentar tersebut. Dalam mode After every push, push sudah memicu ulasan, jadi langganan tidak mengubah biaya per-push. Mengomentari `@claude review` menjalankan ulasan tunggal tanpa berlangganan ke push masa depan. Claude meninjau [pull request dari fork](#review-pull-requests-from-forks) hanya ketika seseorang mengomentari `@claude review`, jadi pull request fork tidak pernah mengakumulasi biaya per-push dalam mode apa pun.49<span id="troubleshooting" />

290 50 

291Biaya muncul pada tagihan Anthropic Anda terlepas dari apakah organisasi Anda menggunakan Amazon Bedrock atau Google Cloud's Agent Platform untuk fitur Claude Code lainnya. Untuk menetapkan batas pengeluaran bulanan untuk Code Review, buka [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) dan konfigurasikan batas untuk layanan Claude Code Review.51Pilih halaman sesuai dengan apa yang perlu Anda lakukan:

292 52 

293Untuk memantau pengeluaran, gunakan [dasbor analitik](#view-usage).53<CardGroup cols={2}>

54 <Card title="Siapkan Code Review" icon="toggle-on" href="/docs/id/code-review-setup">

55 Periksa persyaratan, pasang Claude GitHub App, dan pilih repositori, tingkat review, serta kapan review berjalan

56 </Card>

294 57 

295<h2 id="troubleshooting">58 <Card title="Sesuaikan Code Review" icon="sliders" href="/docs/id/code-review-customize">

296 Pemecahan masalah59 Sesuaikan apa yang ditandai dengan file `REVIEW.md` dan `CLAUDE.md` di repositori Anda

297</h2>60 </Card>

298 

299Jalankan ulasan adalah upaya terbaik, dan jalankan yang gagal tidak pernah memblokir PR Anda. Code Review mencoba ulang beberapa ulasan yang terputus dengan sendirinya. Bagian ini mencakup cara menjalankan ulasan lagi sendiri dan tempat mencari ketika jalankan pemeriksaan melaporkan masalah yang tidak dapat Anda temukan.

300 61 

301<h3 id="retrigger-a-failed-or-timed-out-review">62 <Card title="Baca dan minta review pada pull request" icon="code-pull-request" href="/docs/id/code-review-pull-requests">

302 Picu ulang ulasan yang gagal atau habis waktu63 Baca temuan beserta tingkat keparahannya, dan minta review lain dengan komentar

303</h3>64 </Card>

304 65 

305Ketika ulasan gagal atau melampaui batas waktu, jalankan pemeriksaan selesai dengan judul seperti **Code review failed** atau **Code review timed out**. Kesimpulannya masih netral, jadi tidak ada yang memblokir penggabungan Anda. Kecuali ringkasan jalankan pemeriksaan mengatakan ulasan baru dari komit telah antri secara otomatis, jalankan ulasan lagi sendiri.66 <Card title="Pemecahan masalah Code Review" icon="wrench" href="/docs/id/code-review-troubleshooting">

67 Perbaiki review yang tidak dimulai, gagal, atau dilewati karena anggaran

68 </Card>

306 69 

307Untuk menjalankan ulasan lagi, komentari `@claude review` pada PR. Ini memulai ulasan segar tanpa berlangganan PR ke push masa depan. Jika PR tidak [dari fork](#review-pull-requests-from-forks), Anda dapat mengklik **Re-run** pada pemeriksaan **Claude Code Review** di tab Checks GitHub. Jalankan ulang juga memulai ulasan segar tanpa berlangganan PR.70 <Card title="Biaya dan penggunaan Code Review" icon="chart-line" href="/docs/id/code-review-costs">

71 Lihat cara review ditagih, perkirakan pengeluaran, tetapkan batas pengeluaran bulanan, dan lacak aktivitas review

72 </Card>

73</CardGroup>

308 74 

309<h3 id="review-didn’t-run-and-the-pr-shows-a-budget-message">75<h2 id="how-reviews-work">

310 Ulasan tidak berjalan dan PR menampilkan pesan anggaran76 Cara kerja review

311</h3>

312 

313Ketika batas pengeluaran bulanan organisasi Anda untuk Code Review tercapai atau saldo kredit penggunaannya habis, Code Review melewati ulasan dan memposting satu komentar pada PR. Komentar tersebut dan kartu jalankan pemeriksaan sama-sama menyebutkan penyebabnya dan menautkan ke halaman admin tempat admin dapat memperbaikinya:

314 

315* **Batas pengeluaran tercapai**: ulasan dilanjutkan pada awal periode penagihan berikutnya, atau segera setelah admin menaikkan batas di [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)

316* **Kredit penggunaan habis**: ulasan dilanjutkan setelah admin menambahkan lebih banyak [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) di [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage)

317 

318<h3 id="find-issues-that-aren’t-showing-as-inline-comments">

319 Temukan masalah yang tidak ditampilkan sebagai komentar sebaris

320</h3>

321 

322Jika judul jalankan pemeriksaan mengatakan masalah ditemukan tetapi Anda tidak melihat komentar ulasan sebaris pada diff, cari di lokasi lain tempat temuan ditampilkan:

323 

324* **Check run Details**: klik **Details** di sebelah jalankan pemeriksaan Claude Code Review di tab Checks. Tabel keparahan mencantumkan setiap temuan dengan file, baris, dan ringkasannya terlepas dari apakah komentar sebaris diterima.

325* **Files changed annotations**: buka tab **Files changed** pada PR. Temuan dirender sebagai anotasi yang terpasang langsung ke baris diff, terpisah dari komentar ulasan.

326* **Review body**: jika Anda push ke PR saat ulasan sedang berjalan, beberapa temuan mungkin mereferensikan baris yang tidak lagi ada di diff saat ini. Ini muncul di bawah judul **Additional findings** dalam teks badan ulasan daripada sebagai komentar sebaris.

327 

328<h2 id="review-a-diff-locally">

329 Meninjau diff secara lokal

330</h2>77</h2>

331 78 

332Perintah [`/code-review`](/docs/id/commands) meninjau diff di terminal Anda tanpa memasang GitHub App. Ini melaporkan bug kebenaran. Bergantung pada model dan tingkat effort Anda, ulasan juga mencakup penggunaan kembali, penyederhanaan, dan pembersihan efisiensi.79<span id="what-code-review-checks" />

333 80 

334`/review` adalah alias dari `/code-review`; sebelum v2.1.223, itu adalah perintah terpisah yang menjalankan ulasan baca-saja satu lintasan dari permintaan tarik GitHub.81Secara default, Code Review berfokus pada kebenaran: bug yang akan merusak produksi, bukan preferensi pemformatan atau cakupan pengujian yang hilang. Untuk mengubah apa yang ditandainya, [tambahkan file panduan](/docs/id/code-review-customize) ke repositori Anda.

335 82 

336<Steps>83Review berjalan di infrastruktur Anthropic dalam empat tahap:

337 <Step title="Jalankan /code-review">

338 Dari sesi tempat Anda bekerja, jalankan perintah:

339 84 

340 ```text theme={null}851. **Temukan**: beberapa agent memeriksa diff dan kode di sekitarnya secara paralel.

341 /code-review862. **Verifikasi**: langkah verifikasi memeriksa kandidat temuan terhadap kode dan menyaring positif palsu.

342 ```873. **Urutkan**: temuan yang tersisa dideduplikasi dan diurutkan berdasarkan tingkat keparahan.

884. **Posting**: review memposting hasilnya pada pull request.

343 89 

344 Ini meninjau komit cabang Anda yang berada di depan upstream-nya ditambah perubahan yang tidak dilakukan, jadi itu memerlukan pekerjaan pada cabang atau di pohon kerja untuk memiliki sesuatu untuk dilaporkan. Untuk meninjau sesuatu yang lain, lewatkan target: jalur file, nomor PR, nama cabang, atau rentang ref seperti `main...my-feature`.90Setiap review meninggalkan hal-hal berikut pada pull request:

345 91 

346 Anda juga dapat menambahkan flag:92* **Temuan**: komentar sebaris pada baris yang bersangkutan, dengan ringkasan di badan review

93* **Check run**: bernama **Claude Code Review**, dengan temuan tercantum di [detailnya](/docs/id/code-review-pull-requests#check-run-output). Check run tidak berakhir dengan status gagal.

94* **Ketika tidak menemukan apa pun**: judul check run berbunyi **Code review found no issues**, dan Claude memposting catatan singkat yang sama pada pull request

347 95 

348 * `--fix`: menerapkan temuan ke pohon kerja Anda setelah ulasan96Code Review memilih model Claude yang digunakan untuk menjalankan review, dan pengaturan admin-nya tidak menawarkan pilihan model. Untuk membuat review lebih atau kurang menyeluruh, ubah [tingkat review](#review-levels).

349 * `--comment`: memposting temuan pada pull request GitHub sebagai komentar sebaris, atau pada merge request GitLab sebagai catatan tunggal

350 * `--post`: pada ulasan cloud `ultra` dari pull request `github.com`, pra-memilih posting temuan yang selesai ke PR dalam dialog peluncuran; lihat [Posting temuan ke pull request](/docs/id/ultrareview#post-findings-to-the-pull-request). Memerlukan Claude Code v2.1.227 atau lebih baru

351 * `--max-findings <n>`, `--max-findings all`, atau `--max-findings default`: melaporkan hingga `n` temuan, atau setiap temuan dengan `all`, sebagai pengganti batas biasa ulasan. Ulasan berikutnya menggunakan kembali nilai yang Anda ketik hingga Anda melewatkan `--max-findings default`. Memerlukan Claude Code v2.1.288 atau lebih baru

352 97 

353 Ketika Anda melewatkan `--comment` untuk permintaan penggabungan GitLab, Claude Code memposting temuan melalui CLI `glab` GitLab. Memerlukan Claude Code v2.1.257 atau lebih baru. Ketika `glab` tidak diinstal, Claude mencetak temuan di terminal sebagai gantinya.98Setelah seorang Owner mengaktifkan Code Review, setiap repositori memiliki pengaturan untuk [kapan review berjalan](/docs/id/code-review-setup#set-when-reviews-run): sekali ketika pull request dibuka, setelah setiap push, atau hanya atas permintaan. Apa pun pengaturannya, siapa pun dengan akses tulis ke repositori dapat mengomentari `@claude review` pada pull request untuk [memulai review](/docs/id/code-review-pull-requests#comment-commands).

354 99 

355 Lewatkan permintaan penggabungan sebagai URL-nya atau referensi `!123`. Claude Code memperlakukan nomor telanjang atau nama cabang sebagai permintaan penggabungan hanya ketika checkout asal berada di `gitlab.com`. Pada instans GitLab yang dikelola sendiri, lewatkan URL atau bentuk `!123`.100<h3 id="review-levels">

356 </Step>101 Tingkat review

357 

358 <Step title="Terus bekerja">

359 Ulasan berjalan sebagai [subagent](/docs/id/sub-agents) latar belakang dengan jendela konteks sendiri, jadi itu tidak mengisi percakapan Anda. Temuan tiba dalam percakapan Anda ketika ulasan selesai.

360 </Step>

361 

362 <Step title="Bertindak atas temuan">

363 Minta Claude untuk memperbaiki apa yang ditemukan ulasan. Jika Anda melewatkan `--fix` atau `--comment`, ulasan telah menerapkan atau memposting temuannya.

364 </Step>

365</Steps>

366 

367Claude melaporkan temuan sebagai teks dalam balasan di kedua lintasan ini, bahkan ketika aplikasi host meminta daftar temuan:

368 

369* Dalam sesi terminal, di mana `/code-review` menjalankan ulasan sebagai [subagent bercabang](/docs/id/skills#run-skills-in-a-subagent)

370* Dalam lintasan `-p` dengan output teks atau JSON

371 

372Dalam aplikasi host yang meminta daftar temuan, seperti [aplikasi desktop](/docs/id/desktop#review-your-code), Claude melaporkan temuan ulasan melalui [tool `ReportFindings`](/docs/id/tools-reference) sebagai gantinya. Claude Code merender laporan sebagai daftar temuan, dan setiap entri menunjukkan lokasi file, ringkasan satu kalimat, dan tag kategori seperti `correctness` ketika temuan membawanya. Permintaan host berlaku di setiap tingkat effort dan memerlukan Claude Code v2.1.218 atau lebih baru.

373 

374Ketika Claude memperbaiki temuan yang dilaporkan nanti dalam sesi, itu melaporkannya lagi, dan Claude Code menandai setiap temuan dalam daftar temuan yang diperbarui sebagai diperbaiki, dilewati, atau tidak ada perubahan yang diperlukan.

375 

376<h3 id="what-the-review-reads-and-edits">

377 Apa yang dibaca dan diedit ulasan

378</h3>102</h3>

379 103 

380Ulasan mengikuti `CLAUDE.md` Anda seperti sesi Claude Code apa pun, tetapi itu tidak membaca [`REVIEW.md`](#review-md). Ulasan latar belakang menerapkan pengeditan `--fix` di luar [checkpoint](/docs/id/checkpointing#subagent-edits-not-restored) sesi Anda, jadi `/rewind` tidak membatalkannya; gunakan git untuk mengembalikannya. Ketika ulasan [berjalan di latar depan](#run-in-the-foreground), itu mengedit pohon kerja Anda selama giliran Anda sendiri, jadi `/rewind` mengembalikan penyuntingannya seperti biasa.104Tingkat review menentukan seberapa menyeluruh setiap review, dan review yang lebih menyeluruh memerlukan biaya lebih besar:

381 105 

382<h3 id="tune-effort-and-arguments">106* **Quick**: pemeriksaan yang lebih ringan. Tingkat tercepat, dengan biaya terendah.

383 Sesuaikan upaya dan argumen107* **Standard**: kedalaman, kecepatan, dan biaya yang seimbang. Tingkat default.

384</h3>108* **Deep**: pemeriksaan paling menyeluruh. Memakan waktu paling lama dan biaya paling besar.

385 109 

386Lewatkan [tingkat effort](/docs/id/model-config#adjust-effort-level) untuk menukar cakupan dengan kepercayaan diri. Pada `low`, ulasan melaporkan temuan yang paling diyakininya, jadi Anda melihat lebih sedikit positif palsu. Dari `medium` hingga `max`, ulasan memperluas cakupannya.110Seorang Owner [memilih satu tingkat untuk organisasi](/docs/id/code-review-setup#set-the-default-review-level) dan dapat memberikan tingkat tersendiri untuk repositori individual, seperti Quick untuk codebase biasa dan Deep untuk codebase yang kritis. Untuk faktor lain yang memengaruhi biaya setiap review, lihat [Biaya dan penggunaan Code Review](/docs/id/code-review-costs).

387 111 

388Ketika Anda tidak mengetik level, ulasan menggunakan kembali level terakhir dari `low` hingga `max` yang Anda ketik, bahkan dalam sesi sebelumnya, dan Claude Code menunjukkan pemberitahuan seperti `Reusing high effort, the level you typed last time`. Ketik level, seperti `/code-review high`, untuk mengubah apa yang digunakan kembali oleh lintasan nanti; level yang Anda lewatkan dalam lintasan `-p` non-interaktif tidak memperbaruinya. `ultra` tidak memperbarui atau menggunakan level yang diingat. Jika Anda tidak pernah mengetik level, ulasan menggunakan upaya saat ini sesi. Sebelum v2.1.223, `/code-review` tanpa level selalu menggunakan upaya saat ini sesi.112<h3 id="what-a-review-can-access">

389 113 Apa yang dapat diakses review

390Setelah tingkat upaya dan flag, Claude Code membaca sisa baris dalam salah satu dari dua cara:

391 

392* **Tanpa `ultra`**: semuanya yang tersisa adalah target ulasan, bahkan ketika itu dimulai dengan nama perintah lain. `/code-review /fix-issue 123` meninjau dengan `/fix-issue 123` sebagai teks target alih-alih memuat `/fix-issue` sebagai [skill bertumpuk](/docs/id/skills#pass-arguments-to-skills) kedua. Sebelum v2.1.218, perintah yang ditumpuk setelah `/code-review` diperluas sebagai skill-nya sendiri.

393* **Dengan `ultra`**: Claude Code membaca satu kata sebagai cabang dasar atau nomor PR, dan mengubah teks yang lebih panjang yang tidak menamai cabang atau PR menjadi [catatan yang dilampirkan ke ulasan](/docs/id/ultrareview#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` meninjau cabang saat ini Anda, dan Claude menghubungkan temuan dengan catatan Anda.

394 

395<h3 id="run-in-the-foreground">

396 Jalankan di latar depan

397</h3>114</h3>

398 115 

399Ulasan berjalan di latar belakang secara default; sebelum v2.1.218, itu berjalan di dalam percakapan Anda. Itu berjalan di latar depan sebagai gantinya dalam kasus seperti ini:116Review menjangkau repositori Anda melalui Claude GitHub App yang [dipasang Owner selama penyiapan](/docs/id/code-review-setup#turn-on-code-review):

400 117 

401* Anda menjalankan `/code-review` lagi sementara ulasan sebelumnya masih berlangsung118* **Tempat review berjalan**: di infrastruktur Anthropic, dalam lingkungan terkelola. Review tidak berjalan di [lingkungan self-hosted](/docs/id/self-hosted-environments).

402* Anda menjalankannya dalam mode non-interaktif, dengan flag `-p` atau Agent SDK; Claude Code menunggu ulasan dan menyertakan temuan dalam respons, kecuali untuk `ultra`, yang [tidak menunggu ulasan cloud](/docs/id/ultrareview#run-ultrareview-non-interactively)119* **Apa yang dibaca dan ditulisnya**: di dalam review, akses ke repositori Anda bersifat read-only, dan review tidak melakukan push commit. Pada pull request, review memposting komentar dan [check run](/docs/id/code-review-pull-requests#check-run-output), menyelesaikan utas komentarnya sendiri yang sebelumnya, dan dapat bereaksi terhadap perintah komentar dengan 👀. Aplikasi itu sendiri memiliki [kumpulan izin yang lebih luas](/docs/id/github-actions#github-app-permissions) yang dibagikan oleh fitur Claude lainnya.

403* Anda menetapkan [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/id/env-vars) ke `1`, yang juga mematikan setiap fitur tugas latar belakang lainnya120* **Cara memeriksa kode Anda**: review bekerja dengan membaca diff dan kode di sekitarnya, tanpa membangun atau menjalankan kode Anda.

404 121 

405<h3 id="let-claude-start-the-review">122<h3 id="who-controls-a-review">

406 Biarkan Claude memulai ulasan123 Siapa yang mengendalikan review

407</h3>124</h3>

408 125 

409Claude dapat memulai `/code-review` sendiri. Minta untuk meninjau perubahan Anda dalam bahasa biasa dan itu dapat menjalankan skill tanpa Anda mengetik perintah, dan [tugas terjadwal](/docs/id/scheduled-tasks) dengan `/code-review` sebagai prompt-nya menjalankan ulasan.126* **Siapa yang dapat memulainya**: di tempat review berjalan secara otomatis, membuka atau melakukan push ke pull request akan memulai review, [kecuali pada draf dan fork](/docs/id/code-review-pull-requests#review-drafts-and-pull-requests-from-forks). [Perintah komentar](/docs/id/code-review-pull-requests#comment-commands) memulai review hanya ketika berasal dari orang yang memiliki akses tulis ke repositori.

410 127* **Instruksi mana yang diikutinya**: `REVIEW.md` dari branch dasar atau default dan [tidak pernah dari perubahan pull request itu sendiri](/docs/id/code-review-customize#which-branch-review-md-is-read-from).

411Tugas terjadwal tidak pernah meluncurkan [ulasan cloud](#escalate-to-ultrareview), jadi jadwalkan `/code-review` tanpa argumen `ultra`.

412 128 

413Untuk menghentikan Claude dan tugas terjadwal dari memulai ulasan sambil menjaga `/code-review` tersedia untuk Anda ketik, tambahkan entri [`skillOverrides`](/docs/id/skills#override-skill-visibility-from-settings) ke [file pengaturan](/docs/id/settings#where-settings-live) seperti `~/.claude/settings.json`:129<h2 id="compare-ways-to-get-a-review">

414 130 Bandingkan cara mendapatkan review

415```json theme={null}131</h2>

416{

417 "skillOverrides": {

418 "code-review": "user-invocable-only"

419 }

420}

421```

422 

423Sebelum v2.1.246, Claude memulai `/code-review` sendiri hanya di mana flag fitur yang diambil dari Anthropic menyalakannya. Dalam [sesi yang tidak mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), `/code-review` berjalan hanya ketika Anda mengetiknya, dan `/code-review` terjadwal mencapai Claude sebagai teks biasa.

424 

425<h3 id="escalate-to-ultrareview">

426 Eskalasi ke ultrareview

427</h3>

428 

429`/code-review ultra --fix` menjalankan [ultrareview](/docs/id/ultrareview) yang lebih dalam di cloud, kemudian menerapkan temuannya ke pohon kerja Anda ketika mereka kembali dalam sesi Anda.

430 

431Ultrareview menggunakan cakupannya sendiri: cabang saat ini Anda terhadap cabang default repositori, ditambah perubahan yang tidak dilakukan dan staged dalam pohon kerja. Untuk perubahan yang tidak dilakukan ke file yang dinamai seperti kredensial atau kunci, seperti file `.env` dan `*.tfvars`, Claude Code mengikuti aturan untuk [mengunggah repositori lokal ke sesi cloud](/docs/id/claude-code-on-the-web#send-local-repositories-without-github). Lewatkan nama cabang, seperti `/code-review ultra develop`, untuk membandingkan terhadap dasar yang berbeda.

432 

433Ketika target adalah permintaan tarik `github.com`, Anda dapat memiliki Claude [posting temuan yang selesai ke PR](/docs/id/ultrareview#post-findings-to-the-pull-request) sebagai komentar dari akun GitHub Anda. Memerlukan Claude Code v2.1.227 atau lebih baru.

434 

435<Note>

436 Ultrareview memerlukan autentikasi dengan akun claude.ai dan tidak tersedia di Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry, atau untuk organisasi dengan Zero Data Retention diaktifkan atau dengan [konfigurasi HIPAA](/docs/id/hipaa-setup) diterapkan. Ketika ultrareview tidak tersedia, `/code-review ultra` menjalankan ulasan lokal dalam sesi Anda sebagai gantinya.

437</Note>

438 132 

439Untuk menjalankan ulasan cloud dari skrip atau tugas CI, gunakan [subperintah `claude ultrareview`](/docs/id/ultrareview#run-ultrareview-non-interactively), yang menunggu temuan dan mencetaknya ke stdout.133Untuk menemukan opsi yang tersedia bagi Anda, periksa kolom **Siapa yang dapat menggunakannya** terhadap paket dan host kode Anda:

440 134 

441Perintah ini dinamai `/simplify` sebelum v2.1.147, ketika itu menerapkan perbaikan secara default. `/simplify` menjalankan ulasan pembersihan terpisah yang menerapkan perbaikan tanpa berburu bug. Jika Anda membuat skrip `/simplify` untuk pencarian bug, beralih ke `/code-review --fix`.135| Opsi | Apa yang memulai review | Tempat berjalan | Siapa yang dapat menggunakannya |

136| :- | :- | :- | :- |

137| [Code Review](#how-reviews-work) | Aktivitas pull request, sesuai pengaturan setiap repositori, atau komentar `@claude review` | Infrastruktur Anthropic | Organisasi pada paket Team atau Enterprise dengan repositori GitHub, setelah Owner mengaktifkannya |

138| [`/code-review`](/docs/id/code-review-local) | Anda menjalankan perintah pada branch Anda | Sesi Claude Code Anda | Siapa saja, pada paket apa pun |

139| [Ultrareview](/docs/id/ultrareview) | Anda memulainya dari Claude Code | Sandbox cloud | Memerlukan masuk dengan akun claude.ai. Lihat [Ultrareview](/docs/id/ultrareview) untuk mengetahui di mana fitur ini tidak tersedia |

140| Claude di CI Anda sendiri, dengan [GitHub Actions](/docs/id/github-actions) atau [GitLab CI/CD](/docs/id/gitlab-ci-cd) | Event pipeline Anda, seperti setiap pull request atau merge request | Runner CI Anda sendiri | Siapa saja dengan kunci API Claude atau kredensial penyedia cloud, di GitHub atau GitLab |

141| Reviewer Anda sendiri, sebagai [subagent](/docs/id/sub-agents) atau [skill](/docs/id/skills) | Anda atau Claude memanggilnya selama sesi | Di mana pun Anda menjalankan Claude Code | Siapa saja yang menulisnya |

442 142 

443<h2 id="related-resources">143<h2 id="related-resources">

444 Sumber daya terkait144 Sumber daya terkait

445</h2>145</h2>

446 146 

447* [Commands](/docs/id/commands): jalankan `/code-review` dalam sesi Claude Code lokal untuk memeriksa diff sebelum push147* [GitHub Enterprise Server](/docs/id/github-enterprise-server): gunakan Code Review dengan instans GitHub yang di-host sendiri

448* [GitHub Actions](/docs/id/github-actions): jalankan Claude dalam alur kerja GitHub Actions Anda sendiri untuk otomasi khusus di luar ulasan kode148* [Izin GitHub App](/docs/id/github-actions#github-app-permissions): kumpulan izin lengkap yang diminta Claude GitHub App

449* [GitLab CI/CD](/docs/id/gitlab-ci-cd): integrasi Claude yang di-host sendiri untuk pipeline GitLab149* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): bagaimana review otomatis berperan sebagai salah satu lapisan proses pengembangan yang aman milik Anthropic

450* [Memory](/docs/id/memory): cara kerja file `CLAUDE.md` di seluruh Claude Code

451* [Analytics](/docs/id/analytics): lacak penggunaan Claude Code di luar ulasan kode

452* [How Anthropic secures its AI-native software development lifecycle](https://claude.com/blog/how-anthropic-secures-its-ai-native-software-development-lifecycle): bagaimana ulasan otomatis cocok sebagai salah satu lapisan proses pengembangan yang aman milik Anthropic

code-review-costs.md +88 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Biaya dan penggunaan Code Review

6 

7> Perkirakan dan batasi pengeluaran organisasi Anda untuk Claude Code Review: bagaimana review ditagih melalui kredit penggunaan, apa yang memengaruhi biaya, dan di mana melacak penggunaan.

8 

9[Code Review](/docs/id/code-review) tidak memiliki harga tetap per review. Pengeluaran Anda bergantung pada biaya setiap review dan jumlah review yang dijalankan:

10 

11* **Biaya setiap review**: bertambah sesuai [tingkat review](/docs/id/code-review-setup#set-the-default-review-level), ukuran perubahan, kompleksitas kode di sekitarnya, dan jumlah kandidat masalah yang perlu diverifikasi

12* **Jumlah review**: ditentukan oleh [seberapa sering review dijalankan](#how-often-reviews-run) di setiap repositori

13 

14<h2 id="pricing">

15 Harga

16</h2>

17 

18Code Review ditagih berdasarkan penggunaan token melalui [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans), terpisah dari penggunaan yang sudah termasuk dalam paket Anda. Review ditagihkan ke organisasi Anda, bukan ke pengembang yang membuka PR atau meminta review. Biaya muncul pada tagihan Anthropic Anda, terlepas dari apakah organisasi Anda menggunakan Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry untuk fitur Claude Code lainnya.

19 

20<h3 id="how-often-reviews-run">

21 Seberapa sering review dijalankan

22</h3>

23 

24Repositori yang Anda tambahkan dari halaman admin dimulai dengan **After every push**, yang menjalankan review paling banyak. [Pengaturan **Review runs**](/docs/id/code-review-setup#set-when-reviews-run) pada setiap repositori menentukan berapa banyak review yang didapat sebuah pull request:

25 

26* **Once after PR creation**: review dijalankan saat pull request dibuka, dibuka kembali, atau ditandai siap untuk review

27* **After every push**: dijalankan pada setiap push, sehingga biaya berlipat sesuai jumlah push

28* **Manual (@claude review)**: tidak ada review saat dibuka atau saat push

29 

30Perintah komentar, draf, dan pull request dari fork menyesuaikan jumlah tersebut:

31 

32* **`@claude review always` dalam mode Once after PR creation atau Manual**: [mendaftarkan PR ke review yang dipicu oleh push](/docs/id/code-review-pull-requests#comment-commands), sehingga biaya tambahan timbul per push setelah komentar tersebut

33* **`@claude review always` dalam mode After every push**: push sudah memicu review, sehingga langganan ini tidak mengubah biaya per push

34* **`@claude review`**: menjalankan satu review tanpa berlangganan ke push berikutnya

35* **Draf dan pull request dari fork**: [review otomatis melewati keduanya](/docs/id/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), sehingga push ke keduanya tidak menambah review

36 

37<h2 id="estimate-your-spend">

38 Perkirakan pengeluaran Anda

39</h2>

40 

41Sebelum peluncuran yang luas, jalankan uji coba kecil untuk memperkirakan pengeluaran bulanan dari pull request Anda sendiri.

42 

431. Tetapkan [batas pengeluaran bulanan](#limit-your-spend) untuk uji coba.

442. Aktifkan Code Review untuk beberapa repositori yang representatif dengan **Review runs** diatur ke **Once after PR creation** atau **Manual (@claude review)**.

453. Setelah beberapa review dijalankan, baca rata-rata biaya per review setiap repositori di kolom **Average cost** pada tabel **Repositories**, di bagian **Code review** pada [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

464. Kalikan rata-rata tersebut dengan jumlah pull request yang dibuka repositori dalam sebulan. Untuk **After every push**, kalikan lagi dengan jumlah push yang umum per pull request.

47 

48Rata-rata sebuah repositori berubah sesuai ukuran pull request-nya dan tingkat review yang Anda pilih.

49 

50<h2 id="limit-your-spend">

51 Batasi pengeluaran Anda

52</h2>

53 

54Untuk menetapkan batas pengeluaran bulanan untuk Code Review, buka [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage) dan konfigurasikan batas untuk layanan Claude Code Review. Batas ini berlaku untuk seluruh organisasi.

55 

56Code Review melewati review ketika salah satu dari hal berikut habis:

57 

58* **Batas pengeluaran Code Review**: batas bulanan yang Anda tetapkan untuk layanan Claude Code Review. Batas ini direset pada awal periode penagihan berikutnya, dan review dilanjutkan lebih cepat jika Anda menaikkannya.

59* **Batas pengeluaran organisasi**: batas pengeluaran bulanan keseluruhan organisasi Anda untuk kredit penggunaan. Naikkan di halaman yang sama.

60* **Saldo kredit penggunaan**: saldo kredit penggunaan organisasi Anda. Tambahkan kredit di halaman yang sama.

61 

62Code Review juga melewati review begitu sisa yang ada kurang dari perkiraan biaya satu review. Ketika review dilewati, pengembang melihat [komentar pada PR](/docs/id/code-review-troubleshooting#review-didn’t-run-and-the-pr-shows-a-budget-message) yang menyebutkan penyebabnya dan menautkan ke pengaturan penggunaan.

63 

64Untuk memantau pengeluaran, gunakan [dasbor analitik](#view-usage).

65 

66<h2 id="view-usage">

67 Lihat penggunaan

68</h2>

69 

70Buka [claude.ai/analytics/code-review](https://claude.ai/analytics/code-review) untuk melihat aktivitas Code Review di seluruh organisasi Anda.

71 

72| Bagian | Apa yang ditampilkan |

73| :- | :- |

74| PRs reviewed | Jumlah harian pull request yang di-review selama rentang waktu yang dipilih |

75| Code Review cost | Pengeluaran Code Review sejauh ini pada bulan ini |

76| Feedback | Jumlah komentar review yang diselesaikan otomatis karena pengembang telah menangani masalahnya |

77| Repository breakdown | Jumlah per repo untuk PR yang di-review, komentar yang diselesaikan, dan review yang dijalankan, dengan perkiraan biaya dan tampilan per PR |

78 

79Kartu Code Review cost hanya menampilkan jumlah ketika bulan berjalan dipilih. Angka biaya di analitik dapat berbeda dari faktur Anda. Biaya pada Repository breakdown diperkirakan berdasarkan harga daftar, sebelum diskon atau kredit apa pun, dan hanya mencakup review yang diposting Claude pada pull request. Untuk pengeluaran yang akurat sesuai faktur, lihat tagihan Anthropic Anda.

80 

81<h2 id="related-resources">

82 Sumber daya terkait

83</h2>

84 

85* [Siapkan Code Review](/docs/id/code-review-setup): tempat memilih tingkat review dan kapan review dijalankan di setiap repositori

86* [Baca dan minta review pada pull request](/docs/id/code-review-pull-requests): perintah komentar, pull request dari fork, dan pesan anggaran yang dilihat pengembang ketika review dilewati

87* [Code Review](/docs/id/code-review): apa yang diperiksa oleh review dan apa yang dipostingnya

88* [Kelola biaya secara efektif](/docs/id/costs): kontrol pengeluaran dan pelacakan penggunaan untuk bagian lain dari Claude Code

code-review-customize.md +149 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Sesuaikan Code Review

6 

7> Atur apa yang ditandai Code Review pada pull request Anda dengan REVIEW.md dan CLAUDE.md: kalibrasi ulang tingkat keparahan, lewati path, tambahkan pemeriksaan, dan lihat salinan mana yang berlaku.

8 

9Anda dapat mengubah apa yang ditandai [Code Review](/docs/id/code-review) pada repositori Anda dengan melakukan commit instruksi ke repositori tersebut. Beginilah cara Anda mengurangi jumlah nit, menghentikan komentar pada file yang dihasilkan, atau menambahkan aturan yang penting bagi tim Anda. Letakkan instruksi tersebut di salah satu dari dua file:

10 

11* **`CLAUDE.md`**: [instruksi proyek](/docs/id/memory) yang dibaca Claude Code untuk setiap tugas, termasuk review. Code Review membacanya sebagai konteks proyek dan menandai perubahan yang melanggarnya.

12* **`REVIEW.md`**: instruksi khusus untuk review. Gunakan file ini untuk menyatakan apa yang ingin ditandai oleh tim Anda, pada tingkat keparahan apa, dan apa yang harus dilewati.

13 

14Tambahkan `REVIEW.md` di root repositori Anda dan merge file tersebut. Kemudian [lindungi default branch Anda](#which-branch-review-md-is-read-from).

15 

16<Note>

17 Untuk mengubah seberapa menyeluruh review atau kapan review dijalankan, minta seorang Owner untuk mengubah [tingkat review](/docs/id/code-review-setup#set-the-default-review-level) atau [pengaturan **Review runs**](/docs/id/code-review-setup#set-when-reviews-run).

18</Note>

19 

20<h2 id="use-claude-md-for-project-wide-rules">

21 Gunakan CLAUDE.md untuk aturan di seluruh proyek

22</h2>

23 

24Code Review membaca file `CLAUDE.md` di repositori Anda sebagai konteks proyek. Perubahan yang melanggar salah satu aturannya menjadi temuan pada [tingkat keparahan](/docs/id/code-review-pull-requests#severity-levels) mana pun yang sesuai dengan masalahnya.

25 

26Sebuah review membaca `CLAUDE.md` di root repositori Anda dan file `CLAUDE.md` di direktori induk dari setiap file yang diubah. `CLAUDE.md` di sebuah subdirektori dibaca ketika pull request mengubah file di bawah path tersebut.

27 

28<h2 id="use-review-md-for-review-only-rules">

29 Gunakan REVIEW\.md untuk aturan khusus review

30</h2>

31 

32`REVIEW.md` adalah file di root repositori Anda yang menyesuaikan Code Review dengan repositori Anda. Anda juga dapat menambahkan `REVIEW.md` di sebuah subdirektori untuk menambahkan pemeriksaan bagi perubahan di bawah path tersebut, di samping file root.

33 

34Agent yang menemukan masalah dan agent yang memverifikasinya menerima isinya sebagai instruksi review repositori Anda, bersama dengan panduan review default Code Review. Langkah yang menulis review akhir merujuk ke file ini sebelum menetapkan tingkat keparahan dan menulis ringkasan.

35 

36Contoh tata letak ini memiliki file root dan satu file subdirektori:

37 

38```text theme={null}

39your-repo/

40├── REVIEW.md # Root file

41├── services/

42│ └── billing/

43│ └── REVIEW.md # Adds checks for changes under services/billing/

44└── src/

45```

46 

47Sebelum Anda mengandalkan file subdirektori, lindungi default branch Anda dan periksa [apa yang dibaca review untuk pengaturan branch Anda](#what-a-review-reads-for-each-branch-setup).

48 

49<Note>

50 Layanan Code Review dan [perintah `/code-review`](/docs/id/code-review-local) lokal adalah dua tool terpisah, dan keduanya membaca file yang berbeda. Layanan ini membaca `CLAUDE.md` dan `REVIEW.md`. Perintah `/code-review`, yang Anda jalankan di dalam sesi Claude Code di mesin Anda sendiri, membaca file `CLAUDE.md` Anda dan tidak membaca `REVIEW.md`. Letakkan panduan yang ingin Anda terapkan di kedua tempat dalam `CLAUDE.md`, dan gunakan `REVIEW.md` untuk aturan yang khusus untuk review pull request.

51</Note>

52 

53<h3 id="example-review-md">

54 Contoh REVIEW\.md

55</h3>

56 

57`REVIEW.md` ini mengkalibrasi ulang tingkat keparahan untuk layanan backend, membatasi nit, melewati file yang dihasilkan, dan menambahkan pemeriksaan khusus repo.

58 

59```markdown theme={null}

60# Review instructions

61 

62## What Important means here

63 

64Reserve Important for findings that would break behavior, leak data,

65or block a rollback: incorrect logic, unscoped database queries, PII

66in logs or error messages, and migrations that aren't backward

67compatible. Style, naming, and refactoring suggestions are Nit at

68most.

69 

70## Cap the nits

71 

72Report at most five Nits per review.

73 

74## Do not report

75 

76- Anything CI already enforces: lint, formatting, type errors

77- Generated files under `src/gen/` and any `*.lock` file

78- Test-only code that intentionally violates production rules

79 

80## Always check

81 

82- New API routes have an integration test

83- Log lines don't include email addresses, user IDs, or request bodies

84- Database queries are scoped to the caller's tenant

85```

86 

87<h3 id="choose-what-to-write-in-review-md">

88 Pilih apa yang ditulis di REVIEW\.md

89</h3>

90 

91`REVIEW.md` adalah Markdown bentuk bebas yang mengubah apa yang ditemukan dan dilaporkan oleh review. File ini tidak mengubah format review. Temukan masalah yang Anda alami, lalu tambahkan instruksi seperti yang ditunjukkan. [Contoh](#example-review-md) menggunakan empat yang pertama.

92 

93* **Hal yang salah ditandai sebagai Important**: definisikan ulang arti 🔴 Important untuk repositori Anda. Kalibrasi default menargetkan kode produksi, sedangkan repositori dokumentasi, repositori konfigurasi, atau prototipe mungkin menginginkan definisi yang jauh lebih sempit. Nyatakan kelas temuan mana yang Important dan mana yang paling tinggi hanya Nit. Anda juga dapat menaikkan tingkat, misalnya memperlakukan setiap pelanggaran `CLAUDE.md` sebagai Important.

94* **Terlalu banyak nit**: batasi berapa banyak komentar 🟡 Nit yang diposting oleh satu review. Batasan seperti "laporkan paling banyak lima nit" menjaga review tetap dapat ditindaklanjuti.

95* **Komentar pada file yang dihasilkan atau pada hal yang sudah diperiksa CI**: daftarkan path dan kategori temuan di mana Claude harus melewati temuan. Kandidat umum adalah kode yang dihasilkan, lockfile, dan dependensi vendored, beserta apa pun yang sudah ditegakkan CI Anda seperti linting atau pemeriksaan ejaan. Untuk path yang memerlukan sedikit review tetapi tidak pemeriksaan penuh, tetapkan ambang yang lebih tinggi sebagai gantinya: "di `scripts/`, hanya laporkan jika hampir pasti dan serius."

96* **Aturan tim tidak diperiksa**: tambahkan aturan yang ingin Anda tandai di setiap pull request, seperti "rute API baru harus memiliki tes integrasi."

97* **Temuan yang ternyata salah**: wajibkan bukti sebelum suatu kelas temuan diposting. Misalnya, "klaim perilaku memerlukan kutipan `file:line` di sumber, bukan inferensi dari penamaan" mengurangi positif palsu yang jika tidak akan membuat penulis harus bolak-balik.

98 

99Beberapa instruksi ini [memerlukan file root pada default branch yang dilindungi](#which-branch-review-md-is-read-from).

100 

101Batasi `REVIEW.md` pada instruksi yang mengubah perilaku review, dan biarkan konteks proyek umum di `CLAUDE.md`.

102 

103<h3 id="which-branch-review-md-is-read-from">

104 Dari branch mana REVIEW\.md dibaca

105</h3>

106 

107Code Review membaca `REVIEW.md` dari base branch pull request atau dari default branch, tidak pernah dari perubahan pull request itu sendiri. Untuk mengubah perilaku review, merge perubahan `REVIEW.md` terlebih dahulu.

108 

109Simpan `REVIEW.md` di default branch Anda dan lindungi branch tersebut. Ketika review membaca salinan pada default branch yang dilindungi, yaitu baris pertama tabel di bawah, review mematuhi instruksi berikut dari file root:

110 

111* Menurunkan tingkat keparahan temuan

112* Mengecualikan path, file, atau kelas masalah

113* Membatasi komentar nit

114 

115<h4 id="what-counts-as-branch-protection">

116 Apa yang dihitung sebagai perlindungan branch

117</h4>

118 

119Code Review menghitung pengaturan berikut sebagai perlindungan:

120 

121* **Default branch**: aturan perlindungan branch klasik atau ruleset

122* **Branch lainnya**: hanya ruleset

123 

124Sebuah ruleset dihitung ketika membatasi pembaruan atau mewajibkan pull request dengan setidaknya satu persetujuan. Jika mewajibkan pull request, ruleset tersebut juga harus membatalkan persetujuan itu pada push baru atau mewajibkan persetujuan datang setelah push terakhir.

125 

126<h4 id="what-a-review-reads-for-each-branch-setup">

127 Apa yang dibaca review untuk setiap pengaturan branch

128</h4>

129 

130Temukan situasi repositori Anda di kolom pertama tabel di bawah.

131 

132| Perlindungan branch | Salinan yang dibaca | File yang dibaca |

133| :- | :- | :- |

134| Default branch dilindungi, dan pull request menargetkannya atau menargetkan branch yang tidak dilindungi ruleset mana pun | Default branch | File root dan subdirektori |

135| Pull request menargetkan branch lain yang dilindungi oleh ruleset | Base branch tersebut | File root dan subdirektori |

136| Default branch tidak dilindungi, dan base branch tidak memiliki aturan perlindungan jenis apa pun | Default branch | File root |

137| Code Review tidak dapat mengonfirmasi pengaturan perlindungan. Ini termasuk default branch yang tidak dilindungi dengan base branch yang hanya memiliki aturan klasik | Tidak ada | Tidak ada |

138 

139Jika check run menyebutkan `REVIEW.md`, lihat [The check run mentions REVIEW.md](/docs/id/code-review-troubleshooting#the-check-run-mentions-review-md).

140 

141<h2 id="related-resources">

142 Sumber daya terkait

143</h2>

144 

145* [Code Review](/docs/id/code-review): apa itu layanan ini dan bagaimana review dijalankan

146* [Membaca dan meminta review pada pull request](/docs/id/code-review-pull-requests#severity-levels): arti setiap tingkat keparahan dan bagaimana temuan ditampilkan

147* [Menyiapkan Code Review](/docs/id/code-review-setup): tingkat review dan kapan review dijalankan, yang ditetapkan oleh Owner

148* [Review secara lokal dengan `/code-review`](/docs/id/code-review-local): perintah `/code-review`, argumennya, dan tingkat effort

149* [Memori](/docs/id/memory): cara kerja file `CLAUDE.md` di seluruh Claude Code

code-review-local.md +197 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Review secara lokal dengan /code-review

6 

7> Jalankan `/code-review` dalam sesi Claude Code untuk menemukan bug dalam perubahan di branch Anda, arahkan review ke pull request atau path, dan minta Claude menerapkan perbaikannya.

8 

9`/code-review` adalah perintah yang Anda ketik di prompt Claude Code, dalam sesi tempat Anda bekerja. Claude meninjau perubahan di branch Anda, mencari bug kebenaran (correctness), dan melaporkan temuannya di percakapan Anda. Bergantung pada model dan tingkat effort Anda, review juga mencakup perapian terkait penggunaan ulang, penyederhanaan, dan efisiensi.

10 

11Perintah ini berfungsi di paket apa pun. Review berjalan di sesi Anda sendiri, sehingga dihitung terhadap penggunaan paket Anda atau penagihan API dengan cara yang sama seperti bagian lain dari sesi tersebut.

12 

13<Note>

14 Agar setiap pull request dalam repositori ditinjau secara otomatis di GitHub, lihat [Code Review](/docs/id/code-review), layanan terkelola yang diaktifkan oleh Owner untuk organisasi Anda.

15</Note>

16 

17`/review` adalah alias dari `/code-review`. Sebelum v2.1.223, `/review` adalah perintah terpisah yang menjalankan review read-only satu kali terhadap pull request GitHub.

18 

19<Steps>

20 <Step title="Jalankan /code-review">

21 Jalankan perintah:

22 

23 ```text theme={null}

24 /code-review

25 ```

26 

27 Tanpa target, review mencakup perubahan di branch Anda saat ini. Untuk mengarahkan review ke pull request, branch lain, path, atau rentang commit, lihat [Pilih apa yang akan ditinjau](#choose-what-to-review).

28 

29 Anda juga dapat menambahkan flag:

30 

31 * `--fix`: juga meminta Claude menerapkan temuan ke working tree Anda setelah review. Suntingannya melewati [mode izin](/docs/id/permission-modes) Anda.

32 * `--comment`: memposting temuan pada pull request GitHub sebagai komentar inline, atau pada [merge request GitLab](#post-findings-to-a-gitlab-merge-request) sebagai satu catatan

33 </Step>

34 

35 <Step title="Lanjutkan bekerja">

36 Review berjalan sebagai [subagent](/docs/id/sub-agents) latar belakang dengan context window-nya sendiri, sehingga tidak memenuhi percakapan Anda. Temuan muncul di percakapan Anda saat review selesai.

37 </Step>

38 

39 <Step title="Tindak lanjuti temuan">

40 Minta Claude memperbaiki apa yang ditemukan review. Dengan `--fix` atau `--comment`, Claude menerapkan atau memposting temuan sebagai bagian dari review, dan Anda mungkin diminta untuk menyetujui suntingannya.

41 </Step>

42</Steps>

43 

44<h2 id="choose-what-to-review">

45 Pilih apa yang akan ditinjau

46</h2>

47 

48Untuk meninjau sesuatu selain branch Anda saat ini, ketikkan target setelah tingkat effort dan flag apa pun. Claude menerima teks tersebut sebagai target review. Target dapat berupa nomor pull request, nama branch, path file, atau rentang revisi Git. Temukan apa yang ingin Anda tinjau di kolom pertama dan ketikkan apa yang ditunjukkan kolom kedua:

49 

50| Untuk mengarahkan review ke | Ketik |

51| :- | :- |

52| Branch Anda saat ini dan perubahan yang belum di-commit | `/code-review` |

53| 15 commit terakhir Anda | `/code-review HEAD~15..HEAD` |

54| Satu branch terhadap branch lain | `/code-review main...my-feature` |

55| Satu commit, dengan `abc1234` sebagai hash commit tersebut | `/code-review abc1234^..abc1234` |

56| Pull request berdasarkan nomor | `/code-review 1234` |

57| Path file atau direktori | `/code-review src/auth` |

58 

59Tanpa target, `/code-review` meninjau commit di branch Anda yang belum ada di branch upstream-nya (commit yang lebih baru dari upstream), ditambah perubahan Anda yang belum di-commit. Jika branch tidak memiliki upstream, Claude membandingkan terhadap `main`, atau terhadap commit sebelumnya.

60 

61Dengan `ultra`, Claude Code membaca target secara berbeda, sebagaimana dijelaskan dalam [Teks setelah tingkat effort dan flag](#text-after-the-effort-level-and-flags).

62 

63<h2 id="what-the-review-reads-and-edits">

64 Apa yang dibaca dan disunting review

65</h2>

66 

67Periksa hal-hal berikut sebelum Anda menjalankan review, terutama dengan `--fix`:

68 

69* **Suntingan**: tanpa `--fix`, instruksi review hanya meminta laporan dari Claude. Dengan `--fix`, instruksi tersebut juga memintanya menerapkan temuan ke working tree Anda. Dalam kedua kasus, setiap suntingan melewati mode izin Anda.

70* **Rewind**: review latar belakang menerapkan suntingan `--fix`-nya di luar [checkpoint](/docs/id/checkpointing#subagent-edits-not-restored) sesi Anda. Setelah itu, `/rewind` hanya memulihkan file yang sudah disunting Claude di percakapan Anda. Suntingan review pada file lain tetap ada, jadi gunakan git untuk mengembalikannya. Ketika review [berjalan di foreground](#run-in-the-foreground), review menyunting working tree Anda selama giliran Anda sendiri, sehingga `/rewind` memulihkan suntingannya seperti biasa.

71* **Instruksi**: review mengikuti `CLAUDE.md` Anda, termasuk dalam eksekusi `-p` non-interaktif. Review tidak membaca `REVIEW.md`. File tersebut mengonfigurasi [layanan Code Review](/docs/id/code-review-customize#use-review-md-for-review-only-rules) terkelola pada pull request GitHub.

72 

73<h2 id="how-findings-are-reported">

74 Cara temuan dilaporkan

75</h2>

76 

77Claude melaporkan temuan sebagai teks dalam balasan pada kedua eksekusi berikut:

78 

79* Dalam sesi terminal, tempat `/code-review` menjalankan review sebagai [subagent hasil fork](/docs/id/skills#run-skills-in-a-subagent)

80* Dalam eksekusi `-p` dengan output teks atau JSON

81 

82Dalam aplikasi host yang meminta daftar temuan, seperti [aplikasi desktop](/docs/id/desktop#review-your-code), Claude melaporkan temuan review melalui [tool `ReportFindings`](/docs/id/tools-reference). Laporan muncul sebagai daftar temuan, dan setiap entri menampilkan lokasi file, ringkasan satu kalimat, dan tag kategori seperti `correctness` jika temuan memilikinya. Permintaan host berlaku di setiap tingkat effort dan memerlukan Claude Code v2.1.218 atau yang lebih baru.

83 

84Ketika Claude memperbaiki temuan yang dilaporkan di kemudian hari dalam sesi, Claude melaporkannya lagi. Claude Code kemudian menandai setiap temuan dalam daftar temuan yang diperbarui sebagai diperbaiki, dilewati, atau tidak perlu perubahan.

85 

86<h2 id="tune-effort-and-arguments">

87 Sesuaikan effort dan argumen

88</h2>

89 

90Selain `--fix` dan `--comment`, perintah ini menerima flag berikut:

91 

92* `--post`: pada review cloud `ultra` terhadap pull request `github.com`, memilih terlebih dahulu opsi memposting temuan yang sudah selesai ke PR dalam dialog peluncuran. Lihat [Posting temuan ke pull request](/docs/id/ultrareview#post-findings-to-the-pull-request). Memerlukan Claude Code v2.1.227 atau yang lebih baru.

93* `--max-findings <n>`, `--max-findings all`, atau `--max-findings default`: melaporkan hingga `n` temuan, atau setiap temuan dengan `all`, sebagai pengganti batas biasa review. Ketika review melapor melalui tool temuan, batasnya adalah 32. Review berikutnya menggunakan ulang nilai yang Anda ketik hingga Anda memberikan `--max-findings default`, tetapi nilai yang diberikan dalam eksekusi `-p` non-interaktif tidak diingat. Memerlukan Claude Code v2.1.288 atau yang lebih baru.

94 

95Berikan [tingkat effort](/docs/id/model-config#adjust-effort-level) untuk menyeimbangkan cakupan dengan tingkat keyakinan. Pada `low`, review melaporkan temuan yang paling diyakininya, sehingga Anda melihat lebih sedikit false positive. Dari `medium` hingga `max`, review memperluas cakupannya.

96 

97Ketika Anda tidak mengetik tingkat, review menggunakan ulang tingkat terakhir dari `low` hingga `max` yang Anda ketik, bahkan di sesi sebelumnya. Claude Code menampilkan pemberitahuan seperti `Reusing high effort, the level you typed last time`. Aturan berikut menentukan tingkat mana yang digunakan suatu eksekusi:

98 

99* **Mengetik tingkat**: tingkat yang Anda ketik, seperti `/code-review high`, mengubah apa yang digunakan ulang oleh eksekusi berikutnya

100* **Eksekusi non-interaktif**: tingkat yang Anda berikan dalam eksekusi `-p` non-interaktif tidak memperbarui tingkat yang diingat

101* **`ultra`**: review tidak menggunakan maupun memperbarui tingkat yang diingat

102* **Tidak pernah mengetik tingkat**: review menggunakan effort sesi saat ini

103 

104Sebelum v2.1.223, `/code-review` tanpa tingkat selalu menggunakan effort sesi saat ini.

105 

106<h3 id="post-findings-to-a-gitlab-merge-request">

107 Posting temuan ke merge request GitLab

108</h3>

109 

110Ketika Anda memberikan `--comment` untuk merge request GitLab, Claude Code memposting temuan melalui CLI `glab` milik GitLab. Memerlukan Claude Code v2.1.257 atau yang lebih baru. Ketika `glab` tidak terinstal, Claude mencetak temuan di terminal sebagai gantinya.

111 

112Berikan merge request sebagai URL-nya atau referensi `!123`. Claude Code memperlakukan angka atau nama branch saja sebagai merge request hanya jika origin checkout berada di `gitlab.com`. Pada instance GitLab yang dikelola sendiri, berikan bentuk URL atau `!123`.

113 

114<h3 id="text-after-the-effort-level-and-flags">

115 Teks setelah tingkat effort dan flag

116</h3>

117 

118Setelah tingkat effort dan flag, Claude Code membaca sisa baris sebagai target review. Argumen `ultra` mengubah cara pembacaan tersebut:

119 

120* **Dengan `ultra`**: Claude Code membaca satu kata sebagai base branch atau nomor PR. Teks yang lebih panjang yang tidak menyebut branch atau PR menjadi [catatan yang dilampirkan ke review](/docs/id/ultrareview#pass-a-request-in-plain-words). `/code-review ultra check my auth changes` meninjau branch Anda saat ini, dan Claude mengaitkan temuan dengan catatan Anda.

121* **Tanpa `ultra`**: semua yang tersisa adalah target review, bahkan ketika diawali dengan nama perintah lain. `/code-review /fix-issue 123` meninjau dengan `/fix-issue 123` sebagai teks target alih-alih memuat `/fix-issue` sebagai [skill bertumpuk](/docs/id/skills#pass-arguments-to-skills) kedua. Sebelum v2.1.218, perintah yang ditumpuk setelah `/code-review` diekspansi sebagai skill tersendiri.

122 

123<h2 id="run-in-the-foreground">

124 Jalankan di foreground

125</h2>

126 

127Untuk membuat review berjalan di foreground, lakukan salah satu dari berikut ini:

128 

129* Jalankan dalam mode non-interaktif, dengan flag `-p` atau Agent SDK. Claude Code menunggu review dan menyertakan temuan dalam respons, kecuali untuk `ultra`, yang [tidak menunggu review cloud](/docs/id/ultrareview#run-ultrareview-non-interactively).

130* Atur [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/id/env-vars) ke `1`, yang juga mematikan setiap fitur tugas latar belakang lainnya

131* Jalankan `/code-review` lagi saat review sebelumnya masih berlangsung

132 

133Sebelum v2.1.218, review berjalan di dalam percakapan Anda.

134 

135<h2 id="let-claude-start-the-review">

136 Biarkan Claude memulai review

137</h2>

138 

139Claude dapat memulai `/code-review` sendiri, tanpa Anda mengetik perintahnya:

140 

141* **Saat Anda meminta dengan bahasa biasa**: minta Claude meninjau perubahan Anda dan Claude dapat menjalankan skill tersebut

142* **Dari tugas terjadwal**: [tugas terjadwal](/docs/id/scheduled-tasks) dengan `/code-review` sebagai prompt-nya menjalankan review

143 

144Tugas terjadwal tidak pernah meluncurkan [review cloud](#escalate-to-ultrareview), jadi jadwalkan `/code-review` tanpa argumen `ultra`.

145 

146Untuk mencegah Claude maupun tugas terjadwal memulai review sambil tetap membiarkan `/code-review` tersedia untuk Anda ketik, tambahkan entri [`skillOverrides`](/docs/id/skills#override-skill-visibility-from-settings) ke [file pengaturan](/docs/id/settings#where-settings-live) seperti `~/.claude/settings.json`:

147 

148```json theme={null}

149{

150 "skillOverrides": {

151 "code-review": "user-invocable-only"

152 }

153}

154```

155 

156Sebelum v2.1.246, Claude memulai `/code-review` sendiri hanya jika feature flag yang diambil dari Anthropic mengaktifkannya. Dalam [sesi yang tidak mengambil feature flag](/docs/id/env-vars#features-that-need-feature-flag-fetching), `/code-review` hanya berjalan saat Anda mengetiknya, dan `/code-review` terjadwal sampai ke Claude sebagai teks biasa.

157 

158<h2 id="escalate-to-ultrareview">

159 Tingkatkan ke ultrareview

160</h2>

161 

162`/code-review ultra --fix` menjalankan [ultrareview](/docs/id/ultrareview) yang lebih mendalam di cloud, lalu meminta Claude menerapkan temuannya ke working tree Anda saat temuan tersebut kembali ke sesi Anda.

163 

164Ultrareview menggunakan cakupannya sendiri:

165 

166* **Apa yang dibandingkan**: branch Anda saat ini terhadap branch default repositori, ditambah perubahan yang belum di-commit dan yang di-stage di working tree

167* **File sensitif**: untuk perubahan yang belum di-commit pada file yang bernama seperti kredensial atau kunci, seperti file `.env` dan `*.tfvars`, Claude Code mengikuti aturan untuk [mengunggah repositori lokal ke sesi cloud](/docs/id/claude-code-on-the-web#send-local-repositories-without-github)

168* **Base yang berbeda**: berikan nama branch, seperti `/code-review ultra develop`, untuk membandingkan terhadap base yang berbeda

169 

170Ketika targetnya adalah pull request `github.com`, Anda dapat meminta Claude [memposting temuan yang sudah selesai ke PR](/docs/id/ultrareview#post-findings-to-the-pull-request) sebagai komentar dari akun GitHub Anda. Memerlukan Claude Code v2.1.227 atau yang lebih baru.

171 

172<Note>

173 Ultrareview memerlukan autentikasi dengan akun claude.ai. Ultrareview tidak tersedia di Amazon Bedrock, Agent Platform dari Google Cloud, atau Microsoft Foundry, maupun untuk organisasi yang mengaktifkan Zero Data Retention atau menerapkan [konfigurasi HIPAA](/docs/id/hipaa-setup). Dalam kasus ini, `/code-review ultra` menjalankan review lokal di sesi Anda sebagai gantinya. Organisasi yang menggunakan [kunci enkripsi yang dikelola pelanggan](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) tidak dapat menjalankan ultrareview. Untuk meninjau perubahan Anda secara lokal, jalankan `/code-review`.

174</Note>

175 

176Untuk menjalankan review cloud dari skrip atau job CI, gunakan [subperintah `claude ultrareview`](/docs/id/ultrareview#run-ultrareview-non-interactively), yang menunggu temuan dan mencetaknya ke stdout.

177 

178<h2 id="change-or-build-on-the-review">

179 Ubah atau kembangkan review

180</h2>

181 

182`/code-review` adalah [skill bawaan](/docs/id/skills#bundled-skills): instruksinya dibangun ke dalam Claude Code, sehingga tidak ada file `SKILL.md` di disk untuk dibuka atau disunting. Untuk memberikan aturan proyek yang harus diikuti setiap review, tambahkan ke `CLAUDE.md` Anda. Untuk melangkah lebih jauh, mulailah dari salah satu halaman berikut:

183 

184* **Ganti perintah**: skill proyek atau pribadi bernama `code-review` berjalan menggantikan skill bawaan, dan alias `/review` tetap menjalankan review bawaan. Lihat [Menyelesaikan skill yang memiliki nama sama](/docs/id/skills#resolve-skills-that-share-a-name).

185* **Bangun reviewer Anda sendiri**: tulis [subagent](/docs/id/sub-agents) reviewer atau [skill](/docs/id/skills) review

186* **Gunakan perintah terkait**: [`/simplify`](/docs/id/commands) meninjau hanya untuk perapian dan menerapkan perbaikannya, dan [`/verify`](/docs/id/commands) menjalankan aplikasi Anda untuk memastikan perubahan berfungsi

187 

188Perintah ini bernama `/simplify` sebelum v2.1.147, ketika perintah tersebut menerapkan perbaikan secara default. Jika Anda membuat skrip `/simplify` untuk menemukan bug, beralihlah ke `/code-review --fix`.

189 

190<h2 id="related-resources">

191 Sumber daya terkait

192</h2>

193 

194* [Code Review](/docs/id/code-review): layanan terkelola yang meninjau setiap pull request di GitHub untuk organisasi Anda

195* [Ultrareview](/docs/id/ultrareview): penyiapan, batasan, dan biaya review cloud yang lebih mendalam

196* [Perintah](/docs/id/commands): referensi satu baris untuk `/code-review`, `/review`, `/simplify`, dan `/verify`

197* [Skills](/docs/id/skills): cara kerja skill bawaan dan cara menulis skill Anda sendiri

code-review-pull-requests.md +169 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Membaca dan meminta review pada pull request

6 

7> Baca temuan Code Review pada pull request GitHub Anda, tanggapi atau abaikan temuan tersebut, dan minta review dengan `@claude review`.

8 

9Code Review adalah layanan terkelola yang diaktifkan oleh Owner di organisasi Claude Anda untuk sekumpulan repositori GitHub. Setelah diaktifkan, Claude meninjau pull request di repositori tersebut dan memposting temuannya sebagai komentar inline, ringkasan di badan review, dan check run bernama **Claude Code Review**. Review tidak pernah menyetujui atau memblokir pull request Anda, dan check run tidak pernah berakhir dengan status gagal.

10 

11Owner mengontrol [kapan review dijalankan](/docs/id/code-review-setup#set-when-reviews-run) dan [seberapa menyeluruh review tersebut](/docs/id/code-review-setup#set-the-default-review-level) untuk setiap repositori.

12 

13<Note>

14 Jika paket Anda tidak menyertakan Code Review, Anda tetap dapat meminta Claude meninjau branch Anda dari sesi Claude Code: lihat [Review secara lokal dengan `/code-review`](/docs/id/code-review-local).

15</Note>

16 

17<h2 id="severity-levels">

18 Tingkat keparahan

19</h2>

20 

21Claude memposting setiap temuan sebagai komentar inline pada baris yang bersangkutan dan menandainya dengan salah satu dari tiga tingkat keparahan:

22 

23| Penanda | Tingkat keparahan | Arti |

24| :- | :- | :- |

25| 🔴 | Important | Bug yang harus diperbaiki sebelum merge |

26| 🟡 | Nit | Masalah kecil, layak diperbaiki tetapi tidak memblokir |

27| 🟣 | Pre-existing | Bug yang ada di codebase tetapi tidak diperkenalkan oleh PR ini |

28 

29Ketika review mencatat alasannya, temuan tersebut memiliki bagian **Why this was flagged** yang diciutkan. Perluas bagian tersebut untuk membaca mengapa Claude menandai masalah tersebut dan bagaimana Claude memverifikasi masalahnya.

30 

31Untuk mengubah apa yang ditandai Claude di repositori Anda atau cara Claude menentukan peringkat tingkat keparahan, lihat [Menyesuaikan Code Review](/docs/id/code-review-customize).

32 

33<h2 id="respond-to-findings">

34 Menanggapi temuan

35</h2>

36 

37Anda dapat melakukan merge tanpa menanggapi temuan, kecuali aturan repositori Anda sendiri mengharuskannya. Jika proteksi branch-nya [mewajibkan penyelesaian percakapan](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#require-conversation-resolution-before-merging), selesaikan thread setiap temuan sebelum Anda melakukan merge.

38 

39Untuk menghapus temuan, selesaikan thread-nya atau push perbaikan.

40 

41* **Abaikan tanpa perubahan kode**: selesaikan thread tersebut sendiri di GitHub. Membalas saja tidak mengabaikan temuan.

42* **Perbaiki masalahnya**: ubah kode dan push. Review berikutnya pada pull request tersebut akan menyelesaikan thread sebelumnya jika menilai masalahnya sudah diperbaiki, baik review itu berjalan otomatis saat Anda push maupun saat Anda memintanya.

43* **Jelaskan atau nyatakan ketidaksetujuan**: balas komentar tersebut. Claude tidak langsung merespons, dan balasan tidak memulai review. Review berikutnya pada pull request tersebut membaca balasan pada temuan sebelumnya, dan dapat menyelesaikan thread atau memposting satu balasan tindak lanjut. Jika jenis temuan yang sama terus muncul kembali, minta maintainer untuk menambahkan aturan ke [`REVIEW.md`](/docs/id/code-review-customize#choose-what-to-write-in-review-md).

44 

45Untuk mendapatkan review berikutnya tanpa melakukan push, komentari `@claude review` sebagai [komentar pull request tingkat atas](#comment-commands).

46 

47<h2 id="check-run-output">

48 Output check run

49</h2>

50 

51Tautan **Details** pada check run **Claude Code Review** membuka temuan dalam satu tabel yang diurutkan berdasarkan keparahan, termasuk temuan yang komentar inline-nya tidak diterima GitHub:

52 

53| Keparahan | File:Baris | Masalah |

54| - | - | - |

55| 🔴 Important | `src/auth/session.ts:142` | Refresh token berbenturan (race) dengan logout, sehingga sesi usang tetap aktif |

56| 🟡 Nit | `src/auth/session.ts:88` | `parseExpiry` secara diam-diam mengembalikan 0 pada input yang salah format |

57 

58Temuan yang memiliki baris tetapi tidak diposting sebagai komentar inline muncul sebagai anotasi di tab **Files changed**, pada baris terkait. Temuan Important ditampilkan dengan warna merah, nit dengan warna kuning, dan bug pre-existing dengan warna abu-abu.

59 

60Check run berakhir dengan status neutral, atau skipped ketika review otomatis tidak berjalan karena push tidak mengubah file apa pun. Check run tidak pernah berakhir dengan status gagal, sehingga review yang selesai tidak menggagalkan check yang diwajibkan. Jika Anda tidak melihat temuan, atau review tidak berjalan, lihat [Pemecahan masalah Code Review](/docs/id/code-review-troubleshooting).

61 

62<h3 id="read-the-result-from-a-script">

63 Membaca hasil dari skrip

64</h3>

65 

66Untuk membatasi merge atau memposting ringkasan dari CI Anda sendiri, parse baris terakhir teks Details dengan `gh` dan jq. Baris tersebut adalah komentar yang dapat dibaca mesin.

67 

68<Steps>

69 <Step title="Temukan ID check run">

70 Dari shell Anda, tampilkan daftar check run milik commit tersebut dan ambil `id` dari run `Claude Code Review`. Ganti `OWNER` dan `REPO` dengan pemilik dan nama repositori Anda, serta `<commit-sha>` dengan head commit pull request:

71 

72 ```bash theme={null}

73 gh api repos/OWNER/REPO/commits/<commit-sha>/check-runs --jq '.check_runs[] | {id, name}'

74 ```

75 </Step>

76 

77 <Step title="Baca jumlah per tingkat keparahan">

78 Baca jumlah dari check run tersebut, ganti `CHECK_RUN_ID` dengan ID-nya:

79 

80 ```bash theme={null}

81 gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \

82 --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

83 ```

84 

85 Perintah ini mencetak objek JSON dengan jumlah per tingkat keparahan dan kuncinya dalam urutan abjad, misalnya `{"nit": 1, "normal": 2, "pre_existing": 0}`. Jumlah tersebut mencakup temuan dari review sebelumnya pada pull request yang thread-nya masih terbuka.

86 </Step>

87 

88 <Step title="Bertindak berdasarkan hasil">

89 Buat skrip Anda menangani kasus-kasus berikut:

90 

91 * **`normal` lebih dari nol**: gagalkan job jika Anda ingin membatasi merge. Kunci `normal` menyimpan jumlah temuan Important, sehingga Claude menemukan setidaknya satu bug yang layak diperbaiki sebelum merge.

92 * **Baris tersebut tidak ada**: perlakukan sebagai tidak ada putusan, bukan sebagai nol temuan. Check run untuk review yang gagal, kehabisan waktu, dibatalkan, atau digantikan oleh review yang lebih baru tidak memiliki baris tersebut, dan beberapa review yang selesai juga tidak memilikinya.

93 </Step>

94</Steps>

95 

96<h2 id="request-a-review">

97 Meminta review

98</h2>

99 

100Jika pull request Anda berupa draft atau berasal dari fork, review otomatis akan melewatinya, jadi [minta review dengan perintah komentar](#review-drafts-and-pull-requests-from-forks). Untuk mendapatkan review pada pull request Anda, lakukan salah satu hal berikut:

101 

102* **Buka atau tandai siap**: di repositori yang diatur ke **Once after PR creation** atau **After every push**, review dimulai saat Anda membuka atau membuka kembali pull request, atau menandai draft sebagai siap untuk review.

103* **Komentari sebuah perintah**: posting [`@claude review`](#comment-commands) pada pull request.

104* **Push commit**: push memulai review di repositori yang diatur ke **After every push**, atau pada pull request yang Anda langgankan dengan `@claude review always`.

105* **Klik Re-run**: setelah review gagal atau kehabisan waktu pada pull request yang tidak berasal dari fork, [jalankan lagi](/docs/id/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) dari check run.

106* **Tunggu retry otomatis**: review yang sesinya terputus akan dicoba ulang sekali secara otomatis. [Ringkasan check run](/docs/id/code-review-troubleshooting#retrigger-a-failed-or-timed-out-review) memberi tahu kapan hal itu terjadi.

107 

108<h3 id="comment-commands">

109 Perintah komentar

110</h3>

111 

112Posting salah satu perintah berikut sebagai komentar pada pull request:

113 

114| Perintah | Fungsinya | Kapan menggunakannya |

115| :- | :- | :- |

116| `@claude review` | Memulai satu review tanpa melanggankan PR ke push berikutnya | Anda menginginkan satu review sekarang, seperti pada pull request di repositori yang diatur ke Manual, atau review lain segera di mode lainnya |

117| `@claude review always` | Memulai review dan melanggankan PR ke review yang dipicu push ke depannya | Anda ingin setiap push berikutnya memulai review baru, seperti pada PR berprioritas tinggi di repositori yang diatur ke Manual |

118| `@claude review once` | Sama dengan `@claude review`: memulai satu review tanpa berlangganan | Kasus yang sama dengan `@claude review` |

119 

120Agar salah satu perintah ini memulai review, semua kondisi berikut harus terpenuhi:

121 

122* Posting sebagai komentar pull request tingkat atas yang baru, bukan komentar inline pada baris diff dan bukan badan review. Mengedit komentar sebelumnya tidak dihitung.

123* Letakkan perintah di awal komentar, dengan `always` pada baris yang sama dengan bagian perintah lainnya. Huruf besar/kecil tidak berpengaruh.

124* Anda memerlukan izin write, maintain, atau admin pada repositori. Claude memeriksa hal ini dengan GitHub untuk setiap orang yang berkomentar, dan komentar dari bot tidak memulai review.

125* Pull request harus dalam keadaan terbuka.

126 

127Ketika perintah diterima, check run **Claude Code Review** muncul pada pull request dengan judul **Code review queued...**. Judul berubah menjadi **Code review in progress...** saat review dimulai. Claude mungkin juga bereaksi terhadap komentar Anda dengan 👀, tetapi reaksi itu dapat muncul meskipun tidak ada review yang dimulai, jadi periksa check run-nya.

128 

129Jika review sudah berjalan pada commit terbaru pull request, permintaan baru tidak akan memulai review kedua.

130 

131<Note>

132 Sebelum pembaruan Juli 2026, `@claude review` melanggankan PR ke review yang dipicu push. Jika Anda mengandalkan perilaku tersebut, komentari `@claude review always` sebagai gantinya.

133</Note>

134 

135<h3 id="what-a-later-review-covers">

136 Cakupan review berikutnya

137</h3>

138 

139Review berikutnya yang dimulai dengan sendirinya, seperti setelah push, berfokus pada apa yang berubah sejak review terakhir dan memposting lebih sedikit nit dan temuan pre-existing. Ringkasannya menghitung apa yang tidak disertakan, dalam baris yang diakhiri dengan "found and not posted" atau "outside the scope of this re-review and not posted."

140 

141Untuk mendapatkan review yang tidak menghilangkan satu pun dari temuan tersebut, komentari [`@claude review`](#comment-commands). Review ini mencakup seluruh pull request lagi.

142 

143<h3 id="review-drafts-and-pull-requests-from-forks">

144 Review draft dan pull request dari fork

145</h3>

146 

147Review otomatis melewati keduanya, jadi minta review dengan perintah komentar:

148 

149* **Draft pull request**: perintah komentar berjalan pada draft, sehingga Anda dapat meminta review sebelum menandai pull request sebagai siap. Push ke draft tidak memulai review, bahkan setelah `@claude review always`. Langganan mulai berlaku setelah Anda menandai pull request sebagai siap.

150* **Pull request dari fork**: Claude tidak meninjau pull request dari fork secara otomatis, terlepas dari pengaturan **Review runs** repositori. Untuk memulainya, komentari `@claude review` pada pull request. [Kondisi untuk perintah komentar](#comment-commands) tetap berlaku, dan akses write yang Anda perlukan adalah ke repositori dasar, bukan fork.

151 

152Pada pull request dari fork, `@claude review always` juga berfungsi, tetapi tidak melanggankan pull request ke review pada push berikutnya. Mengklik **Re-run** pada check run tidak memulai review di sana.

153 

154<h3 id="use-code-review-alongside-the-claude-code-github-action">

155 Menggunakan Code Review bersama Claude Code GitHub Action

156</h3>

157 

158Jika repositori juga menjalankan [Claude Code GitHub Action](/docs/id/github-actions) dalam mode interaktif dengan frasa pemicu default `@claude`, komentar `@claude review` juga akan memulai Action tersebut. Untuk memisahkan keduanya, atur input `trigger_phrase` milik Action ke frasa yang berbeda.

159 

160<h2 id="related-resources">

161 Sumber daya terkait

162</h2>

163 

164* [Pemecahan masalah Code Review](/docs/id/code-review-troubleshooting): review yang tidak dimulai, gagal, atau dilewati karena anggaran

165* [Code Review](/docs/id/code-review): apa layanan ini dan bagaimana review berjalan

166* [Menyiapkan Code Review](/docs/id/code-review-setup): untuk Owner, aktifkan Code Review dan pilih kapan review dijalankan dan pada tingkat apa

167* [Menyesuaikan Code Review](/docs/id/code-review-customize): ubah apa yang ditandai Claude dengan `REVIEW.md` dan `CLAUDE.md`

168* [Biaya dan penggunaan Code Review](/docs/id/code-review-costs): bagaimana review ditagih dan di mana batas pengeluaran diatur

169* [Review secara lokal dengan `/code-review`](/docs/id/code-review-local): jalankan review branch Anda dari sesi Claude Code

code-review-setup.md +189 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Menyiapkan Code Review

6 

7> Aktifkan Code Review untuk organisasi Claude Anda: hubungkan GitHub, instal Claude GitHub App, pilih repositori, dan atur kapan review dijalankan

8 

9Sebagai Owner organisasi Claude Anda, Anda mengaktifkan Code Review di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) di claude.ai. Review berjalan di infrastruktur Anthropic, sehingga Anda tidak perlu menambahkan file workflow ke repositori Anda.

10 

11Setelah penyiapan, Anda memilih seberapa menyeluruh review dilakukan dan kapan review dijalankan di setiap repositori. Pengeluaran Anda lebih besar pada tingkat review yang lebih tinggi dan ketika review dijalankan lebih sering. Lihat [Biaya Code Review](/docs/id/code-review-costs#pricing).

12 

13<h2 id="what-you-need-to-turn-on-code-review">

14 Yang Anda perlukan untuk mengaktifkan Code Review

15</h2>

16 

17Pertama, periksa apakah organisasi Anda [memenuhi syarat untuk Code Review](/docs/id/code-review#availability). Kemudian pastikan Anda memiliki akses berikut, atau ada seseorang yang memilikinya:

18 

19| Akses | Diperlukan untuk |

20| :- | :- |

21| [Peran Owner](/docs/id/server-managed-settings#access-control) di organisasi Claude Anda | Setiap langkah di halaman admin |

22| Owner organisasi GitHub | Menginstal Claude GitHub App dan [menautkannya ke organisasi Claude Anda](/docs/id/admin-setup#connected-github-accounts). Jika Anda bukan owner, minta seorang owner untuk menginstal dan menautkan aplikasi tersebut sebelum Anda memulai |

23| Akses tulis ke setiap repositori yang Anda tambahkan, dari akun GitHub yang Anda hubungkan ke Claude | Menambahkan repositori |

24 

25<h2 id="turn-on-code-review">

26 Mengaktifkan Code Review

27</h2>

28 

29<Steps>

30 <Step title="Klik sakelar Allow code review">

31 Buka bagian **Code review** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review) dan klik sakelar **Allow code review**.

32 

33 Jika Code Review langsung aktif tanpa dialog, organisasi Anda sudah memiliki Claude GitHub App yang tertaut atau repositori yang sudah ditambahkan. Lanjutkan ke [Menambahkan lebih banyak repositori](#add-more-repositories), lalu kembali untuk langkah terakhir.

34 </Step>

35 

36 <Step title="Hubungkan akun GitHub Anda">

37 Jika dialog **Connect GitHub** terbuka, klik **Connect**. Jika organisasi Anda menggunakan GitHub Enterprise Server, pilih instans Anda di dialog terlebih dahulu. GitHub akan meminta Anda mengotorisasi Claude, lalu mengembalikan Anda ke halaman admin dengan dialog **Add a repository** terbuka.

38 

39 Jika **Add a repository** langsung terbuka, akun Anda sudah terhubung, jadi lanjutkan ke langkah berikutnya.

40 </Step>

41 

42 <Step title="Instal Claude GitHub App">

43 Jika repositori yang Anda inginkan tercantum di dialog **Add a repository**, atau Anda menemukannya dengan mencari di sana, lanjutkan ke langkah berikutnya. Dialog hanya mencantumkan repositori jika Claude GitHub App dapat mengaksesnya, jadi jika repositori tersebut tidak ada di sana, instal aplikasinya:

44 

45 * Klik **Install GitHub App**. Jika tidak ada repositori yang tercantum, ini berupa tombol di dialog. Jika ada, tombol ini berada di bagian bawah menu filter organisasi GitHub pada dialog. Halaman instalasi GitHub terbuka di tab baru.

46 * Pilih organisasi GitHub yang memiliki repositori tersebut.

47 * Pilih repositori mana yang dapat diakses oleh aplikasi.

48 * Setujui izin yang diminta. Kumpulan izin ini lebih luas daripada yang digunakan oleh review dan digunakan bersama oleh fitur Claude lainnya, seperti [GitHub Actions](/docs/id/github-actions). Lihat [apa yang dapat diakses oleh review](/docs/id/code-review#what-a-review-can-access) dan [daftar izin lengkap](/docs/id/github-actions#github-app-permissions).

49 * Ketika instalasi selesai, tab akan kembali ke Claude. Jika tab tersebut menampilkan tombol **Finish connecting GitHub**, klik tombol tersebut untuk menautkan instalasi ke organisasi Claude Anda.

50 * Kembali ke tab halaman admin, tempat daftar di dialog akan dimuat ulang.

51 </Step>

52 

53 <Step title="Pilih repositori">

54 Pilih repositori yang ingin Anda review, lalu klik **Continue**. Menambahkan repositori memerlukan akses tulis ke repositori tersebut dari akun GitHub yang Anda hubungkan. Anda dapat [menambahkan lebih banyak repositori](#add-more-repositories) nanti.

55 </Step>

56 

57 <Step title="Klik Finish">

58 Dialog **Code review is set up** akan muncul. Klik **Finish** untuk mengaktifkan Code Review. Jika Anda menutup dialog dengan cara lain, repositori Anda tetap ditambahkan tetapi **Allow code review** tetap nonaktif, dan Anda mengaktifkannya dari sakelar.

59 

60 Setiap repositori awalnya diatur untuk melakukan review setelah setiap push, yang menjalankan review paling banyak. Untuk menjalankan lebih sedikit, [atur kapan review dijalankan](#set-when-reviews-run).

61 </Step>

62 

63 <Step title="Verifikasi dengan pull request uji">

64 Buka pull request uji di salah satu repositori yang Anda tambahkan, dan jangan tandai sebagai draft. Check run bernama **Claude Code Review** akan muncul dalam beberapa menit. Jika Anda sudah mengatur repositori ke **Manual (@claude review)**, beri komentar `@claude review` pada pull request untuk memulai review pertama.

65 

66 Jika tidak ada check run yang muncul, lihat [No check run appears on the test pull request](/docs/id/code-review-troubleshooting#no-check-run-appears-on-the-test-pull-request).

67 

68 Setelah review tiba, kirimkan kepada developer Anda [Membaca dan meminta review pada pull request](/docs/id/code-review-pull-requests), yang membahas tingkat keparahan, perintah komentar, dan cara menanggapi temuan.

69 </Step>

70</Steps>

71 

72<h2 id="set-defaults-for-your-organization">

73 Mengatur default untuk organisasi Anda

74</h2>

75 

76Sebagai Owner, Anda menentukan seberapa menyeluruh review dilakukan dan seberapa sering review dijalankan. Keduanya ada di bagian **Code review** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review).

77 

78<h3 id="set-the-default-review-level">

79 Mengatur tingkat review default

80</h3>

81 

82Tingkat review menentukan seberapa menyeluruh setiap review, dan review yang lebih menyeluruh memerlukan biaya lebih besar. Anda menetapkan satu default untuk organisasi dan dapat menimpanya untuk repositori tertentu.

83 

84| Tingkat | Yang dikompromikan |

85| :- | :- |

86| Quick | Pemeriksaan yang lebih ringan. Tingkat tercepat, dengan biaya terendah |

87| Standard | Keseimbangan antara kedalaman, kecepatan, dan biaya. Tingkat default |

88| Deep | Pemeriksaan paling menyeluruh. Memakan waktu paling lama dan biaya paling besar |

89 

90* **Default organisasi**: pilih tingkat di bawah **Review level** dan konfirmasi dengan **Change level**. Setiap repositori menggunakannya kecuali Anda memberikan tingkat tersendiri untuk repositori tersebut.

91* **Satu repositori**: klik **Edit** pada baris repositori, lalu pilih **Review level** di sana. Opsi pertama, **Default**, mengikuti organisasi. Tingkat tersimpan segera setelah Anda memilihnya.

92 

93Tingkat baru berlaku untuk review yang dimulai setelah perubahan. Untuk faktor lain yang memengaruhi biaya setiap review, lihat [Biaya dan penggunaan Code Review](/docs/id/code-review-costs).

94 

95<h3 id="set-when-reviews-run">

96 Mengatur kapan review dijalankan

97</h3>

98 

99Setiap repositori memiliki pengaturan **Review runs** tersendiri, yang menentukan kapan pull request-nya di-review.

100 

101* **Once after PR creation**: review dijalankan ketika pull request dibuka, dibuka kembali, atau ditandai siap untuk di-review

102* **After every push**: review dijalankan pada setiap push ke branch pull request, menangkap masalah baru seiring perkembangan pull request dan menyelesaikan thread secara otomatis ketika Anda memperbaiki masalah yang ditandai

103* **Manual (@claude review)**: membuka atau melakukan push ke pull request tidak memulai review. Beri komentar [`@claude review`](/docs/id/code-review-pull-requests#comment-commands) untuk meminta review, atau `@claude review always` untuk juga melanggankan pull request ke review pada push berikutnya.

104 

105Manual berguna untuk repositori dengan lalu lintas tinggi di mana Anda ingin memilih pull request tertentu untuk di-review, atau untuk mulai me-review pull request hanya setelah siap. Untuk membandingkan dampak setiap opsi terhadap pengeluaran, lihat [Seberapa sering review dijalankan](/docs/id/code-review-costs#how-often-reviews-run).

106 

107Untuk mengubah pengaturan, klik **Edit** pada baris repositori di tabel **Repositories** dan pilih opsi **Review runs**. Pilihan tersimpan segera setelah Anda memilihnya, dan kolom **Review runs** pada tabel menampilkannya dalam bentuk singkat sebagai Once per PR, Every push, atau Manual.

108 

109* **Draft dan pull request dari fork**: opsi apa pun yang Anda pilih, [review otomatis melewati keduanya](/docs/id/code-review-pull-requests#review-drafts-and-pull-requests-from-forks)

110* **Repositori baru**: repositori yang Anda tambahkan dari dialog **Add a repository** dimulai dengan **After every push**. Jika organisasi GitHub-nya [dicakup secara keseluruhan](#cover-a-whole-github-organization), repositori tersebut mengikuti pengaturan baris organisasi tersebut.

111 

112<h3 id="turn-tip-comments-on-or-off">

113 Mengaktifkan atau menonaktifkan komentar tip

114</h3>

115 

116Komentar tip adalah komentar singkat yang diposting Claude pada pull request ketika tidak ada review yang dimulai, yang menjelaskan alasannya dan langkah selanjutnya. **Show tips on pull requests** aktif secara default. Jika aktif, Claude memposting tip dalam setiap kasus berikut, yang menjelaskan:

117 

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

119* **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 memintanya

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

122 

123Nonaktifkan pengaturan ini untuk menghentikan komentar-komentar tersebut.

124 

125<h3 id="what-developers-can-change">

126 Yang dapat diubah oleh developer

127</h3>

128 

129Developer akan menghubungi Anda untuk mengubah tingkat review, pengaturan **Review runs**, atau repositori mana yang mendapatkan review. Dari GitHub, tanpa peran Owner, mereka dapat melakukan hal-hal berikut:

130 

131* **Meminta review**: beri komentar [`@claude review`](/docs/id/code-review-pull-requests#comment-commands) pada pull request. Ini memerlukan akses tulis ke repositori, dan berfungsi pada [draft dan pull request dari fork](/docs/id/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), yang dilewati oleh review otomatis.

132* **Melanggankan satu pull request ke review pada setiap push**: beri komentar `@claude review always` pada pull request yang bukan [draft atau berasal dari fork](/docs/id/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), misalnya di repositori yang diatur ke Manual

133* **Mengubah apa yang ditandai oleh review**: lakukan commit [file `REVIEW.md` dan `CLAUDE.md`](/docs/id/code-review-customize) ke repositori, misalnya untuk menambahkan pemeriksaan

134 

135Review yang diminta oleh developer [ditagihkan ke organisasi Anda](/docs/id/code-review-costs#pricing). Untuk membatasi pengeluaran Code Review dalam sebulan, lihat [Membatasi pengeluaran Anda](/docs/id/code-review-costs#limit-your-spend).

136 

137<h2 id="manage-repositories">

138 Mengelola repositori

139</h2>

140 

141Anda dapat menambahkan repositori satu per satu atau mencakup seluruh organisasi GitHub sekaligus, dan menghentikan review di mana pun Anda tidak menginginkannya.

142 

143<h3 id="add-more-repositories">

144 Menambahkan lebih banyak repositori

145</h3>

146 

147Untuk menambahkan repositori setelah penyiapan, klik **Add** di atas tabel **Repositories** di bagian **Code review**. Dialog **Add a repository** akan terbuka. Pilih repositori dan klik **Continue**.

148 

149* **Repositori tidak tercantum**: lihat [A repository isn't listed in Add a repository](/docs/id/code-review-troubleshooting#a-repository-isn’t-listed-in-add-a-repository).

150* **Anda menginginkan setiap repositori dalam organisasi GitHub**: [cakup organisasi tersebut](#cover-a-whole-github-organization) alih-alih memilih repositori satu per satu

151 

152<h3 id="cover-a-whole-github-organization">

153 Mencakup seluruh organisasi GitHub

154</h3>

155 

156Untuk mengaktifkan Code Review bagi setiap repositori dalam organisasi GitHub, atur **Review runs** pada baris organisasi tersebut di tabel **Repositories**. Ini mencakup setiap repositori di sana yang dapat diakses oleh Claude GitHub App, termasuk repositori yang ditambahkan kemudian. Hal ini dapat meningkatkan pengeluaran secara signifikan. Ini memerlukan semua hal berikut:

157 

158* Akun GitHub yang Anda hubungkan ke Claude adalah owner organisasi GitHub tersebut.

159* Organisasi berada di github.com. Instans GitHub Enterprise Server dan akun GitHub pribadi tidak memenuhi syarat.

160* [Batas pengeluaran bulanan](/docs/id/code-review-costs#limit-your-spend) telah ditetapkan, untuk organisasi Claude Anda atau untuk Code Review.

161 

162Untuk mencakup organisasi, klik **Edit** pada barisnya, pilih opsi **Review runs**, dan konfirmasi. Opsinya adalah tiga opsi dari [Mengatur kapan review dijalankan](#set-when-reviews-run) ditambah **Off**.

163 

164Setelah Anda mengonfirmasi, perubahan berikut akan berlaku:

165 

166* **Cakupan**: setiap repositori dicakup mulai dari pull request berikutnya. Jika Claude GitHub App diinstal pada repositori tertentu alih-alih semua repositori, Claude me-review repositori tersebut; ubah akses repositori aplikasi di GitHub untuk mencakup sisanya.

167* **Pengaturan yang sudah ada**: setiap repositori dalam organisasi GitHub tersebut mengikuti opsi yang Anda pilih, termasuk repositori yang sebelumnya Anda atur secara individual. Mengatur baris tersebut lagi memberikan hasil yang sama. Repositori yang Anda nonaktifkan pada barisnya sendiri tetap nonaktif.

168* **Perubahan individual setelahnya**: repositori yang kemudian Anda atur berbeda dari organisasinya ditandai **Custom** di tabel.

169* **Tingkat review**: baris organisasi tidak memiliki tingkat review tersendiri.

170 

171<h3 id="turn-off-code-review-or-remove-a-repository">

172 Menonaktifkan Code Review atau menghapus repositori

173</h3>

174 

175Di bagian **Code review** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code#code-review), pilih kontrol yang sesuai dengan apa yang ingin Anda hentikan:

176 

177* **Satu repositori, tetap di daftar**: klik **Edit** pada barisnya dan nonaktifkan **Code review**. Tabel menampilkan repositori tersebut sebagai Off.

178* **Satu repositori, menghapusnya**: klik **Edit** pada barisnya, lalu **Remove repository** di bagian bawah dialog. Review berhenti di sana, dan organisasi Claude lain kemudian dapat menyiapkan repositori tersebut. Selama organisasi GitHub repositori tersebut dicakup secara keseluruhan, Anda tidak dapat menghapusnya; nonaktifkan sakelar **Code review**-nya sebagai gantinya.

179* **Seluruh organisasi GitHub**: klik **Edit** pada baris organisasi dan pilih **Off**. Ini juga menonaktifkan repositori dalam organisasi tersebut yang Anda tambahkan satu per satu.

180* **Semuanya**: nonaktifkan **Allow code review**. Tidak ada review baru yang dimulai di repositori mana pun, dan daftar repositori Anda tetap ada sehingga Anda dapat mengaktifkannya kembali nanti.

181 

182<h2 id="related-resources">

183 Sumber daya terkait

184</h2>

185 

186* [Biaya dan penggunaan Code Review](/docs/id/code-review-costs): bagaimana tingkat review dan waktu review dijalankan memengaruhi pengeluaran, cara menetapkan batas pengeluaran, dan tempat melihat penggunaan

187* [Membaca dan meminta review pada pull request](/docs/id/code-review-pull-requests): apa yang dilihat developer pada pull request dan perintah komentar

188* [Menyesuaikan Code Review](/docs/id/code-review-customize): sesuaikan apa yang ditandai Claude dengan `REVIEW.md` dan `CLAUDE.md`

189* [GitHub Enterprise Server](/docs/id/github-enterprise-server): hubungkan instans GitHub yang di-host sendiri sebelum penyiapan

code-review-troubleshooting.md +113 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Pemecahan masalah Code Review

6 

7> Perbaiki Code Review yang tidak dimulai, gagal, atau dilewati karena anggaran, temukan temuan yang hilang, dan selesaikan masalah penyiapan dan `REVIEW.md`.

8 

9Ketika [Code Review](/docs/id/code-review) tidak berjalan sesuai harapan Anda pada sebuah pull request, mulailah dengan check run **Claude Code Review**. Judulnya menunjukkan sejauh mana review telah berjalan.

10 

11<h2 id="check-how-far-the-review-got">

12 Periksa sejauh mana review telah berjalan

13</h2>

14 

15Temukan check run **Claude Code Review** pada pull request Anda, lalu cocokkan judulnya dengan salah satu judul umum berikut:

16 

17| Judul check run | Artinya | Yang perlu dilakukan |

18| :- | :- | :- |

19| **Code review queued...** atau **Code review in progress...** | Review belum selesai | Tunggu hingga judulnya berubah |

20| **Code review found no issues** | Review selesai dan tidak menemukan apa pun untuk ditandai | Tidak ada |

21| Judul yang menyatakan bahwa masalah ditemukan | Review selesai dengan temuan | Jika Anda tidak melihatnya pada diff, lihat [Temukan masalah yang tidak ditampilkan sebagai komentar inline](#find-issues-that-aren’t-showing-as-inline-comments) |

22| **Code review skipped — no new changes** | Review otomatis tidak berjalan pada push terbaru Anda | Untuk tetap mendapatkan review, beri komentar `@claude review` |

23| **Code review failed** atau **Code review timed out** | Review tidak selesai | Untuk menjalankannya lagi, lihat [Picu ulang review yang gagal atau kehabisan waktu](#retrigger-a-failed-or-timed-out-review) |

24| **Code review declined** | Review tidak berjalan | Baca ringkasan check run. Jika ringkasan tersebut menyebutkan anggaran atau batas pengeluaran, lihat [Review tidak berjalan dan PR menampilkan pesan anggaran](#review-didn’t-run-and-the-pr-shows-a-budget-message) |

25| Tidak ada check run | Tidak ada review yang dimulai | Beri komentar `@claude review`. Jika setelah itu tidak ada check run yang muncul, lihat [Perintah komentar tidak memulai review](#a-comment-command-didn’t-start-a-review) |

26 

27<h2 id="a-review-didn’t-start">

28 Review tidak dimulai

29</h2>

30 

31Periksa kasus-kasus berikut ketika tidak ada check run **Claude Code Review** yang muncul, atau ketika Claude memposting komentar yang menyatakan bahwa review dilewati.

32 

33<h3 id="a-comment-command-didn’t-start-a-review">

34 Perintah komentar tidak memulai review

35</h3>

36 

37Setelah Anda memberi komentar `@claude review`, cari check run **Claude Code Review** berjudul **Code review queued...** atau **Code review in progress...** pada pull request. Reaksi 👀 pada komentar Anda tidak memastikan bahwa review akan berjalan. Jika tidak ada check run yang muncul, periksa setiap penyebab berikut:

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

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.

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 

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

45 Review tidak berjalan dan PR menampilkan pesan anggaran

46</h3>

47 

48Ketika anggaran organisasi Anda tidak dapat menutupi sebuah review, Code Review melewati review tersebut dan Claude memposting komentar pada pull request yang diawali dengan "⚠️ Code review skipped". Dalam beberapa kasus ini, check run berjudul **Code review declined** juga muncul.

49 

50Komentar tersebut menautkan ke [claude.ai/admin-settings/usage](https://claude.ai/admin-settings/usage), tempat admin memulihkan anggaran. Kata-katanya menunjukkan batas mana yang tercapai:

51 

52* **"has reached its monthly code review spending cap"**: [batas pengeluaran bulanan untuk Code Review](/docs/id/code-review-costs#limit-your-spend) telah tercapai. Review akan berjalan kembali pada awal periode penagihan berikutnya. Untuk mendapatkannya lebih cepat, minta admin untuk menaikkan batas tersebut.

53* **"has no extra usage available to pay for this review"**: saldo [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) organisasi Anda kosong, atau batas pengeluaran bulanan keseluruhannya telah tercapai. Minta admin untuk menambahkan kredit penggunaan atau menaikkan batas tersebut.

54* **"is too low to start another review"**: sisa anggaran atau saldo kurang dari perkiraan biaya satu review. Minta admin untuk menaikkan batas atau menambahkan kredit penggunaan.

55 

56Setelah anggaran dipulihkan, beri komentar `@claude review` pada pull request untuk mendapatkan review yang dilewati. [Syarat untuk perintah komentar](/docs/id/code-review-pull-requests#comment-commands) berlaku, sehingga pemberi komentar memerlukan akses tulis.

57 

58<h2 id="retrigger-a-failed-or-timed-out-review">

59 Picu ulang review yang gagal atau kehabisan waktu

60</h2>

61 

62Jika ringkasan check run menyatakan "The review session was interrupted before it could finish. A new review of this commit has been queued automatically.", Anda tidak perlu melakukan apa pun. Review tersebut dicoba ulang satu kali secara otomatis.

63 

64Selain itu, ketika judul check run adalah **Code review failed** atau **Code review timed out**, jalankan review lagi dengan komentar atau re-run:

65 

66* **Beri komentar `@claude review`**: posting sebagai komentar tingkat atas pada pull request. Ini memulai review baru tanpa membuat pull request berlangganan ke push berikutnya.

67* **Klik Re-run**: jika pull request tidak [berasal dari fork](/docs/id/code-review-pull-requests#review-drafts-and-pull-requests-from-forks), klik **Re-run** pada check **Claude Code Review** di tab **Checks** GitHub. Re-run mencakup head commit pull request saat ini dan juga tidak membuat pull request berlangganan.

68 

69<h2 id="find-issues-that-aren’t-showing-as-inline-comments">

70 Temukan masalah yang tidak ditampilkan sebagai komentar inline

71</h2>

72 

73Jika judul check run menyatakan bahwa masalah ditemukan tetapi Anda tidak melihat komentar review inline pada diff, periksa lokasi lain berikut tempat temuan ditampilkan:

74 

75* **Details check run**: klik **Details** di sebelah check **Claude Code Review** di tab **Checks**. Tabel tingkat keparahan mencantumkan temuan beserta file, baris, dan ringkasannya, terlepas dari apakah komentar inline diterima atau tidak.

76* **Anotasi Files changed**: buka tab **Files changed** pada PR. Temuan yang memiliki baris tetapi tidak diposting sebagai komentar inline muncul di sana sebagai anotasi pada baris yang bersangkutan.

77* **Isi review**: temuan yang tidak memiliki lokasi inline, atau yang berada di luar diff saat ini, muncul di bawah judul **Additional findings** dalam isi review.

78 

79<h2 id="the-check-run-mentions-review-md">

80 Check run menyebutkan REVIEW\.md

81</h2>

82 

83Dua dari pesan yang dapat dimuat check run tentang `REVIEW.md` berkaitan dengan proteksi branch:

84 

85* **"This review applied the repository's review instructions (REVIEW\.md) from its default branch, which is not protected against direct pushes."**: review hanya membaca file root. Lihat [Dari branch mana REVIEW.md dibaca](/docs/id/code-review-customize#which-branch-review-md-is-read-from) untuk mengetahui apa yang berubah dengan memproteksi branch tersebut.

86* **"were not applied to this review: branch protection could not be confirmed"**: review tidak membaca `REVIEW.md` apa pun.

87 

88<h2 id="setup-problems">

89 Masalah penyiapan

90</h2>

91 

92Kasus-kasus ini muncul bagi Owner saat [menyiapkan Code Review](/docs/id/code-review-setup).

93 

94<h3 id="a-repository-isn’t-listed-in-add-a-repository">

95 Repositori tidak tercantum di Add a repository

96</h3>

97 

98Cari repositori berdasarkan nama terlebih dahulu, karena dialog tidak memuat daftar yang panjang secara penuh. Dialog hanya mencantumkan repositori jika Claude GitHub App dapat mengaksesnya. Klik **Install GitHub App** dan berikan akses ke repositori tersebut kepada aplikasi. Ketika tidak ada repositori yang tercantum, **Install GitHub App** berupa tombol di dalam dialog. Jika tidak, tombol tersebut berada di bagian bawah menu filter organisasi GitHub pada dialog.

99 

100<h3 id="no-check-run-appears-on-the-test-pull-request">

101 Tidak ada check run yang muncul pada pull request uji

102</h3>

103 

104Pastikan bahwa **Allow code review** aktif, bahwa repositori tercantum di bawah **Repositories** di bagian **Code review**, dan bahwa Claude GitHub App memiliki akses ke repositori tersebut. Review otomatis melewati draft pull request, dan repositori yang diatur ke **Manual (@claude review)** memerlukan komentar `@claude review` untuk memulai review pertama.

105 

106<h2 id="related-resources">

107 Sumber daya terkait

108</h2>

109 

110* [Membaca dan meminta review pada pull request](/docs/id/code-review-pull-requests): arti temuan dan check run, serta perintah komentar

111* [Menyiapkan Code Review](/docs/id/code-review-setup): untuk Owner, aktifkan Code Review dan kelola repositori

112* [Biaya dan penggunaan Code Review](/docs/id/code-review-costs): batas pengeluaran di balik pesan anggaran

113* [Menyesuaikan Code Review](/docs/id/code-review-customize): salinan `REVIEW.md` mana yang dibaca oleh review

commands.md +2 −2

Details

72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/id/skills#bundled-skills).** Muat materi referensi [Claude API](https://platform.claude.com/docs/en/api/overview) dan [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) untuk bahasa proyek Anda. Juga diaktifkan secara otomatis ketika kode Anda mengimpor `anthropic` atau `@anthropic-ai/sdk`. Untuk apa yang dilakukan setiap subperintah dan versi yang diperlukan, lihat [Bekerja pada proyek Claude API](/docs/id/skills#work-on-claude-api-projects) |72| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb\|preserved-thinking-migration]` | **[Skill](/docs/id/skills#bundled-skills).** Muat materi referensi [Claude API](https://platform.claude.com/docs/en/api/overview) dan [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) untuk bahasa proyek Anda. Juga diaktifkan secara otomatis ketika kode Anda mengimpor `anthropic` atau `@anthropic-ai/sdk`. Untuk apa yang dilakukan setiap subperintah dan versi yang diperlukan, lihat [Bekerja pada proyek Claude API](/docs/id/skills#work-on-claude-api-projects) |

73| `/claude-in-chrome [task]` | **[Skill](/docs/id/skills#bundled-skills).** Buat Claude melakukan tugas di browser Anda, seperti menguji halaman, mengisi formulir, atau membaca log konsol, melalui [Claude di Chrome](/docs/id/chrome). Tersedia ketika integrasi Chrome diaktifkan untuk sesi, misalnya dengan `claude --chrome`, atau ketika Claude Code dapat menawarkan untuk [memasang ekstensi](/docs/id/chrome#install-the-extension-when-claude-asks) |73| `/claude-in-chrome [task]` | **[Skill](/docs/id/skills#bundled-skills).** Buat Claude melakukan tugas di browser Anda, seperti menguji halaman, mengisi formulir, atau membaca log konsol, melalui [Claude di Chrome](/docs/id/chrome). Tersedia ketika integrasi Chrome diaktifkan untuk sesi, misalnya dengan `claude --chrome`, atau ketika Claude Code dapat menawarkan untuk [memasang ekstensi](/docs/id/chrome#install-the-extension-when-claude-asks) |

74| `/clear [name]` | Mulai percakapan baru dengan konteks kosong. Berikan nama untuk memberi label percakapan sebelumnya di pemilih `/resume`. Untuk membebaskan konteks sambil melanjutkan percakapan yang sama, gunakan `/compact` sebagai gantinya. Lanjutkan percakapan sebelumnya dengan `/resume`, atau, dalam proses Claude Code yang sama, pulihkan dari [entri sesi sebelumnya menu rewind](/docs/id/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |74| `/clear [name]` | Mulai percakapan baru dengan konteks kosong. Berikan nama untuk memberi label percakapan sebelumnya di pemilih `/resume`. Untuk membebaskan konteks sambil melanjutkan percakapan yang sama, gunakan `/compact` sebagai gantinya. Lanjutkan percakapan sebelumnya dengan `/resume`, atau, dalam proses Claude Code yang sama, pulihkan dari [entri sesi sebelumnya menu rewind](/docs/id/checkpointing#rewind-past-a-cleared-conversation). Alias: `/reset`, `/new` |

75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/id/skills#bundled-skills).** Tinjau diff saat ini, atau nomor PR, branch, atau jalur yang Anda berikan, untuk bug kebenaran. Tergantung pada model dan tingkat effort Anda, tinjauan juga mencakup peluang pembersihan. Berikan `--fix` untuk menerapkan temuan, `--comment` untuk mempostingnya di PR GitHub atau merge request GitLab, atau `ultra` untuk menjalankan [tinjauan cloud](/docs/id/ultrareview) mendalam. Memposting ke merge request GitLab memerlukan Claude Code v2.1.257 atau lebih baru. Dengan `ultra` pada target PR `github.com`, berikan `--post` untuk pra-pilih [memposting temuan selesai ke PR](/docs/id/ultrareview#post-findings-to-the-pull-request) dalam dialog peluncuran; `--post` memerlukan Claude Code v2.1.227 atau lebih baru. Lihat [Tinjau diff secara lokal](/docs/id/code-review#review-a-diff-locally) untuk tingkat effort, penargetan, dan bagaimana hubungannya dengan `/simplify`. Alias: `/review` |75| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | **[Skill](/docs/id/skills#bundled-skills).** Tinjau diff saat ini, atau nomor PR, branch, atau jalur yang Anda berikan, untuk bug kebenaran. Tergantung pada model dan tingkat effort Anda, tinjauan juga mencakup peluang pembersihan. Berikan `--fix` untuk menerapkan temuan, `--comment` untuk mempostingnya di PR GitHub atau merge request GitLab, atau `ultra` untuk menjalankan [tinjauan cloud](/docs/id/ultrareview) mendalam. Memposting ke merge request GitLab memerlukan Claude Code v2.1.257 atau lebih baru. Dengan `ultra` pada target PR `github.com`, berikan `--post` untuk pra-pilih [memposting temuan selesai ke PR](/docs/id/ultrareview#post-findings-to-the-pull-request) dalam dialog peluncuran; `--post` memerlukan Claude Code v2.1.227 atau lebih baru. Lihat [Tinjau secara lokal dengan `/code-review`](/docs/id/code-review-local) untuk tingkat effort, penargetan, dan bagaimana hubungannya dengan `/simplify`. Alias: `/review` |

76| `/color [color\|default]` | Atur warna bilah prompt untuk sesi saat ini. Warna tersedia: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Gunakan `default` untuk mengatur ulang, atau jalankan tanpa argumen untuk memilih warna acak. Ketika [Remote Control](/docs/id/remote-control) terhubung, warna disinkronkan ke claude.ai/code. Juga tersedia dalam mode non-interaktif (`-p`) |76| `/color [color\|default]` | Atur warna bilah prompt untuk sesi saat ini. Warna tersedia: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Gunakan `default` untuk mengatur ulang, atau jalankan tanpa argumen untuk memilih warna acak. Ketika [Remote Control](/docs/id/remote-control) terhubung, warna disinkronkan ke claude.ai/code. Juga tersedia dalam mode non-interaktif (`-p`) |

77| `/compact [instructions]` | Bebaskan konteks dengan merangkum percakapan sejauh ini. Secara opsional berikan instruksi fokus untuk ringkasan. Lihat [bagaimana compaction menangani aturan, skill, dan file memori](/docs/id/context-window#what-survives-compaction) |77| `/compact [instructions]` | Bebaskan konteks dengan merangkum percakapan sejauh ini. Secara opsional berikan instruksi fokus untuk ringkasan. Lihat [bagaimana compaction menangani aturan, skill, dan file memori](/docs/id/context-window#what-survives-compaction) |

78| `/config [key=value ...]` | Buka antarmuka [Pengaturan](/docs/id/settings) untuk menyesuaikan tema, model, [gaya output](/docs/id/output-styles), dan preferensi lainnya. Berikan satu atau lebih pasangan `key=value` untuk mengatur pengaturan secara langsung tanpa membuka antarmuka, misalnya `/config thinking=false`, `/config theme=dark`, atau `/config model=sonnet`. Bentuk `key=value` juga berfungsi dalam mode non-interaktif (`-p`) dan dari aplikasi mobile Claude melalui [Remote Control](/docs/id/remote-control). Bentuk `key=value` tidak dapat mengaktifkan pengaturan yang memerlukan konfirmasi Anda di panel, seperti [`autoContinueAtUsageLimit`](/docs/id/interactive-mode#turn-automatic-continue-off), meskipun dapat menonaktifkannya. Jalankan `/config --help` untuk mencantumkan kunci yang diterima. Alias: `/settings` |78| `/config [key=value ...]` | Buka antarmuka [Pengaturan](/docs/id/settings) untuk menyesuaikan tema, model, [gaya output](/docs/id/output-styles), dan preferensi lainnya. Berikan satu atau lebih pasangan `key=value` untuk mengatur pengaturan secara langsung tanpa membuka antarmuka, misalnya `/config thinking=false`, `/config theme=dark`, atau `/config model=sonnet`. Bentuk `key=value` juga berfungsi dalam mode non-interaktif (`-p`) dan dari aplikasi mobile Claude melalui [Remote Control](/docs/id/remote-control). Bentuk `key=value` tidak dapat mengaktifkan pengaturan yang memerlukan konfirmasi Anda di panel, seperti [`autoContinueAtUsageLimit`](/docs/id/interactive-mode#turn-automatic-continue-off), meskipun dapat menonaktifkannya. Jalankan `/config --help` untuk mencantumkan kunci yang diterima. Alias: `/settings` |


134| `/remote-env` | Pilih [lingkungan cloud](/docs/id/cloud-environments#select-an-environment-from-the-cli) default untuk sesi cloud yang Anda mulai dari CLI |134| `/remote-env` | Pilih [lingkungan cloud](/docs/id/cloud-environments#select-an-environment-from-the-cli) default untuk sesi cloud yang Anda mulai dari CLI |

135| `/rename [name]` | Ganti nama sesi saat ini dan tampilkan nama di bilah prompt. Tanpa nama, auto-generate dari riwayat percakapan. Juga tersedia dalam mode non-interaktif (`-p`). Dari setiap surface penggantian nama, termasuk claude.ai dan aplikasi desktop, Claude Code mengganti karakter kontrol dan tidak terlihat dalam nama baru dengan spasi dan membatasi nama pada 200 karakter. Jika nama kosong setelah karakter tidak terlihat dihapus, Claude Code menolaknya dan menunjukkan `That name is empty once invisible characters are removed. Usage: /rename <name>`. Penggantian karakter dan batas panjang memerlukan Claude Code v2.1.221 atau lebih baru |135| `/rename [name]` | Ganti nama sesi saat ini dan tampilkan nama di bilah prompt. Tanpa nama, auto-generate dari riwayat percakapan. Juga tersedia dalam mode non-interaktif (`-p`). Dari setiap surface penggantian nama, termasuk claude.ai dan aplikasi desktop, Claude Code mengganti karakter kontrol dan tidak terlihat dalam nama baru dengan spasi dan membatasi nama pada 200 karakter. Jika nama kosong setelah karakter tidak terlihat dihapus, Claude Code menolaknya dan menunjukkan `That name is empty once invisible characters are removed. Usage: /rename <name>`. Penggantian karakter dan batas panjang memerlukan Claude Code v2.1.221 atau lebih baru |

136| `/resume [session]` | Lanjutkan percakapan berdasarkan ID atau nama, atau buka pemilih sesi. [Sesi latar belakang](/docs/id/agent-view) muncul di pemilih ditandai dengan `bg`. Melanjutkan satu yang masih berjalan, dari pemilih atau berdasarkan ID atau nama, [membuka sesi itu](/docs/id/sessions#resume-a-running-background-session): percakapan saat ini Anda pindah ke latar belakang dan terminal ini melampirkan ke yang berjalan. Tekan `←` pada prompt kosong untuk kembali ke tampilan agent, yang juga mencantumkan percakapan yang Anda tinggalkan. Sebelum v2.1.285, Claude Code menolak dan memberi tahu Anda untuk membuka sesi dengan `claude attach` atau menghentikannya terlebih dahulu. Alias: `/continue` |136| `/resume [session]` | Lanjutkan percakapan berdasarkan ID atau nama, atau buka pemilih sesi. [Sesi latar belakang](/docs/id/agent-view) muncul di pemilih ditandai dengan `bg`. Melanjutkan satu yang masih berjalan, dari pemilih atau berdasarkan ID atau nama, [membuka sesi itu](/docs/id/sessions#resume-a-running-background-session): percakapan saat ini Anda pindah ke latar belakang dan terminal ini melampirkan ke yang berjalan. Tekan `←` pada prompt kosong untuk kembali ke tampilan agent, yang juga mencantumkan percakapan yang Anda tinggalkan. Sebelum v2.1.285, Claude Code menolak dan memberi tahu Anda untuk membuka sesi dengan `claude attach` atau menghentikannya terlebih dahulu. Alias: `/continue` |

137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias dari [`/code-review`](/docs/id/code-review#review-a-diff-locally): meninjau diff saat ini, atau nomor PR, branch, atau jalur yang Anda berikan, seperti `/review 1234`, dan mengambil tingkat effort dan flag yang sama. Tanpa level yang diberikan, tinjauan menggunakan kembali level `low` hingga `max` terakhir yang Anda ketik; lihat [Tinjau diff secara lokal](/docs/id/code-review#review-a-diff-locally) untuk aturan yang tepat. Untuk tinjauan cloud mendalam, gunakan [`/code-review ultra`](/docs/id/ultrareview). Sebelum v2.1.223, `/review` adalah perintah terpisah yang menjalankan tinjauan read-only satu lintasan dari pull request GitHub berdasarkan nomor, mencantumkan PR terbuka untuk dipilih saat dijalankan tanpa argumen; dari v2.1.186 hingga v2.1.201, itu menjalankan mesin multi-agent yang sama seperti `/code-review medium` |137| `/review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [--max-findings n\|all\|default] [pr#\|branch\|path]` | Alias dari [`/code-review`](/docs/id/code-review-local): meninjau diff saat ini, atau nomor PR, branch, atau jalur yang Anda berikan, seperti `/review 1234`, dan mengambil tingkat effort dan flag yang sama. Tanpa level yang diberikan, tinjauan menggunakan kembali level `low` hingga `max` terakhir yang Anda ketik; lihat [Tinjau secara lokal dengan `/code-review`](/docs/id/code-review-local) untuk aturan yang tepat. Untuk tinjauan cloud mendalam, gunakan [`/code-review ultra`](/docs/id/ultrareview). Sebelum v2.1.223, `/review` adalah perintah terpisah yang menjalankan tinjauan read-only satu lintasan dari pull request GitHub berdasarkan nomor, mencantumkan PR terbuka untuk dipilih saat dijalankan tanpa argumen; dari v2.1.186 hingga v2.1.201, itu menjalankan mesin multi-agent yang sama seperti `/code-review medium` |

138| `/rewind` | Putar ulang percakapan dan/atau kode ke titik sebelumnya, atau ringkas dari pesan yang dipilih. Lihat [checkpointing](/docs/id/checkpointing). Alias: `/checkpoint`, `/undo` |138| `/rewind` | Putar ulang percakapan dan/atau kode ke titik sebelumnya, atau ringkas dari pesan yang dipilih. Lihat [checkpointing](/docs/id/checkpointing). Alias: `/checkpoint`, `/undo` |

139| `/run` | **[Skill](/docs/id/skills#bundled-skills).** Luncurkan dan jalankan aplikasi proyek Anda untuk melihat perubahan bekerja, bukan hanya lulus tes. Lihat [Jalankan dan verifikasi aplikasi Anda](/docs/id/skills#run-and-verify-your-app) |139| `/run` | **[Skill](/docs/id/skills#bundled-skills).** Luncurkan dan jalankan aplikasi proyek Anda untuk melihat perubahan bekerja, bukan hanya lulus tes. Lihat [Jalankan dan verifikasi aplikasi Anda](/docs/id/skills#run-and-verify-your-app) |

140| `/run-skill-generator` | **[Skill](/docs/id/skills#bundled-skills).** Ajarkan `/run` dan `/verify` cara mem-build, meluncurkan, dan menjalankan aplikasi proyek Anda dari lingkungan bersih dengan menulis [skill](/docs/id/skills#run-and-verify-your-app) per-proyek |140| `/run-skill-generator` | **[Skill](/docs/id/skills#bundled-skills).** Ajarkan `/run` dan `/verify` cara mem-build, meluncurkan, dan menjalankan aplikasi proyek Anda dari lingkungan bersih dengan menulis [skill](/docs/id/skills#run-and-verify-your-app) per-proyek |

desktop.md +257 −3

Details

207* Klik **Walk through in diff** untuk membuka diff view dan menelusuri temuan satu per satu. Temuan di diff saat ini muncul pada barisnya, tempat Anda dapat mengklik **Fix this one** atau mengabaikannya.207* Klik **Walk through in diff** untuk membuka diff view dan menelusuri temuan satu per satu. Temuan di diff saat ini muncul pada barisnya, tempat Anda dapat mengklik **Fix this one** atau mengabaikannya.

208* Klik **Apply fixes** untuk meminta Claude memperbaiki temuan yang masih terbuka.208* Klik **Apply fixes** untuk meminta Claude memperbaiki temuan yang masih terbuka.

209 209 

210Di sesi apa pun, Anda juga dapat meminta Claude di kotak prompt untuk memperbaiki apa yang ditemukan oleh peninjauan. Untuk apa yang dicari `/code-review` dan argumen yang diterimanya, lihat [Review a diff locally](/docs/id/code-review#review-a-diff-locally).210Di sesi apa pun, Anda juga dapat meminta Claude di kotak prompt untuk memperbaiki apa yang ditemukan oleh peninjauan. Untuk apa yang dicari `/code-review` dan argumen yang diterimanya, lihat [Review locally with `/code-review`](/docs/id/code-review-local).

211 211 

212<h3 id="monitor-pull-request-status">212<h3 id="monitor-pull-request-status">

213 Pantau status pull request213 Pantau status pull request


859* **Sesi per koneksi**: Desktop di macOS dan Linux membuka beberapa sesi pada satu koneksi SSH. Jika `sshd_config` server mengatur `MaxSessions 1`, naikkan nilainya, misalnya ke nilai default OpenSSH yaitu 10.859* **Sesi per koneksi**: Desktop di macOS dan Linux membuka beberapa sesi pada satu koneksi SSH. Jika `sshd_config` server mengatur `MaxSessions 1`, naikkan nilainya, misalnya ke nilai default OpenSSH yaitu 10.

860* **Folder instalasi**: Desktop menginstal program pembantu dan Claude Code di bawah `~/.claude/remote/` di direktori home Anda. Desktop menjalankannya dari sana, sehingga folder tersebut tidak boleh berada di sistem file yang di-mount dengan `noexec`. Sediakan sekitar 1 GB ruang disk di direktori home setiap pengguna yang terhubung. Untuk isi folder tersebut, lihat [File dan proses di mesin jarak jauh](#files-and-processes-on-the-remote-machine).860* **Folder instalasi**: Desktop menginstal program pembantu dan Claude Code di bawah `~/.claude/remote/` di direktori home Anda. Desktop menjalankannya dari sana, sehingga folder tersebut tidak boleh berada di sistem file yang di-mount dengan `noexec`. Sediakan sekitar 1 GB ruang disk di direktori home setiap pengguna yang terhubung. Untuk isi folder tersebut, lihat [File dan proses di mesin jarak jauh](#files-and-processes-on-the-remote-machine).

861* **Shell**: shell yang diatur untuk akun Anda di mesin jarak jauh harus dapat menjalankan perintah yang dikirim melalui SSH, seperti yang dilakukan Bash, Zsh, dan `sh`861* **Shell**: shell yang diatur untuk akun Anda di mesin jarak jauh harus dapat menjalankan perintah yang dikirim melalui SSH, seperti yang dilakukan Bash, Zsh, dan `sh`

862* **Jaringan**: Claude Code berjalan di mesin jarak jauh dan membuat permintaan jaringannya dari sana, sehingga mesin tersebut memerlukan [akses jaringan yang dibutuhkan Claude Code](/docs/id/network-config#network-access-requirements). Jika mesin tidak dapat mengunduh Claude Code, Desktop mengunduhnya di komputer Anda dan mengunggahnya. Permintaan Claude Code lainnya tetap dikirim dari mesin jarak jauh.862* **Jaringan**: Claude Code berjalan di mesin jarak jauh dan membuat permintaan jaringannya dari sana, sehingga mesin tersebut memerlukan [akses jaringan yang dibutuhkan Claude Code](/docs/id/network-config#network-access-requirements). Jika mesin tidak dapat mengunduh Claude Code, Desktop mengunduhnya di komputer Anda dan mengunggahnya. Permintaan Claude Code lainnya tetap dikirim dari mesin jarak jauh. Di mesin jarak jauh Linux, jika permintaan tersebut memerlukan proxy, [atur proxy tersebut untuk sesi SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).

863 

864<h4 id="set-a-proxy-or-a-ca-certificate-for-ssh-sessions">

865 Mengatur proxy atau sertifikat CA untuk sesi SSH

866</h4>

867 

868Jika mesin jarak jauh Linux menjangkau internet melalui proxy atau memerlukan sertifikat CA, tambahkan [variabel proxy dan CA](/docs/id/network-config) di bawah `env` di `~/.claude/settings.json` pada mesin tersebut. Tambahkan variabel tersebut meskipun Anda sudah mengekspornya di `~/.profile`, `~/.bash_profile`, `~/.zprofile`, atau `~/.zshrc` di mesin tersebut.

869 

870Sesi SSH tidak mendapatkan variabel tersebut dari file-file itu, bahkan ketika `claude` di terminal pada mesin tersebut mendapatkannya. Sesi kemudian dapat macet, atau menampilkan **The connection from … to the API failed** atau **Authentication failed**, dan masuk kembali tidak membantu.

871 

872<Steps>

873 <Step title="Tambahkan variabel">

874 Untuk file CA, gunakan [`NODE_EXTRA_CA_CERTS`](/docs/id/network-config#custom-ca-certificates), karena Claude Code tidak memercayai CA dari `SSL_CERT_FILE` di `~/.claude/settings.json`. Contoh ini mengatur proxy dan file CA:

875 

876 ```json ~/.claude/settings.json theme={null}

877 {

878 "env": {

879 "HTTPS_PROXY": "http://proxy.example.com:8080",

880 "NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"

881 }

882 }

883 ```

884 </Step>

885 

886 <Step title="Kirim pesan Anda lagi">

887 Kirim pesan Anda lagi, karena variabel yang Anda tambahkan atau ubah di file tersebut berlaku dalam hitungan detik. Mulai sesi baru jika masih gagal.

888 </Step>

889</Steps>

890 

891<h5 id="find-a-proxy-or-ca-variable-set-elsewhere-on-the-remote-machine">

892 Menemukan variabel proxy atau CA yang diatur di tempat lain pada mesin jarak jauh

893</h5>

894 

895Periksa apakah mesin jarak jauh Linux mengatur variabel proxy atau CA di tempat lain, karena sesi menggunakan nilai tersebut dan [mengabaikan nilai di file pengaturan mana pun](/docs/id/settings-reference#how-env-values-interact-with-your-shell):

896 

897<Steps>

898 <Step title="Cantumkan variabel yang diatur mesin jarak jauh">

899 Di terminal pada komputer Anda, jalankan `ssh devbox env`, dengan host Anda sendiri.

900 </Step>

901 

902 <Step title="Ubah variabel di tempat variabel tersebut diatur">

903 Jika daftar tersebut memuat variabel itu, ubah variabel tersebut di file yang mengaturnya, seperti `~/.zshenv`, `/etc/environment`, atau `~/.bashrc` di mesin jarak jauh.

904 </Step>

905 

906 <Step title="Berikan nilai baru ke sesi">

907 Mulai ulang mesin jarak jauh, atau keluar dari Desktop dan akhiri proses program pembantu, seperti pada dua langkah pertama untuk [menghapus program pembantu](#files-and-processes-on-the-remote-machine). Lakukan ini saat tidak ada tugas yang berjalan, karena cara mana pun akan menginterupsi pekerjaan Claude.

908 </Step>

909</Steps>

863 910 

864<h4 id="use-your-ssh-configuration-on-macos-and-linux">911<h4 id="use-your-ssh-configuration-on-macos-and-linux">

865 Menggunakan konfigurasi SSH Anda di macOS dan Linux912 Menggunakan konfigurasi SSH Anda di macOS dan Linux


892 939 

893Masukkan `devbox` di bidang **SSH host**.940Masukkan `devbox` di bidang **SSH host**.

894 941 

942<h5 id="reach-a-container-on-a-remote-machine">

943 Menjangkau container di mesin jarak jauh

944</h5>

945 

946Untuk menjalankan sesi di dalam container yang tidak memublikasikan port SSH, jangkau container tersebut dengan `ProxyCommand`, karena Desktop tidak menjalankan `RemoteCommand` dari entri yang Anda hubungkan. Jika entri Anda menggunakan `RemoteCommand` untuk masuk ke dalam container, sesi berjalan di mesin tempat entri tersebut login, bukan di dalam container.

947 

948<Steps>

949 <Step title="Tambahkan entri">

950 Tambahkan entri berikut di akhir `~/.ssh/config` Anda, atau tepat di atas entri `Host *` pertama Anda jika ada. Ganti container Docker `devbox`, penggunanya `dev`, dan mesin `build.example.com` dengan milik Anda sendiri. Perintah entri tersebut memulai server SSH di dalam container untuk setiap koneksi:

951 

952 ```text ~/.ssh/config theme={null}

953 Host devbox-container

954 User dev

955 ProxyCommand ssh build.example.com docker exec -i devbox /usr/sbin/sshd -i

956 ```

957 </Step>

958 

959 <Step title="Siapkan container">

960 * Instal server OpenSSH, dengan host key yang tetap sama saat Anda mem-build ulang image atau membuat ulang container

961 * Berikan akun yang disebutkan di `User` cara untuk masuk, seperti file `authorized_keys`

962 * Periksa bahwa container memenuhi [persyaratan mesin jarak jauh](#remote-machine-requirements-for-ssh-sessions)

963 </Step>

964 

965 <Step title="Periksa allowlist">

966 Jika administrator Anda [membatasi host SSH](#restrict-which-ssh-hosts-users-can-connect-to), jalankan `ssh -G devbox-container` di terminal pada komputer Anda. Minta mereka untuk mengizinkan `hostname` yang dicetaknya, di sini `devbox-container`, di `sshHostAllowlist`. Saat mereka mengizinkan nama tersebut, mereka mengizinkan apa pun yang dihubungkan oleh `ProxyCommand` entri Anda.

967 </Step>

968 

969 <Step title="Uji entri, lalu hubungkan">

970 Jalankan `ssh devbox-container` di terminal pada komputer Anda. Perbaiki apa yang dilaporkannya, dan jalankan lagi hingga perintah tersebut membuka shell di dalam container tanpa menanyakan apa pun kepada Anda:

971 

972 * **Jika `ssh` meminta kata sandi, passphrase, atau kode**: beralihlah ke metode login yang berfungsi tanpa prompt, seperti kunci yang disimpan oleh SSH agent Anda

973 * **Jika `ssh` melaporkan `Cannot execute command-line and remote command.` atau `Bad packet length`**: hapus `RemoteCommand` dan `RequestTTY` dari entri Anda untuk `build.example.com`. Setelah itu, `ssh build.example.com` di terminal pada komputer Anda membuka shell di mesin tersebut, bukan di dalam container.

974 * **Jika `ssh` melaporkan `Connection closed by UNKNOWN port 65535`**: jalankan `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` di terminal yang sama.

975 * Jika perintah tersebut mencetak `Missing privilege separation directory: /run/sshd`, buat folder tersebut di dalam container.

976 * Jika perintah tersebut mencetak `no hostkeys available` dan container memiliki host key, tambahkan `-u root` setelah `exec` dalam perintah ini dan di entri.

977 

978 Lalu masukkan `devbox-container` di bidang **SSH host**.

979 </Step>

980</Steps>

981 

895<h5 id="use-variables-from-your-shell-in-a-proxycommand">982<h5 id="use-variables-from-your-shell-in-a-proxycommand">

896 Menggunakan variabel dari shell Anda dalam `ProxyCommand`983 Menggunakan variabel dari shell Anda dalam `ProxyCommand`

897</h5>984</h5>


900 987 

901Hal ini memerlukan Claude Desktop v2.37337.0 atau yang lebih baru dan perintah `env` yang menerima `-0`, yang dapat Anda periksa dengan menjalankan `env -0` di terminal pada komputer Anda.988Hal ini memerlukan Claude Desktop v2.37337.0 atau yang lebih baru dan perintah `env` yang menerima `-0`, yang dapat Anda periksa dengan menjalankan `env -0` di terminal pada komputer Anda.

902 989 

990<Note>

991 Jika shell Anda mengatur kredensial AWS sementara, [berikan profil kepada AWS CLI](#use-aws-credentials-in-a-proxycommand) alih-alih mengekspor variabel `AWS_*`.

992</Note>

993 

994<a id="use-aws-credentials-in-a-proxycommand" />

995 

996<h5 id="use-aws-credentials-in-a-proxycommand">

997 Menggunakan kredensial AWS dalam `ProxyCommand`

998</h5>

999 

1000Jika Anda mengatur kredensial AWS sementara di file startup shell, `ProxyCommand` yang menjalankan AWS CLI dapat terhubung di terminal tetapi gagal di Desktop. Saat shell Anda mengekspor `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN`, atau `AWS_CREDENTIAL_EXPIRATION`, `ssh` dan `ProxyCommand` Anda di Desktop tidak mendapatkan kredensial AWS, `AWS_REGION`, atau `AWS_PROFILE` dari shell.

1001 

1002Jika AWS CLI tidak memiliki sumber lain untuk region atau kredensial, AWS CLI gagal dengan `You must specify a region` atau `Unable to locate credentials`. Untuk terhubung dari Desktop, berikan AWS CLI sebuah profil yang dibacanya dari `~/.aws/config`:

1003 

1004<Steps>

1005 <Step title="Tambahkan profil dengan region dan sumber kredensial">

1006 Contoh ini menambahkan profil bernama `corp` yang mendapatkan kredensialnya dari program pembantu:

1007 

1008 ```ini ~/.aws/config theme={null}

1009 [profile corp]

1010 region = us-east-1

1011 credential_process = /full/path/to/your-credential-helper

1012 ```

1013 

1014 * **`region`**: berikan AWS Region dari mesin yang Anda hubungkan

1015 * **`credential_process`**: berikan path lengkap program yang mencetak kredensial dalam [format JSON yang didokumentasikan AWS](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Pilih program yang tidak memerlukan input dari Anda, karena AWS CLI menjalankannya pada setiap koneksi, termasuk saat terhubung kembali ketika Anda tidak ada.

1016 * **IAM Identity Center**: tambahkan [pengaturan IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) profil tersebut sebagai pengganti `credential_process`. Jalankan `aws sso login --profile corp` di terminal sebelum Anda terhubung, dan lagi saat proses masuk tersebut kedaluwarsa.

1017 </Step>

1018 

1019 <Step title="Sebutkan profil di ProxyCommand">

1020 Contoh ini menambahkan `--profile` ke [perintah yang didokumentasikan AWS untuk Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html):

1021 

1022 ```text ~/.ssh/config theme={null}

1023 Host i-*

1024 ProxyCommand sh -c "aws ssm start-session --profile corp --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"

1025 ```

1026 </Step>

1027 

1028 <Step title="Hubungkan lagi">

1029 Jalankan `ssh` dengan host tersebut di terminal untuk memastikan bahwa entri masih terhubung di sana, lalu hubungkan dari Desktop.

1030 </Step>

1031</Steps>

1032 

903<h5 id="raise-the-ssh-connection-timeout">1033<h5 id="raise-the-ssh-connection-timeout">

904 Menaikkan timeout koneksi SSH1034 Menaikkan timeout koneksi SSH

905</h5>1035</h5>


916 1046 

917`ssh` menggunakan nilai pertama yang ditemukannya untuk sebuah host, jadi letakkan entri tersebut di atas entri `Host *` mana pun yang mengatur `ConnectTimeout`. Untuk memastikannya, jalankan `ssh -G devbox` di terminal pada komputer Anda. Output-nya mencakup `connecttimeout 120`. Setelah Anda mengubah nilainya, keluar dari Desktop dan buka kembali.1047`ssh` menggunakan nilai pertama yang ditemukannya untuk sebuah host, jadi letakkan entri tersebut di atas entri `Host *` mana pun yang mengatur `ConnectTimeout`. Untuk memastikannya, jalankan `ssh -G devbox` di terminal pada komputer Anda. Output-nya mencakup `connecttimeout 120`. Setelah Anda mengubah nilainya, keluar dari Desktop dan buka kembali.

918 1048 

1049Jika mesin jarak jauh itu sendiri menunggu persetujuan di ponsel Anda, setujui dalam 45 detik, berapa pun `ConnectTimeout` yang Anda atur. Anda tidak dapat menaikkan batas ini, karena Desktop mengatur `ServerAliveInterval` dan `ServerAliveCountMax` sendiri, dan `ssh` kemudian menutup login yang di dalamnya mesin jarak jauh tidak mengirim apa pun selama itu. Jika yang menunggu Anda adalah jump host atau `ProxyCommand`, naikkan `ConnectTimeout` di entri mesin jarak jauh untuk mencakup waktu tersebut.

1050 

1051<h5 id="fix-a-match-host-block-that-only-desktop-applies">

1052 Memperbaiki blok `Match host` yang hanya diterapkan oleh Desktop

1053</h5>

1054 

1055Jika Desktop menggunakan pengaturan yang tidak digunakan oleh `ssh devbox` di terminal, cari blok `Match host` di atas baris `HostName` entri. Di terminal, `ssh` membaca blok di sana sebelum baris `HostName`, sehingga membandingkan blok tersebut dengan `devbox`. Desktop memberikan nilai `HostName` kepada `ssh` di baris perintah, sehingga `ssh` membandingkan blok tersebut dengan nilai itu.

1056 

1057Untuk memeriksanya, jalankan `ssh -G` di terminal pada komputer Anda dengan nilai `HostName` dan `User` milik entri di baris perintah, seperti yang dilakukan Desktop:

1058 

1059```bash theme={null}

1060ssh -G -o HostName=devbox.internal.example.com -l alice devbox

1061```

1062 

1063Bandingkan output-nya dengan output `ssh -G devbox`. Jika pengaturan blok tersebut, seperti `proxycommand`, hanya muncul di output pertama, blok tersebut hanya berlaku di Desktop. Agar Desktop juga melewatinya, tambahkan `!originalhost devbox` ke baris `Match`-nya:

1064 

1065```text ~/.ssh/config theme={null}

1066Match host *.internal.example.com !originalhost devbox

1067```

1068 

1069Untuk memastikannya, jalankan perintah pertama lagi. Pengaturan blok tersebut tidak lagi muncul di output-nya.

1070 

919<h5 id="forwarding-settings-that-desktop-leaves-off">1071<h5 id="forwarding-settings-that-desktop-leaves-off">

920 Pengaturan forwarding yang dibiarkan mati oleh Desktop1072 Pengaturan forwarding yang dibiarkan mati oleh Desktop

921</h5>1073</h5>


1154 </Step>1306 </Step>

1155 1307 

1156 <Step title="Akhiri proses">1308 <Step title="Akhiri proses">

1157 Dengan masuk sebagai pengguna tersebut di mesin jarak jauh, jalankan `kill` dengan setiap ID proses yang dicantumkan oleh [`pgrep`](#files-and-processes-on-the-remote-machine).1309 Dengan masuk sebagai pengguna tersebut di mesin jarak jauh, jalankan `kill` dengan ID setiap proses Claude Code yang dicantumkan oleh [`pgrep`](#files-and-processes-on-the-remote-machine). Setelah proses-proses tersebut hilang dari daftar, jalankan `kill` dengan ID setiap proses `server`. Jika Anda mengakhiri proses `server` terlebih dahulu, perintah yang sedang dijalankan Claude Code dapat terus berjalan.

1310 

1311 Lalu cantumkan proses pengguna yang tersisa, misalnya dengan `ps -u "$(id -un)" -f`, dan akhiri proses apa pun yang Anda kenali sebagai dimulai oleh Claude Code. Program yang ditinggalkannya di latar belakang dapat terus berjalan setelah Claude Code berakhir, tanpa muncul di daftar `pgrep`.

1158 </Step>1312 </Step>

1159 1313 

1160 <Step title="Hapus folder">1314 <Step title="Hapus folder">


1170 1324 

1171Sebelum Anda mengarsipkan sesi yang memiliki worktree, lihat [Bekerja secara paralel dengan sesi](#work-in-parallel-with-sessions).1325Sebelum Anda mengarsipkan sesi yang memiliki worktree, lihat [Bekerja secara paralel dengan sesi](#work-in-parallel-with-sessions).

1172 1326 

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

1328 Melihat pengguna yang menjalankan proses

1329</h5>

1330 

1331Program pembantu dan Claude Code berjalan sebagai pengguna yang digunakan Desktop untuk masuk melalui SSH. Menginstal dan memulainya tidak memerlukan `sudo`. Untuk memeriksa pengguna tersebut, jalankan `ps -o user= -p` di mesin jarak jauh dengan ID proses yang dicantumkan oleh [`pgrep`](#files-and-processes-on-the-remote-machine).

1332 

1333Program yang dimulai Claude Code, seperti perintah shell dan server MCP, juga dimulai sebagai pengguna tersebut. Tinjau hak pengguna tersebut di mesin jarak jauh, termasuk aturan `sudo`-nya, seperti yang Anda lakukan untuk orang yang menjalankan perintah di sana.

1334 

1173<h5 id="see-who-connected-to-the-remote-machine">1335<h5 id="see-who-connected-to-the-remote-machine">

1174 Melihat siapa yang terhubung ke mesin jarak jauh1336 Melihat siapa yang terhubung ke mesin jarak jauh

1175</h5>1337</h5>

1176 1338 

1177Untuk mengetahui siapa yang terhubung ke mesin jarak jauh, baca log server SSH di mesin tersebut, tempat login dari Desktop terlihat seperti login dari terminal. Dengan Desktop di macOS atau Linux, perkirakan satu entri setiap kali Desktop terhubung, bukan satu entri untuk setiap sesi.1339Untuk mengetahui siapa yang terhubung ke mesin jarak jauh, baca log server SSH di mesin tersebut, tempat login dari Desktop terlihat seperti login dari terminal. Dengan Desktop di macOS atau Linux, perkirakan satu entri setiap kali Desktop terhubung, bukan satu entri untuk setiap sesi.

1178 1340 

1341Anda tidak akan menemukan koneksi SSH Desktop di [metrik dan event](/docs/id/monitoring-usage#available-metrics-and-events) Claude Code. Untuk mengetahui dari metrik dan event tersebut di mesin jarak jauh mana sebuah sesi SSH berjalan, lihat [Mengatribusikan telemetri ke sesi SSH Desktop](/docs/id/monitoring-usage#attribute-telemetry-to-desktop-ssh-sessions). Untuk riwayat koneksi yang direkam Desktop sendiri, lihat [Mendapatkan log Desktop untuk masalah SSH](#get-desktops-logs-for-an-ssh-problem).

1342 

1343<h4 id="connections-that-close-before-login">

1344 Koneksi yang ditutup sebelum login

1345</h4>

1346 

1347Jika log server SSH menampilkan koneksi yang ditutup sebelum ada login, koneksi tersebut dapat berupa pengujian port SSH oleh Desktop. Desktop menguji apakah sebuah mesin merespons, misalnya setelah koneksi ke mesin tersebut gagal. Desktop membuka koneksi ke port tersebut dan langsung menutupnya, tanpa mengirim apa pun. Perkirakan satu pengujian atau beberapa berturut-turut, misalnya delapan dalam sekitar dua menit.

1348 

1349Jika tidak ada yang memblokir atau menolak alamat karena koneksi seperti itu, Anda tidak perlu melakukan apa pun terkait pengujian Desktop. Jika alamat yang digunakan Desktop untuk terhubung ditolak atau diblokir, periksa [apakah server SSH itu sendiri menolak alamat tersebut](#check-whether-the-ssh-server-itself-refuses-the-address) dan [apakah fail2ban menghitung pengujian Desktop](#check-whether-fail2ban-counts-desktops-tests).

1350 

1351<h5 id="recognize-a-test-in-the-ssh-server’s-log">

1352 Mengenali pengujian di log server SSH

1353</h5>

1354 

1355Bandingkan baris-baris di log Anda dengan baris yang ditulis server OpenSSH di Linux untuk sebuah pengujian pada `LogLevel` default, di baris tabel untuk versi server Anda. Anda dapat melihat baris di kolom terakhir sebagai gantinya jika greeting server tiba sebelum Desktop menutup koneksi:

1356 

1357| Versi OpenSSH | Baris untuk pengujian | Baris jika greeting tiba lebih dulu |

1358| - | - | - |

1359| 6.6 hingga 7.9 | Baris dengan `Did not receive identification string from 203.0.113.7` | Baris yang sama |

1360| 8.0 hingga 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |

1361| 8.3 hingga 9.4 | `error: kex_exchange_identification: Connection closed by remote host`, lalu `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, lalu `Connection reset by 203.0.113.7 port 51234` |

1362| 9.5 hingga 10.2 | `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, lalu `Connection reset by 203.0.113.7 port 51234` |

1363| 10.3 hingga 10.5 | `Connection closed by 203.0.113.7 port 51234 [preauth]` | `error: kex_exchange_identification: read: Connection reset by peer [preauth]`, lalu `Connection reset by 203.0.113.7 port 51234 [preauth]` |

1364 

1365Program lain yang membuka port dan menutupnya dapat meninggalkan baris yang sama. Jika sebuah baris memiliki alamat, periksa bahwa alamat tersebut adalah alamat yang digunakan komputer dengan Desktop untuk terhubung.

1366 

1367Baris untuk 8.0 hingga 8.2 tidak memiliki alamat. Untuk mendapatkannya, atur `LogLevel VERBOSE` di `sshd_config` dan jalankan `sshd -T | grep -i loglevel` sebagai root. Jika perintah tersebut mencetak `loglevel VERBOSE`, muat ulang server SSH. Lalu cari baris dengan `Connection from 203.0.113.7 port 51234` sebelum baris pengujian.

1368 

1369<a id="check-whether-the-ssh-server-itself-refuses-the-address" />

1370 

1371<h5 id="check-whether-the-ssh-server-itself-refuses-the-address">

1372 Memeriksa apakah server SSH itu sendiri menolak alamat tersebut

1373</h5>

1374 

1375Jika koneksi ditolak dari alamat yang digunakan bersama oleh banyak komputer dengan Desktop, cari di log server SSH baris yang berakhir seperti ini:

1376 

1377```text theme={null}

1378drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication

1379```

1380 

1381Dengan `LogLevel` default, OpenSSH 9.8 dan yang lebih baru dapat menulis baris seperti itu saat menolak alamat karena koneksi yang ditutup tanpa mencoba masuk, seperti yang dilakukan pengujian Desktop. Dengan pengaturan default, Anda tidak akan melihat baris seperti itu hanya setelah beberapa pengujian saja.

1382 

1383Untuk mencegah penolakan, atur `PerSourcePenaltyExemptList` di `sshd_config` ke alamat yang digunakan orang untuk terhubung, misalnya `PerSourcePenaltyExemptList 203.0.113.7`. Server kemudian tidak menerapkan penalti apa pun ke alamat tersebut, termasuk penalti untuk login yang gagal. Untuk memeriksa file, jalankan `sshd -T | grep -i persourcepenalt` sebagai root. Jika perintah tersebut mencetak daftar Anda, muat ulang server SSH.

1384 

1385<a id="check-whether-fail2ban-counts-desktops-tests" />

1386 

1387<h5 id="check-whether-fail2ban-counts-desktop’s-tests">

1388 Memeriksa apakah fail2ban menghitung pengujian Desktop

1389</h5>

1390 

1391Jika fail2ban 0.10.5 atau yang lebih baru memblokir alamat yang digunakan Desktop untuk terhubung, temukan mode jail Anda di `jail.conf`, `jail.local` atau di bawah `jail.d/`:

1392 

1393* **Baris `filter` yang menyebutkan mode dalam tanda kurung siku**, seperti `filter = sshd[mode=aggressive]`: gunakan mode tersebut.

1394* **Hanya baris `filter` bawaan**, dengan `[mode=%(mode)s]`: gunakan baris `mode`, atau `normal` jika tidak ada.

1395 

1396Jika modenya `normal`, fail2ban tidak menghitung baris-baris pengujian Desktop, jadi cari penyebab lain pemblokiran tersebut.

1397 

1398Untuk mode lain, salin baris-baris dari log Anda sendiri ke sebuah file di mesin jarak jauh. Salin setiap baris secara utuh, dari tanggalnya hingga akhirnya, dan kedua baris jika sebuah pengujian meninggalkan dua baris. Jalankan `fail2ban-regex` di sana dengan file tersebut dan mode jail Anda, misalnya `aggressive`:

1399 

1400```bash theme={null}

1401fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"

1402```

1403 

1404Untuk setiap kegagalan yang dihitung fail2ban, perintah tersebut mencetak alamat pada barisnya sendiri, seperti `203.0.113.7`. Dalam hal tersebut, [cegah pemblokiran](#prevent-a-ban-by-fail2ban). Jika perintah tersebut tidak mencetak apa pun, fail2ban tidak menghitung satu pun baris tersebut dalam mode itu, jadi cari penyebab lain pemblokiran tersebut.

1405 

1406<a id="prevent-a-ban-by-fail2ban" />

1407 

1408<h5 id="prevent-a-ban-by-fail2ban">

1409 Mencegah pemblokiran oleh fail2ban

1410</h5>

1411 

1412Untuk mencegah fail2ban memblokir alamat karena pengujian Desktop, ubah salah satu dari dua pengaturan jail, masing-masing dengan konsekuensinya:

1413 

1414* **`mode`**: atur ke `normal` di mana pun jail Anda mengaturnya, di baris `mode` atau di tanda kurung siku baris seperti `filter = sshd[mode=aggressive]`. Anda kehilangan setiap penghitungan yang hanya dilakukan oleh mode lain, misalnya penghitungan klien yang terhubung lalu pergi tanpa mencoba masuk.

1415* **`ignoreip`**: atur ke alamat yang digunakan orang untuk terhubung, misalnya `ignoreip = 203.0.113.7`. fail2ban kemudian tidak menghitung apa pun dari alamat tersebut, termasuk login yang gagal.

1416 

1179<h4 id="use-mcp-servers-set-up-on-the-remote-machine">1417<h4 id="use-mcp-servers-set-up-on-the-remote-machine">

1180 Menggunakan server MCP yang disiapkan di mesin jarak jauh1418 Menggunakan server MCP yang disiapkan di mesin jarak jauh

1181</h4>1419</h4>


1682 1920 

1683Untuk pesan lainnya, periksa [remote machine requirements](#remote-machine-requirements-for-ssh-sessions).1921Untuk pesan lainnya, periksa [remote machine requirements](#remote-machine-requirements-for-ssh-sessions).

1684 1922 

1923<a id="get-desktops-logs-for-an-ssh-problem" />

1924 

1925<h3 id="get-desktop’s-logs-for-an-ssh-problem">

1926 Get Desktop's logs for an SSH problem

1927</h3>

1928 

1929Anda mendapatkan `ssh.log`, rekaman Desktop atas koneksi SSH-nya, di dalam file zip berisi log Desktop yang Anda simpan dari menu **Help**. Untuk menyimpannya, buka **Help > Troubleshooting** dan pilih item untuk sistem Anda:

1930 

1931* **macOS**: **Show Logs in Finder**

1932* **Windows**: **Show Logs in File Explorer**

1933* **Linux**: **Show Logs in File Manager**

1934 

1935Periksa file-file tersebut sebelum Anda mengirimkannya, karena file tersebut dapat menyertakan nama dan detail lain dari lingkungan Anda. `<host>` dan `<user>` mewakili nama yang telah diganti oleh Desktop. Desktop tidak mengganti setiap nama, dan nama host atau nama pengguna SSH masih dapat muncul sebagaimana tertulis. Jika Anda mengirim file zip kepada seseorang, beri tahu mereka host mana yang gagal dan kapan, karena log mungkin tidak menyebutkannya.

1936 

1937File zip tidak berisi log dari program pembantu yang diinstal Desktop di mesin remote. Untuk mendapatkan log tersebut juga, salin `remote-server.log` dari folder program pembantu di bawah [`~/.claude/remote/run/`](#files-and-processes-on-the-remote-machine) di direktori home pengguna yang terhubung. Periksa juga file tersebut sebelum Anda mengirimkannya.

1938 

1685<h3 id="app-won’t-quit">1939<h3 id="app-won’t-quit">

1686 App won't quit1940 App won't quit

1687</h3>1941</h3>

env-vars.md +3 −1

Details

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

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

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

228| `CLAUDE_CODE_ARTIFACT_PUBLISH_EDITS` | Tetapkan ke `0` untuk mencegah Claude menerapkan perubahan kecil pada file [artifact](/docs/id/artifacts#update-an-artifact) sebagai bagian dari proses publikasinya. Claude kemudian mengedit file dengan tool pengeditan filenya dan memublikasikannya sebagai langkah terpisah. Memerlukan Claude Code v2.1.300 atau lebih baru |

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

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

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


332| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Ukuran konteks, dalam token, saat [idle compaction](/docs/id/settings-reference#idlecompaction) berlaku untuk sebuah percakapan (default: `200000`). Menerima bilangan bulat positif, dan nilai lain diabaikan. Nilai di bawah `100000` dinaikkan menjadi `100000`, ambang terendah. Idle compaction aktif secara default untuk percakapan yang memenuhi kondisinya. Untuk menonaktifkannya, atur `idleCompaction` ke `false`. Memerlukan Claude Code v2.1.290 atau yang lebih baru |333| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Ukuran konteks, dalam token, saat [idle compaction](/docs/id/settings-reference#idlecompaction) berlaku untuk sebuah percakapan (default: `200000`). Menerima bilangan bulat positif, dan nilai lain diabaikan. Nilai di bawah `100000` dinaikkan menjadi `100000`, ambang terendah. Idle compaction aktif secara default untuk percakapan yang memenuhi kondisinya. Untuk menonaktifkannya, atur `idleCompaction` ke `false`. Memerlukan Claude Code v2.1.290 atau yang lebih baru |

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

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

335| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Panjang maksimum dalam karakter untuk setiap deskripsi tool MCP dan instruksi setiap server MCP yang dikirim Claude Code ke model. Nilai yang Anda atur menggantikan kedua [batas default](/docs/id/mcp#for-mcp-server-authors): 4096, dan 16384 untuk deskripsi tool yang dimuat Claude melalui tool search. Claude Code memotong teks yang lebih panjang. Menerima bilangan bulat positif dalam digit biasa. Nilai lain apa pun diabaikan dan default berlaku. Memerlukan Claude Code v2.1.280 atau lebih baru |336| `CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH` | Panjang maksimum dalam karakter untuk deskripsi tool MCP dan instruksi server MCP yang dikirim Claude Code ke model. Nilai yang Anda atur menggantikan kedua [batas default](/docs/id/mcp#for-mcp-server-authors): 4096, dan 16384 untuk deskripsi tool yang dimuat Claude melalui pencarian tool. Menerima bilangan bulat positif dalam digit biasa. Nilai lain diabaikan dan default berlaku. Memerlukan Claude Code v2.1.280 atau yang lebih baru |

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

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

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


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

599* 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 Anda600* 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

600* Mengaktifkan [mod You should know](/docs/id/interactive-mode#you-should-know-suggestions)601* 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

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

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

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

errors.md +202 −10

Details

72| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |72| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |

73| `OAuth token unavailable — run /login to restore Remote Control` | [Authentication](#remote-control-couldnt-refresh-your-login) |73| `OAuth token unavailable — run /login to restore Remote Control` | [Authentication](#remote-control-couldnt-refresh-your-login) |

74| `Signed out of Claude — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |74| `Signed out of Claude — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) |

75| `Remote Control could not renew this computer's connection` | [Authentication](#remote-control-could-not-renew-this-computers-connection) |

75| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) |76| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) |

76| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |77| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

77| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |78| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |


153| `Request too large` | [Request errors](#request-too-large) |154| `Request too large` | [Request errors](#request-too-large) |

154| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) |155| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) |

155| `Image was too large` | [Request errors](#image-was-too-large) |156| `Image was too large` | [Request errors](#image-was-too-large) |

157| `API Error: an image in the conversation could not be processed and was removed` | [Request errors](#image-was-too-large) |

156| `Unable to resize image` | [Request errors](#unable-to-resize-image) |158| `Unable to resize image` | [Request errors](#unable-to-resize-image) |

157| `Request rejected as unprocessable by the model` | [Request errors](#request-rejected-as-unprocessable-by-the-model) |159| `Request rejected as unprocessable by the model` | [Request errors](#request-rejected-as-unprocessable-by-the-model) |

158| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Request errors](#pdf-errors) |160| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Request errors](#pdf-errors) |


179| `Effort '<level>' isn't available with thinking turned off on this model` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |181| `Effort '<level>' isn't available with thinking turned off on this model` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |

180| `effort '<level>' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |182| `effort '<level>' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |

181| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |183| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |

184| `Claude's response exceeded the ... output token maximum` | [Request errors](#response-exceeded-the-output-token-maximum) |

182| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |185| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |

183| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |186| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |

184| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |187| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |


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

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

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

205| `Couldn't tell whether --bg is a flag or text here, so nothing was started` | [Command-line errors](#couldnt-tell-whether-bg-is-a-flag-or-text) |

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

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

204| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |208| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |


217| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |221| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) |

218| `Error: Workspace not trusted` saat memulai Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |222| `Error: Workspace not trusted` saat memulai Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) |

219| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |223| `` `<flag>` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) |

224| `--sandbox is not supported by claude remote-control` / `--no-sandbox is not supported by claude remote-control` | [Command-line errors](#sandbox-is-not-supported-by-claude-remote-control) |

220| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) |225| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) |

221| `Could not read Claude Code config` | [Command-line errors](#could-not-read-claude-code-config) |226| `Could not read Claude Code config` | [Command-line errors](#could-not-read-claude-code-config) |

222| `Could not import <server>: <reason>` | [Command-line errors](#could-not-import-a-server-from-claude-desktop) |227| `Could not import <server>: <reason>` | [Command-line errors](#could-not-import-a-server-from-claude-desktop) |


233| `Shell command failed for pattern "..."`, dari `/security-review` atau skill apa pun yang menyuntikkan konteks dinamis | [Command-line errors](#security-review-fails-without-origin-head) |238| `Shell command failed for pattern "..."`, dari `/security-review` atau skill apa pun yang menyuntikkan konteks dinamis | [Command-line errors](#security-review-fails-without-origin-head) |

234| `Shell command permission check failed for pattern "..."`, dari skill yang menyuntikkan konteks dinamis | [Command-line errors](#security-review-fails-without-origin-head) |239| `Shell command permission check failed for pattern "..."`, dari skill yang menyuntikkan konteks dinamis | [Command-line errors](#security-review-fails-without-origin-head) |

235| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Command-line errors](#security-review-fails-without-origin-head) |240| ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Command-line errors](#security-review-fails-without-origin-head) |

241| `No shell command in <name> was run, because the <tool> tool does not accept one of them` | [Command-line errors](#no-shell-command-was-run) |

236| `Input must be provided either through stdin or as a prompt argument when using --print` | [Command-line errors](#input-must-be-provided-when-using-print) |242| `Input must be provided either through stdin or as a prompt argument when using --print` | [Command-line errors](#input-must-be-provided-when-using-print) |

237| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Command-line errors](#claude-code-cant-read-the-keyboard-here) |243| `Claude Code can't read the keyboard here: stdin is not a terminal` | [Command-line errors](#claude-code-cant-read-the-keyboard-here) |

238| `Error: Input contained only whitespace` | [Command-line errors](#input-contained-only-whitespace) |244| `Error: Input contained only whitespace` | [Command-line errors](#input-contained-only-whitespace) |


367| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) |373| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) |

368| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) |374| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) |

369| `hook needs quotes around a path with a space` | [Configuration warnings](#hook-needs-quotes-around-a-path-with-a-space) |375| `hook needs quotes around a path with a space` | [Configuration warnings](#hook-needs-quotes-around-a-path-with-a-space) |

376| `Instruction file not loaded` | [Configuration warnings](#instruction-file-not-loaded) |

370| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Configuration warnings](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |377| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Configuration warnings](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |

371| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Configuration warnings](#skill-or-command-name-refused) |378| `N skill or command names refused: run with --debug to see which ([names]), rename, then restart` | [Configuration warnings](#skill-or-command-name-refused) |

372| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) |379| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) |


377| `Your organization's managed settings allow Claude Code to use: <providers>` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |384| `Your organization's managed settings allow Claude Code to use: <providers>` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |

378| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |385| `Your organization's managed settings allow Claude Code to use no API provider at all` | [Configuration warnings](#managed-settings-dont-allow-this-api-provider) |

379| `MCP server <name> is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) |386| `MCP server <name> is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) |

387| `"<name>" is a reserved MCP server name and was not loaded` | [Configuration warnings](#mcp-server-name-is-reserved) |

380| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |388| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |

381| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |389| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |

382| `Unable to read managed policy settings` | [Configuration warnings](#unable-to-read-managed-policy-settings) |390| `Unable to read managed policy settings` | [Configuration warnings](#unable-to-read-managed-policy-settings) |

391| `Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:` | [Configuration warnings](#managed-settings-hooks-not-loaded) |

383| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Configuration warnings](#otelheadershelper-failed) |392| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Configuration warnings](#otelheadershelper-failed) |

384| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |393| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

385| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Configuration warnings](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |394| `API Error: ANTHROPIC_FOUNDRY_RESOURCE must be a Foundry resource name` | [Configuration warnings](#anthropic-foundry-resource-must-be-a-foundry-resource-name) |


389| `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) |398| `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) |

390| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Configuration warnings](#denying-bash-also-turns-off-the-powershell-tool) |399| `Denying Bash also turns off the PowerShell tool, so Claude has neither` | [Configuration warnings](#denying-bash-also-turns-off-the-powershell-tool) |

391| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) |400| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) |

401| `Model "<model>" isn't recognized · context assumed to be 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

402| `Claude Code doesn't recognize the model "<model>", so it assumes a context window of 200k tokens` | [Correct the window for a gateway or custom model ID](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

392| `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) |403| `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) |

404| `is ignored — managed settings set allowManagedReadPathsOnly` / `is ignored — managed settings set allowManagedDomainsOnly` | [Configuration warnings](#sandbox-allow-entries-are-ignored-under-a-managed-lock) |

393| `Stale sandbox mask files left by a killed session` | [Configuration warnings](#stale-sandbox-mask-files-left-by-a-killed-session) |405| `Stale sandbox mask files left by a killed session` | [Configuration warnings](#stale-sandbox-mask-files-left-by-a-killed-session) |

394| Respons tampak berkualitas lebih rendah dari biasanya | [Response quality](#responses-seem-lower-quality-than-usual) |406| Respons tampak berkualitas lebih rendah dari biasanya | [Response quality](#responses-seem-lower-quality-than-usual) |

395 407 


1209 1221 

1210Sebelum v2.1.238, Claude Code melaporkan kasus yang sekarang menyebutkan `Signed out of Claude` sebagai `JWT refresh failed: no OAuth token — run /login`, dan menghentikan Remote Control dengan `Claude.ai login expired — run /login to restore Remote Control` segera setelah satu refresh login tidak mendapat jawaban.1222Sebelum v2.1.238, Claude Code melaporkan kasus yang sekarang menyebutkan `Signed out of Claude` sebagai `JWT refresh failed: no OAuth token — run /login`, dan menghentikan Remote Control dengan `Claude.ai login expired — run /login to restore Remote Control` segera setelah satu refresh login tidak mendapat jawaban.

1211 1223 

1224<h3 id="remote-control-could-not-renew-this-computers-connection">

1225 Remote Control could not renew this computer's connection

1226</h3>

1227 

1228Peringatan ini muncul di terminal yang menjalankan [`claude remote-control`](/docs/id/remote-control#start-a-remote-control-session) ketika server tidak dapat menggunakan login claude.ai Anda untuk memperbarui kredensial koneksinya sebelum kedaluwarsa. Kalimat terakhir peringatan menyebutkan berapa lama kredensial saat ini masih berfungsi, atau bahwa kredensial tersebut sudah kedaluwarsa:

1229 

1230```text theme={null}

1231Remote Control could not renew this computer's connection: claude.ai did not accept the sign-in it uses. Run `claude /login` to sign in again. The connection keeps working for about 26 hours; if it still cannot sign in then, it stops.

1232```

1233 

1234**Yang perlu dilakukan:**

1235 

1236* Jika peringatan meminta Anda menjalankan `claude /login`, buka terminal lain di mesin yang menjalankan server, jalankan `claude /login` di sana, dan masuk dengan akun claude.ai Anda

1237* Jika server masih tidak dapat masuk setelah kredensial koneksi kedaluwarsa, server mencetak kesalahan yang berisi `Poll: Authentication failed (401)` dan berhenti. Masuk kembali seperti yang disebutkan dalam kalimat kedua peringatan, lalu jalankan `claude remote-control` lagi di terminal tempat server berhenti.

1238 

1212<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1239<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1213 Remote Control stopped because the signed-in account changed1240 Remote Control stopped because the signed-in account changed

1214</h3>1241</h3>


2279* Nonaktifkan server MCP yang tidak Anda gunakan dengan `/mcp disable <name>` untuk menghapus definisi tool mereka dari konteks2306* Nonaktifkan server MCP yang tidak Anda gunakan dengan `/mcp disable <name>` untuk menghapus definisi tool mereka dari konteks

2280* Pangkas file memori `CLAUDE.md` besar, atau pindahkan instruksi ke [aturan bersifat jalur](/docs/id/memory#path-specific-rules) yang dimuat hanya ketika relevan2307* Pangkas file memori `CLAUDE.md` besar, atau pindahkan instruksi ke [aturan bersifat jalur](/docs/id/memory#path-specific-rules) yang dimuat hanya ketika relevan

2281* Auto-compact aktif secara default dan biasanya mencegah kesalahan ini. Jika Anda mematikannya di `/config` atau dengan [`DISABLE_AUTO_COMPACT`](/docs/id/env-vars), aktifkan kembali. Jika Anda tetap mematikannya, jalankan `/compact` sendiri sebelum window penuh.2308* Auto-compact aktif secara default dan biasanya mencegah kesalahan ini. Jika Anda mematikannya di `/config` atau dengan [`DISABLE_AUTO_COMPACT`](/docs/id/env-vars), aktifkan kembali. Jika Anda tetap mematikannya, jalankan `/compact` sendiri sebelum window penuh.

2309* Jika kesalahan muncul di dekat 200K token pada model yang menerima lebih banyak, salah satu penyebabnya adalah ID model yang tidak dikenali Claude Code. Claude Code mengasumsikan jendela 200K untuk ID seperti itu, jadi untuk terus bekerja melewati titik tersebut, [berikan context window model yang sebenarnya](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id).

2282 2310 

2283Lihat [Jelajahi context window](/docs/id/context-window) untuk tampilan interaktif tentang bagaimana konteks terisi.2311Lihat [Jelajahi context window](/docs/id/context-window) untuk tampilan interaktif tentang bagaimana konteks terisi.

2284 2312 


2340```text theme={null}2368```text theme={null}

2341Image was too large. Double press esc to go back and try again with a smaller image.2369Image was too large. Double press esc to go back and try again with a smaller image.

2342API Error: 400 ... image dimensions exceed max allowed size2370API Error: 400 ... image dimensions exceed max allowed size

2371API Error: an image in the conversation could not be processed and was removed.

2343```2372```

2344 2373 

2345Claude Code mengganti gambar yang tidak dapat diproses dengan placeholder teks dan mencoba ulang, jadi pesan berikutnya berhasil. Pada versi sebelum 2.1.142, gambar yang ditempel dapat tetap berada dalam percakapan dan mengulangi kesalahan yang sama pada setiap pesan berikutnya. Untuk pulih pada versi tersebut, tekan Esc dua kali dan mundur melampaui giliran tempat gambar ditambahkan.2374Baris `could not be processed and was removed` berarti API menolak sebuah gambar dalam percakapan, seperti gambar yang melewati batas ukuran atau dimensi.

2375 

2376Jika salah satu kesalahan ini terus muncul kembali, perbarui Claude Code. Pada versi lama, kesalahan gambar dapat berulang karena alasan seperti berikut:

2377 

2378* Sebelum v2.1.299, dalam percakapan panjang dengan banyak gambar, Claude Code dapat menghapus gambar yang terakhir Anda lampirkan alih-alih gambar yang melewati batas. Baris `was removed` kemudian berulang di setiap giliran, dan Claude tidak melihat gambar baru Anda.

2379* Sebelum v2.1.299, di VS Code, aplikasi Desktop, dan Agent SDK, gambar yang Anda lampirkan saat Claude sedang bekerja tidak mendapatkan pengubahan ukuran yang didapatkan gambar lampiran lainnya. Gambar tersebut mencapai API dalam ukuran aslinya, yang menyebabkan kesalahan gambar berulang dalam percakapan panjang.

2380* Sebelum v2.1.166, gambar yang ditempel dapat tetap berada dalam percakapan, dan kesalahan yang sama kemudian berulang di setiap pesan berikutnya

2346 2381 

2347**Yang harus dilakukan:**2382**Yang harus dilakukan:**

2348 2383 


2800* Naikkan [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/id/env-vars) di atas thinking budget2835* Naikkan [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/id/env-vars) di atas thinking budget

2801* Lihat [Extended thinking](/docs/id/model-config#extended-thinking) untuk bagaimana budget berinteraksi dengan panjang output2836* Lihat [Extended thinking](/docs/id/model-config#extended-thinking) untuk bagaimana budget berinteraksi dengan panjang output

2802 2837 

2838<h3 id="response-exceeded-the-output-token-maximum">

2839 Response exceeded the output token maximum

2840</h3>

2841 

2842Balasan Claude mencapai jumlah token output terbesar yang diizinkan permintaan dan terpotong di sana:

2843 

2844```text theme={null}

2845API Error: Claude's response exceeded the ... output token maximum. To configure this behavior, set the CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable.

2846API Error: Claude's response exceeded the 64000 output token maximum for a request sent without streaming. The CLAUDE_CODE_MAX_OUTPUT_TOKENS environment variable cannot raise this limit.

2847```

2848 

2849Bentuk yang menyebut `a request sent without streaming` berarti permintaan streaming gagal dan Claude Code mengirim ulang tanpa streaming, yang membatasi balasan hingga 64.000 token output. Sebelum v2.1.299, balasan yang terpotong pada permintaan yang dikirim ulang seperti itu mengakhiri giliran tanpa pesan ini, seolah-olah balasannya lengkap.

2850 

2851**Yang harus dilakukan:**

2852 

2853* Jika Claude menulis sebagian teks sebelum balasan terpotong, balas `continue` dalam sesi interaktif untuk meminta sisanya. Teks tersebut tetap ada dalam percakapan.

2854* Jika pesannya meminta Anda mengatur `CLAUDE_CODE_MAX_OUTPUT_TOKENS`, lihat [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/id/env-vars) untuk bagaimana nilainya dibatasi dan [Mengatur environment variable](/docs/id/env-vars#set-environment-variables) untuk tempat mengaturnya

2855* Agar setiap balasan tetap di bawah batas, minta Claude memberikan output dalam bagian-bagian yang lebih kecil, seperti satu file atau satu bagian per balasan

2856 

2803<h3 id="tool-use-or-thinking-block-mismatch">2857<h3 id="tool-use-or-thinking-block-mismatch">

2804 Ketidakcocokan blok penggunaan tool atau thinking2858 Ketidakcocokan blok penggunaan tool atau thinking

2805</h3>2859</h3>


2936Langkah-langkah keselamatan model menandai konten dalam percakapan sebagai topik keamanan siber. Pesan menyebutkan model yang menandai permintaan:2990Langkah-langkah keselamatan model menandai konten dalam percakapan sebagai topik keamanan siber. Pesan menyebutkan model yang menandai permintaan:

2937 2991 

2938```text theme={null}2992```text theme={null}

2939API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2993API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2940```2994```

2941 2995 

2942Jika pesan menyertakan baris `` Details: `[reasoning_extraction]` ``, lihat [Pengaman menandai permintaan untuk penalaran Claude](#safeguards-flagged-a-request-for-claudes-reasoning).2996Jika pesan menyertakan baris `` Details: `[reasoning_extraction]` ``, lihat [Pengaman menandai permintaan untuk penalaran Claude](#safeguards-flagged-a-request-for-claudes-reasoning).


2945 2999 

2946Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), penandaan keamanan siber menghasilkan pesan [Penolakan Kebijakan Penggunaan](#usage-policy-refusal) sebagai gantinya.3000Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), penandaan keamanan siber menghasilkan pesan [Penolakan Kebijakan Penggunaan](#usage-policy-refusal) sebagai gantinya.

2947 3001 

2948Pengaman itu sendiri berada di sisi server dan sudah ada sebelum v2.1.203; rilis klien sejak itu hanya mengubah susunan kata pesannya.

2949Dari v2.1.203 hingga v2.1.218, pesan berbunyi `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` diikuti oleh tautan help-center yang sama, dan sesi interaktif menambahkan `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

2950Sebelum v2.1.203, itu berbunyi `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` diikuti oleh tautan formulir pengecualian.

2951 

2952**Yang harus dilakukan:**3002**Yang harus dilakukan:**

2953 3003 

2954* Jika pekerjaan Anda memerlukan konten ini, ajukan permohonan akses melalui [Program Verifikasi Siber](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)3004* Jika pekerjaan Anda memerlukan konten ini, ajukan permohonan akses melalui [Program Verifikasi Siber](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)

2955* Jika permintaan Anda bukan tentang topik keamanan siber, jalankan `/feedback` untuk melaporkan positif palsu3005* Jika permintaan Anda bukan tentang topik keamanan siber, jalankan `/feedback` untuk melaporkan positif palsu

2956* Untuk terus bekerja dalam sesi yang sama, tekan Esc dua kali atau jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang memicu penandaan, lalu ambil pendekatan berbeda. Lihat [Checkpointing](/docs/id/checkpointing).3006* Untuk terus bekerja dalam sesi yang sama, tekan Esc dua kali atau jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang memicu penandaan, lalu ambil pendekatan berbeda. Lihat [Checkpointing](/docs/id/checkpointing).

2957 3007 

3008Jika pesan yang Anda lihat memiliki susunan kata seperti salah satu dari berikut ini, itu adalah penandaan yang sama pada versi Claude Code yang lebih lama:

3009 

3010* Dari v2.1.219 hingga v2.1.296, pesan tersebut juga dapat menyertakan `Apply to the Cyber Verification Program to reduce these interruptions.` sebelum kalimat penutupnya

3011* Dari v2.1.203 hingga v2.1.218, pesan tersebut berbunyi `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` diikuti oleh tautan pusat bantuan yang sama. Dalam sesi interaktif, pesan tersebut dilanjutkan dengan `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

3012* Sebelum v2.1.203, pesan tersebut berbunyi `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` diikuti oleh tautan formulir pengecualian

3013 

2958<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">3014<h3 id="safeguards-flagged-a-request-for-claudes-reasoning">

2959 Pengaman menandai permintaan untuk penalaran Claude3015 Pengaman menandai permintaan untuk penalaran Claude

2960</h3>3016</h3>


3012* Hapus `-p` atau `--print`. `--bg` menerima prompt sebagai argumen posisionalnya, sehingga `claude --bg "<task>"` adalah perintah lengkapnya. Lihat [Dispatch agent baru dari shell Anda](/docs/id/agent-view#from-your-shell).3068* Hapus `-p` atau `--print`. `--bg` menerima prompt sebagai argumen posisionalnya, sehingga `claude --bg "<task>"` adalah perintah lengkapnya. Lihat [Dispatch agent baru dari shell Anda](/docs/id/agent-view#from-your-shell).

3013* Untuk menjalankan prompt secara non-interaktif dan mencetak hasilnya alih-alih membuat sesi latar belakang, hapus `--bg` dan jalankan `claude -p "<task>"`3069* Untuk menjalankan prompt secara non-interaktif dan mencetak hasilnya alih-alih membuat sesi latar belakang, hapus `--bg` dan jalankan `claude -p "<task>"`

3014 3070 

3071<h3 id="couldnt-tell-whether-bg-is-a-flag-or-text">

3072 Couldn't tell whether `--bg` is a flag or text

3073</h3>

3074 

3075Anda menjalankan `claude` dengan `--bg` atau `--background` pada posisi di mana Claude Code tidak dapat membedakan apakah Anda memaksudkannya sebagai flag latar belakang atau sebagai teks. Perintah tersebut tidak memulai apa pun, mencetak baris ini, dan keluar dengan kode 1:

3076 

3077```text theme={null}

3078Couldn't tell whether --bg is a flag or text here, so nothing was started. To start a background session put it first: claude --bg <prompt>

3079```

3080 

3081Jika Anda mengetik `--background`, baris tersebut akan menyebut `--background` sebagai gantinya.

3082 

3083**Yang harus dilakukan:**

3084 

3085* Untuk memulai [sesi latar belakang](/docs/id/agent-view#from-your-shell), jalankan kembali perintah di shell Anda dengan flag diletakkan pertama: `claude --bg --name nightly-audit "<task>"`

3086 

3015<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">3087<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

3016 Konflik antara flag system prompt dan bentuk file-nya3088 Konflik antara flag system prompt dan bentuk file-nya

3017</h3>3089</h3>


3296 3368 

3297Sebelum v2.1.248, `claude remote-control` tidak menerima flag-nya sendiri ketika flag global muncul lebih dulu, dan perintah gagal dengan kesalahan `unknown option`.3369Sebelum v2.1.248, `claude remote-control` tidak menerima flag-nya sendiri ketika flag global muncul lebih dulu, dan perintah gagal dengan kesalahan `unknown option`.

3298 3370 

3371<h3 id="sandbox-is-not-supported-by-claude-remote-control">

3372 `--sandbox` or `--no-sandbox` is not supported by claude remote-control

3373</h3>

3374 

3375Error ini berarti perintah yang memulai server [Remote Control](/docs/id/remote-control) Anda meneruskan `--sandbox` atau `--no-sandbox` setelah `remote-control`, dan `claude remote-control` tidak menerima kedua flag tersebut. Server keluar dengan kode 1 alih-alih dimulai:

3376 

3377```text theme={null}

3378Error: --sandbox is not supported by claude remote-control. The flag had no effect and was removed. To sandbox sessions, set sandbox.enabled to true in settings.

3379Error: --no-sandbox is not supported by claude remote-control. The flag had no effect and was removed. Remove it from the command.

3380```

3381 

3382**Yang harus dilakukan:**

3383 

3384* Hapus flag dari perintah, termasuk di skrip atau definisi layanan yang memulai server untuk Anda, lalu jalankan lagi

3385* Untuk menjalankan sesi yang dimulai server dalam sandbox, aktifkan [sandboxing](/docs/id/sandboxing) dengan mengatur [`sandbox.enabled`](/docs/id/settings-reference#sandbox-enabled) ke `true` dalam [file pengaturan](/docs/id/settings#where-settings-live)

3386 

3387Kedua flag dihapus dari `claude remote-control` di v2.1.300, sehingga perintah yang ditulis untuk versi sebelumnya masih dapat memuat salah satunya.

3388 

3299<h3 id="claude-import-is-not-yet-available-in-this-build">3389<h3 id="claude-import-is-not-yet-available-in-this-build">

3300 claude import belum tersedia dalam build ini3390 claude import belum tersedia dalam build ini

3301</h3>3391</h3>


3542* Remote yang HEAD di sisi server-nya menunjuk ke branch yang tidak pernah di-push siapa pun3632* Remote yang HEAD di sisi server-nya menunjuk ke branch yang tidak pernah di-push siapa pun

3543* Repositori tanpa remote `origin`, atau yang tidak pernah Anda fetch3633* Repositori tanpa remote `origin`, atau yang tidak pernah Anda fetch

3544 3634 

3545Claude Code menampilkan kesalahan yang sama untuk skill apa pun yang [menyisipkan konteks dinamis](/docs/id/skills#when-an-injected-command-fails), dan perintah sisipan yang gagal membatalkan pemanggilan skill tersebut. Dua string terkait muncul bahkan sebelum perintah dijalankan:3635Claude Code menampilkan error yang sama untuk skill apa pun yang [menyisipkan konteks dinamis](/docs/id/skills#when-an-injected-command-fails), dan perintah sisipan yang gagal membatalkan pemanggilan skill tersebut.

3636 

3637String serupa muncul sebelum perintah dijalankan sama sekali:

3546 3638 

3547* `Shell command permission check failed for pattern "..."`: pemeriksaan izin perintah tidak mengizinkannya. [Pemeriksaan izin pada perintah sisipan](/docs/id/skills#permission-checks-on-injected-commands) menjelaskan hasil mana yang membatalkan di setiap mode izin dan cara menyetujui perintah sebelumnya dengan `allowed-tools`3639* `Shell command permission check failed for pattern "..."`: pemeriksaan izin perintah tidak mengizinkannya. [Pemeriksaan izin pada perintah sisipan](/docs/id/skills#permission-checks-on-injected-commands) menjelaskan hasil mana yang membatalkan di setiap mode izin dan cara menyetujui perintah sebelumnya dengan `allowed-tools`

3548* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter skill menuntut bash di mesin yang tidak memilikinya. Instal Git for Windows atau ubah frontmatter menjadi `shell: powershell`. Lihat [Cara perintah sisipan dijalankan](/docs/id/skills#how-injected-commands-run)3640* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter skill menuntut bash pada mesin yang tidak memilikinya. Instal Git for Windows atau ubah frontmatter menjadi `shell: powershell`. Lihat [Cara perintah sisipan dijalankan](/docs/id/skills#how-injected-commands-run)

3641* `No shell command in <name> was run`: salah satu perintah `!` di file mengandung karakter kontrol mentah selain tab atau baris baru, sehingga tidak ada satu pun yang dijalankan. Lihat [cara menemukan dan menghapus karakter tersebut](#no-shell-command-was-run)

3549 3642 

3550**Yang perlu dilakukan:**3643**Yang perlu dilakukan:**

3551 3644 


3553* Jika Anda lebih memilih tidak menyebutkan branch, jalankan `git fetch origin` lalu `git remote set-head origin --auto`, yang menanyakan kepada remote branch mana yang menjadi default-nya. Perintah ini gagal dengan `error: Cannot determine remote HEAD` ketika remote tidak mengiklankan branch default, karena remote kosong atau HEAD-nya menunjuk ke branch yang tidak pernah di-push siapa pun; sebutkan branch secara eksplisit sebagai gantinya. Perintah ini gagal dengan `error: Not a valid ref` ketika clone Anda tidak melakukan fetch branch tersebut; perluas refspec seperti di atas terlebih dahulu.3646* Jika Anda lebih memilih tidak menyebutkan branch, jalankan `git fetch origin` lalu `git remote set-head origin --auto`, yang menanyakan kepada remote branch mana yang menjadi default-nya. Perintah ini gagal dengan `error: Cannot determine remote HEAD` ketika remote tidak mengiklankan branch default, karena remote kosong atau HEAD-nya menunjuk ke branch yang tidak pernah di-push siapa pun; sebutkan branch secara eksplisit sebagai gantinya. Perintah ini gagal dengan `error: Not a valid ref` ketika clone Anda tidak melakukan fetch branch tersebut; perluas refspec seperti di atas terlebih dahulu.

3554* Jika repositori tidak memiliki remote, tambahkan dengan `git remote add origin <url>` dan lakukan fetch sebelum membuat ref. Jika remote kosong, push branch Anda terlebih dahulu dengan `git push -u origin HEAD` dan sebutkan branch tersebut dalam perintah set-head; `origin/HEAD` kemudian menunjuk ke branch yang baru saja Anda push, sehingga `/security-review` melihat diff kosong hingga branch menyimpang darinya.3647* Jika repositori tidak memiliki remote, tambahkan dengan `git remote add origin <url>` dan lakukan fetch sebelum membuat ref. Jika remote kosong, push branch Anda terlebih dahulu dengan `git push -u origin HEAD` dan sebutkan branch tersebut dalam perintah set-head; `origin/HEAD` kemudian menunjuk ke branch yang baru saja Anda push, sehingga `/security-review` melihat diff kosong hingga branch menyimpang darinya.

3555 3648 

3649<h3 id="no-shell-command-was-run">

3650 No shell command in a skill or command was run

3651</h3>

3652 

3653Salah satu [perintah konteks dinamis](/docs/id/skills#inject-dynamic-context) `` !`<command>` `` dalam file skill atau perintah kustom mengandung karakter kontrol mentah selain tab atau baris baru. Claude Code menolak seluruh pemanggilan sebelum perintah mana pun di file tersebut dijalankan.

3654 

3655Pesan menyebutkan tool shell yang seharusnya menjalankan perintah-perintah tersebut, Bash atau PowerShell, dan diakhiri dengan perintah yang ditolak. Setiap karakter tersebut diganti dengan `�` sehingga Anda dapat melihat lokasinya:

3656 

3657```text theme={null}

3658No shell command in /my-skill was run, because the Bash tool does not accept one of them: command contains control characters that would be hidden in the approval dialog. Unprintable characters are shown as � below: remove them from the skill or command file, or from the arguments or options substituted into it.

3659build.sh --target�dist

3660```

3661 

3662**Yang harus dilakukan:**

3663 

3664* Temukan setiap `�` dalam perintah yang dikutip di akhir pesan. Hapus karakter yang diwakilinya dari file skill atau perintah, atau dari argumen atau opsi yang disubstitusikan ke dalam file.

3665 

3556<h3 id="input-must-be-provided-when-using-print">3666<h3 id="input-must-be-provided-when-using-print">

3557 Input harus diberikan saat menggunakan `--print`3667 Input harus diberikan saat menggunakan `--print`

3558</h3>3668</h3>


3694 3804 

3695* **Anda tidak memberikan branch dasar**: Claude Code membandingkan dengan branch default repositori dan menyarankan untuk memberikan branch dasar Anda secara eksplisit, seperti pada contoh di atas3805* **Anda tidak memberikan branch dasar**: Claude Code membandingkan dengan branch default repositori dan menyarankan untuk memberikan branch dasar Anda secara eksplisit, seperti pada contoh di atas

3696* **Anda memberikan branch dasar yang sudah ada di clone Anda**: petunjuknya berbunyi ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3806* **Anda memberikan branch dasar yang sudah ada di clone Anda**: petunjuknya berbunyi ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3697* **Anda meneruskan base branch yang tidak ada di clone Anda**: Claude Code mengambilnya dari origin sebelum membandingkan. Petunjuknya berbunyi ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; ketika Claude Code tidak dapat mengetahui apakah clone Anda shallow, ia justru menyarankan `git fetch --unshallow origin`. Sebelum v2.1.221, petunjuk tersebut menyarankan `git fetch --unshallow origin` untuk setiap base branch yang diambil, dan pada clone yang lengkap perintah tersebut gagal dengan `fatal: --unshallow on a complete repository does not make sense`.3807* **Anda meneruskan base branch yang tidak ada di clone Anda**: Claude Code melakukan fetch dari origin sebelum membandingkan. Petunjuk berbunyi ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; ketika Claude Code tidak dapat mengetahui apakah clone Anda shallow, ia menyarankan `git fetch --unshallow origin` sebagai gantinya. Sebelum v2.1.221, petunjuk menyarankan `git fetch --unshallow origin` untuk setiap base branch yang di-fetch, dan pada clone yang lengkap perintah tersebut gagal dengan `fatal: --unshallow on a complete repository does not make sense`.

3698 3808 

3699**Yang perlu dilakukan:**3809**Yang perlu dilakukan:**

3700 3810 


4124 Marketplace name is another spelling of a reserved name4234 Marketplace name is another spelling of a reserved name

4125</h3>4235</h3>

4126 4236 

4127Nama marketplace bukan sendiri nama yang dicadangkan, tetapi Claude Code memperlakukannya sebagai ejaan lain dari satu. [Reserved names](/docs/id/plugins/marketplace-reference#reserved-name-spellings) mencantumkan ejaan mana yang dihitung sebagai nama yang dicadangkan. Claude Code menolak nama seperti itu ketika Anda menambahkan marketplace:4237Nama marketplace bukan sendiri nama yang dicadangkan, tetapi Claude Code memperlakukannya sebagai ejaan lain dari salah satu nama yang dicadangkan. [Nama yang dicadangkan](/docs/id/plugins/marketplace-reference#reserved-name-spellings) mencantumkan ejaan mana yang dihitung sebagai nama yang dicadangkan. Claude Code menolak nama seperti itu ketika Anda menambahkan marketplace:

4128 4238 

4129```text theme={null}4239```text theme={null}

4130Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.4240Failed to add marketplace: "claude.code.plugins" is another spelling of "claude-code-plugins", a reserved marketplace name.


5499 5609 

5500* Dalam `command` dari hook yang menjalankan skrip yang disebutkan notifikasi, apit jalur dengan tanda kutip ganda. Dalam file JSON, tuliskan sebagai `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.5610* Dalam `command` dari hook yang menjalankan skrip yang disebutkan notifikasi, apit jalur dengan tanda kutip ganda. Dalam file JSON, tuliskan sebagai `"command": "python3 \"${CLAUDE_PLUGIN_ROOT}/hooks/check.py\""`.

5501 5611 

5612<h3 id="instruction-file-not-loaded">

5613 Instruction file not loaded

5614</h3>

5615 

5616Pemberitahuan dalam tampilan percakapan sesi interaktif ini berarti sebuah [file memori](/docs/id/memory#how-claude-md-files-load) yang ada tidak dimuat. Sebuah pembatasan baca sedang berlaku.

5617 

5618```text theme={null}

5619Instruction file not loaded (a Read deny rule covers it):

5620path: .claude/rules/shared.md

5621```

5622 

5623Bagian dalam tanda kurung menyebutkan alasannya, misalnya:

5624 

5625* **`a Read deny rule covers it`**: sebuah [aturan deny](/docs/id/permissions#read-and-edit) `Read` cocok dengan jalur file seperti yang tertulis atau dengan tujuan yang diarahkan oleh link pada file tersebut

5626* **`it's read from outside your working directories, where reads are blocked`**: file diselesaikan ke luar [direktori kerja](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) sementara [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) aktif

5627* **`where it leads couldn't be worked out`**: misalnya, file adalah link yang mengarah kembali ke dirinya sendiri, secara langsung atau melalui link lain

5628 

5629Ketika file memori milik sebuah subdirektori tidak dapat dimuat saat Claude bekerja dengan file di sana, baris yang sama muncul dalam percakapan selama giliran tersebut. Ketika lebih banyak file yang ditahan daripada yang disebutkan baris-baris tersebut, baris terakhir menghitung sisanya, seperti `and 3 more instruction files not loaded`.

5630 

5631**Yang harus dilakukan:**

5632 

5633* Tidak ada, jika pembatasan tersebut memang disengaja: sesi berjalan tanpa instruksi dari file tersebut.

5634* Untuk memuat file yang ditahan karena `a Read deny rule covers it`, [hapus atau persempit aturan tersebut](/docs/id/permissions#manage-permissions). Kemudian mulai sesi baru.

5635* Untuk memuat file yang ditahan karena `it's read from outside your working directories, where reads are blocked`, pindahkan file tersebut atau target link-nya ke dalam direktori kerja. Kemudian mulai sesi baru.

5636* Untuk memuat file yang ditahan karena `where it leads couldn't be worked out`, periksa apakah file tersebut adalah link yang mengarah kembali ke dirinya sendiri. Jika ya, arahkan link ke file yang ada atau letakkan file biasa di tempatnya. Kemudian mulai sesi baru.

5637 

5638Sebelum v2.1.292, pemberitahuan menyebutkan file di akhir baris yang sama setelah alasannya.

5639 

5502<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">5640<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

5503 Skill, command, atau workflow tidak dimuat karena namanya dicadangkan5641 Skill, command, atau workflow tidak dimuat karena namanya dicadangkan

5504</h3>5642</h3>


5683 5821 

5684Sebelum v2.1.257, **Reconnect** dan re-enable di `/mcp` dapat menghubungkan server yang pembaruan kebijakan mid-session memblokir.5822Sebelum v2.1.257, **Reconnect** dan re-enable di `/mcp` dapat menghubungkan server yang pembaruan kebijakan mid-session memblokir.

5685 5823 

5824<h3 id="mcp-server-name-is-reserved">

5825 Nama server MCP dicadangkan

5826</h3>

5827 

5828Pesan ini menyebutkan salah satu server MCP Anda, yang namanya termasuk di antara nama yang dicadangkan Claude Code, seperti nama server bawaannya:

5829 

5830```text theme={null}

5831"workspace" is a reserved MCP server name and was not loaded

5832```

5833 

5834**Yang harus dilakukan:**

5835 

5836* Ganti nama server di tempat Anda mendefinisikannya, misalnya dari `workspace` menjadi `my-workspace`

5837* Untuk nama cadangan lain yang harus dihindari, lihat [peringatan konfigurasi MCP](/docs/id/mcp#configuration-warnings)

5838 

5686<h3 id="managed-settings-document-could-not-be-parsed">5839<h3 id="managed-settings-document-could-not-be-parsed">

5687 Dokumen pengaturan yang dikelola tidak dapat diuraikan5840 Dokumen pengaturan yang dikelola tidak dapat diuraikan

5688</h3>5841</h3>


5737 5890 

5738Sebelum v2.1.285, hanya sesi yang masuk dengan kredensial claude.ai atau Claude Console yang keluar dengan pesan ini, dan pembacaan yang ditolak sistem operasi juga menghasilkannya.5891Sebelum v2.1.285, hanya sesi yang masuk dengan kredensial claude.ai atau Claude Console yang keluar dengan pesan ini, dan pembacaan yang ditolak sistem operasi juga menghasilkannya.

5739 5892 

5893<h3 id="managed-settings-hooks-not-loaded">

5894 Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded

5895</h3>

5896 

5897Blok stderr dari proses `-p` ini berarti sebuah sumber [pengaturan terkelola](/docs/id/managed-settings) berisi entri hook yang tidak dapat dimuat oleh Claude Code. Hook tersebut tidak berjalan, dan ketika sebuah baris mencantumkan bidang `hooks` sumber tersebut sebagai diabaikan, tidak ada hook dari sumber tersebut yang berjalan.

5898 

5899Setiap baris menyebutkan sumber, bidang jika ada, dan masalahnya, seperti `type` hook yang tidak dikenal atau hook yang dideklarasikan di luar kunci `hooks`:

5900 

5901```text theme={null}

5902Managed settings contain invalid entries, including PreToolUse/PermissionRequest hooks that are NOT loaded; fix or remove each entry:

5903 <source> (<field>): <message>

5904```

5905 

5906**Yang harus dilakukan:**

5907 

5908* Jika Anda mengelola sumber tersebut, perbaiki atau hapus setiap entri yang dicantumkan blok. [Konfigurasi hook](/docs/id/hooks#configuration) menunjukkan bentuk yang diharapkan Claude Code di bawah `hooks`.

5909* Jika sumber sebuah baris adalah `parent managed settings`, aplikasi yang meluncurkan Claude Code meneruskan entri tersebut sebagai [pengaturan induk](/docs/id/managed-settings#parent-settings-from-embedding-hosts), jadi laporkan kepada pengembang aplikasi tersebut

5910* Jika tidak, kirim blok tersebut ke administrator Anda

5911 

5912Sebelum v2.1.300, proses `-p` mencantumkan kasus ini di bawah header `Managed settings failed to load; policies from the failed source are NOT in effect:`.

5913 

5740<h3 id="otelheadershelper-failed">5914<h3 id="otelheadershelper-failed">

5741 otelHeadersHelper gagal5915 otelHeadersHelper gagal

5742</h3>5916</h3>


5955 6129 

5956Sebelum v2.1.233, Claude Code tidak menulis baris ketika mengirim permintaan untuk ID model yang tidak dikenalinya.6130Sebelum v2.1.233, Claude Code tidak menulis baris ketika mengirim permintaan untuk ID model yang tidak dikenalinya.

5957 6131 

6132<h3 id="sandbox-allow-entries-are-ignored-under-a-managed-lock">

6133 Entri allow sandbox diabaikan di bawah kunci terkelola

6134</h3>

6135 

6136Peringatan di `/status` dan `claude doctor` ini berarti pengaturan terkelola menetapkan [`allowManagedReadPathsOnly`](/docs/id/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) atau [`allowManagedDomainsOnly`](/docs/id/settings-reference#sandbox-network-allowmanageddomainsonly), sehingga entri [`allowRead`](/docs/id/settings-reference#sandbox-filesystem-allowread) atau [`allowedDomains`](/docs/id/settings-reference#sandbox-network-alloweddomains) dalam file yang disebutkannya tidak berlaku:

6137 

6138```text wrap theme={null}

6139sandbox.filesystem.allowRead is ignored — managed settings set allowManagedReadPathsOnly, so only allowRead paths from managed settings are honored. The 3 entries in /home/you/.claude/settings.json will NOT apply (see https://code.claude.com/docs/en/settings#sandbox-settings).

6140```

6141 

6142Untuk kunci jaringan, peringatan menyebutkan `sandbox.network.allowedDomains` dan `allowManagedDomainsOnly`, dan mengatakan `only allowed domains (and WebFetch domain rules) from managed settings are honored`.

6143 

6144**Yang harus dilakukan:**

6145 

6146* Anda tidak perlu menindaklanjuti peringatan ini

6147* Jika Anda memerlukan jalur atau domain tersebut dan pengaturan terkelola organisasi Anda menetapkan kunci tersebut, minta administrator Anda untuk menambahkannya ke pengaturan tersebut. Peringatan tetap ada sampai Anda juga menghapus entri dari file yang disebutkan.

6148* Untuk menghilangkan peringatan, hapus entri dari file yang disebutkan. Untuk file yang Anda bagikan, seperti `.claude/settings.json` proyek, Anda dapat membiarkan entri tetap ada untuk rekan tim yang tidak memiliki kunci tersebut dan membiarkan peringatan tetap tampil.

6149 

5958<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">6150<h3 id="stale-sandbox-mask-files-left-by-a-killed-session">

5959 File mask sandbox basi ditinggalkan oleh sesi yang dibunuh6151 File mask sandbox basi ditinggalkan oleh sesi yang dibunuh

5960</h3>6152</h3>

Details

57 </Step>57 </Step>

58 58 

59 <Step title="Aktifkan Code Review">59 <Step title="Aktifkan Code Review">

60 Buka [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) dan aktifkan [Code Review](/docs/id/code-review#set-up-code-review) untuk repositori GHES Anda menggunakan konfigurasi yang sama seperti github.com.60 Buka [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) dan aktifkan [Code Review](/docs/id/code-review-setup) untuk repositori GHES Anda menggunakan konfigurasi yang sama seperti github.com.

61 </Step>61 </Step>

62</Steps>62</Steps>

63 63 

Details

222| `T{char}` | Lompat ke tepat setelah kemunculan karakter sebelumnya pada baris saat ini |222| `T{char}` | Lompat ke tepat setelah kemunculan karakter sebelumnya pada baris saat ini |

223| `;` | Ulangi gerakan f/F/t/T terakhir |223| `;` | Ulangi gerakan f/F/t/T terakhir |

224| `,` | Ulangi gerakan f/F/t/T terakhir dalam urutan terbalik |224| `,` | Ulangi gerakan f/F/t/T terakhir dalam urutan terbalik |

225| `%` | Lompat ke tanda kurung `()`, `[]`, atau `{}` yang cocok, dimulai dari tanda kurung berikutnya pada baris saat ini jika kursor tidak berada pada tanda kurung. Memerlukan Claude Code v2.1.301 atau lebih baru |

225| `/` | Buka pencarian riwayat terbalik, sama dengan `Ctrl+R`. Prompt pencarian kosong menunjukkan petunjuk: tekan `Esc` lalu `i` lalu `/` untuk membuka menu perintah sebagai gantinya |226| `/` | Buka pencarian riwayat terbalik, sama dengan `Ctrl+R`. Prompt pencarian kosong menunjukkan petunjuk: tekan `Esc` lalu `i` lalu `/` untuk membuka menu perintah sebagai gantinya |

226 227 

227<Note>228<Note>


243| `dj`/`dk` | Hapus baris saat ini dan baris di bawah atau di atas |244| `dj`/`dk` | Hapus baris saat ini dan baris di bawah atau di atas |

244| `dgg`/`dG` | Hapus dari baris saat ini ke baris pertama atau terakhir |245| `dgg`/`dG` | Hapus dari baris saat ini ke baris pertama atau terakhir |

245| `d0`/`c0`/`y0` | Hapus, ubah, atau yank dari kursor kembali ke awal baris. Memerlukan Claude Code v2.1.281 atau lebih baru |246| `d0`/`c0`/`y0` | Hapus, ubah, atau yank dari kursor kembali ke awal baris. Memerlukan Claude Code v2.1.281 atau lebih baru |

247| `d%`/`c%`/`y%` | Hapus, ubah, atau yank dari kursor hingga tanda kurung yang dituju oleh `%`. Memerlukan Claude Code v2.1.301 atau lebih baru |

246| `cc` | Ubah baris |248| `cc` | Ubah baris |

247| `C` | Ubah hingga akhir baris |249| `C` | Ubah hingga akhir baris |

248| `cw`/`ce`/`cb` | Ubah kata/hingga akhir/kembali |250| `cw`/`ce`/`cb` | Ubah kata/hingga akhir/kembali |

Details

589| Peringatan startup yang menamai dua sumber kredensial dan berakhir dengan `auth may not work as expected`. Versi lebih lama menampilkan `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` sebagai gantinya. | Kredensial gateway dan login yang disimpan keduanya aktif; variabel digunakan untuk permintaan, tetapi login basi dapat menyebabkan perilaku auth yang tidak terduga | Batalkan pengaturan variabel untuk menggunakan login yang disimpan, atau jalankan `/logout` untuk menggunakan kredensial gateway |589| Peringatan startup yang menamai dua sumber kredensial dan berakhir dengan `auth may not work as expected`. Versi lebih lama menampilkan `Auth conflict: Both a token (SOURCE) and an API key (SOURCE) are set` sebagai gantinya. | Kredensial gateway dan login yang disimpan keduanya aktif; variabel digunakan untuk permintaan, tetapi login basi dapat menyebabkan perilaku auth yang tidak terduga | Batalkan pengaturan variabel untuk menggunakan login yang disimpan, atau jalankan `/logout` untuk menggunakan kredensial gateway |

590| Kesalahan `401` yang menamai token yang tidak valid atau tidak dikenali | Kredensial bukan yang dikeluarkan gateway, atau berada di header yang tidak dibaca gateway | Konfirmasi variabel cocok dengan jenis kredensial Anda di [tabel kredensial](#set-the-credential-variable), dan regenerasi kunci di gateway jika itu dicabut |590| Kesalahan `401` yang menamai token yang tidak valid atau tidak dikenali | Kredensial bukan yang dikeluarkan gateway, atau berada di header yang tidak dibaca gateway | Konfirmasi variabel cocok dengan jenis kredensial Anda di [tabel kredensial](#set-the-credential-variable), dan regenerasi kunci di gateway jika itu dicabut |

591| `Your apiKeyHelper script is failing`, atau `apiKeyHelper failed:` pada stderr dalam mode non-interaktif | Perintah dalam pengaturan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) tidak menghasilkan kunci yang dapat digunakan, sehingga permintaan membawa kunci placeholder | Jalankan perintah secara langsung untuk melihat mengapa itu gagal, dan autentikasi ulang dengan penyedia kredensial Anda jika itu melaporkan sesi yang kedaluwarsa; lihat [referensi kesalahan](/docs/id/errors#your-apikeyhelper-script-is-failing) |591| `Your apiKeyHelper script is failing`, atau `apiKeyHelper failed:` pada stderr dalam mode non-interaktif | Perintah dalam pengaturan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) tidak menghasilkan kunci yang dapat digunakan, sehingga permintaan membawa kunci placeholder | Jalankan perintah secara langsung untuk melihat mengapa itu gagal, dan autentikasi ulang dengan penyedia kredensial Anda jika itu melaporkan sesi yang kedaluwarsa; lihat [referensi kesalahan](/docs/id/errors#your-apikeyhelper-script-is-failing) |

592| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` ketika tidak ada yang menjawab di alamat, atau `Can't reach the API server — check your internet or DNS (ENOTFOUND)` ketika hostname tidak terselesaikan, sering setelah jeda senyap sementara Claude Code [mencoba ulang dengan backoff](/docs/id/errors#automatic-retries). Kode dalam tanda kurung bervariasi; [Unable to connect to API](/docs/id/errors#unable-to-connect-to-api) mencakup ejaan kode dan wording sebelumnya | Tidak ada yang menjawab di URL dasar: alamatnya salah, atau VPN atau firewall memblokir jalur ke gateway | Jalankan [tes curl di atas](#verify-the-connection), yang gagal segera dengan penyebab yang sama, dan konfirmasi URL dan jalur jaringan dengan tim gateway Anda |592| `Connection refused — a firewall or proxy may be blocking it (ConnectionRefused)` ketika tidak ada yang menjawab di alamat, atau `Can't reach the API server — check your internet or DNS (ENOTFOUND)` ketika hostname tidak terselesaikan, sering setelah jeda senyap sementara Claude Code [mencoba ulang dengan backoff](/docs/id/errors#automatic-retries). Kode dalam tanda kurung bervariasi; [Unable to connect to API](/docs/id/errors#unable-to-connect-to-api) mencakup ejaan kode dan kata-kata sebelumnya | Tidak ada yang menjawab di URL dasar: alamatnya salah, atau VPN atau firewall memblokir jalur ke gateway | Jalankan [tes curl di atas](#verify-the-connection), yang gagal segera dengan penyebab yang sama, dan konfirmasi URL dan jalur jaringan dengan tim gateway Anda |

593| `API returned an empty or malformed response (HTTP 200)` | Gateway atau proxy perantara mengembalikan respons non-API, sering halaman HTML error atau login | Uji dengan [permintaan curl di atas](#verify-the-connection); perbaiki rute gateway yang menjawab dengan sesuatu selain respons Claude API. [Referensi kesalahan](/docs/id/errors#api-returned-an-empty-or-malformed-response) menjelaskan detail yang dilaporkan pesan |593| `API returned an empty or malformed response (HTTP 200)` | Gateway atau proxy perantara mengembalikan respons non-API, sering halaman HTML error atau login | Uji dengan [permintaan curl di atas](#verify-the-connection); perbaiki rute gateway yang menjawab dengan sesuatu selain respons Claude API. [Referensi kesalahan](/docs/id/errors#api-returned-an-empty-or-malformed-response) menjelaskan detail yang dilaporkan pesan |

594| Kesalahan `400` yang menamai `context_management`, `Extra inputs are not permitted`, atau bidang lain yang tidak dikenali | Gateway meneruskan permintaan ke upstream yang menolak bidang yang dikirim Claude Code ke titik akhir format Anthropic | Atur `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, yang menekan sebagian besar bidang pra-rilis; lihat [feature pass-through](/docs/id/llm-gateway-protocol#feature-pass-through). Beberapa beta tidak dijaga oleh bendera ini; untuk itu, atur variabel penyedia `CLAUDE_CODE_USE_*` yang cocok sehingga Claude Code hanya mengirim apa yang diterima penyedia itu |594| Kesalahan `400` yang menamai `context_management`, `Extra inputs are not permitted`, atau bidang lain yang tidak dikenali | Gateway meneruskan permintaan ke upstream yang menolak bidang yang dikirim Claude Code ke titik akhir format Anthropic | Atur `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`, yang menekan sebagian besar bidang pra-rilis; lihat [feature pass-through](/docs/id/llm-gateway-protocol#feature-pass-through). Beberapa beta tidak dijaga oleh bendera ini; untuk itu, atur variabel penyedia `CLAUDE_CODE_USE_*` yang cocok sehingga Claude Code hanya mengirim apa yang diterima penyedia itu |

595| Kesalahan `400` yang menamai `thinking` atau `adaptive`, seperti `Input tag 'adaptive' found` | Build model upstream tidak menerima adaptive reasoning, yang diminta Claude Code untuk Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5, dan model yang lebih baru | Tingkatkan upstream gateway. Di Opus 4.6 dan Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` berfungsi sebagai gantinya. Variabel kemampuan [konfigurasi model](/docs/id/model-config) hanya berlaku untuk konfigurasi penyedia, seperti `CLAUDE_CODE_USE_BEDROCK` dan `CLAUDE_CODE_USE_VERTEX`, bukan di belakang gateway `ANTHROPIC_BASE_URL` |595| Kesalahan `400` yang menamai `thinking` atau `adaptive`, seperti `Input tag 'adaptive' found` | Build model upstream tidak menerima adaptive reasoning, yang diminta Claude Code untuk Claude Opus 4.6, Claude Sonnet 4.6, Claude Haiku 5.5, Claude Fable 5, dan model yang lebih baru | Tingkatkan upstream gateway. Di Opus 4.6 dan Sonnet 4.6, `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` berfungsi sebagai gantinya. Variabel kemampuan [konfigurasi model](/docs/id/model-config) hanya berlaku untuk konfigurasi penyedia, seperti `CLAUDE_CODE_USE_BEDROCK` dan `CLAUDE_CODE_USE_VERTEX`, bukan di belakang gateway `ANTHROPIC_BASE_URL` |

mcp.md +1 −1

Details

1632 1632 

1633Sebelum v2.1.296, batas yang lebih pendek adalah 2.048 karakter, dan sebelum v2.1.295 batas tersebut berlaku untuk setiap deskripsi tool, termasuk yang dimuat melalui pencarian tool.1633Sebelum v2.1.296, batas yang lebih pendek adalah 2.048 karakter, dan sebelum v2.1.295 batas tersebut berlaku untuk setiap deskripsi tool, termasuk yang dimuat melalui pencarian tool.

1634 1634 

1635Untuk mengubah batas untuk setiap server MCP dalam sesi Anda, atur [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/id/env-vars#variables) ke sejumlah karakter. Angka yang Anda atur menggantikan kedua batas: `8192`, misalnya, menaikkan batas yang lebih pendek dan menurunkan batas yang lebih panjang. Variabel ini memerlukan Claude Code v2.1.280 atau lebih baru.1635Deskripsi dan instruksi dari beberapa server MCP yang dihosting Anthropic di `api.anthropic.com` sampai ke Claude secara utuh. Untuk mengubah batas untuk server MCP lainnya dalam sesi Anda, atur [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/id/env-vars#variables) ke sejumlah karakter. Angka yang Anda atur menggantikan kedua batas: `8192`, misalnya, menaikkan batas yang lebih pendek dan menurunkan batas yang lebih panjang. Variabel ini memerlukan Claude Code v2.1.280 atau lebih baru.

1636 1636 

1637<h4 id="per-tool-alwaysload">1637<h4 id="per-tool-alwaysload">

1638 Tandai tool agar dimuat di awal atau tetap ditunda1638 Tandai tool agar dimuat di awal atau tetap ditunda

Details

378 ```powershell theme={null}378 ```powershell theme={null}

379 $env:MCP_TIMEOUT = "60000"; claude379 $env:MCP_TIMEOUT = "60000"; claude

380 ```380 ```

381 

382 Sebelum v2.1.299, beberapa koneksi ke server HTTP yang aktif mengalami timeout saat startup terlepas dari `MCP_TIMEOUT`. Jika Anda menggunakan salah satu versi tersebut dan server HTTP yang aktif masih mengalami timeout setelah Anda menaikkan batas, [perbarui Claude Code](/docs/id/setup#update-claude-code).

381 </Accordion>383 </Accordion>

382 384 

383 <Accordion title="Server already exists">385 <Accordion title="Server already exists">

memory.md +1 −0

Details

648Untuk men-debug:648Untuk men-debug:

649 649 

650* Jalankan `/context` dan periksa daftar di bawah **Memory files** untuk memverifikasi file CLAUDE.md dan CLAUDE.local.md yang seharusnya dimuat saat peluncuran. Jika salah satunya tidak ada di sana, Claude tidak dapat melihatnya. Gunakan `/memory` untuk membuka dan mengedit file.650* Jalankan `/context` dan periksa daftar di bawah **Memory files** untuk memverifikasi file CLAUDE.md dan CLAUDE.local.md yang seharusnya dimuat saat peluncuran. Jika salah satunya tidak ada di sana, Claude tidak dapat melihatnya. Gunakan `/memory` untuk membuka dan mengedit file.

651* Jika pemberitahuan `Instruction file not loaded` muncul, lihat [apa artinya dan apa yang harus dilakukan](/docs/id/errors#instruction-file-not-loaded).

651* `CLAUDE.md` di subdirektori dari direktori kerja Anda tidak muncul di bawah **Memory files**, karena file tersebut dimuat sesuai kebutuhan, bukan saat peluncuran. Saat dimuat, baris `Loaded` beserta jalurnya muncul di terminal. Untuk menguji file baru, buat file tersebut dari shell Anda alih-alih meminta Claude menulisnya, lalu minta Claude membaca file di subdirektori tersebut.652* `CLAUDE.md` di subdirektori dari direktori kerja Anda tidak muncul di bawah **Memory files**, karena file tersebut dimuat sesuai kebutuhan, bukan saat peluncuran. Saat dimuat, baris `Loaded` beserta jalurnya muncul di terminal. Untuk menguji file baru, buat file tersebut dari shell Anda alih-alih meminta Claude menulisnya, lalu minta Claude membaca file di subdirektori tersebut.

652* Periksa bahwa CLAUDE.md yang relevan berada di lokasi yang dimuat untuk sesi Anda (lihat [Choose where to put CLAUDE.md files](#choose-where-to-put-claude-md-files)).653* Periksa bahwa CLAUDE.md yang relevan berada di lokasi yang dimuat untuk sesi Anda (lihat [Choose where to put CLAUDE.md files](#choose-where-to-put-claude-md-files)).

653* Buat instruksi lebih spesifik. "Gunakan indentasi 2 spasi" bekerja lebih baik daripada "format kode dengan baik."654* Buat instruksi lebih spesifik. "Gunakan indentasi 2 spasi" bekerja lebih baik daripada "format kode dengan baik."

model-config.md +20 −0

Details

895 Mengoreksi jendela untuk gateway atau ID model kustom895 Mengoreksi jendela untuk gateway atau ID model kustom

896</h3>896</h3>

897 897 

898Salah satu dari peringatan saat startup berikut berarti Claude Code tidak mengenali ID model sesi Anda, sehingga Claude Code tidak dapat mengetahui context window model tersebut dan mengasumsikan 200K token:

899 

900```text theme={null}

901⚠ Model "my-gateway-opus" isn't recognized · context assumed to be 200k tokens · ...

902Claude Code doesn't recognize the model "my-gateway-opus", so it assumes a context window of 200k tokens. Update Claude Code, or see https://code.claude.com/docs/en/model-config#correct-the-window-for-a-gateway-or-custom-model-id to set the window.

903```

904 

905Claude Code [melakukan auto-compact](#default-auto-compact-thresholds) pada percakapan di 200K yang diasumsikan, jadi jika context window sebenarnya milik model adalah 200K, tidak ada yang perlu dikoreksi. Jika tidak, berikan jendela sebenarnya kepada Claude Code dengan salah satu cara berikut yang sesuai dengan ID Anda:

906 

907* **Model yang lebih baru daripada versi Claude Code Anda**: jalankan `claude update` di shell Anda. Jika Claude Code mengenali ID tersebut setelah pembaruan, Anda tidak perlu mengonfigurasi apa pun lagi.

908* **Nama dari gateway atau penyedia Anda untuk model yang dikenal Claude Code**: tambahkan entri [`modelOverrides`](#override-model-ids-per-version) yang memetakan ID model Anthropic ke ID Anda, seperti `"claude-opus-4-8": "my-gateway-opus"`. Sebagai gantinya, Anda dapat mencantumkan ID Anda dalam baris [`modelPicker`](/docs/id/settings-reference#fields-for-modelpicker) dengan `behavesAs` diatur ke model tersebut. Dengan cara mana pun, Claude Code kemudian memperlakukan ID tersebut sebagai model itu.

909* **Model dengan jendela 1M**: tambahkan `[1m]` di akhir ID di tempat Anda mengatur model, seperti `claude --model 'my-gateway-opus[1m]'` di shell Anda. Jika Anda [menonaktifkan konteks 1M](#turn-off-1m-context), Anda mendapatkan jendela yang sama dengan atau tanpa akhiran tersebut.

910* **Jendela lainnya**: atur [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/id/env-vars) ke ukuran jendela dalam token di lingkungan yang memulai Claude Code, seperti `CLAUDE_CODE_MAX_CONTEXT_TOKENS=400000`. Untuk ID yang tidak dikenali yang tidak diawali dengan `claude-` dan tidak memiliki akhiran `[1m]`, variabel ini berlaku dengan sendirinya. Untuk ID lainnya, periksa terlebih dahulu [ID mana yang dikenai variabel ini](#which-ids-claude_code_max_context_tokens-applies-to).

911 

912Setelah Claude Code mengenali ID tersebut atau menggunakan jendela yang Anda berikan, peringatan tersebut tidak lagi muncul saat Anda memulai sesi pada ID tersebut.

913 

914<h4 id="which-ids-claude_code_max_context_tokens-applies-to">

915 ID mana yang dikenai `CLAUDE_CODE_MAX_CONTEXT_TOKENS`

916</h4>

917 

898Pada [LLM gateway](/docs/id/llm-gateway) atau deployment kustom lainnya, Claude Code dapat mengasumsikan context window untuk ID model yang berbeda dari jendela sebenarnya milik model tersebut, terlepas dari apakah Claude Code me-resolve ID tersebut ke model Claude atau tidak. Atur [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/id/env-vars) ke jendela yang seharusnya diasumsikan Claude Code.918Pada [LLM gateway](/docs/id/llm-gateway) atau deployment kustom lainnya, Claude Code dapat mengasumsikan context window untuk ID model yang berbeda dari jendela sebenarnya milik model tersebut, terlepas dari apakah Claude Code me-resolve ID tersebut ke model Claude atau tidak. Atur [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/id/env-vars) ke jendela yang seharusnya diasumsikan Claude Code.

899 919 

900Cara variabel ini diterapkan bergantung pada ID-nya. Claude Code memperlakukan sebuah ID sebagai ejaan penyedia atau kustom jika ID tersebut tidak diawali dengan `claude-`, dalam huruf besar maupun kecil apa pun, atau jika ID tersebut membawa akhiran yang dihapus Claude Code saat membaca ID, seperti tanggal `@YYYYMMDD` yang digunakan di Agent Platform milik Google Cloud. Sebelum v2.1.259, Claude Code tidak memperhitungkan akhiran yang dihapus, sehingga ID `claude-` yang tidak dikenali dengan akhiran tanggal diperlakukan sebagai nama `claude-` polos.920Cara variabel ini diterapkan bergantung pada ID-nya. Claude Code memperlakukan sebuah ID sebagai ejaan penyedia atau kustom jika ID tersebut tidak diawali dengan `claude-`, dalam huruf besar maupun kecil apa pun, atau jika ID tersebut membawa akhiran yang dihapus Claude Code saat membaca ID, seperti tanggal `@YYYYMMDD` yang digunakan di Agent Platform milik Google Cloud. Sebelum v2.1.259, Claude Code tidak memperhitungkan akhiran yang dihapus, sehingga ID `claude-` yang tidak dikenali dengan akhiran tanggal diperlakukan sebagai nama `claude-` polos.

Details

6 6 

7> Pelajari cara mengaktifkan dan mengonfigurasi OpenTelemetry untuk Claude Code.7> Pelajari cara mengaktifkan dan mengonfigurasi OpenTelemetry untuk Claude Code.

8 8 

9Lacak penggunaan Claude Code, biaya, dan aktivitas alat di seluruh organisasi Anda dengan mengekspor data telemetri melalui OpenTelemetry (OTel). Claude Code mengekspor metrik sebagai data deret waktu melalui protokol metrik standar, acara melalui protokol log/acara, dan secara opsional distributed traces melalui [protokol traces](#traces-beta).9Lacak penggunaan Claude Code, biaya, dan aktivitas tool di seluruh organisasi Anda dengan mengekspor data telemetri melalui OpenTelemetry (OTel). Claude Code mengekspor metrik sebagai data deret waktu melalui protokol metrik standar, acara melalui protokol log/acara, dan secara opsional [distributed traces melalui OpenTelemetry](#traces-beta).

10 

11<Note>

12 Untuk Claude API atau Managed Agents, lihat [OpenTelemetry untuk Claude API](https://platform.claude.com/docs/en/manage-claude/opentelemetry).

13</Note>

10 14 

11<h2 id="quick-start">15<h2 id="quick-start">

12 Mulai cepat16 Mulai cepat

Details

48* **Nama marketplace komunitas**: `claude-community`, `claude-plugins-community`, dan `healthcare`. Dicadangkan di bawah aturan yang sama dengan nama resmi.48* **Nama marketplace komunitas**: `claude-community`, `claude-plugins-community`, dan `healthcare`. Dicadangkan di bawah aturan yang sama dengan nama resmi.

49* **Nama direktori plugin**: `anthropic-plugin-directory` dan `claude-plugin-directory`. Dicadangkan di bawah aturan yang sama dengan nama resmi.49* **Nama direktori plugin**: `anthropic-plugin-directory` dan `claude-plugin-directory`. Dicadangkan di bawah aturan yang sama dengan nama resmi.

50* **Nama yang menyamar sebagai marketplace resmi**: nama seperti `official-claude-plugins` atau `claude-plugins-v2`, dan nama apa pun yang berisi karakter non-ASCII. Kesalahannya adalah `Marketplace name impersonates an official Anthropic/Claude marketplace`. Karakter kontrol atau pemformatan bidirectional dalam nama juga melaporkan `Marketplace name cannot contain control or bidirectional-formatting characters`. Marketplace yang sudah terdaftar di bawah nama seperti itu berhenti dimuat, bersama dengan pluginnya.50* **Nama yang menyamar sebagai marketplace resmi**: nama seperti `official-claude-plugins` atau `claude-plugins-v2`, dan nama apa pun yang berisi karakter non-ASCII. Kesalahannya adalah `Marketplace name impersonates an official Anthropic/Claude marketplace`. Karakter kontrol atau pemformatan bidirectional dalam nama juga melaporkan `Marketplace name cannot contain control or bidirectional-formatting characters`. Marketplace yang sudah terdaftar di bawah nama seperti itu berhenti dimuat, bersama dengan pluginnya.

51* <span id="reserved-name-spellings" />**Ejaan lain dari nama yang dicadangkan**: nama yang berbeda dari nama yang dicadangkan hanya dengan titik di akhir, atau dengan simbol selain garis bawah sebagai pengganti tanda hubung, jadi `claude.code.plugins` dihitung sebagai `claude-code-plugins`. Menambahkan marketplace gagal dengan [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/id/errors#marketplace-name-is-another-spelling-of-a-reserved-name), dan marketplace yang sudah terdaftar di bawah satu berhenti dimuat. Pemeriksaan ini memerlukan Claude Code v2.1.280 atau lebih baru.51* <span id="reserved-name-spellings" />**Ejaan lain dari nama yang dicadangkan**: nama yang berbeda dari nama yang dicadangkan hanya dengan titik di akhir, atau dengan simbol selain garis bawah sebagai pengganti tanda hubung, jadi `claude.code.plugins` dihitung sebagai `claude-code-plugins`. Menambahkan marketplace gagal dengan [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/id/errors#marketplace-name-is-another-spelling-of-a-reserved-name), dan marketplace yang sudah terdaftar dengan nama seperti itu berhenti dimuat. Pemeriksaan ini memerlukan Claude Code v2.1.280 atau lebih baru.

52* **Nama yang Claude Code gunakan untuk plugin yang tidak berasal dari marketplace**: `inline` untuk plugin yang dimuat dengan [`--plugin-dir`](/docs/id/cli-reference), `builtin` untuk plugin bawaan, `skills-dir` untuk plugin yang dimuat otomatis dari [`.claude/skills/`](/docs/id/skills), dan `synced` untuk plugin yang disinkronkan dari akun claude.ai Anda. `claude-plugin-test` juga dicadangkan. `skills-dir` juga muncul sebagai `{"source": "skills-dir"}` dalam `strictKnownMarketplaces` dan `blockedMarketplaces`, dijelaskan di bawah [Nilai sumber yang valid hanya dalam daftar kebijakan](#source-values-valid-only-in-policy-lists).52* **Nama yang Claude Code gunakan untuk plugin yang tidak berasal dari marketplace**: `inline` untuk plugin yang dimuat dengan [`--plugin-dir`](/docs/id/cli-reference), `builtin` untuk plugin bawaan, `skills-dir` untuk plugin yang dimuat otomatis dari [`.claude/skills/`](/docs/id/skills), dan `synced` untuk plugin yang disinkronkan dari akun claude.ai Anda. `claude-plugin-test` juga dicadangkan. `skills-dir` juga muncul sebagai `{"source": "skills-dir"}` dalam `strictKnownMarketplaces` dan `blockedMarketplaces`, dijelaskan di bawah [Nilai sumber yang valid hanya dalam daftar kebijakan](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github`, dan `gh`**: dicadangkan dalam huruf apa pun. Pemeriksaan ini memerlukan Claude Code v2.1.275 atau lebih baru.53* **`npm`, `pip`, `uv`, `cargo`, `github`, dan `gh`**: dicadangkan dalam huruf apa pun. Pemeriksaan ini memerlukan Claude Code v2.1.275 atau lebih baru.

54* **Nama anggota yang dimiliki setiap objek JavaScript**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString`, dan `valueOf`. `claude plugin marketplace add` menolak marketplace yang menggunakan salah satunya dengan [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/id/plugins/troubleshooting#claude-code-reserves-this-name). Pemeriksaan ini memerlukan Claude Code v2.1.296 atau lebih baru.54* **Nama anggota yang dimiliki setiap objek JavaScript**: `constructor`, `hasOwnProperty`, `isPrototypeOf`, `propertyIsEnumerable`, `toLocaleString`, `toString`, dan `valueOf`. `claude plugin marketplace add` menolak marketplace yang menggunakan salah satunya dengan [`Claude Code reserves this name and cannot register a marketplace under it`](/docs/id/plugins/troubleshooting#claude-code-reserves-this-name). Pemeriksaan ini memerlukan Claude Code v2.1.296 atau lebih baru.

Details

84* **Kebijakan jaringan mencakup `$.http.fetch`.**84* **Kebijakan jaringan mencakup `$.http.fetch`.**

85 85 

86 * **Kebijakan organisasi Anda tidak mengizinkan WebFetch**: Claude Code juga menolak setiap permintaan `$.http.fetch` dari mod. Lihat [Ketersediaan WebFetch](/docs/id/tools-reference#webfetch-availability).86 * **Kebijakan organisasi Anda tidak mengizinkan WebFetch**: Claude Code juga menolak setiap permintaan `$.http.fetch` dari mod. Lihat [Ketersediaan WebFetch](/docs/id/tools-reference#webfetch-availability).

87 * **Anda mematikan tool WebFetch dengan [`CLAUDE_CODE_DISABLE_WEB_FETCH`](/docs/id/env-vars#variables) atau [aturan penolakan](/docs/id/permissions#tool-specific-permission-rules) `WebFetch`, dalam pengaturan terkelola atau file pengaturan lainnya**: mod masih dapat membuat permintaan `$.http.fetch`.

88 

89 Untuk menghentikannya bagi setiap mod yang dipasang pengguna Anda, [cegah mod yang dipasang pengguna agar tidak dimuat](#stop-user-installed-mods-from-loading), atau pasang hook pada `http.fetch` dalam [mod kebijakan](#enforce-a-policy-with-a-mod-of-your-own) dan tolak permintaan dari mod pengguna. Berikan hook tersebut [handler `.catch`](/docs/id/plugins/mods/events#handle-a-hook-that-fails) yang juga menolak, karena Claude Code melewati hook yang gagal dan permintaan kemudian tetap dilanjutkan. Jika Anda hanya [membatasi plugin mana yang dapat dipasang pengguna](/docs/id/plugins/org#restrict-what-users-can-install), lebih sedikit mod yang dimuat, tetapi mod yang Anda izinkan masih dapat membuat permintaan ini.

87 * **Anda menetapkan [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars)**: mod yang Anda atau pengguna Anda pasang masih dapat membuat permintaan ini. Variabel tersebut hanya menghentikan [mod bawaan Claude Code](/docs/id/plugins/mods/overview#mods-built-into-claude-code), ditambah setiap permintaan `$.http.fetch` yang membawa kredensial Anthropic milik sesi. Sebelum v2.1.288, variabel tersebut menghentikan setiap permintaan `$.http.fetch` dari mod.90 * **Anda menetapkan [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars)**: mod yang Anda atau pengguna Anda pasang masih dapat membuat permintaan ini. Variabel tersebut hanya menghentikan [mod bawaan Claude Code](/docs/id/plugins/mods/overview#mods-built-into-claude-code), ditambah setiap permintaan `$.http.fetch` yang membawa kredensial Anthropic milik sesi. Sebelum v2.1.288, variabel tersebut menghentikan setiap permintaan `$.http.fetch` dari mod.

88 91 

89 Keduanya tidak mencakup program yang dimulai mod dengan `$.process.run`, yang menjangkau jaringan dengan akses pengguna sendiri.92 Tidak satu pun dari ini mencakup program yang dimulai mod dengan `$.process.run`, yang menjangkau jaringan dengan akses pengguna sendiri.

90* **Kontrol plugin mencakup mod.** Mod adalah plugin, jadi [pengaturan yang membatasi apa yang dapat dipasang pengguna](/docs/id/plugins/org#restrict-what-users-can-install), seperti `strictKnownMarketplaces`, memutuskan apakah itu dapat dipasang sama sekali.93* **Kontrol plugin mencakup mod.** Mod adalah plugin, jadi [pengaturan yang membatasi apa yang dapat dipasang pengguna](/docs/id/plugins/org#restrict-what-users-can-install), seperti `strictKnownMarketplaces`, memutuskan apakah itu dapat dipasang sama sekali.

91* **Mod tidak dapat mengubah prompt izin.** Mod dapat mengubah gaya banyak antarmuka Claude Code, tetapi bukan prompt izin, jadi tidak dapat mengubah apa yang ditampilkan prompt. Mod masih dapat menyetujui atau menolak panggilan alat sebelum prompt muncul, seperti yang dijelaskan [Ketahui apa yang terjadi secara default](#know-what-happens-by-default).94* **Mod tidak dapat mengubah prompt izin.** Mod dapat mengubah gaya banyak antarmuka Claude Code, tetapi bukan prompt izin, jadi tidak dapat mengubah apa yang ditampilkan prompt. Mod masih dapat menyetujui atau menolak panggilan alat sebelum prompt muncul, seperti yang dijelaskan [Ketahui apa yang terjadi secara default](#know-what-happens-by-default).

92* **Prompt kepercayaan datang terlebih dahulu.** Dalam sesi interaktif di direktori yang belum dipercaya pengguna, tidak ada mod yang memuat sampai mereka menjawab prompt kepercayaan.95* **Prompt kepercayaan datang terlebih dahulu.** Dalam sesi interaktif di direktori yang belum dipercaya pengguna, tidak ada mod yang memuat sampai mereka menjawab prompt kepercayaan.

Details

234| `$.ui.toast(text)` | Notifikasi toast dengan nama mod yang hilang setelah beberapa detik. Berupa kotak di kanan atas dalam [rendering layar penuh](/docs/id/fullscreen), dan satu baris di sebelah kanan di bawah prompt dalam renderer klasik. |234| `$.ui.toast(text)` | Notifikasi toast dengan nama mod yang hilang setelah beberapa detik. Berupa kotak di kanan atas dalam [rendering layar penuh](/docs/id/fullscreen), dan satu baris di sebelah kanan di bawah prompt dalam renderer klasik. |

235| `$.ui.log(text)` | Baris redup dalam transkrip yang tidak dibaca Claude. Dimulai dengan `●` dan nama mod, seperti `● my-mod: build finished`. |235| `$.ui.log(text)` | Baris redup dalam transkrip yang tidak dibaca Claude. Dimulai dengan `●` dan nama mod, seperti `● my-mod: build finished`. |

236 236 

237Di [ekstensi VS Code](/docs/id/plugins/mods/interface#draw-in-the-vs-code-extension), baris status dan toast ditampilkan di atas kotak prompt, dan baris log ditampilkan dalam percakapan.

238 

237<h3 id="start-a-turn-from-a-background-job">239<h3 id="start-a-turn-from-a-background-job">

238 Mulai giliran dari pekerjaan latar belakang240 Mulai giliran dari pekerjaan latar belakang

239</h3>241</h3>

Details

226| `Spinner`, `ToolProgress`, `TurnDuration` | Baris status untuk giliran: baris yang beranimasi saat Claude bekerja, baris kemajuan langsung tool yang berjalan, dan baris yang menutup giliran |226| `Spinner`, `ToolProgress`, `TurnDuration` | Baris status untuk giliran: baris yang beranimasi saat Claude bekerja, baris kemajuan langsung tool yang berjalan, dan baris yang menutup giliran |

227| `InfoNotice`, `SessionMode`, `PromptHint` | Baris status di bawah logo, label mode di footer, dan baris petunjuk di bawah prompt |227| `InfoNotice`, `SessionMode`, `PromptHint` | Baris status di bawah logo, label mode di footer, dan baris petunjuk di bawah prompt |

228 228 

229`Pane`, `AskUserQuestion`, `Spinner`, `UserMessage`, `AssistantMessage`, dan titik render panggilan tool bekerja di terminal, aplikasi Desktop, dan ekstensi VS Code. Tabel [titik render](/docs/id/plugins/mods/reference#render-sites) mencantumkan di mana masing-masing titik render lainnya dimunculkan.

230 

229Di situs yang sudah digambar Claude Code, hook Anda dapat mengubah detail, mengganti gambar, atau membiarkannya. Pilih tab untuk melihat masing-masing diterapkan pada spinner. Contoh membaca variabel `calls` yang hook lain hitung, seperti dalam [mod tutorial](/docs/id/plugins/mods/create#write-a-mod-yourself).231Di situs yang sudah digambar Claude Code, hook Anda dapat mengubah detail, mengganti gambar, atau membiarkannya. Pilih tab untuk melihat masing-masing diterapkan pada spinner. Contoh membaca variabel `calls` yang hook lain hitung, seperti dalam [mod tutorial](/docs/id/plugins/mods/create#write-a-mod-yourself).

230 232 

231<Tabs>233<Tabs>


297 299 

298Dialog izin bukan render site, jadi mod tidak dapat mengubah apa yang ditampilkannya. Dialog pertanyaan, `AskUserQuestion`, adalah satu, jadi mod dapat mengubah itu. Pohon untuk dialog tersebut harus memuat referensi tepat satu kali, dengan elemen Anda di atasnya. Jika tidak, Claude Code menggambar dialognya sendiri.300Dialog izin bukan render site, jadi mod tidak dapat mengubah apa yang ditampilkannya. Dialog pertanyaan, `AskUserQuestion`, adalah satu, jadi mod dapat mengubah itu. Pohon untuk dialog tersebut harus memuat referensi tepat satu kali, dengan elemen Anda di atasnya. Jika tidak, Claude Code menggambar dialognya sendiri.

299 301 

300Terminal dan aplikasi Desktop tidak menaikkan semua situs yang sama. `Pane`, `AbovePrompt`, `Spinner`, dan situs transkrip bekerja di keduanya. Beberapa baris status lainnya hanya diangkat di terminal. Tabel [render sites](/docs/id/plugins/mods/reference#render-sites) mencantumkan di mana masing-masing diangkat.

301 

302<h3 id="open-a-pane-at-the-right-time">302<h3 id="open-a-pane-at-the-right-time">

303 Buka panel pada waktu yang tepat303 Buka panel pada waktu yang tepat

304</h3>304</h3>


328| `rows` | Tinggi untuk diminta saat panel duduk di atas prompt. Default adalah sepertiga dari ruang. |328| `rows` | Tinggi untuk diminta saat panel duduk di atas prompt. Default adalah sepertiga dari ruang. |

329| `columns` | Lebar untuk diminta saat panel duduk di samping transkrip |329| `columns` | Lebar untuk diminta saat panel duduk di samping transkrip |

330 330 

331[Ekstensi VS Code](#draw-in-the-vs-code-extension) mengabaikan `rows` dan `columns` dan menentukan ukuran panel sendiri.

332 

331`focus`, `closeOnEscape`, dan `holdToasts` bersifat opsional dan hanya menerima `true`. Untuk menghilangkan satu, hilangkan saja. Melewatkan `false` melempar kesalahan seperti `ui.open: focus is true or left out`. Untuk menetapkan salah satu dari mereka secara kondisional, tambahkan bidang hanya ketika kondisi berlaku. Panggilan ini meminta fokus keyboard hanya ketika `items` tidak kosong:333`focus`, `closeOnEscape`, dan `holdToasts` bersifat opsional dan hanya menerima `true`. Untuk menghilangkan satu, hilangkan saja. Melewatkan `false` melempar kesalahan seperti `ui.open: focus is true or left out`. Untuk menetapkan salah satu dari mereka secara kondisional, tambahkan bidang hanya ketika kondisi berlaku. Panggilan ini meminta fokus keyboard hanya ketika `items` tidak kosong:

332 334 

333```javascript theme={null}335```javascript theme={null}


356 358 

357Ketika panel muncul, `$.ui.open` diselesaikan ke `{ isPlaced: true }`. Ketika panel menunggu, `isPlaced` adalah `false` dan `reason` adalah string yang mengatakan mengapa. Panel yang menunggu muncul saat pengguna membukanya atau memperlebar terminal. Untuk mengatakan sesuatu tersedia tanpa membuka panel, panggil `$.ui.toast('Your message')`, yang menampilkan notifikasi toast.359Ketika panel muncul, `$.ui.open` diselesaikan ke `{ isPlaced: true }`. Ketika panel menunggu, `isPlaced` adalah `false` dan `reason` adalah string yang mengatakan mengapa. Panel yang menunggu muncul saat pengguna membukanya atau memperlebar terminal. Untuk mengatakan sesuatu tersedia tanpa membuka panel, panggil `$.ui.toast('Your message')`, yang menampilkan notifikasi toast.

358 360 

361<h3 id="draw-in-the-vs-code-extension">

362 Menggambar di ekstensi VS Code

363</h3>

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

366 

367Agar mod bekerja di panel obrolan maupun di terminal, perhatikan perbedaan berikut:

368 

369* **Panel**: di panel obrolan dengan lebar 800 piksel atau lebih, panel menempel di samping percakapan, `e.props.placement` adalah `'dock'`, dan `e.viewport.isFullscreen` adalah `true`. Di panel obrolan yang lebih sempit, panel digambar di atas kotak prompt, `placement` adalah `'inline'`, dan panel menampilkan 12 baris sebelum dapat digulir.

370* **Toast dan baris status**: keduanya berada dalam satu tumpukan tepat di atas kotak prompt, bersama dengan panel ketika panel obrolan sempit, dengan satu baris status per mod. Tumpukan ini disembunyikan selama permintaan izin atau dialog ditampilkan.

371* **Label**: panel obrolan membingkai apa yang digambar atau ditulis ulang oleh mod dan memberinya label dengan nama plugin, seperti **From the token-chart plugin** atau **Edited by the token-chart plugin**.

372* **Keyboard**: tombol tidak memiliki hotkey, sehingga pengguna mengklik tombol atau menekan Enter padanya setelah tombol tersebut mendapat fokus.

373* **Fokus keyboard**: panel obrolan mengabulkan permintaan `focus: true` dari sebuah panel hanya ketika panel obrolan memiliki fokus, Claude sedang idle tanpa pertanyaan yang menunggu, dan kotak prompt kosong.

374* **Dialog pertanyaan**: di `AskUserQuestion`, panel obrolan mempertahankan kartu pertanyaannya sendiri dan menggambar elemen Anda di atasnya. Prop yang Anda teruskan ke `next` tidak mengubah kartu tersebut.

375* **Saran prompt**: `$.prompt.suggest` diselesaikan dengan `isShown: false` dan tidak menampilkan apa pun, karena panel obrolan menyimpan teks saran redup di kotak prompt untuk saran Claude sendiri.

376* **Batas teks**: panel obrolan memotong baris status pada 200 karakter atau dua baris, dan toast pada 500 karakter.

377 

359<h2 id="build-a-tree-from-elements">378<h2 id="build-a-tree-from-elements">

360 Bangun pohon dari elemen379 Bangun pohon dari elemen

361</h2>380</h2>

362 381 

363Apa yang dikembalikan hook `ui.render` adalah pohon elemen: deskripsi apa yang akan digambar, terbuat dari kotak, teks, dan kontrol bersarang di dalam satu sama lain. Anda mendeskripsikan gambar, dan Claude Code merender di terminal atau aplikasi Desktop.382Apa yang dikembalikan hook `ui.render` adalah pohon elemen: deskripsi apa yang akan digambar, terbuat dari kotak, teks, dan kontrol bersarang di dalam satu sama lain. Anda mendeskripsikan gambar, dan Claude Code merendernya di aplikasi mana pun yang dibuka pengguna: terminal, aplikasi Desktop, atau ekstensi VS Code.

364 383 

365Untuk mendapatkan elemen, panggil `$.ui.resolve(e)` dalam hook Anda, seperti dalam `const { Box, Text, Button } = $.ui.resolve(e)`. Setiap elemen adalah fungsi. Anda meneruskan prop, dan Anda menempatkan elemen dan string yang ada di dalamnya dalam `children`.384Untuk mendapatkan elemen, panggil `$.ui.resolve(e)` dalam hook Anda, seperti dalam `const { Box, Text, Button } = $.ui.resolve(e)`. Setiap elemen adalah fungsi. Anda meneruskan prop, dan Anda menempatkan elemen dan string yang ada di dalamnya dalam `children`.

366 385 


440| `Text` | Teks bergaya. Mengambil `color`, `bold`, `dimColor`, `italic`, dan `wrap`. `color` adalah kunci tema atau warna seperti `'red'`. `wrap` adalah `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'`, atau `'truncate-end'`. | Di mana-mana |459| `Text` | Teks bergaya. Mengambil `color`, `bold`, `dimColor`, `italic`, dan `wrap`. `color` adalah kunci tema atau warna seperti `'red'`. `wrap` adalah `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'`, atau `'truncate-end'`. | Di mana-mana |

441| `Button` | Kontrol yang memanggil `onPress` | Di mana-mana |460| `Button` | Kontrol yang memanggil `onPress` | Di mana-mana |

442| `Link`, `Code`, `Markdown` | Tautan dengan `href` dan `label` opsional, blok kode, dan teks yang diformat seperti balasan Claude. `Markdown` mengambil kontennya dalam prop `text`, bukan dalam `children`, dan membutuhkan `key` saat Anda meneruskan `onLinkPress`. | Di mana-mana |461| `Link`, `Code`, `Markdown` | Tautan dengan `href` dan `label` opsional, blok kode, dan teks yang diformat seperti balasan Claude. `Markdown` mengambil kontennya dalam prop `text`, bukan dalam `children`, dan membutuhkan `key` saat Anda meneruskan `onLinkPress`. | Di mana-mana |

443| `Input`, `Select` | Bidang teks dan menu tarik-turun | Terminal, Desktop |462| `Input`, `Select` | Bidang teks dan menu tarik-turun | Terminal, Desktop, VS Code |

444| `Svg` | Dokumen SVG | Desktop |463| `Svg` | Dokumen SVG | Desktop, VS Code |

445| `Client` | Wilayah yang digambar oleh file kedua Anda, untuk animasi dan input pointer. File itu tidak mendapat API mod. File itu mencapai hook Anda dengan memposting data, yang tiba sebagai event `ui.message`. Jika file itu gagal dimuat, digambar, atau dijalankan, hook Anda menerima event [`ui.fault`](/docs/id/plugins/mods/reference#interface). | Terminal, Desktop |464| `Client` | Wilayah yang digambar oleh file kedua Anda, untuk animasi dan input pointer. File itu tidak mendapat API mod. File itu mencapai hook Anda dengan memposting data, yang tiba sebagai event `ui.message`. Jika file itu gagal dimuat, digambar, atau dijalankan, hook Anda menerima event [`ui.fault`](/docs/id/plugins/mods/reference#interface). | Terminal, Desktop |

446| `Raster`, `Image` | [Grid sel berwarna](#draw-a-grid-of-colored-cells), dan gambar | Terminal |465| `Raster`, `Image` | [Grid sel berwarna](#draw-a-grid-of-colored-cells), dan gambar | Terminal |

447 466 


452Dalam sesi yang dimulai dengan `--plugin-dir`, baris transkrip mengatakan demikian, seperti `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. [Debug log](/docs/id/plugins/mods/troubleshoot#read-the-debug-log) mencatatnya sebagai `ui.render (Pane): a hook returned a tree that does not validate` dengan alasan yang sama. Tidak ada yang lain muncul dalam sesi, jadi ketika gambar tidak muncul, periksa baris itu atau log.471Dalam sesi yang dimulai dengan `--plugin-dir`, baris transkrip mengatakan demikian, seperti `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`. [Debug log](/docs/id/plugins/mods/troubleshoot#read-the-debug-log) mencatatnya sebagai `ui.render (Pane): a hook returned a tree that does not validate` dengan alasan yang sama. Tidak ada yang lain muncul dalam sesi, jadi ketika gambar tidak muncul, periksa baris itu atau log.

453 472 

454<h3 id="link-in-the-desktop-app">473<h3 id="link-in-the-desktop-app">

455 `Link` di aplikasi Desktop474 `Link` di aplikasi Desktop dan VS Code

456</h3>475</h3>

457 476 

458Di aplikasi Desktop, `Link` digambar sebagai teks biasa kecuali `href`-nya memenuhi persyaratan berikut:477Di aplikasi Desktop dan ekstensi VS Code, `Link` digambar sebagai teks biasa kecuali `href`-nya memenuhi persyaratan berikut:

459 478 

460* **Skema dan host**: URL `https:`, atau URL `http://localhost` seperti `http://localhost:3000`479* **Skema dan host**: URL `https:`, atau URL `http://localhost` seperti `http://localhost:3000`

461* **Tanpa `@`**: tulis `@` di path atau query sebagai `%40`480* **Tanpa `@`**: tulis `@` di path atau query sebagai `%40`


477 496 

478Untuk peta panas, sparkline, atau papan permainan di terminal, gambar satu `Raster` dan bukan `Box` untuk setiap sel. `Raster` mengambil `key`, ukurannya dalam `columns` dan `rows`, dan `cells`, string base64 yang mengemas setiap sel. Setiap sel adalah tiga angka: titik kode karakter, warnanya, dan warna latar belakangnya. Warna adalah nilai RGB 24-bit dalam heksadesimal, seperti `0xc62828` untuk merah. Nilai `0x01000000`, satu di atas rentang tersebut, berarti default terminal.497Untuk peta panas, sparkline, atau papan permainan di terminal, gambar satu `Raster` dan bukan `Box` untuk setiap sel. `Raster` mengambil `key`, ukurannya dalam `columns` dan `rows`, dan `cells`, string base64 yang mengemas setiap sel. Setiap sel adalah tiga angka: titik kode karakter, warnanya, dan warna latar belakangnya. Warna adalah nilai RGB 24-bit dalam heksadesimal, seperti `0xc62828` untuk merah. Nilai `0x01000000`, satu di atas rentang tersebut, berarti default terminal.

479 498 

480Aplikasi Desktop tidak memiliki `Raster`, jadi periksa `e.surface` dan gambar teks di sana. Badan panel ini menggambar peta panas tiga kali dua:499Aplikasi selain terminal tidak memiliki `Raster`, jadi periksa `e.surface` dan gambar teks di sana. Badan panel ini menggambar peta panas tiga kali dua:

481 500 

482```javascript theme={null}501```javascript theme={null}

483// The value that means "use the terminal's default color"502// The value that means "use the terminal's default color"


535 554 

536Mod Anda tidak pernah membaca keyboard itu sendiri. Pengguna menekan kunci, Claude Code memutuskan kontrol mana yang dimaksudkan, dan callback kontrol itu berjalan. Terlepas dari [pintasan keyboard digit di pita](/docs/id/plugins/mods/reference#elements), itu hanya terjadi saat panel atau pita Anda memiliki fokus keyboard. Sisa waktu, kunci pergi ke prompt.555Mod Anda tidak pernah membaca keyboard itu sendiri. Pengguna menekan kunci, Claude Code memutuskan kontrol mana yang dimaksudkan, dan callback kontrol itu berjalan. Terlepas dari [pintasan keyboard digit di pita](/docs/id/plugins/mods/reference#elements), itu hanya terjadi saat panel atau pita Anda memiliki fokus keyboard. Sisa waktu, kunci pergi ke prompt.

537 556 

557Di [ekstensi VS Code](#draw-in-the-vs-code-extension), tombol tidak memiliki pintasan keyboard: pengguna mengklik tombol atau menekan Enter padanya, dan mengetik ke bidang.

558 

538<h4 id="how-a-pane-gets-keyboard-focus">559<h4 id="how-a-pane-gets-keyboard-focus">

539 Bagaimana panel mendapat fokus keyboard560 Bagaimana panel mendapat fokus keyboard

540</h4>561</h4>


570 Atur pintasan keyboard dan fokus pertama591 Atur pintasan keyboard dan fokus pertama

571</h4>592</h4>

572 593 

573Prop berikut pada kontrol memutuskan bagaimana keyboard mencapainya:

574 

575* **`hotkey`**: untuk membiarkan pengguna menekan `Button` dengan satu kunci, berikan `hotkey` dari satu digit atau satu huruf kecil, seperti dalam `hotkey: 'a'`594* **`hotkey`**: untuk membiarkan pengguna menekan `Button` dengan satu kunci, berikan `hotkey` dari satu digit atau satu huruf kecil, seperti dalam `hotkey: 'a'`

576* **`autoFocus`**: untuk memilih kontrol mana yang memiliki fokus saat panel terbuka, tambahkan `autoFocus: true` ke dalamnya. Prop ini hanya menerima `true`, jadi hilangkan pada kontrol lainnya.595* **`autoFocus`**: untuk memilih kontrol mana yang memiliki fokus saat panel terbuka, tambahkan `autoFocus: true` ke dalamnya. Di [ekstensi VS Code](#draw-in-the-vs-code-extension), `autoFocus` tidak melakukan apa-apa: kontrol digambar seolah-olah Anda tidak menyertakannya, dan Anda tidak perlu mengubah apa pun. Prop ini hanya menerima `true`, jadi hilangkan pada kontrol lainnya.

577 596 

578Bagaimana pintasan keyboard ditampilkan tergantung pada tombol dan aplikasi:597Bagaimana pintasan keyboard ditampilkan tergantung pada tombol dan aplikasi:

579 598 

580| Tombol | Di terminal | Di aplikasi Desktop |599| Tombol | Di terminal | Di aplikasi Desktop | Di ekstensi VS Code |

581| :- | :- | :- |600| :- | :- | :- | :- |

582| Dengan tanda kurung, default | `[ Add one ]`, tanpa pintasan keyboard ditampilkan | Label dengan kunci kecil di sebelahnya |601| Dengan tanda kurung, default | `[ Add one ]`, tanpa pintasan keyboard ditampilkan | Label dengan kunci kecil di sebelahnya | Label, dan pintasan keyboard tidak melakukan apa-apa |

583| Dengan `plain: true` | `1: One` | Label dengan kunci kecil di sebelahnya |602| Dengan `plain: true` | `1: One` | Label dengan kunci kecil di sebelahnya | Label, dan pintasan keyboard tidak melakukan apa-apa |

584 603 

585Di terminal, beri nama kunci dalam label tombol berbingkai, atau gunakan `plain: true`, sehingga pengguna dapat melihat apa yang harus ditekan. [Referensi elemen](/docs/id/plugins/mods/reference#elements) memiliki aturan `Button` lainnya: `action`, pintasan keyboard digit di pita, dan dua tombol pada satu pintasan keyboard.604Di terminal, beri nama kunci dalam label tombol berbingkai, atau gunakan `plain: true`, sehingga pengguna dapat melihat apa yang harus ditekan. [Referensi elemen](/docs/id/plugins/mods/reference#elements) memiliki aturan `Button` lainnya: `action`, pintasan keyboard digit di pita, dan dua tombol pada satu pintasan keyboard.

586 605 

Details

24* **Jalankan kode Anda sendiri pada perintah**: `/command` yang menjalankan fungsi Anda sekaligus, tanpa giliran Claude, bahkan saat Claude sedang bekerja. Lihat [Tambahkan perintah atau alat](/docs/id/plugins/mods/api#add-a-command-or-a-tool).24* **Jalankan kode Anda sendiri pada perintah**: `/command` yang menjalankan fungsi Anda sekaligus, tanpa giliran Claude, bahkan saat Claude sedang bekerja. Lihat [Tambahkan perintah atau alat](/docs/id/plugins/mods/api#add-a-command-or-a-tool).

25* **Bagikan data antar hooks**: hooks mod berbagi variabel dalam file-nya, jadi apa yang dicatat satu hook, hook lain dapat menampilkannya. Misalnya, satu hook dapat menghitung pemanggilan alat sementara hook lain menampilkan hitungan di samping spinner, atau satu dapat membaca penggunaan token setiap permintaan sementara hook lain membuat bagan di pane. Lihat [Bereaksi terhadap acara](/docs/id/plugins/mods/events).25* **Bagikan data antar hooks**: hooks mod berbagi variabel dalam file-nya, jadi apa yang dicatat satu hook, hook lain dapat menampilkannya. Misalnya, satu hook dapat menghitung pemanggilan alat sementara hook lain menampilkan hitungan di samping spinner, atau satu dapat membaca penggunaan token setiap permintaan sementara hook lain membuat bagan di pane. Lihat [Bereaksi terhadap acara](/docs/id/plugins/mods/events).

26 26 

27Mods bekerja di CLI Claude Code dan di tab Code aplikasi Desktop Claude. Lihat [Tempat mod berjalan](#where-mods-run) untuk memahami cara mereka berperilaku di tempat lain, seperti di ekstensi VS Code, `claude -p`, dan sesi cloud. Jika settings hook, skill, atau server MCP sudah melakukan apa yang Anda butuhkan, [bandingkan mereka](#compare-mods-settings-hooks-skills-and-mcp-servers) sebelum Anda menulis mod. Untuk mengelola mods untuk organisasi, lihat [Kelola mods untuk organisasi Anda](/docs/id/plugins/mods/admin).27Mod bekerja di CLI Claude Code, tab Code aplikasi Desktop Claude, dan ekstensi VS Code. Lihat [Tempat mod berjalan](#where-mods-run) untuk memahami cara mod berperilaku di tempat lain, seperti di `claude -p` dan sesi cloud. Jika hook pengaturan, skill, atau server MCP sudah melakukan apa yang Anda butuhkan, [bandingkan mereka](#compare-mods-settings-hooks-skills-and-mcp-servers) sebelum Anda menulis mod. Untuk mengelola mod untuk organisasi, lihat [Kelola mod untuk organisasi Anda](/docs/id/plugins/mods/admin).

28 28 

29<h2 id="get-a-mod">29<h2 id="get-a-mod">

30 Dapatkan mod30 Dapatkan mod


212 Tempat mod berjalan212 Tempat mod berjalan

213</h3>213</h3>

214 214 

215Hook mod berjalan di setiap jenis sesi yang memuat plugin, penyedia mana pun yang melayani model, termasuk Amazon Bedrock, Agent Platform dari Google Cloud, dan Microsoft Foundry. Menggambar lebih sempit: hanya terminal dan aplikasi Desktop yang menampilkan panes, bands, dan baris yang diganti mod. Tabel ini mencantumkan setiap tempat Anda mungkin menjalankan Claude Code:215Hook mod berjalan di setiap jenis sesi yang memuat plugin, penyedia mana pun yang melayani model, termasuk Amazon Bedrock, Agent Platform dari Google Cloud, dan Microsoft Foundry. Menggambar lebih sempit: apa yang digambar mod muncul di terminal, aplikasi Desktop, dan ekstensi VS Code. Tabel ini mencantumkan setiap tempat Anda mungkin menjalankan Claude Code:

216 216 

217| Tempat Anda menjalankan Claude Code | Hook berjalan | Apa yang digambar mod muncul |217| Tempat Anda menjalankan Claude Code | Hook berjalan | Apa yang digambar mod muncul |

218| :- | :- | :- |218| :- | :- | :- |

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

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

6 6 

7> Referensi lengkap untuk mod Claude Code: tata letak modul hook, event, metode API mod, titik render, elemen per surface, batas, dan pengaturan.7> Referensi lengkap untuk mod Claude Code: tata letak modul hook, event, metode API mod, titik render, elemen per surface, batas, dan pengaturan.

8 8 

9Cari event apa pun yang dapat ditangani oleh sebuah [mod](/docs/id/plugins/mods/overview), metode API mod yang dapat dipanggilnya, atau titik render tempat ia dapat menggambar, untuk CLI Claude Code dan aplikasi Desktop per v2.1.290. Setiap entri memberikan nama dan deskripsi satu baris, serta menautkan ke bagian panduan yang menjelaskannya jika ada.9Cari event apa pun yang dapat ditangani oleh sebuah [mod](/docs/id/plugins/mods/overview), metode API mod yang dapat dipanggilnya, atau titik render tempat ia dapat menggambar. Entri mencakup CLI Claude Code dan aplikasi Desktop per v2.1.290, serta ekstensi VS Code per v2.1.299. Setiap entri memberikan nama dan deskripsi satu baris, serta menautkan ke bagian panduan yang menjelaskannya jika ada.

10 10 

11<Note>11<Note>

12 Referensi lengkapnya adalah [deklarasi TypeScript untuk mod](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) milik Claude Code, yang menjelaskan setiap event, metode, dan elemen, beserta contohnya. Salinan di GitHub bisa lebih lama daripada versi Claude Code yang Anda instal. Jika keduanya tidak sesuai, percayai [salinan yang ditulis Claude Code untuk versi Anda](/docs/id/plugins/mods/create#get-the-types-for-your-build).12 Referensi lengkapnya adalah [deklarasi TypeScript untuk mod](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts) milik Claude Code, yang menjelaskan setiap event, metode, dan elemen, beserta contohnya. Salinan di GitHub bisa lebih lama daripada versi Claude Code yang Anda instal. Jika keduanya tidak sesuai, percayai [salinan yang ditulis Claude Code untuk versi Anda](/docs/id/plugins/mods/create#get-the-types-for-your-build).


255 Titik render255 Titik render

256</h2>256</h2>

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` adalah `terminal` atau `desktop`. [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 

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.

259 261 

260| Titik | `e.props` | `e.requestId` | Dirender di |262| Titik | `e.props` | `e.requestId` | Dirender di |

261| :- | :- | :- | :- |263| :- | :- | :- | :- |

262| [`Pane`](/docs/id/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | `id` panel | Terminal, Desktop |264| [`Pane`](/docs/id/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | `id` panel | Terminal, Desktop, VS Code |

263| [`AbovePrompt`](/docs/id/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Satu instans | Terminal, Desktop |265| [`AbovePrompt`](/docs/id/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | Satu instans | Terminal, Desktop |

264| `UserMessage` | `text`, `origin`, `isExpanded`, dan `task` atau `from` tergantung origin | id pesan | Terminal, Desktop |266| `UserMessage` | `text`, `origin`, `isExpanded`, dan `task` atau `from` tergantung origin | id pesan | Terminal, Desktop, VS Code |

265| `AssistantMessage` | Teks balasan | id pesan | Terminal, Desktop |267| `AssistantMessage` | Teks balasan | id pesan | Terminal, Desktop, VS Code |

266| `ToolUse`, `ToolResult`, `ToolGroup` | Nama, input, dan hasil tool | id panggilan tool | Terminal, Desktop |268| `ToolUse`, `ToolResult`, `ToolGroup` | Nama, input, dan hasil tool | id panggilan tool | Terminal, Desktop, VS Code |

267| `CommandOutput` | `command`, `text` | id pesan | Terminal, Desktop |269| `CommandOutput` | `command`, `text` | id pesan | Terminal, Desktop |

268| [`AskUserQuestion`](/docs/id/plugins/mods/interface#change-what-claude-code-already-draws) | Pertanyaan dan opsi | id panggilan tool | Terminal, Desktop |270| [`AskUserQuestion`](/docs/id/plugins/mods/interface#change-what-claude-code-already-draws) | Pertanyaan dan opsi | id panggilan tool | Terminal, Desktop, VS Code |

269| `ToolProgress` | `kind` | id panggilan tool | Terminal |271| `ToolProgress` | `kind` | id panggilan tool | Terminal |

270| [`Spinner`](/docs/id/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | id agent | Terminal, Desktop |272| [`Spinner`](/docs/id/plugins/mods/interface#change-what-claude-code-already-draws) | `word`, `message`, `suffix`, `mode` | id agent | Terminal, Desktop, VS Code |

271| `TurnDuration` | `word`, `durationMs` | id pesan | Terminal |273| `TurnDuration` | `word`, `durationMs` | id pesan | Terminal |

272| `InfoNotice` | `text`, `command` | id pesan | Terminal |274| `InfoNotice` | `text`, `command` | id pesan | Terminal |

273| `SessionMode` | `modes` | Satu instans | Terminal, Desktop |275| `SessionMode` | `modes` | Satu instans | Terminal, Desktop |

274| `PromptHint` | `isDraft`, `isWorking`, `hint` | Satu instans | Terminal, Desktop |276| `PromptHint` | `isDraft`, `isWorking`, `hint` | Satu instans | Terminal, Desktop |

275 277 

276`e.viewport` memuat `columns`, `rows`, dan `isFullscreen`. Nilai ini tidak ada sampai aplikasi telah mengukur jendelanya. `rows`-nya adalah tinggi seluruh jendela, bukan tinggi panel Anda.278`e.viewport` memuat `columns`, `rows`, dan `isFullscreen`. Di terminal dan aplikasi Desktop, nilai ini tidak ada sampai aplikasi telah mengukur jendelanya. Di sana, `rows`-nya adalah tinggi seluruh jendela, bukan tinggi panel Anda. Di ekstensi VS Code, nilai ini selalu ada.

277 279 

278Untuk menyesuaikan sebuah tree dengan titiknya, baca prop berikut di dalam hook:280Untuk menyesuaikan sebuah tree dengan titiknya, baca prop berikut di dalam hook:

279 281 

280* **Lebar sebuah `Pane` atau band**: gambar sesuai `e.props.bodyColumns`282* **Lebar sebuah `Pane` atau band**: gambar sesuai `e.props.bodyColumns`

281* **Tinggi sebuah `Pane` di samping transkrip**: jika `e.props.placement` adalah `'dock'`, `e.props.scroll.bodyRows` adalah jumlah baris yang dimiliki panel untuk tree Anda283* **Tinggi sebuah `Pane` di samping transkrip**: jika `e.props.placement` adalah `'dock'`, `e.props.scroll.bodyRows` adalah jumlah baris yang dimiliki panel untuk tree Anda

282* **Tinggi sebuah `Pane` di atas prompt**: jika `e.props.placement` adalah `'inline'`, panel bertambah sesuai tree Anda hingga suatu batas, dan `bodyRows` adalah batas tersebut. [Field `rows` dari `$.ui.open`](/docs/id/plugins/mods/interface#open-a-pane-at-the-right-time) meminta batas yang berbeda.284* **Tinggi sebuah `Pane` di atas prompt**: jika `e.props.placement` adalah `'inline'`, panel bertambah sesuai tree Anda hingga suatu batas, dan `bodyRows` adalah batas tersebut. Untuk meminta batas yang berbeda, lihat [field `rows` dari `$.ui.open`](/docs/id/plugins/mods/interface#open-a-pane-at-the-right-time).

283 285 

284Tree yang lebih tinggi daripada panel akan bergulir secara keseluruhan.286Tree yang lebih tinggi daripada panel akan bergulir secara keseluruhan.

285 287 


289 291 

290Elemen adalah blok penyusun tree yang dikembalikan oleh hook `ui.render`, dan Anda mendapatkannya dari `$.ui.resolve(e)`. [Membangun tree dari elemen](/docs/id/plugins/mods/interface#build-a-tree-from-elements) menunjukkan elemen yang umum beserta cara terminal menggambarnya, dan [galeri antarmuka](/docs/id/plugins/mods/gallery) memiliki tangkapan layar sebagian besar elemen. Tanda centang berarti aplikasi dapat menggambar elemen tersebut.292Elemen adalah blok penyusun tree yang dikembalikan oleh hook `ui.render`, dan Anda mendapatkannya dari `$.ui.resolve(e)`. [Membangun tree dari elemen](/docs/id/plugins/mods/interface#build-a-tree-from-elements) menunjukkan elemen yang umum beserta cara terminal menggambarnya, dan [galeri antarmuka](/docs/id/plugins/mods/gallery) memiliki tangkapan layar sebagian besar elemen. Tanda centang berarti aplikasi dapat menggambar elemen tersebut.

291 293 

292| Elemen | Prop utama | Terminal | Desktop |294| Elemen | Prop utama | Terminal | Desktop | VS Code |

293| :- | :- | :-: | :-: |295| :- | :- | :-: | :-: | :-: |

294| [`Box`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `key`, tata letak flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |296| [`Box`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `key`, tata letak flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ | ✓ |

295| [`Text`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |297| [`Text`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ | ✓ |

296| [`Button`](/docs/id/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |298| [`Button`](/docs/id/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ | ✓ |

297| [`Link`](/docs/id/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Lihat [Batasan](#limits). | ✓ | ✓ |299| [`Link`](/docs/id/plugins/mods/interface#link-in-the-desktop-app) | `href`, `label`. Lihat [Batasan](#limits). | ✓ | ✓ | ✓ |

298| [`Code`](/docs/id/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ |300| [`Code`](/docs/id/plugins/mods/gallery#show-code-and-changes) | `source`, `language`, `path`, `startLine`, `format`, `wrap` | ✓ | ✓ | ✓ |

299| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ |301| `Markdown` | `text`, `key`, `dimColor`, `onLinkPress`, `pressableLinks` | ✓ | ✓ | ✓ |

300| [`Input`](/docs/id/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ |302| [`Input`](/docs/id/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`, `label`, `placeholder`, `value`, `submitLabel`, `onSubmit`, `onInput`, `autoFocus` | ✓ | ✓ | ✓ |

301| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ |303| `Select` | `key`, `label`, `options`, `value`, `onSelect`, `autoFocus` | ✓ | ✓ | ✓ |

302| `Svg` | Dokumen SVG, hingga 131.072 karakter | | ✓ |304| `Svg` | Dokumen SVG, hingga 131.072 karakter | | ✓ | ✓ |

303| [`Client`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ |305| [`Client`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `module`, `key` | ✓ | ✓ | |

304| [`Raster`](/docs/id/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` hingga 512, `rows` hingga 256, `cells`. Lihat [Menggambar grid sel berwarna](/docs/id/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | |306| [`Raster`](/docs/id/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` hingga 512, `rows` hingga 256, `cells`. Lihat [Menggambar grid sel berwarna](/docs/id/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | | |

305| `Image` | Byte PNG atau RGBA hingga 2 MiB, atau path file, `columns` dan `rows` hingga 255, serta teks `alt`. | ✓ | |307| `Image` | Byte PNG atau RGBA hingga 2 MiB, atau path file, `columns` dan `rows` hingga 255, serta teks `alt`. | ✓ | | |

306 308 

307Aturan `Button` lainnya: `action` menyebutkan salah satu [aksi pintasan keyboard](/docs/id/keybindings) milik Claude Code sendiri, dan pintasan keyboard pengguna untuk aksi tersebut akan menekan tombol jika pintasan itu berupa chord atau tombol dengan modifier. `hotkey` berupa digit pada tombol di band juga terpicu saat pengguna mengetik digit tersebut saja ke dalam prompt kosong lalu berhenti sejenak. Jika dua tombol dalam satu gambar menyebutkan `hotkey` yang sama, tombol yang lebih belakang yang mendapatkannya. `autoFocus` hanya menerima `true` pada kontrol apa pun, jadi hilangkan prop tersebut untuk menonaktifkannya.309Aturan `Button` lainnya: `action` menyebutkan salah satu [aksi pintasan keyboard](/docs/id/keybindings) milik Claude Code sendiri, dan pintasan keyboard pengguna untuk aksi tersebut akan menekan tombol jika pintasan itu berupa chord atau tombol dengan modifier. `hotkey` berupa digit pada tombol di band juga terpicu saat pengguna mengetik digit tersebut saja ke dalam prompt kosong lalu berhenti sejenak. Jika dua tombol dalam satu gambar menyebutkan `hotkey` yang sama, tombol yang lebih belakang yang mendapatkannya. `autoFocus` hanya menerima `true` pada kontrol apa pun, jadi hilangkan prop tersebut untuk menonaktifkannya.

308 310 

311Ekstensi VS Code mengabaikan beberapa prop elemen dan menggambar elemen seolah-olah Anda tidak menyertakannya:

312 

313* **`Box`**: `position` dan `hover`

314* **`Button`**: `hotkey`, `plain`, `autoFocus`, dan `action`, sehingga pengguna menekan tombol di sana dengan klik, atau dengan Enter setelah tombol tersebut mendapatkan fokus

315* **`Code`**: `language`, `path`, `startLine`, `format`, dan `wrap`, sehingga kode digambar tanpa warna atau nomor baris, dan blok `format: 'diff'` menampilkan teks mentah diff tersebut

316* **`Input` dan `Select`**: `autoFocus`

317 

309<h3 id="box-border-styles">318<h3 id="box-border-styles">

310 Gaya border `Box`319 Gaya border `Box`

311</h3>320</h3>

Details

289 Hotkey tidak melakukan apa pun289 Hotkey tidak melakukan apa pun

290</h3>290</h3>

291 291 

292Pane Anda tidak memiliki fokus keyboard.292Pane Anda tidak memiliki fokus keyboard, atau gambar berada di ekstensi VS Code, tempat tombol tidak memiliki hotkey. Lakukan yang sesuai:

293 293 

294Tekan Ctrl+X kemudian Tab, atau klik pane. Buka dengan `focus: true` dari perintah.294* **Tidak ada fokus keyboard**: tekan Ctrl+X kemudian Tab, atau klik pane. Agar pane mengambil fokus saat dibuka, buka pane tersebut dengan `focus: true` dari perintah.

295* **Di ekstensi VS Code**: klik tombol, atau tekan Enter pada tombol tersebut setelah tombol itu mendapat fokus

295 296 

296<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app">297<h3 id="a-drawing-works-in-the-terminal-and-not-in-the-desktop-app-or-vs-code">

297 Gambar bekerja di terminal dan bukan di Desktop app298 Gambar bekerja di terminal dan bukan di Desktop app atau VS Code

298</h3>299</h3>

299 300 

300Titik render atau elemen tidak tersedia di sana.301Aplikasi tersebut tidak menggambar titik render atau elemen tersebut, atau sesi tersebut adalah sesi di mana ekstensi VS Code tidak menggambar apa pun untuk mod. Hook lain dari mod tersebut tetap berjalan. Periksa penyebab berikut:

301 302 

302Periksa tabel [titik render](/docs/id/plugins/mods/reference#render-sites) dan [elemen](/docs/id/plugins/mods/reference#elements).303* **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.

304* **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.

305* **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.

303 306 

304<h2 id="an-edit-or-a-value-is-lost">307<h2 id="an-edit-or-a-value-is-lost">

305 Edit atau nilai hilang308 Edit atau nilai hilang

Details

72 | `-d`, `--debug[=<filter>]` | Aktifkan logging debug untuk server, secara opsional disaring berdasarkan kategori. Lewatkan filter hanya dalam bentuk `=`, seperti `--debug=api,hooks`. Memerlukan Claude Code v2.1.282 atau lebih baru. |72 | `-d`, `--debug[=<filter>]` | Aktifkan logging debug untuk server, secara opsional disaring berdasarkan kategori. Lewatkan filter hanya dalam bentuk `=`, seperti `--debug=api,hooks`. Memerlukan Claude Code v2.1.282 atau lebih baru. |

73 | `--debug-file <path>` | Tulis log debug ke file yang diberikan. |73 | `--debug-file <path>` | Tulis log debug ke file yang diberikan. |

74 | `--verbose` | Tampilkan log koneksi dan sesi terperinci. |74 | `--verbose` | Tampilkan log koneksi dan sesi terperinci. |

75 | `--sandbox`, `--no-sandbox` | Dihapus di v2.1.300. Jika Anda melewatkan salah satu flag ini, server [keluar dengan kesalahan](/docs/id/errors#sandbox-is-not-supported-by-claude-remote-control) alih-alih dimulai. |

75 76 

76 Jika Anda melewatkan flag global `claude` sebelum `remote-control`, atau skrip wrapper menambahkan satu, Claude Code tidak membawa flag ke sesi yang dibuat server. Claude Code membiarkan flag melewati hanya ketika menjatuhkannya diketahui tidak mengubah apa yang dapat dilakukan sesi tersebut, seperti `--verbose` atau `--model`. Untuk flag lainnya, seperti `--settings`, Claude Code [menolak untuk memulai](/docs/id/errors#not-carried-over-to-the-sessions-remote-control-starts) dan menyebutkan flag yang akan dihapus.77 Jika Anda melewatkan flag global `claude` sebelum `remote-control`, atau skrip wrapper menambahkan satu, Claude Code tidak membawa flag ke sesi yang dibuat server. Claude Code membiarkan flag melewati hanya ketika menjatuhkannya diketahui tidak mengubah apa yang dapat dilakukan sesi tersebut, seperti `--verbose` atau `--model`. Untuk flag lainnya, seperti `--settings`, Claude Code [menolak untuk memulai](/docs/id/errors#not-carried-over-to-the-sessions-remote-control-starts) dan menyebutkan flag yang akan dihapus.

77 78 

skills.md +8 −2

Details

720 720 

721Anda juga dapat menumpuk beberapa skill di awal satu pesan. Mengetik `/write-tests /fix-issue 123` memuat kedua skill dan meneruskan teks di belakangnya, `123`, sebagai `$ARGUMENTS` ke masing-masing skill.721Anda juga dapat menumpuk beberapa skill di awal satu pesan. Mengetik `/write-tests /fix-issue 123` memuat kedua skill dan meneruskan teks di belakangnya, `123`, sebagai `$ARGUMENTS` ke masing-masing skill.

722 722 

723Claude Code memperluas skill pertama ditambah hingga lima skill lagi yang ditumpuk setelahnya. Perluasan berhenti pada token pertama yang bukan skill inline yang dapat dipanggil pengguna, sehingga skill yang berjalan sebagai [subagent hasil fork](#run-skills-in-a-subagent), seperti [`/code-review`](/docs/id/code-review#review-a-diff-locally), atau skill yang argumennya sendiri dapat diawali dengan perintah garis miring, seperti `/loop`, juga mengakhiri rangkaian di sana. Token tersebut dan semua yang mengikutinya menjadi teks argumen untuk setiap skill yang diperluas. `/code-review` berjalan sebagai subagent hasil fork sejak v2.1.218; pada versi sebelumnya, skill ini berjalan inline dan dapat ditumpuk.723Claude Code memperluas skill pertama ditambah hingga lima skill lagi yang ditumpuk setelahnya. Perluasan berhenti pada token pertama yang bukan skill inline yang dapat dipanggil pengguna, sehingga skill yang berjalan sebagai [subagent hasil fork](#run-skills-in-a-subagent), seperti [`/code-review`](/docs/id/code-review-local), atau skill yang argumennya sendiri dapat diawali dengan perintah garis miring, seperti `/loop`, juga mengakhiri rangkaian di sana. Token tersebut dan semua yang mengikutinya menjadi teks argumen untuk setiap skill yang diperluas. `/code-review` berjalan sebagai subagent hasil fork sejak v2.1.218; pada versi sebelumnya, skill ini berjalan inline dan dapat ditumpuk.

724 724 

725Untuk mengakses argumen individual berdasarkan posisi, gunakan `$ARGUMENTS[N]` atau bentuk yang lebih pendek `$N`:725Untuk mengakses argumen individual berdasarkan posisi, gunakan `$ARGUMENTS[N]` atau bentuk yang lebih pendek `$N`:

726 726 


832 832 

833Dengan shell `bash` default, tambahkan `|| true` ke perintah lain apa pun yang Anda harapkan keluar non-nol. Skrip pemeriksaan yang keluar 1 ketika menemukan masalah adalah satu contoh.833Dengan shell `bash` default, tambahkan `|| true` ke perintah lain apa pun yang Anda harapkan keluar non-nol. Skrip pemeriksaan yang keluar 1 ketika menemukan masalah adalah satu contoh.

834 834 

835<h4 id="control-characters-in-injected-commands">

836 Karakter kontrol dalam perintah yang diinjeksi

837</h4>

838 

839`No shell command in <name> was run` berarti salah satu perintah `!` dalam file berisi karakter kontrol mentah selain tab atau baris baru, sehingga tidak satu pun dari perintah tersebut dijalankan. Lihat [cara menemukan dan menghapus karakter tersebut](/docs/id/errors#no-shell-command-was-run).

840 

835<h4 id="permission-checks-on-injected-commands">841<h4 id="permission-checks-on-injected-commands">

836 Pemeriksaan izin pada perintah yang diinjeksi842 Pemeriksaan izin pada perintah yang diinjeksi

837</h4>843</h4>


865 871 

866Fork yang di-background juga berjalan dengan [set alat yang lebih sempit yang berlaku untuk subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background): subagent skill adalah tipe agen reguler, jadi pengecualian untuk subagent yang mem-fork percakapan tidak mencakupnya. Jika langkah skill Anda bergantung pada alat di luar set itu, atur `background: false` untuk menjaga set alat penuh.872Fork yang di-background juga berjalan dengan [set alat yang lebih sempit yang berlaku untuk subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background): subagent skill adalah tipe agen reguler, jadi pengecualian untuk subagent yang mem-fork percakapan tidak mencakupnya. Jika langkah skill Anda bergantung pada alat di luar set itu, atur `background: false` untuk menjaga set alat penuh.

867 873 

868Skill yang di-fork yang berjalan di latar belakang menerapkan editnya di luar [checkpoints](/docs/id/checkpointing) sesi Anda, jadi `/rewind` tidak membatalkannya; gunakan git untuk mengembalikannya.874Skill yang di-fork yang berjalan di latar belakang menerapkan editnya di luar [checkpoint](/docs/id/checkpointing#subagent-edits-not-restored) sesi Anda. Setelah skill tersebut berjalan, `/rewind` hanya memulihkan file yang sudah diedit Claude dalam percakapan Anda. Edit skill pada file lain tetap ada, jadi gunakan git untuk mengembalikannya.

869 875 

870<Warning>876<Warning>

871 `context: fork` hanya masuk akal untuk skills dengan instruksi eksplisit. Jika skill Anda berisi pedoman seperti "gunakan konvensi API ini" tanpa tugas, subagent menerima pedoman tetapi tidak ada prompt yang dapat ditindaklanjuti, dan kembali tanpa output yang bermakna.877 `context: fork` hanya masuk akal untuk skills dengan instruksi eksplisit. Jika skill Anda berisi pedoman seperti "gunakan konvensi API ini" tanpa tugas, subagent menerima pedoman tetapi tidak ada prompt yang dapat ditindaklanjuti, dan kembali tanpa output yang bermakna.

ultrareview.md +1 −1

Details

18* **Cakupan yang lebih luas**: armada agen peninjau yang lebih besar menjelajahi perubahan secara paralel, yang mengungkap masalah yang mungkin terlewatkan oleh tinjauan lokal18* **Cakupan yang lebih luas**: armada agen peninjau yang lebih besar menjelajahi perubahan secara paralel, yang mengungkap masalah yang mungkin terlewatkan oleh tinjauan lokal

19* **Tidak ada penggunaan sumber daya lokal**: tinjauan berjalan sepenuhnya dalam sandbox cloud, sehingga terminal Anda tetap bebas untuk pekerjaan lain saat berjalan19* **Tidak ada penggunaan sumber daya lokal**: tinjauan berjalan sepenuhnya dalam sandbox cloud, sehingga terminal Anda tetap bebas untuk pekerjaan lain saat berjalan

20 20 

21Ultrareview memerlukan autentikasi dengan akun claude.ai karena berjalan sebagai sesi cloud pada infrastruktur Anthropic. Jika Anda masuk hanya dengan kunci API, jalankan `/login` dan autentikasi dengan claude.ai terlebih dahulu. Ultrareview tidak tersedia saat menggunakan Claude Code dengan Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry, dan tidak tersedia untuk organisasi yang telah mengaktifkan Zero Data Retention atau menerapkan [konfigurasi HIPAA](/docs/id/hipaa-setup). Ketika ultrareview tidak tersedia, `/code-review ultra` menjalankan tinjauan lokal dalam sesi Anda sebagai gantinya.21Ultrareview memerlukan autentikasi dengan akun claude.ai karena berjalan sebagai sesi cloud pada infrastruktur Anthropic. Jika Anda masuk hanya dengan kunci API, jalankan `/login` dan autentikasi dengan claude.ai terlebih dahulu. Ultrareview tidak tersedia saat menggunakan Claude Code dengan Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry, dan tidak tersedia untuk organisasi yang telah mengaktifkan Zero Data Retention atau menerapkan [konfigurasi HIPAA](/docs/id/hipaa-setup). Dalam kasus-kasus ini, `/code-review ultra` menjalankan tinjauan lokal dalam sesi Anda sebagai gantinya. Organisasi yang menggunakan [kunci enkripsi yang dikelola pelanggan](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) tidak dapat menjalankan ultrareview. Untuk meninjau perubahan Anda secara lokal, jalankan `/code-review`.

22 22 

23<h2 id="run-ultrareview-from-the-cli">23<h2 id="run-ultrareview-from-the-cli">

24 Jalankan ultrareview dari CLI24 Jalankan ultrareview dari CLI

vs-code.md +76 −2

Details

220* Jika pemberitahuan seperti `Removed 3 invisible characters from the pasted text` muncul ketika Anda menempel, teks masuk tanpa karakter tersebut.220* Jika pemberitahuan seperti `Removed 3 invisible characters from the pasted text` muncul ketika Anda menempel, teks masuk tanpa karakter tersebut.

221* Jika pemberitahuan tentang karakter yang dihapus muncul ketika Anda mengirim, tidak ada yang dikirim. Teks yang dibersihkan kembali di kotak prompt. Kirim lagi untuk mengirim teks seperti yang ditampilkan.221* Jika pemberitahuan tentang karakter yang dihapus muncul ketika Anda mengirim, tidak ada yang dikirim. Teks yang dibersihkan kembali di kotak prompt. Kirim lagi untuk mengirim teks seperti yang ditampilkan.

222 222 

223<h3 id="latex-math-in-responses">

224 Matematika LaTeX dalam respons

225</h3>

226 

227Panel obrolan menampilkan matematika LaTeX dalam respons Claude sebagai rumus yang di-typeset. Rendering matematika memerlukan Claude Code v2.1.301 atau lebih baru. Dalam [mode terminal](#switch-to-terminal-mode), matematika tidak di-typeset. Panel men-typeset matematika display maupun matematika inline:

228 

229* **Matematika display**: blok `$$ … $$` atau `\[ … \]` pada satu atau beberapa baris tersendiri, dan blok kode berpagar dengan `math` sebagai bahasanya

230* **Matematika inline**: `$…$` atau `\(…\)` yang dibuka dan ditutup pada baris yang sama, seperti `$E = mc^2$` atau `\(a^2 + b^2 = c^2\)`

231 

232Panel mencoba membedakan matematika dari penggunaan lain karakter yang sama, sehingga teks seperti `$HOME`, harga seperti `$5`, atau `sed 's/\(foo\)/\1/'` tidak di-typeset. Begitu pula teks di dalam code span atau di dalam blok kode apa pun selain blok `math` berpagar. Jika sebuah rumus ditampilkan seperti yang ditulis padahal Anda mengharapkannya di-typeset, lihat [Rumus ditampilkan sebagai LaTeX mentah](#a-formula-shows-as-raw-latex).

233 

234Ketika Anda memilih dan menyalin teks yang mencakup rumus yang di-typeset, Anda mendapatkan sumber TeX rumus tersebut dalam pembatas `$…$` atau `$$…$$` alih-alih simbol yang digambar. [**Copy response**](#use-the-prompt-box) dan `/copy` memberi Anda respons seperti yang ditulis Claude, termasuk sumber TeX.

235 

223<h3 id="resume-past-conversations">236<h3 id="resume-past-conversations">

224 Lanjutkan percakapan masa lalu237 Lanjutkan percakapan masa lalu

225</h3>238</h3>

226 239 

227Klik tombol **Session history** di bagian atas panel Claude Code untuk mengakses riwayat percakapan Anda. Anda dapat mencari berdasarkan kata kunci atau menelusuri berdasarkan waktu.240Klik tombol **Session history** di bagian atas panel Claude Code untuk mengakses riwayat percakapan Anda. Anda dapat mencari berdasarkan kata kunci atau menelusuri berdasarkan waktu.

228 241 

229Klik percakapan apa pun untuk melanjutkannya dengan riwayat pesan lengkap. Jika percakapan sudah terbuka di tab lain dari jendela saat ini, mengkliknya akan beralih ke tab itu. Untuk informasi lebih lanjut tentang melanjutkan sesi, lihat [Manage sessions](/docs/id/sessions).242Klik percakapan apa pun untuk melanjutkannya dengan riwayat pesan lengkap. Jika percakapan sudah terbuka di tab lain dari jendela saat ini, mengkliknya akan beralih ke tab itu. 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 [Manage sessions](/docs/id/sessions).

230 243 

231* **Session titles**: sesi baru menerima judul yang dihasilkan AI berdasarkan pesan pertama Anda.244* **Session titles**: sesi baru menerima judul yang dihasilkan AI berdasarkan pesan pertama Anda.

232* **Rename and archive**: arahkan kursor ke sesi untuk mengungkapkan tindakan ini. Rename untuk memberikannya judul deskriptif, atau archive untuk memindahkannya ke grup **Archived sessions** di bagian bawah daftar.245* **Rename and archive**: arahkan kursor ke sesi untuk mengungkapkan tindakan ini. Rename untuk memberikannya judul deskriptif, atau archive untuk memindahkannya ke grup **Archived sessions** di bagian bawah daftar.


321* **Editor tab**: percakapan kembali dengan tabnya.334* **Editor tab**: percakapan kembali dengan tabnya.

322* **Sidebar**: percakapan kembali jika Anda mengirim pesan atau Claude merespons di dalamnya dalam 10 menit terakhir. Jika tidak kembali, lanjutkan percakapan dari [Session history](#resume-past-conversations).335* **Sidebar**: percakapan kembali jika Anda mengirim pesan atau Claude merespons di dalamnya dalam 10 menit terakhir. Jika tidak kembali, lanjutkan percakapan dari [Session history](#resume-past-conversations).

323 336 

324Jika proses Claude Code lain masih membuka percakapan tersebut, Anda akan ditanya sebelum percakapan dibuka di sini, dengan pemberitahuan **Open here anyway** yang sama seperti saat Anda [melanjutkannya dari riwayat sesi](#resume-past-conversations).337Jika proses Claude Code lain masih membuka percakapan tersebut, Anda akan ditanya sebelum percakapan dibuka di sini, dengan pemberitahuan **Open here anyway** yang sama seperti saat Anda [melanjutkannya dari riwayat sesi](#resume-past-conversations). Jika pesan-pesan tetap kosong pada awalnya, lihat [mengapa pesan kosong dan kapan pesan tersebut muncul](#a-resumed-conversation-is-blank-at-first).

325 338 

326Jika reload mengganggu Claude di tengah-tengah langkah, Claude melanjutkan langkah tersebut ketika percakapan kembali, dan pemberitahuan di chat menandai kelanjutannya. Memerlukan Claude Code v2.1.274 atau lebih baru. Jika langkah tersebut terganggu lebih dari satu jam yang lalu atau sesi terbuka di tempat lain, percakapan kembali dalam keadaan idle.339Jika reload mengganggu Claude di tengah-tengah langkah, Claude melanjutkan langkah tersebut ketika percakapan kembali, dan pemberitahuan di chat menandai kelanjutannya. Memerlukan Claude Code v2.1.274 atau lebih baru. Jika langkah tersebut terganggu lebih dari satu jam yang lalu atau sesi terbuka di tempat lain, percakapan kembali dalam keadaan idle.

327 340 

328Untuk mematikan kelanjutan, buka [pengaturan Continue After Reload](vscode://settings/claudeCode.continueAfterReload) dan hapus centangnya. Mengatur [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/id/env-vars#variables) atau variabel `CLAUDE_CODE_RESUME_` lainnya di lingkungan VS Code atau di [pengaturan `environmentVariables`](#extension-settings) tidak berpengaruh di panel, karena ekstensi menghapus variabel-variabel tersebut sebelum memulai sesi panel.341Untuk mematikan kelanjutan, buka [pengaturan Continue After Reload](vscode://settings/claudeCode.continueAfterReload) dan hapus centangnya. Mengatur [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/id/env-vars#variables) atau variabel `CLAUDE_CODE_RESUME_` lainnya di lingkungan VS Code atau di [pengaturan `environmentVariables`](#extension-settings) tidak berpengaruh di panel, karena ekstensi menghapus variabel-variabel tersebut sebelum memulai sesi panel.

329 342 

343<h4 id="a-conversation-was-not-reopened">

344 Percakapan tidak dibuka kembali

345</h4>

346 

347Setelah reload, chat baru dengan pemberitahuan seperti ini di atas kotak prompt-nya berarti panel membiarkan percakapan Anda tertutup karena dua kali pembukaan terakhir percakapan tersebut tidak selesai:

348 

349```text theme={null}

350“Fix the login bug” was not reopened. It did not finish opening the last 2 times, and opening it again may stop Claude Code from responding here.

351```

352 

353Pembukaan tidak selesai ketika panel crash atau berhenti merespons saat memuat percakapan, atau ketika Anda melakukan reload atau menutup jendela dalam waktu sekitar tiga detik setelah percakapan dibuka. Tidak ada yang hilang: percakapan tidak berubah dan tetap ada di [Session history](#resume-past-conversations).

354 

355* **Untuk tetap membukanya**: klik **Open it anyway** atau pilih percakapan dari Session history. Jika percakapan terbuka dan panel tetap berfungsi, percakapan akan kembali setelah reload berikutnya seperti biasa. Jika panel berhenti merespons lagi, lakukan reload jendela untuk kembali ke chat baru dengan pemberitahuan tersebut.

356* **Untuk membiarkannya tertutup**: lanjutkan bekerja di chat baru. Pemberitahuan akan hilang setelah Anda mengirim prompt.

357 

330<h3 id="run-multiple-conversations">358<h3 id="run-multiple-conversations">

331 Jalankan beberapa percakapan359 Jalankan beberapa percakapan

332</h3>360</h3>


464 492 

465Untuk informasi lebih lanjut tentang sistem plugin, lihat [Plugin](/docs/id/plugins/overview) dan [Plugin marketplaces](/docs/id/plugins/overview).493Untuk informasi lebih lanjut tentang sistem plugin, lihat [Plugin](/docs/id/plugins/overview) dan [Plugin marketplaces](/docs/id/plugins/overview).

466 494 

495<h3 id="plugins-that-draw-in-the-panel">

496 Plugin yang menggambar di panel

497</h3>

498 

499Plugin 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 semacam itu Anda dapat melihat:

500 

501* Panel di samping percakapan atau di atas kotak prompt

502* Toast atau baris status di atas kotak prompt

503* Pesan atau panggilan tool yang digambar dengan cara plugin itu sendiri

504 

505Ketika plugin yang Anda instal menambahkan atau mengubah sesuatu di panel, sebuah label menamainya, dengan frasa seperti berikut:

506 

507* **From the token-chart plugin**: plugin menggambar atau mencetak ini, atau kartu ini adalah plugin yang menanyakan sesuatu kepada Anda

508* **Edited by the token-chart plugin**: plugin mengubah sesuatu yang digambar Claude Code, seperti panggilan tool

509* **Prompt from the token-chart plugin**: plugin mengirim pesan ini atas nama Anda

510 

511Untuk menghentikan plugin menggambar, matikan plugin di [dialog plugin](#install-plugins).

512 

467<h2 id="automate-browser-tasks-with-chrome">513<h2 id="automate-browser-tasks-with-chrome">

468 Otomatisasi tugas browser dengan Chrome514 Otomatisasi tugas browser dengan Chrome

469</h2>515</h2>


898 944 

899Alternatifnya, ikat ulang ekstensi ke tombol yang berbeda: buka editor [Keyboard Shortcuts](https://code.visualstudio.com/docs/configure/keybindings) VS Code (`Cmd+K Cmd+S`), cari `Claude Code: Focus input`, dan tetapkan pengikatan baru.945Alternatifnya, ikat ulang ekstensi ke tombol yang berbeda: buka editor [Keyboard Shortcuts](https://code.visualstudio.com/docs/configure/keybindings) VS Code (`Cmd+K Cmd+S`), cari `Claude Code: Focus input`, dan tetapkan pengikatan baru.

900 946 

947<h3 id="a-resumed-conversation-is-blank-at-first">

948 Percakapan yang dilanjutkan awalnya kosong

949</h3>

950 

951Ketika Anda [melanjutkan percakapan sebelumnya](#resume-past-conversations) atau sebuah percakapan [kembali setelah pemuatan ulang](#continue-conversations-after-a-reload), pesan-pesannya dapat tetap kosong selama proses Claude Code untuk percakapan tersebut dimulai. Setelah sekitar satu detik, `Waiting for your plugins…` muncul di ruang kosong tersebut.

952 

953Anda tidak perlu melakukan apa pun. Pesan-pesan akan muncul setelah proses dimulai dan memastikan bahwa tidak ada plugin yang perlu memeriksanya terlebih dahulu, atau setelah 20 detik jika proses memulai memakan waktu lebih lama.

954 

955<h3 id="the-panel-stops-responding-each-time-a-reload-reopens-a-conversation">

956 Panel berhenti merespons setiap kali pemuatan ulang membuka kembali percakapan

957</h3>

958 

959Jika seluruh panel mengalami crash, membeku, atau hanya menampilkan `Something went wrong` setiap kali Anda memuat ulang dan percakapan Anda kembali, perbarui ekstensi ke v2.1.301 atau lebih baru. Kemudian muat ulang jendela atau mulai ulang VS Code lagi. Setelah percakapan gagal selesai dibuka dua kali berturut-turut, Anda mendapatkan obrolan baru sebagai gantinya, dengan pemberitahuan bahwa [percakapan tersebut tidak dibuka kembali](#a-conversation-was-not-reopened).

960 

961<h3 id="a-formula-shows-as-raw-latex">

962 Rumus ditampilkan sebagai LaTeX mentah

963</h3>

964 

965Jika tidak ada matematika dalam respons Claude yang di-typeset, periksa versi ekstensi di tampilan Extensions, karena [rendering matematika](#latex-math-in-responses) memerlukan versi 2.1.301 atau lebih baru. Jika Anda menggunakan [mode terminal](#switch-to-terminal-mode), yang tidak melakukan typeset matematika apa pun versinya, hapus centang [pengaturan Use Terminal](vscode://settings/claudeCode.useTerminal) agar Claude Code terbuka di panel obrolan sebagai gantinya.

966 

967Jika satu rumus ditampilkan apa adanya sementara rumus lain di dekatnya di-typeset, periksa penyebab-penyebab berikut:

968 

969* **Rumus terbaca sebagai sesuatu selain matematika**: teks `$…$` yang terbaca sebagai kata tetap ditampilkan apa adanya, seperti `$O(n log n)$`. Teks `$…$` yang diawali dengan digit, seperti `$30$` atau `$1/N$`, juga tetap ditampilkan apa adanya kecuali ada karakter seperti `=`, `+`, atau `^` yang menandainya sebagai matematika. Minta Claude untuk membuat blok `$$` pada barisnya sendiri sebagai gantinya, yang di-typeset oleh panel tanpa pemeriksaan ini.

970* **Rumus memiliki spasi tambahan, panjang, atau terpecah di beberapa baris**: `$ x^2 $` dengan spasi di dalam tanda dolar, konten `$…$` yang lebih dari 60 karakter, serta `$…$` atau `\(…\)` yang terpecah di dua baris tidak di-typeset. Minta Claude untuk membuat blok `$$` pada barisnya sendiri sebagai gantinya, yang tidak memiliki batasan-batasan ini.

971* **TeX tidak dapat di-typeset**: rumus dengan kesalahan sintaks, definisi makro seperti `\newcommand` atau `\def`, atau `%` yang tidak di-escape ditampilkan apa adanya. Minta Claude untuk menulis ulang rumus tersebut dengan kesalahan yang diperbaiki, tanpa makro, atau dengan `\%` untuk tanda persen.

972* **Rumus terlalu besar**: rumus yang lebih panjang dari 8.192 karakter, atau yang akan digambar jauh lebih besar daripada sumbernya, ditampilkan apa adanya. Minta Claude untuk memecahnya menjadi rumus-rumus yang lebih kecil atau menulisnya dengan lebih ringkas.

973* **Rumus muncul setelah sejumlah besar matematika**: dalam satu blok teks di sebuah respons, panel melakukan typeset rumus secara berurutan hingga batas tertentu. Rumus berikutnya yang akan melewati batas tersebut ditampilkan apa adanya. Minta Claude untuk mengirim ulang rumus yang Anda perlukan secara tersendiri.

974 

901<h3 id="claude-code-never-responds">975<h3 id="claude-code-never-responds">

902 Claude Code tidak pernah merespons976 Claude Code tidak pernah merespons

903</h3>977</h3>

Details

103Jika Anda sudah menghubungkan GitHub di browser, `/web-setup` memperingatkan Anda bahwa melanjutkan menggantikan koneksi tersebut untuk sesi cloud Anda.103Jika Anda sudah menghubungkan GitHub di browser, `/web-setup` memperingatkan Anda bahwa melanjutkan menggantikan koneksi tersebut untuk sesi cloud Anda.

104 104 

105<Note>105<Note>

106 Organisasi dengan [Zero Data Retention](/docs/id/zero-data-retention) yang diaktifkan, atau dengan [konfigurasi HIPAA](/docs/id/hipaa-setup) yang diterapkan, tidak dapat menggunakan `/web-setup` atau fitur sesi cloud lainnya. Jika GitHub CLI tidak diinstal atau tidak diautentikasi, Claude Code membuka alur onboarding browser sebagai gantinya.106 Organisasi dengan [Zero Data Retention](/docs/id/zero-data-retention) yang diaktifkan, atau dengan [konfigurasi HIPAA](/docs/id/hipaa-setup) yang diterapkan, tidak dapat menggunakan `/web-setup` atau fitur sesi cloud lainnya. Organisasi yang menggunakan [kunci enkripsi yang dikelola pelanggan](https://platform.claude.com/docs/en/manage-claude/cmek) (CMEK) juga tidak dapat memulai sesi cloud. Jika GitHub CLI tidak diinstal atau tidak diautentikasi, Claude Code membuka alur onboarding browser sebagai gantinya.

107</Note>107</Note>

108 108 

109<Steps>109<Steps>

Details

74 <p className="digest-wins-title">Kemenangan lainnya</p>74 <p className="digest-wins-title">Kemenangan lainnya</p>

75 75 

76 <div className="digest-wins-grid">76 <div className="digest-wins-grid">

77 <div><a href="/docs/id/code-review#review-a-diff-locally"><code>/code-review</code></a> sekarang berjalan sebagai subagen latar belakang dengan jendela konteksnya sendiri, sehingga pekerjaan tinjauan tetap keluar dari percakapan Anda dan temuan tiba saat selesai</div>77 <div><a href="/docs/id/code-review-local"><code>/code-review</code></a> sekarang berjalan sebagai subagent latar belakang dengan context window-nya sendiri, sehingga pekerjaan tinjauan tetap berada di luar percakapan Anda dan temuan tiba saat selesai</div>

78 <div><code>/verify</code>, <code>/code-review</code>, dan <code>/deep-research</code> hanya berjalan saat Anda memanggilnya; Claude tidak lagi meluncurkannya sendiri</div>78 <div><code>/verify</code>, <code>/code-review</code>, dan <code>/deep-research</code> hanya berjalan saat Anda memanggilnya; Claude tidak lagi meluncurkannya sendiri</div>

79 <div><a href="/docs/id/interactive-mode#emoji-shortcodes">Shortcode emoji</a> melengkapi otomatis di input prompt: ketik <code>:heart:</code> untuk menyisipkan emoji, atau dua atau lebih karakter setelah <code>:</code> untuk saran; matikan dengan <code>emojiCompletionEnabled</code></div>79 <div><a href="/docs/id/interactive-mode#emoji-shortcodes">Shortcode emoji</a> melengkapi otomatis di input prompt: ketik <code>:heart:</code> untuk menyisipkan emoji, atau dua atau lebih karakter setelah <code>:</code> untuk saran; matikan dengan <code>emojiCompletionEnabled</code></div>

80 <div>Skills dengan <code>context: fork</code> <a href="/docs/id/skills#run-skills-in-a-subagent">berjalan di latar belakang</a> secara default, dan <code>background: false</code> di frontmatter skill menunggu hasil dalam giliran yang sama</div>80 <div>Skills dengan <code>context: fork</code> <a href="/docs/id/skills#run-skills-in-a-subagent">berjalan di latar belakang</a> secara default, dan <code>background: false</code> di frontmatter skill menunggu hasil dalam giliran yang sama</div>

81 <div>Sesi berjalan hingga 20 subagen secara bersamaan secara default; ubah <a href="/docs/id/sub-agents#concurrent-subagent-limit">batasnya</a> dengan <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>81 <div>Sesi menjalankan hingga 20 subagent secara bersamaan secara default; ubah <a href="/docs/id/sub-agents#concurrent-subagent-limit">batasnya</a> dengan <code>CLAUDE\_CODE\_MAX\_CONCURRENT\_SUBAGENTS</code></div>

82 <div>`--max-budget-usd` sekarang memberlakukan batas pada subagen: setelah pengeluaran mencapainya, Claude tidak dapat memulai lebih banyak dan subagen latar belakang yang berjalan berhenti</div>82 <div>`--max-budget-usd` sekarang memberlakukan batas pada subagent: setelah pengeluaran mencapainya, Claude tidak dapat memulai lebih banyak dan subagent latar belakang yang sedang berjalan berhenti</div>

83 <div>Pengaturan <a href="/docs/id/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> baru melewati isolasi sistem file sambil mempertahankan kontrol egress jaringan</div>83 <div>Pengaturan <a href="/docs/id/sandboxing#disable-filesystem-isolation"><code>sandbox.filesystem.disabled</code></a> baru melewati isolasi sistem file sambil mempertahankan kontrol egress jaringan</div>

84 <div>Dalam mode otomatis, pemeriksaan untuk perintah <code>rm</code> yang berbahaya, pekerjaan latar belakang, dan jalur Windows yang mencurigakan tidak lagi membuka dialog izin; pengklasifikasi mode otomatis menentukan keputusan sebagai gantinya</div>84 <div>Dalam auto mode, pemeriksaan untuk perintah <code>rm</code> yang berbahaya, pekerjaan latar belakang, dan jalur Windows yang mencurigakan tidak lagi membuka dialog izin; pengklasifikasi auto mode yang menentukan keputusannya sebagai gantinya</div>

85 <div>Pemeriksaan izin Bash gagal ditutup pada lebih banyak bentuk shell, termasuk pengalihan deskriptor file, subskrip variabel Zsh dalam perbandingan <code>\[\[ ]]</code>, invokasi <code>help</code> dan <code>man</code> yang dapat menjalankan opsi tidak aman, dan perintah di atas 10.000 karakter</div>85 <div>Pemeriksaan izin Bash gagal secara tertutup pada lebih banyak bentuk shell, termasuk pengalihan deskriptor file, subskrip variabel Zsh dalam perbandingan <code>\[\[ ]]</code>, invokasi <code>help</code> dan <code>man</code> yang dapat menjalankan opsi tidak aman, dan perintah di atas 10.000 karakter</div>

86 <div><a href="/docs/id/fast-mode">Mode Fast</a> tidak lagi mendukung Opus 4.7: <code>/fast</code> sekarang berlaku untuk Opus 5 dan Opus 4.8</div>86 <div><a href="/docs/id/fast-mode">Fast mode</a> tidak lagi mendukung Opus 4.7: <code>/fast</code> sekarang berlaku untuk Opus 5 dan Opus 4.8</div>

87 <div>Panggilan alat yang berjalan lama memancarkan detak jantung kemajuan berkala alih-alih diam</div>87 <div>Panggilan tool yang berjalan lama memancarkan heartbeat kemajuan berkala alih-alih diam</div>

88 </div>88 </div>

89</div>89</div>

90 90 

Details

84 <p className="digest-wins-title">Kemenangan lainnya</p>84 <p className="digest-wins-title">Kemenangan lainnya</p>

85 85 

86 <div className="digest-wins-grid">86 <div className="digest-wins-grid">

87 <div>Ekstensi VS Code mendapatkan <a href="/docs/id/vs-code#extension-settings">Focus view</a>, yang menyembunyikan aktivitas alat di balik satu baris yang dapat diperluas per giliran; alihkan dari menu perintah atau dengan <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> di Mac)</div>87 <div>Ekstensi VS Code mendapatkan <a href="/docs/id/vs-code#extension-settings">Focus view</a>, yang menyembunyikan aktivitas tool di balik satu baris yang dapat diperluas per giliran; alihkan dari menu perintah atau dengan <code>Ctrl+Alt+F</code> (<code>Ctrl+Option+F</code> di Mac)</div>

88 <div>File kredensial sandbox menerima <a href="/docs/id/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> di Linux dan WSL2, sehingga perintah yang di-sandbox membaca salinan sentinel sementara proxy sandbox mengganti nilai sebenarnya pada egress; masking kredensial juga mendapatkan opsi <code>extract</code>, <code>decode</code> yang menyadari JWT, dan opsi re-signing AWS SigV4</div>88 <div>File kredensial sandbox menerima <a href="/docs/id/sandboxing#mask-credential-files"><code>mode: "mask"</code></a> di Linux dan WSL2, sehingga perintah yang di-sandbox membaca salinan sentinel sementara proxy sandbox mengganti nilai sebenarnya pada egress; masking kredensial juga mendapatkan opsi <code>extract</code>, <code>decode</code> yang menyadari JWT, dan opsi re-signing AWS SigV4</div>

89 <div>Marketplace dapat mendistribusikan plugin sebagai <a href="/docs/id/plugins/marketplace-reference#archive-plugin-source">arsip zip</a> dengan sumber <code>archive</code> baru, diunduh melalui HTTPS dengan pin SHA-256 opsional, sehingga instalasi berfungsi tanpa git atau npm</div>89 <div>Marketplace dapat mendistribusikan plugin sebagai <a href="/docs/id/plugins/marketplace-reference#archive-plugin-source">arsip zip</a> dengan sumber <code>archive</code> baru, diunduh melalui HTTPS dengan pin SHA-256 opsional, sehingga instalasi berfungsi tanpa git atau npm</div>

90 <div><code>/review</code> sekarang merupakan alias dari <a href="/docs/id/code-review#review-a-diff-locally"><code>/code-review</code></a>, dan <code>/code-review</code> tanpa tingkat upaya menggunakan kembali tingkat yang Anda ketik terakhir</div>90 <div><code>/review</code> sekarang merupakan alias dari <a href="/docs/id/code-review-local"><code>/code-review</code></a>, dan <code>/code-review</code> tanpa tingkat effort menggunakan kembali tingkat yang Anda ketik terakhir</div>

91 <div>Sesi yang Anda salin dengan <a href="/docs/id/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> sekarang membuat perubahan kodenya di worktree miliknya sendiri alih-alih checkout sesi asli</div>91 <div>Sesi yang Anda salin dengan <a href="/docs/id/agent-view#copy-the-session-with-%2Ffork"><code>/fork</code></a> sekarang membuat perubahan kodenya di worktree miliknya sendiri alih-alih checkout sesi asli</div>

92 <div>Plugin yang Anda instal dari <a href="/docs/id/plugins/install#install-a-plugin"><code>/plugin</code></a> diaktifkan dalam sesi saat ini ketika aman untuk melakukannya; ringkasan instalasi melaporkan <code>Plugin is now active.</code> atau memberi tahu Anda untuk menjalankan <code>/reload-plugins</code></div>92 <div>Plugin yang Anda instal dari <a href="/docs/id/plugins/install#install-a-plugin"><code>/plugin</code></a> diaktifkan dalam sesi saat ini ketika aman untuk melakukannya; ringkasan instalasi melaporkan <code>Plugin is now active.</code> atau memberi tahu Anda untuk menjalankan <code>/reload-plugins</code></div>

93 <div><a href="/docs/id/agent-view#how-file-edits-are-isolated">Sesi latar belakang</a> yang mengubah kode di worktree sekarang melakukan commit dan push sebelum selesai, membuka permintaan pull draft hanya ketika tugas memanggilnya, dan mengikuti instruksi git di <code>CLAUDE.md</code> Anda</div>93 <div><a href="/docs/id/agent-view#how-file-edits-are-isolated">Sesi latar belakang</a> yang mengubah kode di worktree sekarang melakukan commit dan push sebelum selesai, membuka pull request draft hanya ketika tugas memerlukannya, dan mengikuti instruksi git di <code>CLAUDE.md</code> Anda</div>

94 <div>Batas 200-subagen-per-sesi dihapus, sehingga sesi yang berjalan lama tidak lagi menolak subagen baru; batas <a href="/docs/id/sub-agents#concurrent-subagent-limit">concurrency</a> dan kedalaman masih berlaku</div>94 <div>Batas 200 subagent per sesi dihapus, sehingga sesi yang berjalan lama tidak lagi menolak subagent baru; batas <a href="/docs/id/sub-agents#concurrent-subagent-limit">concurrency</a> dan kedalaman masih berlaku</div>

95 <div>Pengaturan yang diperiksa dalam repositori tidak lagi dapat mengaktifkan <a href="/docs/id/remote-control#enable-remote-control-for-all-sessions">Remote Control auto-connect</a>; atur <code>remoteControlAtStartup</code> di pengaturan pengguna atau terkelola Anda sebagai gantinya, dan pengaturan proyek dan lokal hanya dapat mematikannya</div>95 <div>Pengaturan yang diperiksa dalam repositori tidak lagi dapat mengaktifkan <a href="/docs/id/remote-control#enable-remote-control-for-all-sessions">Remote Control auto-connect</a>; atur <code>remoteControlAtStartup</code> di pengaturan pengguna atau terkelola Anda sebagai gantinya, dan pengaturan proyek dan lokal hanya dapat mematikannya</div>

96 <div><a href="/docs/id/worktrees#how-claude-code-enforces-isolation">Isolasi worktree</a> sekarang memblokir tidak hanya pengeditan file tetapi juga perintah Bash dan pengalihan git yang menjangkau checkout utama, di setiap jenis sesi dan di subagen sesi</div>96 <div><a href="/docs/id/worktrees#how-claude-code-enforces-isolation">Isolasi worktree</a> sekarang memblokir tidak hanya pengeditan file tetapi juga perintah Bash dan pengalihan git yang menjangkau checkout utama, di setiap jenis sesi dan di subagent sesi</div>

97 <div>Perintah Bash tidak lagi dapat menyembunyikan bagian dari dirinya sendiri dari pemeriksaan izin, dan padding tab atau Unicode yang tidak terlihat tidak lagi menyembunyikan bagian dari perintah dari dialog persetujuan</div>97 <div>Perintah Bash tidak lagi dapat menyembunyikan bagian dari dirinya sendiri dari pemeriksaan izin, dan padding tab atau Unicode yang tidak terlihat tidak lagi menyembunyikan bagian dari perintah dari dialog persetujuan</div>

98 <div>Hook auto-allow PreToolUse tidak lagi melewati pembatasan alat dalam tugas sisi internal Claude Code seperti ringkasan dan pemadatan</div>98 <div>Hook auto-allow PreToolUse tidak lagi melewati pembatasan tool dalam tugas sisi internal Claude Code seperti ringkasan dan compaction</div>

99 <div><a href="/docs/id/ultraplan">Ultraplan</a> pratinjau penelitian dihapus, termasuk perintah <code>/ultraplan</code> dan kata kunci <code>ultraplan</code>; gunakan mode rencana atau Claude Code di web sebagai gantinya</div>99 <div>Research preview <a href="/docs/id/ultraplan">Ultraplan</a> dihapus, termasuk perintah <code>/ultraplan</code> dan kata kunci <code>ultraplan</code>; gunakan plan mode atau Claude Code di web sebagai gantinya</div>

100 </div>100 </div>

101</div>101</div>

102 102 

Details

4 4 

5# Minggu 33 · 10–14 Agustus 20265# Minggu 33 · 10–14 Agustus 2026

6 6 

7> Claude Code Desktop melanjutkan secara otomatis setelah batas penggunaan direset, mode fork aktif secara default, dan permintaan penggabungan GitLab serta marketplace bergabung dengan GitHub.7> Claude Code Desktop melanjutkan secara otomatis setelah batas penggunaan direset, mode fork aktif secara default, dan merge request serta marketplace GitLab bergabung dengan GitHub.

8 8 

9<div className="digest-meta">9<div className="digest-meta">

10 <span>Rilis <a href="/docs/en/changelog#2-1-225">v2.1.225 → v2.1.233</a></span>10 <span>Rilis <a href="/docs/en/changelog#2-1-225">v2.1.225 → v2.1.233</a></span>


17 <span className="digest-feature-pill">Desktop</span>17 <span className="digest-feature-pill">Desktop</span>

18 </div>18 </div>

19 19 

20 <p className="digest-feature-lede">Ketika Anda mencapai batas sesi di tab Code dari Claude Code Desktop, kartu batas sekarang menawarkan kotak centang <strong>Lanjutkan secara otomatis ketika batas direset</strong>. Centang kotak tersebut, dan aplikasi Desktop akan mencoba kembali giliran yang terputus setelah reset. Kartu menampilkan waktu percobaan kembali. Kartu batas mingguan tidak menawarkannya.</p>20 <p className="digest-feature-lede">Ketika Anda mencapai batas sesi di tab Code dari Claude Code Desktop, kartu batas sekarang menawarkan kotak centang <strong>Auto-continue when limits reset</strong>. Centang kotak tersebut, dan aplikasi Desktop akan mencoba ulang giliran yang terputus setelah reset. Kartu menampilkan waktu retry. Kartu batas mingguan tidak menawarkannya.</p>

21 21 

22 <Frame>22 <Frame>

23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/desktop-auto-continue.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=1937f489695feaea715e48ecfd7e62cd" data-path="images/whats-new/desktop-auto-continue.mp4" />23 <video autoPlay muted loop playsInline className="w-full" src="https://mintcdn.com/claude-code/2SnAdpL4dJ18nKb3/images/whats-new/desktop-auto-continue.mp4?fit=max&auto=format&n=2SnAdpL4dJ18nKb3&q=85&s=1937f489695feaea715e48ecfd7e62cd" data-path="images/whats-new/desktop-auto-continue.mp4" />

24 </Frame>24 </Frame>

25 25 

26 <p className="digest-feature-try">Lain kali kartu batas sesi muncul, centang <strong>Lanjutkan secara otomatis ketika batas direset</strong> dan biarkan sesi tetap terbuka. Kartu menampilkan <code>Auto-resuming at</code> diikuti dengan waktu reset, dan giliran akan melanjutkan dengan sendirinya setelah batas direset.</p>26 <p className="digest-feature-try">Lain kali kartu batas sesi muncul, centang <strong>Auto-continue when limits reset</strong> dan biarkan sesi tetap terbuka. Kartu menampilkan <code>Auto-resuming at</code> diikuti dengan waktu reset, dan giliran akan melanjutkan dengan sendirinya setelah batas direset.</p>

27 27 

28 <a className="digest-feature-link" href="/docs/id/errors#youve-hit-your-session-limit">Apa yang harus dilakukan ketika Anda mencapai batas penggunaan</a>28 <a className="digest-feature-link" href="/docs/id/errors#youve-hit-your-session-limit">Apa yang harus dilakukan ketika Anda mencapai batas penggunaan</a>

29</div>29</div>


34 <span className="digest-feature-pill">v2.1.232</span>34 <span className="digest-feature-pill">v2.1.232</span>

35 </div>35 </div>

36 36 

37 <p className="digest-feature-lede">Mode fork sekarang aktif secara default dalam sesi interaktif. Claude dapat meminta tipe subagent <code>fork</code>, yang mewarisi percakapan lengkap dan cache prompt alih-alih memulai dari awal, sehingga Anda tidak perlu menjelaskan ulang konteks untuk tugas sampingan. Subagent yang Claude buat dalam sesi interaktif, selain yang dibuat oleh rekan tim agent-team, juga berjalan di latar belakang secara default.</p>37 <p className="digest-feature-lede">Mode fork sekarang aktif secara default dalam sesi interaktif. Claude dapat meminta tipe subagent <code>fork</code>, yang mewarisi percakapan lengkap dan cache prompt alih-alih memulai dari awal, sehingga Anda tidak perlu menjelaskan ulang konteks untuk tugas sampingan. Subagent yang Claude buat dalam sesi interaktif, selain yang dibuat oleh rekan dalam tim agent, juga berjalan di latar belakang secara default.</p>

38 38 

39 <p className="digest-feature-try">Mulai fork sendiri dengan tugas yang memerlukan semua yang telah Anda diskusikan sejauh ini:</p>39 <p className="digest-feature-try">Mulai fork sendiri dengan tugas yang memerlukan semua yang telah Anda diskusikan sejauh ini:</p>

40 40 


49 49 

50<div className="digest-feature">50<div className="digest-feature">

51 <div className="digest-feature-header">51 <div className="digest-feature-header">

52 <span className="digest-feature-title">Permintaan penggabungan GitLab dan marketplace</span>52 <span className="digest-feature-title">Merge request dan marketplace GitLab</span>

53 <span className="digest-feature-pill">v2.1.232</span>53 <span className="digest-feature-pill">v2.1.232</span>

54 </div>54 </div>

55 55 

56 <p className="digest-feature-lede">Marketplace plugin mengkloning URL <code>gitlab.com</code> bare, termasuk subgrup bersarang. Pada v2.1.233 atau lebih baru, teruskan URL permintaan penggabungan GitLab ke <code>--worktree</code> untuk membuat cabang darinya, dan tampilan <code>claude agents</code> memberi label sesi yang terhubung ke permintaan penggabungan sebagai <code>!N</code>. Claude Code juga menyunting keluarga token GitLab seperti <code>glpat-</code> dan <code>glrt-</code>, dan melindungi penyimpanan konfigurasi CLI <code>glab</code> dengan cara yang sama seperti melindungi <code>gh</code>.</p>56 <p className="digest-feature-lede">Marketplace plugin mengkloning URL <code>gitlab.com</code> bare, termasuk subgrup bersarang. Pada v2.1.233 atau lebih baru, teruskan URL merge request GitLab ke `--worktree` untuk membuat branch darinya, dan tampilan <code>claude agents</code> memberi label sesi yang terhubung ke merge request sebagai <code>!N</code>. Claude Code juga menyunting keluarga token GitLab seperti <code>glpat-</code> dan <code>glrt-</code>, dan melindungi penyimpanan konfigurasi CLI <code>glab</code> dengan cara yang sama seperti melindungi <code>gh</code>.</p>

57 57 

58 <p className="digest-feature-try">Mulai sesi dalam worktree yang dibuat cabang dari permintaan penggabungan:</p>58 <p className="digest-feature-try">Mulai sesi dalam worktree yang di-branch dari merge request:</p>

59 59 

60 ```bash terminal theme={null}60 ```bash terminal theme={null}

61 claude --worktree https://gitlab.com/group/project/-/merge_requests/4261 claude --worktree https://gitlab.com/group/project/-/merge_requests/42

62 ```62 ```

63 63 

64 <p className="digest-feature-try">Ketika <code>origin</code> berada di gitlab.com, Claude Code mengambil <code>merge-requests/42/head</code> dan membuka sesi pada cabang tersebut di worktree-nya sendiri.</p>64 <p className="digest-feature-try">Ketika <code>origin</code> berada di gitlab.com, Claude Code mengambil <code>merge-requests/42/head</code> dan membuka sesi pada branch tersebut di worktree-nya sendiri.</p>

65 65 

66 <a className="digest-feature-link" href="/docs/id/worktrees#branch-from-a-pull-request">Buat cabang worktree dari permintaan pull atau penggabungan</a>66 <a className="digest-feature-link" href="/docs/id/worktrees#branch-from-a-pull-request">Buat branch worktree dari pull request atau merge request</a>

67</div>67</div>

68 68 

69<div className="digest-wins">69<div className="digest-wins">


73 <div>Ketik <code>@</code> dalam prompt untuk <a href="/docs/id/cross-session-messaging#message-another-session">menyebutkan sesi Claude lain</a> berdasarkan nama, dan Claude mengiriminya pesan langsung dengan <code>SendMessage</code>; nama bare yang cocok dengan tepat satu sesi live sekarang dikirimkan tanpa langkah konfirmasi</div>73 <div>Ketik <code>@</code> dalam prompt untuk <a href="/docs/id/cross-session-messaging#message-another-session">menyebutkan sesi Claude lain</a> berdasarkan nama, dan Claude mengiriminya pesan langsung dengan <code>SendMessage</code>; nama bare yang cocok dengan tepat satu sesi live sekarang dikirimkan tanpa langkah konfirmasi</div>

74 <div>Sesi interaktif pada satu mesin menjaga <a href="/docs/id/cross-session-messaging#see-which-sessions-claude-can-reach">nama unik</a>: jika Anda memulai atau mengganti nama sesi dengan nama yang sudah digunakan sesi live lain, Claude Code memberikan varian <code>name-word-word</code> kepada Anda dan memberitahu Anda</div>74 <div>Sesi interaktif pada satu mesin menjaga <a href="/docs/id/cross-session-messaging#see-which-sessions-claude-can-reach">nama unik</a>: jika Anda memulai atau mengganti nama sesi dengan nama yang sudah digunakan sesi live lain, Claude Code memberikan varian <code>name-word-word</code> kepada Anda dan memberitahu Anda</div>

75 <div>Marketplace plugin menerima <a href="/docs/id/plugins/marketplace-reference#command-plugin-source">sumber <code>command</code></a>: perintah lokal mencetak direktori plugin, yang Claude Code selesaikan kembali setiap sesi dan terapkan tanpa restart</div>75 <div>Marketplace plugin menerima <a href="/docs/id/plugins/marketplace-reference#command-plugin-source">sumber <code>command</code></a>: perintah lokal mencetak direktori plugin, yang Claude Code selesaikan kembali setiap sesi dan terapkan tanpa restart</div>

76 <div>Di Linux dan WSL, atur <a href="/docs/id/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> ke ukuran seperti <code>4G</code> untuk membatasi memori yang dapat digunakan perintah alat Bash dan PowerShell</div>76 <div>Di Linux dan WSL, atur <a href="/docs/id/tools-reference#memory-limit-on-linux-and-wsl"><code>CLAUDE\_CODE\_TOOL\_MEMORY\_LIMIT</code></a> ke ukuran seperti <code>4G</code> untuk membatasi memori yang dapat digunakan perintah tool Bash dan PowerShell</div>

77 <div>Alat pelacakan tugas, seperti <code>TaskCreate</code>, <code>TaskUpdate</code>, dan <code>TodoWrite</code>, adalah <a href="/docs/id/tools-reference#task-tool-availability">tidak lagi tersedia di Opus 4.8, Sonnet 5, Fable 5, Mythos 5, dan model yang lebih baru dalam keluarga tersebut</a>; atur <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> untuk mengaktifkannya kembali</div>77 <div>Tool pelacakan tugas, seperti <code>TaskCreate</code>, <code>TaskUpdate</code>, dan <code>TodoWrite</code>, <a href="/docs/id/tools-reference#task-tool-availability">tidak lagi tersedia di Opus 4.8, Sonnet 5, Fable 5, Mythos 5, dan model yang lebih baru dalam keluarga tersebut</a>; atur <code>CLAUDE\_CODE\_ENABLE\_TODO\_TOOLS=1</code> untuk mengaktifkannya kembali</div>

78 <div><a href="/docs/id/code-review#review-a-diff-locally"><code>/code-review</code></a> pada upaya tinggi, xhigh, dan max sekarang berjalan dalam agen latar belakang seperti level lainnya</div>78 <div><a href="/docs/id/code-review-local"><code>/code-review</code></a> pada upaya tinggi, xhigh, dan max sekarang berjalan dalam agent latar belakang seperti level lainnya</div>

79 <div><a href="/docs/id/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> menyegarkan marketplace terlebih dahulu, sehingga plugin yang baru dipublikasikan dapat diinstal tanpa pembaruan marketplace manual</div>79 <div><a href="/docs/id/plugins/install#install-a-plugin"><code>/plugin install plugin\@marketplace</code></a> menyegarkan marketplace terlebih dahulu, sehingga plugin yang baru dipublikasikan dapat diinstal tanpa pembaruan marketplace manual</div>

80 <div>Pengaturan menerima <a href="/docs/id/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> dan <code>allowedMarketplaces</code></a> sebagai alias untuk <code>extraKnownMarketplaces</code> dan <code>strictKnownMarketplaces</code></div>80 <div>Pengaturan menerima <a href="/docs/id/settings-reference#marketplace-key-aliases"><code>additionalMarketplaces</code> dan <code>allowedMarketplaces</code></a> sebagai alias untuk <code>extraKnownMarketplaces</code> dan <code>strictKnownMarketplaces</code></div>

81 <div>Pada model yang lebih baru, Claude dapat <a href="/docs/id/tools-reference#write-tool-behavior">menimpa file yang ada dengan alat Write</a> tanpa membacanya terlebih dahulu sesi ini, sesuai dengan aturan alat Edit; model yang lebih lama memerlukan pembacaan</div>81 <div>Pada model yang lebih baru, Claude dapat <a href="/docs/id/tools-reference#write-tool-behavior">menimpa file yang ada dengan tool Write</a> tanpa membacanya terlebih dahulu sesi ini, sesuai dengan aturan tool Edit; model yang lebih lama memerlukan pembacaan</div>

82 <div>Ekstensi VS Code dapat <a href="/docs/id/vs-code#organize-sessions-into-groups">mengatur daftar sesi ke dalam grup</a>: klik kanan untuk membuat, mengganti nama, atau menghapus grup, dan Cmd/Ctrl- atau Shift-klik untuk memindahkan beberapa sesi sekaligus</div>82 <div>Ekstensi VS Code dapat <a href="/docs/id/vs-code#organize-sessions-into-groups">mengatur daftar sesi ke dalam grup</a>: klik kanan untuk membuat, mengganti nama, atau menghapus grup, dan Cmd/Ctrl- atau Shift-klik untuk memindahkan beberapa sesi sekaligus</div>

83 <div>Jika organisasi Anda merutekan Claude Code melalui <a href="/docs/id/claude-apps-gateway-spend-limits">gateway aplikasi Claude dengan batas pengeluaran</a>, Claude Code menampilkan periode batas, waktu resetnya, dan pesan operator ketika Anda mencapai batas</div>83 <div>Jika organisasi Anda merutekan Claude Code melalui <a href="/docs/id/claude-apps-gateway-spend-limits">gateway aplikasi Claude dengan batas pengeluaran</a>, Claude Code menampilkan periode batas, waktu resetnya, dan pesan operator ketika Anda mencapai batas</div>

84 </div>84 </div>

workflows.md +4 −4

Details

205 205 

206Di `claude -p` dan Agent SDK, Claude Code tidak pernah menampilkan prompt ini. Ini menjalankan panggilan alat Workflow melalui [evaluasi izin](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated) yang sama seperti sisa sesi, jadi aturan deny, aturan ask, dan mode `dontAsk` berlaku untuk peluncuran seperti yang berlaku untuk setiap panggilan alat. Untuk membiarkan alur kerja dimulai dalam run ini, gunakan salah satu dari ini:206Di `claude -p` dan Agent SDK, Claude Code tidak pernah menampilkan prompt ini. Ini menjalankan panggilan alat Workflow melalui [evaluasi izin](/docs/id/agent-sdk/permissions#how-permissions-are-evaluated) yang sama seperti sisa sesi, jadi aturan deny, aturan ask, dan mode `dontAsk` berlaku untuk peluncuran seperti yang berlaku untuk setiap panggilan alat. Untuk membiarkan alur kerja dimulai dalam run ini, gunakan salah satu dari ini:

207 207 

208* **Aturan izin**: `Workflow` dalam aturan allow Anda menyetujui setiap alur kerja, dan `Workflow(<name>)` menyetujui satu alur kerja yang disimpan berdasarkan nama.208* **Aturan izin**: tambahkan `Workflow` ke aturan allow Anda untuk menyetujui setiap alur kerja, atau `Workflow(<name>)` untuk menyetujui satu alur kerja yang disimpan berdasarkan nama.

209* **Mode izin auto**: [classifier](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) meninjau panggilan dan dapat menyetujuinya.209* **Mode izin auto**: jalankan dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), di mana pengklasifikasi meninjau panggilan dan dapat menyetujuinya.

210* **Mode bypass permissions**: Claude Code menyetujui panggilan.210* **Mode bypass permissions**: jalankan dalam mode bypass permissions.

211* **Hook**: hook [`PreToolUse`](/docs/id/hooks#pretooluse) yang mengizinkan panggilan akan menyetujuinya.211* **Hook**: kembalikan `"allow"` untuk panggilan dari hook [`PreToolUse`](/docs/id/hooks#pretooluse). Dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), alur kerja tidak dimulai hanya dengan persetujuan hook, jadi gunakan aturan izin atau persetujuan host Anda di sana sebagai gantinya.

212* **Host Anda**: [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) atau, dengan Agent SDK, callback [`canUseTool`](/docs/id/agent-sdk/permissions) menyetujuinya.212* **Host Anda**: [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) atau, dengan Agent SDK, callback [`canUseTool`](/docs/id/agent-sdk/permissions) menyetujuinya.

213 213 

214Di aplikasi Desktop, kartu persetujuan menunjukkan nama alur kerja, daftar fase, dan peringatan penggunaan token, dengan tindakan **Once**, **Always**, dan **Deny**. Tampilan kemajuan muncul di panel tugas Latar Belakang.214Di aplikasi Desktop, kartu persetujuan menunjukkan nama alur kerja, daftar fase, dan peringatan penggunaan token, dengan tindakan **Once**, **Always**, dan **Deny**. Tampilan kemajuan muncul di panel tugas Latar Belakang.