SpyBara
Go Premium

Documentation 2026-09-21 22:59 UTC to 2026-09-22 23:59 UTC

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

admin-setup.md +1 −1

Details

167 167 

168* [Quickstart](/docs/id/quickstart): panduan sesi pertama dari instalasi hingga bekerja dengan proyek168* [Quickstart](/docs/id/quickstart): panduan sesi pertama dari instalasi hingga bekerja dengan proyek

169* [Common workflows](/docs/id/common-workflows): pola untuk tugas sehari-hari seperti tinjauan kode, refactoring, dan debugging169* [Common workflows](/docs/id/common-workflows): pola untuk tugas sehari-hari seperti tinjauan kode, refactoring, dan debugging

170* [Claude 101](https://anthropic.skilljar.com/claude-101) dan [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action): kursus Anthropic Academy dengan kecepatan sendiri170* [Claude Code 101](https://academy.claude.com/courses/claude-code-101) dan [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action): kursus gratis dengan kecepatan sendiri di [Claude Academy](https://academy.claude.com/)

171 171 

172Untuk masalah login, arahkan pengembang ke [authentication troubleshooting](/docs/id/troubleshoot-install#login-and-authentication). Perbaikan paling umum adalah:172Untuk masalah login, arahkan pengembang ke [authentication troubleshooting](/docs/id/troubleshoot-install#login-and-authentication). Perbaikan paling umum adalah:

173 173 

advisor.md +8 −8

Details

56* Jalankan `/advisor` dengan model, seperti `/advisor opus`, untuk mengaturnya.56* Jalankan `/advisor` dengan model, seperti `/advisor opus`, untuk mengaturnya.

57* Jalankan `/advisor off` untuk mematikannya.57* Jalankan `/advisor off` untuk mematikannya.

58 58 

59Claude Code tidak memanggil advisor yang disimpan yang allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda kecualikan. Untuk menggunakan advisor, pilih model yang diizinkan dengan `/advisor`. Claude Code masih menyimpan advisor yang model utama Anda saat ini tidak mendukung. Advisor itu diaktifkan setelah Anda beralih ke [model utama yang kompatibel](#choose-an-advisor-model) dengan [`/model`](/docs/id/model-config#setting-your-model).59Claude Code tidak memanggil advisor yang disimpan yang allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda kecualikan. Untuk menggunakan advisor, pilih model yang diizinkan dengan `/advisor`. Claude Code masih menyimpan advisor yang model utama Anda saat ini tidak mendukung. Advisor itu diaktifkan setelah Anda beralih ke [model utama yang kompatibel](#choose-an-advisor-model) dengan [`/model`](/docs/id/model-config#setting-your-model). Jika API sudah menolak advisor yang disimpan dalam percakapan saat ini, itu tetap mati sampai `/clear` atau `/compact`, bahkan setelah Anda beralih model.

60 60 

61Pada beberapa paket, Fable sebagai advisor juga memerlukan [persetujuan satu kali Anda untuk menagih penggunaan Fable ke kredit penggunaan](/docs/id/model-config#fable-and-usage-credits). Untuk apa yang dilakukan `/advisor fable` sebelum Anda memberikan persetujuan itu, lihat [Advisor Fable dan kredit penggunaan](#fable-advisor-and-usage-credits).61Pada beberapa paket, Fable sebagai advisor juga memerlukan [persetujuan satu kali Anda untuk menagih penggunaan Fable ke kredit penggunaan](/docs/id/model-config#fable-and-usage-credits). Untuk apa yang dilakukan `/advisor fable` sebelum Anda memberikan persetujuan itu, lihat [Advisor Fable dan kredit penggunaan](#fable-advisor-and-usage-credits).

62 62 


98Advisor harus setidaknya sama mampu dengan model utama. Advisor yang diterima untuk setiap model utama adalah:98Advisor harus setidaknya sama mampu dengan model utama. Advisor yang diterima untuk setiap model utama adalah:

99 99 

100| Model utama | Advisor yang diterima | Catatan |100| Model utama | Advisor yang diterima | Catatan |

101| ---------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |101| ---------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------ |

102| Haiku 4.5 | Fable, Opus, Sonnet | Haiku dapat memanggil advisor tetapi tidak dapat bertindak sebagai advisor |102| Haiku 4.5 | Fable, Opus, Sonnet | Haiku dapat memanggil advisor tetapi tidak dapat bertindak sebagai advisor |

103| Sonnet 4.6 | Fable, Opus, Sonnet | |103| Sonnet 4.6 | Fable, Opus, Sonnet | |

104| Sonnet 5 | Fable, Opus 4.7 atau lebih baru, Sonnet 5 | Advisor Sonnet 4.6 ditolak, dan permintaan dengan advisor Opus 4.6 gagal dengan kesalahan API |104| Sonnet 5 | Fable, Opus 4.7 atau lebih baru, Sonnet 5 | Advisor Sonnet 4.6 ditolak, dan API menolak advisor Opus 4.6 |

105| Opus 4.6 | Fable, Opus, Sonnet 5 | Advisor Sonnet 4.6 ditolak |105| Opus 4.6 | Fable, Opus, Sonnet 5 | Advisor Sonnet 4.6 ditolak |

106| Opus 4.7 atau Opus 4.8 | Fable, dan Opus 4.7 atau lebih baru | Advisor Opus 4.6 atau Sonnet ditolak |106| Opus 4.7 atau Opus 4.8 | Fable, dan Opus 4.7 atau lebih baru | Advisor Opus 4.6 atau Sonnet ditolak |

107| Opus 5 | Fable, Opus 5 | Advisor Opus 4.6 atau Sonnet ditolak, dan permintaan dengan advisor Opus 4.7 atau Opus 4.8 gagal dengan kesalahan API |107| Opus 5.5 atau Opus 5 | Fable, dan Opus 5 atau lebih baru | Advisor Opus 4.6 atau Sonnet ditolak, dan API menolak advisor Opus 4.7 atau Opus 4.8 |

108| Fable 5 | Fable 5.1 atau Fable 5 | Advisor Opus atau Sonnet ditolak |108| Fable 5 | Fable 5.1 atau Fable 5 | Advisor Opus atau Sonnet ditolak |

109| Fable 5.1 | Fable 5.1 | Advisor Opus atau Sonnet ditolak, dan permintaan dengan advisor Fable 5 gagal dengan kesalahan API |109| Fable 5.1 | Fable 5.1 | Advisor Opus atau Sonnet ditolak, dan API menolak advisor Fable 5 |

110 110 

111Fable 5.1 memerlukan Claude Code v2.1.257 atau lebih baru. Kedua model Fable memerlukan [akses Fable](/docs/id/model-config#work-with-fable).111Fable 5.1 memerlukan Claude Code v2.1.257 atau lebih baru. Kedua model Fable memerlukan [akses Fable](/docs/id/model-config#work-with-fable).

112 112 

113Atur advisor sebagai `fable`, `opus`, atau `sonnet`. Alias ini diselesaikan ke versi default bawaan Claude Code untuk setiap keluarga model, yang berkembang dengan rilis Claude Code baru. Anda juga dapat melewatkan ID model lengkap seperti `claude-opus-5`.113Atur advisor sebagai `fable`, `opus`, atau `sonnet`. Alias ini diselesaikan ke versi default bawaan Claude Code untuk setiap keluarga model, yang berkembang dengan rilis Claude Code baru. Anda juga dapat melewatkan ID model lengkap seperti `claude-opus-5-5`.

114 114 

115Subagent mewarisi advisor yang dikonfigurasi dan menerapkan pemeriksaan pasangan yang sama terhadap model mereka sendiri.115Subagent mewarisi advisor yang dikonfigurasi dan menerapkan pemeriksaan pasangan yang sama terhadap model mereka sendiri.

116 116 

117Claude Code memvalidasi pasangan sebelum mengirim permintaan, dan API memvalidasinya lagi:117Claude Code memvalidasi pasangan sebelum mengirim permintaan, dan API memvalidasinya lagi:

118 118 

119* Untuk advisor yang tabel cantumkan sebagai ditolak, Claude Code tidak melampirkannya ke permintaan model utama. Output perintah `/advisor` dan notifikasi menunjukkan hal ini. Subagent yang model mereka sendiri memenuhi pasangan mungkin masih menggunakan advisor.119* Untuk advisor yang tabel cantumkan sebagai ditolak, Claude Code tidak melampirkannya ke permintaan model utama. Output perintah `/advisor` dan notifikasi menunjukkan hal ini. Subagent yang model mereka sendiri memenuhi pasangan mungkin masih menggunakan advisor.

120* Untuk advisor yang tabel cantumkan sebagai gagal dengan kesalahan API, Claude Code melampirkannya dan API menolaknya. Setiap permintaan gagal dengan `'<advisor model>' tidak dapat digunakan sebagai advisor ketika model permintaan adalah '<main model>'` sampai Anda mengubah advisor dengan `/advisor` atau mematikannya.120* Untuk advisor yang tabel cantumkan sebagai ditolak oleh API, Claude Code melampirkannya dan API menolaknya. Claude Code kemudian mengirim ulang permintaan tersebut tanpa advisor, dan sisa percakapan berjalan tanpa advisor, sehingga Anda tidak melihat kesalahan dan tidak mendapatkan panggilan advisor. Pilih advisor yang diterima dengan `/advisor`; perubahan berlaku setelah `/clear` atau `/compact` dan dalam sesi baru.

121* Jika model utama atau advisor adalah model yang Claude Code tidak kenali, advisor tidak dilampirkan.121* Jika model utama atau advisor adalah model yang Claude Code tidak kenali, advisor tidak dilampirkan.

122 122 

123<h3 id="fable-advisor-and-usage-credits">123<h3 id="fable-advisor-and-usage-credits">


195 195 

196Alat advisor memerlukan semua hal berikut:196Alat advisor memerlukan semua hal berikut:

197 197 

198* **Hanya API Anthropic**: advisor adalah alat yang dieksekusi server. Alat ini tidak tersedia di Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, atau Microsoft Foundry. Melalui [LLM gateway](/docs/id/llm-gateway) yang dikonfigurasi dengan `ANTHROPIC_BASE_URL`, ketersediaan tergantung pada apakah gateway meneruskan permintaan utuh ke API Anthropic.198* **Hanya API Anthropic**: advisor adalah alat yang dieksekusi server. Alat ini tidak tersedia di Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, atau Microsoft Foundry. Melalui [LLM gateway](/docs/id/llm-gateway) yang dikonfigurasi dengan `ANTHROPIC_BASE_URL`, ketersediaan tergantung pada apakah gateway meneruskan permintaan utuh ke API Anthropic. Jika gateway atau upstream-nya tidak mengenali alat advisor, lihat [Pengulangan otomatis dan penerusan kesalahan](/docs/id/llm-gateway-protocol#automatic-retry-and-error-forwarding) untuk mengetahui bagaimana Claude Code merespons.

199* **Model utama yang didukung**: Fable, Opus 4.6 atau lebih baru, Sonnet 4.6 atau lebih baru, atau Haiku 4.5. Lihat [Pilih model advisor](#choose-an-advisor-model) untuk mengetahui advisor mana yang diterima masing-masing.199* **Model utama yang didukung**: Fable, Opus 4.6 atau lebih baru, Sonnet 4.6 atau lebih baru, atau Haiku 4.5. Lihat [Pilih model advisor](#choose-an-advisor-model) untuk mengetahui advisor mana yang diterima masing-masing.

200* **Pengambilan bendera fitur**: Claude Code mengaktifkan advisor melalui bendera fitur yang diambilnya dari Anthropic. Dalam sesi di mana variabel yang mematikan pengambilan bendera diatur, seperti `DISABLE_TELEMETRY`, advisor tetap mati. Lihat [Fitur yang memerlukan pengambilan bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching).200* **Pengambilan bendera fitur**: Claude Code mengaktifkan advisor melalui bendera fitur yang diambilnya dari Anthropic. Dalam sesi di mana variabel yang mematikan pengambilan bendera diatur, seperti `DISABLE_TELEMETRY`, advisor tetap mati. Lihat [Fitur yang memerlukan pengambilan bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching).

201 201 

Details

302 302 

303Agent SDK memberi Anda akses ke beberapa cara untuk memperluas perilaku agen Anda. Jika Anda tidak yakin mana yang digunakan, tabel ini memetakan tujuan umum ke pendekatan yang tepat.303Agent SDK memberi Anda akses ke beberapa cara untuk memperluas perilaku agen Anda. Jika Anda tidak yakin mana yang digunakan, tabel ini memetakan tujuan umum ke pendekatan yang tepat.

304 304 

305| Anda ingin... | Gunakan | Permukaan SDK |305| Apa yang ingin Anda lakukan | Gunakan | Permukaan SDK |

306| :--------------------------------------------------------------------------------------------------- | :-------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |306| :--------------------------------------------------------------------------------------------------- | :-------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

307| Atur konvensi proyek yang selalu diikuti agen Anda | [CLAUDE.md](/docs/id/memory) | `settingSources: ["project"]` memuat secara otomatis |307| Atur konvensi proyek yang selalu diikuti agen Anda | [CLAUDE.md](/docs/id/memory) | `settingSources: ["project"]` memuat secara otomatis |

308| Berikan agen materi referensi yang dimuat ketika relevan | [Skills](/docs/id/agent-sdk/skills) | `settingSources` + `skills` option |308| Berikan agen materi referensi yang dimuat ketika relevan | [Skills](/docs/id/agent-sdk/skills) | `settingSources` + `skills` option |

Details

189TypeScript juga memiliki `applyFlagSettings()` dan `updateSettings()`:189TypeScript juga memiliki `applyFlagSettings()` dan `updateSettings()`:

190 190 

191* **`applyFlagSettings()`**: menerapkan pengaturan saat runtime, seperti dalam `await session.applyFlagSettings({ effortLevel: "high" })`. Metode mengambil kunci file pengaturan daripada bidang opsi, jadi periksa referensi [`applyFlagSettings()`](/docs/id/agent-sdk/typescript#applyflagsettings) untuk skema dan untuk kunci mana yang berlaku di tengah sesi.191* **`applyFlagSettings()`**: menerapkan pengaturan saat runtime, seperti dalam `await session.applyFlagSettings({ effortLevel: "high" })`. Metode mengambil kunci file pengaturan daripada bidang opsi, jadi periksa referensi [`applyFlagSettings()`](/docs/id/agent-sdk/typescript#applyflagsettings) untuk skema dan untuk kunci mana yang berlaku di tengah sesi.

192* **`updateSettings()`**: menulis set kunci yang diizinkan ke file pengaturan lokal proyek, seperti dalam `await session.updateSettings("localSettings", { outputStyle: "Explanatory" })`. Kunci yang ditulis berlaku pada permintaan sesi berikutnya dan bertahan untuk sesi nanti yang memuat pengaturan `local`. Baris metode dalam [tabel metode](/docs/id/agent-sdk/typescript#methods) menamai kunci yang diizinkan dan lantai versi.192* **`updateSettings()`**: menulis satu kunci yang diizinkan ke file pengaturan. Referensi [`updateSettings()`](/docs/id/agent-sdk/typescript#updatesettings) menamai kunci yang diterima setiap sumber dan lantai versi.

193 * Berikan `"localSettings"` untuk menulis file pengaturan lokal proyek, seperti dalam `await session.updateSettings("localSettings", { outputStyle: "Explanatory" })`. Kunci yang ditulis berlaku pada permintaan sesi berikutnya dan bertahan untuk sesi nanti yang memuat pengaturan `local`.

194 * Berikan `"userSettings"` untuk menulis `effortLevel`, satu-satunya kunci yang sumber terima. Claude Code menyimpannya sebagai tingkat upaya default untuk model sesi saat ini, dan upaya sesi yang berjalan tidak berubah.

193 195 

194Contoh di bawah menjalankan sesi dua giliran, mengubah konfigurasi di antara giliran, dan mencetak model yang menjawab setiap giliran. Di TypeScript, aliran prompt menyimpan pesan kedua sampai setter telah berjalan, dan giliran kedua berjalan pada model baru.196Contoh di bawah menjalankan sesi dua giliran, mengubah konfigurasi di antara giliran, dan mencetak model yang menjawab setiap giliran. Di TypeScript, aliran prompt menyimpan pesan kedua sampai setter telah berjalan, dan giliran kedua berjalan pada model baru.

195 197 

Details

37 37 

38* **`query()` call:** satu invokasi dari fungsi `query()` SDK. Satu panggilan dapat melibatkan beberapa langkah: Claude merespons, menggunakan tools, mendapatkan hasil, dan merespons lagi. Setiap panggilan menghasilkan satu pesan [`result`](/docs/id/agent-sdk/typescript#sdkresultmessage) di akhir, kecuali dalam [mode input streaming](/docs/id/agent-sdk/streaming-vs-single-mode), di mana satu panggilan `query()` membawa beberapa giliran pengguna dan setiap giliran memancarkan pesan `result` miliknya sendiri.38* **`query()` call:** satu invokasi dari fungsi `query()` SDK. Satu panggilan dapat melibatkan beberapa langkah: Claude merespons, menggunakan tools, mendapatkan hasil, dan merespons lagi. Setiap panggilan menghasilkan satu pesan [`result`](/docs/id/agent-sdk/typescript#sdkresultmessage) di akhir, kecuali dalam [mode input streaming](/docs/id/agent-sdk/streaming-vs-single-mode), di mana satu panggilan `query()` membawa beberapa giliran pengguna dan setiap giliran memancarkan pesan `result` miliknya sendiri.

39* **Step:** satu siklus request/response dalam panggilan `query()`. Setiap langkah menghasilkan pesan asisten dengan penggunaan token.39* **Step:** satu siklus request/response dalam panggilan `query()`. Setiap langkah menghasilkan pesan asisten dengan penggunaan token.

40* **Session:** serangkaian panggilan `query()` yang terhubung oleh ID sesi (menggunakan opsi `resume`). Setiap panggilan `query()` dalam sesi melaporkan biayanya secara independen.40* **Session:** serangkaian panggilan `query()` yang terhubung oleh ID sesi melalui opsi `resume`. Hasil panggilan yang dilanjutkan melaporkan pengeluaran seluruh sesi, bukan hanya panggilan itu sendiri. Lihat [Accumulate costs across multiple calls](#accumulate-costs-across-multiple-calls) untuk cara total dibawa ke depan.

41 41 

42Diagram berikut menunjukkan aliran pesan dari satu panggilan `query()`, dengan penggunaan token dilaporkan pada setiap langkah dan perkiraan kumulatif di akhir:42Diagram berikut menunjukkan aliran pesan dari satu panggilan `query()`, dengan penggunaan token dilaporkan pada setiap langkah dan perkiraan kumulatif di akhir:

43 43 


51 </Step>51 </Step>

52 52 

53 <Step title="Pesan hasil memberikan perkiraan kumulatif">53 <Step title="Pesan hasil memberikan perkiraan kumulatif">

54 Ketika panggilan `query()` selesai, SDK memancarkan pesan hasil dengan `total_cost_usd` dan `usage` kumulatif, diketik sebagai [`SDKResultMessage`](/docs/id/agent-sdk/typescript#sdkresultmessage) di TypeScript dan [`ResultMessage`](/docs/id/agent-sdk/python#resultmessage) di Python. Jika Anda membuat beberapa panggilan `query()`, misalnya dalam sesi multi-giliran, setiap hasil hanya mencerminkan biaya panggilan individual itu. Jika Anda hanya membutuhkan total perkiraan, Anda dapat mengabaikan penggunaan per-step dan membaca nilai tunggal ini.54 Ketika panggilan `query()` selesai, SDK memancarkan pesan hasil dengan `total_cost_usd` dan `usage` kumulatif, diketik sebagai [`SDKResultMessage`](/docs/id/agent-sdk/typescript#sdkresultmessage) di TypeScript dan [`ResultMessage`](/docs/id/agent-sdk/python#resultmessage) di Python. Jika Anda hanya membutuhkan total perkiraan, Anda dapat mengabaikan penggunaan per-step dan membaca nilai tunggal ini.

55 

56 Jika Anda membuat beberapa panggilan `query()` independen, setiap hasil hanya mencerminkan biaya panggilan individual itu. Panggilan yang melanjutkan sesi juga menghitung pengeluaran awal sesi.

55 57 

56 Dalam mode input streaming, setiap giliran memancarkan pesan hasil miliknya sendiri. Lihat [Track costs in streaming input mode](#track-costs-in-streaming-input-mode) untuk cara membaca total panggilan dalam mode itu.58 Dalam mode input streaming, setiap giliran memancarkan pesan hasil miliknya sendiri. Lihat [Track costs in streaming input mode](#track-costs-in-streaming-input-mode) untuk cara membaca total panggilan dalam mode itu.

57 </Step>59 </Step>


64Dalam [mode input streaming](/docs/id/agent-sdk/streaming-vs-single-mode), satu panggilan `query()` membawa beberapa giliran pengguna dan setiap giliran memancarkan pesan hasilnya sendiri. Bidang hasil berbeda dalam cakupan:66Dalam [mode input streaming](/docs/id/agent-sdk/streaming-vs-single-mode), satu panggilan `query()` membawa beberapa giliran pengguna dan setiap giliran memancarkan pesan hasilnya sendiri. Bidang hasil berbeda dalam cakupan:

65 67 

66* **`usage`**: mencakup hanya giliran itu, dan di dalamnya hanya loop agen utama, bukan subagen apa pun yang dijalankannya.68* **`usage`**: mencakup hanya giliran itu, dan di dalamnya hanya loop agen utama, bukan subagen apa pun yang dijalankannya.

67* **`total_cost_usd` dan `modelUsage`, atau `model_usage` dalam Python**: membawa total berjalan untuk seluruh panggilan sejauh ini.69* **`total_cost_usd` dan `modelUsage`, atau `model_usage` dalam Python**: membawa total berjalan untuk seluruh panggilan sejauh ini, ditambah pengeluaran apa pun yang dipulihkan ketika panggilan melanjutkan sesi.

68 70 

69Dalam panggilan di mana aplikasi Anda tidak pernah mengirim `/clear`, `/reset`, atau `/new`, baca hasil terbaru untuk total panggilan daripada menjumlahkan hasil.71Dalam panggilan di mana aplikasi Anda tidak pernah mengirim `/clear`, `/reset`, atau `/new`, baca hasil terbaru untuk total panggilan daripada menjumlahkan hasil.

70 72 


78 80 

79Dalam TypeScript, SDK juga memancarkan [`SDKConversationResetMessage`](/docs/id/agent-sdk/typescript#sdkconversationresetmessage) pada setiap pengaturan ulang, sehingga Anda dapat mendeteksi pengaturan ulang dari aliran. Dalam Python, SDK juga memancarkan `ConversationResetMessage`. Sebelum Python SDK v0.2.137, iterator Python menghilangkan pesan itu, jadi pada versi tersebut hitung pengaturan ulang sendiri dari giliran `/clear` yang dikirim aplikasi Anda.81Dalam TypeScript, SDK juga memancarkan [`SDKConversationResetMessage`](/docs/id/agent-sdk/typescript#sdkconversationresetmessage) pada setiap pengaturan ulang, sehingga Anda dapat mendeteksi pengaturan ulang dari aliran. Dalam Python, SDK juga memancarkan `ConversationResetMessage`. Sebelum Python SDK v0.2.137, iterator Python menghilangkan pesan itu, jadi pada versi tersebut hitung pengaturan ulang sendiri dari giliran `/clear` yang dikirim aplikasi Anda.

80 82 

81`maxBudgetUsd` (TypeScript) atau `max_budget_usd` (Python) dibandingkan dengan total berjalan yang sama, jadi `/clear` juga memulai anggaran ulang.83`maxBudgetUsd` (TypeScript) atau `max_budget_usd` (Python) hanya menghitung pengeluaran panggilan itu sendiri: total yang dipulihkan dari sesi yang dilanjutkan tidak dihitung terhadapnya, dan `/clear` memulai anggaran ulang.

82 84 

83<h2 id="get-the-total-cost-of-a-query">85<h2 id="get-the-total-cost-of-a-query">

84 Dapatkan total biaya dari sebuah query86 Dapatkan total biaya dari sebuah query

85</h2>87</h2>

86 88 

87Pesan hasil, yang diketik sebagai [`SDKResultMessage`](/docs/id/agent-sdk/typescript#sdkresultmessage) di TypeScript dan [`ResultMessage`](/docs/id/agent-sdk/python#resultmessage) di Python, menandai akhir dari loop agen untuk panggilan `query()`. Ini mencakup `total_cost_usd`, biaya perkiraan kumulatif di semua langkah dalam panggilan tersebut. Di Python, bidang ini diketik sebagai opsional, jadi periksa bahwa itu bukan `None` sebelum Anda membacanya. Hasil sukses dan kesalahan keduanya membawanya, meskipun hasil akhir dari [kerusakan sesi](#recover-totals-after-a-session-crash) mungkin membawanya dengan nilai nol.89Pesan hasil, yang diketik sebagai [`SDKResultMessage`](/docs/id/agent-sdk/typescript#sdkresultmessage) di TypeScript dan [`ResultMessage`](/docs/id/agent-sdk/python#resultmessage) di Python, menandai akhir dari loop agen untuk panggilan `query()`. Ini mencakup `total_cost_usd`, biaya perkiraan kumulatif di semua langkah dalam panggilan tersebut. Sebuah panggilan yang melanjutkan sesi juga menghitung pengeluaran awal sesi. Dua peringatan berlaku ketika Anda membaca nilainya:

90 

91* Di Python bidang ini diketik sebagai opsional, jadi periksa bahwa itu bukan `None` sebelum Anda membacanya.

92* Hasil sukses dan kesalahan keduanya membawanya, meskipun hasil akhir dari [kerusakan sesi](#recover-totals-after-a-session-crash) mungkin membawanya dengan nilai nol.

88 93 

89Jika Anda menggunakan sesi untuk membuat beberapa panggilan `query()`, setiap hasil hanya mencerminkan biaya dari panggilan individual tersebut. Dalam mode input streaming, baca total panggilan seperti yang dijelaskan dalam [Lacak biaya dalam mode input streaming](#track-costs-in-streaming-input-mode).94Dalam mode input streaming, baca total panggilan seperti yang dijelaskan dalam [Lacak biaya dalam mode input streaming](#track-costs-in-streaming-input-mode).

90 95 

91Tiga bidang tingkat hasil berbeda dalam apa yang mereka hitung ketika agen menelurkan [subagen](/docs/id/agent-sdk/subagents). Gunakan `modelUsage`, atau `model_usage` di Python, untuk akuntansi token seluruh pohon; bidang `usage` kurang menghitung segera setelah nesting terjadi.96Tiga bidang tingkat hasil berbeda dalam apa yang mereka hitung ketika agen menelurkan [subagen](/docs/id/agent-sdk/subagents). Gunakan `modelUsage`, atau `model_usage` di Python, untuk akuntansi token seluruh pohon; bidang `usage` kurang menghitung segera setelah nesting terjadi.

92 97 


232 Akumulasi biaya di seluruh beberapa panggilan237 Akumulasi biaya di seluruh beberapa panggilan

233</h2>238</h2>

234 239 

235Setiap panggilan `query()` mengembalikan `total_cost_usd` miliknya sendiri. SDK tidak menyediakan total tingkat sesi, jadi jika aplikasi Anda melakukan beberapa panggilan `query()`, misalnya dalam sesi multi-putaran atau di seluruh pengguna yang berbeda, akumulasikan totalnya sendiri. Dalam mode input streaming, baca total setiap panggilan seperti yang dijelaskan dalam [Track costs in streaming input mode](#track-costs-in-streaming-input-mode). Untuk panggilan yang berakhir dalam kerusakan, lihat [Recover totals after a session crash](#recover-totals-after-a-session-crash).240Setiap panggilan `query()` mengembalikan `total_cost_usd` pada hasilnya. Cara Anda menggabungkan nilainya tergantung pada apakah panggilan berbagi sesi:

241 

242* **Panggilan independen, tanpa opsi `resume` atau `continue`**: setiap hasil hanya mencakup panggilan miliknya sendiri, jadi tambahkan totalnya sendiri, seperti yang dilakukan contoh di bawah ini.

243* **Panggilan yang melanjutkan sesi yang sama**: Claude Code menyimpan total sesi ke [transcript](/docs/id/sessions#where-transcripts-are-stored) ketika proses keluar secara normal dan memulihkannya ketika panggilan nanti melanjutkan atau memisahkan sesi. Setiap hasil sudah mencakup pengeluaran awal sesi. Baca hasil terbaru untuk total sesi; menjumlahkan hasil menghitung dua kali pengeluaran yang dipulihkan. Sebelum v2.1.277, sesi yang Anda lanjutkan melalui SDK atau `claude -p` memulai totalnya di nol, jadi hasil setiap panggilan hanya mencakup panggilan itu.

244 

245Dalam mode input streaming, baca total setiap panggilan seperti yang dijelaskan dalam [Track costs in streaming input mode](#track-costs-in-streaming-input-mode). Untuk panggilan yang berakhir dalam kerusakan, lihat [Recover totals after a session crash](#recover-totals-after-a-session-crash).

236 246 

237Contoh berikut menjalankan dua panggilan `query()` secara berurutan, menambahkan `total_cost_usd` setiap panggilan ke total yang berjalan, dan mencetak biaya per-panggilan dan gabungan:247Contoh berikut menjalankan dua panggilan `query()` secara berurutan, menambahkan `total_cost_usd` setiap panggilan ke total yang berjalan, dan mencetak biaya per-panggilan dan gabungan:

238 248 


338 348 

339Ketika proses Claude Code mogok, ia mengeluarkan hasil `error_during_execution` akhir dan keluar, dalam mode input single-shot dan streaming sama-sama. Hasil itu mungkin membawa `usage`, `total_cost_usd`, dan `modelUsage` yang dinolkan, jadi pulihkan total panggilan dari apa yang tiba sebelumnya. Langkah 1 memulihkan total penuh kapan pun hasil sebelumnya ada; fallback di langkah 2 memulihkan hanya token input dan cache loop utama.349Ketika proses Claude Code mogok, ia mengeluarkan hasil `error_during_execution` akhir dan keluar, dalam mode input single-shot dan streaming sama-sama. Hasil itu mungkin membawa `usage`, `total_cost_usd`, dan `modelUsage` yang dinolkan, jadi pulihkan total panggilan dari apa yang tiba sebelumnya. Langkah 1 memulihkan total penuh kapan pun hasil sebelumnya ada; fallback di langkah 2 memulihkan hanya token input dan cache loop utama.

340 350 

3411. Gunakan hasil giliran sebelum kerusakan. Dalam mode input streaming, ia menyimpan total berjalan sejak awal panggilan atau sejak [`/clear`](#track-costs-in-streaming-input-mode) terakhir. Lanjutkan ke langkah 2 sebagai gantinya ketika hasil itu tidak dapat membantu Anda:3511. Gunakan hasil giliran sebelum kerusakan. Dalam mode input streaming, ia menyimpan total berjalan yang dijelaskan dalam [Track costs in streaming input mode](#track-costs-in-streaming-input-mode). Lanjutkan ke langkah 2 sebagai gantinya ketika hasil itu tidak dapat membantu Anda:

342 * Panggilan adalah single-shot, jadi tidak ada hasil sebelumnya.352 * Panggilan adalah single-shot, jadi tidak ada hasil sebelumnya.

343 * Kerusakan terjadi pada giliran pertama.353 * Kerusakan terjadi pada giliran pertama.

344 * Giliran sebelum kerusakan adalah `/clear` itu sendiri, jadi hasilnya hanya mencakup reset.354 * Giliran sebelum kerusakan adalah `/clear` itu sendiri, jadi hasilnya hanya mencakup reset.

Details

12 Referensi cepat12 Referensi cepat

13</h2>13</h2>

14 14 

15| Jika Anda ingin... | Lakukan ini |15| Apa yang ingin Anda lakukan | Lakukan ini |

16| :-------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |16| :-------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

17| Menentukan alat | Gunakan [`@tool`](/docs/id/agent-sdk/python#tool) (Python) atau [`tool()`](/docs/id/agent-sdk/typescript#tool) (TypeScript) dengan nama, deskripsi, skema, dan penangan. Lihat [Buat alat kustom](#create-a-custom-tool). |17| Menentukan alat | Gunakan [`@tool`](/docs/id/agent-sdk/python#tool) (Python) atau [`tool()`](/docs/id/agent-sdk/typescript#tool) (TypeScript) dengan nama, deskripsi, skema, dan penangan. Lihat [Buat alat kustom](#create-a-custom-tool). |

18| Mendaftarkan alat dengan Claude | Bungkus dalam `create_sdk_mcp_server` / `createSdkMcpServer` dan teruskan ke `mcpServers` dalam `query()`. Lihat [Panggil alat kustom](#call-a-custom-tool). |18| Mendaftarkan alat dengan Claude | Bungkus dalam `create_sdk_mcp_server` / `createSdkMcpServer` dan teruskan ke `mcpServers` dalam `query()`. Lihat [Panggil alat kustom](#call-a-custom-tool). |

Details

10 10 

11Halaman ini mencakup self-hosting pada infrastruktur Anda sendiri. Untuk Dockerfile yang dapat digunakan dan manifes Kubernetes, lihat [hosting cookbook](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting).11Halaman ini mencakup self-hosting pada infrastruktur Anda sendiri. Untuk Dockerfile yang dapat digunakan dan manifes Kubernetes, lihat [hosting cookbook](https://github.com/anthropics/claude-cookbooks/tree/main/claude_agent_sdk/hosting).

12 12 

13Jika Anda tidak memerlukan kontrol infrastruktur, isolasi khusus, atau data plane Anda sendiri, pertimbangkan [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) sebagai gantinya: REST API yang dihosting di mana Anthropic menjalankan agen dan sandbox, sehingga aplikasi Anda mengirim acara dan streaming kembali hasil tanpa infrastruktur hosting yang perlu dioperasikan.13Jika Anda tidak perlu menjalankan loop agen itu sendiri pada infrastruktur Anda sendiri, pertimbangkan [Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) sebagai gantinya. Anthropic menghosting loop agen, dan aplikasi Anda mengirim acara dan menerima hasil yang dialirkan melalui SDK klien atau REST API. Eksekusi alat berjalan di sandbox cloud yang dikelola Anthropic atau [sandbox yang dihosting sendiri](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes) pada infrastruktur Anda sendiri.

14 14 

15<h2 id="the-subprocess-model">15<h2 id="the-subprocess-model">

16 Model subprocess16 Model subprocess

Details

387* Jika Anda menyertakan penanda lebih dari sekali, yang pertama adalah pemisahan dan SDK menghapus yang lain.387* Jika Anda menyertakan penanda lebih dari sekali, yang pertama adalah pemisahan dan SDK menghapus yang lain.

388* Jika Anda meninggalkan penanda, SDK menggabungkan semua string menjadi satu blok, sama seperti melewatkan satu string.388* Jika Anda meninggalkan penanda, SDK menggabungkan semua string menjadi satu blok, sama seperti melewatkan satu string.

389 389 

390Dengan flag [`--system-prompt` atau `--system-prompt-file`](/docs/id/cli-reference#system-prompt-flags) CLI, prompt adalah satu string, sehingga tidak ada array untuk membawa penanda. Sertakan baris yang hanya berisi `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` antara bagian statis dan per-permintaan sebagai gantinya. Claude Code membagi prompt pada baris pertama seperti itu menjadi dua blok yang sama dan menghapus baris itu. Memerlukan Claude Code v2.1.275 atau lebih baru.

391 

392Dalam SDK, lebih suka bentuk array, yang membawa batas tanpa baris penanda.

393 

390<h3 id="change-the-prompt-of-an-existing-session">394<h3 id="change-the-prompt-of-an-existing-session">

391 Ubah prompt dari sesi yang ada395 Ubah prompt dari sesi yang ada

392</h3>396</h3>

Details

12 Bandingkan Agent SDK dengan alat Claude lainnya12 Bandingkan Agent SDK dengan alat Claude lainnya

13</h2>13</h2>

14 14 

15Agent SDK, CLI, Client SDK, dan Managed Agents masing-masing sesuai dengan kebutuhan yang berbeda. Gunakan tabel untuk menemukan yang cocok dengan apa yang Anda bangun.15Agent SDK, CLI, Client SDK, dan Managed Agents berbeda dalam hal siapa yang menjalankan agen, apa yang sudah tertanam, dan bagaimana Anda mengaksesnya. Temukan baris yang sesuai dengan cara Anda ingin membangun dan menjalankannya.

16 16 

17| Jika Anda... | Gunakan | Mengapa |17| Anda ingin | Gunakan | Apa yang Anda dapatkan |

18| ---------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- |18| ------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

19| Membangun agen tanpa mengimplementasikan loop alat sendiri | **Agent SDK** | Sebuah library Python atau TypeScript yang menjalankan loop agen untuk Anda. |19| Menyematkan agen Claude Code dalam aplikasi Python atau TypeScript Anda sendiri, dalam proses yang Anda operasikan | **Agent SDK** | Sebuah library yang menjalankan biner Claude Code, dengan [kemampuan](#capabilities) Claude Code, seperti alat bawaan, izin, sesi, dan hooks. |

20| Melakukan pengembangan interaktif atau menjalankan tugas sekali jadi dari terminal | [**Claude Code CLI**](/docs/id/overview) | Antarmuka terminal, dibangun untuk penggunaan interaktif sehari-hari. |20| Melakukan pengembangan interaktif atau menjalankan tugas sekali jadi dari terminal | [**Claude Code CLI**](/docs/id/overview) | Antarmuka terminal, dibangun untuk penggunaan interaktif sehari-hari. |

21| Memanggil API secara langsung dan mengimplementasikan loop alat sendiri | [**Client SDK**](https://platform.claude.com/docs/en/api/client-sdks) | Akses langsung ke API Anthropic daripada ke Claude Code. Anda mengimplementasikan loop alat sendiri. |21| Memanggil API Claude secara langsung dari kode Anda sendiri | [**Client SDK**](https://platform.claude.com/docs/en/cli-sdks-libraries/overview) | Akses langsung ke API Claude dari salah satu bahasa Client SDK. Anda menulis loop alat sendiri, atau biarkan [tool runner](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-runner) beta Client SDK menjalankannya. |

22| Menjalankan agen jangka panjang atau asinkron tanpa mengelola infrastruktur sandbox atau sesi Anda sendiri | [**Managed Agents**](https://platform.claude.com/docs/en/managed-agents/overview) | REST API yang dihosting, produk terpisah dari Agent SDK. Anthropic menjalankan agen dan sandbox. |22| Memiliki Anthropic menjalankan agen, dikonfigurasi melalui API Claude | [**Managed Agents**](https://platform.claude.com/docs/en/managed-agents/overview) | Harness agen yang dihosting yang menjalankan loop agen, dengan sesi dalam sandbox cloud yang dikelola Anthropic atau [sandbox yang dihosting sendiri](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes) pada infrastruktur Anda sendiri. Gunakan dari [SDK untuk bahasa Anda](https://platform.claude.com/docs/en/managed-agents/quickstart#install-the-sdk), CLI `ant`, atau REST API. |

23 23 

24SDK tersedia sebagai library untuk Python dan TypeScript saja. Untuk menjalankan loop agen yang sama dari bahasa lain, [jalankan CLI sebagai subprocess](/docs/id/headless) dengan flag `-p` dan `--output-format json`.24Untuk menjalankan loop agen yang sama dari bahasa selain Python atau TypeScript, [jalankan CLI sebagai subprocess](/docs/id/headless) dengan flag `-p` dan `--output-format json`.

25 25 

26<h2 id="capabilities">26<h2 id="capabilities">

27 Kemampuan27 Kemampuan

Details

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

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

907| `max_turns` | `int \| None` | `None` | Jumlah maksimal putaran agentic (round trip penggunaan tool) |907| `max_turns` | `int \| None` | `None` | Jumlah maksimal putaran agentic (round trip penggunaan tool) |

908| `max_budget_usd` | `float \| None` | `None` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Dibandingkan dengan estimasi yang sama seperti `total_cost_usd`. Untuk peringatan akurasi dan perilaku reset, lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) |908| `max_budget_usd` | `float \| None` | `None` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Hanya menghitung pengeluaran panggilan sendiri; total yang dipulihkan dari sesi yang dilanjutkan tidak dihitung. Untuk peringatan akurasi dan perilaku reset, lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) |

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

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

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


1487Gunakan dengan field `betas` dalam `ClaudeAgentOptions` untuk mengaktifkan fitur beta.1487Gunakan dengan field `betas` dalam `ClaudeAgentOptions` untuk mengaktifkan fitur beta.

1488 1488 

1489<Warning>1489<Warning>

1490 Beta `context-1m-2025-08-07` sudah pensiun sejak 30 April 2026. Melewatkan header ini dengan Claude Sonnet 4.5 atau Sonnet 4 tidak berpengaruh, dan permintaan yang melebihi jendela konteks standar 200k-token mengembalikan error. Untuk menggunakan jendela konteks 1M-token, migrasikan ke [Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, atau Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), yang mencakup konteks 1M pada harga standar tanpa header beta yang diperlukan.1490 Beta `context-1m-2025-08-07` sudah pensiun sejak 30 April 2026. Melewatkan header ini dengan Claude Sonnet 4.5 atau Sonnet 4 tidak berpengaruh, dan permintaan yang melebihi jendela konteks standar 200k-token mengembalikan error. Untuk menggunakan jendela konteks 1M-token, migrasikan ke [Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, atau Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), yang mencakup konteks 1M pada harga standar tanpa header beta yang diperlukan.

1491</Warning>1491</Warning>

1492 1492 

1493<h3 id="mcpsdkserverconfig">1493<h3 id="mcpsdkserverconfig">


1799 1799 

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

1801 1801 

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

1803 1803 

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

1805 1805 


2923 "command": str | None, # Skrip shell; setiap baris stdout adalah event, keluar mengakhiri pengawasan2923 "command": str | None, # Skrip shell; setiap baris stdout adalah event, keluar mengakhiri pengawasan

2924 "ws": dict | None, # Sumber WebSocket: {"url": str, "protocols": list[str] | None}; setiap frame teks adalah event2924 "ws": dict | None, # Sumber WebSocket: {"url": str, "protocols": list[str] | None}; setiap frame teks adalah event

2925 "description": str, # Deskripsi singkat ditampilkan dalam notifikasi2925 "description": str, # Deskripsi singkat ditampilkan dalam notifikasi

2926 "timeout_ms": int | None, # Bunuh setelah batas waktu ini (default 300000, maks 3600000)2926 "timeout_ms": int | None, # Batas waktu dalam milidetik (default 300000, maks 3600000; batas waktu efektif paling banyak 1800000)

2927 "persistent": bool | None, # Jalankan untuk seumur hidup sesi; hentikan dengan TaskStop

2928}2927}

2929```2928```

2930 2929 


2933```python theme={null}2932```python theme={null}

2934{2933{

2935 "taskId": str, # ID tugas monitor latar belakang2934 "taskId": str, # ID tugas monitor latar belakang

2936 "timeoutMs": int, # Batas waktu dalam milidetik (0 saat persistent)2935 "timeoutMs": int, # Batas waktu efektif pengawasan dalam milidetik

2937 "persistent": bool | None, # True saat berjalan hingga TaskStop atau akhir sesi2936 "persistent": bool | None, # False: setiap pengawasan memiliki batas waktu

2938}2937}

2939```2938```

2940 2939 


3350 TaskOutput3349 TaskOutput

3351</h3>3350</h3>

3352 3351 

3353**Nama tool:** `TaskOutput`. Nama sebelumnya `BashOutput` masih diterima sebagai alias.3352Dihapus dalam Claude Code v2.1.277. Sebelumnya mengambil output dari tugas latar belakang yang sedang berjalan atau selesai, dengan `BashOutput` diterima sebagai alias; Claude membaca file output tugas latar belakang dengan `Read` sebagai gantinya.

3354 3353 

3355<Note>`TaskOutput` tidak digunakan lagi; lebih suka `Read` pada jalur file output tugas. Skema di bawah tetap valid untuk hooks dan penanganan izin yang menemukan tool.</Note>3354Entri `disallowed_tools` atau aturan deny yang masih menamai salah satu nama diabaikan tanpa peringatan.

3356 

3357**Input:**

3358 

3359```python theme={null}

3360{

3361 "task_id": str, # ID tugas untuk mendapatkan output dari

3362 "block": bool, # Apakah menunggu penyelesaian (default True)

3363 "timeout": int, # Waktu tunggu maksimal dalam ms (default 30000)

3364}

3365```

3366 

3367**Output:**

3368 

3369```python theme={null}

3370{

3371 "retrieval_status": "success" | "timeout" | "not_ready", # Apakah output diambil

3372 "task": dict | None, # Detail tugas: task_id, task_type, status, description, output, plus bidang khusus tipe seperti exitCode

3373}

3374```

3375 3355 

3376<h3 id="taskstop">3356<h3 id="taskstop">

3377 TaskStop3357 TaskStop


3629```3609```

3630 3610 

3631| Property | Type | Default | Description |3611| Property | Type | Default | Description |

3632| :-------------------------- | :---------------------------------------------------- | :------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |3612| :-------------------------- | :---------------------------------------------------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

3633| `enabled` | `bool` | `False` | Aktifkan mode sandbox untuk eksekusi perintah |3613| `enabled` | `bool` | `False` | Aktifkan mode sandbox untuk eksekusi perintah |

3634| `autoAllowBashIfSandboxed` | `bool` | `True` | Persetujuan otomatis untuk perintah bash ketika sandbox diaktifkan |3614| `autoAllowBashIfSandboxed` | `bool` | `True` | Persetujuan otomatis untuk perintah bash ketika sandbox diaktifkan |

3635| `excludedCommands` | `list[str]` | `[]` | Perintah yang selalu melewati pembatasan sandbox (misalnya, `["docker"]`). Perintah ini berjalan tanpa sandbox secara otomatis tanpa keterlibatan model |3615| `excludedCommands` | `list[str]` | `[]` | Perintah yang melewati pembatasan sandbox, seperti `["docker *"]`. Perintah ini berjalan tanpa sandbox secara otomatis tanpa keterlibatan model; [`sandbox.excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands) mencakup kapan entri berlaku |

3636| `allowUnsandboxedCommands` | `bool` | `True` | Izinkan model untuk meminta menjalankan perintah di luar sandbox. Ketika `True`, model dapat mengatur `dangerouslyDisableSandbox` dalam input tool, yang kembali ke [sistem izin](#permissions-fallback-for-unsandboxed-commands) |3616| `allowUnsandboxedCommands` | `bool` | `True` | Izinkan model untuk meminta menjalankan perintah di luar sandbox. Ketika `True`, model dapat mengatur `dangerouslyDisableSandbox` dalam input tool, yang kembali ke [sistem izin](#permissions-fallback-for-unsandboxed-commands) |

3637| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `None` | Konfigurasi sandbox khusus jaringan |3617| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `None` | Konfigurasi sandbox khusus jaringan |

3638| `ignoreViolations` | [`SandboxIgnoreViolations`](#sandboxignoreviolations) | `None` | Konfigurasi pelanggaran sandbox mana yang akan diabaikan |3618| `ignoreViolations` | [`SandboxIgnoreViolations`](#sandboxignoreviolations) | `None` | Konfigurasi pelanggaran sandbox mana yang akan diabaikan |


3737 Fallback Izin untuk Perintah Tanpa Sandbox3717 Fallback Izin untuk Perintah Tanpa Sandbox

3738</h3>3718</h3>

3739 3719 

3740Ketika `allowUnsandboxedCommands` diaktifkan, model dapat meminta untuk menjalankan perintah di luar sandbox dengan mengatur `dangerouslyDisableSandbox: True` dalam input tool. Permintaan ini kembali ke sistem izin yang ada, berarti handler `can_use_tool` Anda akan dipanggil, memungkinkan Anda menerapkan logika otorisasi khusus. Perintah yang tercantum dalam `excludedCommands` sebagai gantinya melewati sandbox secara otomatis, tanpa keterlibatan model; lihat [`SandboxSettings`](#sandboxsettings).3720Ketika `allowUnsandboxedCommands` diaktifkan, model dapat meminta untuk menjalankan perintah di luar sandbox dengan mengatur `dangerouslyDisableSandbox: True` dalam input tool. Permintaan ini kembali ke sistem izin yang ada, berarti handler `can_use_tool` Anda akan dipanggil, memungkinkan Anda menerapkan logika otorisasi khusus.

3721 

3722Entri `excludedCommands` Anda sebagai gantinya mengambil perintah keluar dari sandbox tanpa keterlibatan model; [`sandbox.excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands) mencakup kapan entri berlaku.

3741 3723 

3742Contoh berikut mencatat setiap permintaan tanpa sandbox dan menolaknya kecuali logika otorisasi Anda sendiri mengizinkannya:3724Contoh berikut mencatat setiap permintaan tanpa sandbox dan menolaknya kecuali logika otorisasi Anda sendiri mengizinkannya:

3743 3725 

Details

648| :---------- | :------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |648| :---------- | :------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

649| Kedalaman | [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/id/env-vars) | `3` lapisan subagen di bawah agen utama Anda. `1` menghentikan subagen Anda dari menspawn milik mereka sendiri | Meninggalkan subagen di lapisan bawah tidak dapat menspawn, jadi ia melakukan pekerjaan yang didelegasikan sendiri. Lihat [subagen bersarang](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) |649| Kedalaman | [`CLAUDE_CODE_MAX_SUBAGENT_SPAWN_DEPTH`](/docs/id/env-vars) | `3` lapisan subagen di bawah agen utama Anda. `1` menghentikan subagen Anda dari menspawn milik mereka sendiri | Meninggalkan subagen di lapisan bawah tidak dapat menspawn, jadi ia melakukan pekerjaan yang didelegasikan sendiri. Lihat [subagen bersarang](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) |

650| Konkurensi | [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/id/env-vars) | `20` subagen berjalan sekaligus, menghitung setiap subagen yang Claude spawnkan dengan alat Agent | Menolak untuk menspawn subagen lain, mengembalikan `Concurrent subagent limit reached`, sampai jumlah yang berjalan turun di bawah batas. Sesi dengan [ultracode](/docs/id/model-config#adjust-effort-level) aktif tidak pernah ditolak. Lihat [batas subagen bersamaan](/docs/id/sub-agents#concurrent-subagent-limit) |650| Konkurensi | [`CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS`](/docs/id/env-vars) | `20` subagen berjalan sekaligus, menghitung setiap subagen yang Claude spawnkan dengan alat Agent | Menolak untuk menspawn subagen lain, mengembalikan `Concurrent subagent limit reached`, sampai jumlah yang berjalan turun di bawah batas. Sesi dengan [ultracode](/docs/id/model-config#adjust-effort-level) aktif tidak pernah ditolak. Lihat [batas subagen bersamaan](/docs/id/sub-agents#concurrent-subagent-limit) |

651| Pengeluaran | `maxBudgetUsd` di TypeScript, `max_budget_usd` di Python | Tidak ada batas. Dibandingkan dengan `total_cost_usd`, jadi permintaan subagen dihitung | Menegakkan batas dengan tiga cara: menolak untuk menspawn lebih banyak subagen, mengembalikan `Budget limit reached`, menghentikan subagen latar belakang yang masih berjalan, dan mengakhiri kueri dengan subtipe hasil `error_max_budget_usd`. Untuk cara batas berperilaku di seluruh sesi, lihat [giliran dan anggaran](/docs/id/agent-sdk/agent-loop#turns-and-budget) |651| Pengeluaran | `maxBudgetUsd` di TypeScript, `max_budget_usd` di Python | Tidak ada batas. Menghitung pengeluaran panggilan sendiri, permintaan subagen disertakan | Menegakkan batas dengan tiga cara: menolak untuk menspawn lebih banyak subagen, mengembalikan `Budget limit reached`, menghentikan subagen latar belakang yang masih berjalan, dan mengakhiri kueri dengan subtipe hasil `error_max_budget_usd`. Untuk cara batas berperilaku di seluruh sesi, lihat [giliran dan anggaran](/docs/id/agent-sdk/agent-loop#turns-and-budget) |

652 652 

653Kedua SDK memperlakukan opsi `env` secara berbeda: SDK TypeScript mengganti lingkungan subprocess dengannya, jadi sebarkan `process.env` ke dalamnya untuk menjaga variabel seperti `PATH`, sementara SDK Python menggabungkannya ke dalam lingkungan yang diwariskan. Contoh ini mematikan penyarangan, memungkinkan paling banyak lima subagen sekaligus, dan menghentikan kueri setelah pengeluaran yang diperkirakan mencapai \$5:653Kedua SDK memperlakukan opsi `env` secara berbeda: SDK TypeScript mengganti lingkungan subprocess dengannya, jadi sebarkan `process.env` ke dalamnya untuk menjaga variabel seperti `PATH`, sementara SDK Python menggabungkannya ke dalam lingkungan yang diwariskan. Contoh ini mematikan penyarangan, memungkinkan paling banyak lima subagen sekaligus, dan menghentikan kueri setelah pengeluaran yang diperkirakan mencapai \$5:

654 654 


747 747 

748Jika Claude menyelesaikan tugas secara langsung daripada mendelegasikan ke subagent Anda:748Jika Claude menyelesaikan tugas secara langsung daripada mendelegasikan ke subagent Anda:

749 749 

750* **Gunakan prompting eksplisit**: sebutkan subagent berdasarkan nama dalam prompt Anda, misalnya "Gunakan agen code-reviewer untuk..."750* **Gunakan prompting eksplisit**: sebutkan subagent berdasarkan nama dalam prompt Anda, misalnya "Gunakan agen code-reviewer untuk memeriksa modul autentikasi"

751* **Tulis deskripsi yang jelas**: jelaskan dengan tepat kapan menggunakan subagent sehingga Claude dapat mencocokkan tugas dengan tepat751* **Tulis deskripsi yang jelas**: jelaskan dengan tepat kapan menggunakan subagent sehingga Claude dapat mencocokkan tugas dengan tepat

752 752 

753<h3 id="filesystem-based-agents-not-loading">753<h3 id="filesystem-based-agents-not-loading">

Details

309| `uuid` | `string` | Pengenal pesan unik |309| `uuid` | `string` | Pengenal pesan unik |

310| `session_id` | `string` | Sesi yang pesan ini milik |310| `session_id` | `string` | Sesi yang pesan ini milik |

311| `message` | `unknown` | Payload pesan mentah dari transkrip |311| `message` | `unknown` | Payload pesan mentah dari transkrip |

312| `parent_tool_use_id` | `string \| null` | Untuk pesan subagent, `tool_use_id` dari panggilan tool `Agent` yang memicu. `null` untuk pesan sesi utama dan sesi yang lebih lama |312| `parent_tool_use_id` | `string \| null` | Untuk pesan subagent, `tool_use_id` dari panggilan tool `Agent` atau `Skill` yang memicu subagent. `null` untuk pesan sesi utama dan sesi yang lebih lama |

313| `parent_agent_id` | `string \| null` | Untuk pesan dari [subagent bersarang](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents), `agentId` dari subagent yang memicunya. `null` untuk pesan sesi utama, pesan dari subagent tingkat atas, dan sesi yang lebih lama. Memerlukan Claude Code v2.1.202 atau lebih baru |313| `parent_agent_id` | `string \| null` | Untuk pesan dari [subagent bersarang](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents), `agentId` dari subagent yang memicunya. `null` untuk pesan sesi utama, pesan dari subagent tingkat atas, dan sesi yang lebih lama. Memerlukan Claude Code v2.1.202 atau lebih baru |

314 314 

315<h4 id="example-3">315<h4 id="example-3">


504| `extraArgs` | `Record<string, string \| null>` | `{}` | Argumen tambahan |504| `extraArgs` | `Record<string, string \| null>` | `{}` | Argumen tambahan |

505| `fallbackModel` | `string` | `undefined` | Model untuk digunakan jika model utama gagal. Menerima daftar yang dipisahkan koma. Untuk urutan dan batas, lihat [Fallback model chains](/docs/id/model-config#fallback-model-chains). Untuk panduan, lihat [Choose a model](/docs/id/agent-sdk/configuration#choose-a-model) |505| `fallbackModel` | `string` | `undefined` | Model untuk digunakan jika model utama gagal. Menerima daftar yang dipisahkan koma. Untuk urutan dan batas, lihat [Fallback model chains](/docs/id/model-config#fallback-model-chains). Untuk panduan, lihat [Choose a model](/docs/id/agent-sdk/configuration#choose-a-model) |

506| `forkSession` | `boolean` | `false` | Ketika melanjutkan dengan `resume`, fork ke session ID baru alih-alih melanjutkan session asli |506| `forkSession` | `boolean` | `false` | Ketika melanjutkan dengan `resume`, fork ke session ID baru alih-alih melanjutkan session asli |

507| `forwardSubagentText` | `boolean` | `false` | Teruskan blok teks dan thinking subagent sebagai pesan assistant dan user dengan `parent_tool_use_id` diatur, sehingga konsumen dapat merender transkrip bersarang. Tanpa opsi ini, Claude Code memancarkan blok `tool_use` dan `tool_result` subagent tetapi bukan teks atau thinking. Pesan dari subagents di setiap kedalaman nesting diteruskan pada Claude Code v2.1.219 dan lebih baru; sebelum v2.1.219, hanya pesan dari subagents depth-1 yang muncul |507| `forwardSubagentText` | `boolean` | `false` | Teruskan blok teks dan thinking subagent sebagai pesan assistant dan user dengan `parent_tool_use_id` diatur, sehingga konsumen dapat merender transkrip bersarang. Tanpa opsi ini, Claude Code memancarkan blok `tool_use` dan `tool_result` subagent tetapi bukan teks atau thinking. Pesan dari subagents di setiap kedalaman nesting diteruskan pada Claude Code v2.1.219 dan lebih baru; sebelum v2.1.219, hanya pesan dari subagents depth-1 yang muncul. Pesan dari subagents yang forked skill spawn, dan dari nested forked skills, memerlukan v2.1.275 atau lebih baru |

508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Hook callbacks untuk acara |508| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | Hook callbacks untuk acara |

509| `includeHookEvents` | `boolean` | `false` | Sertakan hook lifecycle events dalam message stream sebagai [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage), dan [`SDKHookResponseMessage`](#sdkhookresponsemessage). Lifecycle events untuk `SessionStart` dan `Setup` hooks selalu disertakan dan tidak memerlukan opsi ini. Beberapa hook events, seperti `Notification`, `SessionEnd`, `PreCompact`, dan `PostCompact`, tidak pernah menghasilkan `SDKHookStartedMessage`, bahkan dengan opsi ini. Untuk acara tersebut, Claude Code masih memancarkan `SDKHookProgressMessage` saat command hook yang berjalan lebih dari satu detik menghasilkan output, dan memancarkan `SDKHookResponseMessage` hanya ketika hook [yang berjalan di background](/docs/id/hooks#run-hooks-in-the-background) selesai |509| `includeHookEvents` | `boolean` | `false` | Sertakan hook lifecycle events dalam message stream sebagai [`SDKHookStartedMessage`](#sdkhookstartedmessage), [`SDKHookProgressMessage`](#sdkhookprogressmessage), dan [`SDKHookResponseMessage`](#sdkhookresponsemessage). Lifecycle events untuk `SessionStart` dan `Setup` hooks selalu disertakan dan tidak memerlukan opsi ini. Beberapa hook events, seperti `Notification`, `SessionEnd`, `PreCompact`, dan `PostCompact`, tidak pernah menghasilkan `SDKHookStartedMessage`, bahkan dengan opsi ini. Untuk acara tersebut, Claude Code masih memancarkan `SDKHookProgressMessage` saat command hook yang berjalan lebih dari satu detik menghasilkan output, dan memancarkan `SDKHookResponseMessage` hanya ketika hook [yang berjalan di background](/docs/id/hooks#run-hooks-in-the-background) selesai |

510| `includePartialMessages` | `boolean` | `false` | Sertakan partial message events |510| `includePartialMessages` | `boolean` | `false` | Sertakan partial message events |

511| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Timeout dalam milidetik untuk setiap panggilan `sessionStore.load()` dan `sessionStore.listSubkeys()` selama resume materialization. Jika adapter tidak settle dalam jendela ini, query gagal alih-alih hang. Diabaikan ketika `sessionStore` tidak diatur |511| `loadTimeoutMs` | `number` | `60000` | *Alpha.* Timeout dalam milidetik untuk setiap panggilan `sessionStore.load()` dan `sessionStore.listSubkeys()` selama resume materialization. Jika adapter tidak settle dalam jendela ini, query gagal alih-alih hang. Diabaikan ketika `sessionStore` tidak diatur |

512| `managedSettings` | `Settings` | `undefined` | Pengaturan policy-tier yang host process Anda sediakan untuk spawned session. Pada mesin dengan managed settings yang di-deploy admin, Claude Code mengabaikan ini kecuali sumber managed priority tertinggi admin menetapkan `parentSettingsBehavior: 'merge'`, dan tidak pernah merge saat [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan managed settings. Nilai merged melewati filter restrictive-only; [Restrict parent settings](/docs/id/claude-apps-gateway#restrict-parent-settings) mencakup apa yang filter terima dan kunci `allowManaged*Only`. Host yang menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars) memiliki tiga kunci yang dibaca langsung dari payload ini: [model configuration](/docs/id/model-config#restrict-model-selection) pada Claude Code v2.1.222 atau lebih baru, [`modelPricing`](/docs/id/settings-reference#modelpricing) ketika tidak ada sumber managed yang menetapkannya pada v2.1.246 atau lebih baru, dan entri `ENABLE_TOOL_SEARCH` env-nya pada v2.1.247 atau lebih baru |512| `managedSettings` | `Settings` | `undefined` | Pengaturan policy-tier yang host process Anda sediakan untuk spawned session. Pada mesin dengan managed settings yang di-deploy admin, Claude Code mengabaikan ini kecuali sumber managed priority tertinggi admin menetapkan `parentSettingsBehavior: 'merge'`, dan tidak pernah merge saat [`policyHelper`](/docs/id/settings-reference#policyhelper) menyediakan managed settings. Nilai merged melewati filter restrictive-only; [Restrict parent settings](/docs/id/claude-apps-gateway#restrict-parent-settings) mencakup apa yang filter terima dan kunci `allowManaged*Only`. Host yang menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars) memiliki tiga kunci yang dibaca langsung dari payload ini: [model configuration](/docs/id/model-config#restrict-model-selection) pada Claude Code v2.1.222 atau lebih baru, [`modelPricing`](/docs/id/settings-reference#modelpricing) ketika tidak ada sumber managed yang menetapkannya pada v2.1.246 atau lebih baru, dan entri `ENABLE_TOOL_SEARCH` env-nya pada v2.1.247 atau lebih baru |

513| `maxBudgetUsd` | `number` | `undefined` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Dibandingkan dengan estimasi yang sama seperti `total_cost_usd`. Untuk caveat akurasi dan perilaku reset, lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) |513| `maxBudgetUsd` | `number` | `undefined` | Hentikan query ketika estimasi biaya sisi klien mencapai nilai USD ini. Hanya menghitung pengeluaran call sendiri; totals yang dipulihkan dari session yang dilanjutkan tidak dihitung. Untuk caveat akurasi dan perilaku reset, lihat [Track cost and usage](/docs/id/agent-sdk/cost-tracking) |

514| `maxThinkingTokens` | `number` | `undefined` | *Deprecated:* Gunakan `thinking` sebagai gantinya. Token maksimal untuk proses thinking |514| `maxThinkingTokens` | `number` | `undefined` | *Deprecated:* Gunakan `thinking` sebagai gantinya. Token maksimal untuk proses thinking |

515| `maxTurns` | `number` | `undefined` | Maksimal agentic turns (tool-use round trips) |515| `maxTurns` | `number` | `undefined` | Maksimal agentic turns (tool-use round trips) |

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


525| `persistSession` | `boolean` | `true` | Ketika `false`, menonaktifkan session persistence ke disk. Sessions tidak dapat dilanjutkan kemudian |525| `persistSession` | `boolean` | `true` | Ketika `false`, menonaktifkan session persistence ke disk. Sessions tidak dapat dilanjutkan kemudian |

526| `planModeInstructions` | `string` | `undefined` | Instruksi workflow kustom untuk plan mode. Ketika `permissionMode` adalah `'plan'`, string ini menggantikan badan workflow plan-mode default. CLI masih membungkusnya dengan preamble enforcement read-only dan footer protokol ExitPlanMode |526| `planModeInstructions` | `string` | `undefined` | Instruksi workflow kustom untuk plan mode. Ketika `permissionMode` adalah `'plan'`, string ini menggantikan badan workflow plan-mode default. CLI masih membungkusnya dengan preamble enforcement read-only dan footer protokol ExitPlanMode |

527| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Muat custom plugins dari local paths. Lihat [Plugins](/docs/id/agent-sdk/plugins) untuk detail |527| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | Muat custom plugins dari local paths. Lihat [Plugins](/docs/id/agent-sdk/plugins) untuk detail |

528| `projectConfigRoot` | `string` | `undefined` | Absolute path dari trusted checkout yang `cwd` adalah worktree-nya. Claude Code membaca project settings, `.mcp.json`, dan project's `.claude/` commands, agents, skills, workflows, routines, dan output styles dari direktori ini alih-alih `cwd`, dan menetapkan `CLAUDE_PROJECT_DIR` ke dalamnya. Hooks, helper scripts seperti `apiKeyHelper`, dan stdio MCP servers dimulai dengan direktori ini sebagai working directory mereka. File `CLAUDE.md` dan `.claude/rules/` masih load dari `cwd`. Memerlukan Claude Code v2.1.275 atau lebih baru |

528| `promptSuggestions` | `boolean` | `false` | Aktifkan prompt suggestions. Setelah turn, Claude Code memancarkan pesan `prompt_suggestion` yang membawa predicted next user prompt. Claude Code tidak menghasilkan suggestion untuk beberapa turns, seperti saat akun Anda mendekati atau mencapai usage limit. Lihat [When Claude Code skips suggestions](/docs/id/interactive-mode#when-claude-code-skips-suggestions) |529| `promptSuggestions` | `boolean` | `false` | Aktifkan prompt suggestions. Setelah turn, Claude Code memancarkan pesan `prompt_suggestion` yang membawa predicted next user prompt. Claude Code tidak menghasilkan suggestion untuk beberapa turns, seperti saat akun Anda mendekati atau mencapai usage limit. Lihat [When Claude Code skips suggestions](/docs/id/interactive-mode#when-claude-code-skips-suggestions) |

529| `resume` | `string` | `undefined` | Session ID untuk dilanjutkan |530| `resume` | `string` | `undefined` | Session ID untuk dilanjutkan |

530| `resumeDropsTurn` | `string` | `undefined` | Dengan `resumeSessionAt`: prompt UUID dari turn yang truncating resume bermaksud untuk discard. Claude Code menolak resume ketika discarded range berisi apa pun yang tidak dapat dikaitkan dengan turn itu, seperti absorbed queued messages atau task notifications, dan menyebutkan flag `--resume-drops-turn` dalam pesan penolakan. Hanya Agent SDK dan print-mode resumes yang membaca pasangan. Memerlukan Claude Code v2.1.223 atau lebih baru |531| `resumeDropsTurn` | `string` | `undefined` | Dengan `resumeSessionAt`: prompt UUID dari turn yang truncating resume bermaksud untuk discard. Claude Code menolak resume ketika discarded range berisi apa pun yang tidak dapat dikaitkan dengan turn itu, seperti absorbed queued messages atau task notifications, dan menyebutkan flag `--resume-drops-turn` dalam pesan penolakan. Hanya Agent SDK dan print-mode resumes yang membaca pasangan. Memerlukan Claude Code v2.1.223 atau lebih baru |


600 : Settings[K] | null;601 : Settings[K] | null;

601 }): Promise<void>;602 }): Promise<void>;

602 updateSettings(603 updateSettings(

603 source: 'localSettings',604 source: 'localSettings' | 'userSettings',

604 settings: Record<string, unknown>,605 settings: Record<string, unknown>,

605 ): Promise<void>;606 ): Promise<void>;

606 initializationResult(): Promise<SDKControlInitializeResponse>;607 initializationResult(): Promise<SDKControlInitializeResponse>;


621 reconnectMcpServer(serverName: string): Promise<void>;622 reconnectMcpServer(serverName: string): Promise<void>;

622 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;623 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;

623 setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;624 setMcpServers(servers: Record<string, McpServerConfig>): Promise<McpSetServersResult>;

625 readMcpResource(serverName: string, uri: string): Promise<SDKControlMcpReadResourceResponse>;

624 streamInput(stream: AsyncIterable<SDKUserMessage>): Promise<void>;626 streamInput(stream: AsyncIterable<SDKUserMessage>): Promise<void>;

625 stopTask(taskId: string): Promise<void>;627 stopTask(taskId: string): Promise<void>;

626 close(): void;628 close(): void;


639| `setModel()` | Mengubah model (hanya tersedia dalam streaming input mode). Meneruskan `undefined` atau string `"default"` reset ke [Claude Code's default model](/docs/id/model-config) |641| `setModel()` | Mengubah model (hanya tersedia dalam streaming input mode). Meneruskan `undefined` atau string `"default"` reset ke [Claude Code's default model](/docs/id/model-config) |

640| `setMaxThinkingTokens()` | *Deprecated:* Gunakan opsi `thinking` sebagai gantinya. Mengubah maksimal thinking tokens. Meneruskan `null` reset thinking ke session default: mid-session override dihapus, dan thinking tetap off untuk sessions yang memilikinya disabled |642| `setMaxThinkingTokens()` | *Deprecated:* Gunakan opsi `thinking` sebagai gantinya. Mengubah maksimal thinking tokens. Meneruskan `null` reset thinking ke session default: mid-session override dihapus, dan thinking tetap off untuk sessions yang memilikinya disabled |

641| `applyFlagSettings(settings)` | Merge settings ke dalam layer flag settings session saat runtime (hanya tersedia dalam streaming input mode). Lihat [`applyFlagSettings()`](#applyflagsettings) |643| `applyFlagSettings(settings)` | Merge settings ke dalam layer flag settings session saat runtime (hanya tersedia dalam streaming input mode). Lihat [`applyFlagSettings()`](#applyflagsettings) |

642| `updateSettings(source, settings)` | Merge settings ke dalam file local settings project, `.claude/settings.local.json`; mereka berlaku pada request berikutnya. Menerima hanya `source: 'localSettings'` dan set key yang allowlisted, saat ini `outputStyle`, dengan string values; menghapus key tidak didukung. Menolak pada remote transports dan dalam sessions yang [`settingSources`](#options) exclude `local`. Memerlukan TypeScript SDK v0.3.257 atau lebih baru, yang bundle Claude Code v2.1.257 |644| `updateSettings(source, settings)` | Menulis satu key yang allowlisted ke file local settings project atau file user settings Anda, sehingga nilai persists untuk sessions kemudian. Lihat [`updateSettings()`](#updatesettings). Memerlukan TypeScript SDK v0.3.257 atau lebih baru, yang bundle Claude Code v2.1.257 |

643| `initializationResult()` | Mengembalikan full initialization result termasuk supported commands, models, account info, dan output style configuration |645| `initializationResult()` | Mengembalikan full initialization result termasuk supported commands, models, account info, dan output style configuration |

644| `reinitialize()` | Re-sends `initialize` control request ke running CLI dan mengembalikan fresh result alih-alih cached first-connect result. Gunakan setelah transport gap, seperti reattaching ke session setelah disconnect, sehingga pending permission requests mencapai callback `canUseTool` Anda lagi. Buat callback idempotent per request ID, karena request yang response-nya hilang didispatch lagi. Memerlukan Claude Code v2.1.195 atau lebih baru |646| `reinitialize()` | Re-sends `initialize` control request ke running CLI dan mengembalikan fresh result alih-alih cached first-connect result. Gunakan setelah transport gap, seperti reattaching ke session setelah disconnect, sehingga pending permission requests mencapai callback `canUseTool` Anda lagi. Buat callback idempotent per request ID, karena request yang response-nya hilang didispatch lagi. Memerlukan Claude Code v2.1.195 atau lebih baru |

645| `supportedCommands()` | Mengembalikan available commands. Dari Agent SDK v0.3.216 daftar mencerminkan mid-session command changes; lihat [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |647| `supportedCommands()` | Mengembalikan available commands. Dari Agent SDK v0.3.216 daftar mencerminkan mid-session command changes; lihat [`SDKCommandsChangedMessage`](#sdkcommandschangedmessage) |

646| `supportedModels()` | Mengembalikan available models dengan display info |648| `supportedModels()` | Mengembalikan available models dengan display info |

647| `supportedAgents()` | Mengembalikan available subagents sebagai [`AgentInfo`](#agentinfo)`[]` |649| `supportedAgents()` | Mengembalikan available subagents sebagai [`AgentInfo`](#agentinfo)`[]` |

648| `mcpServerStatus()` | Mengembalikan status connected MCP servers |650| `mcpServerStatus()` | Mengembalikan status connected MCP servers sebagai [`McpServerStatus`](#mcpserverstatus)`[]` |

649| `getContextUsage(opts?)` | Mengembalikan [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) yang memecah session's context window usage berdasarkan kategori, skill, dan tool. Dengan default `detail`, ini adalah data yang sama `/context` tampilkan dalam interactive session. Opsi [`detail`](#sdkcontrolgetcontextusageresponse) memerlukan Agent SDK v0.3.257 atau lebih baru |651| `getContextUsage(opts?)` | Mengembalikan [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) yang memecah session's context window usage berdasarkan kategori, skill, dan tool. Dengan default `detail`, ini adalah data yang sama `/context` tampilkan dalam interactive session. Opsi [`detail`](#sdkcontrolgetcontextusageresponse) memerlukan Agent SDK v0.3.257 atau lebih baru |

650| `readFile(path, options?)` | Membaca file dari session's filesystem. Claude Code resolves path terhadap `cwd`; [What `readFile()` can read](#what-readfile-can-read) mencantumkan files yang disajikan. Teruskan `{ maxBytes }` untuk mengubah read cap (default 1 MB, ceiling 10 MB) dan `{ encoding: 'base64' }` untuk binary files seperti images. Resolves dengan [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), atau `null` pada permission denial, missing file, atau transport error. Memerlukan TypeScript SDK v0.2.121 atau lebih baru |652| `readFile(path, options?)` | Membaca file dari session's filesystem. Claude Code resolves path terhadap `cwd`; [What `readFile()` can read](#what-readfile-can-read) mencantumkan files yang disajikan. Teruskan `{ maxBytes }` untuk mengubah read cap (default 1 MB, ceiling 10 MB) dan `{ encoding: 'base64' }` untuk binary files seperti images. Resolves dengan [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse), atau `null` pada permission denial, missing file, atau transport error. Memerlukan TypeScript SDK v0.2.121 atau lebih baru |

651| `reloadSkills()` | Reload skills dari disk, sehingga skills yang Anda tambahkan atau edit mid-session menjadi tersedia untuk running session. Resolves dengan [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) yang mencantumkan skills yang tersedia setelah reload. Memerlukan Agent SDK v0.3.163 atau lebih baru |653| `reloadSkills()` | Reload skills dari disk, sehingga skills yang Anda tambahkan atau edit mid-session menjadi tersedia untuk running session. Resolves dengan [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) yang mencantumkan skills yang tersedia setelah reload. Memerlukan Agent SDK v0.3.163 atau lebih baru |


653| `reconnectMcpServer(serverName)` | Reconnect MCP server berdasarkan nama. Jika nama juga cocok dengan entri dalam settings file seperti `.mcp.json` atau `~/.claude.json`, Claude Code reconnect server yang Anda konfigurasi melalui [`mcpServers`](#options) atau `setMcpServers()`, bukan settings-file entry. Urutan resolusi itu memerlukan Claude Code v2.1.257 atau lebih baru |655| `reconnectMcpServer(serverName)` | Reconnect MCP server berdasarkan nama. Jika nama juga cocok dengan entri dalam settings file seperti `.mcp.json` atau `~/.claude.json`, Claude Code reconnect server yang Anda konfigurasi melalui [`mcpServers`](#options) atau `setMcpServers()`, bukan settings-file entry. Urutan resolusi itu memerlukan Claude Code v2.1.257 atau lebih baru |

654| `toggleMcpServer(serverName, enabled)` | Enable atau disable MCP server berdasarkan nama, dengan name resolution yang sama seperti `reconnectMcpServer()`. Menonaktifkan disconnect server |656| `toggleMcpServer(serverName, enabled)` | Enable atau disable MCP server berdasarkan nama, dengan name resolution yang sama seperti `reconnectMcpServer()`. Menonaktifkan disconnect server |

655| `setMcpServers(servers)` | Secara dinamis ganti set MCP servers untuk session ini. Resolves dengan [`McpSetServersResult`](#mcpsetserversresult) yang menyebutkan servers mana yang ditambahkan dan dihapus, dan errors apa pun |657| `setMcpServers(servers)` | Secara dinamis ganti set MCP servers untuk session ini. Resolves dengan [`McpSetServersResult`](#mcpsetserversresult) yang menyebutkan servers mana yang ditambahkan dan dihapus, dan errors apa pun |

658| `readMcpResource(serverName, uri)` | *Alpha.* Membaca satu MCP Apps `ui://` resource dari connected MCP server sehingga aplikasi Anda dapat merender widget tool. Resolves dengan [`SDKControlMcpReadResourceResponse`](#sdkcontrolmcpreadresourceresponse). Memerlukan TypeScript Agent SDK v0.3.280 atau lebih baru |

656| `streamInput(stream)` | Stream input messages ke query untuk multi-turn conversations |659| `streamInput(stream)` | Stream input messages ke query untuk multi-turn conversations |

657| `stopTask(taskId)` | Stop running background task berdasarkan ID |660| `stopTask(taskId)` | Stop running background task berdasarkan ID |

658| `close()` | Close query dan terminate underlying process. Secara paksa mengakhiri query dan membersihkan semua resources |661| `close()` | Close query dan terminate underlying process. Secara paksa mengakhiri query dan membersihkan semua resources |


673 676 

674Values ditulis ke layer flag-settings, layer yang sama yang opsi inline `settings` dari `query()` isi saat startup. Ini adalah tier yang sama yang [on-page precedence section](#settings-precedence) sebut programmatic options.677Values ditulis ke layer flag-settings, layer yang sama yang opsi inline `settings` dari `query()` isi saat startup. Ini adalah tier yang sama yang [on-page precedence section](#settings-precedence) sebut programmatic options.

675 678 

676Successive calls shallow-merge top-level keys. Second call dengan `{ permissions: {...} }` menggantikan seluruh objek `permissions` dari prior call daripada deep-merging ke dalamnya. Untuk clear key dari flag layer, teruskan `null` untuk key itu. Sebagian besar keys kemudian fallback ke lower-precedence sources. Cleared `model` reset ke [Claude Code's default model](/docs/id/model-config), bahkan ketika settings file menetapkan `model`. Meneruskan `undefined` tidak memiliki efek karena JSON serialization menghapusnya.679Successive calls shallow-merge top-level keys. Second call dengan `{ permissions: {...} }` menggantikan seluruh objek `permissions` dari prior call daripada deep-merging ke dalamnya.

680 

681Untuk clear key yang Anda atur dengan `applyFlagSettings()`, teruskan `null` untuk key itu. Sebagian besar keys kemudian fallback pertama ke nilai yang opsi `settings` dari `query()` atur saat startup, kemudian ke lower-precedence sources. Cleared `model` reset ke [Claude Code's default model](/docs/id/model-config), bahkan ketika settings file menetapkan `model`. Meneruskan `undefined` tidak memiliki efek karena JSON serialization menghapusnya.

682 

683Tiga keys selain `model` reset session state alih-alih fallback:

684 

685* `effortLevel: null` mengembalikan session ke model's default effort level, bukan ke opsi `effort` dari `query()` atau `effortLevel` dari settings file.

686* `agent: null` menjalankan main thread tanpa agent, dimulai dengan next turn, daripada restore opsi `agent` dari `query()` atau `agent` dari settings file. Jika cleared agent telah menerapkan model sendiri, session kembali ke model yang diselesaikan saat startup.

687* `ultracode: null` mematikan ultracode, seperti `false` lakukan, daripada restore nilai `ultracode` dari settings file. Session menjaga current effort level-nya, jadi teruskan `effortLevel` dalam call yang sama untuk mengubahnya.

677 688 

678Hanya tersedia dalam streaming input mode, constraint yang sama seperti `setModel()` dan `setPermissionMode()`.689Hanya tersedia dalam streaming input mode, constraint yang sama seperti `setModel()` dan `setPermissionMode()`.

679 690 


695 `applyFlagSettings()` adalah TypeScript-only. Python SDK tidak expose method yang setara.706 `applyFlagSettings()` adalah TypeScript-only. Python SDK tidak expose method yang setara.

696</Note>707</Note>

697 708 

709<h4 id="updatesettings">

710 `updateSettings()`

711</h4>

712 

713Menulis satu key yang allowlisted ke settings file pada disk, sehingga nilai persists untuk sessions kemudian yang memuat source itu. Setiap source menerima satu key, dengan string value:

714 

715* **`"localSettings"`**: menerima `outputStyle` dan merge ke dalam project's local settings file, `.claude/settings.local.json`. Style baru berlaku pada session's next request.

716* **`"userSettings"`**: menerima `effortLevel` dan menyimpannya sebagai default [effort level](/docs/id/model-config#adjust-effort-level) untuk session's current model, di bawah [`modelSettings`](/docs/id/settings-reference#modelsettings) dalam user settings file Anda. Meneruskan `max` menulis nothing, karena `max` adalah session-only. Running session menjaga current effort level-nya baik cara, jadi panggil [`applyFlagSettings()`](#applyflagsettings) ketika Anda juga ingin mengubah itu. Source ini memerlukan TypeScript SDK v0.3.277 atau lebih baru, yang bundle Claude Code v2.1.277.

717 

718Call menolak ketika request membawa key lain, ketika session berjalan atas remote transport, dan ketika session's [`settingSources`](#options) exclude source yang Anda beri nama. Menghapus key tidak didukung.

719 

698<h3 id="warmquery">720<h3 id="warmquery">

699 `WarmQuery`721 `WarmQuery`

700</h3>722</h3>


942 964 

943`skills` mencantumkan skills yang tersedia setelah reload, dalam [`SlashCommand`](#slashcommand) shape yang sama yang `supportedCommands()` kembalikan.965`skills` mencantumkan skills yang tersedia setelah reload, dalam [`SlashCommand`](#slashcommand) shape yang sama yang `supportedCommands()` kembalikan.

944 966 

967<h3 id="sdkcontrolmcpreadresourceresponse">

968 `SDKControlMcpReadResourceResponse`

969</h3>

970 

971Return type dari [`readMcpResource()`](#query-object), membawa MCP server's `resources/read` result. Memerlukan TypeScript Agent SDK v0.3.280 atau lebih baru.

972 

973```typescript theme={null}

974type SDKControlMcpReadResourceResponse = {

975 contents: {

976 uri: string;

977 mimeType?: string;

978 text?: string;

979 blob?: string;

980 _meta?: Record<string, unknown>;

981 }[];

982};

983```

984 

985Teruskan `readMcpResource()` server name seperti `mcpServerStatus()` laporkan dan `ui://` URI, seperti `ui.resourceUri` yang tool deklarasikan dalam [`_meta`](#mcpserverstatus)-nya. Call menolak untuk URI scheme apa pun yang lain, untuk [SDK MCP server](#createsdkmcpserver) yang aplikasi Anda host sendiri, dan untuk server yang tidak connected. Tersedia ketika init message's [`capabilities`](#sdksystemmessage) include `mcp_read_resource_v1`.

986 

987Setiap `contents` entry adalah satu content item seperti server kirimkan. `blob` memegang base64 data untuk binary item, dan `_meta` adalah item's sendiri `_meta`, di mana MCP Apps server menempatkan resource's `ui.csp` dan `ui.permissions`. Contents adalah untrusted third-party HTML, jadi render dalam sandbox.

988 

945<h3 id="agentdefinition">989<h3 id="agentdefinition">

946 `AgentDefinition`990 `AgentDefinition`

947</h3>991</h3>


1368 uuid?: UUID;1412 uuid?: UUID;

1369 session_id?: string;1413 session_id?: string;

1370 message: MessageParam; // Dari Anthropic SDK1414 message: MessageParam; // Dari Anthropic SDK

1415 pasted_content?: MessageParam["content"][];

1371 parent_tool_use_id: string | null;1416 parent_tool_use_id: string | null;

1372 isSynthetic?: boolean;1417 isSynthetic?: boolean;

1373 shouldQuery?: boolean;1418 shouldQuery?: boolean;

1374 tool_use_result?: unknown;1419 tool_use_result?: unknown;

1375 origin?: SDKMessageOrigin;1420 origin?: SDKMessageOrigin;

1421 inline_pastes?: string[];

1376};1422};

1377```1423```

1378 1424 

1425Atur `pasted_content` untuk mengirim konten yang pengguna tempel ke UI prompt Anda daripada ketik, satu entri per tempel, masing-masing string atau array blok konten. Claude Code menambahkan teks setiap entri setelah teks yang diketik, secara berurutan, dan dapat membungkus setiap tempel dalam tag `<pasted_content>`. Blok selain teks diabaikan, jadi kirim gambar dan dokumen dalam `message.content`. Memerlukan Agent SDK v0.3.277 atau lebih baru.

1426 

1379Atur `shouldQuery` ke `false` untuk menambahkan pesan ke transkrip tanpa memicu giliran asisten. Pesan ditahan dan digabungkan ke pesan pengguna berikutnya yang memicu giliran. Gunakan ini untuk menyuntikkan konteks, seperti output pesan yang Anda jalankan di luar pita, tanpa menghabiskan panggilan model.1427Atur `shouldQuery` ke `false` untuk menambahkan pesan ke transkrip tanpa memicu giliran asisten. Pesan ditahan dan digabungkan ke pesan pengguna berikutnya yang memicu giliran. Gunakan ini untuk menyuntikkan konteks, seperti output pesan yang Anda jalankan di luar pita, tanpa menghabiskan panggilan model.

1380 1428 

1381Pada pesan yang membawa blok `tool_result`, `tool_use_result` adalah objek output terstruktur alat daripada teks yang dikirim ke model. Bentuknya tergantung pada alat yang dinamai oleh blok `tool_use` yang cocok, jadi bidang diketik `unknown`; bentuk bawaan tercantum di bawah [Jenis Output Alat](#tool-output-types).1429Pada pesan yang membawa blok `tool_result`, `tool_use_result` adalah objek output terstruktur alat daripada teks yang dikirim ke model. Bentuknya tergantung pada alat yang dinamai oleh blok `tool_use` yang cocok, jadi bidang diketik `unknown`; bentuk bawaan tercantum di bawah [Jenis Output Alat](#tool-output-types).


1384 1432 

1385Untuk alat MCP yang hasilnya berisi blok `resource_link`, `tool_use_result` adalah objek dengan array `resourceLinks` dari entri [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude menerima setiap tautan sebagai baris teks dalam blok `tool_result`, jadi baca `resourceLinks` untuk merender file yang dikembalikan server daripada mengurai teks itu. Claude Code menghilangkan `resourceLinks` ketika hasil tidak memiliki tautan dan pada hasil dari subagen, menyimpan paling banyak 50 tautan per hasil, dan berhenti menambahkan tautan setelah array mencapai 64 KiB JSON terserialkan. `resourceLinks` memerlukan Agent SDK v0.3.257 atau lebih baru.1433Untuk alat MCP yang hasilnya berisi blok `resource_link`, `tool_use_result` adalah objek dengan array `resourceLinks` dari entri [`SDKMcpResourceLink`](#sdkmcpresourcelink). Claude menerima setiap tautan sebagai baris teks dalam blok `tool_result`, jadi baca `resourceLinks` untuk merender file yang dikembalikan server daripada mengurai teks itu. Claude Code menghilangkan `resourceLinks` ketika hasil tidak memiliki tautan dan pada hasil dari subagen, menyimpan paling banyak 50 tautan per hasil, dan berhenti menambahkan tautan setelah array mencapai 64 KiB JSON terserialkan. `resourceLinks` memerlukan Agent SDK v0.3.257 atau lebih baru.

1386 1434 

1435Atur `inline_pastes` untuk memberi tahu Claude Code bagian mana dari `message.content` yang pengguna tempel daripada ketik, satu string per tempel. Teks prompt tetap di tempat pengguna meletakkannya. Claude Code dapat membungkus setiap tempel yang tercantum dalam tag `<pasted_content>` di mana ia berdiri, jadi Claude dapat membedakan materi yang ditempel dari kata-kata pengguna sendiri. Hanya tempel dalam blok teks terakhir prompt yang dibungkus. Memerlukan TypeScript Agent SDK v0.3.280 atau lebih baru.

1436 

1387<h3 id="sdkusermessagereplay">1437<h3 id="sdkusermessagereplay">

1388 `SDKUserMessageReplay`1438 `SDKUserMessageReplay`

1389</h3>1439</h3>


1488* `first_content_frame_ms`: waktu dalam milidetik hingga acara aliran `content_block_start` atau `content_block_delta` pertama, menghitung blok pemikiran sebagai konten. Hadir pada lengan kesuksesan hanya, ketika `is_error` adalah false. Memerlukan Agent SDK v0.3.260 atau lebih baru.1538* `first_content_frame_ms`: waktu dalam milidetik hingga acara aliran `content_block_start` atau `content_block_delta` pertama, menghitung blok pemikiran sebagai konten. Hadir pada lengan kesuksesan hanya, ketika `is_error` adalah false. Memerlukan Agent SDK v0.3.260 atau lebih baru.

1489* `first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: waktu untuk mengunggah acara aliran pertama giliran. Claude Code merekamnya hanya dalam sesi yang dialirkan ke claude.ai, seperti [sesi cloud](/docs/id/claude-code-on-the-web), dan hasil yang `query()` hasilkan tidak membawanya. Memerlukan Agent SDK v0.3.260 atau lebih baru.1539* `first_stream_post_ms`, `first_stream_post_ack_ms`, `first_stream_post_wall_ms`: waktu untuk mengunggah acara aliran pertama giliran. Claude Code merekamnya hanya dalam sesi yang dialirkan ke claude.ai, seperti [sesi cloud](/docs/id/claude-code-on-the-web), dan hasil yang `query()` hasilkan tidak membawanya. Memerlukan Agent SDK v0.3.260 atau lebih baru.

1490* `usage`: loop agen utama saja. Mengecualikan panggilan subagen dan model tambahan, dan per-giliran dalam sesi input streaming. Lebih suka `modelUsage` untuk akuntansi token/biaya.1540* `usage`: loop agen utama saja. Mengecualikan panggilan subagen dan model tambahan, dan per-giliran dalam sesi input streaming. Lebih suka `modelUsage` untuk akuntansi token/biaya.

1491* `modelUsage`: total per-model untuk setiap panggilan model yang dibuat melalui pipeline kueri selama panggilan `query()` ini, termasuk loop utama, subagen, dan panggilan internal seperti pemadatan dan agen Workflow. Panggilan pembantu di luar pipeline itu, seperti pengklasifikasi izin dan permintaan penghitungan token, dikecualikan. Dalam sesi input streaming total bersifat kumulatif di seluruh giliran, jadi baca hasil terbaru daripada menjumlahkan di seluruh hasil. Lihat [Lacak biaya dalam mode input streaming](/docs/id/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) untuk pengaturan ulang dan [Pulihkan total setelah kerusakan sesi](/docs/id/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) untuk hasil yang dinolkan.1541* `modelUsage`: total per-model untuk setiap panggilan model yang dibuat melalui pipeline kueri selama panggilan `query()` ini, termasuk loop utama, subagen, dan panggilan internal seperti pemadatan dan agen Workflow. Panggilan pembantu di luar pipeline itu, seperti pengklasifikasi izin dan permintaan penghitungan token, dikecualikan. Panggilan yang melanjutkan sesi juga menghitung [total per-model yang dipulihkan dari panggilan sebelumnya sesi](/docs/id/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Dalam sesi input streaming total bersifat kumulatif di seluruh giliran, jadi baca hasil terbaru daripada menjumlahkan di seluruh hasil. Lihat [Lacak biaya dalam mode input streaming](/docs/id/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode) untuk pengaturan ulang dan [Pulihkan total setelah kerusakan sesi](/docs/id/agent-sdk/cost-tracking#recover-totals-after-a-session-crash) untuk hasil yang dinolkan.

1492* `total_cost_usd`: biaya perkiraan kumulatif dalam USD untuk panggilan `query()` ini, mencakup panggilan yang sama dengan `modelUsage` dan pengaturan ulang pada titik yang sama. Ini adalah perkiraan, bukan pernyataan penagihan. Lihat [Lacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking) untuk peringatan akurasi.1542* `total_cost_usd`: biaya perkiraan kumulatif dalam USD, mencakup panggilan yang sama dengan `modelUsage` dan pengaturan ulang pada titik yang sama. Panggilan yang melanjutkan sesi juga menghitung [total yang dipulihkan dari panggilan sebelumnya sesi](/docs/id/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Ini adalah perkiraan, bukan pernyataan penagihan. Lihat [Lacak biaya dan penggunaan](/docs/id/agent-sdk/cost-tracking) untuk peringatan akurasi.

1493* `queued_turn_count`: jumlah pesan yang Anda kirim dengan `origin: { kind: "human" }` yang masih menunggu ketika Claude Code menghasilkan hasil. Lihat [`queued_turn_count`](#queued_turn_count) untuk apa yang `0` dan bidang yang tidak ada katakan.1543* `queued_turn_count`: jumlah pesan yang Anda kirim dengan `origin: { kind: "human" }` yang masih menunggu ketika Claude Code menghasilkan hasil. Lihat [`queued_turn_count`](#queued_turn_count) untuk apa yang `0` dan bidang yang tidak ada katakan.

1494*1544*

1495 1545 


1516 1566 

1517Pasangan bidang yang sama muncul pada [`SDKSystemMessage`](#sdksystemmessage) dan pada [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse), jadi Anda dapat membaca status fast mode sebelum giliran pertama.1567Pasangan bidang yang sama muncul pada [`SDKSystemMessage`](#sdksystemmessage) dan pada [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse), jadi Anda dapat membaca status fast mode sebelum giliran pertama.

1518 1568 

1519Bidang `origin` meneruskan [`SDKMessageOrigin`](#sdkmessageorigin) dari pesan pengguna yang memicu hasil ini. Ketika SDK menyuntikkan giliran tindak lanjut sintetis, seperti untuk tugas yang selesai, `SDKResultMessage` yang dihasilkan membawa `origin: { kind: "task-notification" }`. Rutinitas yang pemicunya dipecat dan pesan yang diverifikasi server dari sesi lain Anda tiba dengan jenis ini juga, masing-masing dengan `subkind` yang dijelaskan dalam [Subkind notifikasi tugas](#task-notification-subkinds). Periksa `kind` untuk membedakan hasil yang menjawab prompt Anda dari tindak lanjut yang disuntikkan sebelum merutekan atau menekan mereka.1569Bidang `origin` meneruskan [`SDKMessageOrigin`](#sdkmessageorigin) dari pesan pengguna yang memicu hasil ini. Ketika SDK menyuntikkan giliran tindak lanjut sintetis, seperti untuk tugas yang selesai, `SDKResultMessage` yang dihasilkan membawa `origin: { kind: "task-notification" }`. Rutinitas yang pemicunya dipecat dan pesan yang diverifikasi server dari sesi lain Anda tiba dengan jenis ini juga, masing-masing dengan `subkind` yang dijelaskan dalam [Subkind notifikasi tugas](#task-notification-subkinds). Periksa `kind` untuk membedakan hasil yang menjawab prompt Anda dari tindak lanjut yang disuntikkan sebelum merutekan atau menekan mereka. Jika aplikasi Anda [mendeklarasikan jalankan terjadwal](#declare-a-scheduled-run), hasil mereka membawa `kind: "task-notification"` juga, jadi jangan tekan pada `kind` saja.

1570 

1571Ketika beberapa penyelesaian tugas latar belakang antri bersama-sama, Claude Code dapat menjawabnya dalam satu giliran daripada satu giliran masing-masing. Setiap penyelesaian masih menghasilkan hasilnya sendiri dengan asal ini. Semua kecuali yang terakhir dari penyelesaian yang Claude Code jawab bersama menghasilkan hasil kosong dengan `num_turns: 0`, secara berurutan, dan hasil yang terakhir membawa giliran yang menjawab mereka semua.

1520 1572 

1521Bidang tidak ada untuk hasil yang dipancarkan sebelum giliran pengguna apa pun, seperti kesalahan startup.1573Bidang tidak ada untuk hasil yang dipancarkan sebelum giliran pengguna apa pun, seperti kesalahan startup.

1522 1574 


1942 | {1994 | {

1943 kind: "task-notification";1995 kind: "task-notification";

1944 subkind?: "scheduled-trigger" | "peer-send-message";1996 subkind?: "scheduled-trigger" | "peer-send-message";

1997 fireReason?: string;

1945 }1998 }

1946 | { kind: "coordinator" }1999 | { kind: "coordinator" }

1947 | { kind: "auto-continuation" }2000 | { kind: "auto-continuation" }


1953| `human` | Input langsung dari pengguna akhir. Jika aplikasi Anda meneruskan apa yang diketik pengguna sebagai pesan pengguna, atur `origin` ke `{ kind: "human" }` secara eksplisit: Claude Code memperlakukan pesan pengguna tanpa `origin` sebagai tidak teratribusi, dan memeriksa yang memerlukan prompt yang diketik manusia, seperti [kata kunci workflow `ultracode`](/docs/id/workflows#ask-for-a-workflow-in-your-prompt), tidak menerimanya. Sebelum v2.1.210, Claude Code memperlakukan `origin` yang tidak ada pada pesan pengguna sebagai input manusia. |2006| `human` | Input langsung dari pengguna akhir. Jika aplikasi Anda meneruskan apa yang diketik pengguna sebagai pesan pengguna, atur `origin` ke `{ kind: "human" }` secara eksplisit: Claude Code memperlakukan pesan pengguna tanpa `origin` sebagai tidak teratribusi, dan memeriksa yang memerlukan prompt yang diketik manusia, seperti [kata kunci workflow `ultracode`](/docs/id/workflows#ask-for-a-workflow-in-your-prompt), tidak menerimanya. Sebelum v2.1.210, Claude Code memperlakukan `origin` yang tidak ada pada pesan pengguna sebagai input manusia. |

1954| `channel` | Pesan tiba di [channel](/docs/id/channels). `server` adalah nama server MCP sumber. |2007| `channel` | Pesan tiba di [channel](/docs/id/channels). `server` adalah nama server MCP sumber. |

1955| `peer` | Pesan dari agen lain: [rekan kerja](/docs/id/agent-teams) dalam proses atau [rekan lintas sesi](/docs/id/cross-session-messaging), sesi Claude Code lain Anda. Lihat [Bidang asal peer](#peer-origin-fields) untuk semantik per-bidang dan model kepercayaan. |2008| `peer` | Pesan dari agen lain: [rekan kerja](/docs/id/agent-teams) dalam proses atau [rekan lintas sesi](/docs/id/cross-session-messaging), sesi Claude Code lain Anda. Lihat [Bidang asal peer](#peer-origin-fields) untuk semantik per-bidang dan model kepercayaan. |

1956| `task-notification` | Giliran sintetis yang disuntikkan untuk pengiriman yang tiba tanpa prompt pengguna segar, seperti tugas yang selesai; lihat [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) untuk lengan itu. `subkind` opsional menandai apa yang menaikkan notifikasi. Lihat [Subkind notifikasi tugas](#task-notification-subkinds). |2009| `task-notification` | Giliran sintetis yang disuntikkan untuk pengiriman yang tiba tanpa prompt pengguna segar, seperti tugas yang selesai; lihat [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) untuk lengan itu. Prompt yang aplikasi Anda [deklarasikan sebagai jalankan terjadwal](#declare-a-scheduled-run) membawa jenis ini juga. `subkind` opsional menandai apa yang menaikkan notifikasi. Lihat [Subkind notifikasi tugas](#task-notification-subkinds). |

1957| `coordinator` | Pesan dari koordinator tim dalam [tim agen](/docs/id/agent-teams). |2010| `coordinator` | Pesan dari koordinator tim dalam [tim agen](/docs/id/agent-teams). |

1958| `auto-continuation` | Giliran sintetis yang disuntikkan ketika sesi berlanjut tanpa input pengguna segar, seperti hasil perintah yang memicu prompt tindak lanjut. |2011| `auto-continuation` | Giliran sintetis yang disuntikkan ketika sesi berlanjut tanpa input pengguna segar, seperti hasil perintah yang memicu prompt tindak lanjut. |

1959| `unclassified` | Giliran yang disuntikkan yang asal usulnya tidak dapat ditentukan. Memerlukan Claude Code v2.1.223 atau lebih baru. Ketika Claude Code menerima [`SDKUserMessage`](#sdkusermessage) dengan `isSynthetic: true` dan tidak dapat mengklasifikasikannya sebagai `kind` lain, ia menetapkan jenis ini saat pesan tiba dan membingkai giliran ke model sebagai sumber non-pengguna daripada memperlakukannya sebagai input manusia. Aplikasi Anda tidak boleh menetapkan nilai ini. |2012| `unclassified` | Giliran yang disuntikkan yang asal usulnya tidak dapat ditentukan. Memerlukan Claude Code v2.1.223 atau lebih baru. Ketika Claude Code menerima [`SDKUserMessage`](#sdkusermessage) dengan `isSynthetic: true` dan tidak dapat mengklasifikasikannya sebagai `kind` lain, ia menetapkan jenis ini saat pesan tiba dan membingkai giliran ke model sebagai sumber non-pengguna daripada memperlakukannya sebagai input manusia. Aplikasi Anda tidak boleh menetapkan nilai ini. |


1962 Subkind notifikasi tugas2015 Subkind notifikasi tugas

1963</h3>2016</h3>

1964 2017 

1965Ketika Claude Code mengirimkan notifikasi tugas ke sesi, ia menetapkan `subkind` pada `origin` notifikasi hanya jika server Anthropic memverifikasi dari mana notifikasi itu berasal. `subkind` memerlukan Claude Code v2.1.213 atau lebih baru, dan mengambil salah satu dari dua nilai:2018Ketika Claude Code mengirimkan notifikasi tugas ke sesi, ia menetapkan `subkind` pada `origin` notifikasi jika server Anthropic memverifikasi dari mana notifikasi itu berasal. Ia juga menetapkan `subkind` ketika aplikasi Anda [mendeklarasikan pesan sebagai jalankan terjadwal](#declare-a-scheduled-run) sendiri, yang memerlukan TypeScript Agent SDK v0.3.280 atau lebih baru. `subkind` memerlukan Claude Code v2.1.213 atau lebih baru, dan mengambil salah satu dari dua nilai:

1966 2019 

1967* `scheduled-trigger`: notifikasi adalah prompt tersimpan [rutinitas](/docs/id/routines), disampaikan karena salah satu pemicu rutinitas dipecat: jadwalnya, [pemicu API](/docs/id/routines#add-an-api-trigger), [pemicu GitHub](/docs/id/routines#add-a-github-trigger), atau **Jalankan sekarang**. Claude Code membingkai ini ke model sebagai tugas yang ditugaskan sesi, dengan pemberitahuan berbeda dari [pemberitahuan yang dibawa notifikasi tugas lain](#sdktasknotificationmessage).2020* `scheduled-trigger`: notifikasi adalah prompt tersimpan [rutinitas](/docs/id/routines), disampaikan karena salah satu pemicu rutinitas dipecat: jadwalnya, [pemicu API](/docs/id/routines#add-an-api-trigger), [pemicu GitHub](/docs/id/routines#add-a-github-trigger), atau **Jalankan sekarang**. Prompt yang aplikasi Anda [deklarasikan sebagai jalankan terjadwal](#declare-a-scheduled-run) membawa nilai ini juga. Claude Code membingkai ini ke model sebagai tugas yang ditugaskan sesi, dengan pemberitahuan berbeda dari [pemberitahuan yang dibawa notifikasi tugas lain](#sdktasknotificationmessage).

1968*2021*

1969 2022 

1970`peer-send-message`: notifikasi adalah pesan yang sesi lain Anda kirim dengan alat `send_message` sisi server yang [Claude Code di web](/docs/id/claude-code-on-the-web) gunakan sesi untuk saling berkirim pesan, bukan [alat `SendMessage` lintas sesi](/docs/id/cross-session-messaging), dan server Anthropic memverifikasi bahwa kedua sesi termasuk dalam grup pribadi sesi yang sama. Memerlukan Claude Code v2.1.224 atau lebih baru. Pengiriman `send_message` yang tidak diverifikasi server dengan cara itu tidak mendapat subkind.2023`peer-send-message`: notifikasi adalah pesan yang sesi lain Anda kirim dengan alat `send_message` sisi server yang [Claude Code di web](/docs/id/claude-code-on-the-web) gunakan sesi untuk saling berkirim pesan, bukan [alat `SendMessage` lintas sesi](/docs/id/cross-session-messaging), dan server Anthropic memverifikasi bahwa kedua sesi termasuk dalam grup pribadi sesi yang sama. Memerlukan Claude Code v2.1.224 atau lebih baru. Pengiriman `send_message` yang tidak diverifikasi server dengan cara itu tidak mendapat subkind.

1971 2024 

1972Setiap notifikasi tugas lain tidak memiliki `subkind`. Itu termasuk [tugas terjadwal](/docs/id/scheduled-tasks) yang dipecat di mesin Anda sendiri, [aktivitas PR](/docs/id/claude-code-on-the-web#how-claude-responds-to-pr-activity) yang disampaikan ke sesi, dan acara latar belakang seperti tugas yang selesai. Pesan dari [alat `SendMessage` lintas sesi](/docs/id/cross-session-messaging) sama sekali bukan notifikasi tugas: apakah mereka berasal dari sesi di mesin yang sama atau melalui server Anthropic dari mesin lain, Claude Code memberi mereka `kind: "peer"` dan [bidang asal peer](#peer-origin-fields).2025Setiap notifikasi tugas lain tidak memiliki `subkind`. Itu termasuk [aktivitas PR](/docs/id/claude-code-on-the-web#how-claude-responds-to-pr-activity) yang disampaikan ke sesi dan acara latar belakang seperti tugas yang selesai. Pesan dari [alat `SendMessage` lintas sesi](/docs/id/cross-session-messaging) sama sekali bukan notifikasi tugas: apakah mereka berasal dari sesi di mesin yang sama atau melalui server Anthropic dari mesin lain, Claude Code memberi mereka `kind: "peer"` dan [bidang asal peer](#peer-origin-fields).

2026 

2027`fireReason` mengatakan mengapa notifikasi `scheduled-trigger` dipecat, sebagai token huruf kecil pendek seperti `scheduled`, `manual`, `retry`, `catch_up`, atau `api`. Server Anthropic menetapkannya pada pengiriman [rutinitas](/docs/id/routines), dan aplikasi Anda menetapkannya ketika mendeklarasikan jalankan terjadwal. Itu tidak ada ketika tidak ada yang mengirimnya. Memerlukan TypeScript Agent SDK v0.3.280 atau lebih baru.

2028 

2029<h4 id="declare-a-scheduled-run">

2030 Deklarasikan jalankan terjadwal

2031</h4>

2032 

2033Jika aplikasi Anda menjalankan prompt sesuai jadwal sendiri, deklarasikan setiap jalankan sehingga Claude Code membingkai giliran ke model sebagai tugas terjadwal daripada sebagai input langsung dari pengguna. Mulai sesi dengan `CLAUDE_CODE_HOST_SCHEDULED_RUN` diatur ke `1` dalam [`env`](#options), kemudian kirim [`SDKUserMessage`](#sdkusermessage) jalankan dengan `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` dan tanpa `isSynthetic`. Claude Code mengabaikan deklarasi dalam proses yang dimulai tanpa variabel itu. Ia juga mengabaikannya dalam proses yang lingkungannya membawa [`CLAUDECODE`](/docs/id/env-vars) atau `CLAUDE_CODE_CHILD_SESSION`. Claude Code menyimpan `fireReason` hanya ketika nilainya adalah 1 hingga 32 huruf kecil atau garis bawah. Memerlukan TypeScript Agent SDK v0.3.280 atau lebih baru.

1973 2034 

1974<h3 id="peer-origin-fields">2035<h3 id="peer-origin-fields">

1975 Bidang asal peer2036 Bidang asal peer


2863 | ReadMcpResourceInput2924 | ReadMcpResourceInput

2864 | RefreshMcpToolsInput2925 | RefreshMcpToolsInput

2865 | RemoteTriggerInput2926 | RemoteTriggerInput

2866 | REPLInput

2867 | ReportFindingsInput2927 | ReportFindingsInput

2868 | ScheduleWakeupInput2928 | ScheduleWakeupInput

2869 | ShowOnboardingRolePickerInput2929 | ShowOnboardingRolePickerInput

2870 | TaskCreateInput2930 | TaskCreateInput

2871 | TaskGetInput2931 | TaskGetInput

2872 | TaskListInput2932 | TaskListInput

2873 | TaskOutputInput

2874 | TaskStopInput2933 | TaskStopInput

2875 | TaskUpdateInput2934 | TaskUpdateInput

2876 | TodoWriteInput2935 | TodoWriteInput


2965 3024 

2966Menjalankan sumber latar belakang dan mengirimkan setiap peristiwa ke Claude sehingga dapat bereaksi tanpa polling: `command` menjalankan skrip dan memancarkan satu peristiwa per baris stdout, dan `ws` membuka WebSocket dan memancarkan satu peristiwa per frame teks. Berikan tepat satu dari `command` atau `ws`. Sumber `ws` memerlukan Claude Code v2.1.195 atau lebih baru.3025Menjalankan sumber latar belakang dan mengirimkan setiap peristiwa ke Claude sehingga dapat bereaksi tanpa polling: `command` menjalankan skrip dan memancarkan satu peristiwa per baris stdout, dan `ws` membuka WebSocket dan memancarkan satu peristiwa per frame teks. Berikan tepat satu dari `command` atau `ws`. Sumber `ws` memerlukan Claude Code v2.1.195 atau lebih baru.

2967 3026 

2968`timeout_ms` adalah batas waktu pengawasan dalam milidetik. Ini default ke 300000, dan batas waktu efektif paling banyak 1800000, yaitu 30 menit. Pada batas waktu pengawasan berakhir dan Claude menerima satu pemberitahuan sehingga dapat memulai pengawasan baru jika masih membutuhkannya.3027`timeout_ms` adalah batas waktu pengawasan dalam milidetik. Ini default ke 300000 dan menerima nilai hingga 3600000. Batas waktu efektif paling banyak 1800000, yaitu 30 menit, jadi nilai yang diterima lebih besar diperpendek ke itu. Pada batas waktu pengawasan berakhir dan Claude menerima satu pemberitahuan sehingga dapat memulai pengawasan baru jika masih membutuhkannya.

2969 3028 

2970Jenis yang diekspor menandai `timeout_ms` sebagai wajib karena skema mengisi default; panggilan yang menghilangkannya memvalidasi.3029Jenis yang diekspor menandai `timeout_ms` sebagai wajib karena skema mengisi default; panggilan yang menghilangkannya memvalidasi.

2971 3030 


2975 TaskOutput3034 TaskOutput

2976</h3>3035</h3>

2977 3036 

2978**Nama tool:** `TaskOutput`3037Dihapus di Claude Code v2.1.277, bersama dengan jenis `TaskOutputInput` nya. Sebelumnya mengambil output dari tugas latar belakang yang sedang berjalan atau selesai; Claude membaca file output tugas latar belakang dengan `Read` sebagai gantinya.

2979 

2980<Note>`TaskOutput` sudah usang; lebih suka `Read` pada jalur file output tugas. Skema di bawah tetap valid untuk hook dan penanganan izin yang menemukan tool.</Note>

2981 

2982```typescript theme={null}

2983type TaskOutputInput = {

2984 task_id: string;

2985 block: boolean;

2986 timeout: number;

2987};

2988```

2989 3038 

2990Mengambil output dari tugas latar belakang yang sedang berjalan atau selesai.3039Entri `disallowedTools` atau aturan deny yang masih menamai `TaskOutput` diabaikan tanpa peringatan.

2991 3040 

2992<h3 id="edit">3041<h3 id="edit">

2993 Edit3042 Edit


3482 REPL3531 REPL

3483</h3>3532</h3>

3484 3533 

3485**Nama tool:** `REPL`3534Dihapus di v2.1.275. Melalui v2.1.274, tool `REPL` eksperimental dapat dihidupkan dengan `CLAUDE_CODE_REPL=1` dalam [opsi `env`](#options).

3486 

3487```typescript theme={null}

3488type REPLInput = {

3489 code: string;

3490 description?: string;

3491 timeout?: number;

3492};

3493```

3494 

3495Mengeksekusi kode JavaScript dalam REPL yang persisten. Status bertahan di seluruh panggilan dan await tingkat atas didukung. `timeout` dalam milidetik, dengan default 30000 dan maksimum 600000.

3496 

3497Jenis diekspor, tetapi tool dimatikan dalam sesi SDK kecuali Anda mengatur `CLAUDE_CODE_REPL=1` dalam [opsi `env`](#options), dan hanya dalam sesi dengan setidaknya satu server MCP. Ini juga memerlukan executable `claude` berbasis Bun yang disediakan installer asli.

3498 3535 

3499<h3 id="reportfindings">3536<h3 id="reportfindings">

3500 ReportFindings3537 ReportFindings


3540 action?: "publish" | "list";3577 action?: "publish" | "list";

3541 file_path?: string;3578 file_path?: string;

3542 favicon?: string;3579 favicon?: string;

3580 icon?: string;

3543 limit?: number;3581 limit?: number;

3544 scope?: "mine" | "shared" | "all";3582 scope?: "mine" | "shared" | "all";

3545 title?: string;3583 title?: string;


3552};3590};

3553```3591```

3554 3592 

3555Menerbitkan file `.html` atau `.md` lokal sebagai halaman artefak yang dihosting, atau mencantumkan artefak yang diterbitkan pengguna. Hilangkan `action` atau lewatkan `"publish"` untuk menerbitkan `file_path`, yang diperlukan untuk tindakan publikasi bersama dengan `favicon`, satu atau dua emoji yang menandai artefak di galeri pengguna. `title` menamai halaman yang diterbitkan di tab browser dan galeri ketika file HTML tidak memiliki tag `<title>`. `url` menargetkan artefak yang ada untuk diperbarui di tempat alih-alih mencetak yang baru.3593Menerbitkan file `.html` atau `.md` lokal sebagai halaman artefak yang dihosting, atau mencantumkan artefak yang diterbitkan pengguna. Hilangkan `action` atau lewatkan `"publish"` untuk menerbitkan `file_path`, yang diperlukan untuk tindakan publikasi. Setiap bidang di bawah berlaku untuk publikasi:

3594 

3595* `icon`: satu kata generik pendek untuk ikon tab browser artefak, seperti `chart` atau `map`. Claude menyertakannya pada publikasi pertama dan menghilangkannya pada pembaruan, yang menjaga ikon artefak yang disimpan.

3596* `favicon`: sudah usang, dan Claude menghilangkannya.

3597* `title`: menamai halaman yang diterbitkan di tab browser dan galeri ketika file HTML tidak memiliki tag `<title>`.

3598* `url`: menargetkan artefak yang ada untuk diperbarui di tempat alih-alih membuat yang baru.

3556 3599 

3557`force` adalah penimpa upaya terakhir yang membuang versi yang lebih baru sesi lain diterbitkan. Pada konflik, publikasi yang gagal mengembalikan konten yang lebih baru; Claude menggabungkan perubahannya ke konten itu, atau membaca ulang artefak, dan menerbitkan lagi. Lewatkan `force` hanya ketika pengguna secara eksplisit meminta untuk membuang versi itu.3600`force` adalah penimpa upaya terakhir yang membuang versi yang lebih baru sesi lain diterbitkan. Pada konflik, publikasi yang gagal mengembalikan konten yang lebih baru; Claude menggabungkan perubahannya ke konten itu, atau membaca ulang artefak, dan menerbitkan lagi. Lewatkan `force` hanya ketika pengguna secara eksplisit meminta untuk membuang versi itu.

3558 3601 


3689 | ReadMcpResourceOutput3732 | ReadMcpResourceOutput

3690 | RefreshMcpToolsOutput3733 | RefreshMcpToolsOutput

3691 | RemoteTriggerOutput3734 | RemoteTriggerOutput

3692 | REPLOutput

3693 | ReportFindingsOutput3735 | ReportFindingsOutput

3694 | ScheduleWakeupOutput3736 | ScheduleWakeupOutput

3695 | ShowOnboardingRolePickerOutput3737 | ShowOnboardingRolePickerOutput


4539 4581 

4540Mengembalikan detail pengiriman, termasuk apakah notifikasi push atau lokal dikirim dan mengapa pengiriman dilewati.4582Mengembalikan detail pengiriman, termasuk apakah notifikasi push atau lokal dikirim dan mengapa pengiriman dilewati.

4541 4583 

4542<h3 id="repl-2">

4543 REPL

4544</h3>

4545 

4546**Nama tool:** `REPL`

4547 

4548```typescript theme={null}

4549type REPLOutput = {

4550 code: string;

4551 result: {

4552 [k: string]: unknown;

4553 };

4554 stdout: string;

4555 stderr: string;

4556 error?: string;

4557 registeredTools?: string[];

4558 images?: {

4559 base64: string;

4560 mediaType: string;

4561 }[];

4562 documents?: {

4563 base64: string;

4564 }[];

4565};

4566```

4567 

4568Mengembalikan hasil eksekusi, output konsol yang ditangkap, dan gambar atau dokumen apa pun yang dipermukaan oleh panggilan `Read` inner.

4569 

4570<h3 id="reportfindings-2">4584<h3 id="reportfindings-2">

4571 ReportFindings4585 ReportFindings

4572</h3>4586</h3>


4890```4904```

4891 4905 

4892<Warning>4906<Warning>

4893 Beta `context-1m-2025-08-07` sudah pensiun sejak 30 April 2026. Melewatkan nilai ini dengan Claude Sonnet 4.5 atau Sonnet 4 tidak berpengaruh, dan permintaan yang melebihi jendela konteks standar 200k-token mengembalikan error. Untuk menggunakan jendela konteks 1M-token, migrasikan ke [Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, atau Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), yang mencakup konteks 1M dengan harga standar tanpa header beta yang diperlukan.4907 Beta `context-1m-2025-08-07` sudah pensiun sejak 30 April 2026. Melewatkan nilai ini dengan Claude Sonnet 4.5 atau Sonnet 4 tidak berpengaruh, dan permintaan yang melebihi jendela konteks standar 200k-token mengembalikan error. Untuk menggunakan jendela konteks 1M-token, migrasikan ke [Claude Opus 5.5, Claude Opus 5, Claude Sonnet 5, Claude Sonnet 4.6, Claude Opus 4.6, Claude Opus 4.7, atau Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview), yang mencakup konteks 1M dengan harga standar tanpa header beta yang diperlukan.

4894</Warning>4908</Warning>

4895 4909 

4896<h3 id="slashcommand">4910<h3 id="slashcommand">


4905 description: string;4919 description: string;

4906 argumentHint: string;4920 argumentHint: string;

4907 aliases?: string[];4921 aliases?: string[];

4922 builtin?: boolean;

4908};4923};

4909```4924```

4910 4925 

4926`builtin` adalah `true` pada baris ketika perintah adalah milik Claude Code sendiri dan mengetik `/name` menjalankannya. Tidak ada untuk perintah yang didefinisikan oleh pengguna, proyek, plugin, atau server MCP, dan untuk perintah bundel yang salah satu dari [mengganti menurut nama](/docs/id/skills#resolve-skills-that-share-a-name). Memerlukan Agent SDK v0.3.277 atau lebih baru.

4927 

4911<h3 id="modelinfo">4928<h3 id="modelinfo">

4912 `ModelInfo`4929 `ModelInfo`

4913</h3>4930</h3>


5014 destructive?: boolean;5031 destructive?: boolean;

5015 openWorld?: boolean;5032 openWorld?: boolean;

5016 };5033 };

5034 _meta?: Record<string, unknown>;

5017 }[];5035 }[];

5018};5036};

5019```5037```

5020 5038 

5021`source` mengatakan tempat asal definisi server, dengan nilai dan aturan kepercayaan yang sama seperti `source` [`McpServerProvenance`](#mcpserverprovenance). Field memerlukan Agent SDK v0.3.274 atau lebih baru dan tidak ada pada versi sebelumnya.5039`source` mengatakan tempat asal definisi server, dengan nilai dan aturan kepercayaan yang sama seperti `source` [`McpServerProvenance`](#mcpserverprovenance). Field memerlukan Agent SDK v0.3.274 atau lebih baru dan tidak ada pada versi sebelumnya.

5022 5040 

5041`_meta` pada entri `tools` membawa anggota MCP Apps dari `_meta` tool itu, sehingga aplikasi Anda dapat menemukan sumber daya `ui://` untuk dirender dengan [`readMcpResource()`](#query-object). Claude Code melewatkan objek `ui` dan string `ui/resourceUri` datar yang sudah usang, dan menahan setiap kunci lainnya. Di dalam `ui`, `resourceUri` adalah string `ui://` dan `visibility` array `"model"` dan `"app"` ketika server menetapkannya, dan anggota lainnya melewati tidak berubah. Claude Code menghapus salah satu kunci ketika nilainya tidak terbentuk dengan baik, dan menghilangkan `_meta` dari tool yang tidak mendeklarasikan keduanya. Field ini hadir hanya ketika [`capabilities`](#sdksystemmessage) pesan inisialisasi mencakup `mcp_tool_ui_meta_v1`, dan memerlukan TypeScript Agent SDK v0.3.280 atau lebih baru.

5042 

5023<h3 id="mcpserverstatusconfig">5043<h3 id="mcpserverstatusconfig">

5024 `McpServerStatusConfig`5044 `McpServerStatusConfig`

5025</h3>5045</h3>


5764```5784```

5765 5785 

5766| Properti | Tipe | Default | Deskripsi |5786| Properti | Tipe | Default | Deskripsi |

5767| :-------------------------- | :---------------------------------------------------- | :---------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |5787| :-------------------------- | :---------------------------------------------------- | :---------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

5768| `enabled` | `boolean` | `false` | Aktifkan mode sandbox untuk eksekusi perintah |5788| `enabled` | `boolean` | `false` | Aktifkan mode sandbox untuk eksekusi perintah |

5769| `failIfUnavailable` | `boolean` | `true` | Berhenti saat startup jika `enabled` adalah `true` tetapi sandbox tidak dapat dimulai. Atur `false` untuk kembali ke eksekusi unsandboxed dengan peringatan di stderr |5789| `failIfUnavailable` | `boolean` | `true` | Berhenti saat startup jika `enabled` adalah `true` tetapi sandbox tidak dapat dimulai. Atur `false` untuk kembali ke eksekusi unsandboxed dengan peringatan di stderr |

5770| `autoAllowBashIfSandboxed` | `boolean` | `true` | Auto-approve perintah Bash ketika sandbox diaktifkan |5790| `autoAllowBashIfSandboxed` | `boolean` | `true` | Auto-approve perintah Bash ketika sandbox diaktifkan |

5771| `excludedCommands` | `string[]` | `[]` | Perintah yang selalu bypass pembatasan sandbox (misalnya, `['docker']`). Ini berjalan unsandboxed secara otomatis tanpa keterlibatan model |5791| `excludedCommands` | `string[]` | `[]` | Perintah yang bypass pembatasan sandbox, seperti `['docker *']`. Ini berjalan unsandboxed secara otomatis tanpa keterlibatan model; [`sandbox.excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands) mencakup kapan entri berlaku |

5772| `allowUnsandboxedCommands` | `boolean` | `true` | Izinkan model untuk meminta menjalankan perintah di luar sandbox. Ketika `true`, model dapat mengatur `dangerouslyDisableSandbox` dalam input tool, yang jatuh kembali ke [sistem izin](#permissions-fallback-for-unsandboxed-commands) |5792| `allowUnsandboxedCommands` | `boolean` | `true` | Izinkan model untuk meminta menjalankan perintah di luar sandbox. Ketika `true`, model dapat mengatur `dangerouslyDisableSandbox` dalam input tool, yang jatuh kembali ke [sistem izin](#permissions-fallback-for-unsandboxed-commands) |

5773| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Konfigurasi sandbox spesifik jaringan |5793| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Konfigurasi sandbox spesifik jaringan |

5774| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | Konfigurasi sandbox spesifik filesystem untuk pembatasan baca/tulis |5794| `filesystem` | [`SandboxFilesystemConfig`](#sandboxfilesystemconfig) | `undefined` | Konfigurasi sandbox spesifik filesystem untuk pembatasan baca/tulis |


5875 Fallback Izin untuk Perintah Unsandboxed5895 Fallback Izin untuk Perintah Unsandboxed

5876</h3>5896</h3>

5877 5897 

5878Ketika `allowUnsandboxedCommands` diaktifkan, model dapat meminta untuk menjalankan perintah di luar sandbox dengan mengatur `dangerouslyDisableSandbox: true` dalam input tool. Permintaan ini jatuh kembali ke sistem izin yang ada, berarti handler `canUseTool` Anda dipanggil, memungkinkan Anda untuk mengimplementasikan logika otorisasi kustom. Perintah yang tercantum dalam `excludedCommands` sebagai gantinya bypass sandbox secara otomatis, tanpa keterlibatan model; lihat [`SandboxSettings`](#sandboxsettings).5898Ketika `allowUnsandboxedCommands` diaktifkan, model dapat meminta untuk menjalankan perintah di luar sandbox dengan mengatur `dangerouslyDisableSandbox: true` dalam input tool. Permintaan ini jatuh kembali ke sistem izin yang ada, berarti handler `canUseTool` Anda dipanggil, memungkinkan Anda untuk mengimplementasikan logika otorisasi kustom.

5899 

5900Entri `excludedCommands` Anda sebagai gantinya mengambil perintah keluar dari sandbox tanpa keterlibatan model; [`sandbox.excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands) mencakup kapan entri berlaku.

5879 5901 

5880Dalam contoh di bawah, `isCommandAuthorized` mewakili pemeriksaan otorisasi yang Anda tentukan.5902Dalam contoh di bawah, `isCommandAuthorized` mewakili pemeriksaan otorisasi yang Anda tentukan.

5881 5903 

agent-teams.md +0 −4

Details

14 14 

15Sebelum Anda menyiapkan tim, periksa apakah opsi yang lebih ringan dapat menyelesaikan pekerjaan. [Subagents](/docs/id/sub-agents) bekerja dalam satu session, dan dengan [cross-session messaging](/docs/id/cross-session-messaging) Claude dapat meneruskan temuan antar session yang Anda jalankan sendiri.15Sebelum Anda menyiapkan tim, periksa apakah opsi yang lebih ringan dapat menyelesaikan pekerjaan. [Subagents](/docs/id/sub-agents) bekerja dalam satu session, dan dengan [cross-session messaging](/docs/id/cross-session-messaging) Claude dapat meneruskan temuan antar session yang Anda jalankan sendiri.

16 16 

17<Note>

18 Halaman ini menjelaskan tim agent per v2.1.178. Dengan `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` diatur, menspawn rekan tim tidak lagi memerlukan langkah setup, dan cleanup terjadi secara otomatis ketika session keluar. Sebelum v2.1.178, Anda meminta Claude untuk membuat dan memberi nama tim terlebih dahulu, dan Claude menggunakan tools `TeamCreate` dan `TeamDelete` untuk mengaturnya dan menghapusnya. Kedua tools tidak lagi ada. Input `team_name` pada tool Agent diterima tetapi diabaikan, dan field `team_name` dalam [hook payloads](/docs/id/hooks#taskcreated) `TaskCreated`, `TaskCompleted`, dan `TeammateIdle` membawa nama yang diturunkan dari session dan sudah usang.

19</Note>

20 

21<h2 id="when-to-use-agent-teams">17<h2 id="when-to-use-agent-teams">

22 Kapan menggunakan tim agent18 Kapan menggunakan tim agent

23</h2>19</h2>

Details

291 291 

292Atur variabel lingkungan ini ke ID model Amazon Bedrock spesifik.292Atur variabel lingkungan ini ke ID model Amazon Bedrock spesifik.

293 293 

294Tanpa `ANTHROPIC_DEFAULT_OPUS_MODEL`, alias `opus` di Amazon Bedrock diselesaikan ke Opus 5, dan tanpa `ANTHROPIC_DEFAULT_SONNET_MODEL`, alias `sonnet` diselesaikan ke Sonnet 4.5. Contoh ini pin setiap alias ke versi spesifik:294Tanpa `ANTHROPIC_DEFAULT_OPUS_MODEL`, alias `opus` di Amazon Bedrock diselesaikan ke Opus 5.5, dan tanpa `ANTHROPIC_DEFAULT_SONNET_MODEL`, alias `sonnet` diselesaikan ke Sonnet 4.5. Contoh ini pin setiap alias ke versi spesifik:

295 295 

296```bash theme={null}296```bash theme={null}

297export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'297export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'


304Untuk menyimpan model default bawaan dan mengubah hanya awalan pilihan mereka, atur [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes) alih-alih pinning. Perbedaannya ditunjukkan dalam apa yang alias `opus` diselesaikan ke:304Untuk menyimpan model default bawaan dan mengubah hanya awalan pilihan mereka, atur [`ANTHROPIC_BEDROCK_REGION_PREFIX`](#cross-region-inference-profile-prefixes) alih-alih pinning. Perbedaannya ditunjukkan dalam apa yang alias `opus` diselesaikan ke:

305 305 

306| Anda atur | Alias `opus` diselesaikan ke |306| Anda atur | Alias `opus` diselesaikan ke |

307| :------------------------------------------------------------ | :---------------------------------------------------------------------- |307| :------------------------------------------------------------ | :------------------------------------------------------------------------ |

308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`, ID tepat yang Anda pin |308| `ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` | `us.anthropic.claude-opus-4-8`, ID tepat yang Anda pin |

309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5`, default bawaan dengan awalan pilihan Anda |309| `ANTHROPIC_BEDROCK_REGION_PREFIX=eu` | `eu.anthropic.claude-opus-5-5`, default bawaan dengan awalan pilihan Anda |

310 310 

311Untuk ID model saat ini dan warisan, lihat [Models overview](https://platform.claude.com/docs/en/about-claude/models/overview). Untuk daftar lengkap variabel lingkungan pinning, lihat [Model configuration](/docs/id/model-config#pin-models-for-third-party-deployments).311Untuk ID model saat ini dan warisan, lihat [Models overview](https://platform.claude.com/docs/en/about-claude/models/overview). Untuk daftar lengkap variabel lingkungan pinning, lihat [Model configuration](/docs/id/model-config#pin-models-for-third-party-deployments).

312 312 


314 314 

315| Jenis model | Model default |315| Jenis model | Model default |

316| :---------------- | :------------------------------------------------------------------------------------ |316| :---------------- | :------------------------------------------------------------------------------------ |

317| Model utama | Opus 5, misalnya `us.anthropic.claude-opus-5` di wilayah `us-*` |317| Model utama | Opus 5.5, misalnya `us.anthropic.claude-opus-5-5` di wilayah `us-*` |

318| Model kecil/cepat | Sonnet 4.5, misalnya `us.anthropic.claude-sonnet-4-5-20250929-v1:0` di wilayah `us-*` |318| Model kecil/cepat | Sonnet 4.5, misalnya `us.anthropic.claude-sonnet-4-5-20250929-v1:0` di wilayah `us-*` |

319 319 

320Tugas latar belakang seperti pembuatan judul sesi menggunakan model kecil/cepat, biasanya model kelas Haiku. Di Amazon Bedrock, Claude Code menggunakan model Sonnet default untuk tugas latar belakang karena Haiku mungkin tidak diaktifkan di setiap akun atau wilayah. Dua pilihan mengubah model mana yang membawanya:320Tugas latar belakang seperti pembuatan judul sesi menggunakan model kecil/cepat, biasanya model kelas Haiku. Di Amazon Bedrock, Claude Code menggunakan model Sonnet default untuk tugas latar belakang karena Haiku mungkin tidak diaktifkan di setiap akun atau wilayah. Dua pilihan mengubah model mana yang membawanya:


326 Model Opus memiliki harga per-token yang lebih tinggi daripada model Sonnet, jadi penerapan yang tidak pin model utama ditagih dengan tarif Opus setelah diperbarui ke v2.1.207 atau lebih baru. Untuk menyimpan Sonnet 4.5 sebagai model utama, atur `ANTHROPIC_MODEL` ke ID model lengkapnya. Penerapan yang mengarahkan default dengan `ANTHROPIC_DEFAULT_SONNET_MODEL` dan tidak mengatur `ANTHROPIC_DEFAULT_OPUS_MODEL` menyimpan model Sonnet yang diarahkan sebagai default.326 Model Opus memiliki harga per-token yang lebih tinggi daripada model Sonnet, jadi penerapan yang tidak pin model utama ditagih dengan tarif Opus setelah diperbarui ke v2.1.207 atau lebih baru. Untuk menyimpan Sonnet 4.5 sebagai model utama, atur `ANTHROPIC_MODEL` ke ID model lengkapnya. Penerapan yang mengarahkan default dengan `ANTHROPIC_DEFAULT_SONNET_MODEL` dan tidak mengatur `ANTHROPIC_DEFAULT_OPUS_MODEL` menyimpan model Sonnet yang diarahkan sebagai default.

327</Warning>327</Warning>

328 328 

329Pada v2.1.207 melalui v2.1.218, model utama di Amazon Bedrock default ke Opus 4.8 dan alias `opus` diselesaikan ke Opus 4.8. Sebelum v2.1.207, model utama default ke Sonnet 4.5, alias `opus` diselesaikan ke Opus 4.6, dan tugas latar belakang selalu menggunakan model utama.329Sebelum v2.1.280, model utama di Amazon Bedrock default ke Opus 5 dan alias `opus` diselesaikan ke Opus 5 dari v2.1.219. Pada v2.1.207 melalui v2.1.218, model utama di Amazon Bedrock default ke Opus 4.8 dan alias `opus` diselesaikan ke Opus 4.8. Sebelum v2.1.207, model utama default ke Sonnet 4.5, alias `opus` diselesaikan ke Opus 4.6, dan tugas latar belakang selalu menggunakan model utama.

330 330 

331Untuk menyesuaikan model lebih lanjut, gunakan salah satu metode ini:331Untuk menyesuaikan model lebih lanjut, gunakan salah satu metode ini:

332 332 


405```bash theme={null}405```bash theme={null}

406export ANTHROPIC_BEDROCK_REGION_PREFIX=global406export ANTHROPIC_BEDROCK_REGION_PREFIX=global

407# Di wilayah us-*, model utama sekarang diselesaikan ke407# Di wilayah us-*, model utama sekarang diselesaikan ke

408# global.anthropic.claude-opus-5 bukan us.anthropic.claude-opus-5408# global.anthropic.claude-opus-5-5 bukan us.anthropic.claude-opus-5-5

409```409```

410 410 

411Prefiks yang disukai adalah preferensi, bukan jaminan, baik itu berasal dari wilayah Anda atau dari variabel. Bagaimana Claude Code menerapkannya tergantung pada apakah Claude Code dapat memeriksa ketersediaan profil di akun Anda:411Prefiks yang disukai adalah preferensi, bukan jaminan, baik itu berasal dari wilayah Anda atau dari variabel. Bagaimana Claude Code menerapkannya tergantung pada apakah Claude Code dapat memeriksa ketersediaan profil di akun Anda:

artifacts.md +2 −2

Details

347Artifacts memerlukan setiap kondisi di bawah. Ketika salah satu tidak terpenuhi, Claude menulis file HTML lokal atau mengatakan tidak dapat menerbitkan.347Artifacts memerlukan setiap kondisi di bawah. Ketika salah satu tidak terpenuhi, Claude menulis file HTML lokal atau mengatakan tidak dapat menerbitkan.

348 348 

349| Persyaratan | Tersedia ketika |349| Persyaratan | Tersedia ketika |

350| :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |350| :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

351| Paket | Pro, Max, Team, atau Enterprise. Pada paket Pro dan Max, artifacts bersifat pribadi untuk Anda sampai Anda membagikannya, dan tidak ada manajemen admin yang berlaku. Pada paket Team, artifacts diaktifkan secara default. Pada paket Enterprise, pemilik [mengaktifkannya](#manage-artifacts-for-your-organization) di pengaturan admin claude.ai. |351| Paket | Pro, Max, Team, atau Enterprise. Pada paket Pro dan Max, artifacts bersifat pribadi untuk Anda sampai Anda membagikannya, dan tidak ada manajemen admin yang berlaku. Pada paket Team, artifacts diaktifkan secara default. Pada paket Enterprise, pemilik [mengaktifkannya](#manage-artifacts-for-your-organization) di pengaturan admin claude.ai. |

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

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

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

355| Permukaan | Claude Code CLI versi 2.1.183 atau lebih baru, atau aplikasi desktop Claude versi 1.13576.0 atau lebih baru. Sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) juga dapat menerbitkan artifacts ketika Claude Tag dan artifacts keduanya diaktifkan untuk organisasi. Dimatikan secara default di konteks [Agent SDK](/docs/id/agent-sdk/overview), GitHub Action, dan MCP-server, dan ketika [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars) diatur. |355| Permukaan | Claude Code CLI, atau aplikasi desktop Claude versi 1.13576.0 atau lebih baru. Sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) juga dapat menerbitkan artifacts ketika Claude Tag dan artifacts keduanya diaktifkan untuk organisasi. Dimatikan secara default di konteks [Agent SDK](/docs/id/agent-sdk/overview), GitHub Action, dan MCP-server, dan ketika [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars) diatur. |

356 356 

357<h2 id="disable-artifacts">357<h2 id="disable-artifacts">

358 Nonaktifkan artifacts358 Nonaktifkan artifacts

Details

53 53 

54[Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams#team-&-enterprise) dan [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise) memberikan pengalaman terbaik bagi organisasi yang menggunakan Claude Code. Anggota tim mendapatkan akses ke Claude Code dan Claude di web dengan penagihan terpusat dan manajemen tim.54[Claude for Teams](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_teams#team-&-enterprise) dan [Claude for Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=authentication_enterprise) memberikan pengalaman terbaik bagi organisasi yang menggunakan Claude Code. Anggota tim mendapatkan akses ke Claude Code dan Claude di web dengan penagihan terpusat dan manajemen tim.

55 55 

56* **Claude for Teams**: paket layanan mandiri dengan fitur kolaborasi, alat admin, dan manajemen penagihan. Terbaik untuk tim yang lebih kecil.56* **Claude for Teams**: paket layanan mandiri dengan fitur kolaborasi, alat admin, SSO, manajemen penagihan, dan [pengaturan yang dikelola server](/docs/id/server-managed-settings) untuk konfigurasi Claude Code di seluruh organisasi. Terbaik untuk tim yang lebih kecil.

57* **Claude for Enterprise**: menambahkan SSO, penangkapan domain, izin berbasis peran, API kepatuhan, dan pengaturan kebijakan terkelola untuk konfigurasi Claude Code di seluruh organisasi. Terbaik untuk organisasi yang lebih besar dengan persyaratan keamanan dan kepatuhan.57* **Claude for Enterprise**: menambahkan penangkapan domain, izin berbasis peran, dan API kepatuhan. Terbaik untuk organisasi yang lebih besar dengan persyaratan keamanan dan kepatuhan.

58 58 

59<Steps>59<Steps>

60 <Step title="Berlangganan">60 <Step title="Berlangganan">

Details

250 250 

251Sesi cloud mendukung [perintah bawaan](/docs/id/commands) yang menghasilkan keluaran teks. Perintah yang hanya berjalan di antarmuka terminal, seperti `/plugin` atau `/resume`, tidak tersedia. Perintah yang membuka pemilih atau panel di terminal berperilaku berbeda di sesi cloud:251Sesi cloud mendukung [perintah bawaan](/docs/id/commands) yang menghasilkan keluaran teks. Perintah yang hanya berjalan di antarmuka terminal, seperti `/plugin` atau `/resume`, tidak tersedia. Perintah yang membuka pemilih atau panel di terminal berperilaku berbeda di sesi cloud:

252 252 

253* **`/model`, `/effort`, `/color`, dan `/rename`**: teruskan nilai sebagai argumen, misalnya `/model sonnet`, alih-alih membuka pemilih terminal atau slider. Bentuk argumen memerlukan Claude Code v2.1.205 atau lebih baru di lingkungan sesi dan mengikuti [catatan ketersediaan](/docs/id/commands#all-commands) setiap perintah: `/effort` melaporkan `Not applied` saat [launch-default effort hold](/docs/id/model-config#adjust-effort-level) model sedang berlaku.253* **`/model`, `/effort`, `/color`, dan `/rename`**: teruskan nilai sebagai argumen, misalnya `/model sonnet`, alih-alih membuka pemilih terminal atau slider. Bentuk argumen memerlukan Claude Code v2.1.205 atau lebih baru di lingkungan sesi dan mengikuti [catatan ketersediaan](/docs/id/commands#all-commands) setiap perintah.

254* **`/fast`**: mengalihkan [mode cepat](/docs/id/fast-mode#use-fast-mode-in-cloud-sessions) untuk sesi ketika mode cepat [tersedia di akun Anda](/docs/id/fast-mode#requirements). Memerlukan Claude Code v2.1.271 atau lebih baru di lingkungan sesi.254* **`/fast`**: mengalihkan [mode cepat](/docs/id/fast-mode#use-fast-mode-in-cloud-sessions) untuk sesi ketika mode cepat [tersedia di akun Anda](/docs/id/fast-mode#requirements). Memerlukan Claude Code v2.1.271 atau lebih baru di lingkungan sesi.

255* **`/config`**: di peramban Anda di claude.ai/code, membuka bagian Claude Code dari pengaturan Anda alih-alih menetapkan nilai, dan teks setelah perintah, termasuk `key=value`, diabaikan. Untuk mengubah pengaturan sesi cloud, atur [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) pada lingkungan, atau dalam sesi dengan satu repositori, komit kunci ke `.claude/settings.json` repositori tersebut. [Pengaturan di sesi cloud](/docs/id/settings#settings-in-cloud-sessions) mencantumkan apa yang dibaca setiap sesi.255* **`/config`**: di peramban Anda di claude.ai/code, membuka bagian Claude Code dari pengaturan Anda alih-alih menetapkan nilai, dan teks setelah perintah, termasuk `key=value`, diabaikan. Untuk mengubah pengaturan sesi cloud, atur [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) pada lingkungan, atau dalam sesi dengan satu repositori, komit kunci ke `.claude/settings.json` repositori tersebut. [Pengaturan di sesi cloud](/docs/id/settings#settings-in-cloud-sessions) mencantumkan apa yang dibaca setiap sesi.

256 256 

Details

1451Explorer mencakup file yang Anda buat dan edit. Beberapa file terkait berada di tempat lain:1451Explorer mencakup file yang Anda buat dan edit. Beberapa file terkait berada di tempat lain:

1452 1452 

1453| File | Lokasi | Tujuan |1453| File | Lokasi | Tujuan |

1454| ----------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1454| ----------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1455| `managed-settings.json` | Tingkat sistem, bervariasi menurut OS | Pengaturan yang diberlakukan perusahaan yang tidak dapat Anda ganti, kecuali [pengecualian sempit](/docs/id/settings#security-keys-where-the-stricter-value-applies). Lihat [tempat menyimpan file](/docs/id/managed-settings#deploy-a-managed-settings-file) dan [sumber managed mana yang digunakan Claude Code](/docs/id/managed-settings#precedence-within-the-managed-tier). |1455| `managed-settings.json` | Tingkat sistem, bervariasi menurut OS | Pengaturan yang diberlakukan perusahaan yang tidak dapat Anda ganti, kecuali [pengecualian sempit](/docs/id/settings#security-keys-where-the-stricter-value-applies). Lihat [tempat menyimpan file](/docs/id/managed-settings#deploy-a-managed-settings-file) dan [sumber managed mana yang digunakan Claude Code](/docs/id/managed-settings#precedence-within-the-managed-tier). |

1456| `CLAUDE.local.md` | Akar proyek | Preferensi pribadi Anda untuk proyek ini, dimuat bersama CLAUDE.md. Buatnya secara manual dan tambahkan ke `.gitignore`. |1456| `CLAUDE.local.md` | Akar proyek | Preferensi pribadi Anda untuk proyek ini, dimuat bersama CLAUDE.md. Buatnya secara manual dan tambahkan ke `.gitignore`. |

1457| `AGENTS.md` | Akar proyek, `.claude/`, atau direktori apa pun | Instruksi proyek yang Anda tulis untuk agen coding AI. Claude Code dapat [memuatnya](/docs/id/memory#agents-md) sendiri atau bersama `CLAUDE.md`. |1457| `AGENTS.md` | Akar proyek, `.claude/`, atau direktori apa pun | Instruksi proyek yang Anda tulis untuk agen coding AI. Claude Code dapat [memuatnya](/docs/id/memory#agents-md) sendiri atau bersama `CLAUDE.md`. |

1458| Plugin yang diinstal | `~/.claude/plugins` | Marketplace yang dikloning, versi plugin yang diinstal, dan data per-plugin, dikelola oleh perintah `claude plugin`. Untuk plugin yang diinstal dari marketplace dengan [`command` source](/docs/id/plugin-marketplaces#command-sources) dalam link mode, Claude Code menyimpan link di sini alih-alih salinan, dan file plugin tetap berada di direktori yang dicetak perintah. Sumber `command` memerlukan Claude Code v2.1.229 atau lebih baru. Plugin yang tercantum menurut jalur relatif dalam marketplace direktori lokal juga [dimuat di tempat](/docs/id/plugins-reference#plugin-caching-and-file-resolution) dari direktori sumbernya daripada dari salinan cache. Lihat [plugin caching](/docs/id/plugins-reference#plugin-caching-and-file-resolution) untuk cara versi yatim piatu dibersihkan. |1458| Plugin yang diinstal | `~/.claude/plugins` | Marketplace yang dikloning, versi plugin yang diinstal, catatan instalasi `installed_plugins.json`, dan data per-plugin, dikelola oleh perintah `claude plugin`. Plugin yang [disinkronkan dari akun claude.ai Anda](/docs/id/plugins-reference#synced-plugins) diunduh ke `~/.claude/plugins/synced/`. Untuk plugin yang diinstal dari marketplace dengan [`command` source](/docs/id/plugin-marketplaces#command-sources) dalam link mode, Claude Code menyimpan link di sini alih-alih salinan, dan file plugin tetap berada di direktori yang dicetak perintah. Sumber `command` memerlukan Claude Code v2.1.229 atau lebih baru. Plugin yang tercantum menurut jalur relatif dalam marketplace direktori lokal juga [dimuat di tempat](/docs/id/plugins-reference#plugin-caching-and-file-resolution) dari direktori sumbernya daripada dari salinan cache. Lihat [plugin caching](/docs/id/plugins-reference#plugin-caching-and-file-resolution) untuk cara versi yatim piatu dibersihkan. |

1459 1459 

1460`~/.claude` juga menyimpan data yang ditulis Claude Code saat Anda bekerja: transkrip, riwayat prompt, snapshot file, cache, dan log. Lihat [application data](#application-data) di bawah.1460`~/.claude` juga menyimpan data yang ditulis Claude Code saat Anda bekerja: transkrip, riwayat prompt, snapshot file, cache, dan log. Lihat [application data](#application-data) di bawah.

1461 1461 


1515| [`keybindings.json`](#ce-keybindings) | Global saja | | Pintasan keyboard khusus | [Keybindings](/docs/id/keybindings) |1515| [`keybindings.json`](#ce-keybindings) | Global saja | | Pintasan keyboard khusus | [Keybindings](/docs/id/keybindings) |

1516| [`themes/*.json`](#ce-themes) | Global saja | | Tema warna khusus | [Custom themes](/docs/id/terminal-config#create-a-custom-theme) |1516| [`themes/*.json`](#ce-themes) | Global saja | | Tema warna khusus | [Custom themes](/docs/id/terminal-config#create-a-custom-theme) |

1517 1517 

1518<h2 id="frontmatter-fields-by-file">

1519 Bidang frontmatter menurut file

1520</h2>

1521 

1522Skills, command files, subagents, output styles, dan rules membaca konfigurasi mereka dari YAML [frontmatter](/docs/id/glossary#frontmatter) di bagian atas file, dan masing-masing menerima set bidang tersendiri. Tabel ini mencantumkan nama bidang untuk setiap file dan menautkan ke referensi yang menjelaskannya.

1523 

1524| File | Bidang frontmatter | Referensi |

1525| ------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- |

1526| `skills/<name>/SKILL.md` | `name`, `description`, `when_to_use`, `argument-hint`, `arguments`, `disable-model-invocation`, `user-invocable`, `allowed-tools`, `disallowed-tools`, `model`, `effort`, `context`, `agent`, `background`, `hooks`, `paths`, `shell`, `metadata`, `license`, `compatibility` | [Skill frontmatter](/docs/id/skills#frontmatter-reference) |

1527| `commands/*.md` | Bidang skill kecuali `name` dan `paths` | [Skill frontmatter](/docs/id/skills#frontmatter-reference) |

1528| `agents/*.md` | `name`, `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `maxTurns`, `skills`, `mcpServers`, `hooks`, `memory`, `background`, `effort`, `isolation`, `color`, `initialPrompt`, `omitClaudeMd`, `experimental` | [Subagent frontmatter](/docs/id/sub-agents#supported-frontmatter-fields) |

1529| `output-styles/*.md` | `name`, `description`, `keep-coding-instructions`, `force-for-plugin` | [Output style frontmatter](/docs/id/output-styles#frontmatter) |

1530| `rules/*.md` | `paths` | [Rule frontmatter](/docs/id/memory#rules-frontmatter-reference) |

1531 

1532Agents yang dikirimkan dalam [plugin](/docs/id/plugins-reference#plugin-agent-frontmatter) menghormati subset dari bidang subagent.

1533 

1518<h2 id="troubleshoot-configuration">1534<h2 id="troubleshoot-configuration">

1519 Troubleshoot konfigurasi1535 Troubleshoot konfigurasi

1520</h2>1536</h2>


1531 Dibersihkan secara otomatis1547 Dibersihkan secara otomatis

1532</h3>1548</h3>

1533 1549 

1534Claude Code menghapus file di jalur di bawah ini setelah mereka lebih tua dari [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays), selama Claude Code dapat dengan aman menentukan periode retensi. Default adalah 30 hari dan minimum adalah 1; mengatur `0` gagal dengan kesalahan validasi. Cutoff usia yang sama berlaku untuk penghapusan otomatis [worktrees yatim piatu](/docs/id/worktrees#clean-up-subagent-and-background-session-worktrees).1550Claude Code menghapus file di jalur di bawah ini setelah mereka lebih tua dari [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays), selama dapat dengan aman menentukan periode retensi. Default adalah 30 hari dan minimum adalah 1; mengatur `0` gagal dengan kesalahan validasi. Cutoff usia yang sama berlaku untuk penghapusan otomatis [worktrees yatim piatu](/docs/id/worktrees#clean-up-subagent-and-background-session-worktrees).

1535 1551 

1536| Jalur di bawah `~/.claude/` | Konten |1552| Jalur di bawah `~/.claude/` | Konten |

1537| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1553| ------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

1538| `projects/<project>/<session>.jsonl` | Transkrip percakapan lengkap: setiap pesan, panggilan alat, dan hasil alat |1554| `projects/<project>/<session>.jsonl` | Transkrip percakapan lengkap: setiap pesan, panggilan alat, dan hasil alat |

1539| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Transkrip sebelumnya untuk sesi yang Claude Code sisihkan alih-alih menimpanya atau menghapusnya. Tidak muncul di pemilih sesi |1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`, `projects/<project>/<session>.jsonl.superseded-<timestamp>` | Transkrip sebelumnya untuk sesi yang Claude Code sisihkan alih-alih menimpanya atau menghapusnya. Tidak muncul di pemilih sesi |

1540| `projects/<project>/<session>/subagents/` | Transkrip percakapan [Subagent](/docs/id/sub-agents), dihapus dengan transkrip sesi induk saat usianya habis |1556| `projects/<project>/<session>/subagents/` | Transkrip percakapan [Subagent](/docs/id/sub-agents), dihapus dengan transkrip sesi induk saat usia habis |

1541| `projects/<project>/<session>/tool-results/` | Output alat besar yang tumpah ke file terpisah |1557| `projects/<project>/<session>/tool-results/` | Output alat besar yang tumpah ke file terpisah |

1542| `file-history/<session>/` | Snapshot pra-edit file yang Claude ubah, digunakan untuk [pemulihan checkpoint](/docs/id/checkpointing). Menyimpan snapshot untuk 100 checkpoint terbaru; file snapshot yang tidak direferensikan oleh checkpoint yang dipertahankan dihapus, kecuali snapshot pertama setiap file |1558| `file-history/<session>/` | Snapshot pra-edit file yang Claude ubah, digunakan untuk [pemulihan checkpoint](/docs/id/checkpointing). Menyimpan snapshot untuk 100 checkpoint terbaru; file snapshot yang tidak direferensikan oleh checkpoint yang dipertahankan dihapus, kecuali snapshot pertama setiap file |

1543| `plans/` | File rencana yang ditulis selama [mode rencana](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) |1559| `plans/` | File rencana yang ditulis selama [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) |

1544| `debug/` | Log debug per-sesi, ditulis saat pencatatan debug aktif, seperti saat Anda memulai dengan [`--debug`](/docs/id/cli-reference#cli-flags) atau menjalankan `/debug` |1560| `debug/` | Log debug per-sesi, ditulis saat pencatatan debug aktif, seperti saat Anda memulai dengan [`--debug`](/docs/id/cli-reference#cli-flags) atau menjalankan `/debug` |

1545| `paste-cache/` | Konten tempel besar |1561| `paste-cache/` | Konten tempel besar |

1546| `image-cache/<session>/` | Gambar yang dilampirkan. Pada setiap sweep, Claude Code menghapus direktori semua sesi lain, apa pun usianya. |1562| `image-cache/<session>/` | Gambar terlampir yang disimpan oleh Claude Code v2.1.274 dan lebih awal. Versi yang lebih baru menyimpan gambar yang ditempel dan terlampir di luar `~/.claude`, dalam direktori `images/` untuk setiap sesi di bawah direktori temp yang dikontrol [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars). Sweep menghapus direktori sisa sesi lain di sini, apa pun usianya. |

1547| `uploads/<session>/` | File yang Anda lampirkan dari web atau aplikasi mobile, dan foto yang Anda lampirkan dari aplikasi mobile, saat mengirim pesan ke sesi [Remote Control](/docs/id/remote-control). Lampiran ke [sesi cloud](/docs/id/claude-code-on-the-web) disimpan di lingkungan cloud sesi itu sendiri, bukan di mesin Anda. |1563| `uploads/<session>/` | File yang Anda lampirkan dari web atau aplikasi mobile, dan foto yang Anda lampirkan dari aplikasi mobile, saat mengirim pesan ke sesi [Remote Control](/docs/id/remote-control). Lampiran ke [sesi cloud](/docs/id/claude-code-on-the-web) disimpan di lingkungan cloud sesi itu sendiri, bukan di mesin Anda. |

1548| `session-env/` | Metadata lingkungan per-sesi |1564| `session-env/` | Metadata lingkungan per-sesi |

1549| `tasks/` | Daftar tugas yang ditulis oleh alat tugas, satu direktori per daftar |1565| `tasks/` | Daftar tugas yang ditulis oleh alat tugas, satu direktori per daftar |

1550| `shell-snapshots/` | Alias, fungsi, dan opsi shell yang ditangkap saat startup dan diterapkan oleh [alat Bash](/docs/id/tools-reference#bash-tool-behavior) ke setiap perintah. Dihapus saat keluar dengan bersih. Sweep menghapus yang tersisa setelah crash. |1566| `shell-snapshots/` | Alias, fungsi, dan opsi shell yang ditangkap saat startup dan diterapkan oleh [alat Bash](/docs/id/tools-reference#bash-tool-behavior) ke setiap perintah. Dihapus saat keluar dengan bersih. Sweep menghapus yang tertinggal setelah crash. |

1551| `backups/` | Versi sebelumnya dari `~/.claude.json`, disalin saat Claude Code menulis ulang file. Claude Code menyimpan lima terbaru, ditambah salinan versi apa pun yang tidak dapat diuraikan. |1567| `backups/` | Versi sebelumnya dari `~/.claude.json`, disalin saat Claude Code menulis ulang file. Claude Code menyimpan lima terbaru, ditambah salinan versi apa pun yang tidak dapat diuraikan. |

1552| `feedback-bundles/` | Arsip transkrip yang diredaksi ditulis oleh `/feedback` pada penyedia pihak ketiga atau saat tidak ada kredensial Anthropic yang dikonfigurasi, untuk dikirim ke tim akun Anthropic Anda |1568| `feedback-bundles/` | Arsip transkrip yang disunting ditulis oleh `/feedback` pada penyedia pihak ketiga atau saat tidak ada kredensial Anthropic yang dikonfigurasi, untuk dikirim ke tim akun Anthropic Anda |

1553| `feedback/drafts/` | Antrian [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior) menunggu ulasan Anda di `/feedback`. Disapu setelah `cleanupPeriodDays` atau 30 hari, mana yang lebih pendek. Saat antrian mencapai batas 10 draft, Claude Code menghapus draft tertua untuk membuat ruang. |1569| `feedback/drafts/` | Antrian [umpan balik yang dirancang Claude](/docs/id/tools-reference#sendfeedback-tool-behavior) menunggu ulasan Anda di `/feedback`. Disapu setelah `cleanupPeriodDays` atau 30 hari, mana yang lebih pendek. Saat antrian mencapai batas 10 draft, Claude Code menghapus draft tertua untuk membuat ruang. |

1554| `usage-data/` | `report.html` dan salinan laporan bertanda waktu yang ditulis oleh [`/insights`](/docs/id/costs#analyze-your-usage-patterns), ditambah data analisis per-sesi yang disimpan dalam cache yang digunakan untuk membangunnya |1570| `usage-data/` | `report.html` dan salinan laporan bertanda waktu yang ditulis oleh [`/insights`](/docs/id/costs#analyze-your-usage-patterns), ditambah data analisis per-sesi yang disimpan dalam cache yang digunakan untuk membangunnya |

1555| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/id/skills#how-synced-skills-behave) dan [plugins](/docs/id/plugins-reference#synced-plugins) yang disinkronkan dari claude.ai yang Claude Code hapus. Dipindahkan ke sini alih-alih dihapus sehingga Anda dapat memulihkan file |1571| `skills/.trash/`, `plugins/.trash/` | [Skills](/docs/id/skills#how-synced-skills-behave) dan [plugins](/docs/id/plugins-reference#synced-plugins) yang sinkronisasi claude.ai hapus, seperti setelah Anda mematikannya di claude.ai atau berhenti menyinkronkan. File tetap di sini sehingga Anda dapat memulihkannya sampai sweep menghapusnya |

1556| `todos/`, `statsig/`, `logs/` | Direktori warisan dari versi yang lebih lama. Tidak lagi ditulis. Sweep menghapus konten mereka dan kemudian direktori kosong. |1572| `todos/`, `statsig/`, `logs/` | Direktori warisan dari versi yang lebih lama. Tidak lagi ditulis. Sweep menghapus konten mereka dan kemudian direktori kosong. |

1557 1573 

1558File sesi di `sessions/`, memori otomatis, dan transkrip Claude Desktop dan Cowork masing-masing mengikuti aturan retensi mereka sendiri:1574File sesi di `sessions/`, memori otomatis, dan transkrip Claude Desktop dan Cowork masing-masing mengikuti aturan retensi mereka sendiri:

1559 1575 

1560* **`sessions/`**: menyimpan satu file kecil per sesi yang berjalan, digunakan untuk mendeteksi sesi bersamaan dan crash. Ini bukan bagian dari sweep berbasis usia: Claude Code menghapus setiap file saat sesinya keluar dan menghapus sisa crash saat peluncuran berikutnya.1576* **`sessions/`**: menyimpan satu file kecil per sesi yang berjalan, digunakan untuk mendeteksi sesi bersamaan dan crash. Ini bukan bagian dari sweep berbasis usia: Claude Code menghapus setiap file saat sesinya keluar dan menghapus sisa crash saat peluncuran berikutnya.

1561* **Memori otomatis**: sweep tidak menghapus file memori di direktori [memori otomatis](/docs/id/memory#auto-memory) proyek, `projects/<project>/memory/`. Claude Code menghapus direktori itu hanya jika telah kosong selama seluruh periode retensi. Sebelum v2.1.228, sweep memperlakukan folder di dalam direktori memori sebagai data sesi dan dapat menghapus file lama di bawahnya.1577* **Memori otomatis**: sweep tidak menghapus file memori di direktori [memori otomatis](/docs/id/memory#auto-memory) proyek, `projects/<project>/memory/`. Claude Code menghapus direktori itu hanya jika telah kosong selama seluruh periode retensi. Sebelum v2.1.228, sweep memperlakukan folder di dalam direktori memori sebagai data sesi dan dapat menghapus file lama di bawahnya.

1562* **Transkrip Claude Desktop dan Cowork**: Claude Code menyimpan transkrip sesi yang Anda mulai atau lanjutkan terakhir di Claude Desktop atau Cowork pada usia berapa pun. Untuk memberikan transkrip ini batas usia, atur [`desktopSessionCleanupPeriodDays`](/docs/id/settings-reference#desktopsessioncleanupperioddays). Saat [pengaturan terkelola](/docs/id/managed-settings) menetapkan `cleanupPeriodDays`, Claude Code menghapus transkrip ini setelah periode itu. Memerlukan Claude Code v2.1.248 atau lebih baru; versi sebelumnya menghapusnya setelah `cleanupPeriodDays`.1578* **Transkrip Claude Desktop dan Cowork**: Claude Code menyimpan transkrip sesi yang Anda mulai atau lanjutkan terakhir di Claude Desktop atau Cowork pada usia apa pun. Untuk memberikan transkrip ini batas usia, atur [`desktopSessionCleanupPeriodDays`](/docs/id/settings-reference#desktopsessioncleanupperioddays). Saat [pengaturan terkelola](/docs/id/managed-settings) menetapkan `cleanupPeriodDays`, Claude Code menghapus transkrip ini setelah periode itu sebagai gantinya. Memerlukan Claude Code v2.1.248 atau lebih baru; versi sebelumnya menghapusnya setelah `cleanupPeriodDays`.

1563 1579 

1564Claude Code melewati sweep berbasis usia dalam kasus-kasus ini:1580Claude Code melewati sweep berbasis usia dalam kasus-kasus ini:

1565 1581 

1566* **Mode bare**: saat Anda menjalankan `claude -p` dengan [`--bare`](/docs/id/headless#start-faster-with-bare-mode), Claude Code tidak menjalankan sweep dalam sesi itu.1582* **Mode bare**: saat Anda menjalankan `claude -p` dengan [`--bare`](/docs/id/headless#start-faster-with-bare-mode), Claude Code tidak menjalankan sweep dalam sesi itu.

1567* **Sweep dijeda**: jika Claude Code tidak dapat dengan aman menentukan periode retensi, sweep pembersihan retensi dijeda; acara [`retention_sweep`](/docs/id/monitoring-usage#retention-sweep-event) mencantumkan setiap konfigurasi yang menjeda. Saat penyebabnya adalah file pengaturan yang tidak dapat dibaca atau diuraikan, atau kesalahan pengaturan dengan `cleanupPeriodDays` atau `desktopSessionCleanupPeriodDays` yang secara eksplisit ditetapkan, Claude Code juga menampilkan peringatan di `/status` sampai Anda memperbaiki kesalahan pengaturan. Saat [pengaturan terkelola](/docs/id/server-managed-settings) menyediakan `cleanupPeriodDays`, Claude Code menjalankan sweep pada nilai terkelola dalam kedua kasus.1583* **Sweep dijeda**: jika Claude Code tidak dapat dengan aman menentukan periode retensi, itu menjeda sweep pembersihan retensi; acara [`retention_sweep`](/docs/id/monitoring-usage#retention-sweep-event) mencantumkan setiap konfigurasi yang menjeda itu. Saat penyebabnya adalah file pengaturan yang tidak dapat dibaca atau diuraikan, atau kesalahan pengaturan dengan `cleanupPeriodDays` atau `desktopSessionCleanupPeriodDays` yang secara eksplisit ditetapkan, Claude Code juga menampilkan peringatan di `/status` sampai Anda memperbaiki kesalahan pengaturan. Saat [pengaturan terkelola](/docs/id/server-managed-settings) menyediakan `cleanupPeriodDays`, Claude Code menjalankan sweep pada nilai terkelola dalam kedua kasus.

1568 1584 

1569<h3 id="kept-until-you-delete-them">1585<h3 id="kept-until-you-delete-them">

1570 Disimpan sampai Anda menghapusnya1586 Disimpan sampai Anda menghapusnya

1571</h3>1587</h3>

1572 1588 

1573Sweep pembersihan retensi tidak menghapus jalur di bawah ini. Claude Code menyimpannya sampai Anda menghapusnya, terlepas dari dua cache yang dihapusnya saat Anda logout.1589Sweep pembersihan retensi tidak menghapus jalur di bawah ini. Claude Code menyimpannya sampai Anda menghapusnya, terlepas dari dua cache yang dihapusnya saat Anda keluar.

1574 1590 

1575| Jalur di bawah `~/.claude/` | Konten |1591| Jalur di bawah `~/.claude/` | Konten |

1576| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1592| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1577| `history.jsonl` | Setiap prompt yang Anda ketik, dengan stempel waktu dan jalur proyek. Digunakan untuk penarikan panah atas, pencarian riwayat `Ctrl+R`, dan penyelesaian perintah shell `!`. |1593| `history.jsonl` | Setiap prompt yang Anda ketik, dengan stempel waktu dan jalur proyek. Digunakan untuk penarikan panah atas, pencarian riwayat `Ctrl+R`, dan penyelesaian perintah shell `!`. |

1578| `stats-cache.json` | Hitungan token dan biaya agregat yang ditampilkan oleh `/usage` |1594| `stats-cache.json` | Hitungan token dan biaya agregat yang ditampilkan oleh `/usage` |

1579| `remote-settings.json` | Salinan cache dari [pengaturan terkelola server](/docs/id/server-managed-settings) untuk organisasi Anda, atau `{}` saat organisasi Anda belum mengonfigurasi apa pun. Hanya ada saat sesi [mengambilnya](/docs/id/server-managed-settings#platform-availability). Claude Code memeriksa pembaruan saat startup dan setiap jam selama sesi. Claude Code menghapusnya saat Anda logout. |1595| `remote-settings.json` | Salinan cache dari [pengaturan terkelola server](/docs/id/server-managed-settings) untuk organisasi Anda, atau `{}` saat organisasi Anda belum mengonfigurasi apa pun. Hanya ada saat sesi [mengambilnya](/docs/id/server-managed-settings#platform-availability). Claude Code memeriksa pembaruan saat startup dan setiap jam selama sesi. Claude Code menghapusnya saat Anda keluar. |

1580| `cache/changelog.md` | Salinan cache dari changelog Claude Code, ditampilkan oleh `/release-notes`. Disegarkan di latar belakang. |1596| `cache/changelog.md` | Salinan cache dari changelog Claude Code, ditampilkan oleh `/release-notes`. Disegarkan di latar belakang. |

1581| `policy-limits.json` | Pengaturan kebijakan fitur cache untuk organisasi Anda. Hanya ada untuk beberapa jenis akun. Disegarkan secara otomatis. Sidecar `policy-limits.json.stamp.json` mencatat akun atau kunci API mana yang dimiliki cache. Claude Code menghapus kedua file saat Anda logout. |1597| `policy-limits.json` | Pengaturan kebijakan fitur cache untuk organisasi Anda. Hanya ada untuk beberapa jenis akun. Disegarkan secara otomatis. Sidecar `policy-limits.json.stamp.json` mencatat akun atau kunci API mana yang dimiliki cache. Claude Code menghapus kedua file saat Anda keluar. |

1582 1598 

1583<span id="state-files-to-keep" />1599<span id="state-files-to-keep" />

1584 1600 


1596 1612 

1597* Turunkan `cleanupPeriodDays` untuk mempersingkat berapa lama Claude Code menyimpan transkrip1613* Turunkan `cleanupPeriodDays` untuk mempersingkat berapa lama Claude Code menyimpan transkrip

1598* Atur [`desktopSessionCleanupPeriodDays`](/docs/id/settings-reference#desktopsessioncleanupperioddays) untuk memberikan transkrip Claude Desktop dan Cowork batas usia juga1614* Atur [`desktopSessionCleanupPeriodDays`](/docs/id/settings-reference#desktopsessioncleanupperioddays) untuk memberikan transkrip Claude Desktop dan Cowork batas usia juga

1599* Atur variabel lingkungan [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/id/env-vars) untuk melewati penulisan transkrip dan riwayat prompt dalam mode apa pun. Dalam mode non-interaktif, Anda dapat meneruskan `--no-session-persistence` bersama `-p`, atau atur `persistSession: false` di TypeScript Agent SDK; Python SDK tidak memiliki opsi setara.1615* Atur variabel lingkungan [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/id/env-vars) untuk melewati penulisan transkrip dan riwayat prompt dalam mode apa pun. Dalam mode non-interaktif, Anda dapat sebagai gantinya meneruskan `--no-session-persistence` bersama `-p`, atau atur `persistSession: false` dalam Agent SDK TypeScript; SDK Python tidak memiliki opsi setara.

1600* Gunakan [aturan izin](/docs/id/permissions) untuk menolak pembacaan file kredensial1616* Gunakan [aturan izin](/docs/id/permissions) untuk menolak pembacaan file kredensial

1601 1617 

1602<h3 id="clear-local-data">1618<h3 id="clear-local-data">


1610* Baris prompt yang cocok di `history.jsonl`1626* Baris prompt yang cocok di `history.jsonl`

1611* Entri proyek di `~/.claude.json`1627* Entri proyek di `~/.claude.json`

1612 1628 

1629Gambar yang Anda tempel atau lampirkan dalam sesi proyek disimpan di bawah direktori temp Claude Code daripada `~/.claude`, jadi purge tidak menghapusnya. [Sweep retensi](#cleaned-up-automatically) menghapusnya setelah mereka lebih tua dari `cleanupPeriodDays`.

1630 

1613Perintah mencetak rencana penghapusan lengkap dan meminta konfirmasi sebelum menghapus apa pun.1631Perintah mencetak rencana penghapusan lengkap dan meminta konfirmasi sebelum menghapus apa pun.

1614 1632 

1615Contoh di bawah menggunakan `~/work/my-repo` sebagai placeholder. Gantilah dengan jalur ke proyek Anda. Jika tidak ada status yang cocok dengan jalur, perintah mencetak kesalahan dan keluar dengan status 1.1633Contoh di bawah menggunakan `~/work/my-repo` sebagai placeholder. Gantilah dengan jalur ke proyek Anda. Jika tidak ada status yang cocok dengan jalur, perintah mencetak kesalahan dan keluar dengan status 1.


1620claude project purge ~/work/my-repo --dry-run1638claude project purge ~/work/my-repo --dry-run

1621```1639```

1622 1640 

1623Rencana mencantumkan setiap item yang cocok dan alasan dimasukkan:1641Rencana mencantumkan setiap item yang cocok dan alasan dimasukkannya:

1624 1642 

1625```text theme={null}1643```text theme={null}

1626Purge plan for /home/user/work/my-repo:1644Purge plan for /home/user/work/my-repo:


1645 1663 

1646Perintah mencetak rencana yang sama, kemudian menanyakan `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` dan menghapus hanya jika Anda menjawab `y`.1664Perintah mencetak rencana yang sama, kemudian menanyakan `Delete 3 item(s) for /home/user/work/my-repo? This cannot be undone. [y/N]` dan menghapus hanya jika Anda menjawab `y`.

1647 1665 

1648Hilangkan jalur untuk memilih proyek dari daftar interaktif.1666Abaikan jalur untuk memilih proyek dari daftar interaktif.

1649 1667 

1650Lewati prompt konfirmasi untuk digunakan dalam skrip:1668Lewati prompt konfirmasi untuk digunakan dalam skrip:

1651 1669 


1653claude project purge ~/work/my-repo --yes1671claude project purge ~/work/my-repo --yes

1654```1672```

1655 1673 

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

1657 1675 

1658Perintah membiarkan `shell-snapshots/` dan `backups/` sendirian karena tidak termasuk dalam cakupan proyek, dan memperingatkan tentang mereka dalam output rencana.1676Perintah membiarkan `shell-snapshots/` dan `backups/` sendirian karena tidak termasuk dalam cakupan proyek, dan memperingatkan tentang mereka dalam output rencana.

1659 1677 

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

1661 1679 

1662| Hapus | Anda kehilangan |1680| Hapus | Anda kehilangan |

1663| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |1681| -------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1664| `~/.claude/projects/` | Lanjutkan, lanjutkan, dan putar ulang untuk sesi masa lalu, dan memori otomatis untuk setiap proyek |1682| `~/.claude/projects/` | Lanjutkan, lanjutkan, dan putar ulang untuk sesi masa lalu, dan memori otomatis untuk setiap proyek |

1665| `~/.claude/history.jsonl` | Penarikan prompt panah atas, pencarian riwayat `Ctrl+R`, dan penyelesaian perintah shell `!` |1683| `~/.claude/history.jsonl` | Penarikan prompt panah atas, pencarian riwayat `Ctrl+R`, dan penyelesaian perintah shell `!` |

1666| `~/.claude/paste-cache/` | Teks yang ditempel dalam prompt yang diingat kembali; lihat [tempel konten besar](/docs/id/terminal-config#paste-large-content) |1684| `~/.claude/paste-cache/` | Teks yang ditempel dalam prompt yang diingat kembali; lihat [tempel konten besar](/docs/id/terminal-config#paste-large-content) |


1675| `~/.claude/policy-limits.json` | Tidak ada. Disegarkan secara otomatis. |1693| `~/.claude/policy-limits.json` | Tidak ada. Disegarkan secara otomatis. |

1676| `~/.claude/tasks/` | Daftar tugas yang akan diambil sesi yang dilanjutkan |1694| `~/.claude/tasks/` | Daftar tugas yang akan diambil sesi yang dilanjutkan |

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

1678| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/image-cache/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Tidak ada yang menghadap pengguna |1696| `~/.claude/debug/`, `~/.claude/plans/`, `~/.claude/session-env/`, `~/.claude/shell-snapshots/`, `~/.claude/backups/` | Tidak ada yang menghadap pengguna |

1679| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/` | Tidak ada. Direktori warisan tidak ditulis oleh versi saat ini. |1697| `~/.claude/todos/`, `~/.claude/statsig/`, `~/.claude/logs/`, `~/.claude/image-cache/` | Tidak ada. Direktori warisan tidak ditulis oleh versi saat ini. |

1680 1698 

1681Jangan hapus `~/.claude.json`, `~/.claude/settings.json`, atau `~/.claude/plugins/`: mereka menyimpan auth, preferensi, dan plugin terinstal Anda.1699Jangan hapus `~/.claude.json`, `~/.claude/settings.json`, atau `~/.claude/plugins/`: file-file itu menyimpan auth, preferensi, dan plugin terinstal Anda.

1682 1700 

1683<h2 id="related-resources">1701<h2 id="related-resources">

1684 Sumber daya terkait1702 Sumber daya terkait

Details

284 284 

285Claude Platform on AWS menggunakan ID model yang sama seperti Claude API langsung.285Claude Platform on AWS menggunakan ID model yang sama seperti Claude API langsung.

286 286 

287Alias default `fable`, `opus`, `sonnet`, dan `haiku` diselesaikan ke default bawaan Claude Code untuk Claude Platform on AWS, yang dapat tertinggal dari rilis terbaru. Tanpa `ANTHROPIC_DEFAULT_OPUS_MODEL`, alias `opus` diselesaikan ke Opus 5. Sebelum v2.1.219, alias tersebut diselesaikan ke Opus 4.8, dan sebelum v2.1.207 ke Opus 4.7.287Alias default `fable`, `opus`, `sonnet`, dan `haiku` diselesaikan ke default bawaan Claude Code untuk Claude Platform on AWS, yang dapat tertinggal dari rilis terbaru. Tanpa `ANTHROPIC_DEFAULT_OPUS_MODEL`, alias `opus` diselesaikan ke Opus 5.5. Sebelum v2.1.280, alias tersebut diselesaikan ke Opus 5 dari v2.1.219, ke Opus 4.8 dari v2.1.207, dan ke Opus 4.7 sebelum itu.

288 288 

289Jika Anda menerapkan Claude Code ke tim, sematkan ID model secara eksplisit sehingga rilis baru tidak memindahkan semua orang sekaligus:289Jika Anda menerapkan Claude Code ke tim, sematkan ID model secara eksplisit sehingga rilis baru tidak memindahkan semua orang sekaligus:

290 290 

Details

56* **Threads**: para pekerja. Masing-masing adalah [sesi cloud](/docs/id/claude-code-on-the-web) terpisah dengan jendela konteks sendiri yang melakukan satu bagian pekerjaan di cabang sendiri, membuka pull request ketika pekerjaan memanggilnya, dan melaporkan kembali ke percakapan ketika selesai.56* **Threads**: para pekerja. Masing-masing adalah [sesi cloud](/docs/id/claude-code-on-the-web) terpisah dengan jendela konteks sendiri yang melakukan satu bagian pekerjaan di cabang sendiri, membuka pull request ketika pekerjaan memanggilnya, dan melaporkan kembali ke percakapan ketika selesai.

57* **Apa yang dimulai setiap thread dengan**:57* **Apa yang dimulai setiap thread dengan**:

58 * Repositori dan file project, ditambah [instruksi dan memori](#give-a-project-standing-context)58 * Repositori dan file project, ditambah [instruksi dan memori](#give-a-project-standing-context)

59 * `CLAUDE.md`, skills, dan plugins di [setiap repositori project](#what-threads-pick-up-from-your-repositories), dan di project dengan satu repositori, aturan izin dan hooks repositori itu juga59 * `CLAUDE.md` dan skills di [setiap repositori project](#what-threads-pick-up-from-your-repositories), dan di project dengan satu repositori, aturan izin dan hooks repositori itu juga

60 * [Connectors](#get-skills-plugins-connectors-and-tools-into-threads) di akun claude.ai Anda60 * [Connectors](#get-skills-plugins-connectors-and-tools-into-threads) di akun claude.ai Anda

61 * [Cloud environment](#choose-an-environment-for-threads) yang menetapkan akses jaringan, variabel lingkungan, kredensial API, dan alat yang terinstal61 * [Cloud environment](#choose-an-environment-for-threads) yang menetapkan akses jaringan, variabel lingkungan, kredensial API, dan alat yang terinstal

62* **Pane Overview**: di mana Anda [melihat semua thread sekaligus](#see-what-needs-you-in-overview) dan mana yang membutuhkan Anda. Tab lainnya adalah **Library** untuk file yang Anda tambahkan dan file yang dihasilkan thread, **Pull requests** untuk yang dibuka thread, dan **Routines** untuk pekerjaan terjadwal di project.62* **Pane Overview**: di mana Anda [melihat semua thread sekaligus](#see-what-needs-you-in-overview) dan mana yang membutuhkan Anda. Tab lainnya adalah **Library** untuk file yang Anda tambahkan dan file yang dihasilkan thread, **Pull requests** untuk yang dibuka thread, dan **Routines** untuk pekerjaan terjadwal di project.


333 Apa yang diambil thread dari repositori Anda333 Apa yang diambil thread dari repositori Anda

334</h3>334</h3>

335 335 

336Setiap thread mengkloning setiap repositori dalam project dan memuat `CLAUDE.md`, skills, dan plugins dari semuanya. Permission rules, hooks, dan `env` hanya datang dari `.claude/settings.json` di direktori tempat thread dimulai: di dalam repositori ketika project memiliki satu, dan di atas klon ketika memiliki beberapa, di mana file repositori tidak dibaca untuk mereka.336Setiap thread mengkloning setiap repositori dalam project dan memuat `CLAUDE.md` dan skills dari semuanya. Permission rules, hooks, dan `env` hanya datang dari `.claude/settings.json` di direktori tempat thread dimulai: di dalam repositori ketika project memiliki satu, dan di atas klon ketika memiliki beberapa, di mana file repositori tidak dibaca untuk mereka.

337 337 

338| Di setiap repositori | Satu repositori | Beberapa repositori |338| Di setiap repositori | Satu repositori | Beberapa repositori |

339| :------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ |339| :------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------- |

340| `CLAUDE.md` | Dimuat ketika thread dimulai | Dimuat dari setiap repositori ketika thread dimulai |340| `CLAUDE.md` | Dimuat ketika thread dimulai | Dimuat dari setiap repositori ketika thread dimulai |

341| Skills, agents, dan commands di bawah `.claude/` | Dimuat | Dimuat dari setiap repositori |341| Skills, agents, dan commands di bawah `.claude/` | Dimuat | Dimuat dari setiap repositori |

342| Plugins yang diaktifkan di `.claude/settings.json` | Dimuat | Dimuat dari setiap repositori. Jika dua repositori tidak setuju tentang plugin, atur di **Project settings > Plugins**, yang mengambil alih |342| Plugins yang diaktifkan di `.claude/settings.json` | Tidak dimuat. Tambahkan plugin di **Project settings > Plugins** sebagai gantinya | Tidak dimuat. Tambahkan plugin di **Project settings > Plugins** sebagai gantinya |

343| Permission rules, hooks, dan `env` yang didefinisikan di `.claude/settings.json` | Berlaku untuk thread, kecuali kunci `env` yang [tidak dihormati sesi cloud apa pun](/docs/id/cloud-environments#what-carries-over-from-your-setup) | Tidak berlaku |343| Permission rules, hooks, dan `env` yang didefinisikan di `.claude/settings.json` | Berlaku untuk thread, kecuali kunci `env` yang [tidak dihormati sesi cloud apa pun](/docs/id/cloud-environments#what-carries-over-from-your-setup) | Tidak berlaku |

344 344 

345Dalam project dengan beberapa repositori, setiap klon dilampirkan ke thread sebagai [direktori tambahan](/docs/id/memory#load-from-additional-directories) dengan pemuatan `CLAUDE.md` diaktifkan, itulah mengapa `CLAUDE.md` dan skills setiap repositori dimuat saat mulai meskipun thread dimulai di atasnya. Bagaimanapun, hooks yang disediakan plugin yang diaktifkan masih berjalan, karena plugins dimuat dari setiap repositori. Dalam project dengan beberapa repositori, masukkan aturan berdiri di project instructions dan berikan thread variabel lingkungan melalui [cloud environment](#choose-an-environment-for-threads).345Dalam project dengan beberapa repositori, setiap klon dilampirkan ke thread sebagai [direktori tambahan](/docs/id/memory#load-from-additional-directories) dengan pemuatan `CLAUDE.md` diaktifkan, itulah mengapa `CLAUDE.md` dan skills setiap repositori dimuat saat mulai meskipun thread dimulai di atasnya. Dalam project dengan beberapa repositori, masukkan aturan berdiri di project instructions dan berikan thread variabel lingkungan melalui [cloud environment](#choose-an-environment-for-threads).

346 346 

347<h3 id="choose-an-environment-for-threads">347<h3 id="choose-an-environment-for-threads">

348 Pilih environment untuk thread348 Pilih environment untuk thread


359Thread adalah sesi cloud, jadi mereka tidak memiliki skills, server MCP, plugins, dan tools yang diinstal hanya di mesin Anda. Untuk membuat masing-masing tersedia untuk thread:359Thread adalah sesi cloud, jadi mereka tidak memiliki skills, server MCP, plugins, dan tools yang diinstal hanya di mesin Anda. Untuk membuat masing-masing tersedia untuk thread:

360 360 

361* Skills, subagents, dan commands: commit ke repositori yang Anda tambahkan ke project, misalnya skill di `.claude/skills/<skill-name>/SKILL.md`. Setiap thread mengkloning setiap repositori dalam project dan memuat `.claude/skills/`, `.claude/agents/`, dan `.claude/commands/` dari masing-masing, jadi skill yang dicommit ke satu repositori tersedia di setiap thread baru. Thread juga memuat skills yang Anda aktifkan untuk akun claude.ai Anda.361* Skills, subagents, dan commands: commit ke repositori yang Anda tambahkan ke project, misalnya skill di `.claude/skills/<skill-name>/SKILL.md`. Setiap thread mengkloning setiap repositori dalam project dan memuat `.claude/skills/`, `.claude/agents/`, dan `.claude/commands/` dari masing-masing, jadi skill yang dicommit ke satu repositori tersedia di setiap thread baru. Thread juga memuat skills yang Anda aktifkan untuk akun claude.ai Anda.

362* Plugins: tambahkan di **Project settings > Plugins**; mereka dimuat ke setiap thread baru. Plugins yang dideklarasikan repositori di `.claude/settings.json`-nya juga dimuat; lihat [Apa yang dibawa dari setup Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup).362* Plugins: tambahkan di **Project settings > Plugins**; mereka dimuat ke setiap thread baru. Plugins yang dideklarasikan repositori di `.claude/settings.json`-nya [tidak dimuat dalam threads](/docs/id/cloud-environments#what-carries-over-from-your-setup), karena threads adalah sesi cloud.

363* Server MCP: thread mendapatkan alat MCP mereka dari connectors di akun claude.ai Anda, yang merupakan server MCP yang Anda hubungkan sekali di [claude.ai/customize/connectors](https://claude.ai/customize/connectors) atau melalui link **Manage connectors** di **Project settings > Environment**. Setiap thread dapat menggunakan semuanya tanpa setup per-project. Percakapan project itu sendiri tidak memiliki connectors, jadi kirim pekerjaan yang membutuhkan satu sebagai tugas untuk thread. Dalam project dengan satu repositori, thread juga memuat server MCP dari [`.mcp.json`](/docs/id/cloud-environments#what-carries-over-from-your-setup) repositori itu. [Bagaimana connectors mencapai Claude Code](/docs/id/mcp#how-connectors-reach-claude-code) mencantumkan aturan untuk sesi cloud dan pengaturan yang mematikan connectors.363* Server MCP: thread mendapatkan alat MCP mereka dari connectors di akun claude.ai Anda, yang merupakan server MCP yang Anda hubungkan sekali di [claude.ai/customize/connectors](https://claude.ai/customize/connectors) atau melalui link **Manage connectors** di **Project settings > Environment**. Setiap thread dapat menggunakan semuanya tanpa setup per-project. Percakapan project itu sendiri tidak memiliki connectors, jadi kirim pekerjaan yang membutuhkan satu sebagai tugas untuk thread. Dalam project dengan satu repositori, thread juga memuat server MCP dari [`.mcp.json`](/docs/id/cloud-environments#what-carries-over-from-your-setup) repositori itu. [Bagaimana connectors mencapai Claude Code](/docs/id/mcp#how-connectors-reach-claude-code) mencantumkan aturan untuk sesi cloud dan pengaturan yang mematikan connectors.

364* Command-line tools dan packages: instal di [setup script](/docs/id/cloud-environments#setup-scripts) environment.364* Command-line tools dan packages: instal di [setup script](/docs/id/cloud-environments#setup-scripts) environment.

365 365 

Details

60Sesuaikan perilaku Claude Code dengan bendera baris perintah ini. `claude --help` tidak mencantumkan setiap bendera, jadi ketiadaan bendera dari `--help` tidak berarti bendera tersebut tidak tersedia.60Sesuaikan perilaku Claude Code dengan bendera baris perintah ini. `claude --help` tidak mencantumkan setiap bendera, jadi ketiadaan bendera dari `--help` tidak berarti bendera tersebut tidak tersedia.

61 61 

62| Bendera | Deskripsi | Contoh |62| Bendera | Deskripsi | Contoh |

63| :---------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |63| :---------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- |

64| `--add-dir` | Tambahkan direktori kerja tambahan untuk Claude membaca dan mengedit file. Memberikan akses file; Claude Code [tidak menemukan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) sebagian besar konfigurasi `.claude/` dari direktori ini. Memvalidasi bahwa setiap jalur ada sebagai direktori. Anda tidak dapat menambahkan sebagian besar [jalur jaringan](/docs/id/errors#working-directory-is-a-network-path), seperti `\\server\share`. Untuk mempertahankan direktori ini di seluruh sesi, atur [`permissions.additionalDirectories`](/docs/id/settings-reference#permissions-additionaldirectories) dalam pengaturan | `claude --add-dir ../apps ../lib` |64| `--add-dir` | Tambahkan direktori kerja tambahan untuk Claude membaca dan mengedit file. Memberikan akses file; Claude Code [tidak menemukan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) sebagian besar konfigurasi `.claude/` dari direktori ini. Memvalidasi bahwa setiap jalur ada sebagai direktori. Anda tidak dapat menambahkan sebagian besar [jalur jaringan](/docs/id/errors#working-directory-is-a-network-path), seperti `\\server\share`. Untuk mempertahankan direktori ini di seluruh sesi, atur [`permissions.additionalDirectories`](/docs/id/settings-reference#permissions-additionaldirectories) dalam pengaturan | `claude --add-dir ../apps ../lib` |

65| `--advisor <model>` | Aktifkan [alat penasihat](/docs/id/advisor) sisi server untuk sesi ini dengan alias model, `fable`, `opus`, atau `sonnet`, atau ID model lengkap. Mengambil alih pengaturan `advisorModel` untuk sesi. `fable` memerlukan [akses Fable](/docs/id/advisor#choose-an-advisor-model) | `claude --advisor opus` |65| `--advisor <model>` | Aktifkan [alat penasihat](/docs/id/advisor) sisi server untuk sesi ini dengan alias model, `fable`, `opus`, atau `sonnet`, atau ID model lengkap. Mengambil alih pengaturan `advisorModel` untuk sesi. `fable` memerlukan [akses Fable](/docs/id/advisor#choose-an-advisor-model) | `claude --advisor opus` |

66| `--agent` | Tentukan agen untuk sesi saat ini (menimpa pengaturan `agent`) | `claude --agent my-custom-agent` |66| `--agent` | Tentukan agen untuk sesi saat ini (menimpa pengaturan `agent`) | `claude --agent my-custom-agent` |


93| `--exec` | Jalankan perintah shell sebagai pekerjaan latar belakang yang didukung PTY alih-alih memulai sesi Claude. Gunakan dengan `--bg` untuk meluncurkan dari shell | `claude --bg --exec 'pytest -x'` |93| `--exec` | Jalankan perintah shell sebagai pekerjaan latar belakang yang didukung PTY alih-alih memulai sesi Claude. Gunakan dengan `--bg` untuk meluncurkan dari shell | `claude --bg --exec 'pytest -x'` |

94| `--fallback-model` | Aktifkan fallback otomatis ke model yang ditentukan ketika model utama kelebihan beban atau tidak tersedia, misalnya model yang sudah pensiun. Menerima daftar yang dipisahkan koma yang dicoba secara berurutan. Lihat [Rantai model fallback](/docs/id/model-config#fallback-model-chains). Untuk mempertahankan rantai di seluruh sesi, gunakan pengaturan [`fallbackModel`](/docs/id/settings-reference#fallbackmodel), yang bendera ini timpa | `claude --fallback-model sonnet,haiku` |94| `--fallback-model` | Aktifkan fallback otomatis ke model yang ditentukan ketika model utama kelebihan beban atau tidak tersedia, misalnya model yang sudah pensiun. Menerima daftar yang dipisahkan koma yang dicoba secara berurutan. Lihat [Rantai model fallback](/docs/id/model-config#fallback-model-chains). Untuk mempertahankan rantai di seluruh sesi, gunakan pengaturan [`fallbackModel`](/docs/id/settings-reference#fallbackmodel), yang bendera ini timpa | `claude --fallback-model sonnet,haiku` |

95| `--fork-session` | Saat melanjutkan, buat ID sesi baru alih-alih menggunakan kembali yang asli (gunakan dengan `--resume` atau `--continue`) | `claude --resume abc123 --fork-session` |95| `--fork-session` | Saat melanjutkan, buat ID sesi baru alih-alih menggunakan kembali yang asli (gunakan dengan `--resume` atau `--continue`) | `claude --resume abc123 --fork-session` |

96| `--forward-subagent-text` | Emit [subagen](/docs/id/sub-agents) blok teks dan pemikiran dalam aliran output sebagai pesan `assistant` dan `user` dengan `parent_tool_use_id` diatur, sehingga Anda dapat merekonstruksi transkrip setiap subagen. Tanpa bendera ini, Claude Code menghilangkan teks dan blok pemikiran subagen yang berjalan di [foreground](/docs/id/sub-agents#run-subagents-in-foreground-or-background). Memerlukan `--print` dan `--output-format stream-json`. Claude Code juga meneruskan pesan dari [subagen bersarang](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents), menetapkan `parent_tool_use_id` ke ID panggilan alat Agent yang menelurkan masing-masing; ini memerlukan Claude Code v2.1.219 atau lebih baru. Variabel lingkungan [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/id/env-vars) mengaktifkan perilaku yang sama. Memerlukan Claude Code v2.1.211 atau lebih baru | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |96| `--forward-subagent-text` | Emit [subagen](/docs/id/sub-agents) blok teks dan pemikiran dalam aliran output sebagai pesan `assistant` dan `user` dengan `parent_tool_use_id` diatur, sehingga Anda dapat merekonstruksi transkrip setiap subagen. Tanpa bendera ini, Claude Code menghilangkan teks dan blok pemikiran subagen yang berjalan di [foreground](/docs/id/sub-agents#run-subagents-in-foreground-or-background). Memerlukan `--print` dan `--output-format stream-json`. Claude Code juga meneruskan pesan dari [subagen bersarang](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents), menetapkan `parent_tool_use_id` ke ID panggilan alat Agent atau Skill yang menelurkan masing-masing; ini memerlukan Claude Code v2.1.219 atau lebih baru, dan pesan subagen yang skill yang bercabang telurkan, dan skill bercabang bersarang, memerlukan v2.1.275 atau lebih baru. Variabel lingkungan [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/id/env-vars) mengaktifkan perilaku yang sama. Memerlukan Claude Code v2.1.211 atau lebih baru | `claude -p --output-format stream-json --verbose --forward-subagent-text "query"` |

97| `--from-pr` | Buka pemilih sesi yang disaring ke sesi yang ditautkan ke permintaan tarik tertentu. Menerima nomor PR, URL PR GitHub atau GitHub Enterprise, URL permintaan penggabungan GitLab, atau URL permintaan tarik Bitbucket. Sesi ditautkan secara otomatis ketika Claude membuat permintaan tarik | `claude --from-pr 123` |97| `--from-pr` | Buka pemilih sesi yang disaring ke sesi yang ditautkan ke permintaan tarik tertentu. Menerima nomor PR, URL PR GitHub atau GitHub Enterprise, URL permintaan penggabungan GitLab, atau URL permintaan tarik Bitbucket. Sesi ditautkan secara otomatis ketika Claude membuat permintaan tarik | `claude --from-pr 123` |

98| `--ide` | Terhubung secara otomatis ke IDE saat startup jika tepat satu IDE yang valid tersedia | `claude --ide` |98| `--ide` | Terhubung secara otomatis ke IDE saat startup jika tepat satu IDE yang valid tersedia | `claude --ide` |

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


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

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

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

106| `--max-budget-usd` | Jumlah dolar maksimum untuk dihabiskan pada panggilan API sebelum berhenti (mode cetak saja). Pengeluaran dari [subagen](/docs/id/sub-agents) dihitung menuju batas. Setelah pengeluaran mencapai batas, menelurkan subagen lain gagal dengan `Budget limit reached`, dan Claude Code menghentikan subagen latar belakang yang masih berjalan; perilaku penegakan batas memerlukan Claude Code v2.1.217 atau lebih baru | `claude -p --max-budget-usd 5.00 "query"` |106| `--max-budget-usd` | Jumlah dolar maksimum untuk dihabiskan pada panggilan API sebelum berhenti (mode cetak saja). Pengeluaran dari [subagen](/docs/id/sub-agents) dihitung menuju batas. Ketika Anda kembali ke percakapan dengan `--continue` atau `--resume`, total [dipulihkan dari jalankan sebelumnya](/docs/id/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls) tidak dihitung menuju batasnya. Setelah pengeluaran mencapai batas, menelurkan subagen lain gagal dengan `Budget limit reached`, dan Claude Code menghentikan subagen latar belakang yang masih berjalan; perilaku penegakan batas memerlukan Claude Code v2.1.217 atau lebih baru | `claude -p --max-budget-usd 5.00 "query"` |

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

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

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


157 157 

158`--system-prompt` dan `--system-prompt-file` saling eksklusif. Bendera append dapat digabungkan dengan bendera penggantian apa pun.158`--system-prompt` dan `--system-prompt-file` saling eksklusif. Bendera append dapat digabungkan dengan bendera penggantian apa pun.

159 159 

160Ketika teks penggantian menggabungkan instruksi yang sama pada setiap jalankan dengan konteks yang berubah per jalankan, tambahkan baris yang berisi hanya `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` antara instruksi dan konteks. Claude Code membagi prompt pada baris pertama seperti itu dan menghapus baris itu, jadi bagian di atasnya tetap di-cache sementara bagian di bawahnya berubah. Memerlukan Claude Code v2.1.275 atau lebih baru. [Cache bagian statis dari prompt khusus](/docs/id/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt) mencantumkan konfigurasi di mana pemisahan berlaku.

161 

160Pilih berdasarkan apakah identitas default Claude Code masih sesuai dengan tugas Anda. Gunakan bendera append ketika Claude harus tetap menjadi asisten pengkodean yang juga mengikuti aturan tambahan Anda: instruksi per-invokasi, pemformatan output, atau konteks domain untuk skrip `-p`. Menambahkan mempertahankan panduan alat default, instruksi keselamatan, dan konvensi pengkodean, jadi Anda hanya menyediakan apa yang berbeda. Gunakan bendera penggantian ketika permukaan, identitas, atau model izin berbeda dari Claude Code, seperti agen non-pengkodean dalam pipeline yang tidak ada manusia yang menonton. Mengganti menghilangkan seluruh prompt default, termasuk panduan alat dan instruksi keselamatan, jadi Anda bertanggung jawab atas apa pun yang masih dibutuhkan tugas Anda.162Pilih berdasarkan apakah identitas default Claude Code masih sesuai dengan tugas Anda. Gunakan bendera append ketika Claude harus tetap menjadi asisten pengkodean yang juga mengikuti aturan tambahan Anda: instruksi per-invokasi, pemformatan output, atau konteks domain untuk skrip `-p`. Menambahkan mempertahankan panduan alat default, instruksi keselamatan, dan konvensi pengkodean, jadi Anda hanya menyediakan apa yang berbeda. Gunakan bendera penggantian ketika permukaan, identitas, atau model izin berbeda dari Claude Code, seperti agen non-pengkodean dalam pipeline yang tidak ada manusia yang menonton. Mengganti menghilangkan seluruh prompt default, termasuk panduan alat dan instruksi keselamatan, jadi Anda bertanggung jawab atas apa pun yang masih dibutuhkan tugas Anda.

161 163 

162Untuk persona persisten yang dapat Anda alihkan dan bagikan di seluruh proyek, gunakan [gaya output](/docs/id/output-styles). Untuk konvensi proyek yang Claude harus selalu ikuti, gunakan [CLAUDE.md](/docs/id/memory). Panduan [Agent SDK tentang prompt sistem](/docs/id/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) mencakup keputusan yang sama secara lebih mendalam.164Untuk persona persisten yang dapat Anda alihkan dan bagikan di seluruh proyek, gunakan [gaya output](/docs/id/output-styles). Untuk konvensi proyek yang Claude harus selalu ikuti, gunakan [CLAUDE.md](/docs/id/memory). Panduan [Agent SDK tentang prompt sistem](/docs/id/agent-sdk/modifying-system-prompts#decide-on-a-starting-point) mencakup keputusan yang sama secara lebih mendalam.

Details

300| Server MCP `.mcp.json` repo Anda | Ya, dalam sesi dengan satu repositori | Bagian dari klon, ditemukan dari direktori kerja sesi |300| Server MCP `.mcp.json` repo Anda | Ya, dalam sesi dengan satu repositori | Bagian dari klon, ditemukan dari direktori kerja sesi |

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

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

303| Plugin yang dideklarasikan di `.claude/settings.json` | Ya | Diinstal saat startup sesi dari [marketplace](/docs/id/plugin-marketplaces) yang Anda deklarasikan. Memerlukan akses jaringan untuk menjangkau sumber marketplace |303| Plugin dan marketplace yang dideklarasikan di `.claude/settings.json` repo Anda | Tidak | Sesi cloud tidak menginstal plugin yang dihidupkan repositori di bawah [`enabledPlugins`](/docs/id/settings-reference#enabledplugins), termasuk yang dari marketplace yang dicantumkan di bawah [`extraKnownMarketplaces`](/docs/id/settings-reference#extraknownmarketplaces). Aktifkan plugin untuk akun claude.ai Anda sebagai gantinya, sehingga Claude Code memuat sebagai [plugin yang disinkronkan](/docs/id/plugins-reference#synced-plugins) |

304| [Pengaturan yang dikelola server](/docs/id/server-managed-settings) organisasi Anda | Ya | Diambil dari server Anthropic ketika sesi dimulai. Lihat [Surface coverage](/docs/id/model-config#surface-coverage) untuk cara `availableModels` diterapkan di sesi cloud. Pengaturan yang digunakan di perangkat Anda melalui MDM atau file pengaturan yang dikelola tidak berlaku, karena sesi berjalan di VM yang dikelola Anthropic; di [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments), sesi juga membaca file pengaturan yang dikelola dalam gambar runner, per [cara Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) |304| [Pengaturan yang dikelola server](/docs/id/server-managed-settings) organisasi Anda | Ya | Diambil dari server Anthropic ketika sesi dimulai. Lihat [Surface coverage](/docs/id/model-config#surface-coverage) untuk cara `availableModels` diterapkan di sesi cloud. Pengaturan yang digunakan di perangkat Anda melalui MDM atau file pengaturan yang dikelola tidak berlaku, karena sesi berjalan di VM yang dikelola Anthropic; di [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments), sesi juga membaca file pengaturan yang dikelola dalam gambar runner, per [cara Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) |

305| `~/.claude/CLAUDE.md` pengguna Anda | Tidak | Hidup di mesin Anda, bukan di repo |305| `~/.claude/CLAUDE.md` pengguna Anda | Tidak | Hidup di mesin Anda, bukan di repo |

306| `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` pengguna Anda | Tidak | Hidup di mesin Anda, bukan di repo. Komitkan mereka ke direktori `.claude/` repo sebagai gantinya. Sesi cloud secara otomatis memuat skill yang Anda aktifkan di claude.ai |306| `~/.claude/skills/`, `~/.claude/agents/`, `~/.claude/commands/` pengguna Anda | Tidak | Hidup di mesin Anda, bukan di repo. Komitkan mereka ke direktori `.claude/` repo sebagai gantinya. Sesi cloud secara otomatis memuat skill yang Anda aktifkan di claude.ai |

307| Plugin yang hanya diaktifkan di pengaturan pengguna Anda | Tidak | `enabledPlugins` yang dibatasi pengguna hidup di `~/.claude/settings.json`. Deklarasikan mereka di `.claude/settings.json` repo sebagai gantinya, atau aktifkan untuk akun claude.ai Anda sehingga Claude Code memuat mereka sebagai [plugin yang disinkronkan](/docs/id/plugins-reference#synced-plugins) |307| Plugin yang hanya diaktifkan di pengaturan pengguna Anda | Tidak | `enabledPlugins` yang dibatasi pengguna hidup di `~/.claude/settings.json` di mesin Anda. Aktifkan untuk akun claude.ai Anda sebagai gantinya, sehingga Claude Code memuat sebagai [plugin yang disinkronkan](/docs/id/plugins-reference#synced-plugins) |

308| Server MCP yang Anda tambahkan dengan `claude mcp add` di cakupan lokal default atau cakupan pengguna | Tidak | Mereka menulis ke `~/.claude.json` di mesin Anda, bukan repo. Tambahkan server dengan `claude mcp add --scope project`, yang menulis [`.mcp.json`](/docs/id/mcp#project-scope) repo, dan komitkan file itu. Sesi dengan satu repositori memuat file itu |308| Server MCP yang Anda tambahkan dengan `claude mcp add` di cakupan lokal default atau cakupan pengguna | Tidak | Mereka menulis ke `~/.claude.json` di mesin Anda, bukan repo. Tambahkan server dengan `claude mcp add --scope project`, yang menulis [`.mcp.json`](/docs/id/mcp#project-scope) repo, dan komitkan file itu. Sesi dengan satu repositori memuat file itu |

309| Variabel transport di blok `env` `.claude/settings.json` repo Anda, seperti `NODE_EXTRA_CA_CERTS` dan [variabel sertifikat klien mTLS](/docs/id/network-config#mtls-authentication) | Tidak | Lingkungan hosting mengelola koneksi API sesi, jadi Claude Code mengabaikan kunci ini dan mencatat setiap kunci yang diabaikan di log debug sesi |309| Variabel transport di blok `env` `.claude/settings.json` repo Anda, seperti `NODE_EXTRA_CA_CERTS` dan [variabel sertifikat klien mTLS](/docs/id/network-config#mtls-authentication) | Tidak | Lingkungan hosting mengelola koneksi API sesi, jadi Claude Code mengabaikan kunci ini dan mencatat setiap kunci yang diabaikan di log debug sesi |

310| Token API dan kredensial untuk layanan yang dipanggil Claude | Pada paket Pro dan Max, sebagai [kredensial API](#add-api-credentials) | Anda menambahkan kunci sekali di lingkungan dan proxy agen melampirkannya ke permintaan untuk host yang Anda cantumkan. Kunci yang proxy agen [tidak dapat lampirkan](#requests-that-never-get-the-credential), atau kunci apa pun pada paket Team atau Enterprise, tetap dalam variabel lingkungan |310| Token API dan kredensial untuk layanan yang dipanggil Claude | Pada paket Pro dan Max, sebagai [kredensial API](#add-api-credentials) | Anda menambahkan kunci sekali di lingkungan dan proxy agen melampirkannya ke permintaan untuk host yang Anda cantumkan. Kunci yang proxy agen [tidak dapat lampirkan](#requests-that-never-get-the-credential), atau kunci apa pun pada paket Team atau Enterprise, tetap dalam variabel lingkungan |

commands.md +5 −4

Details

26 26 

27**Jalankan pekerjaan secara paralel.** Claude mendelegasikan tugas sampingan ke [subagents](/docs/id/sub-agents), dan `/tasks` mencantumkan pekerjaan latar belakang sesi saat ini, termasuk subagents yang telah selesai. `/background` melepaskan seluruh sesi untuk terus berjalan sebagai [background agent](/docs/id/agent-view) dan membebaskan terminal Anda. Untuk perubahan besar yang mencakup codebase, `/batch` menguraikannya menjadi unit independen dan menjalankan masing-masing di [worktree](/docs/id/worktrees) miliknya sendiri. Lihat [Run agents in parallel](/docs/id/agents) untuk cara pendekatan ini berhubungan.27**Jalankan pekerjaan secara paralel.** Claude mendelegasikan tugas sampingan ke [subagents](/docs/id/sub-agents), dan `/tasks` mencantumkan pekerjaan latar belakang sesi saat ini, termasuk subagents yang telah selesai. `/background` melepaskan seluruh sesi untuk terus berjalan sebagai [background agent](/docs/id/agent-view) dan membebaskan terminal Anda. Untuk perubahan besar yang mencakup codebase, `/batch` menguraikannya menjadi unit independen dan menjalankan masing-masing di [worktree](/docs/id/worktrees) miliknya sendiri. Lihat [Run agents in parallel](/docs/id/agents) untuk cara pendekatan ini berhubungan.

28 28 

29**Sebelum Anda mengirimkan.** `/diff` menunjukkan apa yang berubah. `/code-review` memeriksa diff saat ini untuk bug kebenaran dan pembersihan dan dapat menerapkan temuan dengan `--fix`; berikan nomor PR, seperti `/code-review high 1234`, untuk meninjau pull request sebagai gantinya. `/review` adalah alias. `/code-review ultra` menjalankan tinjauan multi-agen di cloud. `/security-review` memeriksa diff untuk kerentanan keamanan.29**Sebelum Anda mengirimkan.** `/diff` menunjukkan apa yang berubah. `/code-review` memeriksa diff saat ini untuk bug kebenaran dan dapat menerapkan temuan dengan `--fix`; berikan nomor PR, seperti `/code-review high 1234`, untuk meninjau pull request sebagai gantinya. `/review` adalah alias. `/code-review ultra` menjalankan tinjauan multi-agen di cloud. `/security-review` memeriksa diff untuk kerentanan keamanan.

30 30 

31**Antar sesi.** `/clear` memulai segar pada tugas baru sambil menyimpan memori proyek. `/resume` kembali ke percakapan sebelumnya, `/branch` membuat cabang percakapan saat ini untuk mencoba arah berbeda, dan `/fork` menyalinnya ke [background session](/docs/id/agent-view) baru. `/teleport` menarik sesi cloud ke terminal ini, dan `/remote-control` memungkinkan Anda melanjutkan sesi lokal ini dari perangkat lain.31**Antar sesi.** `/clear` memulai segar pada tugas baru sambil menyimpan memori proyek. `/resume` kembali ke percakapan sebelumnya, `/branch` membuat cabang percakapan saat ini untuk mencoba arah berbeda, dan `/fork` menyalinnya ke [background session](/docs/id/agent-view) baru. `/teleport` menarik sesi cloud ke terminal ini, dan `/remote-control` memungkinkan Anda melanjutkan sesi lokal ini dari perangkat lain.

32 32 


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

70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[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`. Jalankan `migrate` untuk memperbarui kode Claude API yang ada ke model yang lebih baru. Jalankan `upgrade` untuk memindahkan dependensi SDK Anthropic proyek Anda di seluruh versi utama, saat ini paket Python `anthropic` dari 0.x ke 1.x. Jalankan `managed-agents-onboard` untuk panduan yang membuat Managed Agent baru. Jalankan `prompt-audit` untuk menandai instruksi yang ditulis untuk model yang lebih lama dalam prompt, skill, dan deskripsi alat Anda dan usulkan perbaikan sebagai diff. Jalankan `cost-optimize` untuk memprofilkan ke mana pengeluaran Claude API proyek Anda pergi dan usulkan penghematan dari opsi seperti prompt caching, pemangkasan token input dan output yang tidak perlu, pemrosesan batch, upaya, dan pilihan model, satu perubahan pada satu waktu. Jalankan `build-eval` untuk membangun set eval untuk aplikasi bertenaga Claude Anda, dan `hillclimb` untuk secara iteratif meningkatkan aplikasi terhadap eval yang ada. Subperintah `prompt-audit` memerlukan Claude Code v2.1.221 atau lebih baru, `upgrade` memerlukan v2.1.236 atau lebih baru, `cost-optimize` memerlukan v2.1.247 atau lebih baru, dan `build-eval` dan `hillclimb` memerlukan v2.1.259 atau lebih baru |70| `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit\|cost-optimize\|build-eval\|hillclimb]` | **[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`. Jalankan `migrate` untuk memperbarui kode Claude API yang ada ke model yang lebih baru. Jalankan `upgrade` untuk memindahkan dependensi SDK Anthropic proyek Anda di seluruh versi utama, saat ini paket Python `anthropic` dari 0.x ke 1.x. Jalankan `managed-agents-onboard` untuk panduan yang membuat Managed Agent baru. Jalankan `prompt-audit` untuk menandai instruksi yang ditulis untuk model yang lebih lama dalam prompt, skill, dan deskripsi alat Anda dan usulkan perbaikan sebagai diff. Jalankan `cost-optimize` untuk memprofilkan ke mana pengeluaran Claude API proyek Anda pergi dan usulkan penghematan dari opsi seperti prompt caching, pemangkasan token input dan output yang tidak perlu, pemrosesan batch, upaya, dan pilihan model, satu perubahan pada satu waktu. Jalankan `build-eval` untuk membangun set eval untuk aplikasi bertenaga Claude Anda, dan `hillclimb` untuk secara iteratif meningkatkan aplikasi terhadap eval yang ada. Subperintah `prompt-audit` memerlukan Claude Code v2.1.221 atau lebih baru, `upgrade` memerlukan v2.1.236 atau lebih baru, `cost-optimize` memerlukan v2.1.247 atau lebih baru, dan `build-eval` dan `hillclimb` memerlukan v2.1.259 atau lebih baru |

71| `/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). Entri rewind memerlukan Claude Code v2.1.191 atau lebih baru. Alias: `/reset`, `/new` |71| `/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). Entri rewind memerlukan Claude Code v2.1.191 atau lebih baru. Alias: `/reset`, `/new` |

72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/id/skills#bundled-skills).** Tinjau diff saat ini, atau nomor PR, cabang, atau jalur yang Anda berikan, untuk bug kebenaran dan peluang pembersihan. Berikan `--fix` untuk menerapkan temuan, `--comment` untuk mempostingnya pada PR GitHub atau permintaan penggabungan GitLab, atau `ultra` untuk menjalankan [ulasan cloud](/docs/id/ultrareview) mendalam. Memposting ke permintaan penggabungan GitLab memerlukan Claude Code v2.1.257 atau lebih baru. Dengan `ultra` pada target PR `github.com`, berikan `--post` untuk pra-memilih [memposting temuan yang 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 upaya, penargetan, dan bagaimana hubungannya dengan `/simplify`. Alias: `/review` |72| `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/id/skills#bundled-skills).** Tinjau diff saat ini, atau nomor PR, cabang, atau jalur yang Anda berikan, untuk bug kebenaran. Tergantung pada model dan tingkat upaya Anda, ulasan juga mencakup peluang pembersihan. Berikan `--fix` untuk menerapkan temuan, `--comment` untuk mempostingnya pada PR GitHub atau permintaan penggabungan GitLab, atau `ultra` untuk menjalankan [ulasan cloud](/docs/id/ultrareview) mendalam. Memposting ke permintaan penggabungan GitLab memerlukan Claude Code v2.1.257 atau lebih baru. Dengan `ultra` pada target PR `github.com`, berikan `--post` untuk pra-memilih [memposting temuan yang 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 upaya, penargetan, dan bagaimana hubungannya dengan `/simplify`. Alias: `/review` |

73| `/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`); memerlukan Claude Code v2.1.205 atau lebih baru |73| `/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`); memerlukan Claude Code v2.1.205 atau lebih baru |

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

75| `/config [key=value ...]` | Buka antarmuka [Settings](/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 mematikannya. Jalankan `/config --help` untuk mencantumkan kunci yang diterimanya. Alias: `/settings` |75| `/config [key=value ...]` | Buka antarmuka [Settings](/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 mematikannya. Jalankan `/config --help` untuk mencantumkan kunci yang diterimanya. Alias: `/settings` |


85| `/desktop` | Lanjutkan sesi saat ini di aplikasi Claude Code Desktop. Memerlukan macOS atau Windows x64 dan langganan Claude. Alias: `/app` |85| `/desktop` | Lanjutkan sesi saat ini di aplikasi Claude Code Desktop. Memerlukan macOS atau Windows x64 dan langganan Claude. Alias: `/app` |

86| `/diff` | Tinjau perubahan di pohon kerja Anda, termasuk edit yang telah dilakukan Claude sejauh ini. Lihat [Tinjau perubahan dengan /diff](/docs/id/interactive-mode#review-changes-with-%2Fdiff) |86| `/diff` | Tinjau perubahan di pohon kerja Anda, termasuk edit yang telah dilakukan Claude sejauh ini. Lihat [Tinjau perubahan dengan /diff](/docs/id/interactive-mode#review-changes-with-%2Fdiff) |

87| `/doctor` | **[Skill](/docs/id/skills#bundled-skills).** Jalankan pemeriksaan pengaturan yang mendiagnosis masalah dan dapat memperbaikinya. Memeriksa kesehatan instalasi, termasuk instalasi duplikat atau sisa, masalah `PATH`, dan file pengaturan yang tidak dapat diuraikan. Menemukan skill yang tidak digunakan, server MCP, dan plugin versus biaya konteks mereka, menandai [hook](/docs/id/hooks) yang lambat, dan memeriksa versi yang lebih baru di [saluran rilis](/docs/id/setup#configure-release-channel) Anda. Menghilangkan duplikat file `CLAUDE.md` lokal terhadap yang diperiksa, memangkas file [`CLAUDE.md`](/docs/id/memory#my-claude-md-is-too-large) yang diperiksa dengan memotong konten yang Claude bisa turunkan dari basis kode, dan memigrasikan panduan yang selalu dimuat yang tersisa ke [skill](/docs/id/skills) dan file `CLAUDE.md` bersarang yang dimuat sesuai permintaan. Juga menawarkan untuk membuat [mode otomatis](/docs/id/permissions#permission-modes) default Anda dan untuk [pra-persetujuan](/docs/id/permissions) perintah baca-saja yang sering ditolak. Laporan temuan terlebih dahulu dan minta konfirmasi sebelum mengubah apa pun. Dari terminal, `claude doctor` mencetak diagnostik instalasi baca-saja tanpa memulai sesi. Alias: `/checkup`. Pemeriksaan trim `CLAUDE.md` memerlukan Claude Code v2.1.206 atau lebih baru. Sebelum v2.1.205, `/doctor` membuka layar diagnostik baca-saja dan menekan `f` mengirim laporan ke Claude |87| `/doctor` | **[Skill](/docs/id/skills#bundled-skills).** Jalankan pemeriksaan pengaturan yang mendiagnosis masalah dan dapat memperbaikinya. Memeriksa kesehatan instalasi, termasuk instalasi duplikat atau sisa, masalah `PATH`, dan file pengaturan yang tidak dapat diuraikan. Menemukan skill yang tidak digunakan, server MCP, dan plugin versus biaya konteks mereka, menandai [hook](/docs/id/hooks) yang lambat, dan memeriksa versi yang lebih baru di [saluran rilis](/docs/id/setup#configure-release-channel) Anda. Menghilangkan duplikat file `CLAUDE.md` lokal terhadap yang diperiksa, memangkas file [`CLAUDE.md`](/docs/id/memory#my-claude-md-is-too-large) yang diperiksa dengan memotong konten yang Claude bisa turunkan dari basis kode, dan memigrasikan panduan yang selalu dimuat yang tersisa ke [skill](/docs/id/skills) dan file `CLAUDE.md` bersarang yang dimuat sesuai permintaan. Juga menawarkan untuk membuat [mode otomatis](/docs/id/permissions#permission-modes) default Anda dan untuk [pra-persetujuan](/docs/id/permissions) perintah baca-saja yang sering ditolak. Laporan temuan terlebih dahulu dan minta konfirmasi sebelum mengubah apa pun. Dari terminal, `claude doctor` mencetak diagnostik instalasi baca-saja tanpa memulai sesi. Alias: `/checkup`. Pemeriksaan trim `CLAUDE.md` memerlukan Claude Code v2.1.206 atau lebih baru. Sebelum v2.1.205, `/doctor` membuka layar diagnostik baca-saja dan menekan `f` mengirim laporan ke Claude |

88| `/effort [level\|auto\|status]` | Atur [tingkat upaya](/docs/id/model-config#adjust-effort-level): `low` hingga `xhigh`, `max`, [`ultracode`](/docs/id/workflows#let-claude-decide-with-ultracode), atau `auto`; `status` mencetaknya. `max` dan `ultracode` hanya sesi; kunci [`ultracode`](/docs/id/settings-reference#ultracode) bertahan. Jalankan saat Claude merespons dan, setelah Anda mengonfirmasi [peringatan cache](/docs/id/prompt-caching#changing-effort-level), jika Claude Code menunjukkan satu, Claude Code menerapkan tingkat baru ke permintaan berikutnya dalam giliran itu. Sebelum v2.1.242, Claude Code memutuskan dari bendera fitur yang diambilnya dari Anthropic apakah akan menjalankan perintah di tengah giliran atau mengantrikannya sampai giliran selesai, dan selalu mengantrikannya dalam sesi yang tidak [mengambil bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti di [penyedia pihak ketiga](/docs/id/third-party-integrations). Bekerja dalam `-p` di luar [penahan upaya](/docs/id/model-config#adjust-effort-level) |88| `/effort [level\|auto\|status]` | Atur [tingkat upaya](/docs/id/model-config#adjust-effort-level): `low` hingga `xhigh`, `max`, [`ultracode`](/docs/id/workflows#let-claude-decide-with-ultracode), atau `auto`; `status` mencetaknya. `max` dan `ultracode` hanya sesi; kunci [`ultracode`](/docs/id/settings-reference#ultracode) bertahan. Jalankan saat Claude merespons dan, setelah Anda mengonfirmasi [peringatan cache](/docs/id/prompt-caching#changing-effort-level), jika Claude Code menunjukkan satu, Claude Code menerapkan tingkat baru ke permintaan berikutnya dalam giliran itu. Sebelum v2.1.242, Claude Code memutuskan dari bendera fitur yang diambilnya dari Anthropic apakah akan menjalankan perintah di tengah giliran atau mengantrikannya sampai giliran selesai, dan selalu mengantrikannya dalam sesi yang tidak [mengambil bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), seperti di [penyedia pihak ketiga](/docs/id/third-party-integrations). Bekerja dalam `-p` |

89| `/exit` | Keluar dari CLI. Dalam [sesi latar belakang](/docs/id/agent-view#attach-to-a-session) yang terlampir, ini melepaskan dan sesi terus berjalan. Alias: `/quit` |89| `/exit` | Keluar dari CLI. Dalam [sesi latar belakang](/docs/id/agent-view#attach-to-a-session) yang terlampir, ini melepaskan dan sesi terus berjalan. Alias: `/quit` |

90| `/export [filename]` | Ekspor percakapan saat ini sebagai teks biasa. Dengan nama file, menulis langsung ke file itu. Tanpa, membuka dialog untuk menyalin ke clipboard atau menyimpan ke file |90| `/export [filename]` | Ekspor percakapan saat ini sebagai teks biasa. Dengan nama file, menulis langsung ke file itu. Tanpa, membuka dialog untuk menyalin ke clipboard atau menyimpan ke file |

91| `/fast [on\|off]` | Alihkan [mode cepat](/docs/id/fast-mode) aktif atau nonaktif. Jalankan saat Claude merespons dan Claude Code mengalihkan mode cepat tanpa menunggu giliran berakhir, meskipun giliran yang berjalan selesai dengan kecepatan aslinya. Sebelum v2.1.242, Claude Code memutuskan dari bendera fitur yang diambilnya dari Anthropic apakah akan menjalankan perintah di tengah giliran atau mengantrikannya sampai giliran selesai, dan selalu mengantrikannya dalam sesi yang tidak [mengambil bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching). Ketersediaan dalam mode non-interaktif dengan `-p` terbatas; lihat [Alihkan mode cepat](/docs/id/fast-mode#toggle-fast-mode). Memerlukan Claude Code v2.1.205 atau lebih baru |91| `/fast [on\|off]` | Alihkan [mode cepat](/docs/id/fast-mode) aktif atau nonaktif. Jalankan saat Claude merespons dan Claude Code mengalihkan mode cepat tanpa menunggu giliran berakhir, meskipun giliran yang berjalan selesai dengan kecepatan aslinya. Sebelum v2.1.242, Claude Code memutuskan dari bendera fitur yang diambilnya dari Anthropic apakah akan menjalankan perintah di tengah giliran atau mengantrikannya sampai giliran selesai, dan selalu mengantrikannya dalam sesi yang tidak [mengambil bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching). Ketersediaan dalam mode non-interaktif dengan `-p` terbatas; lihat [Alihkan mode cepat](/docs/id/fast-mode#toggle-fast-mode). Memerlukan Claude Code v2.1.205 atau lebih baru |


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

157| `/tui [default\|fullscreen]` | Atur renderer UI terminal dan luncurkan ulang ke dalamnya dengan percakapan Anda tetap utuh. `fullscreen` mengaktifkan [renderer alt-screen bebas flicker](/docs/id/fullscreen). Tanpa argumen, mencetak renderer aktif |157| `/tui [default\|fullscreen]` | Atur renderer UI terminal dan luncurkan ulang ke dalamnya dengan percakapan Anda tetap utuh. `fullscreen` mengaktifkan [renderer alt-screen bebas flicker](/docs/id/fullscreen). Tanpa argumen, mencetak renderer aktif |

158| `/ultraplan <prompt>` | Dihapus. Gunakan [mode rencana](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) sebagai gantinya. Sebelumnya mengirim tugas perencanaan ke sesi [cloud](/docs/id/claude-code-on-the-web) untuk ditinjau di browser Anda |158| `/ultraplan <prompt>` | Dihapus. Gunakan [mode rencana](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) sebagai gantinya. Sebelumnya mengirim tugas perencanaan ke sesi [cloud](/docs/id/claude-code-on-the-web) untuk ditinjau di browser Anda |

159| `/ultrareview [PR or branch]` | Jalankan ulasan kode mendalam, multi-agen dalam sandbox cloud dengan [ultrareview](/docs/id/ultrareview). Berikan referensi PR untuk meninjau permintaan tarik itu, atau nama cabang untuk mengubah basis perbandingan. Invokasi yang disukai sekarang `/code-review ultra`, dan `/ultrareview` tetap sebagai alias. Mencakup 3 jalankan gratis di Pro dan Max, kemudian memerlukan [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |159| `/ultrareview [PR or branch]` | Jalankan ulasan kode mendalam, multi-agen dalam sandbox cloud dengan [ultrareview](/docs/id/ultrareview). Berikan referensi PR untuk meninjau permintaan tarik itu, atau nama cabang atau commit untuk mengubah basis perbandingan. Invokasi yang disukai adalah `/code-review ultra`, dan `/ultrareview` adalah alias. Mencakup 3 jalankan gratis di Pro dan Max, kemudian memerlukan [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

160| `/update-config [request]` | **[Skill](/docs/id/skills#bundled-skills).** Jelaskan perubahan pengaturan, seperti mengizinkan perintah, menetapkan variabel lingkungan, atau menambahkan [hook](/docs/id/hooks), dan Claude mengedit file [`settings.json`](/docs/id/settings) yang cocok. Untuk opsi seperti tema dan model, gunakan `/config` sebagai gantinya |

160| `/upgrade` | Buka halaman upgrade di browser Anda untuk beralih ke tingkat paket yang lebih tinggi. Ketika browser gagal membuka, perintah menampilkan prompt masuk tanpa mencetak URL |161| `/upgrade` | Buka halaman upgrade di browser Anda untuk beralih ke tingkat paket yang lebih tinggi. Ketika browser gagal membuka, perintah menampilkan prompt masuk tanpa mencetak URL |

161| `/usage` | Tampilkan biaya sesi, batas penggunaan paket, dan statistik aktivitas. Di paket Pro, Max, Team, atau Enterprise, mencakup [rincian apa yang dihitung terhadap batas paket Anda](/docs/id/costs#plan-usage-breakdown). `/cost` dan `/stats` adalah alias |162| `/usage` | Tampilkan biaya sesi, batas penggunaan paket, dan statistik aktivitas. Di paket Pro, Max, Team, atau Enterprise, mencakup [rincian apa yang dihitung terhadap batas paket Anda](/docs/id/costs#plan-usage-breakdown). `/cost` dan `/stats` adalah alias |

162| `/usage-credits` | Konfigurasi kredit penggunaan, atau minta dari admin Anda, ketika Anda mencapai batas. Membuka [pengaturan penagihan kredit penggunaan](/docs/id/costs#add-usage-credits-to-your-subscription) Anda di browser, kecuali anggota Team dan Enterprise tanpa akses penagihan malah mengirim permintaan kredit penggunaan ke admin mereka dari CLI, setelah mengonfirmasi dalam dialog bahwa permintaan memberi tahu admin mereka. Ketika tidak ada browser yang dapat membuka halaman penagihan, misalnya melalui SSH, perintah mencetak URL untuk dikunjungi sebagai gantinya; ini memerlukan Claude Code v2.1.205 atau lebih baru, dan versi sebelumnya tidak menunjukkan apa pun dalam kasus itu. Sebelumnya `/extra-usage` |163| `/usage-credits` | Konfigurasi kredit penggunaan, atau minta dari admin Anda, ketika Anda mencapai batas. Membuka [pengaturan penagihan kredit penggunaan](/docs/id/costs#add-usage-credits-to-your-subscription) Anda di browser, kecuali anggota Team dan Enterprise tanpa akses penagihan malah mengirim permintaan kredit penggunaan ke admin mereka dari CLI, setelah mengonfirmasi dalam dialog bahwa permintaan memberi tahu admin mereka. Ketika tidak ada browser yang dapat membuka halaman penagihan, misalnya melalui SSH, perintah mencetak URL untuk dikunjungi sebagai gantinya; ini memerlukan Claude Code v2.1.205 atau lebih baru, dan versi sebelumnya tidak menunjukkan apa pun dalam kasus itu. Sebelumnya `/extra-usage` |

Details

329 329 

330 1. Seret dan lepas gambar ke jendela Claude Code330 1. Seret dan lepas gambar ke jendela Claude Code

331 2. Salin gambar dan tempel ke CLI dengan `Ctrl+V`, atau dengan [`Alt+V` di Windows dan WSL](/docs/id/interactive-mode#general-controls)331 2. Salin gambar dan tempel ke CLI dengan `Ctrl+V`, atau dengan [`Alt+V` di Windows dan WSL](/docs/id/interactive-mode#general-controls)

332 3. Berikan jalur gambar ke Claude. Misalnya, "Analyze this image: /path/to/your/image.png"332 3. Berikan jalur gambar ke Claude, misalnya "Analyze this image: /path/to/your/image.png"

333 </Step>333 </Step>

334 334 

335 <Step title="Minta Claude untuk menganalisis gambar">335 <Step title="Minta Claude untuk menganalisis gambar">

Details

102 📚 Quickstart · VS Code · Kursus gratis 1 jam102 📚 Quickstart · VS Code · Kursus gratis 1 jam

103 https://code.claude.com/docs/en/quickstart103 https://code.claude.com/docs/en/quickstart

104 https://code.claude.com/docs/en/vs-code104 https://code.claude.com/docs/en/vs-code

105 https://anthropic.skilljar.com/claude-code-in-action105 https://academy.claude.com/courses/claude-code-in-action

106 106 

107 Pertanyaan → utas ini. [Pemilik] sedang mengerjakan.107 Pertanyaan → utas ini. [Pemilik] sedang mengerjakan.

108 ```108 ```


228yang berisiko tinggi. Turun ke *Haiku* untuk pertanyaan cepat, pemformatan, dan edit mekanis228yang berisiko tinggi. Turun ke *Haiku* untuk pertanyaan cepat, pemformatan, dan edit mekanis

229di mana kecepatan menang. *Fable* adalah model paling mampu untuk tugas-tugas tersulit dan229di mana kecepatan menang. *Fable* adalah model paling mampu untuk tugas-tugas tersulit dan

230paling lama; itu bukan default, jadi pilih dengan `/model fable`, dan perhatikan bahwa konten230paling lama; itu bukan default, jadi pilih dengan `/model fable`, dan perhatikan bahwa konten

231cybersecurity dan biology kembali ke Opus secara otomatis. Opus 5 menjalankan pemeriksaannya sendiri,231cybersecurity dan biology kembali ke Opus secara otomatis. Opus 5.5 dan Opus 5 menjalankan pemeriksaannya sendiri juga: konten yang ditandai beralih ke Opus sebelumnya, kecuali

232jadi konten cybersecurity yang ditandai beralih model dan konten biology yang ditandai ditolak.232konten biology yang ditandai pada Opus 5 ditolak.

233 233 

234*Coba sekarang:* ketik `/model` dan pilih Sonnet jika Anda belum melakukannya. Ini adalah234*Coba sekarang:* ketik `/model` dan pilih Sonnet jika Anda belum melakukannya. Ini adalah

235default yang tepat untuk sebagian besar tugas.235default yang tepat untuk sebagian besar tugas.


238```238```

239 239 

240| Model | Terbaik untuk |240| Model | Terbaik untuk |

241| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |241| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

242| Fable | Tugas-tugas tersulit dan paling lama. Opt-in saja: pilih dengan `/model fable`. Konten cybersecurity atau biology memicu [fallback model otomatis ke Opus](/docs/id/model-config#automatic-model-fallback) |242| Fable | Tugas-tugas tersulit dan paling lama. Opt-in saja: pilih dengan `/model fable`. Konten cybersecurity atau biology memicu [fallback model otomatis ke Opus](/docs/id/model-config#automatic-model-fallback) |

243| Opus | Refactor skala besar, debugging kompleks, keputusan arsitektur, perubahan berisiko tinggi. Pada Opus 5, konten cybersecurity atau biology memicu [fallback model otomatis atau penolakan](/docs/id/model-config#automatic-model-fallback) |243| Opus | Refactor skala besar, debugging kompleks, keputusan arsitektur, perubahan berisiko tinggi. Pada Opus 5.5 dan Opus 5, konten cybersecurity atau biology memicu [fallback model otomatis atau penolakan](/docs/id/model-config#automatic-model-fallback) |

244| Sonnet | Pekerjaan fitur sehari-hari, perbaikan bug, tes, dokumentasi, review kode. Default yang direkomendasikan. |244| Sonnet | Pekerjaan fitur sehari-hari, perbaikan bug, tes, dokumentasi, review kode. Default yang direkomendasikan. |

245| Haiku | Pertanyaan cepat, pemformatan, edit mekanis, iterasi cepat |245| Haiku | Pertanyaan cepat, pemformatan, edit mekanis, iterasi cepat |

246 246 

Details

35 tokens: 280,35 tokens: 280,

36 color: '#6B6964',36 color: '#6B6964',

37 vis: 'hidden',37 vis: 'hidden',

38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block at the very end of the system prompt.',38 desc: 'Working directory, platform, shell, OS version, and whether this is a git repo. Git branch, status, and recent commits load as a separate block.',

39 link: null39 link: null

40 }, {40 }, {

41 t: 0.08,41 t: 0.08,


1589* **Sebelum Anda mengetik apa pun**: CLAUDE.md, memori otomatis, nama alat MCP, dan deskripsi skill semuanya dimuat ke dalam konteks. [File AGENTS.md](/docs/id/memory#agents-md) juga dapat dimuat, secara mandiri atau bersama CLAUDE.md. Pengaturan Anda sendiri mungkin menambahkan lebih banyak di sini, seperti [gaya output](/docs/id/output-styles) atau teks dari [`--append-system-prompt`](/docs/id/cli-reference).1589* **Sebelum Anda mengetik apa pun**: CLAUDE.md, memori otomatis, nama alat MCP, dan deskripsi skill semuanya dimuat ke dalam konteks. [File AGENTS.md](/docs/id/memory#agents-md) juga dapat dimuat, secara mandiri atau bersama CLAUDE.md. Pengaturan Anda sendiri mungkin menambahkan lebih banyak di sini, seperti [gaya output](/docs/id/output-styles) atau teks dari [`--append-system-prompt`](/docs/id/cli-reference).

1590* **Saat Claude bekerja**: setiap pembacaan file menambah konteks, [aturan dengan cakupan jalur](/docs/id/memory#path-specific-rules) dimuat secara otomatis bersama file yang cocok, dan [hook PostToolUse](/docs/id/hooks-guide) dijalankan setelah setiap pengeditan.1590* **Saat Claude bekerja**: setiap pembacaan file menambah konteks, [aturan dengan cakupan jalur](/docs/id/memory#path-specific-rules) dimuat secara otomatis bersama file yang cocok, dan [hook PostToolUse](/docs/id/hooks-guide) dijalankan setelah setiap pengeditan.

1591* **Prompt lanjutan**: [subagent](/docs/id/sub-agents) menangani penelitian dalam jendela konteks terpisahnya sendiri, sehingga pembacaan file besar tetap berada di luar milik Anda. Hanya ringkasan dan trailer metadata kecil yang kembali.1591* **Prompt lanjutan**: [subagent](/docs/id/sub-agents) menangani penelitian dalam jendela konteks terpisahnya sendiri, sehingga pembacaan file besar tetap berada di luar milik Anda. Hanya ringkasan dan trailer metadata kecil yang kembali.

1592* **Di akhir**: `/compact` menggantikan percakapan dengan ringkasan terstruktur. Sebagian besar konten startup dimuat ulang secara otomatis; tabel di bawah menunjukkan apa yang terjadi pada setiap mekanisme.1592* **Di akhir dari panduan**: Anda menjalankan `/compact`, yang menggantikan percakapan dengan ringkasan terstruktur. Sebagian besar konten startup dimuat ulang secara otomatis; tabel di bawah menunjukkan apa yang terjadi pada setiap mekanisme.

1593 1593 

1594<h2 id="what-survives-compaction">1594<h2 id="what-survives-compaction">

1595 Apa yang bertahan dari pemadatan1595 Apa yang bertahan dari pemadatan


1602| Prompt sistem dan gaya output | Keduanya masih berlaku |1602| Prompt sistem dan gaya output | Keduanya masih berlaku |

1603| CLAUDE.md akar proyek dan aturan tanpa cakupan | Disuntikkan kembali dari disk |1603| CLAUDE.md akar proyek dan aturan tanpa cakupan | Disuntikkan kembali dari disk |

1604| Memori otomatis | Disuntikkan kembali dari disk |1604| Memori otomatis | Disuntikkan kembali dari disk |

1605| [Snapshot status Git](/docs/id/settings-reference#includegitinstructions) | Claude Code membaca yang baru dari repositori Anda |

1605| Rencana yang ditulis Claude dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) | Disuntikkan kembali dari disk |1606| Rencana yang ditulis Claude dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) | Disuntikkan kembali dari disk |

1606| Aturan dengan frontmatter `paths:` | Claude Code memuat ulang mereka saat Claude membaca file yang cocok |1607| Aturan dengan frontmatter `paths:` | Claude Code memuat ulang mereka saat Claude membaca file yang cocok |

1607| CLAUDE.md bersarang di subdirektori | Claude Code memuat ulang mereka saat Claude membaca file di subdirektori itu |1608| CLAUDE.md bersarang di subdirektori | Claude Code memuat ulang mereka saat Claude membaca file di subdirektori itu |

costs.md +3 −3

Details

37 37 

38Total ini direset ketika `/clear` memulai sesi baru, jadi biaya total sesi berikutnya dimulai dari \$0. Sebelum v2.1.211, mereka terus terakumulasi di seluruh `/clear` untuk seumur hidup proses Claude Code.38Total ini direset ketika `/clear` memulai sesi baru, jadi biaya total sesi berikutnya dimulai dari \$0. Sebelum v2.1.211, mereka terus terakumulasi di seluruh `/clear` untuk seumur hidup proses Claude Code.

39 39 

40Untuk respons dari Claude API yang ditagih dengan [tarif residensi data](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing) 1.1×, Claude Code mengalikan harga daftar token respons tersebut dengan 1.1 dalam angka biaya sesi. Claude Code melaporkan total yang sama dalam [bidang biaya baris status](/docs/id/statusline#cost-and-duration-tracking) dan membandingkannya dengan [`--max-budget-usd`](/docs/id/cli-reference#cli-flags). Sebelum v2.1.239, Claude Code tidak menerapkan 1.1× ke respons tersebut, jadi angka biaya sesi lebih rendah dari tagihan.40Untuk respons dari Claude API yang ditagih dengan [tarif residensi data](https://platform.claude.com/docs/en/about-claude/pricing#data-residency-pricing) 1.1×, Claude Code mengalikan harga daftar token respons tersebut dengan 1.1 dalam angka biaya sesi. Total yang sama muncul dalam [bidang biaya baris status](/docs/id/statusline#cost-and-duration-tracking), dan angka yang dikalikan juga diperhitungkan terhadap [`--max-budget-usd`](/docs/id/cli-reference#cli-flags). Sebelum v2.1.239, Claude Code tidak menerapkan 1.1× ke respons tersebut, jadi angka biaya sesi lebih rendah dari tagihan.

41 41 

42<h4 id="prompt-cache-statistics">42<h4 id="prompt-cache-statistics">

43 Statistik cache prompt43 Statistik cache prompt


275 Pilih model yang tepat275 Pilih model yang tepat

276</h3>276</h3>

277 277 

278Sonnet menangani sebagian besar tugas pengkodean dengan baik dan biayanya lebih rendah dari Opus. Cadangkan Opus untuk keputusan arsitektur yang kompleks atau penalaran multi-langkah. Gunakan `/model` untuk beralih model di tengah sesi, atau atur default di `/config`. Untuk tugas subagent sederhana, tentukan `model: haiku` di [konfigurasi subagent](/docs/id/sub-agents#choose-a-model) Anda.278Sonnet menangani sebagian besar tugas pengkodean dengan baik dan biayanya lebih rendah dari Opus. Cadangkan Opus untuk keputusan arsitektur yang kompleks atau penalaran multi-langkah. Gunakan `/model` untuk beralih model di tengah sesi, atau atur default di `/config`. Sakelar ke Opus juga berlaku untuk [subagents yang mewarisi model sesi Anda](/docs/id/model-config#setting-your-model). Untuk tugas subagent sederhana, tentukan `model: haiku` di [konfigurasi subagent](/docs/id/sub-agents#choose-a-model) Anda.

279 279 

280<h3 id="reduce-mcp-server-overhead">280<h3 id="reduce-mcp-server-overhead">

281 Kurangi overhead server MCP281 Kurangi overhead server MCP


359 359 

360Pemikiran yang diperluas diaktifkan secara default karena secara signifikan meningkatkan kinerja pada tugas perencanaan dan penalaran yang kompleks. Token pemikiran ditagih sebagai token output, dan anggaran default dapat mencapai puluhan ribu token per permintaan tergantung pada model.360Pemikiran yang diperluas diaktifkan secara default karena secara signifikan meningkatkan kinerja pada tugas perencanaan dan penalaran yang kompleks. Token pemikiran ditagih sebagai token output, dan anggaran default dapat mencapai puluhan ribu token per permintaan tergantung pada model.

361 361 

362Untuk tugas yang lebih sederhana di mana penalaran mendalam tidak diperlukan, Anda dapat mengurangi biaya dengan menurunkan [tingkat upaya](/docs/id/model-config#adjust-effort-level) dengan `/effort` atau di `/model`, atau dengan menonaktifkan pemikiran di `/config`. Anda tidak dapat mematikan pemikiran pada model Fable, yang selalu menggunakan pemikiran yang diperluas.362Untuk tugas yang lebih sederhana di mana penalaran mendalam tidak diperlukan, Anda dapat mengurangi biaya dengan menurunkan [tingkat upaya](/docs/id/model-config#adjust-effort-level) dengan `/effort` atau di `/model`, atau dengan menonaktifkan pemikiran di `/config`. Anda tidak dapat mematikan pemikiran pada Opus 5.5 atau model Fable, yang selalu menggunakan pemikiran yang diperluas.

363 363 

364Pada model dengan [anggaran pemikiran tetap](/docs/id/model-config#adaptive-reasoning-and-fixed-thinking-budgets), Anda juga dapat menurunkan anggaran dengan menetapkan [variabel lingkungan](/docs/id/env-vars) `MAX_THINKING_TOKENS`, misalnya `MAX_THINKING_TOKENS=8000`. Model adaptive-reasoning mengabaikan anggaran bukan nol, jadi gunakan tingkat upaya di sana.364Pada model dengan [anggaran pemikiran tetap](/docs/id/model-config#adaptive-reasoning-and-fixed-thinking-budgets), Anda juga dapat menurunkan anggaran dengan menetapkan [variabel lingkungan](/docs/id/env-vars) `MAX_THINKING_TOKENS`, misalnya `MAX_THINKING_TOKENS=8000`. Model adaptive-reasoning mengabaikan anggaran bukan nol, jadi gunakan tingkat upaya di sana.

365 365 

desktop.md +2 −2

Details

508 508 

509Anda dapat membatasi plugins ke akun pengguna Anda, proyek tertentu, atau lokal saja. Jika organisasi Anda mengelola plugins secara terpusat, plugins tersebut tersedia di sesi desktop dengan cara yang sama seperti di CLI.509Anda dapat membatasi plugins ke akun pengguna Anda, proyek tertentu, atau lokal saja. Jika organisasi Anda mengelola plugins secara terpusat, plugins tersebut tersedia di sesi desktop dengan cara yang sama seperti di CLI.

510 510 

511Plugin browser tidak tersedia di sesi cloud, dan plugins yang Anda instal dari aplikasi desktop tidak tersedia untuk sesi cloud. Untuk menggunakan plugin di sesi cloud, baik deklarasikan di `.claude/settings.json` repository di bawah [`enabledPlugins`](/docs/id/settings-reference#enabledplugins) sehingga Claude Code [memasangnya saat startup sesi](/docs/id/cloud-environments#what-carries-over-from-your-setup), atau aktifkan untuk akun claude.ai Anda sehingga Claude Code memuatnya sebagai [synced plugin](/docs/id/plugins-reference#synced-plugins). Plugins tidak tersedia di sesi WSL. Untuk referensi plugin lengkap termasuk membuat plugins Anda sendiri, lihat [plugins](/docs/id/plugins).511Plugin browser tidak tersedia di sesi cloud, dan plugins yang Anda instal dari aplikasi desktop tidak tersedia untuk sesi cloud. Sesi cloud juga tidak memasang plugins yang dideklarasikan oleh `.claude/settings.json` repository, seperti yang dijelaskan dalam [What carries over from your setup](/docs/id/cloud-environments#what-carries-over-from-your-setup). Untuk menggunakan plugin di sesi cloud, aktifkan untuk akun claude.ai Anda sehingga Claude Code memuatnya sebagai [synced plugin](/docs/id/plugins-reference#synced-plugins). Plugins tidak tersedia di sesi WSL. Untuk referensi plugin lengkap termasuk membuat plugins Anda sendiri, lihat [plugins](/docs/id/plugins).

512 512 

513<h3 id="configure-preview-servers">513<h3 id="configure-preview-servers">

514 Konfigurasikan server pratinjau514 Konfigurasikan server pratinjau


735 735 

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

737 737 

738[Extended thinking](/docs/id/model-config#extended-thinking) diaktifkan secara default, yang meningkatkan kinerja pada tugas penalaran kompleks tetapi menggunakan token tambahan. Pada Anthropic API, atur `MAX_THINKING_TOKENS` ke `0` di editor lingkungan lokal untuk mematikan pemikiran; ini tidak berpengaruh pada model Fable, yang selalu menggunakan extended thinking. Dengan pemikiran dimatikan pada Anthropic API, Claude Code mengirimkan effort `high` alih-alih level yang lebih tinggi ke model yang diketahui [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5.738[Extended thinking](/docs/id/model-config#extended-thinking) diaktifkan secara default, yang meningkatkan kinerja pada tugas penalaran kompleks tetapi menggunakan token tambahan. Pada Anthropic API, atur `MAX_THINKING_TOKENS` ke `0` di editor lingkungan lokal untuk mematikan pemikiran; ini tidak berpengaruh pada Opus 5.5 atau model Fable, yang selalu menggunakan extended thinking. Dengan pemikiran dimatikan pada Anthropic API, Claude Code mengirimkan effort `high` alih-alih level yang lebih tinggi ke model yang diketahui [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5.

739 739 

740Pada model dengan [adaptive reasoning](/docs/id/model-config#adjust-effort-level), nilai `MAX_THINKING_TOKENS` selain `0` diabaikan karena adaptive reasoning mengontrol kedalaman pemikiran sebagai gantinya. Pada Opus 4.6 dan Sonnet 4.6, atur `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` ke `1` untuk menggunakan anggaran pemikiran tetap; model Fable, Sonnet 5, dan Opus 4.7 dan yang lebih baru selalu menggunakan adaptive reasoning dan tidak memiliki mode anggaran tetap.740Pada model dengan [adaptive reasoning](/docs/id/model-config#adjust-effort-level), nilai `MAX_THINKING_TOKENS` selain `0` diabaikan karena adaptive reasoning mengontrol kedalaman pemikiran sebagai gantinya. Pada Opus 4.6 dan Sonnet 4.6, atur `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` ke `1` untuk menggunakan anggaran pemikiran tetap; model Fable, Sonnet 5, dan Opus 4.7 dan yang lebih baru selalu menggunakan adaptive reasoning dan tidak memiliki mode anggaran tetap.

741 741 

Details

16 Persyaratan16 Persyaratan

17</h2>17</h2>

18 18 

19* Ubuntu 22.04 atau lebih baru, atau Debian 12 atau lebih baru19* Distribusi berbasis Debian: Ubuntu 22.04 atau lebih baru, atau Debian 12 atau lebih baru

20* x86\_64 atau arm6420* x86\_64 atau arm64

21 21 

22Distribusi berbasis Debian lainnya yang memenuhi persyaratan ini mungkin berfungsi tetapi tidak diuji secara resmi. Pada distribusi yang bukan berbasis Debian, seperti Fedora atau Arch, jalankan [CLI](/docs/id/setup#system-requirements) sebagai gantinya. Jika Anda bekerja di Windows dengan WSL 2, instal aplikasi desktop Windows dan jalankan sesi di dalam distribusi Anda; lihat [Claude Code Desktop di WSL](/docs/id/desktop-wsl).22Distribusi berbasis Debian lainnya yang memenuhi persyaratan ini mungkin berfungsi tetapi tidak diuji secara resmi. Pada distribusi yang bukan berbasis Debian, seperti Fedora atau Arch, jalankan [CLI](/docs/id/setup#system-requirements) sebagai gantinya. Jika Anda bekerja di Windows dengan WSL 2, instal aplikasi desktop Windows dan jalankan sesi di dalam distribusi Anda; lihat [Claude Code Desktop di WSL](/docs/id/desktop-wsl).

Details

42/plugin install github@claude-plugins-official42/plugin install github@claude-plugins-official

43```43```

44 44 

45`/plugin` membuka panel interaktif di terminal CLI. Jika Claude melaporkan bahwa `/plugin` tidak tersedia di lingkungan ini, gunakan [plugin browser](/docs/id/desktop#install-plugins) di aplikasi desktop Claude, atau deklarasikan plugin di bawah [`enabledPlugins`](/docs/id/settings-reference#enabledplugins) dalam `.claude/settings.json` untuk sesi cloud.45`/plugin` membuka panel interaktif di terminal CLI. Jika Claude melaporkan bahwa `/plugin` tidak tersedia di lingkungan ini, instal plugin dengan cara lain:

46 

47* **Claude desktop app**: gunakan [plugin browser](/docs/id/desktop#install-plugins).

48* **VS Code extension**: instal dari [dialog **Manage plugins**](/docs/id/vs-code#manage-plugins).

49* **Cloud sessions**: aktifkan plugin untuk akun claude.ai Anda sehingga Claude Code memuatnya sebagai [synced plugin](/docs/id/plugins-reference#synced-plugins).

46 50 

47Jika instalasi gagal, cocokkan pesan yang dilaporkan Claude Code:51Jika instalasi gagal, cocokkan pesan yang dilaporkan Claude Code:

48 52 


360Claude Code mencari plugin di salinan lokal katalog marketplace. Cara Anda memberi nama plugin mengontrol apakah Claude Code menyegarkan salinan tersebut terlebih dahulu:364Claude Code mencari plugin di salinan lokal katalog marketplace. Cara Anda memberi nama plugin mengontrol apakah Claude Code menyegarkan salinan tersebut terlebih dahulu:

361 365 

362* **Dengan nama marketplace**: ketika Anda menginstal `plugin-name@marketplace-name`, dalam sesi atau dengan `claude plugin install`, Claude Code menyegarkan marketplace tersebut sebelum pencarian. Claude Code menjalankan penyegaran bahkan jika Anda mematikan [auto-update](#configure-auto-updates) untuk marketplace atau menetapkan `DISABLE_AUTOUPDATER`. Sebelum v2.1.232, Claude Code tidak menyegarkan marketplace sebelum pencarian. Claude Code melewati penyegaran ini ketika:366* **Dengan nama marketplace**: ketika Anda menginstal `plugin-name@marketplace-name`, dalam sesi atau dengan `claude plugin install`, Claude Code menyegarkan marketplace tersebut sebelum pencarian. Claude Code menjalankan penyegaran bahkan jika Anda mematikan [auto-update](#configure-auto-updates) untuk marketplace atau menetapkan `DISABLE_AUTOUPDATER`. Sebelum v2.1.232, Claude Code tidak menyegarkan marketplace sebelum pencarian. Claude Code melewati penyegaran ini ketika:

363 * Marketplace tidak [ditambahkan dari GitHub, host Git lain, atau URL jarak jauh](#add-marketplaces).367 * Marketplace tidak [ditambahkan dari GitHub, host Git lain, URL jarak jauh](#add-marketplaces), atau [claude.ai](#add-from-claude-ai).

364 * [Direktori seed](/docs/id/plugin-marketplaces#pre-populate-plugins-for-containers) menyediakan marketplace.368 * [Direktori seed](/docs/id/plugin-marketplaces#pre-populate-plugins-for-containers) menyediakan marketplace.

365 * Claude Code menyegarkan marketplace dalam 30 detik terakhir.369 * Claude Code menyegarkan marketplace dalam 30 detik terakhir.

366 * Anda menetapkan [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars).370 * Anda menetapkan [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars).


395 399 

396Sumber mengambil [bentuk yang sama seperti `/plugin marketplace add`](#add-marketplaces), seperti GitHub `owner/repo`, URL git, atau jalur lokal, kecuali bahwa sumber tidak dapat berisi spasi. Berikan nama plugin tanpa akhiran `@marketplace`.400Sumber mengambil [bentuk yang sama seperti `/plugin marketplace add`](#add-marketplaces), seperti GitHub `owner/repo`, URL git, atau jalur lokal, kecuali bahwa sumber tidak dapat berisi spasi. Berikan nama plugin tanpa akhiran `@marketplace`.

397 401 

398Jika Anda belum menambahkan marketplace tersebut, Claude Code menampilkan sumber yang diselesaikannya dan meminta Anda untuk mengonfirmasi sebelum menambahkannya. Menolak membatalkan instalasi dan tidak menambahkan apa pun. Setelah marketplace ditambahkan, detail plugin terbuka dan Anda memilih [cakupan instalasi](/docs/id/settings#where-settings-live).402Claude Code menampilkan sumber yang diselesaikannya dan meminta Anda untuk mengonfirmasi sebelum menambahkan marketplace. Menolak membatalkan instalasi dan tidak menambahkan apa pun. Setelah marketplace ditambahkan, detail plugin terbuka dan Anda memilih [cakupan instalasi](/docs/id/settings#where-settings-live). Jika sumber cocok dengan marketplace yang sudah Anda tambahkan, Claude Code melewati konfirmasi dan membuka detail plugin di marketplace tersebut.

399 403 

400<h2 id="manage-installed-plugins">404<h2 id="manage-installed-plugins">

401 Kelola plugin yang diinstal405 Kelola plugin yang diinstal

env-vars.md +6 −2

Details

271| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Atur ke `1` untuk menonaktifkan pendaftaran otomatis marketplace plugin resmi. Claude Code membaca variabel ketika akan mendaftarkan marketplace, biasanya selama peluncuran interaktif mesin pertama. Jika variabel diatur pada titik itu, Claude Code melewati pendaftaran secara permanen. Membatalkan penetapan variabel nanti tidak membatalkan lompatan. Jalankan `claude plugin marketplace add anthropics/claude-plugins-official` untuk mendaftarkan marketplace kapan saja |271| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | Atur ke `1` untuk menonaktifkan pendaftaran otomatis marketplace plugin resmi. Claude Code membaca variabel ketika akan mendaftarkan marketplace, biasanya selama peluncuran interaktif mesin pertama. Jika variabel diatur pada titik itu, Claude Code melewati pendaftaran secara permanen. Membatalkan penetapan variabel nanti tidak membatalkan lompatan. Jalankan `claude plugin marketplace add anthropics/claude-plugins-official` untuk mendaftarkan marketplace kapan saja |

272| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Atur ke `1` untuk menghentikan Claude Code dari menjalankan [hook `Notification` Anda untuk permintaan izin yang belum dijawab](/docs/id/hooks#notification) di sesi di mana Claude Code mengirimnya ke callback `canUseTool` Agent SDK, yang merupakan cara Claude Desktop dan ekstensi VS Code menampilkan Claude Code. Tidak berpengaruh di sesi terminal. Memerlukan Claude Code v2.1.233 atau lebih baru |272| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | Atur ke `1` untuk menghentikan Claude Code dari menjalankan [hook `Notification` Anda untuk permintaan izin yang belum dijawab](/docs/id/hooks#notification) di sesi di mana Claude Code mengirimnya ke callback `canUseTool` Agent SDK, yang merupakan cara Claude Desktop dan ekstensi VS Code menampilkan Claude Code. Tidak berpengaruh di sesi terminal. Memerlukan Claude Code v2.1.233 atau lebih baru |

273| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Atur ke `1` untuk melewati pemuatan skills dari direktori skills yang dikelola di seluruh sistem. Berguna untuk sesi container atau CI yang tidak boleh memuat skills yang disediakan operator |273| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | Atur ke `1` untuk melewati pemuatan skills dari direktori skills yang dikelola di seluruh sistem. Berguna untuk sesi container atau CI yang tidak boleh memuat skills yang disediakan operator |

274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Atur ke `1` untuk menonaktifkan pembaruan judul terminal otomatis berdasarkan konteks percakapan. Di sesi Agent SDK dan `claude -p`, ini juga melewati permintaan model kecil/cepat latar belakang yang menghasilkan judul sesi |274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | Atur ke `1` untuk menonaktifkan pembaruan judul terminal otomatis berdasarkan konteks percakapan. Ini juga melewati permintaan model kecil/cepat latar belakang yang [menghasilkan judul sesi](/docs/id/sessions#name-your-sessions) |

275| `CLAUDE_CODE_DISABLE_THINKING` | Atur ke `1` untuk menghilangkan parameter `thinking` dari permintaan API sepenuhnya. Ini adalah opsi kompatibilitas untuk proxy dan gateway yang menolak parameter. Di model yang berpikir secara default, menghilangkan parameter berarti model mungkin masih berpikir. Untuk secara eksplisit menonaktifkan [pemikiran yang diperpanjang](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) di API Anthropic, gunakan `MAX_THINKING_TOKENS=0` sebagai gantinya. Tidak ada variabel yang menonaktifkan pemikiran di model Fable, yang tidak dapat memiliki pemikiran dinonaktifkan. Di [penyedia pihak ketiga](/docs/id/third-party-integrations), `MAX_THINKING_TOKENS=0` demikian pula menghilangkan parameter, jadi kedua variabel berperilaku sama di sana |275| `CLAUDE_CODE_DISABLE_THINKING` | Atur ke `1` untuk menghilangkan parameter `thinking` dari permintaan API sepenuhnya. Ini adalah opsi kompatibilitas untuk proxy dan gateway yang menolak parameter. Di model yang berpikir secara default, menghilangkan parameter berarti model mungkin masih berpikir. Untuk secara eksplisit menonaktifkan [pemikiran yang diperpanjang](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) di API Anthropic, gunakan `MAX_THINKING_TOKENS=0` sebagai gantinya. Tidak ada variabel yang menonaktifkan pemikiran di model Fable, yang tidak dapat memiliki pemikiran dinonaktifkan. Di [penyedia pihak ketiga](/docs/id/third-party-integrations), `MAX_THINKING_TOKENS=0` demikian pula menghilangkan parameter, jadi kedua variabel berperilaku sama di sana |

276| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Atur ke `1` untuk melewati [auto-compaction](/docs/id/costs#reduce-token-usage) proaktif ketika Claude Code tidak mengenali ID model, seperti alias [gateway LLM](/docs/id/llm-gateway). Tanpa variabel ini, Claude Code compact pada jendela konteks yang diasumsikan untuk ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` dapat mengoreksi jendela yang diasumsikan sebagai gantinya; lihat [Koreksi jendela untuk ID model gateway atau khusus](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) untuk kapan setiap variabel berlaku. Memerlukan Claude Code v2.1.223 atau lebih baru |276| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | Atur ke `1` untuk melewati [auto-compaction](/docs/id/costs#reduce-token-usage) proaktif ketika Claude Code tidak mengenali ID model, seperti alias [gateway LLM](/docs/id/llm-gateway). Tanpa variabel ini, Claude Code compact pada jendela konteks yang diasumsikan untuk ID. `CLAUDE_CODE_MAX_CONTEXT_TOKENS` dapat mengoreksi jendela yang diasumsikan sebagai gantinya; lihat [Koreksi jendela untuk ID model gateway atau khusus](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) untuk kapan setiap variabel berlaku. Memerlukan Claude Code v2.1.223 atau lebih baru |

277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Atur ke `1` untuk menonaktifkan pengguliran virtual dalam [rendering fullscreen](/docs/id/fullscreen) dan merender setiap pesan dalam transkrip. Gunakan ini jika pengguliran dalam mode fullscreen menampilkan wilayah kosong di mana pesan harus muncul |277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | Atur ke `1` untuk menonaktifkan pengguliran virtual dalam [rendering fullscreen](/docs/id/fullscreen) dan merender setiap pesan dalam transkrip. Gunakan ini jika pengguliran dalam mode fullscreen menampilkan wilayah kosong di mana pesan harus muncul |


298| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Atur ke `1` untuk memaksa-mengaktifkan mode pribadi DEC 2026 [output tersinkronisasi](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) ketika terminal Anda mendukungnya tetapi tidak terdeteksi otomatis. Berguna untuk emulator seperti Emacs `eat` yang mengimplementasikan BSU/ESU tetapi tidak merespons probe kemampuan. Tidak berpengaruh di bawah tmux. Tidak seperti `CLAUDE_CODE_NO_FLICKER`, yang beralih ke [rendering fullscreen](/docs/id/fullscreen), ini tidak mengubah renderer |298| `CLAUDE_CODE_FORCE_SYNC_OUTPUT` | Atur ke `1` untuk memaksa-mengaktifkan mode pribadi DEC 2026 [output tersinkronisasi](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036) ketika terminal Anda mendukungnya tetapi tidak terdeteksi otomatis. Berguna untuk emulator seperti Emacs `eat` yang mengimplementasikan BSU/ESU tetapi tidak merespons probe kemampuan. Tidak berpengaruh di bawah tmux. Tidak seperti `CLAUDE_CODE_NO_FLICKER`, yang beralih ke [rendering fullscreen](/docs/id/fullscreen), ini tidak mengubah renderer |

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

300| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Atur ke `1` untuk memancarkan blok teks dan pemikiran [subagent](/docs/id/sub-agents) dalam output `claude -p --output-format stream-json`, perilaku yang sama seperti flag [`--forward-subagent-text`](/docs/id/cli-reference#cli-flags). Gunakan variabel ketika harness memanggil `claude` dan tidak dapat meneruskan flag itu sendiri. Tidak seperti flag, yang keluar dengan kesalahan di luar mode non-interaktif dengan output stream-json, variabel diabaikan di sana sehingga invokasi bersarang terus bekerja ketika diatur di seluruh proses. Memerlukan Claude Code v2.1.211 atau lebih baru |300| `CLAUDE_CODE_FORWARD_SUBAGENT_TEXT` | Atur ke `1` untuk memancarkan blok teks dan pemikiran [subagent](/docs/id/sub-agents) dalam output `claude -p --output-format stream-json`, perilaku yang sama seperti flag [`--forward-subagent-text`](/docs/id/cli-reference#cli-flags). Gunakan variabel ketika harness memanggil `claude` dan tidak dapat meneruskan flag itu sendiri. Tidak seperti flag, yang keluar dengan kesalahan di luar mode non-interaktif dengan output stream-json, variabel diabaikan di sana sehingga invokasi bersarang terus bekerja ketika diatur di seluruh proses. Memerlukan Claude Code v2.1.211 atau lebih baru |

301| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Atur ke `1` untuk mengirim [header hint gateway](/docs/id/llm-gateway-protocol#gateway-hint-headers), seperti `x-claude-code-request-class` dan `x-claude-code-compaction`, pada proxy khusus atau penyedia pihak ketiga seperti Amazon Bedrock atau Claude Platform on AWS. Atur ke `0` untuk menghentikan pengiriman mereka pada setiap koneksi, termasuk koneksi langsung ke API Anthropic, di mana Claude Code mengirimnya secara default. Memerlukan Claude Code v2.1.273 atau lebih baru |

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

302| `CLAUDE_CODE_GIT_BASH_PATH` | Hanya Windows: path ke executable Git Bash (`bash.exe`). Gunakan ketika Git Bash diinstal tetapi tidak di `PATH` Anda. Jika path tidak ada atau file tidak bernama `bash.exe`, `sh.exe`, `bash`, atau `sh`, Claude Code mengabaikan variabel dan auto-deteksi Git Bash seolah-olah tidak diatur, mencatat peringatan yang terlihat dengan `--debug`. Sebelum v2.1.219, Claude Code keluar saat startup ketika path tidak ada, dan menggunakan file yang ada sebagai shell tanpa memeriksa bahwa itu adalah bash atau sh. Lihat [Pengaturan Windows](/docs/id/setup#set-up-on-windows) |303| `CLAUDE_CODE_GIT_BASH_PATH` | Hanya Windows: path ke executable Git Bash (`bash.exe`). Gunakan ketika Git Bash diinstal tetapi tidak di `PATH` Anda. Jika path tidak ada atau file tidak bernama `bash.exe`, `sh.exe`, `bash`, atau `sh`, Claude Code mengabaikan variabel dan auto-deteksi Git Bash seolah-olah tidak diatur, mencatat peringatan yang terlihat dengan `--debug`. Sebelum v2.1.219, Claude Code keluar saat startup ketika path tidak ada, dan menggunakan file yang ada sebagai shell tanpa memeriksa bahwa itu adalah bash atau sh. Lihat [Pengaturan Windows](/docs/id/setup#set-up-on-windows) |

303| `CLAUDE_CODE_GLOB_HIDDEN` | Atur ke `false` untuk mengecualikan dotfile dari hasil ketika Claude memanggil alat [Glob](/docs/id/tools-reference#glob-tool-behavior). Disertakan secara default. Tidak mempengaruhi autocomplete file `@`, `ls`, Grep, atau Read |304| `CLAUDE_CODE_GLOB_HIDDEN` | Atur ke `false` untuk mengecualikan dotfile dari hasil ketika Claude memanggil alat [Glob](/docs/id/tools-reference#glob-tool-behavior). Disertakan secara default. Tidak mempengaruhi autocomplete file `@`, `ls`, Grep, atau Read |


476| `NO_PROXY` | Daftar domain dan IP yang permintaannya akan dikeluarkan secara langsung, melewati proxy |477| `NO_PROXY` | Daftar domain dan IP yang permintaannya akan dikeluarkan secara langsung, melewati proxy |

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

478| `OTEL_LOG_ASSISTANT_RESPONSES` | Atur ke `1` untuk menyertakan teks respons model pada acara log OpenTelemetry `assistant_response`. Ketika tidak diatur, nilai `OTEL_LOG_USER_PROMPTS` digunakan sebagai gantinya. Atur ke `0` untuk menjaga respons diredaksi bahkan ketika `OTEL_LOG_USER_PROMPTS` diatur. Memerlukan Claude Code v2.1.193 atau lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage#assistant-response-event) |479| `OTEL_LOG_ASSISTANT_RESPONSES` | Atur ke `1` untuk menyertakan teks respons model pada acara log OpenTelemetry `assistant_response`. Ketika tidak diatur, nilai `OTEL_LOG_USER_PROMPTS` digunakan sebagai gantinya. Atur ke `0` untuk menjaga respons diredaksi bahkan ketika `OTEL_LOG_USER_PROMPTS` diatur. Memerlukan Claude Code v2.1.193 atau lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage#assistant-response-event) |

480| `OTEL_LOG_MANAGED_SETTINGS` | Atur ke `1` untuk menambahkan pengaturan yang dikelola yang diredaksi, dan digest SHA-256 dari pengaturan sebelum redaksi, ke acara log OpenTelemetry `managed_settings_resolved`. Dinonaktifkan secara default. Atur di shell, pengaturan pengguna, atau pengaturan yang dikelola; nilai di pengaturan proyek atau lokal tidak mengaktifkannya. Memerlukan Claude Code v2.1.274 atau lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage#managed-settings-resolved-event) |

479| `OTEL_LOG_RAW_API_BODIES` | Pancarkan JSON API Pesan Anthropic permintaan dan respons sebagai acara log `api_request_body` / `api_response_body`. Atur ke `1` untuk badan inline dipotong pada batas konten, atau `file:<dir>` untuk menulis badan yang tidak dipotong ke disk dan memancarkan path `body_ref` sebagai gantinya. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` mengonfigurasi batas konten, 60 KB secara default. Dinonaktifkan secara default; badan menyertakan seluruh riwayat percakapan. Atur di shell, pengaturan pengguna, atau pengaturan yang dikelola. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Lihat [Monitoring](/docs/id/monitoring-usage#api-request-body-event) |481| `OTEL_LOG_RAW_API_BODIES` | Pancarkan JSON API Pesan Anthropic permintaan dan respons sebagai acara log `api_request_body` / `api_response_body`. Atur ke `1` untuk badan inline dipotong pada batas konten, atau `file:<dir>` untuk menulis badan yang tidak dipotong ke disk dan memancarkan path `body_ref` sebagai gantinya. `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` mengonfigurasi batas konten, 60 KB secara default. Dinonaktifkan secara default; badan menyertakan seluruh riwayat percakapan. Atur di shell, pengaturan pengguna, atau pengaturan yang dikelola. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Lihat [Monitoring](/docs/id/monitoring-usage#api-request-body-event) |

480| `OTEL_LOG_TOOL_CONTENT` | Atur ke `1` untuk menyertakan konten alat dalam acara span OpenTelemetry `tool.output`. Atribut span membawa konten alat di bawah [gerbang mereka sendiri](/docs/id/monitoring-usage#new-context-gates). Memerlukan [pelacakan](/docs/id/monitoring-usage#traces-beta). Dinonaktifkan secara default untuk melindungi data sensitif. Lihat [Monitoring](/docs/id/monitoring-usage#tool-output-span-event) |482| `OTEL_LOG_TOOL_CONTENT` | Atur ke `1` untuk menyertakan konten alat dalam acara span OpenTelemetry `tool.output`. Atribut span membawa konten alat di bawah [gerbang mereka sendiri](/docs/id/monitoring-usage#new-context-gates). Memerlukan [pelacakan](/docs/id/monitoring-usage#traces-beta). Dinonaktifkan secara default untuk melindungi data sensitif. Lihat [Monitoring](/docs/id/monitoring-usage#tool-output-span-event) |

481| `OTEL_LOG_TOOL_DETAILS` | Atur ke `1` untuk menyertakan argumen input alat, nama server MCP, nama alur kerja yang ditulis pengguna, string kesalahan mentah pada kegagalan alat, kategori penolakan `category` pada acara `api_refusal`, dan detail alat lainnya dalam jejak dan log OpenTelemetry. Dinonaktifkan secara default untuk melindungi PII. Lihat [Monitoring](/docs/id/monitoring-usage) |483| `OTEL_LOG_TOOL_DETAILS` | Atur ke `1` untuk menyertakan argumen input alat, nama server MCP, nama alur kerja yang ditulis pengguna, string kesalahan mentah pada kegagalan alat, kategori penolakan `category` pada acara `api_refusal`, dan detail alat lainnya dalam jejak dan log OpenTelemetry. Dinonaktifkan secara default untuk melindungi PII. Lihat [Monitoring](/docs/id/monitoring-usage) |


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

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

489| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Ganti anggaran karakter untuk metadata skill yang ditampilkan ke [alat Skill](/docs/id/skills#control-who-invokes-a-skill). Anggaran diskalakan secara dinamis pada 1% dari jendela konteks, dengan fallback 8.000 karakter. Nama warisan disimpan untuk kompatibilitas mundur |491| `SLASH_COMMAND_TOOL_CHAR_BUDGET` | Ganti anggaran karakter untuk metadata skill yang ditampilkan ke [alat Skill](/docs/id/skills#control-who-invokes-a-skill). Anggaran diskalakan secara dinamis pada 1% dari jendela konteks, dengan fallback 8.000 karakter. Nama warisan disimpan untuk kompatibilitas mundur |

490| `TASK_MAX_OUTPUT_LENGTH` | Jumlah maksimum karakter output [tugas latar belakang](/docs/id/tools-reference#background-commands) yang alat `TaskOutput` simpan (default: 32000; maksimum: 160000). Jika Anda menetapkan pengaturan [`taskOutputMaxChars`](/docs/id/settings-reference#taskoutputmaxchars), Claude Code mengabaikan variabel ini |492| `TASK_MAX_OUTPUT_LENGTH` | Dihapus di v2.1.277 dan sekarang tidak beroperasi, bersama dengan alat `TaskOutput` yang disizingnya. Sebelumnya menetapkan jumlah maksimum karakter output [tugas latar belakang](/docs/id/tools-reference#background-commands) yang alat `TaskOutput` simpan. Claude membaca file output tugas latar belakang dengan `Read` sebagai gantinya |

491| `USE_BUILTIN_RIPGREP` | Atur ke `0` untuk menggunakan `rg` yang diinstal sistem daripada `rg` yang disertakan dengan Claude Code |493| `USE_BUILTIN_RIPGREP` | Atur ke `0` untuk menggunakan `rg` yang diinstal sistem daripada `rg` yang disertakan dengan Claude Code |

492| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Ganti wilayah untuk Claude 3.5 Haiku saat menggunakan Google Cloud's Agent Platform |494| `VERTEX_REGION_CLAUDE_3_5_HAIKU` | Ganti wilayah untuk Claude 3.5 Haiku saat menggunakan Google Cloud's Agent Platform |

493| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Ganti wilayah untuk Claude 3.5 Sonnet saat menggunakan Google Cloud's Agent Platform |495| `VERTEX_REGION_CLAUDE_3_5_SONNET` | Ganti wilayah untuk Claude 3.5 Sonnet saat menggunakan Google Cloud's Agent Platform |


501| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Ganti wilayah untuk Claude Sonnet 4.6 saat menggunakan Google Cloud's Agent Platform |503| `VERTEX_REGION_CLAUDE_4_6_SONNET` | Ganti wilayah untuk Claude Sonnet 4.6 saat menggunakan Google Cloud's Agent Platform |

502| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Ganti wilayah untuk Claude Opus 4.7 saat menggunakan Google Cloud's Agent Platform |504| `VERTEX_REGION_CLAUDE_4_7_OPUS` | Ganti wilayah untuk Claude Opus 4.7 saat menggunakan Google Cloud's Agent Platform |

503| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Ganti wilayah untuk Claude Opus 4.8 saat menggunakan Google Cloud's Agent Platform |505| `VERTEX_REGION_CLAUDE_4_8_OPUS` | Ganti wilayah untuk Claude Opus 4.8 saat menggunakan Google Cloud's Agent Platform |

506| `VERTEX_REGION_CLAUDE_5_5_OPUS` | Ganti wilayah untuk Claude Opus 5.5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.280 |

504| `VERTEX_REGION_CLAUDE_5_OPUS` | Ganti wilayah untuk Claude Opus 5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.219 |507| `VERTEX_REGION_CLAUDE_5_OPUS` | Ganti wilayah untuk Claude Opus 5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.219 |

505| `VERTEX_REGION_CLAUDE_5_SONNET` | Ganti wilayah untuk Claude Sonnet 5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.197 |508| `VERTEX_REGION_CLAUDE_5_SONNET` | Ganti wilayah untuk Claude Sonnet 5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.197 |

506| `VERTEX_REGION_CLAUDE_FABLE_5` | Ganti wilayah untuk Claude Fable 5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.170 |509| `VERTEX_REGION_CLAUDE_FABLE_5` | Ganti wilayah untuk Claude Fable 5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.170 |


535* Memiliki Claude Code menyelidiki server konektor claude.ai untuk [revisi protokol MCP 2026-07-28](/docs/id/mcp#mcp-client-runtimes) kecuali Anda menetapkan `MCP_PROTOCOL_NEGOTIATION=auto`538* Memiliki Claude Code menyelidiki server konektor claude.ai untuk [revisi protokol MCP 2026-07-28](/docs/id/mcp#mcp-client-runtimes) kecuali Anda menetapkan `MCP_PROTOCOL_NEGOTIATION=auto`

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

537* Mendapatkan [umpan balik yang dibuat Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), yang Claude Code aktifkan melalui flag yang diambil540* Mendapatkan [umpan balik yang dibuat Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), yang Claude Code aktifkan melalui flag yang diambil

541* Memiliki Claude [memperlakukan pasta besar sebagai teks yang ditempel daripada teks yang diketik](/docs/id/terminal-config#how-claude-treats-pasted-text); konten di balik placeholder `[Pasted text #N]` mencapai Claude tanpa tanda

538* Memiliki Claude Code [mengecualikan alat MCP yang skema inputnya akan ditolak API](/docs/id/mcp#tools-with-invalid-input-schemas); ia mengirim skema bagaimanapun, dan permintaan yang menyertakannya gagal dengan [kesalahan 400 yang menyebutkan alat berdasarkan posisinya](/docs/id/errors#tool-input-schema-is-invalid)542* Memiliki Claude Code [mengecualikan alat MCP yang skema inputnya akan ditolak API](/docs/id/mcp#tools-with-invalid-input-schemas); ia mengirim skema bagaimanapun, dan permintaan yang menyertakannya gagal dengan [kesalahan 400 yang menyebutkan alat berdasarkan posisinya](/docs/id/errors#tool-input-schema-is-invalid)

539 543 

540<h3 id="first-session-after-an-install-or-upgrade">544<h3 id="first-session-after-an-install-or-upgrade">

errors.md +157 −9

Details

71| `API Error: 401 Invalid authentication credentials` | [Authentication](#api-error-401-invalid-authentication-credentials) |71| `API Error: 401 Invalid authentication credentials` | [Authentication](#api-error-401-invalid-authentication-credentials) |

72| `Login expired · Please run /login` | [Authentication](#login-expired) |72| `Login expired · Please run /login` | [Authentication](#login-expired) |

73| `Claude login not accepted · Run /login, then try again` | [Authentication](#claude-login-not-accepted) |73| `Claude login not accepted · Run /login, then try again` | [Authentication](#claude-login-not-accepted) |

74| `Artifacts need a claude.ai login` | [Authentication](#artifacts-need-a-claude-ai-login) |

74| `Not signed in to the Cloud gateway — run /login.` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) |75| `Not signed in to the Cloud gateway — run /login.` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) |

75| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) |76| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) |

76| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentication](#login-expired) |77| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentication](#login-expired) |


87| `Issuer mismatch in authorization response (RFC 9207)` | [Authentication](#issuer-mismatch-in-authorization-response) |88| `Issuer mismatch in authorization response (RFC 9207)` | [Authentication](#issuer-mismatch-in-authorization-response) |

88| `Cloud gateway session expired — run /login to reconnect.` | [Authentication](#cloud-gateway-session-expired) |89| `Cloud gateway session expired — run /login to reconnect.` | [Authentication](#cloud-gateway-session-expired) |

89| `Cloud gateway <url> no longer accepts this session` | [Authentication](#cloud-gateway-session-expired) |90| `Cloud gateway <url> no longer accepts this session` | [Authentication](#cloud-gateway-session-expired) |

91| `Sign-in timed out while waiting for you to continue. Try again.` | [Authentication](#sign-in-timed-out-while-waiting-for-you-to-continue) |

90| `AWS credentials expired or invalid` | [Authentication](#aws-credentials-expired-or-invalid) |92| `AWS credentials expired or invalid` | [Authentication](#aws-credentials-expired-or-invalid) |

91| `AWS authentication failed` | [Authentication](#aws-authentication-failed) |93| `AWS authentication failed` | [Authentication](#aws-authentication-failed) |

92| `Google Cloud credentials expired or invalid` | [Authentication](#google-cloud-credentials-expired-or-invalid) |94| `Google Cloud credentials expired or invalid` | [Authentication](#google-cloud-credentials-expired-or-invalid) |


149| `effort '<level>' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |151| `effort '<level>' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) |

150| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |152| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) |

151| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |153| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) |

154| `API Error: 400 orphaned tool_result in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |

155| `API Error: 400 duplicate tool_use ID in conversation history` | [Request errors](#tool-use-or-thinking-block-mismatch) |

152| `[Unsupported tool content removed]` | [Request errors](#unsupported-tool-content-removed) |156| `[Unsupported tool content removed]` | [Request errors](#unsupported-tool-content-removed) |

153| `server_tool_use.name: Input should be` pada setiap putaran sesi yang dilanjutkan | [Request errors](#unsupported-tool-content-removed) |157| `server_tool_use.name: Input should be` pada setiap putaran sesi yang dilanjutkan | [Request errors](#unsupported-tool-content-removed) |

154| `<model> can't help with this. Start a new session to continue` | [Request errors](#usage-policy-refusal) |158| `<model> can't help with this. Start a new session to continue` | [Request errors](#usage-policy-refusal) |

155| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Request errors](#usage-policy-refusal) |159| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Request errors](#usage-policy-refusal) |

156| `<model>'s safeguards flagged this message` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |160| `<model>'s safeguards flagged this message` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

161| `Opus 5.5's safeguards flagged this session` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

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

158| `Installation was killed before it could finish (exit code 137)` | [Installation errors](#installation-was-killed-before-it-could-finish) |163| `Installation was killed before it could finish (exit code 137)` | [Installation errors](#installation-was-killed-before-it-could-finish) |

159| `The connection dropped while downloading the update` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |164| `The connection dropped while downloading the update` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |


199| `No conversation found with session ID: <session-id>` | [Command-line errors](#no-conversation-found-with-the-session-id) |204| `No conversation found with session ID: <session-id>` | [Command-line errors](#no-conversation-found-with-the-session-id) |

200| `Cannot switch renderers in this session` | [Command-line errors](#cannot-switch-renderers-in-this-session) |205| `Cannot switch renderers in this session` | [Command-line errors](#cannot-switch-renderers-in-this-session) |

201| `Cannot switch renderers while work is running in the background` | [Command-line errors](#cannot-switch-renderers-in-this-session) |206| `Cannot switch renderers while work is running in the background` | [Command-line errors](#cannot-switch-renderers-in-this-session) |

207| `Couldn't open Claude Desktop` | [Command-line errors](#couldnt-open-claude-desktop) |

208| `Failed to open Claude Desktop. Please try opening it manually.` | [Command-line errors](#couldnt-open-claude-desktop) |

202| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) |209| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) |

203| `Your Zed keymap isn't a readable list of keybindings` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) |210| `Your Zed keymap isn't a readable list of keybindings` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) |

204| `Skill usage reports are not available on this connection.` | [Command-line errors](#skill-usage-reports-are-not-available-on-this-connection) |211| `Skill usage reports are not available on this connection.` | [Command-line errors](#skill-usage-reports-are-not-available-on-this-connection) |


206| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Command-line errors](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |213| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [Command-line errors](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

207| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin errors](#plugin-eval-is-currently-in-early-access) |214| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin errors](#plugin-eval-is-currently-in-early-access) |

208| `Marketplace "<name>" is registered from an untrusted source` | [Plugin errors](#marketplace-is-registered-from-an-untrusted-source) |215| `Marketplace "<name>" is registered from an untrusted source` | [Plugin errors](#marketplace-is-registered-from-an-untrusted-source) |

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

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

210| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin errors](#plugin-command-references-user-config) |218| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin errors](#plugin-command-references-user-config) |

211| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin errors](#plugin-command-references-user-config) |219| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin errors](#plugin-command-references-user-config) |


216| `Plugin source path refused` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |224| `Plugin source path refused` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |

217| `Failed to load marketplace configuration` | [Plugin errors](#failed-to-load-marketplace-configuration) |225| `Failed to load marketplace configuration` | [Plugin errors](#failed-to-load-marketplace-configuration) |

218| `Marketplace configuration file is corrupted` | [Plugin errors](#failed-to-load-marketplace-configuration) |226| `Marketplace configuration file is corrupted` | [Plugin errors](#failed-to-load-marketplace-configuration) |

227| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin errors](#plugin-is-required-by-your-organization) |

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

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

221| `subagent_type is required: the general-purpose agent is not available in this session` | [Tool errors](#subagent-type-is-required) |230| `subagent_type is required: the general-purpose agent is not available in this session` | [Tool errors](#subagent-type-is-required) |


246| `Can't open MCP settings in a background session` | [Background session errors](#commands-refused-in-a-background-session) |255| `Can't open MCP settings in a background session` | [Background session errors](#commands-refused-in-a-background-session) |

247| `blocked because the path is spelled in a form that cannot be safely resolved` | [Background session errors](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |256| `blocked because the path is spelled in a form that cannot be safely resolved` | [Background session errors](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |

248| `blocked because the path is network-shaped` | [Background session errors](#write-or-command-blocked-because-the-path-names-a-network-location) |257| `blocked because the path is network-shaped` | [Background session errors](#write-or-command-blocked-because-the-path-names-a-network-location) |

258| `is isolated in the worktree <path>, but this command <reason>. Refusing to run it` | [Background session errors](#command-blocked-by-the-worktree-isolation-checks) |

259| `too complex to verify that it stays inside the worktree` | [Background session errors](#command-blocked-by-the-worktree-isolation-checks) |

249| `This session has no saved transcript` | [Background session errors](#this-session-has-no-saved-transcript) |260| `This session has no saved transcript` | [Background session errors](#this-session-has-no-saved-transcript) |

250| `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) |261| `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) |

251| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) |262| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) |


281| `MCP server <name> is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) |292| `MCP server <name> is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) |

282| `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) |293| `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) |

283| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |294| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) |

295| `otelHeadersHelper failed; telemetry is not being exported. See /status: ...` | [Configuration warnings](#otelheadershelper-failed) |

284| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |296| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) |

285| `headersHelper not run — this workspace has no persisted trust` | [Configuration warnings](#headershelper-not-run) |297| `headersHelper not run — this workspace has no persisted trust` | [Configuration warnings](#headershelper-not-run) |

286| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Configuration warnings](#malformed-tool-content-rule) |298| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Configuration warnings](#malformed-tool-content-rule) |


624**Yang harus dilakukan:**636**Yang harus dilakukan:**

625 637 

626* Jalankan `/model` dan pilih varian tanpa akhiran `[1m]` untuk kembali ke jendela konteks standar638* Jalankan `/model` dan pilih varian tanpa akhiran `[1m]` untuk kembali ke jendela konteks standar

627* Di mana pesan menyebutkan `/usage-credits`, jalankan untuk mengaktifkan penagihan terukur untuk varian 1M di Pro dan Max, atau untuk meminta usage credits dari admin Anda di Team dan Enterprise. Mulai ulang Claude Code setelah usage credits aktif. Sampai Anda memulai ulang, sesi tetap pada batas konteks standar.639* Di mana pesan menyebutkan `/usage-credits`, jalankan untuk mengaktifkan penagihan terukur untuk varian 1M di Pro dan Max, atau untuk meminta usage credits dari admin Anda di Team dan Enterprise. Setelah usage credits aktif, mulai ulang Claude Code atau mulai sesi baru, mana pun yang pesan katakan. Sampai saat itu, sesi tetap pada batas konteks standar.

628* Jika kesalahan berlanjut setelah `/model`, ID model 1M mungkin diatur di tempat lain. Lihat [Setting your model](/docs/id/model-config#setting-your-model) untuk lokasi konfigurasi yang harus diperiksa dalam urutan prioritas.640* Jika kesalahan berlanjut setelah `/model`, ID model 1M mungkin diatur di tempat lain. Lihat [Setting your model](/docs/id/model-config#setting-your-model) untuk lokasi konfigurasi yang harus diperiksa dalam urutan prioritas.

629* Untuk menghapus varian 1M dari pemilih model sepenuhnya, atur [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/id/env-vars)641* Untuk menghapus varian 1M dari pemilih model sepenuhnya, atur [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/id/env-vars)

630 642 


861* Jalankan perintah yang dikonfigurasi dalam `apiKeyHelper` secara langsung di shell Anda untuk mereproduksi kegagalan873* Jalankan perintah yang dikonfigurasi dalam `apiKeyHelper` secara langsung di shell Anda untuk mereproduksi kegagalan

862* Jika perintah melaporkan sesi yang kedaluwarsa, autentikasi ulang dengan penyedia kredensial Anda, misalnya dengan masuk kembali ke SSO atau brankas rahasia Anda874* Jika perintah melaporkan sesi yang kedaluwarsa, autentikasi ulang dengan penyedia kredensial Anda, misalnya dengan masuk kembali ke SSO atau brankas rahasia Anda

863* Perbaiki perintah sehingga hanya mencetak kunci ke stdout, sebagai token ASCII yang dapat dicetak tunggal hingga 16.384 karakter, dan keluar dengan kode 0. Lihat [putar kredensial dengan apiKeyHelper](/docs/id/llm-gateway-connect#rotate-credentials-with-apikeyhelper) untuk pengaturan yang berfungsi.875* Perbaiki perintah sehingga hanya mencetak kunci ke stdout, sebagai token ASCII yang dapat dicetak tunggal hingga 16.384 karakter, dan keluar dengan kode 0. Lihat [putar kredensial dengan apiKeyHelper](/docs/id/llm-gateway-connect#rotate-credentials-with-apikeyhelper) untuk pengaturan yang berfungsi.

864* Jalankan `/status` untuk mengonfirmasi bahwa `apiKeyHelper` adalah sumber kredensial aktif. Setiap kali perintah gagal, kode keluar dan output kesalahannya muncul dalam panel `Authentication` di terminal. Sebelum v2.1.212, panel berjudul `Cloud authentication`.876* Jalankan `/status` untuk melihat kegagalan dan konfirmkan bahwa `apiKeyHelper` adalah sumber kredensial aktif. Baris `apiKeyHelper` menunjukkan `Failing` dengan detail kegagalan terakhir, seperti kode keluar dan output kesalahan perintah, dan hilang setelah jalankan yang berhasil berikutnya. Sebelum v2.1.274, `/status` hanya menunjukkan sumber kredensial, bukan kegagalan.

877* Setiap kali perintah gagal, kode keluar dan output kesalahannya juga muncul dalam panel `Authentication` di terminal. Sebelum v2.1.212, panel berjudul `Cloud authentication`.

865 878 

866<h3 id="invalid-request-header-value">879<h3 id="invalid-request-header-value">

867 Nilai header permintaan tidak valid880 Nilai header permintaan tidak valid


1167 1180 

1168* Jalankan `/login`, selesaikan masuk, kemudian mulai sesi lagi1181* Jalankan `/login`, selesaikan masuk, kemudian mulai sesi lagi

1169 1182 

1183<h3 id="artifacts-need-a-claude-ai-login">

1184 Artefak memerlukan login claude.ai

1185</h3>

1186 

1187Claude Code menolak [artefak](/docs/id/artifacts) publikasi atau baca karena sesi tidak memiliki login claude.ai yang dapat digunakan untuk artefak.

1188 

1189Setiap bentuk pesan dimulai dengan kata-kata yang sama, diikuti dengan solusi yang tergantung pada cara sesi Anda autentikasi. Tanpa kredensial yang bersaing, itu berbunyi:

1190 

1191```text theme={null}

1192Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.

1193```

1194 

1195**Yang harus dilakukan:**

1196 

1197* Jalankan `/login` dan pilih **Claude account with subscription**. Opsi **Anthropic Console account** tidak menyediakan kredensial claude.ai.

1198* Ketika pesan menamai kredensial yang mengambil prioritas, seperti `ANTHROPIC_API_KEY`, pengaturan `apiKeyHelper`, atau kunci Console yang disimpan oleh `/login` sebelumnya, hapus dengan cara yang dikatakan pesan, kemudian jalankan `/login`

1199* Ketika pesan mengatakan sesi jarak jauh ini autentikasi melalui mesin yang meluncurkannya, masuk ke claude.ai di mesin itu, kemudian hubungkan kembali sesi

1200* Ketika pesan mengatakan kredensial disuntikkan oleh lingkungan host sesi, Anda tidak dapat mengubahnya dalam sesi itu; mulai sesi yang masuk ke claude.ai

1201* Lihat [Ketersediaan](/docs/id/artifacts#availability) untuk persyaratan lain yang dimiliki artefak, seperti paket, penyedia model, dan kebijakan organisasi

1202 

1170<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1203<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1171 Kebijakan administrator memerlukan masuk Cloud gateway1204 Kebijakan administrator memerlukan masuk Cloud gateway

1172</h3>1205</h3>


1535* Jalankan `/login` dalam sesi dan selesaikan masuk browser1568* Jalankan `/login` dalam sesi dan selesaikan masuk browser

1536* Untuk peluncuran non-interaktif, mulai `claude` di lingkungan yang sama, jalankan `/login`, kemudian jalankan kembali perintah Anda1569* Untuk peluncuran non-interaktif, mulai `claude` di lingkungan yang sama, jalankan `/login`, kemudian jalankan kembali perintah Anda

1537 1570 

1571<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1572 Masuk tidak diterima ke Cloud gateway

1573</h3>

1574 

1575Anda mencoba memulai [sesi cloud](/docs/id/claude-code-on-the-web), dan server menolak untuk membuatnya dengan 401: itu tidak menerima login Claude yang dikirim mesin ini, biasanya karena login kedaluwarsa atau dicabut.

1576 

1577Bagian pertama dari baris adalah alasan server sendiri ketika memberikan satu. Jika tidak, baris berbunyi:

1578 

1579```text theme={null}

1580Claude login not accepted · Run /login, then try again

1581```

1582 

1583**Yang harus dilakukan:**

1584 

1585* Jalankan `/login`, selesaikan masuk, kemudian mulai sesi lagi

1586 

1538<h3 id="gateway-refused-the-request">1587<h3 id="gateway-refused-the-request">

1539 Gateway menolak permintaan1588 Gateway menolak permintaan

1540</h3>1589</h3>


2268 2317 

2269**Yang harus dilakukan:**2318**Yang harus dilakukan:**

2270 2319 

2271* Jalankan `claude update` dan mulai ulang Claude Code. Opus 4.7 memerlukan v2.1.111 atau lebih baru. Opus 4.8 memerlukan v2.1.154 atau lebih baru. Sonnet 5 memerlukan v2.1.197 atau lebih baru. Opus 5 memerlukan v2.1.219 atau lebih baru2320* Jalankan `claude update` dan mulai ulang Claude Code. Opus 4.7 memerlukan v2.1.111 atau lebih baru. Opus 4.8 memerlukan v2.1.154 atau lebih baru. Sonnet 5 memerlukan v2.1.197 atau lebih baru. Opus 5 memerlukan v2.1.219 atau lebih baru. Opus 5.5 memerlukan v2.1.280 atau lebih baru

2272* Jika Anda tidak dapat meningkatkan, jalankan `/model` dan pilih Opus 4.6 atau Sonnet 4.6 sebagai gantinya2321* Jika Anda tidak dapat meningkatkan, jalankan `/model` dan pilih Opus 4.6 atau Sonnet 4.6 sebagai gantinya

2273* Jika Anda mencapai ini di [Agent SDK](/docs/id/agent-sdk/overview), tingkatkan paket SDK sebagai gantinya. Opus 4.8 memerlukan TypeScript SDK v0.3.154 atau lebih baru dan Python SDK v0.2.88 atau lebih baru. Sonnet 5 memerlukan TypeScript SDK v0.3.197 atau lebih baru. Opus 5 memerlukan TypeScript SDK v0.3.219 atau lebih baru2322* Jika Anda mencapai ini di [Agent SDK](/docs/id/agent-sdk/overview), tingkatkan paket SDK sebagai gantinya. Opus 4.8 memerlukan TypeScript SDK v0.3.154 atau lebih baru dan Python SDK v0.2.88 atau lebih baru. Sonnet 5 memerlukan TypeScript SDK v0.3.197 atau lebih baru. Opus 5 memerlukan TypeScript SDK v0.3.219 atau lebih baru. Opus 5.5 memerlukan TypeScript SDK v0.3.280 atau lebih baru

2274 2323 

2275<h3 id="effort-isnt-available-with-thinking-turned-off">2324<h3 id="effort-isnt-available-with-thinking-turned-off">

2276 Effort tidak tersedia dengan pemikiran dimatikan2325 Effort tidak tersedia dengan pemikiran dimatikan


2314 2363 

2315```text theme={null}2364```text theme={null}

2316API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.2365API Error: 400 due to tool use concurrency issues. Run /rewind to recover the conversation.

2366API Error: 400 orphaned tool_result in conversation history. Run /rewind to recover the conversation.

2367API Error: 400 duplicate tool_use ID in conversation history. Run /rewind to recover the conversation.

2317API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks2368API Error: 400 ... unexpected `tool_use_id` found in `tool_result` blocks

2318API Error: 400 ... thinking blocks ... cannot be modified2369API Error: 400 ... thinking blocks ... cannot be modified

2319```2370```

2320 2371 

2321Ketiga varian berarti hal yang sama: urutan blok `tool_use`, `tool_result`, dan `thinking` dalam riwayat tidak lagi cocok dengan apa yang diharapkan API.2372Semua varian berarti hal yang sama: urutan blok `tool_use`, `tool_result`, dan `thinking` dalam riwayat tidak lagi cocok dengan apa yang diharapkan API.

2322 2373 

2323**Yang harus dilakukan:**2374**Yang harus dilakukan:**

2324 2375 


2376API 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-claude2427API 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-claude

2377```2428```

2378 2429 

2379Pesan menautkan ke [Program Verifikasi Siber](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), yang memberikan akses untuk pekerjaan keamanan siber yang sah.2430Pesan menautkan ke [Program Verifikasi Siber](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude), yang memberikan akses untuk pekerjaan keamanan siber yang sah. Di Opus 5.5, yang memerlukan v2.1.280 atau lebih baru, pesan dibuka dengan `Opus 5.5's safeguards flagged this session` sebagai gantinya. Ketika kategori yang ditandai memiliki model fallback yang tersedia, Claude Code [beralih model](/docs/id/model-config#automatic-model-fallback) bukan menampilkan kesalahan ini.

2380 2431 

2381Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Platform Agent Google Cloud](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), bendera keamanan siber menghasilkan pesan [Penolakan Kebijakan Penggunaan](#usage-policy-refusal) sebagai gantinya.2432Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Platform Agent Google Cloud](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), bendera keamanan siber menghasilkan pesan [Penolakan Kebijakan Penggunaan](#usage-policy-refusal) sebagai gantinya.

2382 2433 


3087**Yang harus dilakukan:**3138**Yang harus dilakukan:**

3088 3139 

3089* Jalankan `claude --resume <session-id>` dengan ID sesi dari pesan untuk retry3140* Jalankan `claude --resume <session-id>` dengan ID sesi dari pesan untuk retry

3141* Jika setiap retry gagal dengan cara yang sama, jalankan `claude update` dan resume lagi. Versi sebelum v2.1.275 gagal resume ketika transkrip yang disimpan berisi entri yang tidak dapat dibaca.

3090* Jika retry gagal lagi, jalankan `claude` untuk memulai sesi baru3142* Jika retry gagal lagi, jalankan `claude` untuk memulai sesi baru

3091 3143 

3092<h3 id="no-conversation-found-with-the-session-id">3144<h3 id="no-conversation-found-with-the-session-id">


3139 3191 

3140* Dalam sesi yang dimulai tanpa pembatasan itu, jalankan `/tui fullscreen`, atau `/tui default` untuk beralih kembali. Claude Code menyimpan pengaturan [`tui`](/docs/id/settings-reference#tui) di sana3192* Dalam sesi yang dimulai tanpa pembatasan itu, jalankan `/tui fullscreen`, atau `/tui default` untuk beralih kembali. Claude Code menyimpan pengaturan [`tui`](/docs/id/settings-reference#tui) di sana

3141 3193 

3194<h3 id="couldnt-open-claude-desktop">

3195 Couldn't open Claude Desktop

3196</h3>

3197 

3198Anda menjalankan [`/desktop`](/docs/id/desktop#coming-from-the-cli), atau alias `/app`-nya, dan perintah sistem yang Claude Code gunakan untuk membuka Claude Desktop gagal. Sesi tetap di terminal.

3199 

3200```text theme={null}

3201Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and run /desktop again.

3202```

3203 

3204**Yang harus dilakukan:**

3205 

3206* Buka Claude Desktop sendiri, kemudian jalankan `/desktop` lagi

3207* Untuk membaca output kesalahan lengkap perintah itu, aktifkan debug logging dengan `/debug`, jalankan `/desktop` lagi, dan periksa log debug

3208 

3209Sebelum v2.1.275, pesan adalah `Failed to open Claude Desktop. Please try opening it manually.` dan tidak mengatakan apa yang gagal.

3210 

3142<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3211<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3143 /terminal-setup meninggalkan keymap Zed Anda tidak berubah3212 /terminal-setup meninggalkan keymap Zed Anda tidak berubah

3144</h3>3213</h3>


3256* Jika Anda menerbitkan marketplace pihak ketiga yang menggunakan nama sebelum dicadangkan, ubah namanya dan minta pengguna untuk menambahkannya kembali dari sumber Anda3325* Jika Anda menerbitkan marketplace pihak ketiga yang menggunakan nama sebelum dicadangkan, ubah namanya dan minta pengguna untuk menambahkannya kembali dari sumber Anda

3257* Lihat daftar nama yang dicadangkan di bawah [Marketplace schema](/docs/id/plugin-marketplaces#marketplace-schema)3326* Lihat daftar nama yang dicadangkan di bawah [Marketplace schema](/docs/id/plugin-marketplaces#marketplace-schema)

3258 3327 

3328<h3 id="marketplace-is-already-added-from-a-different-source">

3329 Marketplace is already added from a different source

3330</h3>

3331 

3332Anda mengonfirmasi penambahan marketplace melalui [`/plugin install <plugin> --marketplace <source>`](/docs/id/discover-plugins#add-a-marketplace-and-install-in-one-command), dan katalog yang Claude Code ambil dari sumber itu menamai dirinya sama dengan marketplace yang sudah Anda tambahkan dari sumber berbeda. Claude Code menyimpan marketplace yang ada daripada menggantinya, dan plugin tidak terpasang.

3333 

3334```text theme={null}

3335Marketplace "acme-tools" is already added from a different source (github:acme/plugins). To use this source instead, remove that marketplace first with /plugin marketplace remove acme-tools.

3336```

3337 

3338**Yang harus dilakukan:**

3339 

3340* Jika marketplace yang sudah Anda tambahkan adalah yang Anda inginkan, pasang dari sana berdasarkan nama: `/plugin install <plugin>@<name>`

3341* Untuk beralih ke sumber baru, jalankan `/plugin marketplace remove <name>`, kemudian coba instalasi lagi

3342 

3259<h3 id="plugin-command-references-user-config">3343<h3 id="plugin-command-references-user-config">

3260 Plugin command references user\_config in a shell command3344 Plugin command references user\_config in a shell command

3261</h3>3345</h3>


3380[Entri marketplace](/docs/id/plugin-marketplaces#plugin-entries) plugin mendeklarasikan jalur sumber yang Claude Code tidak dapat diselesaikan ke lokasi di dalam direktori marketplace itu sendiri, jadi plugin tidak memasang atau memuat. Penolakan mencakup:3464[Entri marketplace](/docs/id/plugin-marketplaces#plugin-entries) plugin mendeklarasikan jalur sumber yang Claude Code tidak dapat diselesaikan ke lokasi di dalam direktori marketplace itu sendiri, jadi plugin tidak memasang atau memuat. Penolakan mencakup:

3381 3465 

3382* Jalur entri yang absolut, memanjat keluar dari marketplace dengan `..`, atau dieja seperti jalur jaringan3466* Jalur entri yang absolut, memanjat keluar dari marketplace dengan `..`, atau dieja seperti jalur jaringan

3467* Di macOS dan Linux, jalur entri yang berisi backslash di mana pun setelah `./` terkemuka

3383* Entri di marketplace yang diambil dari sumber jarak jauh, seperti git atau URL, yang mencapai targetnya melalui symlink yang diselesaikan di luar direktori marketplace3468* Entri di marketplace yang diambil dari sumber jarak jauh, seperti git atau URL, yang mencapai targetnya melalui symlink yang diselesaikan di luar direktori marketplace

3384* Entri relatif di marketplace yang ditambahkan dari URL langsung ke `marketplace.json`: Claude Code hanya mengunduh file itu, jadi tidak ada file plugin lokal untuk jalur yang dinamai. Lihat [Plugins with relative paths fail in URL-based marketplaces](/docs/id/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)3469* Entri relatif di marketplace yang ditambahkan dari URL langsung ke `marketplace.json`: Claude Code hanya mengunduh file itu, jadi tidak ada file plugin lokal untuk jalur yang dinamai. Lihat [Plugins with relative paths fail in URL-based marketplaces](/docs/id/plugin-marketplaces#plugins-with-relative-paths-fail-in-url-based-marketplaces)

3385 3470 


3397 3482 

3398**Yang harus dilakukan:**3483**Yang harus dilakukan:**

3399 3484 

3400* Jika Anda memelihara marketplace, tulis `source` entri sebagai jalur relatif biasa seperti `./plugins/my-plugin`, dan jaga agar symlink apa pun yang dilintasinya menunjuk ke dalam direktori marketplace3485* Jika Anda memelihara marketplace, tulis `source` entri sebagai jalur relatif biasa dengan garis miring maju, seperti `./plugins/my-plugin`, dan jaga agar symlink apa pun yang dilintasinya menunjuk ke dalam direktori marketplace

3401* Jika Anda menambahkan marketplace dari URL langsung, entri relatif tidak dapat diselesaikan. Minta penulis marketplace untuk menggunakan [sumber plugin lain](/docs/id/plugin-marketplaces#plugin-sources), atau tambahkan marketplace dari repositori git-nya sebagai gantinya3486* Jika Anda menambahkan marketplace dari URL langsung, entri relatif tidak dapat diselesaikan. Minta penulis marketplace untuk menggunakan [sumber plugin lain](/docs/id/plugin-marketplaces#plugin-sources), atau tambahkan marketplace dari repositori git-nya sebagai gantinya

3402 3487 

3403<h3 id="failed-to-load-marketplace-configuration">3488<h3 id="failed-to-load-marketplace-configuration">


3424* Buka `~/.claude/plugins/known_marketplaces.json` dan perbaiki JSON, atau perbaiki entri yang pesan namakan sebagai tidak cocok dengan skema registri3509* Buka `~/.claude/plugins/known_marketplaces.json` dan perbaiki JSON, atau perbaiki entri yang pesan namakan sebagai tidak cocok dengan skema registri

3425* Jika Anda tidak dapat memperbaikinya, hapus file atau ganti isinya dengan `{}`, kemudian tambahkan kembali setiap marketplace dengan `claude plugin marketplace add <source>`. Claude Code mendaftarkan kembali marketplace yang dideklarasikan pengaturan pengguna atau terkelola Anda dalam [`extraKnownMarketplaces`](/docs/id/settings-reference#extraknownmarketplaces) lain kali Anda memulainya di folder yang telah Anda percayai.3510* Jika Anda tidak dapat memperbaikinya, hapus file atau ganti isinya dengan `{}`, kemudian tambahkan kembali setiap marketplace dengan `claude plugin marketplace add <source>`. Claude Code mendaftarkan kembali marketplace yang dideklarasikan pengaturan pengguna atau terkelola Anda dalam [`extraKnownMarketplaces`](/docs/id/settings-reference#extraknownmarketplaces) lain kali Anda memulainya di folder yang telah Anda percayai.

3426 3511 

3512<h3 id="plugin-is-required-by-your-organization">

3513 Plugin is required by your organization

3514</h3>

3515 

3516Anda menjalankan `claude plugin disable`, atau menggunakan tab **Installed** `/plugin`, untuk mematikan [plugin yang disinkronkan dari claude.ai](/docs/id/plugins-reference#synced-plugins) yang organisasi Anda tandai sebagai diperlukan:

3517 

3518```text theme={null}

3519Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.

3520```

3521 

3522Claude Code tidak menyimpan apa pun dan plugin tetap diaktifkan.

3523 

3524Ketika Anda mencoba menonaktifkan plugin yang diperlukan oleh plugin yang diperlukan, Claude Code menolak dengan cara yang sama, dengan pesan yang menamai plugin yang diperlukan yang membutuhkannya.

3525 

3526**Yang harus dilakukan:**

3527 

3528* Tanyakan admin organisasi claude.ai Anda untuk mengubah status yang diperlukan plugin di claude.ai

3529 

3427<h2 id="tool-errors">3530<h2 id="tool-errors">

3428 Kesalahan alat3531 Kesalahan alat

3429</h2>3532</h2>


3452 3555 

3453* Perbaiki setiap entri yang dinamai kesalahan terhadap [alat yang tersedia untuk subagent](/docs/id/sub-agents#available-tools)3556* Perbaiki setiap entri yang dinamai kesalahan terhadap [alat yang tersedia untuk subagent](/docs/id/sub-agents#available-tools)

3454* Hapus entri untuk alat yang tidak dimiliki sesi, seperti alat MCP dari server yang tidak terhubung3557* Hapus entri untuk alat yang tidak dimiliki sesi, seperti alat MCP dari server yang tidak terhubung

3455* Untuk alat yang [subagent latar belakang lepaskan](/docs/id/sub-agents#available-tools), seperti `LSP`, hapus entri. Untuk menyimpan alat, [matikan mode fork](/docs/id/sub-agents#turn-fork-mode-on-or-off) dan minta Claude menjalankan subagent di foreground3558* Untuk alat yang [subagent latar belakang lepaskan](/docs/id/sub-agents#available-tools), seperti `CronCreate`, hapus entri. Untuk menyimpan alat, [matikan mode fork](/docs/id/sub-agents#turn-fork-mode-on-or-off) dan minta Claude menjalankan subagent di foreground

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

3457* Untuk daftar `tools` yang hanya berisi `Agent`, naikkan [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) atau berikan agen setidaknya satu alat lain: Claude Code menahan `Agent` pada batas itu, jadi daftar tanpa yang lain di dalamnya diselesaikan ke tidak ada alat3560* Untuk daftar `tools` yang hanya berisi `Agent`, naikkan [batas kedalaman](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents) atau berikan agen setidaknya satu alat lain: Claude Code menahan `Agent` pada batas itu, jadi daftar tanpa yang lain di dalamnya diselesaikan ke tidak ada alat

3458 3561 


3812* Biasanya tidak ada: Claude mencoba lagi dengan ejaan lokal yang diminta pesan3915* Biasanya tidak ada: Claude mencoba lagi dengan ejaan lokal yang diminta pesan

3813* Jika file berada di bagian jaringan daripada file lokal yang dieja dengan jalur jaringan, file tersebut berada di luar ruang kerja lokal sesi Anda; editnya dari sesi interaktif biasa sebagai gantinya3916* Jika file berada di bagian jaringan daripada file lokal yang dieja dengan jalur jaringan, file tersebut berada di luar ruang kerja lokal sesi Anda; editnya dari sesi interaktif biasa sebagai gantinya

3814 3917 

3918<h3 id="command-blocked-by-the-worktree-isolation-checks">

3919 Perintah diblokir oleh pemeriksaan isolasi worktree

3920</h3>

3921 

3922Claude menjalankan perintah Bash atau Monitor dalam [sesi yang terisolasi dalam worktree](/docs/id/worktrees#how-claude-code-enforces-isolation), dan Claude Code menolaknya karena salah satu dari dua alasan:

3923 

3924* Perintah menunjukkan git ke checkout utama.

3925* Claude Code tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap berada di dalam worktree. Perintah yang tidak pernah menamai git masih dapat ditolak karena alasan ini, karena memperluas indirection variabel seperti `${!name}` atau menjalankan substitusi fungsi Bash seperti `${ command; }` menghasilkan nilai pada runtime yang dapat menjadi perintah itu sendiri.

3926 

3927Bagian tengah pesan menamai apa yang tidak dapat diverifikasi:

3928 

3929```text wrap theme={null}

3930This session is isolated in the worktree /path/to/worktree, but this command evaluates ${!x@P} arithmetically inside a construct too complex to verify, which can run a command hidden in a variable's value. Refusing to run it — a worktree-isolated session's git operations must target its own worktree. Split it into plain, separate commands and run them from /path/to/worktree.

3931```

3932 

3933**Yang harus dilakukan:**

3934 

3935* Biasanya tidak ada: Claude membaca pesan dan menulis ulang perintah dengan cara yang diminta kalimat terakhirnya

3936* Jika perintah yang Anda minta terus ditolak, ejakan nilai yang ditandai secara harfiah: ganti indirection atau substitusi dengan nilainya, dan jalankan git sebagai perintah biasa terpisahnya dari dalam worktree

3937* Untuk bertindak pada checkout utama dengan sengaja, jalankan perintah sendiri di terminal di luar sesi

3938 

3815<h3 id="this-session-has-no-saved-transcript">3939<h3 id="this-session-has-no-saved-transcript">

3816 Sesi ini tidak memiliki transkrip yang disimpan3940 Sesi ini tidak memiliki transkrip yang disimpan

3817</h3>3941</h3>


4201 4325 

4202Claude Code menghapus backup sesi dalam [retention sweep](/docs/id/claude-directory#cleaned-up-automatically), secara default sekitar 30 hari setelah sesi terakhir menyimpannya. Jika Anda melanjutkan sesi setelah itu, `/rewind` masih mencantumkan checkpoint-nya, tetapi rewind ke salah satunya dapat gagal dengan kesalahan ini. Jika pesan juga mengatakan `N paths were skipped for link safety`, lihat [Restored the code, but skipped files](#restored-the-code-but-skipped-files) untuk jalur-jalur tersebut.4326Claude Code menghapus backup sesi dalam [retention sweep](/docs/id/claude-directory#cleaned-up-automatically), secara default sekitar 30 hari setelah sesi terakhir menyimpannya. Jika Anda melanjutkan sesi setelah itu, `/rewind` masih mencantumkan checkpoint-nya, tetapi rewind ke salah satunya dapat gagal dengan kesalahan ini. Jika pesan juga mengatakan `N paths were skipped for link safety`, lihat [Restored the code, but skipped files](#restored-the-code-but-skipped-files) untuk jalur-jalur tersebut.

4203 4327 

4328Ketika Anda fork sesi, misalnya dengan [`--fork-session`](/docs/id/cli-reference#cli-flags) atau [`/branch`](/docs/id/sessions#branch-a-session), Claude Code menyalin backup sesi asli ke fork. Ketika Claude Code tidak dapat menyalin backup, misalnya karena disk penuh, backup tersebut hilang di fork. Rewind ke checkpoint yang membutuhkannya dapat gagal dengan kesalahan ini.

4329 

4204**Yang harus dilakukan:**4330**Yang harus dilakukan:**

4205 4331 

4206* Batalkan perubahan dengan cara lain: minta Claude untuk membalikkan edit-nya, atau pulihkan file dari version control. Ketika backup hilang, menjalankan `/rewind` lagi gagal dengan cara yang sama.4332* Batalkan perubahan dengan cara lain: minta Claude untuk membalikkan edit-nya, atau pulihkan file dari version control. Ketika backup hilang, menjalankan `/rewind` lagi gagal dengan cara yang sama.


4458* Jika Anda mengelola mesin, perbaiki dokumen yang dinamai sehingga diuraikan sebagai objek JSON, atau hapus file, profil, atau nilai registry. `managed-settings.json` kosong dihitung sebagai `{}` dan tidak memblokir peluncuran.4584* Jika Anda mengelola mesin, perbaiki dokumen yang dinamai sehingga diuraikan sebagai objek JSON, atau hapus file, profil, atau nilai registry. `managed-settings.json` kosong dihitung sebagai `{}` dan tidak memblokir peluncuran.

4459* Jika tidak, minta administrator Anda untuk memperbaiki dokumen yang diterapkan. Tidak ada dalam file pengaturan Anda sendiri yang menyebabkan atau menghapus kesalahan ini.4585* Jika tidak, minta administrator Anda untuk memperbaiki dokumen yang diterapkan. Tidak ada dalam file pengaturan Anda sendiri yang menyebabkan atau menghapus kesalahan ini.

4460 4586 

4587<h3 id="otelheadershelper-failed">

4588 otelHeadersHelper gagal

4589</h3>

4590 

4591Claude Code menampilkan peringatan ini sebagai notifikasi dalam antarmuka terminal, sekali per sesi interaktif, ketika skrip [`otelHeadersHelper`](/docs/id/settings-reference#otelheadershelper) gagal atau mencetak output yang tidak memenuhi [persyaratan skrip](/docs/id/monitoring-usage#script-requirements).

4592 

4593Sementara skrip terus gagal, ekspor gagal dan backend telemetri Anda tidak menerima apa pun dari sesi.

4594 

4595Teks setelah `See /status:` mengatakan apa yang gagal, seperti kode keluar skrip diikuti oleh output kesalahannya:

4596 

4597```text theme={null}

4598otelHeadersHelper failed; telemetry is not being exported. See /status: exited 1: token service unreachable

4599```

4600 

4601**Yang harus dilakukan:**

4602 

4603* Jalankan `/status` untuk membaca detail kegagalan.

4604* Perbaiki skrip sehingga keluar 0 dalam 30 detik dan mencetak objek JSON dari nilai header string di stdout. Lihat [script requirements](/docs/id/monitoring-usage#script-requirements).

4605* Jika organisasi Anda menerapkan skrip melalui [managed settings](/docs/id/managed-settings), minta siapa pun yang memeliharanya untuk memperbaikinya.

4606 

4607Dalam [mode non-interaktif](/docs/id/headless) dengan `-p`, kegagalan yang sama muncul di stderr sebagai `otelHeadersHelper failed (OpenTelemetry export headers unavailable): <error>` sebagai gantinya.

4608 

4461<h3 id="headershelper-not-run">4609<h3 id="headershelper-not-run">

4462 headersHelper tidak dijalankan4610 headersHelper tidak dijalankan

4463</h3>4611</h3>


4652 4800 

4653* [`--fallback-model`](/docs/id/cli-reference#cli-flags) yang dikonfigurasi mengambil alih setelah kesalahan ketersediaan, hanya untuk giliran itu, dengan pemberitahuan dalam transkrip4801* [`--fallback-model`](/docs/id/cli-reference#cli-flags) yang dikonfigurasi mengambil alih setelah kesalahan ketersediaan, hanya untuk giliran itu, dengan pemberitahuan dalam transkrip

4654* Pemeriksaan startup Amazon Bedrock atau Google Cloud's Agent Platform menemukan model default Anda tidak tersedia4802* Pemeriksaan startup Amazon Bedrock atau Google Cloud's Agent Platform menemukan model default Anda tidak tersedia

4655* [Fallback model otomatis](/docs/id/model-config#automatic-model-fallback) pada Fable 5.1, Fable 5, dan Opus 5 memindahkan sesi ke model fallback kategori yang ditandai, ketika kategori itu memiliki satu, dan menampilkan pemberitahuan dalam transkrip4803* [Fallback model otomatis](/docs/id/model-config#automatic-model-fallback) pada Fable 5.1, Fable 5, Opus 5.5, dan Opus 5 memindahkan sesi ke model fallback kategori yang ditandai, ketika kategori itu memiliki satu, dan menampilkan pemberitahuan dalam transkrip

4656 4804 

4657Pemeriksaan Model selection di bawah menangkap kasus kedua dan ketiga; yang pertama muncul sebagai pemberitahuan transkrip daripada perubahan `/model`. [Model configuration](/docs/id/model-config) menjelaskan kapan setiap fallback berlaku.4805Pemeriksaan Model selection di bawah menangkap kasus kedua dan ketiga; yang pertama muncul sebagai pemberitahuan transkrip daripada perubahan `/model`. [Model configuration](/docs/id/model-config) menjelaskan kapan setiap fallback berlaku.

4658 4806 

fast-mode.md +12 −7

Details

12 12 

13Mode cepat adalah konfigurasi kecepatan tinggi untuk Claude Opus, membuat model hingga 2,5x lebih cepat dengan biaya per token yang lebih tinggi. Aktifkan dengan `/fast` ketika Anda membutuhkan kecepatan untuk pekerjaan interaktif seperti iterasi cepat atau debugging langsung, dan nonaktifkan ketika biaya lebih penting daripada latensi.13Mode cepat adalah konfigurasi kecepatan tinggi untuk Claude Opus, membuat model hingga 2,5x lebih cepat dengan biaya per token yang lebih tinggi. Aktifkan dengan `/fast` ketika Anda membutuhkan kecepatan untuk pekerjaan interaktif seperti iterasi cepat atau debugging langsung, dan nonaktifkan ketika biaya lebih penting daripada latensi.

14 14 

15Mode cepat bukan model yang berbeda. Mode ini menggunakan Claude Opus dengan konfigurasi API berbeda yang memprioritaskan kecepatan daripada efisiensi biaya. Anda mendapatkan kualitas dan kemampuan yang identik dengan respons yang lebih cepat. Mode cepat didukung pada Opus 5 dan Opus 4.8. Mode ini tidak tersedia pada Sonnet, Haiku, atau model lainnya.15Mode cepat bukan model yang berbeda. Mode ini menggunakan Claude Opus dengan konfigurasi API berbeda yang memprioritaskan kecepatan daripada efisiensi biaya. Anda mendapatkan kualitas dan kemampuan yang identik dengan respons yang lebih cepat. Mode cepat didukung pada Opus 5.5, Opus 5, dan Opus 4.8. Mode ini tidak tersedia pada Sonnet, Haiku, atau model lainnya.

16 16 

17Claude Code memperlakukan Opus 4.7 seperti model lainnya tanpa dukungan mode cepat: beralih ke model tersebut mematikan mode cepat. Mode cepat untuk Opus 4.7 sudah usang pada 25 Juni 2026, dan dihapus pada 24 Juli 2026.17Opus 4.7 tidak mendukung mode cepat, jadi beralih ke model tersebut mematikan mode cepat. Mode cepat untuk Opus 4.7 sudah usang pada 25 Juni 2026, dan dihapus pada 24 Juli 2026.

18 18 

19Yang perlu diketahui:19Yang perlu diketahui:

20 20 

21* Gunakan `/fast` untuk mengaktifkan mode cepat di Claude Code CLI. Ekstensi VS Code mengikuti pengaturan [`fastMode`](#toggle-fast-mode) Anda dan menawarkan perintah **Toggle fast mode** ketika model yang dipilih mendukung mode cepat.21* Gunakan `/fast` untuk mengaktifkan mode cepat di Claude Code CLI. Ekstensi [VS Code](/docs/id/vs-code) menawarkan perintah **Toggle fast mode** ketika model yang dipilih mendukung mode cepat. Claude Code menyimpan pengaturan tersebut ke pengaturan [`fastMode`](#toggle-fast-mode) Anda.

22* Harga mode cepat per MTok input/output adalah \$10/\$50 pada Opus 5 dan Opus 4.8.22* Harga mode cepat per MTok input/output adalah \$8/\$40 pada Opus 5.5 dan \$10/\$50 pada Opus 5 dan Opus 4.8.

23* Tersedia untuk pengguna Claude Code pada paket berlangganan (Pro/Max/Team/Enterprise) dan di Claude Console. Organisasi Team dan Enterprise memerlukan Owner untuk mengaktifkannya terlebih dahulu, dan organisasi Console memerlukan akses yang disediakan terlebih dahulu, keduanya dijelaskan di bawah [Persyaratan](#requirements).23* Tersedia untuk pengguna Claude Code pada paket berlangganan (Pro/Max/Team/Enterprise) dan di Claude Console. Organisasi Team dan Enterprise memerlukan Owner untuk mengaktifkannya terlebih dahulu, dan organisasi Console memerlukan akses yang disediakan terlebih dahulu, keduanya dijelaskan di bawah [Persyaratan](#requirements).

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

25 25 


29 29 

30Dalam CLI, aktifkan mode cepat dengan salah satu cara berikut:30Dalam CLI, aktifkan mode cepat dengan salah satu cara berikut:

31 31 

32* Ketik `/fast` dan tekan Tab untuk mengaktifkan atau menonaktifkan32* Jalankan `/fast`, tekan Space untuk mengaktifkan atau menonaktifkan, kemudian tekan Enter untuk mengonfirmasi

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

34 34 

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


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

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

49 49 

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

51 51 

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

53 53 


80 80 

81| Model | Input (MTok) | Output (MTok) |81| Model | Input (MTok) | Output (MTok) |

82| -------- | ------------ | ------------- |82| -------- | ------------ | ------------- |

83| Opus 5.5 | \$8 | \$40 |

83| Opus 5 | \$10 | \$50 |84| Opus 5 | \$10 | \$50 |

84| Opus 4.8 | \$10 | \$50 |85| Opus 4.8 | \$10 | \$50 |

85 86 


145* **Aktivasi Owner untuk Teams dan Enterprise**: mode cepat dinonaktifkan secara default untuk organisasi Teams dan Enterprise. Seorang Owner harus secara eksplisit [mengaktifkan mode cepat](#enable-fast-mode-for-your-organization) sebelum pengguna dapat mengaksesnya.146* **Aktivasi Owner untuk Teams dan Enterprise**: mode cepat dinonaktifkan secara default untuk organisasi Teams dan Enterprise. Seorang Owner harus secara eksplisit [mengaktifkan mode cepat](#enable-fast-mode-for-your-organization) sebelum pengguna dapat mengaksesnya.

146 147 

147<Note>148<Note>

148 Dua pengaturan organisasi dapat memblokir pengaktifan mode cepat dengan `/fast`:149 Empat pengaturan organisasi dapat memblokir pengaktifan mode cepat dengan `/fast`:

149 150 

150 * **Mode cepat tidak diaktifkan**: jika mode cepat belum diaktifkan untuk organisasi Anda, mengaktifkan mode cepat dengan `/fast` menampilkan "Fast mode has been disabled by your organization."151 * **Mode cepat tidak diaktifkan**: jika mode cepat belum diaktifkan untuk organisasi Anda, mengaktifkan mode cepat dengan `/fast` menampilkan "Fast mode has been disabled by your organization."

152 * **Mode cepat dimatikan oleh pengaturan yang dikelola**: jika organisasi Anda menerapkan [pengaturan yang dikelola](/docs/id/managed-settings) yang menetapkan [`fastMode: false`](/docs/id/settings-reference#fastmode), mengaktifkan mode cepat dengan `/fast` menampilkan pesan "Fast mode has been disabled by your organization" yang sama.

153 * **Opt-in per sesi diperlukan**: pengaturan yang dikelola yang menetapkan [`fastModePerSessionOptIn: true`](#require-per-session-opt-in) menolak `/fast on` dengan pesan yang sama di mana-mana kecuali sesi terminal interaktif.

151 * **Model mode cepat tidak diizinkan**: jika daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda mengecualikan model Opus mode cepat, mengaktifkannya ditolak dengan "is not in your organization's allowed models". Dalam sesi yang sudah berjalan pada model Opus yang diizinkan yang mendukung mode cepat, `/fast` malah mengaktifkan mode cepat pada model Anda saat ini tanpa beralih model.154 * **Model mode cepat tidak diizinkan**: jika daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda mengecualikan model Opus mode cepat, mengaktifkannya ditolak dengan "is not in your organization's allowed models". Dalam sesi yang sudah berjalan pada model Opus yang diizinkan yang mendukung mode cepat, `/fast` malah mengaktifkan mode cepat pada model Anda saat ini tanpa beralih model.

152</Note>155</Note>

153 156 


204 207 

205Ini berguna untuk mengontrol biaya di organisasi di mana pengguna menjalankan beberapa sesi bersamaan. Preferensi mode cepat pengguna masih disimpan, jadi menghapus pengaturan ini mengembalikan perilaku persisten default.208Ini berguna untuk mengontrol biaya di organisasi di mana pengguna menjalankan beberapa sesi bersamaan. Preferensi mode cepat pengguna masih disimpan, jadi menghapus pengaturan ini mengembalikan perilaku persisten default.

206 209 

210Ketika pengaturan yang dikelola menetapkan kunci, `/fast on` hanya berfungsi dalam sesi terminal interaktif. Di tempat lain, termasuk [mode non-interaktif](/docs/id/headless), [ekstensi VS Code](/docs/id/vs-code), dan [sesi cloud](#use-fast-mode-in-cloud-sessions), ditolak dengan pesan bahwa organisasi Anda telah menonaktifkan mode cepat.

211 

207<h2 id="handle-rate-limits">212<h2 id="handle-rate-limits">

208 Tangani batas laju213 Tangani batas laju

209</h2>214</h2>

Details

21Ekstensi terhubung ke bagian berbeda dari loop agentic:21Ekstensi terhubung ke bagian berbeda dari loop agentic:

22 22 

23* **[CLAUDE.md](/docs/id/memory)** menambahkan konteks persisten yang Claude lihat setiap sesi23* **[CLAUDE.md](/docs/id/memory)** menambahkan konteks persisten yang Claude lihat setiap sesi

24* **[Output styles](/docs/id/output-styles)** menetapkan peran, nada, dan format respons Claude untuk setiap respons dalam sesi

24* **[Skills](/docs/id/skills)** menambahkan pengetahuan yang dapat digunakan kembali dan alur kerja yang dapat dipanggil25* **[Skills](/docs/id/skills)** menambahkan pengetahuan yang dapat digunakan kembali dan alur kerja yang dapat dipanggil

25* **[Code intelligence](/docs/id/tools-reference#lsp-tool-behavior)** menghubungkan Claude ke language server untuk navigasi tingkat simbol dan kesalahan tipe langsung26* **[Code intelligence](/docs/id/tools-reference#lsp-tool-behavior)** menghubungkan Claude ke language server untuk navigasi tingkat simbol dan kesalahan tipe langsung

26* **[MCP](/docs/id/mcp)** menghubungkan Claude ke layanan dan alat eksternal27* **[MCP](/docs/id/mcp)** menghubungkan Claude ke layanan dan alat eksternal


33[Skills](/docs/id/skills) adalah ekstensi paling fleksibel. Skill adalah file markdown yang berisi pengetahuan, alur kerja, atau instruksi. Anda dapat memanggil skills dengan perintah seperti `/deploy`, atau Claude dapat memuatnya secara otomatis ketika relevan. Skills dapat berjalan dalam percakapan Anda saat ini atau dalam konteks terisolasi melalui subagents.34[Skills](/docs/id/skills) adalah ekstensi paling fleksibel. Skill adalah file markdown yang berisi pengetahuan, alur kerja, atau instruksi. Anda dapat memanggil skills dengan perintah seperti `/deploy`, atau Claude dapat memuatnya secara otomatis ketika relevan. Skills dapat berjalan dalam percakapan Anda saat ini atau dalam konteks terisolasi melalui subagents.

34 35 

35<h2 id="match-features-to-your-goal">36<h2 id="match-features-to-your-goal">

36 Cocokkan fitur dengan tujuan Anda37 Sesuaikan fitur dengan tujuan Anda

37</h2>38</h2>

38 39 

39Fitur berkisar dari konteks yang selalu aktif yang Claude lihat setiap sesi, hingga kemampuan on-demand yang dapat Anda atau Claude panggil, hingga otomasi latar belakang yang berjalan pada acara tertentu. Tabel di bawah menunjukkan apa yang tersedia dan kapan masing-masing masuk akal.40Fitur berkisar dari konteks yang selalu aktif yang Claude lihat setiap sesi, hingga kemampuan on-demand yang dapat Anda atau Claude panggil, hingga otomasi latar belakang yang berjalan pada acara tertentu. Tabel di bawah menunjukkan apa yang tersedia dan kapan masing-masing masuk akal.

40 41 

41| Fitur | Apa yang dilakukannya | Kapan menggunakannya | Contoh |42| Fitur | Apa yang dilakukannya | Kapan menggunakannya | Contoh |

42| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |43| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |

43| **CLAUDE.md** | Konteks persisten dimuat setiap percakapan | Konvensi proyek, aturan "selalu lakukan X" | "Gunakan pnpm, bukan npm. Jalankan tes sebelum commit." |44| **CLAUDE.md** | Konteks persisten dimuat setiap percakapan | Konvensi proyek, aturan "selalu lakukan X" | "Gunakan pnpm, bukan npm. Jalankan tes sebelum melakukan commit." |

44| **Skill** | Instruksi, pengetahuan, dan alur kerja yang dapat digunakan Claude | Konten yang dapat digunakan kembali, dokumen referensi, tugas yang dapat diulang | `/deploy` menjalankan daftar periksa deployment Anda; skill dokumen API dengan pola endpoint |45| **[Output style](/docs/id/output-styles)** | Instruksi yang menetapkan peran, nada, dan format respons Claude untuk seluruh sesi | Suara, panjang, atau format yang Anda inginkan di setiap respons, atau Claude bekerja sebagai sesuatu selain insinyur perangkat lunak | Gaya Concise bawaan untuk respons yang lebih pendek; gaya kustom yang menjawab setiap pertanyaan dengan diagram terlebih dahulu |

46| **Skill** | Instruksi, pengetahuan, dan alur kerja yang dapat digunakan Claude | Konten yang dapat digunakan kembali, dokumen referensi, tugas yang dapat diulang | `/deploy` menjalankan daftar periksa penyebaran Anda; skill dokumen API dengan pola endpoint |

45| **Subagent** | Konteks eksekusi terisolasi yang mengembalikan hasil ringkasan | Isolasi konteks, tugas paralel, pekerja khusus | Tugas penelitian yang membaca banyak file tetapi hanya mengembalikan temuan kunci |47| **Subagent** | Konteks eksekusi terisolasi yang mengembalikan hasil ringkasan | Isolasi konteks, tugas paralel, pekerja khusus | Tugas penelitian yang membaca banyak file tetapi hanya mengembalikan temuan kunci |

46| **[Dynamic workflow](/docs/id/workflows)** | Skrip yang Claude tulis yang menjalankan banyak subagents di latar belakang | Pekerjaan yang melampaui segelintir subagents, atau temuan yang ingin Anda verifikasi silang | Audit seluruh basis kode, dengan set agen kedua memverifikasi setiap temuan |48| **[Dynamic workflow](/docs/id/workflows)** | Skrip yang ditulis Claude yang menjalankan banyak subagent di latar belakang | Pekerjaan yang melampaui segelintir subagent, atau temuan yang ingin Anda verifikasi silang | Audit seluruh basis kode, dengan set agen kedua memverifikasi setiap temuan |

47| **[Cross-session messaging](/docs/id/cross-session-messaging)** | Claude mengirimkan pesan dari salah satu sesi Anda ke sesi lain | Sesi yang Anda jalankan sendiri yang membutuhkan temuan satu sama lain di tengah tugas | Satu sesi memperingatkan sesi lain bahwa perubahan yang dibuat memecahkan apa yang dibangun oleh sesi lain |49| **[Cross-session messaging](/docs/id/cross-session-messaging)** | Claude mengirimkan pesan dari salah satu sesi Anda ke sesi lain | Sesi yang Anda jalankan sendiri yang membutuhkan temuan satu sama lain di tengah tugas | Satu sesi memperingatkan sesi lain bahwa perubahan yang dilakukannya merusak apa yang sedang dibangun oleh sesi lain |

48| **[Code intelligence](/docs/id/tools-reference#lsp-tool-behavior)** | Navigasi language-server dan diagnostik | Bahasa yang diketik, basis kode besar di mana grep lambat atau tidak presisi | Lompat ke definisi simbol daripada membaca seluruh file |50| **[Code intelligence](/docs/id/tools-reference#lsp-tool-behavior)** | Navigasi language-server dan diagnostik | Bahasa yang diketik, basis kode besar di mana grep lambat atau tidak presisi | Lompat ke definisi simbol alih-alih membaca seluruh file |

49| **MCP** | Terhubung ke layanan eksternal | Data atau tindakan eksternal | Kueri database Anda, posting ke Slack, kontrol browser |51| **MCP** | Terhubung ke layanan eksternal | Data atau tindakan eksternal | Kueri basis data Anda, posting ke Slack, kontrol browser |

50| **Hook** | Skrip, permintaan HTTP, panggilan alat MCP, prompt, atau subagent yang dipicu oleh acara | Otomasi yang harus berjalan pada setiap acara yang cocok | Jalankan ESLint setelah setiap edit file |52| **Hook** | Skrip, permintaan HTTP, panggilan alat MCP, prompt, atau subagent yang dipicu oleh acara | Otomasi yang harus berjalan pada setiap acara yang cocok | Jalankan ESLint setelah setiap pengeditan file |

51| **[Artifact](/docs/id/artifacts)** | Publikasikan output sesi sebagai halaman web pribadi yang interaktif | Output yang ingin Anda lihat atau bagikan secara visual daripada sebagai teks terminal | Garis waktu insiden yang diperbarui saat Claude menyelidiki |53| **[Artifact](/docs/id/artifacts)** | Publikasikan output sesi sebagai halaman web pribadi yang interaktif | Output yang ingin Anda lihat atau bagikan secara visual daripada sebagai teks terminal | Garis waktu insiden yang diperbarui saat Claude menyelidiki |

52 54 

53**[Plugins](/docs/id/plugins)** adalah lapisan pengemasan. Plugin menggabungkan skills, hooks, subagents, dan MCP servers menjadi satu unit yang dapat diinstal. Plugin skills memiliki namespace (seperti `/my-plugin:review`) sehingga beberapa plugin dapat hidup berdampingan. Gunakan plugins ketika Anda ingin menggunakan kembali setup yang sama di beberapa repositori atau mendistribusikan ke orang lain melalui **[marketplace](/docs/id/plugin-marketplaces)**.55**[Plugins](/docs/id/plugins)** adalah lapisan pengemasan. Plugin menggabungkan skill, hook, subagent, dan server MCP ke dalam satu unit yang dapat diinstal. Skill plugin memiliki namespace (seperti `/my-plugin:review`) sehingga beberapa plugin dapat hidup berdampingan. Gunakan plugin ketika Anda ingin menggunakan kembali pengaturan yang sama di beberapa repositori atau mendistribusikan ke orang lain melalui **[marketplace](/docs/id/plugin-marketplaces)**.

54 56 

55<h3 id="build-your-setup-over-time">57<h3 id="build-your-setup-over-time">

56 Bangun setup Anda seiring waktu58 Bangun pengaturan Anda seiring waktu

57</h3>59</h3>

58 60 

59Anda tidak perlu mengonfigurasi semuanya di awal. Setiap fitur memiliki pemicu yang dapat dikenali, dan sebagian besar tim menambahkannya dalam urutan yang kira-kira seperti ini:61Anda tidak perlu mengonfigurasi semuanya di muka. Setiap fitur memiliki pemicu yang dapat dikenali, dan sebagian besar tim menambahkannya dalam urutan yang kurang lebih seperti ini:

60 62 

61| Pemicu | Tambahkan |63| Pemicu | Tambahkan |

62| :---------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------ |64| :----------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------ |

63| Claude mendapatkan konvensi atau perintah yang salah dua kali | Tambahkan ke [CLAUDE.md](/docs/id/memory) |65| Claude mendapatkan konvensi atau perintah yang salah dua kali | Tambahkan ke [CLAUDE.md](/docs/id/memory) |

66| Anda terus meminta Claude untuk lebih pendek, menjelaskan lebih banyak, atau menjawab dalam format yang sama | Atur [output style](/docs/id/output-styles) |

64| Anda terus mengetik prompt yang sama untuk memulai tugas | Simpan sebagai [skill](/docs/id/skills) yang dapat dipanggil pengguna |67| Anda terus mengetik prompt yang sama untuk memulai tugas | Simpan sebagai [skill](/docs/id/skills) yang dapat dipanggil pengguna |

65| Anda menempel playbook yang sama atau prosedur multi-langkah ke chat untuk ketiga kalinya | Tangkap sebagai [skill](/docs/id/skills) |68| Anda menempel playbook yang sama atau prosedur multi-langkah ke dalam chat untuk ketiga kalinya | Tangkap sebagai [skill](/docs/id/skills) |

66| Anda terus menyalin data dari tab browser yang Claude tidak bisa lihat | Hubungkan sistem itu sebagai [server MCP](/docs/id/mcp) |69| Anda terus menyalin data dari tab browser yang Claude tidak bisa lihat | Hubungkan sistem itu sebagai [server MCP](/docs/id/mcp) |

67| Claude membaca banyak file untuk menemukan di mana simbol didefinisikan atau digunakan | Instal [plugin code intelligence](/docs/id/discover-plugins#code-intelligence) untuk bahasa Anda |70| Claude membaca banyak file untuk menemukan di mana simbol didefinisikan atau digunakan | Instal [plugin code intelligence](/docs/id/discover-plugins#code-intelligence) untuk bahasa Anda |

68| Tugas sampingan membanjiri percakapan Anda dengan output yang tidak akan Anda referensikan lagi | Arahkan melalui [subagent](/docs/id/sub-agents) |71| Tugas sampingan membanjiri percakapan Anda dengan output yang tidak akan Anda referensikan lagi | Arahkan melalui [subagent](/docs/id/sub-agents) |

69| Anda ingin sesuatu terjadi setiap kali tanpa bertanya | Tulis [hook](/docs/id/hooks-guide) |72| Anda ingin sesuatu terjadi setiap kali tanpa bertanya | Tulis [hook](/docs/id/hooks-guide) |

70| Repositori kedua membutuhkan setup yang sama | Paket sebagai [plugin](/docs/id/plugins) |73| Repositori kedua membutuhkan pengaturan yang sama | Paket sebagai [plugin](/docs/id/plugins) |

71 74 

72Pemicu yang sama memberi tahu Anda kapan harus memperbarui apa yang sudah Anda miliki. Kesalahan berulang atau komentar tinjauan berulang adalah edit CLAUDE.md, bukan koreksi satu kali dalam chat. Alur kerja yang terus Anda sesuaikan dengan tangan adalah skill yang memerlukan revisi lain.75Pemicu yang sama memberi tahu Anda kapan harus memperbarui apa yang sudah Anda miliki. Kesalahan berulang atau komentar tinjauan berulang adalah pengeditan CLAUDE.md, bukan koreksi sekali jadi dalam chat. Alur kerja yang terus Anda sesuaikan dengan tangan adalah skill yang membutuhkan revisi lain.

73 76 

74<h3 id="compare-similar-features">77<h3 id="compare-similar-features">

75 Bandingkan fitur serupa78 Bandingkan fitur serupa


79 82 

80<Tabs>83<Tabs>

81 <Tab title="Skill vs Subagent">84 <Tab title="Skill vs Subagent">

82 Skills dan subagents menyelesaikan masalah yang berbeda:85 Skill dan subagent menyelesaikan masalah yang berbeda:

83 86 

84 * **Skills** adalah konten yang dapat digunakan kembali yang dapat Anda muat ke konteks apa pun87 * **Skills** adalah konten yang dapat digunakan kembali yang dapat Anda muat ke dalam konteks apa pun

85 * **Subagents** adalah pekerja terisolasi yang berjalan terpisah dari percakapan utama Anda88 * **Subagents** adalah pekerja terisolasi yang berjalan terpisah dari percakapan utama Anda

86 89 

87 | Aspek | Skill | Subagent |90 | Aspek | Skill | Subagent |

88 | ----------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------- |91 | ----------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------- |

89 | **Apa itu** | Instruksi, pengetahuan, atau alur kerja yang dapat digunakan kembali | Pekerja terisolasi dengan konteksnya sendiri |92 | **Apa itu** | Instruksi, pengetahuan, atau alur kerja yang dapat digunakan kembali | Pekerja terisolasi dengan konteksnya sendiri |

90 | **Manfaat utama** | Bagikan konten di seluruh konteks | Isolasi konteks. Pekerjaan terjadi secara terpisah, hanya ringkasan yang kembali |93 | **Manfaat utama** | Bagikan konten di seluruh konteks | Isolasi konteks. Pekerjaan terjadi secara terpisah, hanya ringkasan yang kembali |

91 | **Dampak [context window](/docs/id/context-window)** | Menambah jendela utama Anda | Menggunakan jendela terpisah dengan token input dan output sendiri |94 | **Dampak [context window](/docs/id/context-window)** | Menambah jendela utama Anda | Menggunakan jendela terpisah dengan token input dan output-nya sendiri |

92 | **Terbaik untuk** | Materi referensi, alur kerja yang dapat dipanggil | Tugas yang membaca banyak file, pekerjaan paralel, pekerja khusus |95 | **Terbaik untuk** | Materi referensi, alur kerja yang dapat dipanggil | Tugas yang membaca banyak file, pekerjaan paralel, pekerja khusus |

93 96 

94 **Skills dapat berupa referensi atau tindakan.** Skills referensi memberikan pengetahuan yang Claude gunakan sepanjang sesi Anda (seperti panduan gaya API Anda). Skills tindakan memberi tahu Claude untuk melakukan sesuatu yang spesifik (seperti `/deploy` yang menjalankan alur kerja deployment Anda).97 **Skills dapat berupa referensi atau tindakan.** Skill referensi memberikan pengetahuan yang Claude gunakan di seluruh sesi Anda (seperti panduan gaya API Anda). Skill tindakan memberi tahu Claude untuk melakukan sesuatu yang spesifik (seperti `/deploy` yang menjalankan alur kerja penyebaran Anda).

95 98 

96 **Gunakan subagent** ketika Anda membutuhkan isolasi konteks atau ketika jendela konteks Anda penuh. Subagent mungkin membaca puluhan file atau menjalankan pencarian ekstensif, tetapi percakapan utama Anda hanya menerima ringkasan. Karena pekerjaan subagent tidak mengonsumsi konteks utama Anda, ini juga berguna ketika Anda tidak memerlukan pekerjaan perantara untuk tetap terlihat. Subagents kustom dapat memiliki instruksi mereka sendiri dan dapat memuat skills sebelumnya.99 **Gunakan subagent** ketika Anda membutuhkan isolasi konteks atau ketika jendela konteks Anda penuh. Subagent mungkin membaca puluhan file atau menjalankan pencarian ekstensif, tetapi percakapan utama Anda hanya menerima ringkasan. Karena pekerjaan subagent tidak mengonsumsi konteks utama Anda, ini juga berguna ketika Anda tidak memerlukan pekerjaan perantara untuk tetap terlihat. Subagent kustom dapat memiliki instruksi mereka sendiri dan dapat memuat skill sebelumnya.

97 100 

98 **Mereka dapat digabungkan.** Subagent dapat memuat skills tertentu sebelumnya (field `skills:`). Skill dapat berjalan dalam konteks terisolasi menggunakan `context: fork`. Lihat [Skills](/docs/id/skills) untuk detail.101 **Mereka dapat menggabungkan.** Subagent dapat memuat skill tertentu (field `skills:`). Skill dapat berjalan dalam konteks terisolasi menggunakan `context: fork`. Lihat [Skills](/docs/id/skills) untuk detail.

99 </Tab>102 </Tab>

100 103 

101 <Tab title="CLAUDE.md vs Skill">104 <Tab title="CLAUDE.md vs Skill">


112 115 

113 **Letakkan di skill** jika itu materi referensi yang Claude butuhkan kadang-kadang (dokumen API, panduan gaya) atau alur kerja yang Anda picu dengan `/<name>` (deploy, review, release).116 **Letakkan di skill** jika itu materi referensi yang Claude butuhkan kadang-kadang (dokumen API, panduan gaya) atau alur kerja yang Anda picu dengan `/<name>` (deploy, review, release).

114 117 

115 **Aturan praktis:** Jaga CLAUDE.md di bawah 200 baris. Jika berkembang, pindahkan konten referensi ke skills atau pisahkan ke file [`.claude/rules/`](/docs/id/memory#organize-rules-with-claude%2Frules%2F).118 **Aturan praktis:** Jaga CLAUDE.md di bawah 200 baris. Jika berkembang, pindahkan konten referensi ke skill atau pisahkan ke file [`.claude/rules/`](/docs/id/memory#organize-rules-with-claude/rules/).

119 </Tab>

120 

121 <Tab title="CLAUDE.md vs Output style">

122 Keduanya memberikan instruksi berdiri kepada Claude. CLAUDE.md membawa apa yang harus diketahui Claude, dan gaya output menetapkan cara Claude merespons.

123 

124 | Aspek | CLAUDE.md | Output style |

125 | ----------------- | ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |

126 | **Memegang** | Fakta dan aturan tentang proyek Anda | Peran, nada, dan format respons |

127 | **Beralih** | Selalu dimuat | Satu aktif pada satu waktu; [beralih gaya](/docs/id/output-styles#change-your-output-style) kapan saja Anda mau |

128 | **Terbaik untuk** | Perintah build, konvensi, aturan "jangan pernah lakukan X" | Respons yang lebih pendek, penjelasan bersama kode, peran non-teknik |

129 

130 **Letakkan di CLAUDE.md** jika itu benar dari proyek apa pun gaya yang Anda gunakan: konvensi pengkodean, perintah build, struktur proyek.

131 

132 **Gunakan output style** jika itu tentang respons itu sendiri dan Anda mungkin ingin mematikannya lagi: panjang, format, berapa banyak Claude menjelaskan, atau peran yang berbeda seperti asisten penulisan. Claude Code mencakup [gaya bawaan](/docs/id/output-styles#built-in-output-styles), dan Anda dapat menulis gaya Anda sendiri.

133 

134 **Mereka menggabungkan.** CLAUDE.md tetap dimuat gaya mana pun yang Anda pilih. Claude mengikuti keduanya sebagai instruksi, jadi tidak ada yang ditegakkan. Untuk apa pun yang harus terjadi setiap kali, gunakan [hook](/docs/id/hooks-guide).

116 </Tab>135 </Tab>

117 136 

118 <Tab title="CLAUDE.md vs Rules vs Skills">137 <Tab title="CLAUDE.md vs Rules vs Skills">

119 Ketiganya menyimpan instruksi, tetapi mereka dimuat secara berbeda:138 Ketiga-tiganya menyimpan instruksi, tetapi mereka dimuat secara berbeda:

120 139 

121 | Aspek | CLAUDE.md | `.claude/rules/` | Skill |140 | Aspek | CLAUDE.md | `.claude/rules/` | Skill |

122 | ----------------- | -------------------------------- | ----------------------------------------------- | ----------------------------------------------- |141 | ----------------- | -------------------------------- | ----------------------------------------------- | ----------------------------------------------- |


126 145 

127 **Gunakan CLAUDE.md** untuk instruksi yang setiap sesi butuhkan: perintah build, konvensi tes, arsitektur proyek.146 **Gunakan CLAUDE.md** untuk instruksi yang setiap sesi butuhkan: perintah build, konvensi tes, arsitektur proyek.

128 147 

129 **Gunakan rules** untuk menjaga CLAUDE.md tetap fokus. Rules dengan [`paths` frontmatter](/docs/id/memory#path-specific-rules) hanya dimuat ketika Claude bekerja dengan file yang cocok, menghemat konteks.148 **Gunakan rules** untuk menjaga CLAUDE.md tetap fokus. Rules dengan [frontmatter `paths`](/docs/id/memory#path-specific-rules) hanya dimuat ketika Claude bekerja dengan file yang cocok, menghemat konteks.

130 149 

131 **Gunakan skills** untuk konten yang Claude hanya butuhkan kadang-kadang, seperti dokumentasi API atau daftar periksa deployment yang Anda picu dengan `/<name>`.150 **Gunakan skills** untuk konten yang Claude hanya butuhkan kadang-kadang, seperti dokumentasi API atau daftar periksa penyebaran yang Anda picu dengan `/<name>`.

132 </Tab>151 </Tab>

133 152 

134 <Tab title="Subagent vs Dynamic workflow">153 <Tab title="Subagent vs Dynamic workflow">

135 Keduanya melakukan pekerjaan di luar percakapan utama Anda. Dengan subagents, Claude memutuskan giliran demi giliran apa yang berjalan selanjutnya. Dalam alur kerja, skrip memutuskan:154 Keduanya melakukan pekerjaan di luar percakapan utama Anda. Dengan subagent, Claude memutuskan giliran demi giliran apa yang berjalan selanjutnya. Dalam alur kerja, skrip memutuskan:

136 155 

137 * **Subagents** adalah pekerja yang Claude spawn, masing-masing mengembalikan ringkasan ke percakapan yang memunculkannya156 * **Subagents** adalah pekerja yang Claude spawn, masing-masing mengembalikan ringkasan ke percakapan yang memunculkannya

138 * **[Dynamic workflows](/docs/id/workflows)** adalah skrip yang Claude tulis yang menjalankan banyak subagents di latar belakang dan mengembalikan satu hasil157 * **[Dynamic workflows](/docs/id/workflows)** adalah skrip yang ditulis Claude yang menjalankan banyak subagent di latar belakang dan mengembalikan satu hasil

139 158 

140 **Gunakan subagent** ketika Anda membutuhkan pekerja cepat dan terfokus: teliti pertanyaan, verifikasi klaim, tinjau file. Subagent melakukan pekerjaan dan mengembalikan ringkasan, sehingga percakapan utama Anda tetap bersih. Subagents yang Claude beri nama ketika memunculkannya juga dapat [saling mengirim pesan](/docs/id/sub-agents#what-loads-at-startup).159 **Gunakan subagent** ketika Anda membutuhkan pekerja yang cepat dan terfokus: teliti pertanyaan, verifikasi klaim, tinjau file. Subagent melakukan pekerjaan dan mengembalikan ringkasan, jadi percakapan utama Anda tetap bersih. Subagent yang Claude beri nama ketika memunculkannya juga dapat [saling berkirim pesan](/docs/id/sub-agents#what-loads-at-startup).

141 160 

142 **Gunakan dynamic workflow** ketika pekerjaan [melampaui segelintir subagents](/docs/id/workflows#when-to-use-a-workflow), atau ketika Anda ingin temuan diverifikasi silang sebelum Anda melihatnya, seperti audit berbasis basis kode, migrasi besar, atau rencana yang disusun dari beberapa sudut. Untuk memulai satu, [minta alur kerja dalam prompt Anda](/docs/id/workflows#ask-for-a-workflow-in-your-prompt).161 **Gunakan dynamic workflow** ketika pekerjaan [melampaui segelintir subagent](/docs/id/workflows#when-to-use-a-workflow), atau ketika Anda ingin temuan diverifikasi silang sebelum Anda melihatnya, seperti audit berbasis kode, migrasi besar, atau rencana yang disusun dari beberapa sudut. Untuk memulai satu, [minta alur kerja dalam prompt Anda](/docs/id/workflows#ask-for-a-workflow-in-your-prompt).

143 162 

144 **Untuk meneruskan temuan dari salah satu sesi Anda ke sesi lain**, minta Claude sesi pertama untuk mengirimnya. Claude mengirimkannya dengan [cross-session messaging](/docs/id/cross-session-messaging). [Jalankan agen secara paralel](/docs/id/agents) membandingkan cara lain untuk menjalankan lebih dari satu Claude sekaligus, termasuk sesi yang Anda serahkan dan periksa kembali nanti.163 **Untuk meneruskan temuan dari salah satu sesi Anda ke sesi lain**, minta Claude sesi pertama untuk mengirimkannya. Claude mengirimkannya dengan [cross-session messaging](/docs/id/cross-session-messaging). [Run agents in parallel](/docs/id/agents) membandingkan cara lain untuk menjalankan lebih dari satu Claude sekaligus, termasuk sesi yang Anda serahkan dan periksa kembali nanti.

145 </Tab>164 </Tab>

146 165 

147 <Tab title="MCP vs Skill">166 <Tab title="MCP vs Skill">

148 MCP menghubungkan Claude ke layanan eksternal. Skills memperluas apa yang Claude ketahui, termasuk cara menggunakan layanan tersebut secara efektif.167 MCP menghubungkan Claude ke layanan eksternal. Skills memperluas apa yang Claude ketahui, termasuk cara menggunakan layanan tersebut secara efektif.

149 168 

150 | Aspek | MCP | Skill |169 | Aspek | MCP | Skill |

151 | --------------- | ------------------------------------------------ | ----------------------------------------------------------------- |170 | --------------- | -------------------------------------------------- | --------------------------------------------------------------------- |

152 | **Apa itu** | Protokol untuk terhubung ke layanan eksternal | Pengetahuan, alur kerja, dan materi referensi |171 | **Apa itu** | Protokol untuk terhubung ke layanan eksternal | Pengetahuan, alur kerja, dan materi referensi |

153 | **Menyediakan** | Akses alat dan data | Pengetahuan, alur kerja, materi referensi |172 | **Menyediakan** | Alat dan akses data | Pengetahuan, alur kerja, materi referensi |

154 | **Contoh** | Integrasi Slack, kueri database, kontrol browser | Daftar periksa tinjauan kode, alur kerja deploy, panduan gaya API |173 | **Contoh** | Integrasi Slack, kueri basis data, kontrol browser | Daftar periksa tinjauan kode, alur kerja penyebaran, panduan gaya API |

155 174 

156 Ini menyelesaikan masalah yang berbeda dan bekerja dengan baik bersama:175 Ini menyelesaikan masalah yang berbeda dan bekerja dengan baik bersama:

157 176 

158 **MCP** memberi Claude alat yang dirancang khusus untuk sistem eksternal, dengan koneksi dan autentikasi ditangani oleh server.177 **MCP** memberikan Claude alat yang dirancang khusus untuk sistem eksternal, dengan koneksi dan autentikasi ditangani oleh server.

159 178 

160 **Skills** memberi Claude pengetahuan tentang cara menggunakan alat tersebut secara efektif, ditambah alur kerja yang dapat Anda picu dengan `/<name>`. Skill mungkin menyertakan skema database tim Anda dan pola kueri, atau alur kerja `/post-to-slack` dengan aturan pemformatan pesan tim Anda.179 **Skills** memberikan Claude pengetahuan tentang cara menggunakan alat tersebut secara efektif, ditambah alur kerja yang dapat Anda picu dengan `/<name>`. Skill mungkin menyertakan skema basis data tim Anda dan pola kueri, atau alur kerja `/post-to-slack` dengan aturan pemformatan pesan tim Anda.

161 </Tab>180 </Tab>

162 181 

163 <Tab title="Hook vs Skill">182 <Tab title="Hook vs Skill">

164 Claude Code menjalankan hook pada acara siklus hidup; hook memuat skill ke dalam konteks untuk Claude terapkan.183 Claude Code menjalankan hook pada acara siklus hidup; itu memuat skill ke dalam konteks untuk Claude terapkan.

165 184 

166 | Aspek | Hook | Skill |185 | Aspek | Hook | Skill |

167 | ----------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |186 | ----------------- | ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |

168 | **Berjalan** | Perintah shell, permintaan HTTP, panggilan alat MCP, prompt LLM, atau subagent | Instruksi yang Claude baca dan ikuti |187 | **Berjalan** | Perintah shell, permintaan HTTP, panggilan alat MCP, prompt LLM, atau subagent | Instruksi yang Claude baca dan ikuti |

169 | **Dipicu oleh** | [Acara siklus hidup](/docs/id/hooks#hook-events) seperti `PostToolUse` atau `SessionStart` | Anda mengetik `/<name>`, atau Claude mencocokkan deskripsi dengan tugas Anda |188 | **Dipicu oleh** | [Acara siklus hidup](/docs/id/hooks-guide) seperti `PostToolUse` atau `SessionStart` | Anda mengetik `/<name>`, atau Claude mencocokkan deskripsi dengan tugas Anda |

170 | **Determinisme** | Selalu berjalan pada acaranya; pemicu dijamin | Claude menginterpretasikan instruksi; hasil dapat bervariasi |189 | **Determinisme** | Selalu menyala pada acaranya; pemicu dijamin | Claude menginterpretasikan instruksi; hasilnya dapat bervariasi |

171 | **Biaya konteks** | Nol kecuali hook mengembalikan output | Deskripsi dimuat setiap sesi; konten penuh dimuat saat digunakan |190 | **Biaya konteks** | Nol kecuali hook mengembalikan output | Deskripsi dimuat setiap sesi; konten penuh dimuat saat digunakan |

172 | **Terbaik untuk** | Linting setelah edit, memblokir perintah yang tidak aman, logging, notifikasi | Alur kerja yang memerlukan penalaran, materi referensi, tugas multi-langkah |191 | **Terbaik untuk** | Linting setelah pengeditan, memblokir perintah yang tidak aman, logging, notifikasi | Alur kerja yang membutuhkan penalaran, materi referensi, tugas multi-langkah |

173 192 

174 **Gunakan hook** ketika tindakan harus terjadi dengan cara yang sama setiap kali dan tidak perlu Claude berpikir. Misalnya: format saat simpan, tolak `rm -rf /`, posting pesan Slack ketika sesi berakhir.193 **Gunakan hook** ketika tindakan harus terjadi dengan cara yang sama setiap kali dan tidak memerlukan Claude untuk berpikir. Misalnya: format saat menyimpan, tolak `rm -rf /`, posting pesan Slack ketika sesi berakhir.

175 194 

176 **Gunakan skill** ketika Claude harus memutuskan cara menerapkan langkah-langkahnya, atau ketika kontennya adalah pengetahuan daripada skrip. Misalnya: daftar periksa `/release`, panduan gaya API Anda, playbook debugging.195 **Gunakan skill** ketika Claude harus memutuskan cara menerapkan langkah-langkah, atau ketika kontennya adalah pengetahuan daripada skrip. Misalnya: daftar periksa `/release`, panduan gaya API Anda, playbook debugging.

177 196 

178 **Letakkan guardrails di hooks.** Instruksi seperti "jangan pernah edit `.env`" di CLAUDE.md atau skill adalah permintaan, bukan jaminan. Hook `PreToolUse` yang memblokir edit adalah penegakan. Jika aturan harus berlaku setiap kali, buat hook daripada instruksi prompt.197 **Letakkan guardrail di hook.** Instruksi seperti "jangan pernah edit `.env`" di CLAUDE.md atau skill adalah permintaan, bukan jaminan. Hook `PreToolUse` yang memblokir pengeditan adalah penegakan. Jika aturan harus berlaku setiap kali, buat hook daripada instruksi prompt.

179 198 

180 **Output hook mendarat di konteks.** Hook `PostToolUse` yang menjalankan linter Anda memberi umpan balik hasil sebagai teks yang Claude baca; skill `/fix-lint` memberi tahu Claude cara menyelesaikannya.199 **Output hook mendarat di konteks.** Hook `PostToolUse` yang menjalankan linter Anda memberi umpan balik hasil sebagai teks yang Claude baca; skill `/fix-lint` memberi tahu Claude cara menyelesaikannya.

181 </Tab>200 </Tab>


185 Pahami bagaimana fitur berlapis204 Pahami bagaimana fitur berlapis

186</h3>205</h3>

187 206 

188Fitur dapat didefinisikan di beberapa tingkat: seluruh pengguna, per-proyek, melalui plugins, atau melalui kebijakan terkelola. Anda juga dapat menyarangkan file CLAUDE.md di subdirektori atau menempatkan skills di paket tertentu dari monorepo. Ketika fitur yang sama ada di beberapa tingkat, berikut cara mereka berlapis:207Fitur dapat didefinisikan di berbagai tingkat: seluruh pengguna, per-proyek, melalui plugin, atau melalui kebijakan yang dikelola. Anda juga dapat menyarangkan file CLAUDE.md di subdirektori atau menempatkan skill di paket tertentu dari monorepo. Ketika fitur yang sama ada di berbagai tingkat, berikut cara mereka berlapis:

189 208 

190* **File CLAUDE.md** bersifat aditif: semua tingkat berkontribusi konten ke konteks Claude secara bersamaan. File dari direktori kerja Anda dan di atas dimuat saat peluncuran; subdirektori dimuat saat Anda bekerja di dalamnya. Ketika instruksi bertentangan, Claude menggunakan penilaian untuk merekonsiliasi mereka, dengan instruksi yang lebih spesifik biasanya mengambil alih. Lihat [bagaimana file CLAUDE.md dimuat](/docs/id/memory#how-claude-md-files-load).209* **File CLAUDE.md** bersifat aditif: semua tingkat berkontribusi konten ke konteks Claude secara bersamaan. File dari direktori kerja Anda dan di atas dimuat saat peluncuran; subdirektori dimuat saat Anda bekerja di dalamnya. Ketika instruksi bertentangan, Claude menggunakan penilaian untuk merekonsiliasi mereka. Lihat [bagaimana file CLAUDE.md dimuat](/docs/id/memory#how-claude-md-files-load).

191* **Skills dan subagents** menimpa berdasarkan nama: ketika nama yang sama ada di beberapa tingkat, satu definisi menang berdasarkan prioritas (terkelola > pengguna > proyek untuk skills; terkelola > bendera CLI > proyek > pengguna > plugin untuk subagents). Plugin skills adalah [namespaced](/docs/id/plugins#add-skills-to-your-plugin) untuk menghindari konflik. Lihat [penemuan skill](/docs/id/skills#resolve-skills-that-share-a-name) dan [cakupan subagent](/docs/id/sub-agents#choose-the-subagent-scope).210* **Skills dan subagents** menimpa berdasarkan nama: ketika nama yang sama ada di berbagai tingkat, satu definisi menang berdasarkan prioritas (managed > user > project untuk skill; managed > CLI flag > project > user > plugin untuk subagent). Skill plugin [memiliki namespace](/docs/id/plugins#add-skills-to-your-plugin) untuk menghindari konflik. Lihat [penemuan skill](/docs/id/skills#resolve-skills-that-share-a-name) dan [cakupan subagent](/docs/id/sub-agents#choose-the-subagent-scope).

192* **Server MCP** menimpa berdasarkan nama: lokal > proyek > pengguna. Lihat [cakupan MCP](/docs/id/mcp#scope-hierarchy-and-precedence).211* **Server MCP** menimpa berdasarkan nama: lokal > proyek > pengguna. Lihat [cakupan MCP](/docs/id/mcp#scope-hierarchy-and-precedence).

193* **Hooks** bergabung: semua hook terdaftar berjalan untuk acara pencocokan mereka terlepas dari sumber. Lihat [hooks](/docs/id/hooks-guide).212* **Hooks** menggabung: semua hook terdaftar menyala untuk acara yang cocok mereka terlepas dari sumber. Lihat [hooks](/docs/id/hooks-guide).

194 213 

195<h3 id="combine-features">214<h3 id="combine-features">

196 Gabungkan fitur215 Gabungkan fitur

197</h3>216</h3>

198 217 

199Setiap ekstensi menyelesaikan masalah yang berbeda: CLAUDE.md menangani konteks yang selalu aktif, skills menangani pengetahuan dan alur kerja on-demand, MCP menangani koneksi eksternal, subagents menangani isolasi, dan hooks menangani otomasi. Setup nyata menggabungkan mereka berdasarkan alur kerja Anda.218Setiap ekstensi menyelesaikan masalah yang berbeda: CLAUDE.md menangani konteks yang selalu aktif, skill menangani pengetahuan on-demand dan alur kerja, MCP menangani koneksi eksternal, subagent menangani isolasi, dan hook menangani otomasi. Pengaturan nyata menggabungkannya berdasarkan alur kerja Anda.

200 219 

201Misalnya, Anda mungkin menggunakan CLAUDE.md untuk konvensi proyek, skill untuk alur kerja deployment Anda, MCP untuk terhubung ke database Anda, dan hook untuk menjalankan linting setelah setiap edit. Setiap fitur menangani apa yang terbaik.220Misalnya, Anda mungkin menggunakan CLAUDE.md untuk konvensi proyek, skill untuk alur kerja penyebaran Anda, MCP untuk terhubung ke basis data Anda, dan hook untuk menjalankan linting setelah setiap pengeditan. Setiap fitur menangani apa yang terbaik.

202 221 

203| Pola | Cara kerjanya | Contoh |222| Pola | Cara kerjanya | Contoh |

204| ---------------------- | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |223| ---------------------- | -------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |

205| **Skill + MCP** | MCP menyediakan koneksi; skill mengajarkan Claude cara menggunakannya dengan baik | MCP terhubung ke database Anda, skill mendokumentasikan skema dan pola kueri Anda |224| **Skill + MCP** | MCP menyediakan koneksi; skill mengajarkan Claude cara menggunakannya dengan baik | MCP terhubung ke basis data Anda, skill mendokumentasikan skema dan pola kueri Anda |

206| **Skill + Subagent** | Skill menspawn subagents untuk pekerjaan paralel | Skill `/audit` memulai subagents keamanan, performa, dan gaya yang bekerja dalam konteks terisolasi |225| **Skill + Subagent** | Skill memunculkan subagent untuk pekerjaan paralel | Skill `/audit` memulai subagent keamanan, kinerja, dan gaya yang bekerja dalam konteks terisolasi |

207| **CLAUDE.md + Skills** | CLAUDE.md menyimpan aturan yang selalu aktif; skills menyimpan materi referensi yang dimuat on-demand | CLAUDE.md mengatakan "ikuti konvensi API kami," skill berisi panduan gaya API lengkap |226| **CLAUDE.md + Skills** | CLAUDE.md memegang aturan yang selalu aktif; skill memegang materi referensi yang dimuat on-demand | CLAUDE.md mengatakan "ikuti konvensi API kami," skill berisi panduan gaya API lengkap |

208| **Hook + MCP** | Hook memicu tindakan eksternal melalui MCP | Hook pasca-edit mengirim notifikasi Slack ketika Claude memodifikasi file kritis |227| **Hook + MCP** | Hook memicu tindakan eksternal melalui MCP | Hook pasca-edit mengirim notifikasi Slack ketika Claude memodifikasi file kritis |

209 228 

210<h2 id="understand-context-costs">229<h2 id="understand-context-costs">


220Setiap fitur memiliki strategi pemuatan dan biaya konteks yang berbeda:239Setiap fitur memiliki strategi pemuatan dan biaya konteks yang berbeda:

221 240 

222| Fitur | Kapan dimuat | Apa yang dimuat | Biaya konteks |241| Fitur | Kapan dimuat | Apa yang dimuat | Biaya konteks |

223| --------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |242| --------------------- | -------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------ |

224| **CLAUDE.md** | Awal sesi | Konten penuh | Setiap permintaan |243| **CLAUDE.md** | Awal sesi | Konten penuh | Setiap permintaan |

244| **Output styles** | Awal sesi, dan lagi ketika Anda beralih gaya | Instruksi lengkap gaya aktif; tidak ada untuk gaya Default | Setiap permintaan |

225| **Skills** | Awal sesi + ketika digunakan | Deskripsi di awal, konten penuh ketika digunakan | Rendah (deskripsi setiap permintaan)\* |245| **Skills** | Awal sesi + ketika digunakan | Deskripsi di awal, konten penuh ketika digunakan | Rendah (deskripsi setiap permintaan)\* |

226| **Server MCP** | Awal sesi | Nama alat; skema penuh on demand | Rendah sampai alat digunakan |246| **Server MCP** | Awal sesi | Nama alat; skema penuh on demand | Rendah sampai alat digunakan |

227| **Code intelligence** | Setelah pengeditan file dan on demand | Diagnostik setelah pengeditan; lokasi simbol saat pencarian | Rendah; mengurangi pembacaan file di tempat lain |247| **Code intelligence** | Setelah pengeditan file dan on demand | Diagnostik setelah pengeditan; lokasi simbol saat pencarian | Rendah; mengurangi pembacaan file di tempat lain |

fullscreen.md +2 −2

Details

234 234 

235Jalankan `/clear` untuk memulai percakapan baru.235Jalankan `/clear` untuk memulai percakapan baru.

236 236 

237Untuk menghapus layar dan mempertahankan percakapan, tekan `Ctrl+L`. Pesan-pesan sebelumnya akan bergulir ke atas keluar dari tampilan, dan Anda dapat menggulir kembali dengan `PgUp` atau roda mouse untuk membacanya lagi. Sebelum v2.1.260, `Ctrl+L` menggambar ulang layar tanpa menghapusnya. Sebelum v2.1.238, menekannya dua kali dalam dua detik menjalankan `/clear`.237Jika tampilan terlihat berantakan atau sebagian kosong, tekan `Ctrl+L` untuk menggambar ulang layar. Penggambaran ulang menjaga percakapan dan input Anda tetap di tempatnya.

238 238 

239`Cmd+K` melakukan hal yang sama dengan `Ctrl+L` ketika terminal Anda meneruskannya ke Claude Code. iTerm2 dan Terminal.app menangani `Cmd+K` sendiri, dan Claude Code menggambar ulang percakapan alih-alih menghapusnya, jadi tekan `Ctrl+L` di terminal tersebut.239`Cmd+K` melakukan hal yang sama dengan `Ctrl+L` ketika terminal Anda meneruskannya ke Claude Code. iTerm2 dan Terminal.app menangani `Cmd+K` sendiri dan menghapus layar mereka sendiri, dan Claude Code mendeteksi layar yang dihapus dan melukis ulang percakapan. Sebelum v2.1.280, dimulai dengan v2.1.260, menekan `Ctrl+L`, atau `Cmd+K` di mana pun mencapai Claude Code, menghapus layar dalam rendering layar penuh. Sebelum v2.1.238, menekan `Ctrl+L` dua kali dalam dua detik menjalankan `/clear`.

240 240 

241<h2 id="use-with-tmux">241<h2 id="use-with-tmux">

242 Gunakan dengan tmux242 Gunakan dengan tmux

Details

300 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}300 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

301 prompt: "Generate a summary of yesterday's commits and open issues"301 prompt: "Generate a summary of yesterday's commits and open issues"

302 claude_args: |302 claude_args: |

303 --model claude-opus-4-8303 --model claude-opus-5-5

304 --allowedTools "mcp__github__list_commits,mcp__github__list_issues"304 --allowedTools "mcp__github__list_commits,mcp__github__list_issues"

305```305```

306 306 

glossary.md +12 −0

Details

208 208 

209Pelajari lebih lanjut: [Use extended thinking](/docs/id/model-config#extended-thinking)209Pelajari lebih lanjut: [Use extended thinking](/docs/id/model-config#extended-thinking)

210 210 

211<h2 id="f">

212 F

213</h2>

214 

215<h3 id="frontmatter">

216 Frontmatter

217</h3>

218 

219Sebuah blok pengaturan YAML di bagian paling atas file Markdown, di antara baris pembuka `---` dan baris penutup `---`. Skills, subagents, output styles, dan rules masing-masing membaca konfigurasi mereka dari frontmatter, seperti `description` skill atau `tools` subagent, dan memperlakukan semua yang setelah `---` penutup sebagai instruksi. `---` pembuka harus menjadi baris pertama file. Setiap jenis file menerima set bidang tersendiri.

220 

221Pelajari lebih lanjut: [Skill frontmatter](/docs/id/skills#frontmatter-reference), [Subagent frontmatter](/docs/id/sub-agents#supported-frontmatter-fields), [Output style frontmatter](/docs/id/output-styles#frontmatter), [Rule frontmatter](/docs/id/memory#rules-frontmatter-reference)

222 

211<h2 id="h">223<h2 id="h">

212 H224 H

213</h2>225</h2>

Details

238 238 

239Atur variabel lingkungan ini ke ID model Google Cloud's Agent Platform spesifik.239Atur variabel lingkungan ini ke ID model Google Cloud's Agent Platform spesifik.

240 240 

241Tanpa `ANTHROPIC_DEFAULT_OPUS_MODEL`, alias `opus` di Google Cloud's Agent Platform diselesaikan ke Opus 5, dan tanpa `ANTHROPIC_DEFAULT_SONNET_MODEL`, alias `sonnet` diselesaikan ke Sonnet 4.5. Contoh ini pin setiap alias ke versi spesifik:241Tanpa `ANTHROPIC_DEFAULT_OPUS_MODEL`, alias `opus` di Google Cloud's Agent Platform diselesaikan ke Opus 5.5, dan tanpa `ANTHROPIC_DEFAULT_SONNET_MODEL`, alias `sonnet` diselesaikan ke Sonnet 4.5. Contoh ini pin setiap alias ke versi spesifik:

242 242 

243```bash theme={null}243```bash theme={null}

244export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'244export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'


252 252 

253| Jenis model | Nilai default |253| Jenis model | Nilai default |

254| :---------------- | :--------------------------- |254| :---------------- | :--------------------------- |

255| Model utama | `claude-opus-5` |255| Model utama | `claude-opus-5-5` |

256| Model kecil/cepat | `claude-sonnet-4-5@20250929` |256| Model kecil/cepat | `claude-sonnet-4-5@20250929` |

257 257 

258Tugas latar belakang seperti pembuatan judul sesi menggunakan model kecil/cepat, biasanya model kelas Haiku. Di Google Cloud's Agent Platform, Claude Code menggunakan model Sonnet default untuk tugas latar belakang karena Haiku mungkin tidak diaktifkan di setiap proyek atau wilayah. Dua pilihan mengubah model mana yang membawanya:258Tugas latar belakang seperti pembuatan judul sesi menggunakan model kecil/cepat, biasanya model kelas Haiku. Di Google Cloud's Agent Platform, Claude Code menggunakan model Sonnet default untuk tugas latar belakang karena Haiku mungkin tidak diaktifkan di setiap proyek atau wilayah. Dua pilihan mengubah model mana yang membawanya:


264 Model Opus memiliki harga per-token yang lebih tinggi daripada model Sonnet, jadi penerapan yang tidak pin model utama ditagih dengan tarif Opus setelah diperbarui ke v2.1.207 atau lebih baru. Untuk menjaga Sonnet 4.5 sebagai model utama, atur `ANTHROPIC_MODEL` ke ID model lengkapnya. Penerapan yang mengarahkan default dengan `ANTHROPIC_DEFAULT_SONNET_MODEL` dan tidak mengatur `ANTHROPIC_DEFAULT_OPUS_MODEL` menjaga model Sonnet yang diarahkan sebagai default.264 Model Opus memiliki harga per-token yang lebih tinggi daripada model Sonnet, jadi penerapan yang tidak pin model utama ditagih dengan tarif Opus setelah diperbarui ke v2.1.207 atau lebih baru. Untuk menjaga Sonnet 4.5 sebagai model utama, atur `ANTHROPIC_MODEL` ke ID model lengkapnya. Penerapan yang mengarahkan default dengan `ANTHROPIC_DEFAULT_SONNET_MODEL` dan tidak mengatur `ANTHROPIC_DEFAULT_OPUS_MODEL` menjaga model Sonnet yang diarahkan sebagai default.

265</Warning>265</Warning>

266 266 

267Pada v2.1.207 melalui v2.1.218, model utama di Google Cloud's Agent Platform default ke Opus 4.8 dan alias `opus` diselesaikan ke Opus 4.8. Sebelum v2.1.207, model utama default ke Sonnet 4.5, alias `opus` diselesaikan ke Opus 4.6, dan tugas latar belakang selalu menggunakan model utama.267Sebelum v2.1.280, model utama di Google Cloud's Agent Platform default ke Opus 5 dan alias `opus` diselesaikan ke Opus 5 dari v2.1.219. Pada v2.1.207 melalui v2.1.218, model utama di Google Cloud's Agent Platform default ke Opus 4.8 dan alias `opus` diselesaikan ke Opus 4.8. Sebelum v2.1.207, model utama default ke Sonnet 4.5, alias `opus` diselesaikan ke Opus 4.6, dan tugas latar belakang selalu menggunakan model utama.

268 268 

269Untuk menyesuaikan model lebih lanjut:269Untuk menyesuaikan model lebih lanjut:

270 270 

headless.md +2 −2

Details

109cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt109cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt

110```110```

111 111 

112Dengan `--output-format json`, payload respons mencakup `total_cost_usd` dan rincian biaya per-model, sehingga pemanggil skrip dapat melacak pengeluaran per invokasi tanpa berkonsultasi dengan [dashboard penggunaan](/docs/id/costs). Kedua angka tersebut adalah [perkiraan sisi klien](/docs/id/agent-sdk/cost-tracking) dan dapat berbeda dari tagihan aktual Anda.112Dengan `--output-format json`, payload respons mencakup `total_cost_usd` dan rincian biaya per-model, sehingga pemanggil skrip dapat melacak pengeluaran tanpa berkonsultasi dengan [dashboard penggunaan](/docs/id/costs). Ketika Anda melanjutkan percakapan sebelumnya dengan `--continue` atau `--resume`, jalankan melaporkan total keseluruhan percakapan, [pengeluaran jalankan sebelumnya disertakan](/docs/id/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls). Kedua angka tersebut adalah [perkiraan sisi klien](/docs/id/agent-sdk/cost-tracking) dan dapat berbeda dari tagihan aktual Anda.

113 113 

114<Note>114<Note>

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


212* **Secara default**: blok `tool_use` dan `tool_result` subagent.212* **Secara default**: blok `tool_use` dan `tool_result` subagent.

213* **Dengan [`--forward-subagent-text`](/docs/id/cli-reference#cli-flags) atau [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/id/env-vars)**: blok teks dan thinking subagent juga, sehingga Anda dapat merekonstruksi transkrip setiap subagent. Ini memerlukan Claude Code v2.1.211 atau lebih baru.213* **Dengan [`--forward-subagent-text`](/docs/id/cli-reference#cli-flags) atau [`CLAUDE_CODE_FORWARD_SUBAGENT_TEXT`](/docs/id/env-vars)**: blok teks dan thinking subagent juga, sehingga Anda dapat merekonstruksi transkrip setiap subagent. Ini memerlukan Claude Code v2.1.211 atau lebih baru.

214 214 

215Ketika Anda mengaktifkan salah satu opsi, Claude Code meneruskan pesan dari [subagents di setiap kedalaman nesting](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents): ketika subagent menelurkan subagent miliknya sendiri, pesan subagent bersarang membawa ID dari Agent tool call yang menelurkannya di `parent_tool_use_id`, sehingga Anda dapat membangun kembali pohon nesting penuh dengan mengikuti ID tersebut. Sebelum v2.1.219, pesan dari subagent bersarang tidak muncul dalam aliran.215Ketika Anda mengaktifkan salah satu opsi, Claude Code meneruskan pesan dari [subagents di setiap kedalaman nesting](/docs/id/sub-agents#let-subagents-spawn-their-own-subagents), baik setiap satu dispawn dengan Agent tool atau dimulai sebagai [forked skill](/docs/id/skills#run-skills-in-a-subagent). Pesan subagent yang forked skill spawn, dan forked skill yang dimulai di dalam subagent atau forked skill lainnya, memerlukan Claude Code v2.1.275 atau lebih baru. Di `parent_tool_use_id`, pesan subagent bersarang membawa ID dari Agent atau Skill tool call yang memulainya, sehingga Anda dapat membangun kembali pohon nesting penuh dengan mengikuti ID tersebut. Sebelum v2.1.219, pesan dari subagent bersarang tidak muncul dalam aliran.

216 216 

217Skills yang [berjalan dalam subagent](/docs/id/skills#run-skills-in-a-subagent) muncul dalam aliran dengan cara yang sama: pesan pertama skill yang di-fork adalah pesan `user` yang membawa konten skill yang mendorong jalankan. Jika Anda mengaktifkan salah satu opsi, aliran juga membawa blok teks dan thinking skill yang di-fork. Sebelum v2.1.265, hanya blok `tool_use` dan `tool_result` skill yang di-fork yang muncul dalam aliran.217Skills yang [berjalan dalam subagent](/docs/id/skills#run-skills-in-a-subagent) muncul dalam aliran dengan cara yang sama: pesan pertama skill yang di-fork adalah pesan `user` yang membawa konten skill yang mendorong jalankan. Jika Anda mengaktifkan salah satu opsi, aliran juga membawa blok teks dan thinking skill yang di-fork. Sebelum v2.1.265, hanya blok `tool_use` dan `tool_result` skill yang di-fork yang muncul dalam aliran.

218 218 

hooks.md +13 −5

Details

992 992 

993Stdout hook Anda harus berisi hanya objek JSON. Jika profil shell Anda mencetak teks saat startup, itu dapat mengganggu parsing JSON. Lihat [Hook JSON has no effect](/docs/id/hooks-guide#hook-json-has-no-effect) dalam panduan troubleshooting.993Stdout hook Anda harus berisi hanya objek JSON. Jika profil shell Anda mencetak teks saat startup, itu dapat mengganggu parsing JSON. Lihat [Hook JSON has no effect](/docs/id/hooks-guide#hook-json-has-no-effect) dalam panduan troubleshooting.

994 994 

995String output hook, termasuk `additionalContext`, `systemMessage`, dan plain stdout, dibatasi pada 10.000 karakter. Output yang melebihi batas ini disimpan ke file dan diganti dengan pratinjau dan path file, dengan cara yang sama seperti hasil Bash besar ditangani di bawah [Output limits](/docs/id/tools-reference#output-limits).995String `additionalContext`, `systemMessage`, dan `initialUserMessage` hook, dan stdout biasanya, dibatasi pada 10.000 karakter:

996 

997* **Scope**: Claude Code mengukur setiap string sendiri, bahkan ketika beberapa hooks berjalan untuk event yang sama. Untuk output JSON, setiap bidang diukur secara terpisah; stdout biasa diukur secara keseluruhan.

998* **Melebihi batas**: Claude Code menyimpan output ke file di direktori sesi dan menggantinya dengan path file dan pratinjau hingga 2.000 karakter pertama. Hasil Bash yang besar yang valid ditangani dengan cara yang sama, dijelaskan di bawah [Output limits](/docs/id/tools-reference#output-limits). Tidak seperti batas Bash itu, cap ini tidak memiliki pengaturan atau variabel lingkungan untuk menaikkannya.

999* **Membaca file**: Claude Code tidak meminta Claude untuk membaca file, jadi simpan apa pun yang harus selalu dilihat Claude dalam cap.

996 1000 

997Objek JSON mendukung tiga jenis bidang:1001Objek JSON mendukung tiga jenis bidang:

998 1002 


1379 1383 

1380Dijalankan ketika file `CLAUDE.md` atau `.claude/rules/*.md` dimuat ke dalam konteks. Event ini dijalankan saat startup sesi untuk file yang dimuat dengan eager dan lagi nanti ketika file dimuat dengan lazy, misalnya ketika Claude mengakses subdirektori yang berisi `CLAUDE.md` bersarang atau ketika aturan bersyarat dengan frontmatter `paths:` cocok. Hook tidak mendukung pemblokiran atau kontrol keputusan. Itu dijalankan secara asinkron untuk tujuan observabilitas.1384Dijalankan ketika file `CLAUDE.md` atau `.claude/rules/*.md` dimuat ke dalam konteks. Event ini dijalankan saat startup sesi untuk file yang dimuat dengan eager dan lagi nanti ketika file dimuat dengan lazy, misalnya ketika Claude mengakses subdirektori yang berisi `CLAUDE.md` bersarang atau ketika aturan bersyarat dengan frontmatter `paths:` cocok. Hook tidak mendukung pemblokiran atau kontrol keputusan. Itu dijalankan secara asinkron untuk tujuan observabilitas.

1381 1385 

1386Event ini tidak dijalankan ketika Claude [membaca `AGENTS.md` secara langsung](/docs/id/memory#agents-md) melalui pengaturan **Project instructions**. Itu dijalankan ketika `CLAUDE.md` mengimpor `AGENTS.md` Anda, dengan `load_reason` diatur ke `include` seperti untuk file yang diimpor lainnya, dan ketika `CLAUDE.md` adalah symlink ke itu, sebagai load `CLAUDE.md` normal.

1387 

1382Matcher dijalankan terhadap `load_reason`. Misalnya, gunakan `"matcher": "session_start"` untuk dijalankan hanya untuk file yang dimuat saat startup sesi, atau `"matcher": "path_glob_match|nested_traversal"` untuk dijalankan hanya untuk lazy loads.1388Matcher dijalankan terhadap `load_reason`. Misalnya, gunakan `"matcher": "session_start"` untuk dijalankan hanya untuk file yang dimuat saat startup sesi, atau `"matcher": "path_glob_match|nested_traversal"` untuk dijalankan hanya untuk lazy loads.

1383 1389 

1384<h4 id="instructionsloaded-input">1390<h4 id="instructionsloaded-input">


1698 1704 

1699Selain [bidang input umum](#common-input-fields), PreToolUse hooks menerima `tool_name`, `tool_input`, dan `tool_use_id`.1705Selain [bidang input umum](#common-input-fields), PreToolUse hooks menerima `tool_name`, `tool_input`, dan `tool_use_id`.

1700 1706 

1707Untuk [MCP tool](#match-mcp-tools), input juga membawa `mcp_server`, objek dengan `name` server dan `source` yang mengatakan dari mana definisi server berasal. Nilai `source` mencakup `plugin`, `sdk`, dan cakupan konfigurasi seperti `user` dan `project`. [`McpServerProvenance`](/docs/id/agent-sdk/typescript#mcpserverprovenance) dalam referensi Agent SDK mencantumkan semuanya dan mengatakan cara memperlakukan yang tidak Anda kenal. Dasarkan keputusan kepercayaan pada `source` daripada pada `name` atau awalan nama tool `mcp__<server>__`. Bidang `mcp_server` memerlukan Claude Code v2.1.274 atau lebih baru.

1708 

1701Untuk file tools `Write`, `Edit`, dan `Read`, `tool_input.file_path` selalu absolut:1709Untuk file tools `Write`, `Edit`, dan `Read`, `tool_input.file_path` selalu absolut:

1702 1710 

1703* Claude Code memperluas `~` dan path relatif sebelum hooks dijalankan, jadi hook yang cocok pada path tidak dapat dilewati melalui `~` atau ejaan relatif dari path yang sama1711* Claude Code memperluas `~` dan path relatif sebelum hooks dijalankan, jadi hook yang cocok pada path tidak dapat dilewati melalui `~` atau ejaan relatif dari path yang sama


2027 PermissionRequest input2035 PermissionRequest input

2028</h4>2036</h4>

2029 2037 

2030PermissionRequest hooks menerima bidang `tool_name` dan `tool_input` seperti PreToolUse hooks, tetapi tanpa `tool_use_id`. Array `permission_suggestions` opsional berisi [permission updates](#permission-update-entries) yang Claude Code sarankan untuk permintaan ini, seperti menambahkan aturan allow atau mengubah mode izin.2038PermissionRequest hooks menerima bidang `tool_name` dan `tool_input` seperti PreToolUse hooks, tetapi tanpa `tool_use_id`. Untuk MCP tool, mereka juga menerima objek [`mcp_server`](#pretooluse-input). Array `permission_suggestions` opsional berisi [permission updates](#permission-update-entries) yang Claude Code sarankan untuk permintaan ini, seperti menambahkan aturan allow atau mengubah mode izin.

2031 2039 

2032Array `permission_suggestions` bukan daftar opsi yang tepat yang Anda lihat, karena setiap dialog izin membangun opsi miliknya sendiri. Beberapa dialog, seperti yang untuk edit file, tidak membaca array sama sekali dan menurunkan opsi mereka dari permintaan itu sendiri. Dialog yang membacanya masih dapat menahan opsi yang sarannya tetap dalam array, misalnya ketika [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly) menyembunyikan opsi penyimpanan aturan. Itu juga dapat menawarkan opsi yang tidak memiliki entri saran, seperti [**Yes, and switch to auto mode**](/docs/id/permission-modes#switch-permission-modes), yang mengubah mode izin secara langsung daripada melalui pembaruan izin.2040Array `permission_suggestions` bukan daftar opsi yang tepat yang Anda lihat, karena setiap dialog izin membangun opsi miliknya sendiri. Beberapa dialog, seperti yang untuk edit file, tidak membaca array sama sekali dan menurunkan opsi mereka dari permintaan itu sendiri. Dialog yang membacanya masih dapat menahan opsi yang sarannya tetap dalam array, misalnya ketika [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly) menyembunyikan opsi penyimpanan aturan. Itu juga dapat menawarkan opsi yang tidak memiliki entri saran, seperti [**Yes, and switch to auto mode**](/docs/id/permission-modes#switch-permission-modes), yang mengubah mode izin secara langsung daripada melalui pembaruan izin.

2033 2041 


2135 PostToolUse input2143 PostToolUse input

2136</h4>2144</h4>

2137 2145 

2138Hooks `PostToolUse` dijalankan setelah tool sudah dijalankan dengan sukses. Input mencakup `tool_input`, argumen yang dikirim ke tool, dan `tool_response`, hasil yang dikembalikan. Skema yang tepat untuk keduanya tergantung pada tool. Path `tool_input` file-tool tiba dalam format yang sama seperti untuk [PreToolUse](#pretooluse-input): selalu absolut, dengan pemisah asli platform, jadi backslashes di Windows.2146Hooks `PostToolUse` dijalankan setelah tool sudah dijalankan dengan sukses. Input mencakup `tool_input`, argumen yang dikirim ke tool, dan `tool_response`, hasil yang dikembalikan. Skema yang tepat untuk keduanya tergantung pada tool. Path `tool_input` file-tool tiba dalam format yang sama seperti untuk [PreToolUse](#pretooluse-input): selalu absolut, dengan pemisah asli platform, jadi backslashes di Windows. Untuk MCP tool, input juga membawa objek [`mcp_server`](#pretooluse-input).

2139 2147 

2140```json theme={null}2148```json theme={null}

2141{2149{


2249 PostToolUseFailure input2257 PostToolUseFailure input

2250</h4>2258</h4>

2251 2259 

2252PostToolUseFailure hooks menerima bidang `tool_name` dan `tool_input` yang sama seperti PostToolUse, bersama dengan informasi kesalahan sebagai bidang tingkat atas. Misalnya, perintah `npm test` yang gagal mungkin memberikan:2260PostToolUseFailure hooks menerima bidang `tool_name` dan `tool_input` yang sama seperti PostToolUse, bersama dengan informasi kesalahan sebagai bidang tingkat atas. Untuk MCP tool, mereka juga menerima objek [`mcp_server`](#pretooluse-input). Misalnya, perintah `npm test` yang gagal mungkin memberikan:

2253 2261 

2254```json theme={null}2262```json theme={null}

2255{2263{


2376 PermissionDenied input2384 PermissionDenied input

2377</h4>2385</h4>

2378 2386 

2379Selain [bidang input umum](#common-input-fields), PermissionDenied hooks menerima `tool_name`, `tool_input`, `tool_use_id`, dan `reason`.2387Selain [bidang input umum](#common-input-fields), PermissionDenied hooks menerima `tool_name`, `tool_input`, `tool_use_id`, dan `reason`. Untuk MCP tool, mereka juga menerima objek [`mcp_server`](#pretooluse-input).

2380 2388 

2381```json theme={null}2389```json theme={null}

2382{2390{

Details

24 24 

25Anda juga bagian dari loop ini. Anda dapat mengganggu kapan saja untuk mengarahkan Claude ke arah yang berbeda, memberikan konteks tambahan, atau memintanya mencoba pendekatan yang berbeda. Claude bekerja secara otonom tetapi tetap responsif terhadap input Anda.25Anda juga bagian dari loop ini. Anda dapat mengganggu kapan saja untuk mengarahkan Claude ke arah yang berbeda, memberikan konteks tambahan, atau memintanya mencoba pendekatan yang berbeda. Claude bekerja secara otonom tetapi tetap responsif terhadap input Anda.

26 26 

27Loop agentic didukung oleh dua komponen: [models](#models) yang bernalar dan [tools](#tools) yang bertindak. Claude Code berfungsi sebagai **agentic harness** di sekitar Claude: Claude Code menyediakan tools, manajemen konteks, dan lingkungan eksekusi yang mengubah model bahasa menjadi agen coding yang mampu.27Loop agentic didukung oleh dua komponen: [models](#models) yang bernalar dan [tools](#tools) yang bertindak. Claude Code adalah lapisan di sekitar model yang menyediakan tools dan mengelola konteks yang dilihat model. Lapisan sekitarnya ini adalah apa yang istilah agentic harness mengacu pada.

28 28 

29<h3 id="models">29<h3 id="models">

30 Models30 Models


238 Ganggu dan arahkan238 Ganggu dan arahkan

239</h4>239</h4>

240 240 

241Anda dapat mengalihkan Claude kapan saja tanpa menunggu giliran selesai atau memulai dari awal:241Anda dapat mengalihkan Claude kapan saja tanpa memulai dari awal. Lakukan salah satu dari ini:

242 242 

243* **Tekan `Esc`** untuk menghentikan Claude segera. Panggilan tool yang sedang berjalan dibatalkan dan Claude menunggu instruksi Anda berikutnya. Jika Anda memiliki pesan yang antri, Claude Code [mengirimnya selanjutnya](/docs/id/interactive-mode#queue-messages-while-claude-works).243* **Tekan `Esc`** untuk menghentikan Claude segera. Panggilan tool yang sedang berjalan dibatalkan dan Claude menunggu instruksi Anda berikutnya. Jika Anda memiliki pesan yang antri, Claude Code [mengirimnya selanjutnya](/docs/id/interactive-mode#queue-messages-while-claude-works).

244* **Ketik koreksi dan tekan `Enter`** untuk mengirimnya tanpa menghentikan tool yang sedang berjalan. Claude membacanya segera setelah tindakan saat ini selesai dan menyesuaikan sebelum memutuskan langkah berikutnya.244* **Ketik koreksi dan tekan `Enter`** tanpa menghentikan Claude. Pesan ditampilkan sebagai antri di atas kotak input. Jika Claude menjalankan panggilan tool, pesan dibaca segera setelah panggilan tersebut selesai, dalam giliran yang sama, dan disesuaikan sebelum langkah berikutnya. [Antri pesan saat Claude bekerja](/docs/id/interactive-mode#queue-messages-while-claude-works) mencakup kapan entri antri lainnya dikirim.

245 245 

246<h3 id="delegate-don’t-dictate">246<h3 id="delegate-don’t-dictate">

247 Delegasikan, jangan mendikte247 Delegasikan, jangan mendikte

Details

26| `Ctrl+X Ctrl+K` | Hentikan semua [subagen latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) dalam sesi ini, dan matikan [balasan otomatis artefak](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own) untuk sisanya. Tekan dua kali dalam 3 detik untuk mengonfirmasi | Kontrol subagen |26| `Ctrl+X Ctrl+K` | Hentikan semua [subagen latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) dalam sesi ini, dan matikan [balasan otomatis artefak](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own) untuk sisanya. Tekan dua kali dalam 3 detik untuk mengonfirmasi | Kontrol subagen |

27| `Ctrl+D` | Keluar dari sesi Claude Code | Tekan pertama menampilkan petunjuk konfirmasi dan tekan kedua dalam 800ms keluar. Ketika prompt memiliki teks, `Ctrl+D` menghapus karakter setelah kursor |27| `Ctrl+D` | Keluar dari sesi Claude Code | Tekan pertama menampilkan petunjuk konfirmasi dan tekan kedua dalam 800ms keluar. Ketika prompt memiliki teks, `Ctrl+D` menghapus karakter setelah kursor |

28| `Ctrl+G` atau `Ctrl+X Ctrl+E` | Buka di editor teks default | Edit prompt atau respons kustom Anda di editor teks default Anda. `Ctrl+X Ctrl+E` adalah binding readline asli. Aktifkan **Tampilkan respons terakhir di editor eksternal** di `/config` untuk menambahkan balasan sebelumnya Claude sebagai konteks berkomentar `#` di atas prompt Anda; Claude Code menghapus blok komentar saat Anda menyimpan |28| `Ctrl+G` atau `Ctrl+X Ctrl+E` | Buka di editor teks default | Edit prompt atau respons kustom Anda di editor teks default Anda. `Ctrl+X Ctrl+E` adalah binding readline asli. Aktifkan **Tampilkan respons terakhir di editor eksternal** di `/config` untuk menambahkan balasan sebelumnya Claude sebagai konteks berkomentar `#` di atas prompt Anda; Claude Code menghapus blok komentar saat Anda menyimpan |

29| `Ctrl+L` | Gambar ulang atau hapus layar | Memaksa penggambaran ulang terminal penuh, menjaga input dan riwayat percakapan. Gunakan ini untuk memulihkan jika tampilan menjadi berantakan atau sebagian kosong. Dalam [rendering layar penuh](/docs/id/fullscreen#clear-the-conversation), ini juga menghapus layar, dan Anda dapat menggulir ke atas untuk melihat pesan sebelumnya |29| `Ctrl+L` | Gambar ulang layar | Memaksa penggambaran ulang terminal penuh, menjaga input dan riwayat percakapan. Gunakan ini untuk memulihkan jika tampilan menjadi berantakan atau sebagian kosong. Lihat [Hapus percakapan](/docs/id/fullscreen#clear-the-conversation) untuk rendering layar penuh |

30| `Ctrl+O` | Alihkan penampil transkrip | Menampilkan penggunaan alat terperinci dan eksekusi, dengan stempel waktu dan model yang digunakan pada setiap pesan asisten. Juga memperluas baris yang runtuh secara default, seperti panggilan MCP, ditampilkan sebagai baris `Called slack 3 times` tunggal, dan [pesan dari sesi lain Anda](/docs/id/cross-session-messaging#what-a-message-looks-like), ditampilkan sebagai pratinjau `Message from @<sender>` satu baris |30| `Ctrl+O` | Alihkan penampil transkrip | Menampilkan penggunaan alat terperinci dan eksekusi, dengan stempel waktu dan model yang digunakan pada setiap pesan asisten. Juga memperluas baris yang runtuh secara default, seperti panggilan MCP, ditampilkan sebagai baris `Called slack 3 times` tunggal, dan [pesan dari sesi lain Anda](/docs/id/cross-session-messaging#what-a-message-looks-like), ditampilkan sebagai pratinjau `Message from @<sender>` satu baris |

31| `Ctrl+R` | Pencarian riwayat perintah terbalik | Cari melalui perintah sebelumnya secara interaktif |31| `Ctrl+R` | Pencarian riwayat perintah terbalik | Cari melalui perintah sebelumnya secara interaktif |

32| `Ctrl+V` atau `Cmd+V` (iTerm2) atau `Alt+V` (Windows dan WSL) | Tempel gambar dari clipboard | Menyisipkan chip `[Image #N]` di kursor sehingga Anda dapat mereferensikannya secara posisional dalam prompt Anda. Di WSL, baik `Ctrl+V` maupun `Alt+V` terikat; gunakan `Alt+V` jika terminal Anda menangkap `Ctrl+V` |32| `Ctrl+V` atau `Cmd+V` (iTerm2) atau `Alt+V` (Windows dan WSL) | Tempel gambar dari clipboard | Menyisipkan chip `[Image #N]` di kursor sehingga Anda dapat mereferensikannya secara posisional dalam prompt Anda. Di WSL, baik `Ctrl+V` maupun `Alt+V` terikat; gunakan `Alt+V` jika terminal Anda menangkap `Ctrl+V` |


42| `Ctrl+Enter` atau `Ctrl+X Ctrl+S` | Kirim pesan antrian sekarang | Menghentikan giliran saat ini sehingga [pesan antrian](#queue-messages-while-claude-works) Anda, dan draf Anda bersama mereka, keluar segera daripada ketika giliran berakhir. Dalam [mode shell](#shell-mode-with-prefix), kunci mengantrekan perintah Anda tanpa menghentikan. Di terminal yang tidak melaporkan kunci diperluas, `Ctrl+Enter` tiba sebagai `Enter` biasa; `Ctrl+X Ctrl+S` bekerja di terminal apa pun. Memerlukan Claude Code v2.1.275 atau yang lebih baru |42| `Ctrl+Enter` atau `Ctrl+X Ctrl+S` | Kirim pesan antrian sekarang | Menghentikan giliran saat ini sehingga [pesan antrian](#queue-messages-while-claude-works) Anda, dan draf Anda bersama mereka, keluar segera daripada ketika giliran berakhir. Dalam [mode shell](#shell-mode-with-prefix), kunci mengantrekan perintah Anda tanpa menghentikan. Di terminal yang tidak melaporkan kunci diperluas, `Ctrl+Enter` tiba sebagai `Enter` biasa; `Ctrl+X Ctrl+S` bekerja di terminal apa pun. Memerlukan Claude Code v2.1.275 atau yang lebih baru |

43| `Shift+Tab`, atau `Alt+M` di Windows ketika runtime Node atau Bun tidak mengaktifkan mode input VT | Mode izin siklus | Siklus melalui `default` (berlabel Manual dalam indikator mode), `acceptEdits`, `plan`, dan, ketika tersedia, `bypassPermissions` dan kemudian `auto`. Dari `auto`, tekan pertama beralih ke `default`. Lihat [mode izin](/docs/id/permission-modes). Pada prompt izin file, kunci yang sama menutup [bidang komentar](/docs/id/permissions#add-a-comment-when-you-answer-a-permission-prompt) yang terbuka. Tanpa bidang terbuka, ini memilih opsi yang memungkinkan tindakan untuk sisa sesi, ketika prompt menawarkan opsi itu |43| `Shift+Tab`, atau `Alt+M` di Windows ketika runtime Node atau Bun tidak mengaktifkan mode input VT | Mode izin siklus | Siklus melalui `default` (berlabel Manual dalam indikator mode), `acceptEdits`, `plan`, dan, ketika tersedia, `bypassPermissions` dan kemudian `auto`. Dari `auto`, tekan pertama beralih ke `default`. Lihat [mode izin](/docs/id/permission-modes). Pada prompt izin file, kunci yang sama menutup [bidang komentar](/docs/id/permissions#add-a-comment-when-you-answer-a-permission-prompt) yang terbuka. Tanpa bidang terbuka, ini memilih opsi yang memungkinkan tindakan untuk sisa sesi, ketika prompt menawarkan opsi itu |

44| `Option+P` (macOS) atau `Alt+P` (Windows/Linux) | Model switch | Alihkan model tanpa menghapus prompt Anda |44| `Option+P` (macOS) atau `Alt+P` (Windows/Linux) | Model switch | Alihkan model tanpa menghapus prompt Anda |

45| `Option+T` (macOS) atau `Alt+T` (Windows/Linux) | Alihkan pemikiran diperpanjang | Aktifkan atau nonaktifkan mode pemikiran diperpanjang. Tidak berpengaruh pada Fable 5.1 atau Fable 5, yang selalu menggunakan pemikiran diperpanjang. Bekerja di macOS tanpa mengonfigurasi Option sebagai Meta |45| `Option+T` (macOS) atau `Alt+T` (Windows/Linux) | Alihkan pemikiran diperpanjang | Aktifkan atau nonaktifkan mode pemikiran diperpanjang. Tidak berpengaruh pada Opus 5.5 atau model Fable, yang selalu menggunakan pemikiran diperpanjang. Bekerja di macOS tanpa mengonfigurasi Option sebagai Meta |

46| `Option+O` (macOS) atau `Alt+O` (Windows/Linux) | Alihkan mode cepat | Aktifkan atau nonaktifkan [mode cepat](/docs/id/fast-mode) |46| `Option+O` (macOS) atau `Alt+O` (Windows/Linux) | Alihkan mode cepat | Aktifkan atau nonaktifkan [mode cepat](/docs/id/fast-mode) |

47 47 

48<h3 id="text-editing">48<h3 id="text-editing">


593 593 

594Untuk mengetahui mana dari ini yang terjadi, mulai `claude --debug` dengan pemeriksaan ejaan aktif dan ketik sebuah kata. Kemudian cari baris `[spellcheck]` dalam log debug di `~/.claude/debug/<session-id>.txt`. Satu baris menamai program yang dimulai Claude Code, atau mencantumkan yang dicarinya dan tidak ditemukan. Baris-baris kemudian mengatakan mengapa berhenti. Kesalahan kamus yang hilang di sana berarti pemeriksa tidak memiliki kamus untuk nilai `language` Anda, atau tidak ada default ketika `language` tidak diatur. Instal satu, atau atur `language` ke kamus yang Anda miliki.594Untuk mengetahui mana dari ini yang terjadi, mulai `claude --debug` dengan pemeriksaan ejaan aktif dan ketik sebuah kata. Kemudian cari baris `[spellcheck]` dalam log debug di `~/.claude/debug/<session-id>.txt`. Satu baris menamai program yang dimulai Claude Code, atau mencantumkan yang dicarinya dan tidak ditemukan. Baris-baris kemudian mengatakan mengapa berhenti. Kesalahan kamus yang hilang di sana berarti pemeriksa tidak memiliki kamus untuk nilai `language` Anda, atau tidak ada default ketika `language` tidak diatur. Instal satu, atau atur `language` ke kamus yang Anda miliki.

595 595 

596<h2 id="invisible-characters-in-prompts">

597 Karakter tak terlihat dalam prompt

598</h2>

599 

600Teks yang ditempel dapat membawa karakter Unicode yang tidak ditampilkan terminal sama sekali, seperti karakter tag, kontrol bidireksional, dan spasi lebar nol, sehingga prompt dapat berisi teks yang tidak pernah Anda lihat. Untuk mencegah teks yang disalin membawa instruksi yang tidak ditampilkan terminal, Claude Code menghapus karakter-karakter tersebut saat Anda menekan Enter, sebelum mengirim apa pun. Ini membersihkan prompt dan konten dari setiap [referensi teks yang ditempel](/docs/id/terminal-config#paste-large-content) yang disertakan prompt. Claude Code mempertahankan penyambung yang ditulis skrip Persia dan Indik serta pemilih di dalam urutan emoji.

601 

602Jika Claude Code menghapus apa pun, Enter tersebut tidak mengirim apa pun. Prompt yang dibersihkan kembali ke kotak input dengan pemberitahuan seperti `Removed 3 invisible characters · review and press Enter to send`, dan menekan Enter lagi mengirim teks seperti yang ditampilkan.

603 

604Saat Anda melewatkan prompt di baris perintah, seperti dalam `claude "fix the login bug"`, atau menyalurkannya ke sesi interaktif, Claude Code tidak menunggu Enter kedua. Ini menghapus karakter, menampilkan pemberitahuan, dan mengirim prompt yang dibersihkan. Jika prompt yang dibersihkan dimulai dengan `/`, Claude Code menempatkannya di kotak input agar Anda dapat meninjau dan mengirimnya.

605 

596<h2 id="review-changes-with-/diff">606<h2 id="review-changes-with-/diff">

597 Tinjau perubahan dengan /diff607 Tinjau perubahan dengan /diff

598</h2>608</h2>

keybindings.md +30 −4

Details

114| Tindakan | Default | Deskripsi |114| Tindakan | Default | Deskripsi |

115| :-------------------- | :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |115| :-------------------- | :-------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

116| `chat:cancel` | Escape | Batalkan input saat ini |116| `chat:cancel` | Escape | Batalkan input saat ini |

117| `chat:clearInput` | Ctrl+L | Paksa gambar ulang layar penuh, mempertahankan input dan percakapan. Dalam [rendering fullscreen](/docs/id/fullscreen#clear-the-conversation), juga hapus layar |117| `chat:clearInput` | Ctrl+L | Paksa gambar ulang layar penuh, mempertahankan input dan percakapan |

118| `chat:clearScreen` | Cmd+K | Sama dengan `chat:clearInput`. Lihat [Hapus percakapan](/docs/id/fullscreen#clear-the-conversation) untuk cara Cmd+K berperilaku di iTerm2 dan Terminal.app |118| `chat:clearScreen` | Cmd+K | Sama dengan `chat:clearInput`. Lihat [Hapus percakapan](/docs/id/fullscreen#clear-the-conversation) untuk cara Cmd+K berperilaku di iTerm2 dan Terminal.app |

119| `chat:killAgents` | Ctrl+X Ctrl+K | Hentikan semua [subagen latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) dalam sesi ini dan matikan [balasan otomatis artefak](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own) untuk sisanya |119| `chat:killAgents` | Ctrl+X Ctrl+K | Hentikan semua [subagen latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) dalam sesi ini dan matikan [balasan otomatis artefak](/docs/id/artifacts#let-claude-reply-to-comments-on-its-own) untuk sisanya |

120| `chat:cycleMode` | Shift+Tab\* | Mode izin siklus |120| `chat:cycleMode` | Shift+Tab\* | Mode izin siklus |


153 153 

154| Tindakan | Default | Deskripsi |154| Tindakan | Default | Deskripsi |

155| :---------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |155| :---------------------- | :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

156| `confirm:yes` | Y, Enter | Konfirmasi tindakan |156| `confirm:yes` | Enter | Konfirmasi tindakan |

157| `confirm:no` | N, Escape | Tolak tindakan |157| `confirm:no` | Escape | Tolak tindakan |

158| `confirm:previous` | Up | Opsi sebelumnya |158| `confirm:previous` | Up | Opsi sebelumnya |

159| `confirm:next` | Down | Opsi berikutnya |159| `confirm:next` | Down | Opsi berikutnya |

160| `confirm:nextField` | Tab | Bidang berikutnya |160| `confirm:nextField` | Tab | Bidang berikutnya |


166 166 

167Sebelum v2.1.257, tindakan `confirm:toggleExplanation`, terikat ke `Ctrl+E` secara default, menampilkan penjelasan perintah yang dihasilkan model pada prompt izin Bash dan PowerShell.167Sebelum v2.1.257, tindakan `confirm:toggleExplanation`, terikat ke `Ctrl+E` secara default, menampilkan penjelasan perintah yang dihasilkan model pada prompt izin Bash dan PowerShell.

168 168 

169Dialog menggunakan `confirm:yes` dan `confirm:no` untuk menerima dan membatalkan bahkan ketika mereka tidak mengajukan pertanyaan ya-atau-tidak. Jika Anda mengikat huruf telanjang seperti `y` atau `n` dalam konteks ini, huruf juga bertindak pada dialog yang tidak pernah menampilkannya sebagai kunci. Dialog yang menampilkan `y` dan `n` sebagai kuncinya membaca huruf-huruf itu sendiri dan tidak memerlukan pengikatan.

170 

171Contoh ini mengikat `y` ke `confirm:yes` dan `n` ke `confirm:no`:

172 

173```json theme={null}

174{

175 "bindings": [

176 {

177 "context": "Confirmation",

178 "bindings": {

179 "y": "confirm:yes",

180 "n": "confirm:no"

181 }

182 }

183 ]

184}

185```

186 

187Sebelum v2.1.280, `y` juga terikat ke `confirm:yes` dan `n` ke `confirm:no` secara default. Jika Anda membuat `keybindings.json` Anda dengan `/keybindings` sebelum v2.1.280, file mencantumkan kedua pengikatan dan mereka tetap berlaku sampai Anda menghapus kedua baris itu.

188 

169<h3 id="permission-actions">189<h3 id="permission-actions">

170 Tindakan izin190 Tindakan izin

171</h3>191</h3>


275| `footer:clearSelection` | Escape | Hapus pilihan footer |295| `footer:clearSelection` | Escape | Hapus pilihan footer |

276| `footer:dismiss` | Backspace, Delete | Hapus tautan [artefak](/docs/id/artifacts) yang dipilih dari footer; artefak yang dipublikasikan itu sendiri tidak terpengaruh. Pada baris footer lainnya, kunci ini tidak memiliki efek. Memerlukan v2.1.217 atau lebih baru |296| `footer:dismiss` | Backspace, Delete | Hapus tautan [artefak](/docs/id/artifacts) yang dipilih dari footer; artefak yang dipublikasikan itu sendiri tidak terpengaruh. Pada baris footer lainnya, kunci ini tidak memiliki efek. Memerlukan v2.1.217 atau lebih baru |

277 297 

298Saat item footer dipilih, seperti baris dalam panel agen di bawah prompt, `Enter` membukanya bahkan ketika Anda mengikat ulang `Enter` dalam konteks `Chat` ke `chat:queueSubmit` atau `chat:newline`.

299 

300Pengikatan `Chat` pada kunci yang konteks `Footer` tidak ikat, seperti `Shift+Tab` untuk `chat:cycleMode`, terus bekerja saat item dipilih.

301 

278<h3 id="message-selector-actions">302<h3 id="message-selector-actions">

279 Tindakan pemilih pesan303 Tindakan pemilih pesan

280</h3>304</h3>


370| `select:accept` | Enter | Terima pilihan |394| `select:accept` | Enter | Terima pilihan |

371| `select:cancel` | Escape | Batalkan pilihan |395| `select:cancel` | Escape | Batalkan pilihan |

372 396 

373Claude Code menerapkan pengikatan `select:pageUp`, `select:pageDown`, `select:first`, dan `select:last` Anda dalam menu `/skills`. Dalam sebagian besar daftar lainnya, seperti pemilih `/model`, Claude Code halaman dengan PageUp dan PageDown terlepas dari pengikatan Anda dan mengabaikan Home dan End.397Claude Code menerapkan pengikatan `select:pageUp`, `select:pageDown`, `select:first`, dan `select:last` Anda dalam menu `/skills`. Dalam sebagian besar daftar lainnya, seperti pemilih `/model`, pengikatan `select:first` dan `select:last` Anda berlaku. PageUp dan PageDown halaman melalui opsi dalam daftar-daftar itu terlepas dari pengikatan Anda.

398 

399Sebelum v2.1.280, daftar-daftar lain itu mengabaikan Home, End, dan pengikatan `select:first` dan `select:last` Anda.

374 400 

375<h3 id="plugin-actions">401<h3 id="plugin-actions">

376 Tindakan plugin402 Tindakan plugin

Details

255 255 

256Ini sangat berguna untuk [isolasi worktree subagent](/docs/id/worktrees#isolate-subagents-with-worktrees). Subagent adalah instance Claude paralel yang dihasilkan untuk subtask, dan masing-masing yang berjalan di worktree mendapat checkout ringan bukan pohon penuh. Semua worktrees dalam sesi berbagi `sparsePaths` yang sama, jadi jika satu subagent memerlukan `packages/api/` dan yang lain memerlukan `packages/web/`, daftarkan keduanya.256Ini sangat berguna untuk [isolasi worktree subagent](/docs/id/worktrees#isolate-subagents-with-worktrees). Subagent adalah instance Claude paralel yang dihasilkan untuk subtask, dan masing-masing yang berjalan di worktree mendapat checkout ringan bukan pohon penuh. Semua worktrees dalam sesi berbagi `sparsePaths` yang sama, jadi jika satu subagent memerlukan `packages/api/` dan yang lain memerlukan `packages/web/`, daftarkan keduanya.

257 257 

258Daftarkan direktori di `sparsePaths`, bukan file individual. File level-root seperti `package.json`, `tsconfig.base.json`, dan file lock selalu diperiksa bersama direktori yang Anda daftarkan. Direktori level-root tidak, jadi sertakan `.claude` dalam daftar jika Anda menginginkan `.claude/settings.json`, `.claude/rules/`, atau `.claude/skills/` repository root tersedia di dalam worktree.258Daftarkan direktori di `sparsePaths`, bukan file individual. File level-root seperti `package.json`, `tsconfig.base.json`, dan file lock selalu diperiksa bersama direktori yang Anda daftarkan. Direktori level-root tidak, jadi sertakan `.claude` dalam daftar jika Anda menginginkan repository root's `.claude/settings.json` atau `.claude/rules/` tersedia di dalam worktree. Untuk project skills, agents, dan commands, lihat [What worktrees share with the main checkout](/docs/id/worktrees#what-worktrees-share-with-the-main-checkout).

259 259 

260Sparse checkout memerlukan git untuk mengaktifkan `extensions.worktreeConfig` di `.git/config` bersama repository saat worktree sparse ada. Claude Code menghapus entri itu setelah worktree terakhir dihapus, tetapi hanya jika Claude Code yang menambahkannya. Itu tidak pernah menghapus nilai yang Anda atur sendiri. Sebelum v2.1.207, entri tetap ada setelah worktree terakhir dihapus, dan alat berbasis go-git seperti `tea` gagal membuka repository sampai Anda menjalankan `git config --unset extensions.worktreeConfig`.260Sparse checkout memerlukan git untuk mengaktifkan `extensions.worktreeConfig` di `.git/config` bersama repository saat worktree sparse ada. Claude Code menghapus entri itu setelah worktree terakhir dihapus, tetapi hanya jika Claude Code yang menambahkannya. Itu tidak pernah menghapus nilai yang Anda atur sendiri. Sebelum v2.1.207, entri tetap ada setelah worktree terakhir dihapus, dan alat berbasis go-git seperti `tea` gagal membuka repository sampai Anda menjalankan `git config --unset extensions.worktreeConfig`.

261 261 

Details

578Ini adalah kesalahan paling umum saat menjalankan Claude Code melalui gateway, dengan penyebab sisi gateway dan perbaikannya:578Ini adalah kesalahan paling umum saat menjalankan Claude Code melalui gateway, dengan penyebab sisi gateway dan perbaikannya:

579 579 

580| Kesalahan | Penyebab | Perbaikan |580| Kesalahan | Penyebab | Perbaikan |

581| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |581| :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

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

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

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


588| Kesalahan `400` yang menamai `thinking` atau `adaptive`, seperti `Input tag 'adaptive' found` | Build model upstream tidak menerima adaptive reasoning, yang diminta Claude Code untuk model Claude 4.6 dan 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` |588| Kesalahan `400` yang menamai `thinking` atau `adaptive`, seperti `Input tag 'adaptive' found` | Build model upstream tidak menerima adaptive reasoning, yang diminta Claude Code untuk model Claude 4.6 dan 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` |

589| Kesalahan `400` yang menyatakan batas konteks atau token dalam kata-kata gateway sendiri, seperti `ContextWindowExceededError` atau `prompt token count of N exceeds the limit of M` | Gateway memberlakukan konteks yang lebih kecil dari jendela asli model dan menulis ulang kesalahan upstream, jadi Claude Code tidak mengenalinya sebagai [kesalahan terlalu panjang](/docs/id/errors#prompt-is-too-long) dan tidak compact dan retry secara otomatis | Jalankan `/compact` untuk memulihkan sesi. Untuk mencegahnya, atur `CLAUDE_CODE_AUTO_COMPACT_WINDOW` ke batas gateway; Claude Code mengklem nilai ke setidaknya 100.000 token dan paling banyak jendela konteks model, jadi Anda tidak dapat mencocokkan batas gateway di bawah 100.000, dan `/compact` tetap menjadi pemulihan di sana. Juga atur `CLAUDE_CODE_MAX_OUTPUT_TOKENS` di bawah batas output model gateway |589| Kesalahan `400` yang menyatakan batas konteks atau token dalam kata-kata gateway sendiri, seperti `ContextWindowExceededError` atau `prompt token count of N exceeds the limit of M` | Gateway memberlakukan konteks yang lebih kecil dari jendela asli model dan menulis ulang kesalahan upstream, jadi Claude Code tidak mengenalinya sebagai [kesalahan terlalu panjang](/docs/id/errors#prompt-is-too-long) dan tidak compact dan retry secara otomatis | Jalankan `/compact` untuk memulihkan sesi. Untuk mencegahnya, atur `CLAUDE_CODE_AUTO_COMPACT_WINDOW` ke batas gateway; Claude Code mengklem nilai ke setidaknya 100.000 token dan paling banyak jendela konteks model, jadi Anda tidak dapat mencocokkan batas gateway di bawah 100.000, dan `/compact` tetap menjadi pemulihan di sana. Juga atur `CLAUDE_CODE_MAX_OUTPUT_TOKENS` di bawah batas output model gateway |

590| Kesalahan `400` pada setiap permintaan, dalam kata-kata gateway sendiri menolak skema input alat atau `pattern`-nya, pada Claude Code v2.1.265 hingga v2.1.267 | Dalam peluncuran bertahap pada versi tersebut, skema [alat Artifact](/docs/id/artifacts#availability) membawa ekspresi reguler dengan kelas karakter Unicode `\p{...}`. API Anthropic menerimanya, tetapi gateway atau upstream yang memeriksa `pattern` skema setiap alat dengan mesin regex-nya sendiri menolak seluruh permintaan | Perbarui ke v2.1.268 atau lebih baru, yang tidak mengirim ekspresi reguler. Pada versi yang terpengaruh, [matikan artifacts](/docs/id/artifacts#disable-artifacts), yang menghapus alat dan skemanya dari permintaan |590| Kesalahan `400` pada setiap permintaan, dalam kata-kata gateway sendiri menolak skema input alat atau `pattern`-nya, pada Claude Code v2.1.265 hingga v2.1.267 | Dalam peluncuran bertahap pada versi tersebut, skema [alat Artifact](/docs/id/artifacts#availability) membawa ekspresi reguler dengan kelas karakter Unicode `\p{...}`. API Anthropic menerimanya, tetapi gateway atau upstream yang memeriksa `pattern` skema setiap alat dengan mesin regex-nya sendiri menolak seluruh permintaan | Perbarui ke v2.1.268 atau lebih baru, yang tidak mengirim ekspresi reguler. Pada versi yang terpengaruh, [matikan artifacts](/docs/id/artifacts#disable-artifacts), yang menghapus alat dan skemanya dari permintaan |

591| Kesalahan `400` pada setiap permintaan, dalam kata-kata gateway sendiri menolak jenis alat yang tidak dikenali, seperti `Input tag 'advisor_20260301'`, pada Claude Code v2.1.275 | Dalam peluncuran bertahap pada versi itu, permintaan membawa entri [alat advisor](/docs/id/advisor) bahkan dengan advisor dimatikan. API Anthropic menerimanya, tetapi gateway atau upstream yang memvalidasi jenis alat menolak seluruh permintaan; satu yang [meneruskan bidang badan permintaan tanpa perubahan](/docs/id/llm-gateway-protocol#forward-as-open-lists) meneruskannya tanpa terpengaruh. Entri adalah deklarasi yang tidak membawa konten percakapan | Perbarui ke v2.1.276 atau lebih baru, yang tidak mengirim entri di belakang gateway `ANTHROPIC_BASE_URL` kecuali Anda menghidupkan advisor. Pada v2.1.275, atur [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL=1`](/docs/id/env-vars), yang menghapus entri dari permintaan |

591| Model hilang dari pemilih `/model` | Nama model gateway tidak ada dalam daftar bawaan Claude Code, atau Claude Code menampilkan lineup [`modelPicker`](/docs/id/settings-reference#modelpicker) yang menggantikan opsi bawaan | Aktifkan [penemuan model gateway](#add-gateway-models-to-the-model-picker) atau tambahkan nama dengan variabel [konfigurasi model](/docs/id/model-config). Jika Claude Code menampilkan lineup `modelPicker` yang menggantikan, tambahkan model gateway ke dalamnya, atau minta administrator Anda untuk menambahkannya ketika pengaturan terkelola menyediakannya |592| Model hilang dari pemilih `/model` | Nama model gateway tidak ada dalam daftar bawaan Claude Code, atau Claude Code menampilkan lineup [`modelPicker`](/docs/id/settings-reference#modelpicker) yang menggantikan opsi bawaan | Aktifkan [penemuan model gateway](#add-gateway-models-to-the-model-picker) atau tambahkan nama dengan variabel [konfigurasi model](/docs/id/model-config). Jika Claude Code menampilkan lineup `modelPicker` yang menggantikan, tambahkan model gateway ke dalamnya, atau minta administrator Anda untuk menambahkannya ketika pengaturan terkelola menyediakannya |

592| `/fast` melaporkan `Fast mode unavailable due to network connectivity issues` sementara permintaan inference bekerja | Pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode) berjalan langsung ke `api.anthropic.com` dan tidak mengikuti `ANTHROPIC_BASE_URL`, jadi egress langsung yang diblokir gagal pemeriksaan. Pesan yang sama muncul di jaringan terbuka ketika pemeriksaan menyajikan kunci yang dikeluarkan gateway dari `ANTHROPIC_API_KEY` atau `apiKeyHelper` dan Anthropic menolaknya | Daftar putih `api.anthropic.com` jika egress diblokir, atau atur variabel skip; untuk kunci gateway yang ditolak hanya variabel skip yang membantu. Lihat [gunakan fast mode di belakang proxy dan LLM gateway](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |593| `/fast` melaporkan `Fast mode unavailable due to network connectivity issues` sementara permintaan inference bekerja | Pemeriksaan ketersediaan [fast mode](/docs/id/fast-mode) berjalan langsung ke `api.anthropic.com` dan tidak mengikuti `ANTHROPIC_BASE_URL`, jadi egress langsung yang diblokir gagal pemeriksaan. Pesan yang sama muncul di jaringan terbuka ketika pemeriksaan menyajikan kunci yang dikeluarkan gateway dari `ANTHROPIC_API_KEY` atau `apiKeyHelper` dan Anthropic menolaknya | Daftar putih `api.anthropic.com` jika egress diblokir, atau atur variabel skip; untuk kunci gateway yang ditolak hanya variabel skip yang membantu. Lihat [gunakan fast mode di belakang proxy dan LLM gateway](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

593| `/fast` melaporkan `Fast mode has been disabled by your organization` dalam sesi yang diautentikasi dengan `ANTHROPIC_AUTH_TOKEN`, meskipun organisasi memiliki fast mode yang diaktifkan | Pemeriksaan ketersediaan memerlukan login claude.ai atau kunci API Anthropic; dengan hanya token bearer, Claude Code memperlakukan fast mode sebagai dinonaktifkan tanpa mengirim pemeriksaan | Atur `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; lihat [gunakan fast mode di belakang proxy dan LLM gateway](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |594| `/fast` melaporkan `Fast mode has been disabled by your organization` dalam sesi yang diautentikasi dengan `ANTHROPIC_AUTH_TOKEN`, meskipun organisasi memiliki fast mode yang diaktifkan | Pemeriksaan ketersediaan memerlukan login claude.ai atau kunci API Anthropic; dengan hanya token bearer, Claude Code memperlakukan fast mode sebagai dinonaktifkan tanpa mengirim pemeriksaan | Atur `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`; lihat [gunakan fast mode di belakang proxy dan LLM gateway](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

Details

144 144 

145Jika pengembang Anda menetapkan `ANTHROPIC_CUSTOM_HEADERS`, header tersebut muncul pada permintaan juga.145Jika pengembang Anda menetapkan `ANTHROPIC_CUSTOM_HEADERS`, header tersebut muncul pada permintaan juga.

146 146 

147<h3 id="gateway-hint-headers">

148 Header petunjuk gateway

149</h3>

150 

151Claude Code juga dapat mengirim petunjuk routing: fakta per-permintaan yang dapat digunakan gateway atau router untuk menjadwalkan, cache, atau mengatribusikan permintaan. Memerlukan Claude Code v2.1.273 atau lebih baru.

152 

153Apakah permintaan membawanya tergantung pada tempat Claude Code mengirimnya:

154 

155* Koneksi langsung ke API Anthropic: dikirim secara default

156* URL dasar kustom: nonaktif secara default, karena proxy yang menolak header yang tidak dikenal akan gagal permintaan. Untuk menerimanya, atur [`CLAUDE_CODE_GATEWAY_HINT_HEADERS=1`](/docs/id/env-vars) untuk pengembang Anda, misalnya di blok `env` dari [pengaturan terkelola](/docs/id/managed-settings)

157* Backend lainnya, termasuk Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, dan Claude Platform on AWS: dikirim hanya ketika `CLAUDE_CODE_GATEWAY_HINT_HEADERS=1` diatur

158 

159Mengatur `CLAUDE_CODE_GATEWAY_HINT_HEADERS` ke `0` menghentikan header pada setiap koneksi.

160 

161Header hanya membawa apa yang baris di bawah daftar: kosakata tetap, nama alat, dan durasi, tidak pernah teks prompt atau konten file. Setiap nilai adalah ASCII yang dapat dicetak.

162 

163| Header | Deskripsi |

164| :---------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

165| `x-claude-code-request-class` | Jenis permintaan apa ini: `main` untuk giliran percakapan utama, `subagent` untuk giliran [subagent](/docs/id/sub-agents), `workflow` untuk agen yang berjalan di dalam alur kerja, `compaction` untuk permintaan peringkasan yang memadatkan percakapan, atau `auxiliary` untuk permintaan samping seperti judul sesi, pengklasifikasi, dan ringkasan. Dikirim pada setiap permintaan |

166| `x-claude-code-agent-type` | Jenis subagent yang mengeluarkan permintaan: nama jenis agen bawaan seperti `Explore`, `Plan`, atau `general-purpose`, atau `custom` untuk agen yang ditentukan pengguna, `teammate` untuk anggota [tim agen](/docs/id/agent-teams) yang berjalan dalam proses pemimpin, atau `fork` untuk [fork](/docs/id/sub-agents#fork-the-current-conversation). Hadir hanya pada giliran subagent sendiri; permintaan compaction atau samping subagent menyimpan ID agen tetapi tidak membawa jenis. Nama agen yang dipilih pengguna tidak pernah dikirim |

167| `x-claude-code-compaction` | Hadir pada permintaan yang merangkum percakapan selama [compaction](/docs/id/prompt-caching#compacting-the-conversation). Nilainya mengatakan apa yang memicunya: `auto` ketika jendela konteks mendekati kapasitas, `manual` untuk `/compact`, atau `reactive` ketika API menolak permintaan sebagai terlalu panjang. Tidak ada pada setiap permintaan lainnya |

168| `x-claude-code-context-compacted` | Hadir sekali, pada permintaan percakapan utama pertama setelah compaction, dengan nilai yang sama seperti `x-claude-code-compaction`. Awalan percakapan sebelum permintaan ini tidak lagi digunakan, jadi cache yang dikunci padanya dapat dijatuhkan |

169| `x-claude-code-prev-tool-durations` | Waktu run terukur dari panggilan alat yang hasilnya dibawa permintaan ini, sebagai `<name>=<ms>;<name>=<ms>`, misalnya `Bash=742;Read=9`. Dikirim pada permintaan berikutnya dari percakapan yang sama setelah batch panggilan alat, dari sesi utama atau subagent |

170 

171Sebelum mengurai `x-claude-code-prev-tool-durations`, periksa bagaimana Claude Code membangun nilai dan apa yang ditinggalkannya:

172 

173* Entri: satu per panggilan alat yang berjalan, dalam urutan hasilnya dikumpulkan, dalam milidetik utuh

174* Cap: Claude Code mengirim paling banyak 32 entri dan 4 KB, menyimpan entri pertama

175* Encoding: nama alat dikodekan persen, mencakup `%`, `;`, `=`, koma, spasi, dan karakter apa pun di luar ASCII yang dapat dicetak

176* Parsing: pisahkan pada `;`, kemudian pada `=`, dan dekode setiap nama

177* Ketiadaan: panggilan compaction, permintaan samping, dan permintaan pertama prompt baru tidak membawanya. Jangan baca header yang hilang sebagai giliran yang tidak menjalankan alat

178* Waktu: masing-masing mengecualikan prompt izin dan hooks, dan panggilan alat paralel masing-masing melaporkan waktu mereka sendiri, jadi entri tidak menambah hingga celah antara permintaan

179 

147<h3 id="forward-as-open-lists">180<h3 id="forward-as-open-lists">

148 Teruskan sebagai daftar terbuka181 Teruskan sebagai daftar terbuka

149</h3>182</h3>


221 254 

222* Ketika upstream menolak field `thinking`, pesan sistem mid-conversation, atau penanda `cache_control` pada pesan tersebut, Claude Code mengulangi permintaan dan menonaktifkan kemampuan yang ditolak untuk sisa percakapan255* Ketika upstream menolak field `thinking`, pesan sistem mid-conversation, atau penanda `cache_control` pada pesan tersebut, Claude Code mengulangi permintaan dan menonaktifkan kemampuan yang ditolak untuk sisa percakapan

223* Ketika upstream menolak [tanda tangan pemikiran](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), termasuk dengan `400` yang pesannya mengatakan blok `bound to a different conversation`, Claude Code menghapus blok pemikiran sebelumnya dari permintaan, mengulangi, dan menjaganya keluar dari setiap permintaan kemudian. Respons baru masih menyertakan pemikiran256* Ketika upstream menolak [tanda tangan pemikiran](https://platform.claude.com/docs/en/build-with-claude/extended-thinking), termasuk dengan `400` yang pesannya mengatakan blok `bound to a different conversation`, Claude Code menghapus blok pemikiran sebelumnya dari permintaan, mengulangi, dan menjaganya keluar dari setiap permintaan kemudian. Respons baru masih menyertakan pemikiran

257* Ketika gateway atau upstream-nya menolak entri [alat advisor](/docs/id/advisor) dalam `tools` sebagai tipe alat yang tidak dikenali, Claude Code mengulangi permintaan sekali tanpa entri tersebut dan nilai `anthropic-beta`-nya. Permintaan kemudian ke URL dasar tersebut meninggalkan advisor keluar sampai Claude Code keluar, dan `/advisor` tidak tersedia untuk pengembang untuk waktu itu. Claude Code mengenali penolakan ini dengan respons `400` atau `422` yang pesannya menyebutkan tipe alat setelah `Input tag`, seperti `Input tag 'advisor_20260301'`. Sebelum v2.1.280, Claude Code tidak mengulangi penolakan ini

224* Claude Code tidak mengulangi penolakan manajemen konteks atau field skema alat, jadi kesalahan `400` tersebut mencapai pengembang258* Claude Code tidak mengulangi penolakan manajemen konteks atau field skema alat, jadi kesalahan `400` tersebut mencapai pengembang

225 259 

226Penolakan `bound to a different conversation` berasal dari pemeriksaan [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) API, yang gagal ketika konten `system`, `tools`, atau `messages` sebelumnya berbeda dari permintaan yang menghasilkan pemikiran. Gateway yang menulis ulang konten apa pun dari itu dapat menyebabkan penolakan itu sendiri; [Libraries, proxies, and gateways](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) mencakup apa yang harus dilewatkan tanpa perubahan.260Penolakan `bound to a different conversation` berasal dari pemeriksaan [preserved thinking](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking) API, yang gagal ketika konten `system`, `tools`, atau `messages` sebelumnya berbeda dari permintaan yang menghasilkan pemikiran. Gateway yang menulis ulang konten apa pun dari itu dapat menyebabkan penolakan itu sendiri; [Libraries, proxies, and gateways](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways) mencakup apa yang harus dilewatkan tanpa perubahan.

Details

184| `ANTHROPIC_BASE_URL` | Mengirim permintaan API Claude Code ke gateway daripada `api.anthropic.com` | Selalu |184| `ANTHROPIC_BASE_URL` | Mengirim permintaan API Claude Code ke gateway daripada `api.anthropic.com` | Selalu |

185| `apiKeyHelper`, atau kredensial di `ANTHROPIC_AUTH_TOKEN` atau `ANTHROPIC_API_KEY` | Mengautentikasi setiap permintaan ke gateway. Helper menjalankan perintah untuk mengambil kunci; variabel menyimpan kunci statis, dikirim sebagai `Authorization: Bearer` dan `x-api-key` masing-masing | Selalu; salah satu dari tiga |185| `apiKeyHelper`, atau kredensial di `ANTHROPIC_AUTH_TOKEN` atau `ANTHROPIC_API_KEY` | Mengautentikasi setiap permintaan ke gateway. Helper menjalankan perintah untuk mengambil kunci; variabel menyimpan kunci statis, dikirim sebagai `Authorization: Bearer` dan `x-api-key` masing-masing | Selalu; salah satu dari tiga |

186| `ANTHROPIC_CUSTOM_HEADERS` | Menambahkan header HTTP ekstra ke setiap permintaan API | Gateway Anda memerlukan header penyewa atau perutean pada setiap permintaan |186| `ANTHROPIC_CUSTOM_HEADERS` | Menambahkan header HTTP ekstra ke setiap permintaan API | Gateway Anda memerlukan header penyewa atau perutean pada setiap permintaan |

187| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | Mengirim [header hint gateway](/docs/id/llm-gateway-protocol#gateway-hint-headers), yang mengklasifikasikan setiap permintaan untuk keputusan perutean dan penjadwalan di gateway. Memerlukan Claude Code v2.1.273 atau lebih baru | Gateway Anda membaca header hint |

187| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Menanyakan `/v1/models` gateway saat startup dan menambahkan nama yang dikembalikan ke pemilih `/model` | Gateway Anda melayani `/v1/models` dan Anda ingin pemilih pengembang diisi darinya |188| `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` | Menanyakan `/v1/models` gateway saat startup dan menambahkan nama yang dikembalikan ke pemilih `/model` | Gateway Anda melayani `/v1/models` dan Anda ingin pemilih pengembang diisi darinya |

188| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Menghentikan Claude Code mengirim header dan bidang badan kemampuan pra-rilis. [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencakup cakupan yang tepat | Gateway Anda meneruskan ke upstream Amazon Bedrock atau Agent Platform Google Cloud yang menolak bidang beta. Lihat [Persyaratan gateway](#gateway-requirements) |189| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Menghentikan Claude Code mengirim header dan bidang badan kemampuan pra-rilis. [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencakup cakupan yang tepat | Gateway Anda meneruskan ke upstream Amazon Bedrock atau Agent Platform Google Cloud yang menolak bidang beta. Lihat [Persyaratan gateway](#gateway-requirements) |

189| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` atau `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Mengembalikan [fast mode](/docs/id/fast-mode) ketika pemeriksaan ketersediaannya, yang memanggil `api.anthropic.com` secara langsung daripada mengikuti `ANTHROPIC_BASE_URL`, gagal, dicegat, atau dilewati karena kurangnya kredensial Anthropic | Organisasi Anda menggunakan fast mode, dan pengembang mengautentikasi dengan `ANTHROPIC_AUTH_TOKEN` saja, dengan kunci yang dikeluarkan gateway di `ANTHROPIC_API_KEY` atau dari `apiKeyHelper`, atau jaringan Anda memblokir atau mencegat permintaan langsung ke `api.anthropic.com`; [gunakan fast mode di belakang proxy dan gateway LLM](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) mencakup variabel mana dari dua yang cocok dengan konfigurasi Anda |190| `CLAUDE_CODE_SKIP_FAST_MODE_NETWORK_ERRORS` atau `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | Mengembalikan [fast mode](/docs/id/fast-mode) ketika pemeriksaan ketersediaannya, yang memanggil `api.anthropic.com` secara langsung daripada mengikuti `ANTHROPIC_BASE_URL`, gagal, dicegat, atau dilewati karena kurangnya kredensial Anthropic | Organisasi Anda menggunakan fast mode, dan pengembang mengautentikasi dengan `ANTHROPIC_AUTH_TOKEN` saja, dengan kunci yang dikeluarkan gateway di `ANTHROPIC_API_KEY` atau dari `apiKeyHelper`, atau jaringan Anda memblokir atau mencegat permintaan langsung ke `api.anthropic.com`; [gunakan fast mode di belakang proxy dan gateway LLM](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) mencakup variabel mana dari dua yang cocok dengan konfigurasi Anda |

Details

361Beberapa kunci penegakan tidak dihapus ketika tidak valid. Claude Code memberlakukan fallback yang lebih ketat sampai nilai diperbaiki; tabel menunjukkan apa yang diberlakukannya untuk setiap kunci:361Beberapa kunci penegakan tidak dihapus ketika tidak valid. Claude Code memberlakukan fallback yang lebih ketat sampai nilai diperbaiki; tabel menunjukkan apa yang diberlakukannya untuk setiap kunci:

362 362 

363| Bidang | Perilaku ketika ada tetapi tidak valid |363| Bidang | Perilaku ketika ada tetapi tidak valid |

364| :---------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |364| :---------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

365| `allowedMcpServers` | Diberlakukan sebagai daftar izin kosong sampai nilai diperbaiki, jadi tidak ada server MCP yang pengguna tambahkan yang diakui. Server yang organisasi Anda berikan melalui [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) masih dimuat, dan server `managed-mcp.json` dimuat per [Bagaimana server dievaluasi](/docs/id/managed-mcp#how-a-server-is-evaluated). Entri individual yang tidak valid dilepas dan subset yang valid diberlakukan. |365| `allowedMcpServers` | Diberlakukan sebagai daftar izin kosong sampai nilai diperbaiki, jadi tidak ada server MCP yang pengguna tambahkan yang diakui. Server yang organisasi Anda berikan melalui [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) masih dimuat, dan server `managed-mcp.json` dimuat per [Bagaimana server dievaluasi](/docs/id/managed-mcp#how-a-server-is-evaluated). Entri individual yang tidak valid dilepas dan subset yang valid diberlakukan. |

366| `allowedHttpHookUrls` | Claude Code memberlakukan daftar izin terkelola kosong [allowlist](/docs/id/settings-reference#allowedhttphookurls) sampai Anda memperbaiki nilai, jadi HTTP hook berjalan hanya jika file pengaturan lain mencantumkan URL-nya. Jika hanya entri individual yang tidak valid, Claude Code melepas entri itu dan memberlakukan sisanya. |366| `allowedHttpHookUrls` | Claude Code memberlakukan daftar izin terkelola kosong [allowlist](/docs/id/settings-reference#allowedhttphookurls) sampai Anda memperbaiki nilai, jadi HTTP hook berjalan hanya jika file pengaturan lain mencantumkan URL-nya. Jika hanya entri individual yang tidak valid, Claude Code melepas entri itu dan memberlakukan sisanya. |

367| `httpHookAllowedEnvVars` | Claude Code memberlakukan daftar izin terkelola kosong [allowlist](/docs/id/settings-reference#httphookallowedenvvars) sampai Anda memperbaiki nilai, jadi variabel header diinterpolasi hanya jika file pengaturan lain menamainya. Jika hanya entri individual yang tidak valid, Claude Code melepas entri itu dan memberlakukan sisanya. |367| `httpHookAllowedEnvVars` | Claude Code memberlakukan daftar izin terkelola kosong [allowlist](/docs/id/settings-reference#httphookallowedenvvars) sampai Anda memperbaiki nilai, jadi variabel header diinterpolasi hanya jika file pengaturan lain menamainya. Jika hanya entri individual yang tidak valid, Claude Code melepas entri itu dan memberlakukan sisanya. |

368| `allowedChannelPlugins` | Claude Code memberlakukan daftar izin kosong sampai Anda memperbaiki nilai, jadi tidak ada plugin saluran yang dilewatkan ke `--channels` yang diakui. Jika hanya entri individual yang tidak valid, itu melepas entri itu dan memberlakukan sisanya. |368| `allowedChannelPlugins` | Claude Code memberlakukan daftar izin kosong sampai Anda memperbaiki nilai, jadi tidak ada plugin saluran yang dilewatkan ke `--channels` yang diakui. Jika hanya entri individual yang tidak valid, itu melepas entri itu dan memberlakukan sisanya. |

369| `strictKnownMarketplaces` | Diberlakukan sebagai daftar izin kosong sampai nilai diperbaiki, jadi tidak ada [sumber marketplace](/docs/id/plugin-marketplaces#managed-marketplace-restrictions) yang diakui. Entri individual yang tidak valid atau tidak dapat diberlakukan, seperti regex `hostPattern` yang tidak dikompilasi, dilepas dan subset yang valid diberlakukan. |

369| `allowManagedHooksOnly` | Diperlakukan sebagai `true` sampai diperbaiki: [pembatasan hook](/docs/id/settings-reference#allowmanagedhooksonly) berlaku dan, kecuali `disableCommandPluginSources` secara eksplisit `false`, plugin bersumber perintah dinonaktifkan. |370| `allowManagedHooksOnly` | Diperlakukan sebagai `true` sampai diperbaiki: [pembatasan hook](/docs/id/settings-reference#allowmanagedhooksonly) berlaku dan, kecuali `disableCommandPluginSources` secara eksplisit `false`, plugin bersumber perintah dinonaktifkan. |

370| `allowManagedMcpServersOnly` | Diperlakukan sebagai `true`. |371| `allowManagedMcpServersOnly` | Diperlakukan sebagai `true`. |

371| `disableCommandPluginSources` | Diperlakukan sebagai `true`, jadi plugin bersumber perintah tetap dinonaktifkan sampai nilai diperbaiki. |372| `disableCommandPluginSources` | Diperlakukan sebagai `true`, jadi plugin bersumber perintah tetap dinonaktifkan sampai nilai diperbaiki. |

373| `disableSideloadFlags` | Diperlakukan sebagai `true` sampai nilai diperbaiki, dengan efek yang tercantum untuk [`disableSideloadFlags`](/docs/id/settings-reference#disablesideloadflags). |

372| `availableModels` | Diberlakukan sebagai daftar izin kosong sampai diperbaiki, jadi hanya model Default yang tersedia; entri non-string dilepas dan subset yang valid diberlakukan. |374| `availableModels` | Diberlakukan sebagai daftar izin kosong sampai diperbaiki, jadi hanya model Default yang tersedia; entri non-string dilepas dan subset yang valid diberlakukan. |

373| `enforceAvailableModels` | Diperlakukan sebagai `true`. |375| `enforceAvailableModels` | Diperlakukan sebagai `true`. |

376| `syncClaudeAiPlugins` | Diperlakukan sebagai `false`, jadi sinkronisasi [plugin claude.ai](/docs/id/settings-reference#syncclaudeaiplugins) mati sampai nilai diperbaiki. |

374| `forceLoginOrgUUID` | Tidak ada organisasi yang diizinkan untuk masuk sampai nilai diperbaiki. |377| `forceLoginOrgUUID` | Tidak ada organisasi yang diizinkan untuk masuk sampai nilai diperbaiki. |

375| `gatewayInternalNetworks` | Ketika nilai yang tidak valid berasal dari sumber terkelola tertinggi di mesin, `/login` menolak setiap [gateway cloud](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) masuk baru di mesin itu sampai nilai diperbaiki. |378| `gatewayInternalNetworks` | Ketika nilai yang tidak valid berasal dari sumber terkelola tertinggi di mesin, `/login` menolak setiap [gateway cloud](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) masuk baru di mesin itu sampai nilai diperbaiki. |

376| `crossSessionInbound` | Diperlakukan sebagai `refuse`, nilai paling ketat, jadi [pesan lintas sesi](/docs/id/cross-session-messaging#control-inbound-messages) masuk ditolak sampai nilai diperbaiki. Pengembang melihat [peringatan](/docs/id/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |379| `crossSessionInbound` | Diperlakukan sebagai `refuse`, nilai paling ketat, jadi [pesan lintas sesi](/docs/id/cross-session-messaging#control-inbound-messages) masuk ditolak sampai nilai diperbaiki. Pengembang melihat [peringatan](/docs/id/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse). |

377| `deniedMcpServers` | Entri individual yang tidak valid dilepas dan subset yang valid diberlakukan. Nilai yang sepenuhnya tidak valid dihapus dengan peringatan, karena menolak setiap server akan memblokir server yang kebijakan tidak pernah namai. |380| `deniedMcpServers` | Entri individual yang tidak valid dilepas dan subset yang valid diberlakukan. Nilai yang sepenuhnya tidak valid dihapus dengan peringatan, karena menolak setiap server akan memblokir server yang kebijakan tidak pernah namai. |

381| `blockedMarketplaces` | Entri individual yang tidak valid dilepas dan subset yang valid diberlakukan. Entri yang diuraikan tetapi tidak pernah cocok, seperti regex `hostPattern` yang tidak dikompilasi, disimpan dengan peringatan. Itu tidak memblokir apa pun sampai diperbaiki, tetapi [pembatasan marketplace](/docs/id/plugin-marketplaces#managed-marketplace-restrictions) tetap aktif. Nilai yang sepenuhnya tidak valid dihapus dengan peringatan, karena memblokir setiap marketplace akan memblokir sumber yang kebijakan tidak pernah namai. |

378| `sandbox.credentials` | Entri yang tidak valid yang dapat dipulihkan diturunkan ke `mode: "deny"` dengan peringatan; yang tidak dapat dipulihkan dilepas; entri yang valid tetap diberlakukan. Lihat [entri kredensial yang tidak valid](/docs/id/settings-reference#invalid-credential-entries-in-managed-settings) |382| `sandbox.credentials` | Entri yang tidak valid yang dapat dipulihkan diturunkan ke `mode: "deny"` dengan peringatan; yang tidak dapat dipulihkan dilepas; entri yang valid tetap diberlakukan. Lihat [entri kredensial yang tidak valid](/docs/id/settings-reference#invalid-credential-entries-in-managed-settings) |

379 383 

380`allowedHttpHookUrls` dan `httpHookAllowedEnvVars` menggabungkan di seluruh file pengaturan, jadi entri dalam pengaturan pengguna, proyek, atau lokal Anda masih berlaku sementara daftar terkelola kosong. Fallback untuk dua kunci itu dan untuk `allowedChannelPlugins` memerlukan Claude Code v2.1.267 atau lebih baru; versi sebelumnya menghapus seluruh kunci ketika nilainya atau entri apa pun tidak valid.384`allowedHttpHookUrls` dan `httpHookAllowedEnvVars` menggabungkan di seluruh file pengaturan, jadi entri dalam pengaturan pengguna, proyek, atau lokal Anda masih berlaku sementara daftar terkelola kosong.

385 

386Fallback untuk dua kunci itu dan untuk `allowedChannelPlugins` memerlukan Claude Code v2.1.267 atau lebih baru; versi sebelumnya menghapus seluruh kunci ketika nilainya atau entri apa pun tidak valid. Fallback `strictKnownMarketplaces`, `blockedMarketplaces`, dan `disableSideloadFlags` memerlukan Claude Code v2.1.277 atau lebih baru; versi sebelumnya menghapus seluruh kunci ketika nilainya atau entri apa pun tidak valid.

381 387 

382`requiredMinimumVersion` dan `requiredMaximumVersion` gagal terbuka dengan desain: nilai yang tidak valid dihapus daripada diberlakukan.388`requiredMinimumVersion` dan `requiredMaximumVersion` gagal terbuka dengan desain: nilai yang tidak valid dihapus daripada diberlakukan.

383 389 

memory.md +24 −7

Details

82<Tip>82<Tip>

83 Jalankan `/init` untuk menghasilkan CLAUDE.md awal secara otomatis. Claude menganalisis basis kode Anda dan membuat file dengan perintah build, instruksi test, dan konvensi proyek yang ditemukannya. Jika CLAUDE.md sudah ada, `/init` menyarankan perbaikan daripada menimpanya. Perbaiki dari sana dengan instruksi yang Claude tidak akan temukan sendiri.83 Jalankan `/init` untuk menghasilkan CLAUDE.md awal secara otomatis. Claude menganalisis basis kode Anda dan membuat file dengan perintah build, instruksi test, dan konvensi proyek yang ditemukannya. Jika CLAUDE.md sudah ada, `/init` menyarankan perbaikan daripada menimpanya. Perbaiki dari sana dengan instruksi yang Claude tidak akan temukan sendiri.

84 84 

85 Atur `CLAUDE_CODE_NEW_INIT=1` untuk mengaktifkan alur multi-fase interaktif. `/init` menanyakan artefak mana yang akan diatur: file CLAUDE.md, skills, dan hooks. Kemudian mengeksplorasi basis kode Anda dengan subagent, mengisi celah melalui pertanyaan lanjutan, dan menyajikan proposal yang dapat ditinjau sebelum menulis file apa pun.85 Untuk alur multi-fase interaktif sebagai gantinya, atur variabel lingkungan `CLAUDE_CODE_NEW_INIT` ke `1` sebelum Anda menjalankan `/init`. Atur di shell Anda atau di blok `env` file pengaturan, seperti yang ditunjukkan dalam [Atur variabel lingkungan](/docs/id/env-vars#set-environment-variables). Dengan itu diatur, `/init` menanyakan artefak mana yang akan diatur: file CLAUDE.md, skills, dan hooks. Kemudian mengeksplorasi basis kode Anda dengan subagent, mengisi celah melalui pertanyaan lanjutan, dan menyajikan proposal yang dapat ditinjau sebelum menulis file apa pun. Variabel hanya mengubah cara `/init` berjalan, jadi Anda dapat membiarkannya diatur.

86</Tip>86</Tip>

87 87 

88<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">


165CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config165CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config

166```166```

167 167 

168Bentuk inline menetapkan variabel untuk peluncuran itu saja di Bash atau Zsh. Untuk menjaganya tetap aktif untuk setiap sesi, tambahkan ke blok `env` di `~/.claude/settings.json` seperti yang ditunjukkan dalam [Atur variabel lingkungan](/docs/id/env-vars#set-environment-variables).

169 

168Ini memuat `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, dan `CLAUDE.local.md` dari direktori tambahan. `CLAUDE.local.md` dilewati jika Anda mengecualikan `local` dari [`--setting-sources`](/docs/id/cli-reference).170Ini memuat `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, dan `CLAUDE.local.md` dari direktori tambahan. `CLAUDE.local.md` dilewati jika Anda mengecualikan `local` dari [`--setting-sources`](/docs/id/cli-reference).

169 171 

170<h3 id="organize-rules-with-claude/rules/">172<h3 id="organize-rules-with-claude/rules/">


244 246 

245Sintaks Glob memperlakukan `[` sebagai awal ekspresi bracket seperti `[abc]`. Pola dengan `[` yang tidak dapat dibaca sebagai ekspresi bracket, seperti `photos [2024/**`, tidak valid: itu tidak cocok dengan file apa pun, dan pola lain aturan terus bekerja. Untuk mencocokkan `[` literal dalam nama file, lepaskan sebagai `photos \[2024/**`. Sebelum v2.1.207, satu pola tidak valid membuat alat Read gagal untuk setiap file aturan dievaluasi terhadap, daripada tidak cocok dengan apa pun.247Sintaks Glob memperlakukan `[` sebagai awal ekspresi bracket seperti `[abc]`. Pola dengan `[` yang tidak dapat dibaca sebagai ekspresi bracket, seperti `photos [2024/**`, tidak valid: itu tidak cocok dengan file apa pun, dan pola lain aturan terus bekerja. Untuk mencocokkan `[` literal dalam nama file, lepaskan sebagai `photos \[2024/**`. Sebelum v2.1.207, satu pola tidak valid membuat alat Read gagal untuk setiap file aturan dievaluasi terhadap, daripada tidak cocok dengan apa pun.

246 248 

249<h4 id="rules-frontmatter-reference">

250 Referensi frontmatter aturan

251</h4>

252 

253Konfigurasi aturan dengan [frontmatter](/docs/id/glossary#frontmatter) YAML antara penanda `---` di bagian atas file. `paths` adalah satu-satunya bidang yang Claude Code baca dari aturan; bidang lain diabaikan tanpa kesalahan. Claude Code menghapus frontmatter sebelum memuat aturan ke dalam konteks.

254 

255| Bidang | Diperlukan | Deskripsi |

256| :------ | :--------- | :-------------------------------------------------------------------------------------------------------------------------------- |

257| `paths` | Tidak | Pola glob yang [membatasi aturan ke file yang cocok](#path-specific-rules). Menerima daftar YAML atau string yang dipisahkan koma |

258 

259Jika YAML antara penanda tidak diuraikan, Claude Code mengabaikan frontmatter dan memuat aturan seolah-olah tidak memiliki `paths`. Jalankan `claude --debug` untuk melihat kesalahan penguraian.

260 

247<h4 id="share-rules-across-projects-with-symlinks">261<h4 id="share-rules-across-projects-with-symlinks">

248 Bagikan aturan di seluruh proyek dengan symlink262 Bagikan aturan di seluruh proyek dengan symlink

249</h4>263</h4>


271└── workflows.md # Alur kerja pilihan Anda285└── workflows.md # Alur kerja pilihan Anda

272```286```

273 287 

274Aturan tingkat pengguna dimuat sebelum aturan proyek, memberikan aturan proyek prioritas lebih tinggi.288Claude Code memuat aturan tingkat pengguna sebelum aturan proyek, jadi aturan proyek muncul lebih lambat dalam konteks Claude daripada aturan pengguna. Tidak ada set yang menimpa yang lain: jika aturan pengguna dan aturan proyek bertentangan, Claude mungkin mengikuti salah satu, jadi jaga keduanya konsisten.

275 289 

276<h3 id="manage-claude-md-for-large-teams">290<h3 id="manage-claude-md-for-large-teams">

277 Kelola CLAUDE.md untuk tim besar291 Kelola CLAUDE.md untuk tim besar


424* Anda menggunakan versi Claude Code sebelum v2.1.277438* Anda menggunakan versi Claude Code sebelum v2.1.277

425* Sesi Anda tidak [mengambil bendera fitur dari Anthropic](/docs/id/env-vars#features-that-need-feature-flag-fetching), misalnya karena Anda menggunakan Amazon Bedrock atau penyedia pihak ketiga lainnya, atau Anda menonaktifkan telemetri. Bagian tertaut memiliki daftar lengkap439* Sesi Anda tidak [mengambil bendera fitur dari Anthropic](/docs/id/env-vars#features-that-need-feature-flag-fetching), misalnya karena Anda menggunakan Amazon Bedrock atau penyedia pihak ketiga lainnya, atau Anda menonaktifkan telemetri. Bagian tertaut memiliki daftar lengkap

426* Ini adalah [sesi pertama Anda setelah Anda menginstal atau meningkatkan](/docs/id/env-vars#first-session-after-an-install-or-upgrade) ke versi dengan dukungan `AGENTS.md`. Claude membaca `AGENTS.md` dari sesi berikutnya Anda440* Ini adalah [sesi pertama Anda setelah Anda menginstal atau meningkatkan](/docs/id/env-vars#first-session-after-an-install-or-upgrade) ke versi dengan dukungan `AGENTS.md`. Claude membaca `AGENTS.md` dari sesi berikutnya Anda

427* Anda atau organisasi Anda mengatur [`disableAllHooks`](/docs/id/settings-reference#disableallhooks) atau [`allowManagedHooksOnly`](/docs/id/settings-reference#allowmanagedhooksonly), atau Anda menonaktifkan plugin `agents-md` bawaan di `/plugin`441* Anda menonaktifkan plugin `agents-md` bawaan di `/plugin`

428 442 

429Untuk memberikan Claude `AGENTS.md` Anda dalam sesi ini, [impor dari `CLAUDE.md`](#share-one-file-with-other-coding-tools).443Untuk memberikan Claude `AGENTS.md` Anda dalam sesi ini, [impor dari `CLAUDE.md`](#share-one-file-with-other-coding-tools).

430 444 


435`AGENTS.md` yang Claude baca melalui pengaturan **Project instructions** berbeda dari `CLAUDE.md` di tempat-tempat ini:449`AGENTS.md` yang Claude baca melalui pengaturan **Project instructions** berbeda dari `CLAUDE.md` di tempat-tempat ini:

436 450 

437| | `CLAUDE.md` | `AGENTS.md` dibaca melalui pengaturan |451| | `CLAUDE.md` | `AGENTS.md` dibaca melalui pengaturan |

438| :----------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |452| :----------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------- |

439| `/memory` dan daftar **Memory files** di `/context` | Terdaftar | Tidak terdaftar. Untuk mengkonfirmasi Claude membacanya, cari baris [`AGENTS.md loaded`](#when-claude-code-reads-agents-md) di bawah nilai default, atau tanyakan Claude apa instruksi proyeknya |

440| Hook [`InstructionsLoaded`](/docs/id/hooks#instructionsloaded) | Aktif | Tidak aktif. Mereka aktif seperti biasa untuk `AGENTS.md` yang diimpor atau disimlink oleh `CLAUDE.md` |453| Hook [`InstructionsLoaded`](/docs/id/hooks#instructionsloaded) | Aktif | Tidak aktif. Mereka aktif seperti biasa untuk `AGENTS.md` yang diimpor atau disimlink oleh `CLAUDE.md` |

441| Direktori yang Anda tambahkan dengan `--add-dir` saat [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) diatur | `CLAUDE.md` mereka dimuat | `AGENTS.md` mereka tidak dimuat |454| Direktori yang Anda tambahkan dengan `--add-dir` saat [`CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD`](#load-from-additional-directories) diatur | `CLAUDE.md` mereka dimuat | `AGENTS.md` mereka tidak dimuat |

442| Impor `@path` dari file di luar direktori kerja Anda | Claude Code meminta Anda menyetujui [external imports](#import-additional-files) | Dimuat hanya jika Anda sudah menyetujui impor eksternal untuk proyek ini, tanpa prompt |455| Impor `@path` dari file di luar direktori kerja Anda | Claude Code meminta Anda menyetujui [external imports](#import-additional-files) | Dimuat hanya jika Anda sudah menyetujui impor eksternal untuk proyek ini, tanpa prompt |


604 617 

605Untuk men-debug:618Untuk men-debug:

606 619 

607* Jalankan `/context` dan periksa daftar di bawah **Memory files** untuk memverifikasi file CLAUDE.md dan CLAUDE.local.md Anda dimuat. Jika file `CLAUDE.md` tidak ada di sana, Claude tidak dapat melihatnya. `AGENTS.md` muncul di sana hanya ketika `CLAUDE.md` mengimpornya, bukan ketika Claude [membacanya secara langsung](#where-agents-md-differs-from-claude-md). Gunakan `/memory` untuk membuka dan mengedit file.620* Jalankan `/context` dan periksa daftar di bawah **Memory files** untuk memverifikasi file CLAUDE.md dan CLAUDE.local.md Anda dimuat. Jika file `CLAUDE.md` tidak ada di sana, Claude tidak dapat melihatnya. Gunakan `/memory` untuk membuka dan mengedit file.

608* 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)).621* 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)).

609* Buat instruksi lebih spesifik. "Gunakan indentasi 2 spasi" bekerja lebih baik daripada "format kode dengan baik."622* Buat instruksi lebih spesifik. "Gunakan indentasi 2 spasi" bekerja lebih baik daripada "format kode dengan baik."

610* Cari instruksi yang bertentangan di seluruh file CLAUDE.md. Jika dua file memberikan panduan berbeda untuk perilaku yang sama, Claude mungkin memilih satu secara sembarangan.623* Cari instruksi yang bertentangan di seluruh file CLAUDE.md. Jika dua file memberikan panduan berbeda untuk perilaku yang sama, Claude mungkin memilih satu secara sembarangan.


6283. Periksa apakah sesi Anda adalah sesi yang [tidak dapat memuat `AGENTS.md`](#when-agents-md-support-is-unavailable), seperti sesi di penyedia pihak ketiga atau dengan telemetri dinonaktifkan.6413. Periksa apakah sesi Anda adalah sesi yang [tidak dapat memuat `AGENTS.md`](#when-agents-md-support-is-unavailable), seperti sesi di penyedia pihak ketiga atau dengan telemetri dinonaktifkan.

6294. Ketik `/config` dalam sesi Anda untuk membuka panel pengaturan dan konfirmasi **Project instructions** tidak diatur ke `claude-md` atau `managed-only`. Jika Anda tidak melihat pengaturan di sana sama sekali, sesi Anda adalah sesi yang [tidak dapat memuat `AGENTS.md`](#when-agents-md-support-is-unavailable).6424. Ketik `/config` dalam sesi Anda untuk membuka panel pengaturan dan konfirmasi **Project instructions** tidak diatur ke `claude-md` atau `managed-only`. Jika Anda tidak melihat pengaturan di sana sama sekali, sesi Anda adalah sesi yang [tidak dapat memuat `AGENTS.md`](#when-agents-md-support-is-unavailable).

630 643 

631`AGENTS.md` tidak muncul di `/memory` atau `/context` ketika Claude membacanya secara langsung, jadi periksa baris `AGENTS.md loaded` atau tanyakan kepada Claude apa yang dikatakan instruksi proyeknya. Jika Anda ingin menyimpan `CLAUDE.md` yang Anda temukan, atau sesi Anda tidak dapat memuat `AGENTS.md`, [tambahkan `CLAUDE.md` di sebelah `AGENTS.md` Anda yang mengimpornya](#share-one-file-with-other-coding-tools).644Untuk memeriksa apakah Claude membaca `AGENTS.md` Anda, jalankan `/memory` dan cari jalurnya dalam daftar.

645 

646Sebelum v2.1.280, `/memory` dan `/context` tidak mencantumkan `AGENTS.md` yang Claude baca secara langsung. Pada versi tersebut, tanyakan kepada Claude apa yang dikatakan instruksi proyeknya sebagai gantinya.

647 

648Jika Anda ingin menyimpan `CLAUDE.md` yang Anda temukan, atau sesi Anda tidak dapat memuat `AGENTS.md`, [tambahkan `CLAUDE.md` di sebelah `AGENTS.md` Anda yang mengimpornya](#share-one-file-with-other-coding-tools).

632 649 

633<h3 id="i-don’t-know-what-auto-memory-saved">650<h3 id="i-don’t-know-what-auto-memory-saved">

634 I don't know what auto memory saved651 I don't know what auto memory saved

model-config.md +35 −37

Details

47 47 

48| Penyedia | `opus` | `sonnet` |48| Penyedia | `opus` | `sonnet` |

49| :--------------------------------------------------- | :------- | :--------- |49| :--------------------------------------------------- | :------- | :--------- |

50| Anthropic API | Opus 5 | Sonnet 5 |50| Anthropic API | Opus 5.5 | Sonnet 5 |

51| [Claude Platform on AWS](/docs/id/claude-platform-on-aws) | Opus 5 | Sonnet 4.6 |51| [Claude Platform on AWS](/docs/id/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |

52| Amazon Bedrock, Google Cloud's Agent Platform | Opus 5 | Sonnet 4.5 |52| Amazon Bedrock, Google Cloud's Agent Platform | Opus 5.5 | Sonnet 4.5 |

53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |

54 54 

55<span id="fable-alias-resolution" />55<span id="fable-alias-resolution" />


60 60 

61Di mana alias diselesaikan ke model yang lebih lama, model yang lebih baru tersedia dengan memilih nama model lengkap secara eksplisit atau menetapkan `ANTHROPIC_DEFAULT_OPUS_MODEL` atau `ANTHROPIC_DEFAULT_SONNET_MODEL`.61Di mana alias diselesaikan ke model yang lebih lama, model yang lebih baru tersedia dengan memilih nama model lengkap secara eksplisit atau menetapkan `ANTHROPIC_DEFAULT_OPUS_MODEL` atau `ANTHROPIC_DEFAULT_SONNET_MODEL`.

62 62 

63Sebelum v2.1.219, `opus` diselesaikan ke Opus 4.8 di Anthropic API dari v2.1.154, dan di Claude Platform on AWS, Amazon Bedrock, dan Google Cloud's Agent Platform dari v2.1.207. Sebelum v2.1.207, `opus` diselesaikan ke Opus 4.7 di Claude Platform on AWS dan ke Opus 4.6 di Amazon Bedrock dan Google Cloud's Agent Platform.63Sebelum v2.1.280, `opus` diselesaikan ke Opus 5 di Anthropic API, Claude Platform on AWS, Amazon Bedrock, dan Google Cloud's Agent Platform dari v2.1.219. Sebelum v2.1.219, `opus` diselesaikan ke Opus 4.8 di Anthropic API dari v2.1.154, dan di Claude Platform on AWS, Amazon Bedrock, dan Google Cloud's Agent Platform dari v2.1.207. Sebelum v2.1.207, `opus` diselesaikan ke Opus 4.7 di Claude Platform on AWS dan ke Opus 4.6 di Amazon Bedrock dan Google Cloud's Agent Platform.

64 64 

65Alias menunjuk ke versi yang direkomendasikan untuk penyedia Anda dan diperbarui seiring waktu. Untuk menyematkan ke versi tertentu, gunakan nama model lengkap, misalnya `claude-opus-5`, atau atur variabel lingkungan yang sesuai seperti `ANTHROPIC_DEFAULT_OPUS_MODEL`.65Alias menunjuk ke versi yang direkomendasikan untuk penyedia Anda dan diperbarui seiring waktu. Untuk menyematkan ke versi tertentu, gunakan nama model lengkap, misalnya `claude-opus-5-5`, atau atur variabel lingkungan yang sesuai seperti `ANTHROPIC_DEFAULT_OPUS_MODEL`.

66 66 

67<Note>67<Note>

68 Opus 5 memerlukan Claude Code v2.1.219 atau lebih baru. Sonnet 5 memerlukan v2.1.197 atau lebih baru. Opus 4.8 memerlukan v2.1.154 atau lebih baru. Jalankan `claude update` untuk upgrade.68 Opus 5.5 memerlukan Claude Code v2.1.280 atau lebih baru. Opus 5 memerlukan v2.1.219 atau lebih baru. Sonnet 5 memerlukan v2.1.197 atau lebih baru. Jalankan `claude update` untuk upgrade.

69</Note>69</Note>

70 70 

71<h3 id="work-with-fable">71<h3 id="work-with-fable">


94 Fable 5.1 memerlukan Claude Code v2.1.257 atau lebih baru. Jika permintaan untuk itu dari versi yang lebih lama gagal, lihat [Claude Code tidak mendukung model ini](/docs/id/errors#claude-code-does-not-support-this-model). Jalankan `claude update` untuk upgrade. Untuk ketersediaan di bawah zero data retention, lihat [Ketersediaan model di bawah ZDR](/docs/id/zero-data-retention#model-availability-under-zdr).94 Fable 5.1 memerlukan Claude Code v2.1.257 atau lebih baru. Jika permintaan untuk itu dari versi yang lebih lama gagal, lihat [Claude Code tidak mendukung model ini](/docs/id/errors#claude-code-does-not-support-this-model). Jalankan `claude update` untuk upgrade. Untuk ketersediaan di bawah zero data retention, lihat [Ketersediaan model di bawah ZDR](/docs/id/zero-data-retention#model-availability-under-zdr).

95</Note>95</Note>

96 96 

97Di Anthropic API, pemilih `/model` mencantumkan model Fable hanya setelah server melaporkan tersedia untuk organisasi Anda. Ketika Anda mengetik `/model fable` atau ID model Fable, Claude Code memeriksa ketersediaan dengan server secara langsung, jadi pemilihan yang diketik dapat berhasil bahkan ketika pemilih tidak mencantumkan entri.97Di Anthropic API, model Fable muncul di pemilih `/model` kecuali [`availableModels`](#restrict-model-selection) atau [pembatasan model organisasi](#organization-model-restrictions) mengecualikannya. Ketika organisasi Anda tidak dapat menggunakan Fable sama sekali, misalnya di bawah [zero data retention](/docs/id/zero-data-retention#model-availability-under-zdr), baris tetap di pemilih berwarna abu-abu, dengan catatan tentang alasannya.

98 98 

99<h4 id="fable-and-usage-credits">99<h4 id="fable-and-usage-credits">

100 Fable dan kredit penggunaan100 Fable dan kredit penggunaan


138 138 

139Mengetik `/model <name>` langsung berperilaku seperti `Enter`. Untuk beralih hanya untuk sesi ini, buka pemilih dengan `/model` dan tekan `s` di baris model.139Mengetik `/model <name>` langsung berperilaku seperti `Enter`. Untuk beralih hanya untuk sesi ini, buka pemilih dengan `/model` dan tekan `s` di baris model.

140 140 

141Jika Anda beralih model dengan `/model`, switch juga mencapai [subagent yang mewarisi model percakapan utama](/docs/id/sub-agents#choose-a-model), karena Claude Code menyelesaikan model mereka dari yang digunakan sesi Anda ketika Claude memulainya. Beralih ke Opus sebelum Claude mendelegasikan penelitian atau test run ke salah satunya, dan pekerjaan itu berjalan di Opus juga. Untuk menjaga subagent kustom di model yang lebih kecil, atur `model` dalam definisinya.

142 

141Jika Anda menetapkan model dengan `/model` dalam [mode non-interaktif](/docs/id/headless), dengan flag `-p`, pilihan Anda berlaku hanya untuk sesi saat ini dan tidak disimpan sebagai default Anda; `/model` dalam mode itu memerlukan Claude Code v2.1.205 atau lebih baru. Pengaturan proyek dan terkelola masih memiliki prioritas dan diterapkan kembali pada peluncuran berikutnya. [Model default organisasi](#organization-default-model) yang admin Anda telah dikonfigurasi untuk mengganti pilihan pengguna juga diterapkan kembali pada peluncuran berikutnya.143Jika Anda menetapkan model dengan `/model` dalam [mode non-interaktif](/docs/id/headless), dengan flag `-p`, pilihan Anda berlaku hanya untuk sesi saat ini dan tidak disimpan sebagai default Anda; `/model` dalam mode itu memerlukan Claude Code v2.1.205 atau lebih baru. Pengaturan proyek dan terkelola masih memiliki prioritas dan diterapkan kembali pada peluncuran berikutnya. [Model default organisasi](#organization-default-model) yang admin Anda telah dikonfigurasi untuk mengganti pilihan pengguna juga diterapkan kembali pada peluncuran berikutnya.

142 144 

143Dalam v2.1.144 hingga v2.1.152, `/model` berlaku hanya untuk sesi saat ini dan `d` di pemilih menyimpan default.145Dalam v2.1.144 hingga v2.1.152, `/model` berlaku hanya untuk sesi saat ini dan `d` di pemilih menyimpan default.


443 445 

444Perilaku `default` tergantung pada jenis akun Anda:446Perilaku `default` tergantung pada jenis akun Anda:

445 447 

446* **Max, Team Premium, Enterprise, dan Anthropic API**: default ke Opus 5448* **Pro, Max, Team, Enterprise, dan Anthropic API**: default ke Opus 5.5

447* **Claude Platform on AWS, Amazon Bedrock, dan Google Cloud's Agent Platform**: default ke Opus 5449* **Claude Platform on AWS, Amazon Bedrock, dan Google Cloud's Agent Platform**: default ke Opus 5.5

448* **Pro dan Team Standard**: default ke Sonnet 5

449* **Microsoft Foundry**: default ke Sonnet 4.5450* **Microsoft Foundry**: default ke Sonnet 4.5

450 451 

451Sebelum v2.1.219, `default` diselesaikan ke Opus 4.8 pada Anthropic API, Max, Team Premium, dan Enterprise pay-as-you-go dari v2.1.154, dan pada Claude Platform on AWS, Amazon Bedrock, dan Google Cloud's Agent Platform dari v2.1.207. Sebelum v2.1.207, `default` diselesaikan ke Opus 4.7 pada Claude Platform on AWS dan ke Sonnet 4.5 pada Amazon Bedrock dan Google Cloud's Agent Platform.452Sebelum v2.1.280, `default` diselesaikan ke Sonnet 5 pada Pro dan Team Standard, dan ke Opus 5 pada Max, Team Premium, Enterprise, Anthropic API, Claude Platform on AWS, Amazon Bedrock, dan Google Cloud's Agent Platform dari v2.1.219. Sebelum v2.1.219, `default` diselesaikan ke Opus 4.8 pada Anthropic API, Max, Team Premium, dan Enterprise pay-as-you-go dari v2.1.154, dan pada Claude Platform on AWS, Amazon Bedrock, dan Google Cloud's Agent Platform dari v2.1.207. Sebelum v2.1.207, `default` diselesaikan ke Opus 4.7 pada Claude Platform on AWS dan ke Sonnet 4.5 pada Amazon Bedrock dan Google Cloud's Agent Platform.

452 453 

453Ketika admin telah menetapkan [model default organisasi](#organization-default-model), `default` diselesaikan ke model tersebut alih-alih default jenis akun di atas. Memerlukan Claude Code v2.1.196 atau lebih baru. `default` juga dapat diselesaikan ke model yang Anda atur dengan [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), di bawah kondisi yang tercantum di bagiannya.454Ketika admin telah menetapkan [model default organisasi](#organization-default-model), `default` diselesaikan ke model tersebut alih-alih default jenis akun di atas. Memerlukan Claude Code v2.1.196 atau lebih baru. `default` juga dapat diselesaikan ke model yang Anda atur dengan [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), di bawah kondisi yang tercantum di bagiannya.

454 455 


512 Fallback model otomatis513 Fallback model otomatis

513</h3>514</h3>

514 515 

515Bagian ini mencakup fallback berbasis konten dari model Fable dan Opus 5. Untuk fallback berbasis ketersediaan ketika model kelebihan beban atau tidak tersedia, lihat [Rantai model fallback](#fallback-model-chains).516Bagian ini mencakup fallback berbasis konten dari model Fable, Opus 5.5, dan Opus 5. Untuk fallback berbasis ketersediaan ketika model kelebihan beban atau tidak tersedia, lihat [Rantai model fallback](#fallback-model-chains).

516 517 

517Model Fable dan Opus 5 berjalan dengan pengklasifikasi keamanan, yang paling sering menandai konten keamanan siber dan biologi. Ketika pengklasifikasi menandai permintaan dan kategori yang ditandai memiliki model fallback, Claude Code menjalankan kembali permintaan pada model tersebut dan menampilkan pemberitahuan dalam transkrip. Untuk dua kategori tersebut, model fallback tergantung pada model mana yang menolak:518Model Fable, Opus 5.5, dan Opus 5 berjalan dengan pengklasifikasi keamanan, yang paling sering menandai konten keamanan siber dan biologi. Ketika pengklasifikasi menandai permintaan dan kategori yang ditandai memiliki model fallback, Claude Code menjalankan kembali permintaan pada model tersebut dan menampilkan pemberitahuan dalam transkrip. Untuk dua kategori tersebut, model fallback tergantung pada model mana yang menolak:

518 519 

519* **Fable 5.1 dan Fable 5**: permintaan yang ditandai biologi dijalankan kembali pada Opus 5, dan permintaan yang ditandai keamanan siber dijalankan kembali pada Opus 4.8.520* **Fable 5.1, Fable 5, dan Opus 5.5**: permintaan yang ditandai biologi dijalankan kembali pada Opus 5, dan permintaan yang ditandai keamanan siber dijalankan kembali pada Opus 4.8.

520* **Opus 5**: permintaan yang ditandai keamanan siber dijalankan kembali pada Opus 4.8. Permintaan yang ditandai biologi berakhir dengan penolakan, karena Opus 5 menjalankan pengklasifikasi biologi sendiri tanpa model fallback.521* **Opus 5**: permintaan yang ditandai keamanan siber dijalankan kembali pada Opus 4.8. Permintaan yang ditandai biologi berakhir dengan penolakan, karena Opus 5 menjalankan pengklasifikasi biologi sendiri tanpa model fallback.

521 522 

522Pada Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, Claude Code menyelesaikan target ini melalui penerapan Anda, dan jika Anda menetapkan `ANTHROPIC_DEFAULT_OPUS_MODEL`, kategori yang memiliki fallback dijalankan kembali pada model yang disematkan; lihat [Aktifkan fallback pada Bedrock, Agent Platform, dan Foundry](#enable-fallback-on-bedrock-agent-platform-and-foundry).523Pada Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, Claude Code menyelesaikan target ini melalui penerapan Anda, dan jika Anda menetapkan `ANTHROPIC_DEFAULT_OPUS_MODEL`, kategori yang memiliki fallback dijalankan kembali pada model yang disematkan; lihat [Aktifkan fallback pada Bedrock, Agent Platform, dan Foundry](#enable-fallback-on-bedrock-agent-platform-and-foundry).


545 546 

546* Ketika kategori yang ditandai tidak memiliki model fallback, seperti flag biologi pada Opus 5, Claude Code tidak menampilkan prompt dan permintaan berakhir dengan penolakan.547* Ketika kategori yang ditandai tidak memiliki model fallback, seperti flag biologi pada Opus 5, Claude Code tidak menampilkan prompt dan permintaan berakhir dengan penolakan.

547* Jika kedua model menandai permintaan yang sama, Anda dapat mengedit prompt dan mencoba lagi, atau memulai sesi baru.548* Jika kedua model menandai permintaan yang sama, Anda dapat mengedit prompt dan mencoba lagi, atau memulai sesi baru.

548* Pada sesi mobile [Claude Code on the web](/docs/id/claude-code-on-the-web), pengeditan dan pengulangan tidak didukung. Beralih model, atau lanjutkan sesi dari browser desktop atau aplikasi desktop.549* Pada sesi [cloud sessions](/docs/id/claude-code-on-the-web) di aplikasi mobile, pengeditan dan pengulangan tidak didukung. Beralih model, atau lanjutkan sesi dari browser desktop atau aplikasi desktop.

549* Dalam [mode non-interaktif](/docs/id/cli-reference#cli-flags) dan integrasi SDK yang tidak dapat menampilkan prompt, permintaan yang ditandai mengakhiri giliran dengan penolakan.550* Dalam [mode non-interaktif](/docs/id/cli-reference#cli-flags) dan integrasi SDK yang tidak dapat menampilkan prompt, permintaan yang ditandai mengakhiri giliran dengan penolakan.

550* Ketika target fallback diblokir oleh [`availableModels`](#restrict-model-selection), Claude Code tidak menampilkan prompt. Permintaan yang ditandai berakhir dengan penolakan, sama seperti fallback otomatis ketika target diblokir.551* Ketika target fallback diblokir oleh [`availableModels`](#restrict-model-selection), Claude Code tidak menampilkan prompt. Permintaan yang ditandai berakhir dengan penolakan, sama seperti fallback otomatis ketika target diblokir.

551 552 


555 556 

556Pada [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), ID model khusus penyedia, jadi fallback otomatis hanya beroperasi ketika Claude Code dapat mengidentifikasi kedua model yang terlibat:557Pada [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), ID model khusus penyedia, jadi fallback otomatis hanya beroperasi ketika Claude Code dapat mengidentifikasi kedua model yang terlibat:

557 558 

558* Claude Code harus mengenali model saat ini sebagai sumber fallback. Fable 5.1 dan Fable 5 dikenali ketika ID model berisi `claude-fable-5`, cocok dengan nilai `ANTHROPIC_DEFAULT_FABLE_MODEL`, atau dipetakan dengan [`modelOverrides`](#override-model-ids-per-version). Opus 5 dikenali oleh ID model penyedianya atau pemetaan [`modelOverrides`](#override-model-ids-per-version).559* Claude Code harus mengenali model saat ini sebagai sumber fallback. Fable 5.1 dan Fable 5 dikenali ketika ID model berisi `claude-fable-5`, cocok dengan nilai `ANTHROPIC_DEFAULT_FABLE_MODEL`, atau dipetakan dengan [`modelOverrides`](#override-model-ids-per-version). Opus 5.5 dan Opus 5 dikenali oleh ID model penyedianya atau pemetaan [`modelOverrides`](#override-model-ids-per-version).

559* Model fallback harus diselesaikan dalam penerapan Anda. Jika Anda menetapkan `ANTHROPIC_DEFAULT_OPUS_MODEL`, permintaan yang ditandai dijalankan kembali pada model tersebut untuk setiap kategori yang memiliki fallback; flag biologi pada Opus 5 masih berakhir dengan penolakan. Jika Anda tidak menetapkannya, permintaan yang ditandai keamanan siber dijalankan kembali pada entri Opus 4.8 dalam daftar model penyedia, dan permintaan yang ditandai biologi dari model Fable pada entri Opus 5.560* Model fallback harus diselesaikan dalam penerapan Anda. Jika Anda menetapkan `ANTHROPIC_DEFAULT_OPUS_MODEL`, permintaan yang ditandai dijalankan kembali pada model tersebut untuk setiap kategori yang memiliki fallback; flag biologi pada Opus 5 masih berakhir dengan penolakan. Jika Anda tidak menetapkannya, permintaan yang ditandai keamanan siber dijalankan kembali pada entri Opus 4.8 dalam daftar model penyedia, dan permintaan yang ditandai biologi dari model Fable atau Opus 5.5 pada entri Opus 5.

560 561 

561Jika salah satu model tidak dapat diidentifikasi, Claude Code tidak beralih secara otomatis. Permintaan yang ditandai berakhir dengan pesan penolakan, dan Anda dapat beralih model dengan [`/model`](#setting-your-model) dan mencoba lagi. Menetapkan `ANTHROPIC_DEFAULT_FABLE_MODEL` ke ID model Fable Anda memungkinkan pengenalan Fable. Menetapkan `ANTHROPIC_DEFAULT_OPUS_MODEL` ke ID model Opus memberikan kategori yang ditandai target fallback, kecuali pin menamai model di luar keluarga Opus atau model yang menolak; kemudian Claude Code tidak beralih dan penolakan berdiri.562Jika salah satu model tidak dapat diidentifikasi, Claude Code tidak beralih secara otomatis. Permintaan yang ditandai berakhir dengan pesan penolakan, dan Anda dapat beralih model dengan [`/model`](#setting-your-model) dan mencoba lagi. Menetapkan `ANTHROPIC_DEFAULT_FABLE_MODEL` ke ID model Fable Anda memungkinkan pengenalan Fable. Menetapkan `ANTHROPIC_DEFAULT_OPUS_MODEL` ke ID model Opus memberikan kategori yang ditandai target fallback, kecuali pin menamai model di luar keluarga Opus atau model yang menolak; kemudian Claude Code tidak beralih dan penolakan berdiri.

562 563 


564 Penelitian keamanan dan beban kerja biologi565 Penelitian keamanan dan beban kerja biologi

565</h4>566</h4>

566 567 

567Beban kerja dalam keamanan ofensif atau biologi, termasuk penetration testing, latihan Capture the Flag (CTF), dan codebase yang berdekatan dengan biologi, memicu fallback sering, sering pada permintaan pertama. Untuk pekerjaan biologi substantif pada Fable 5.1 atau Fable 5, Claude Code memindahkan sesi ke Opus 5 pada permintaan pertama yang ditandai, dan permintaan yang ditandai biologi kemudian berakhir dalam penolakan di sana, karena Opus 5 tidak memiliki fallback biologi. Pada Opus 5, Anda mendapatkan penolakan tersebut dari permintaan pertama yang ditandai.568Beban kerja dalam keamanan ofensif atau biologi, termasuk penetration testing, latihan Capture the Flag (CTF), dan codebase yang berdekatan dengan biologi, memicu fallback sering, sering pada permintaan pertama. Untuk pekerjaan biologi substantif pada Fable 5.1, Fable 5, atau Opus 5.5, Claude Code memindahkan sesi ke Opus 5 pada permintaan pertama yang ditandai, dan permintaan yang ditandai biologi kemudian berakhir dalam penolakan di sana, karena Opus 5 tidak memiliki fallback biologi. Pada Opus 5, Anda mendapatkan penolakan tersebut dari permintaan pertama yang ditandai.

568 569 

569Ini adalah routing yang diharapkan untuk domain ini, bukan flag akun. Jika organisasi Anda memerlukan kemampuan kelas Fable untuk pekerjaan ini, tanyakan kepada tim akun Anthropic Anda tentang program akses terpercaya.570Ini adalah routing yang diharapkan untuk domain ini, bukan flag akun. Jika organisasi Anda memerlukan kemampuan kelas Fable untuk pekerjaan ini, tanyakan kepada tim akun Anthropic Anda tentang program akses terpercaya.

570 571 


577Tingkat usaha yang tersedia tergantung pada model. Model yang tidak tercantum di sini tidak mendukung usaha:578Tingkat usaha yang tersedia tergantung pada model. Model yang tidak tercantum di sini tidak mendukung usaha:

578 579 

579| Model | Tingkat |580| Model | Tingkat |

580| :--------------------------------------- | :-------------------------------------- |581| :------------------------------------------------- | :-------------------------------------- |

581| Fable 5.1 dan Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |582| Fable 5.1 dan Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |

582| Opus 5, Sonnet 5, Opus 4.8, dan Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |583| Opus 5.5, Opus 5, Sonnet 5, Opus 4.8, dan Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

583| Opus 4.6 dan Sonnet 4.6 | `low`, `medium`, `high`, `max` |584| Opus 4.6 dan Sonnet 4.6 | `low`, `medium`, `high`, `max` |

584 585 

585Jika Anda menetapkan tingkat yang model aktif tidak mendukung, Claude Code kembali ke tingkat tertinggi yang didukung pada atau di bawah yang Anda tetapkan. Misalnya, `xhigh` berjalan sebagai `high` pada Opus 4.6. Organisasi Anda juga dapat membatasi tingkat mana yang tersedia untuk model; lihat [Batas usaha organisasi](#organization-effort-limits).586Jika Anda menetapkan tingkat yang model aktif tidak mendukung, Claude Code kembali ke tingkat tertinggi yang didukung pada atau di bawah yang Anda tetapkan. Misalnya, `xhigh` berjalan sebagai `high` pada Opus 4.6. Organisasi Anda juga dapat membatasi tingkat mana yang tersedia untuk model; lihat [Batas usaha organisasi](#organization-effort-limits).


587Dengan pengaturan [`ultracode`](/docs/id/settings-reference#ultracode) mati, Claude Code menyelesaikan tingkat usaha sesi dalam urutan ini, mengambil yang pertama yang berlaku:588Dengan pengaturan [`ultracode`](/docs/id/settings-reference#ultracode) mati, Claude Code menyelesaikan tingkat usaha sesi dalam urutan ini, mengambil yang pertama yang berlaku:

588 589 

5891. Pilihan eksplisit: variabel lingkungan [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/id/env-vars#variables), peluncuran dengan `--effort`, atau `/effort` dalam sesi ([`/effort` non-interaktif memiliki efek lebih sempit](#non-interactive-effort))5901. Pilihan eksplisit: variabel lingkungan [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/id/env-vars#variables), peluncuran dengan `--effort`, atau `/effort` dalam sesi ([`/effort` non-interaktif memiliki efek lebih sempit](#non-interactive-effort))

5902. Tingkat usaha default model, pada Fable 5, Opus 4.8, atau Opus 4.7: dari pertama kali Anda menjalankan salah satu model ini, Claude Code menyimpan usaha default model tersebut di seluruh sesi, bahkan ketika pengaturan Anda menyelesaikan tingkat berbeda. Opus 5 dan Fable 5.1 tidak memiliki hold seperti itu. Apakah tingkat yang Anda tetapkan mengakhiri hold tergantung pada cara Anda menetapkannya, misalnya:5912. Pengaturan Anda: tingkat yang Anda simpan untuk model atau kunci [`effortLevel`](/docs/id/settings-reference#effortlevel), dengan prioritas di antara mereka dan di seluruh file pengaturan yang dinyatakan pada [`modelSettings`](/docs/id/settings-reference#modelsettings)

591 * **Mengakhiri hold**: mengkonfirmasi tingkat secara interaktif, dengan `Enter` dalam slider `/effort` atau pengambil `/model` atau dengan tingkat yang diketik setelah `/effort`, atau memilih tingkat dari kontrol usaha [Remote Control](/docs/id/remote-control#what-connected-devices-see) perangkat yang terhubung5923. Tingkat usaha default model: `high` pada setiap model yang mendukung usaha, kecuali Opus 5.5 default ke `medium`, Opus 4.7 default ke `xhigh`, dan, ketika organisasi Anda menetapkan tingkat usaha default untuk [model default organisasinya](#organization-default-model), tingkat itu adalah default ketika Anda menjalankan model tersebut

592 * **Meninggalkan hold untuk sesi kemudian**: `--effort` saat peluncuran, atau `s` dalam slider `/effort` atau pengambil `/model`593 

5933. Pengaturan Anda: tingkat yang Anda simpan untuk model atau kunci [`effortLevel`](/docs/id/settings-reference#effortlevel), dengan prioritas di antara mereka dan di seluruh file pengaturan yang dinyatakan pada [`modelSettings`](/docs/id/settings-reference#modelsettings)594Opus 5.5 dimulai pada `medium` kecuali salah satu sumber di atas menetapkan tingkat untuk itu, dan `effortLevel` tingkat atas dalam file pengaturan pengguna Anda tidak dihitung untuk Opus 5.5. Kunci itu adalah bentuk yang lebih lama `/effort` ditulis sebelum Claude Code menyimpan tingkat per model: itu terus berlaku di mana itu berlaku sebelumnya, pada Opus 5, Fable 5.1, dan model sebelumnya, sementara Opus 5.5 dan model yang dirilis setelahnya dimulai pada default mereka sendiri sampai Anda memilih tingkat untuk mereka dengan `/effort` atau pengambil `/model`. `effortLevel` tingkat atas dalam pengaturan proyek, lokal, atau terkelola, atau yang dilewatkan dengan `--settings`, berlaku untuk setiap model.

5944. Tingkat usaha default model: `high` pada setiap model yang mendukung usaha, kecuali Opus 4.7 default ke `xhigh` dan, ketika organisasi Anda menetapkan tingkat usaha default untuk [model default organisasinya](#organization-default-model), tingkat itu adalah default ketika Anda menjalankan model tersebut

595 595 

596Ketika Anda menetapkan `low`, `medium`, `high`, atau `xhigh` dalam sesi interaktif pada mesin Anda, Anda memilih berapa lama itu berlangsung dengan cara Anda mengkonfirmasinya:596Ketika Anda menetapkan `low`, `medium`, `high`, atau `xhigh` dalam sesi interaktif pada mesin Anda, Anda memilih berapa lama itu berlangsung dengan cara Anda mengkonfirmasinya:

597 597 


608 608 

609<span id="non-interactive-effort" />609<span id="non-interactive-effort" />

610 610 

611Ketika Anda menetapkan tingkat dengan `/effort` dalam [run `-p`](/docs/id/headless), Claude Code menerapkannya ke sesi itu saja dan tidak menyimpannya sebagai default Anda. Pada Fable 5, Opus 4.8, dan Opus 4.7, tingkat itu juga tidak mengakhiri hold pada usaha default model atau menggantikannya untuk sesi. Sementara hold itu berlaku, `/effort` non-interaktif melaporkan `Not applied`, jadi teruskan `--effort` saat peluncuran sebagai gantinya.611Ketika Anda menetapkan tingkat dengan `/effort` dalam [run `-p`](/docs/id/headless), Claude Code menerapkannya ke sesi itu saja dan tidak menyimpannya sebagai default Anda.

612 612 

613Menu `/effort` juga menawarkan `ultracode`. Ultracode adalah pengaturan Claude Code daripada tingkat usaha model: ia mengirim `xhigh` ke model dan selain itu memiliki Claude mengorkestra [alur kerja dinamis](/docs/id/workflows) untuk tugas-tugas substantif. Untuk di mana dapat diatur secara persisten, lihat pengaturan [`ultracode`](/docs/id/settings-reference#ultracode).613Menu `/effort` juga menawarkan `ultracode`. Ultracode adalah pengaturan Claude Code daripada tingkat usaha model: ia mengirim `xhigh` ke model dan selain itu memiliki Claude mengorkestra [alur kerja dinamis](/docs/id/workflows) untuk tugas-tugas substantif. Untuk di mana dapat diatur secara persisten, lihat pengaturan [`ultracode`](/docs/id/settings-reference#ultracode).

614 614 


642| Tingkat | Kapan menggunakannya |642| Tingkat | Kapan menggunakannya |

643| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |643| :---------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

644| `low` | Cadangkan untuk tugas pendek, terbatas, sensitif latensi yang tidak sensitif intelijen |644| `low` | Cadangkan untuk tugas pendek, terbatas, sensitif latensi yang tidak sensitif intelijen |

645| `medium` | Mengurangi penggunaan token untuk pekerjaan sensitif biaya yang dapat menukar beberapa intelijen |645| `medium` | Mengurangi penggunaan token untuk pekerjaan sensitif biaya yang dapat menukar beberapa intelijen. Default pada Opus 5.5 |

646| `high` | Menyeimbangkan penggunaan token dan intelijen. Default pada setiap model kecuali Opus 4.7 |646| `high` | Menyeimbangkan penggunaan token dan intelijen. Default pada setiap model kecuali Opus 5.5 dan Opus 4.7 |

647| `xhigh` | Penalaran lebih dalam pada pengeluaran token lebih tinggi. Default pada Opus 4.7 |647| `xhigh` | Penalaran lebih dalam pada pengeluaran token lebih tinggi. Default pada Opus 4.7 |

648| `max` | Dapat meningkatkan kinerja pada tugas menuntut tetapi mungkin menunjukkan hasil yang berkurang dan rentan terhadap overthinking. Uji sebelum mengadopsi secara luas |648| `max` | Dapat meningkatkan kinerja pada tugas menuntut tetapi mungkin menunjukkan hasil yang berkurang dan rentan terhadap overthinking. Uji sebelum mengadopsi secara luas |

649| `ultracode` | Pengaturan Claude Code yang merencanakan [alur kerja dinamis](/docs/id/workflows) untuk setiap tugas substantif dengan penalaran `xhigh` per pesan |649| `ultracode` | Pengaturan Claude Code yang merencanakan [alur kerja dinamis](/docs/id/workflows) untuk setiap tugas substantif dengan penalaran `xhigh` per pesan |


667* **Flag `--effort`**: teruskan nama tingkat untuk menetapkannya untuk satu sesi saat meluncurkan Claude Code667* **Flag `--effort`**: teruskan nama tingkat untuk menetapkannya untuk satu sesi saat meluncurkan Claude Code

668* **Variabel lingkungan**: atur `CLAUDE_CODE_EFFORT_LEVEL` ke nama tingkat atau `auto`668* **Variabel lingkungan**: atur `CLAUDE_CODE_EFFORT_LEVEL` ke nama tingkat atau `auto`

669* **Pengaturan**: atur tingkat per model dalam [`modelSettings`](/docs/id/settings-reference#modelsettings), atau atur [`effortLevel`](/docs/id/settings-reference#effortlevel) ke `low`, `medium`, `high`, atau `xhigh` sebagai default untuk model tanpa satu. `max` tidak diterima di kunci mana pun, dan `ultracode` memiliki kunci [`ultracode`](/docs/id/settings-reference#ultracode) sendiri669* **Pengaturan**: atur tingkat per model dalam [`modelSettings`](/docs/id/settings-reference#modelsettings), atau atur [`effortLevel`](/docs/id/settings-reference#effortlevel) ke `low`, `medium`, `high`, atau `xhigh` sebagai default untuk model tanpa satu. `max` tidak diterima di kunci mana pun, dan `ultracode` memiliki kunci [`ultracode`](/docs/id/settings-reference#ultracode) sendiri

670* **Dari perangkat yang terhubung**: dalam sesi [Remote Control](/docs/id/remote-control#what-connected-devices-see), pilih tingkat dari kontrol usaha pada ponsel Anda atau di browser Anda. Tingkat berlaku untuk sesi saat ini saja, meskipun itu juga mengakhiri [hold pada usaha default model](#adjust-effort-level). Memerlukan Claude Code v2.1.234 atau lebih baru670* **Dari perangkat yang terhubung**: dalam sesi [Remote Control](/docs/id/remote-control#what-connected-devices-see), pilih tingkat dari kontrol usaha pada ponsel Anda atau di browser Anda. Tingkat berlaku untuk sesi saat ini saja. Memerlukan Claude Code v2.1.234 atau lebih baru

671* **Frontmatter skill dan subagent**: atur `effort` dalam file markdown [skill](/docs/id/skills#frontmatter-reference) atau [subagent](/docs/id/sub-agents#supported-frontmatter-fields) untuk mengganti tingkat usaha ketika skill atau subagent itu berjalan671* **Frontmatter skill dan subagent**: atur `effort` dalam file markdown [skill](/docs/id/skills#frontmatter-reference) atau [subagent](/docs/id/sub-agents#supported-frontmatter-fields) untuk mengganti tingkat usaha ketika skill atau subagent itu berjalan

672 672 

673Usaha frontmatter berlaku ketika skill atau subagent itu aktif, mengganti tingkat sesi tetapi bukan variabel lingkungan. [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) atau [batas usaha organisasi](#organization-effort-limits) masih membatasi tingkat yang skill atau subagent berjalan.673Usaha frontmatter berlaku ketika skill atau subagent itu aktif, mengganti tingkat sesi tetapi bukan variabel lingkungan. [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) atau [batas usaha organisasi](#organization-effort-limits) masih membatasi tingkat yang skill atau subagent berjalan.

674 674 

675Pada Fable 5, Opus 4.8, dan Opus 4.7, usaha frontmatter juga berlaku sementara [hold pada usaha default model](#adjust-effort-level) berlaku. Sebelum v2.1.267, hold mengambil alih dan Claude Code mengabaikan tingkat frontmatter sementara hold aktif.

676 

677Jika Anda menetapkan `effortLevel` dalam [pengaturan terkelola](/docs/id/managed-settings), Claude Code menerapkannya pada langkah pengaturan dari [urutan resolusi usaha](#adjust-effort-level), dan pengguna masih dapat mengubah tingkat dengan `/effort` atau `--effort`. Untuk menjaga pengguna pada atau di bawah tingkat, atur [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel).675Jika Anda menetapkan `effortLevel` dalam [pengaturan terkelola](/docs/id/managed-settings), Claude Code menerapkannya pada langkah pengaturan dari [urutan resolusi usaha](#adjust-effort-level), dan pengguna masih dapat mengubah tingkat dengan `/effort` atau `--effort`. Untuk menjaga pengguna pada atau di bawah tingkat, atur [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel).

678 676 

679Slider usaha muncul dalam `/model` ketika model yang didukung dipilih. Tingkat usaha saat ini juga ditampilkan dalam header sesi di sebelah nama model, misalnya "with low effort", jadi Anda dapat mengkonfirmasi pengaturan mana yang aktif tanpa membuka `/model`. Footer juga secara singkat menampilkan tingkat usaha saat startup dan saat berubah.677Slider usaha muncul dalam `/model` ketika model yang didukung dipilih. Tingkat usaha saat ini juga ditampilkan dalam header sesi di sebelah nama model, misalnya "with low effort", jadi Anda dapat mengkonfirmasi pengaturan mana yang aktif tanpa membuka `/model`. Footer juga secara singkat menampilkan tingkat usaha saat startup dan saat berubah.


695Pemikiran yang diperpanjang adalah penalaran yang Claude keluarkan sebelum merespons. Pada model yang mendukung [penalaran adaptif](#adjust-effort-level), tingkat usaha adalah kontrol utama untuk berapa banyak pemikiran yang terjadi; pengaturan di bawah mengaktifkan atau menonaktifkan pemikiran dan mengontrol cara ditampilkan. Dengan pemikiran dimatikan pada Anthropic API, Claude Code mengirim usaha `high` alih-alih tingkat lebih tinggi ke model yang diketahui [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5.693Pemikiran yang diperpanjang adalah penalaran yang Claude keluarkan sebelum merespons. Pada model yang mendukung [penalaran adaptif](#adjust-effort-level), tingkat usaha adalah kontrol utama untuk berapa banyak pemikiran yang terjadi; pengaturan di bawah mengaktifkan atau menonaktifkan pemikiran dan mengontrol cara ditampilkan. Dengan pemikiran dimatikan pada Anthropic API, Claude Code mengirim usaha `high` alih-alih tingkat lebih tinggi ke model yang diketahui [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5.

696 694 

697| Kontrol | Cara menetapkannya |695| Kontrol | Cara menetapkannya |

698| :-------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |696| :-------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

699| Alihkan untuk sesi saat ini | Tekan `Option+T` pada macOS atau `Alt+T` pada Windows dan Linux |697| Alihkan untuk sesi saat ini | Tekan `Option+T` pada macOS atau `Alt+T` pada Windows dan Linux |

700| Atur default global | Jalankan `/config` dan alihkan mode pemikiran. Disimpan sebagai `alwaysThinkingEnabled` dalam `~/.claude/settings.json` |698| Atur default global | Jalankan `/config` dan alihkan mode pemikiran. Disimpan sebagai `alwaysThinkingEnabled` dalam `~/.claude/settings.json` |

701| Nonaktifkan melalui variabel lingkungan | Atur [`MAX_THINKING_TOKENS=0`](/docs/id/env-vars), yang menonaktifkan pemikiran pada Anthropic API kecuali pada model Fable. Pada [penyedia pihak ketiga](/docs/id/third-party-integrations), Claude Code menghilangkan parameter `thinking` sebagai gantinya, dan model penalaran adaptif mungkin masih berpikir. Nilai lain hanya berlaku dengan [anggaran pemikiran tetap](#adaptive-reasoning-and-fixed-thinking-budgets) |699| Nonaktifkan melalui variabel lingkungan | Atur [`MAX_THINKING_TOKENS=0`](/docs/id/env-vars), yang menonaktifkan pemikiran pada Anthropic API kecuali pada Opus 5.5 dan model Fable. Pada [penyedia pihak ketiga](/docs/id/third-party-integrations), Claude Code menghilangkan parameter `thinking` sebagai gantinya, dan model penalaran adaptif mungkin masih berpikir. Nilai lain hanya berlaku dengan [anggaran pemikiran tetap](#adaptive-reasoning-and-fixed-thinking-budgets) |

702 700 

703Pemikiran tidak dapat dimatikan pada model Fable. Alihan sesi, `alwaysThinkingEnabled`, dan `MAX_THINKING_TOKENS=0` tidak berpengaruh di sana, dan model memutuskan per langkah berapa banyak untuk berpikir berdasarkan tingkat usaha.701Pemikiran tidak dapat dimatikan pada Opus 5.5 atau model Fable. Alihan sesi, `alwaysThinkingEnabled`, dan `MAX_THINKING_TOKENS=0` tidak berpengaruh di sana, dan model memutuskan per langkah berapa banyak untuk berpikir berdasarkan tingkat usaha.

704 702 

705Claude Code meruntuhkan output pemikiran secara default. Tekan `Ctrl+O` untuk mengalihkan mode verbose dan lihat penalaran sebagai teks miring abu-abu. Sesi interaktif pada Anthropic API menerima blok pemikiran yang diredaksi secara default, jadi atur `showThinkingSummaries: true` dalam [pengaturan](/docs/id/settings) jika Anda menginginkan ringkasan lengkap yang tersedia saat Anda memperluas. Anda dikenakan biaya untuk semua token pemikiran yang dihasilkan, bahkan ketika diruntuhkan atau diredaksi.703Claude Code meruntuhkan output pemikiran secara default. Tekan `Ctrl+O` untuk mengalihkan mode verbose dan lihat penalaran sebagai teks miring abu-abu. Sesi interaktif pada Anthropic API menerima blok pemikiran yang diredaksi secara default, jadi atur `showThinkingSummaries: true` dalam [pengaturan](/docs/id/settings) jika Anda menginginkan ringkasan lengkap yang tersedia saat Anda memperluas. Anda dikenakan biaya untuk semua token pemikiran yang dihasilkan, bahkan ketika diruntuhkan atau diredaksi.

706 704 


786Jika Anda tidak mengatur jendela auto-compact, Claude Code melakukan pemadatan ketika percakapan mencapai batas konteks model, kecuali dalam sesi ini:784Jika Anda tidak mengatur jendela auto-compact, Claude Code melakukan pemadatan ketika percakapan mencapai batas konteks model, kecuali dalam sesi ini:

787 785 

788* [Sesi cloud](/docs/id/claude-code-on-the-web) melakukan pemadatan saat percakapan mendekati batas model786* [Sesi cloud](/docs/id/claude-code-on-the-web) melakukan pemadatan saat percakapan mendekati batas model

789* Sonnet 4.6 dan Opus 4.6 tanpa [konteks diperluas](#extended-context) melakukan pemadatan pada batas 200K, dan begitu juga Opus 4.8 dan Opus 5 ketika mereka berjalan dengan jendela konteks 200K, seperti di Amazon Bedrock, Platform Agen Google Cloud, dan Microsoft Foundry787* Sonnet 4.6 dan Opus 4.6 tanpa [konteks diperluas](#extended-context) melakukan pemadatan pada batas 200K, dan begitu juga Opus 4.8 dan yang lebih baru ketika mereka berjalan dengan jendela konteks 200K, seperti di Amazon Bedrock, Platform Agen Google Cloud, dan Microsoft Foundry

790* Ketika Anda mengatur [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/id/env-vars), model dengan jendela asli 1M, seperti Sonnet 5 dan model Fable, melakukan pemadatan pada batas 200K788* Ketika Anda mengatur [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/id/env-vars), model dengan jendela asli 1M, seperti Sonnet 5 dan model Fable, melakukan pemadatan pada batas 200K

791* Model yang berjalan dengan jendela asli 1M, seperti Sonnet 5, model Fable, dan Opus 4.7 dan yang lebih baru di Anthropic API, melakukan pemadatan sebelum jendela penuh, pada sekitar 967K token secara default. Di Amazon Bedrock, Platform Agen Google Cloud, dan Microsoft Foundry, [Pin models for third-party deployments](#pin-models-for-third-party-deployments) mengatakan model mana yang berjalan dengan jendela itu; untuk konfigurasi yang menganggarkan Sonnet 5 pada 200K sebagai gantinya, lihat [Sonnet 5 context window](#sonnet-5-context-window)789* Model yang berjalan dengan jendela asli 1M, seperti Sonnet 5, model Fable, dan Opus 4.7 dan yang lebih baru di Anthropic API, melakukan pemadatan sebelum jendela penuh, pada sekitar 967K token secara default. Di Amazon Bedrock, Platform Agen Google Cloud, dan Microsoft Foundry, [Pin models for third-party deployments](#pin-models-for-third-party-deployments) mengatakan model mana yang berjalan dengan jendela itu; untuk konfigurasi yang menganggarkan Sonnet 5 pada 200K sebagai gantinya, lihat [Sonnet 5 context window](#sonnet-5-context-window)

792* Sesi pada ID model yang Claude Code tidak kenali, seperti alias [gateway LLM](/docs/id/llm-gateway), melakukan pemadatan pada jendela konteks yang Claude Code asumsikan untuk ID; lihat [Correct the window for a gateway or custom model ID](#correct-the-window-for-a-gateway-or-custom-model-id)790* Sesi pada ID model yang Claude Code tidak kenali, seperti alias [gateway LLM](/docs/id/llm-gateway), melakukan pemadatan pada jendela konteks yang Claude Code asumsikan untuk ID; lihat [Correct the window for a gateway or custom model ID](#correct-the-window-for-a-gateway-or-custom-model-id)


831Contoh ini menetapkan ketiga variabel untuk membuat deployment Opus yang dirutekan gateway dapat dipilih. Claude Code membaca variabel lingkungan saat startup, jadi jalankan ekspor sebelum meluncurkan `claude`, atau mulai ulang sesi yang ada untuk mengambilnya:829Contoh ini menetapkan ketiga variabel untuk membuat deployment Opus yang dirutekan gateway dapat dipilih. Claude Code membaca variabel lingkungan saat startup, jadi jalankan ekspor sebelum meluncurkan `claude`, atau mulai ulang sesi yang ada untuk mengambilnya:

832 830 

833```bash theme={null}831```bash theme={null}

834export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-5"832export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-5-5"

835export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"833export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"

836export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"834export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"

837```835```


847 845 

848Ketika [`availableModels`](#restrict-model-selection) diatur, sertakan ID model kustom dalam daftar izin juga. Jika tidak, Claude Code menyaring entri kustom dari pemilih dan menolak pemilihan `--model` darinya seperti model yang dikecualikan lainnya.846Ketika [`availableModels`](#restrict-model-selection) diatur, sertakan ID model kustom dalam daftar izin juga. Jika tidak, Claude Code menyaring entri kustom dari pemilih dan menolak pemilihan `--model` darinya seperti model yang dikecualikan lainnya.

849 847 

850ID kustom yang menyematkan nama keluarga, seperti `my-gateway/claude-opus-5`, dihitung sebagai entri spesifik untuk keluarga itu dan menonaktifkan wildcard-nya, jadi juga daftarkan versi yang ingin Anda pertahankan dapat dipilih. Lihat [Perilaku penggabungan](#merge-behavior).848ID kustom yang menyematkan nama keluarga, seperti `my-gateway/claude-opus-5-5`, dihitung sebagai entri spesifik untuk keluarga itu dan menonaktifkan wildcard-nya, jadi juga daftarkan versi yang ingin Anda pertahankan dapat dipilih. Lihat [Perilaku penggabungan](#merge-behavior).

851 849 

852<h2 id="environment-variables">850<h2 id="environment-variables">

853 Variabel lingkungan851 Variabel lingkungan

Details

123| `OTEL_LOG_ASSISTANT_RESPONSES` | Aktifkan pencatatan teks respons asisten pada acara `assistant_response` (default: dinonaktifkan). Saat tidak diatur, kembali ke nilai `OTEL_LOG_USER_PROMPTS`. Memerlukan Claude Code v2.1.193 atau lebih baru | `1` untuk mengaktifkan, `0` untuk tetap disunting |123| `OTEL_LOG_ASSISTANT_RESPONSES` | Aktifkan pencatatan teks respons asisten pada acara `assistant_response` (default: dinonaktifkan). Saat tidak diatur, kembali ke nilai `OTEL_LOG_USER_PROMPTS`. Memerlukan Claude Code v2.1.193 atau lebih baru | `1` untuk mengaktifkan, `0` untuk tetap disunting |

124| `OTEL_LOG_TOOL_DETAILS` | Aktifkan pencatatan parameter alat dan argumen input dalam acara alat dan atribut span trace: perintah Bash, nama server MCP dan alat, nama skill, nama workflow yang ditulis pengguna, dan input alat. Juga mengaktifkan nama perintah custom, plugin, dan MCP pada acara `user_prompt` (default: dinonaktifkan). Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, `mcp_server_name`/`mcp_tool_name` dipancarkan pada `tool_decision`/`tool_result` bahkan dengan flag mati. Pengecualian memerlukan Claude Code v2.1.214 atau lebih baru | `1` untuk mengaktifkan |124| `OTEL_LOG_TOOL_DETAILS` | Aktifkan pencatatan parameter alat dan argumen input dalam acara alat dan atribut span trace: perintah Bash, nama server MCP dan alat, nama skill, nama workflow yang ditulis pengguna, dan input alat. Juga mengaktifkan nama perintah custom, plugin, dan MCP pada acara `user_prompt` (default: dinonaktifkan). Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, `mcp_server_name`/`mcp_tool_name` dipancarkan pada `tool_decision`/`tool_result` bahkan dengan flag mati. Pengecualian memerlukan Claude Code v2.1.214 atau lebih baru | `1` untuk mengaktifkan |

125| `OTEL_LOG_TOOL_CONTENT` | Aktifkan pencatatan konten alat dalam acara span [`tool.output`](#tool-output-span-event) (default: dinonaktifkan). Atribut span membawa konten alat di bawah [gerbang mereka sendiri](#new-context-gates). Memerlukan [tracing](#traces-beta). Konten dipotong pada batas konten (60 KB secara default) | `1` untuk mengaktifkan |125| `OTEL_LOG_TOOL_CONTENT` | Aktifkan pencatatan konten alat dalam acara span [`tool.output`](#tool-output-span-event) (default: dinonaktifkan). Atribut span membawa konten alat di bawah [gerbang mereka sendiri](#new-context-gates). Memerlukan [tracing](#traces-beta). Konten dipotong pada batas konten (60 KB secara default) | `1` untuk mengaktifkan |

126| `OTEL_LOG_MANAGED_SETTINGS` | Tambahkan pengaturan terkelola yang disunting, dan digest SHA-256 dari pengaturan sebelum penyuntingan, ke acara [managed settings resolved](#managed-settings-resolved-event) (default: dinonaktifkan). Nilai dalam pengaturan proyek atau lokal tidak mengaktifkannya. Memerlukan Claude Code v2.1.274 atau lebih baru | `1` untuk mengaktifkan |

126| `OTEL_LOG_RAW_API_BODIES` | Emit badan permintaan dan respons JSON API Anthropic Messages lengkap sebagai acara log `api_request_body` / `api_response_body` (default: dinonaktifkan). Badan mencakup seluruh riwayat percakapan. Mengaktifkan ini menyiratkan persetujuan untuk semua yang akan diungkapkan oleh `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, dan `OTEL_LOG_TOOL_CONTENT` | `1` untuk badan inline dipotong pada batas konten (60 KB secara default), atau `file:<dir>` untuk badan tidak dipotong di disk dengan pointer `body_ref` dalam acara |127| `OTEL_LOG_RAW_API_BODIES` | Emit badan permintaan dan respons JSON API Anthropic Messages lengkap sebagai acara log `api_request_body` / `api_response_body` (default: dinonaktifkan). Badan mencakup seluruh riwayat percakapan. Mengaktifkan ini menyiratkan persetujuan untuk semua yang akan diungkapkan oleh `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, dan `OTEL_LOG_TOOL_CONTENT` | `1` untuk badan inline dipotong pada batas konten (60 KB secara default), atau `file:<dir>` untuk badan tidak dipotong di disk dengan pointer `body_ref` dalam acara |

127| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Batas konten: panjang maksimum atribut yang mengandung konten seperti respons model, konten alat, prompt sistem, dan badan API mentah, termasuk penanda pemotongan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Default diukur untuk backend yang membatasi nilai atribut pada 64 KB; naikkan hanya jika backend Anda menerima nilai yang lebih besar, atau turunkan untuk mengurangi volume telemetri. Saat batas atribut SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` atau salah satu varian logrecord dan span-nya, diatur lebih rendah, Claude Code memotong pada nilai yang lebih kecil itu sehingga penanda `[TRUNCATED ...]` tetap dalam batas SDK. Memerlukan Claude Code v2.1.214 atau lebih baru | `262144` |128| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Batas konten: panjang maksimum atribut yang mengandung konten seperti respons model, konten alat, prompt sistem, dan badan API mentah, termasuk penanda pemotongan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Default diukur untuk backend yang membatasi nilai atribut pada 64 KB; naikkan hanya jika backend Anda menerima nilai yang lebih besar, atau turunkan untuk mengurangi volume telemetri. Saat batas atribut SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` atau salah satu varian logrecord dan span-nya, diatur lebih rendah, Claude Code memotong pada nilai yang lebih kecil itu sehingga penanda `[TRUNCATED ...]` tetap dalam batas SDK. Memerlukan Claude Code v2.1.214 atau lebih baru | `262144` |

128| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferensi temporalitas metrik (default: `delta`). Atur ke `cumulative` jika backend Anda mengharapkan temporalitas kumulatif | `delta`, `cumulative` |129| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferensi temporalitas metrik (default: `delta`). Atur ke `cumulative` jika backend Anda mengharapkan temporalitas kumulatif | `delta`, `cumulative` |


241| `workflow.run_id` | Pengidentifikasi run dari run alat [Workflow](/docs/id/workflows) yang menghasilkan agen ini, dengan awalan `wf_`. Tidak ada untuk agen yang tidak dihasilkan oleh workflow | |242| `workflow.run_id` | Pengidentifikasi run dari run alat [Workflow](/docs/id/workflows) yang menghasilkan agen ini, dengan awalan `wf_`. Tidak ada untuk agen yang tidak dihasilkan oleh workflow | |

242| `workflow.name` | Nama workflow yang menghasilkan agen ini. Nama yang ditulis pengguna diganti dengan `custom` kecuali gate diatur | `OTEL_LOG_TOOL_DETAILS` |243| `workflow.name` | Nama workflow yang menghasilkan agen ini. Nama yang ditulis pengguna diganti dengan `custom` kecuali gate diatur | `OTEL_LOG_TOOL_DETAILS` |

243| `speed` | `fast` atau `normal` | |244| `speed` | `fast` atau `normal` | |

245| `effort` | [Effort level](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan: `low`, `medium`, `high`, `xhigh`, atau `max`. Tidak ada saat Claude Code tidak mengirim effort level, misalnya pada model yang tidak mendukung effort. Memerlukan Claude Code v2.1.274 atau lebih baru | |

244| `llm_request.context` | `interaction`, `tool`, atau `standalone` tergantung pada span induk | |246| `llm_request.context` | `interaction`, `tool`, atau `standalone` tergantung pada span induk | |

245| `duration_ms` | Durasi wall-clock termasuk retry | |247| `duration_ms` | Durasi wall-clock termasuk retry | |

246| `ttft_ms` | Waktu ke token pertama dalam milidetik | |248| `ttft_ms` | Waktu ke token pertama dalam milidetik | |


385echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"387echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"

386```388```

387 389 

388Jika pembantu gagal atau mencetak output yang tidak memenuhi persyaratan ini, Claude Code melaporkan kesalahan dalam:390Jika pembantu gagal atau mencetak output yang tidak memenuhi persyaratan ini, ekspor gagal dan backend telemetri Anda tidak menerima apa pun dari sesi sampai pembantu berfungsi lagi. Claude Code melaporkan kegagalan dalam:

389 391 

392* Notifikasi peringatan dalam sesi interaktif, [`otelHeadersHelper failed; telemetry is not being exported`](/docs/id/errors#otelheadershelper-failed), ditampilkan sekali per sesi saat pembantu pertama kali gagal

390* Output `/status`393* Output `/status`

391* Log debug, saat berjalan dengan [`--debug`](/docs/id/cli-reference#cli-flags) atau setelah menjalankan `/debug` dalam sesi394* Log debug, saat berjalan dengan [`--debug`](/docs/id/cli-reference#cli-flags) atau setelah menjalankan `/debug` dalam sesi

392* stderr, dalam sesi non-interaktif yang dimulai dengan `-p`395* stderr, dalam sesi non-interaktif yang dimulai dengan `-p`


712| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |715| ------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

713| `prompt.id` | Pengidentifikasi UUID v4 yang menghubungkan semua acara yang dihasilkan saat memproses prompt pengguna tunggal |716| `prompt.id` | Pengidentifikasi UUID v4 yang menghubungkan semua acara yang dihasilkan saat memproses prompt pengguna tunggal |

714| `event.sequence` | Penghitung berbasis 0 untuk mengurutkan acara, dihitung per proses Claude Code daripada per sesi |717| `event.sequence` | Penghitung berbasis 0 untuk mengurutkan acara, dihitung per proses Claude Code daripada per sesi |

715| `message.uuid` | UUID pesan seperti yang disimpan dalam transkrip sesi, file `~/.claude/projects/*/*.jsonl`. Hadir pada `assistant_response`, dan pada `user_prompt` kecuali untuk command dispatches, yang dapat menghasilkan nol atau banyak pesan. Pada `assistant_response`, ini adalah entri transkrip akhir respons, yang `parentUuid` giliran berikutnya berantai dari. Memerlukan Claude Code v2.1.214 atau lebih baru |718| `message.uuid` | UUID pesan seperti yang disimpan dalam transkrip sesi, file `~/.claude/projects/*/*.jsonl`. Hadir pada `assistant_response`, pada `api_response_body`, dan pada `user_prompt` kecuali untuk command dispatches, yang dapat menghasilkan nol atau banyak pesan. Pada `assistant_response` dan `api_response_body`, ini adalah entri transkrip akhir respons, yang `parentUuid` giliran berikutnya berantai dari. Memerlukan Claude Code v2.1.214 atau lebih baru, atau v2.1.274 atau lebih baru pada `api_response_body` |

716| `client_request_id` | UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`. Hadir pada `api_request` dan `api_error` pada koneksi API pihak pertama; tidak ada pada backend penyedia pihak ketiga dan saat permintaan diulang melalui fallback non-streaming. Memasangkan permintaan dengan responsnya dan tetap tersedia untuk kegagalan seperti timeout yang tidak pernah menghasilkan `request_id` server. Cocok dengan atribut yang sama pada span trace `llm_request`. Memerlukan Claude Code v2.1.214 atau lebih baru |719| `client_request_id` | UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`. Hadir pada `api_request` dan `api_error` pada koneksi API pihak pertama; tidak ada pada backend penyedia pihak ketiga dan saat permintaan diulang melalui fallback non-streaming. Memasangkan permintaan dengan responsnya dan tetap tersedia untuk kegagalan seperti timeout yang tidak pernah menghasilkan `request_id` server. Cocok dengan atribut yang sama pada span trace `llm_request`. Memerlukan Claude Code v2.1.214 atau lebih baru |

717 720 

718Untuk melacak semua aktivitas yang dipicu oleh prompt tunggal, filter acara Anda berdasarkan nilai `prompt.id` tertentu. Ini mengembalikan acara user\_prompt, acara api\_request apa pun, dan acara tool\_result apa pun yang terjadi saat memproses prompt tersebut.721Untuk melacak semua aktivitas yang dipicu oleh prompt tunggal, filter acara Anda berdasarkan nilai `prompt.id` tertentu. Ini mengembalikan acara user\_prompt, acara api\_request apa pun, dan acara tool\_result apa pun yang terjadi saat memproses prompt tersebut.


721 724 

722Untuk rekonstruksi tingkat pesan, setiap kelas acara membawa kunci yang cocok dengan bidang dalam transkrip sesi. Format entri transkrip adalah [internal untuk Claude Code](/docs/id/sessions#where-transcripts-are-stored) dan berubah antar versi, jadi pipeline yang bergabung pada bidang ini dapat rusak pada rilis apa pun; perlakukan penggabungan sebagai spesifik versi daripada kontrak stabil:725Untuk rekonstruksi tingkat pesan, setiap kelas acara membawa kunci yang cocok dengan bidang dalam transkrip sesi. Format entri transkrip adalah [internal untuk Claude Code](/docs/id/sessions#where-transcripts-are-stored) dan berubah antar versi, jadi pipeline yang bergabung pada bidang ini dapat rusak pada rilis apa pun; perlakukan penggabungan sebagai spesifik versi daripada kontrak stabil:

723 726 

724* `message.uuid` pada `user_prompt` dan `assistant_response`727* `message.uuid` pada `user_prompt`, `assistant_response`, dan `api_response_body`

725* `request_id` pada acara API, disimpan sebagai `requestId` pada entri asisten transkrip728* `request_id` pada acara API, disimpan sebagai `requestId` pada entri asisten transkrip

726* `tool_use_id` pada acara `tool_result` dan `tool_decision`729* `tool_use_id` pada acara `tool_result` dan `tool_decision`

727 730 


1342* `files_past_cutoff`: File yang lebih lama dari periode retensi yang gagal dihapus penyapuan, misalnya karena kesalahan izin atau file yang dipegang terbuka. Nilai di atas nol berarti file melampaui periode retensi yang dikonfigurasi; nol bukan bukti bahwa tidak ada, karena penghapusan yang gagal dari seluruh direktori dihitung menuju `error_count` sebagai gantinya1345* `files_past_cutoff`: File yang lebih lama dari periode retensi yang gagal dihapus penyapuan, misalnya karena kesalahan izin atau file yang dipegang terbuka. Nilai di atas nol berarti file melampaui periode retensi yang dikonfigurasi; nol bukan bukti bahwa tidak ada, karena penghapusan yang gagal dari seluruh direktori dihitung menuju `error_count` sebagai gantinya

1343* `error_count`: Jumlah kesalahan yang dihadapi penyapuan saat membuat daftar atau menghapus file1346* `error_count`: Jumlah kesalahan yang dihadapi penyapuan saat membuat daftar atau menghapus file

1344 1347 

1348<h4 id="managed-settings-resolved-event">

1349 Acara pengaturan terkelola diselesaikan

1350</h4>

1351 

1352Dicatat dengan [pengaturan terkelola](/docs/id/server-managed-settings) yang diselesaikan sesi: sekali saat startup sesi, lagi saat pengaturan terkelola atau [helper kebijakan](/docs/id/settings-reference#policyhelper) berubah selama sesi, dan saat Claude Code menolak untuk memulai atau mengakhiri sesi untuk salah satu alasan yang tercantum atribut `error.type`.

1353Gunakan acara ini untuk menemukan mesin yang berjalan pada sumber terkelola yang tidak terduga, mesin yang policy helper-nya gagal, dan alasan mesin menolak untuk memulai.

1354Memerlukan Claude Code v2.1.274 atau lebih baru.

1355 

1356Secara default, acara membawa sumber terkelola dan status helper kebijakan tetapi bukan pengaturan itu sendiri. Untuk menambahkan atribut `managed_settings.settings` yang diredaksi dan digest `managed_settings.resolved_sha256`, atur `OTEL_LOG_MANAGED_SETTINGS=1`:

1357 

1358* Atur dalam blok `env` pengaturan terkelola, pengaturan pengguna, atau `--settings`, atau dalam lingkungan tempat Anda meluncurkan Claude Code. Nilai dalam pengaturan proyek atau lokal tidak mengaktifkannya, karena repositori yang dikloning dapat menulisnya.

1359* Pengaturan terkelola server dapat mengaturnya tanpa menampilkan [dialog persetujuan keamanan](/docs/id/server-managed-settings#security-approval-dialogs), karena variabel hanya menambahkan kebijakan terkelola organisasi Anda sendiri ke acara yang organisasi Anda sudah terima.

1360 

1361Dalam sesi interaktif dalam folder yang belum Anda [percayai](/docs/id/permissions#what-runs-before-you-trust-a-folder), Claude Code tidak mengekspor acara penolakan, karena pengaturan proyek dan lokal dapat mengarahkan ekspor ke kolektor yang berbeda sebelum kepercayaan.

1362 

1363**Nama Acara**: `claude_code.managed_settings_resolved`

1364 

1365**Atribut**:

1366 

1367* Semua [atribut standar](#standard-attributes)

1368* `event.name`: `"managed_settings_resolved"`

1369* `event.timestamp`: Stempel waktu ISO 8601

1370* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)

1371* `managed_settings.trigger`: `"startup"` untuk acara startup sesi, `"change"` saat pengaturan terkelola atau status helper kebijakan berubah nanti dalam sesi, atau `"refused"` saat kebijakan pengaturan terkelola menghentikan sesi. Claude Code mengirim acara `change` hanya saat atribut berbeda dari acara terakhir yang dikirimnya, dan nilai pengaturan yang berubah dihitung bahkan saat `OTEL_LOG_MANAGED_SETTINGS` off

1372* `error.type`: mengapa Claude Code menghentikan sesi. Ada hanya pada acara `refused`:

1373 * `"helper_failed"`: [run helper kebijakan gagal](/docs/id/settings-reference#helper-failures)

1374 * `"policy_invalid"`: pengaturan terkelola berisi kesalahan yang menghentikan Claude Code dari memulai, atau sumber admin gagal dimuat, jadi Claude Code tidak dapat memeriksa penegakan login organisasi

1375 * `"consent_rejected"`: pengguna menolak [dialog persetujuan keamanan](/docs/id/server-managed-settings#security-approval-dialogs) untuk pengaturan terkelola server

1376 * `"force_refresh_failed"`: pengambilan pengaturan yang [`forceRemoteSettingsRefresh`](/docs/id/settings-reference#forceremotesettingsrefresh) perlukan gagal

1377 * `"gateway_rejected"`: [gateway aplikasi Claude](/docs/id/claude-apps-gateway) menjawab beban pengaturan terkelola dengan HTTP 403

1378 * `"version_below_minimum"`: versi Claude Code ini di bawah [`requiredMinimumVersion`](/docs/id/settings-reference#requiredminimumversion) atau di atas [`requiredMaximumVersion`](/docs/id/settings-reference#requiredmaximumversion)

1379 * `"_OTHER"`: beban pengaturan terkelola gateway aplikasi Claude gagal karena alasan lain

1380* `managed_settings.sources`: setiap sumber terkelola yang memberikan setidaknya satu [kunci kebijakan](/docs/id/server-managed-settings#how-claude-code-combines-managed-sources), prioritas tertinggi terlebih dahulu, termasuk sumber yang kuncinya tidak berlaku di bawah `first-wins`. Nilai adalah `"remote"`, `"plist"` atau `"hklm"` untuk kebijakan MDM atau tingkat OS, `"file"` untuk file pengaturan terkelola dan drop-in, `"parent"` saat [host embedding](/docs/id/server-managed-settings#let-an-embedding-host-add-policy) memasok pengaturan, dan `"hkcu"` untuk [nilai registri Windows HKCU](/docs/id/server-managed-settings#where-each-mechanism-stores-the-policy) saat Claude Code [membacanya](/docs/id/server-managed-settings#how-claude-code-combines-managed-sources). Sumber yang hanya membawa kunci kontrol, atau yang Claude Code tidak dapat dibaca, tidak tercantum. Dipancarkan sebagai array string, kosong saat tidak ada sumber terkelola yang memberikan kunci kebijakan

1381* `managed_settings.source_behavior`: nilai [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) yang dibaca Claude Code, `"first-wins"` atau `"merge"`. `"first-wins"` saat tidak ada sumber yang menetapkan kunci

1382* `managed_settings.helper.state`: status helper kebijakan yang dikonfigurasi sumber MDM atau file yang dipilih:

1383 * `"ok"`: output helper melayani sebagai pengaturan terkelola

1384 * `"bad_path"`, `"not_a_file"`, `"exit_nonzero"`, `"timed_out"`, `"oversize"`, `"parse_failed"`, `"envelope_invalid"`, atau `"schema_rejected"`: run terakhir helper gagal. [Helper failures](/docs/id/settings-reference#helper-failures) menjelaskan kasus-kasusnya

1385 * `"none"`: tidak ada helper yang dikonfigurasi, atau sumber yang mengonfigurasinya bukan kebijakan MDM atau file pengaturan terkelola

1386* `managed_settings.helper.applied`: `"output"` saat output helper sendiri melayani sebagai pengaturan terkelola, `"none"` saat tidak

1387* `managed_settings.helper.entry`: `"policyHelper"` saat Claude Code memilih [`policyHelper`](/docs/id/settings-reference#policyhelper). Tidak ada saat memilih tidak ada helper

1388* `managed_settings.helper.path`: [`path`](/docs/id/settings-reference#policyhelper-path) yang dikonfigurasi helper. Ada kapan pun Claude Code memilih helper, apakah atau tidak `OTEL_LOG_MANAGED_SETTINGS` diatur

1389* `managed_settings.resolved_sha256` (saat `OTEL_LOG_MANAGED_SETTINGS=1`): SHA-256 dari pengaturan terkelola yang diselesaikan sebelum redaksi, diserialisasi sebagai JSON dengan kunci diurutkan secara rekursif dan tanpa whitespace. Mesin dengan digest yang sama menjalankan kebijakan yang sama. Claude Code mengirim digest hanya dengan opt-in karena kebijakan pendek dapat dipulihkan dengan menghash tebakan. Tidak ada saat tidak ada pengaturan terkelola yang diselesaikan, dan pada acara `refused`

1390* `managed_settings.settings` (saat `OTEL_LOG_MANAGED_SETTINGS=1`): nama dan bentuk pengaturan terkelola yang diselesaikan sebagai string JSON, dengan nilai diredaksi. Tidak ada pada acara `refused`. Claude Code membangunnya dari skema pengaturannya:

1391 

1392 * Nama pengaturan yang skema deklarasikan diekspor, dan kunci yang tidak dideklarasikan ditinggalkan

1393 * Boolean, angka, dan nilai string yang skema batasi ke set opsi tetap, seperti `permissions.defaultMode`, diekspor apa adanya. `sandbox.network.httpProxyPort` dan `sandbox.network.socksProxyPort` diekspor sebagai `"[REDACTED]"`

1394 * Setiap string lainnya, seperti `model`, `apiKeyHelper`, setiap nilai `env`, setiap URL, dan setiap perintah, diekspor sebagai `"[REDACTED]"`

1395 * Nama entri peta, seperti nama variabel `env` dan ID plugin, diekspor apa adanya. Pengaturan yang entri-nya skema tidak ketik, seperti `vimInsertModeRemaps`, diekspor sebagai `"[REDACTED]"` tunggal, dan `sandbox.ignoreViolations` diekspor sebagai daftar daftar jalurnya tanpa pola perintah

1396 * Daftar menyimpan panjangnya, dengan setiap entri diredaksi oleh aturan yang sama

1397 * Aturan `permissions.allow`, `permissions.deny`, atau `permissions.ask` diekspor sebagai nama alatnya dengan konten diredaksi, seperti `Read([REDACTED])`, saat alat built-in ke versi Claude Code ini atau referensi `mcp__` seperti `mcp__jira__create_issue`. Aturan lainnya diekspor sebagai `"[REDACTED]"`

1398 * Hooks mengikuti aturan yang sama, jadi bidang opsi tetap dan numerik seperti `type` dan `timeout` menunjukkan, sementara setiap perintah, URL, `matcher`, dan kondisi `if` diekspor sebagai `"[REDACTED]"`

1399 

1400 Misalnya, pengaturan terkelola dengan `apiKeyHelper`, dua variabel `env`, dan aturan tolak diekspor sebagai `{"apiKeyHelper":"[REDACTED]","env":{"HTTPS_PROXY":"[REDACTED]","CLAUDE_CODE_ENABLE_TELEMETRY":"[REDACTED]"},"permissions":{"deny":["Read([REDACTED])"]}}`.

1401 

1402 Claude Code memotong nilai pada 8 KB UTF-8, dan nilai yang dipotong bukan JSON yang valid

1403* `managed_settings.settings_truncated` (saat `managed_settings.settings` ada): `true` saat Claude Code memotong `managed_settings.settings` pada 8 KB, `false` sebaliknya. Dipancarkan sebagai boolean, bukan string

1404 

1345<h2 id="interpret-metrics-and-events-data">1405<h2 id="interpret-metrics-and-events-data">

1346 Menafsirkan data metrik dan acara1406 Menafsirkan data metrik dan acara

1347</h2>1407</h2>


1461Saat membangun aturan deteksi, cari sinyal yang ingin Anda pantau dan kueri backend Anda untuk acara dan atribut yang sesuai:1521Saat membangun aturan deteksi, cari sinyal yang ingin Anda pantau dan kueri backend Anda untuk acara dan atribut yang sesuai:

1462 1522 

1463| Sinyal | Acara | Atribut Kunci |1523| Sinyal | Acara | Atribut Kunci |

1464| --------------------------------------------------- | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------ |1524| -------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

1465| Panggilan alat diizinkan atau ditolak, dan oleh apa | `tool_decision` | `decision`, `source`, `tool_name`, `tool_parameters` |1525| Panggilan alat diizinkan atau ditolak, dan oleh apa | `tool_decision` | `decision`, `source`, `tool_name`, `tool_parameters` |

1466| Eskalasi mode izin | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |1526| Eskalasi mode izin | `permission_mode_changed` | `from_mode`, `to_mode`, `trigger` |

1467| Hook kebijakan memblokir tindakan | `hook_execution_complete` | `hook_event`, `num_blocking` |1527| Hook kebijakan memblokir tindakan | `hook_execution_complete` | `hook_event`, `num_blocking` |


1469| Server MCP terhubung atau gagal | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |1529| Server MCP terhubung atau gagal | `mcp_server_connection` | `status`, `server_name`, `is_plugin`, `error_code` |

1470| Plugin diinstal dan sumbernya | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |1530| Plugin diinstal dan sumbernya | `plugin_installed` | `plugin.name`, `marketplace.name`, `marketplace.is_official` |

1471| Perintah yang dijalankan dan file yang disentuh | `tool_result` (dieksekusi) atau `tool_decision` (ditolak) dengan `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`; `tool_input` (`tool_result` saja) |1531| Perintah yang dijalankan dan file yang disentuh | `tool_result` (dieksekusi) atau `tool_decision` (ditolak) dengan `OTEL_LOG_TOOL_DETAILS=1` | `tool_parameters`; `tool_input` (`tool_result` saja) |

1532| Sumber pengaturan terkelola mana yang dijalankan mesin, apakah pembantu kebijakan sehat, dan mengapa mesin menolak untuk memulai | `managed_settings_resolved` | `managed_settings.trigger`, `managed_settings.sources`, `managed_settings.source_behavior`, `managed_settings.helper.state`, `error.type`; `managed_settings.settings` dan `managed_settings.resolved_sha256` dengan `OTEL_LOG_MANAGED_SETTINGS=1` |

1472 1533 

1473Claude Code memancarkan aliran acara mentah saja. Deteksi anomali, baselining, korelasi lintas sesi, dan peringatan adalah tanggung jawab backend SIEM atau observabilitas Anda.1534Claude Code memancarkan aliran acara mentah saja. Deteksi anomali, baselining, korelasi lintas sesi, dan peringatan adalah tanggung jawab backend SIEM atau observabilitas Anda.

1474 1535 

Details

245| `registry.npmjs.org` | Instalasi plugin (pengambilan paket plugin bersumber npm dan instalasi dependensi paket Node.js plugin), server MCP yang diluncurkan `npx`, dan registri paket untuk instalasi npm dan bun dari Claude Code itu sendiri |245| `registry.npmjs.org` | Instalasi plugin (pengambilan paket plugin bersumber npm dan instalasi dependensi paket Node.js plugin), server MCP yang diluncurkan `npx`, dan registri paket untuk instalasi npm dan bun dari Claude Code itu sendiri |

246| `bridge.claudeusercontent.com` | [Claude in Chrome](/docs/id/chrome) jembatan WebSocket ekstensi |246| `bridge.claudeusercontent.com` | [Claude in Chrome](/docs/id/chrome) jembatan WebSocket ekstensi |

247| `*.frame.claudeusercontent.com` | Pembacaan konten [Artifact](/docs/id/artifacts). CLI mengambil file artefak dari host ini ketika Claude membuka satu, dan hanya ketika alat Artifact [tersedia](/docs/id/artifacts#availability) untuk akun Anda. Untuk mematikan alat dan menghilangkan persyaratan ini, atur [`"enableArtifact": false`](/docs/id/settings-reference#enableartifact) atau [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/id/env-vars); Claude Code juga menghormati pengaturan [`disableArtifact`](/docs/id/settings-reference#disableartifact) yang sudah usang. Lihat [Disable artifacts](/docs/id/artifacts#disable-artifacts) untuk cara pengaturan ini berinteraksi |247| `*.frame.claudeusercontent.com` | Pembacaan konten [Artifact](/docs/id/artifacts). CLI mengambil file artefak dari host ini ketika Claude membuka satu, dan hanya ketika alat Artifact [tersedia](/docs/id/artifacts#availability) untuk akun Anda. Untuk mematikan alat dan menghilangkan persyaratan ini, atur [`"enableArtifact": false`](/docs/id/settings-reference#enableartifact) atau [`CLAUDE_CODE_DISABLE_ARTIFACT=1`](/docs/id/env-vars); Claude Code juga menghormati pengaturan [`disableArtifact`](/docs/id/settings-reference#disableartifact) yang sudah usang. Lihat [Disable artifacts](/docs/id/artifacts#disable-artifacts) untuk cara pengaturan ini berinteraksi |

248| `github.com` | Mengkloning [plugin marketplaces](/docs/id/plugin-marketplaces) dan plugin yang dihosting GitHub, termasuk marketplace resmi Anthropic, melalui HTTPS atau SSH. Untuk mengkloning sumber GitHub `owner/repo` hanya melalui HTTPS, atur [`CLAUDE_CODE_PLUGIN_PREFER_HTTPS=1`](/docs/id/env-vars) |

248| `raw.githubusercontent.com` | Umpan changelog untuk [`/release-notes`](/docs/id/commands). Dalam sesi interaktif, Claude Code juga mengambilnya di latar belakang saat startup ketika changelog cache-nya belum mencakup versi yang berjalan, seperti awal pertama setelah pembaruan; sesi non-interaktif dan cloud tidak pernah mengambilnya |249| `raw.githubusercontent.com` | Umpan changelog untuk [`/release-notes`](/docs/id/commands). Dalam sesi interaktif, Claude Code juga mengambilnya di latar belakang saat startup ketika changelog cache-nya belum mencakup versi yang berjalan, seperti awal pertama setelah pembaruan; sesi non-interaktif dan cloud tidak pernah mengambilnya |

249| `*-review.googlesource.com` | Pencarian perubahan Gerrit pada checkout `googlesource.com`. Ketika sesi tab Claude Desktop Code dimulai atau dilanjutkan pada checkout [terpercaya](/docs/id/permissions#project-allow-rules-and-workspace-trust) yang `origin`-nya adalah host `googlesource.com`, Claude Code menanyakan server `-review` host itu secara anonim untuk perubahan terbuka yang cocok dengan `Change-Id` HEAD, sekali per awal atau lanjutan. Jenis sesi lain melewati pencarian, dan tidak ada host Gerrit lain yang dihubungi. Opsional: nonaktifkan dengan [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars) |250| `*-review.googlesource.com` | Pencarian perubahan Gerrit pada checkout `googlesource.com`. Ketika sesi tab Claude Desktop Code dimulai atau dilanjutkan pada checkout [terpercaya](/docs/id/permissions#project-allow-rules-and-workspace-trust) yang `origin`-nya adalah host `googlesource.com`, Claude Code menanyakan server `-review` host itu secara anonim untuk perubahan terbuka yang cocok dengan `Change-Id` HEAD, sekali per awal atau lanjutan. Jenis sesi lain melewati pencarian, dan tidak ada host Gerrit lain yang dihubungi. Opsional: nonaktifkan dengan [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars) |

250| `http-intake.logs.us5.datadoghq.com` | Acara telemetri operasional, dikirim hanya ketika CLI menggunakan Anthropic API secara langsung, tidak pernah untuk Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry. Opsional: nonaktifkan dengan [`DISABLE_TELEMETRY`](/docs/id/data-usage#telemetry-services) atau `DO_NOT_TRACK` |251| `http-intake.logs.us5.datadoghq.com` | Acara telemetri operasional, dikirim hanya ketika CLI menggunakan Anthropic API secara langsung, tidak pernah untuk Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry. Opsional: nonaktifkan dengan [`DISABLE_TELEMETRY`](/docs/id/data-usage#telemetry-services) atau `DO_NOT_TRACK` |

output-styles.md +123 −41

Details

4 4 

5# Output styles5# Output styles

6 6 

7> Sesuaikan Claude Code untuk penggunaan di luar rekayasa perangkat lunak7> Ubah peran, nada, dan format respons Claude Code dengan gaya output bawaan seperti Concise atau Explanatory, atau tulis gaya kustom Anda sendiri.

8 8 

9Output styles mengubah cara Claude merespons, bukan apa yang Claude ketahui. Mereka menetapkan peran, nada, dan format output Claude untuk setiap respons. Gunakan satu ketika Anda terus-menerus meminta kembali untuk suara atau format yang sama setiap giliran, atau ketika Anda ingin Claude bertindak sebagai sesuatu selain seorang insinyur perangkat lunak.9Output style adalah serangkaian instruksi yang menetapkan peran, nada, dan format respons Claude untuk setiap respons dalam sesi. Claude Code mencakup empat gaya bawaan selain defaultnya, dan Anda dapat menulis gaya Anda sendiri.

10 10 

11Custom output style memberikan Claude instruksi Anda sendiri dan memungkinkan Anda memilih apakah akan mempertahankan instruksi rekayasa perangkat lunak bawaan Claude Code. Pertahankan mereka ketika Anda mengubah cara Claude berkomunikasi tetapi masih coding, seperti selalu menjawab dengan diagram. Tinggalkan mereka ketika Claude tidak melakukan rekayasa perangkat lunak sama sekali, seperti asisten penulisan atau analis data.11Gunakan output style untuk mengubah cara Claude merespons dan bekerja dengan Anda selama seluruh sesi, sehingga Anda tidak perlu mengulangi permintaan di setiap prompt. Misalnya, gaya bawaan dapat membuat respons lebih pendek, menambahkan penjelasan setiap perubahan, atau membuat Claude mulai bekerja tanpa mengajukan pertanyaan rutin. Gaya kustom juga dapat mengubah Claude menjadi sesuatu selain insinyur perangkat lunak, seperti asisten penulisan atau analis data.

12 12 

13Untuk instruksi tentang proyek, konvensi, atau codebase Anda, gunakan [CLAUDE.md](/docs/id/memory) sebagai gantinya.13* Untuk menggunakan gaya bawaan, pilih salah satu dari [gaya output bawaan](#built-in-output-styles) dan [beralih ke gaya tersebut](#change-your-output-style).

14* Untuk menulis instruksi Anda sendiri, [buat output style kustom](#create-a-custom-output-style).

15 

16<Note>

17 Output style memberikan Claude instruksi untuk diikuti. Ini tidak menjamin bahwa sesuatu selalu terjadi atau tidak pernah terjadi. Beberapa kebutuhan sesuai dengan fitur yang berbeda:

18 

19 * Untuk apa yang harus Claude ketahui tentang proyek Anda, gunakan [CLAUDE.md](/docs/id/memory).

20 * Untuk sesuatu yang harus terjadi setiap kali, seperti pemformatan setelah setiap edit atau memblokir perintah, gunakan [hook](/docs/id/hooks-guide).

21 * Untuk skills, subagents, dan opsi lainnya, lihat [Pilih antara output style dan fitur lainnya](#choose-between-an-output-style-and-other-features).

22</Note>

14 23 

15<h2 id="built-in-output-styles">24<h2 id="built-in-output-styles">

16 Gaya output bawaan25 Gaya output bawaan

17</h2>26</h2>

18 27 

19Gaya output **Default** Claude Code adalah set instruksi standarnya, dirancang untuk membantu Anda menyelesaikan tugas-tugas rekayasa perangkat lunak secara efisien.28Claude Code dimulai dalam gaya [**Default**](#default), instruksi standarnya untuk menyelesaikan tugas-tugas rekayasa perangkat lunak. Masing-masing dari empat gaya bawaan lainnya mempertahankan instruksi tersebut dan menambahkan instruksinya sendiri.

29 

30Tabel ini menunjukkan apa yang setiap gaya ubah tentang sesi dan kapan cocok digunakan:

31 

32| Gaya | Apa yang berubah | Gunakan ketika |

33| :-------------------------- | :------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------- |

34| [Proactive](#proactive) | Claude mulai bekerja segera dan membuat asumsi yang masuk akal daripada bertanya tentang keputusan rutin | Anda ingin Claude terus bekerja melalui keputusan rutin, dan Anda akan mengubah arah jika asumsi salah |

35| [Concise](#concise) | Respons dimulai dengan hasil dan menghilangkan pembukaan, narasi, dan rekap | Respons default lebih panjang dari yang Anda inginkan |

36| [Explanatory](#explanatory) | Claude menambahkan blok `Insight` pendek yang menjelaskan pilihan di balik kode yang ditulisnya | Anda sedang mengenal codebase atau menginginkan penalaran bersama dengan perubahan |

37| [Learning](#learning) | Claude menjelaskan pilihannya dan meninggalkan potongan kode kecil untuk Anda tulis sendiri | Anda menginginkan praktik coding langsung sambil tugas masih selesai |

38 

39<h3 id="default">

40 Default

41</h3>

42 

43Default berarti tidak ada gaya output yang dipilih. Claude Code tidak menambahkan instruksi gaya, dan Claude bekerja dari prompt sistem standar Claude Code, yang ditulis untuk tugas-tugas rekayasa perangkat lunak.

44 

45`default` muncul dalam daftar `/output-style` bersama dengan gaya lainnya, jadi Anda [memilihnya dengan cara yang sama](#change-your-output-style).

46 

47<h3 id="proactive">

48 Proactive

49</h3>

50 

51Dalam gaya Proactive, Claude mulai mengimplementasikan segera setelah Anda mengirim tugas. Ini membuat asumsi yang masuk akal tentang keputusan rutin daripada berhenti untuk bertanya, dan tidak beralih ke plan mode kecuali Anda meminta rencana. Anda dapat mengalihkannya kapan saja.

52 

53Instruksi gaya juga memberi tahu Claude untuk memeriksa dengan Anda dalam percakapan sebelum tindakan yang menghapus data atau mengubah sistem bersama atau produksi. Pemeriksaan itu adalah instruksi yang Claude ikuti dan terpisah dari prompt izin.

54 

55Beralih ke gaya Proactive tidak mengubah [mode izin](/docs/id/permission-modes) Anda. Mode izin Anda masih menentukan panggilan alat mana yang berjalan tanpa meminta Anda, jadi prompt izin muncul dengan cara yang sama seperti sebelum Anda beralih.

56 

57<h3 id="concise">

58 Concise

59</h3>

60 

61Dalam gaya Concise, kalimat pertama respons menyatakan apa yang terjadi atau apa jawabannya. Claude menghilangkan pembukaan, narasi langkah demi langkah, dan rekap penutup, dan menjawab pertanyaan sederhana dalam satu hingga tiga kalimat. Ini melakukan pekerjaan rekayasa sethoroughly seperti dalam gaya Default. Memerlukan Claude Code v2.1.237 atau lebih baru.

62 

63Claude masih menulis dengan panjang penuh dalam kasus-kasus ini:

64 

65* **Apa pun yang Anda minta**: ketika Anda meminta penjelasan atau detail lebih lanjut, Claude menjawab secara lengkap.

66* **Apa pun yang Anda butuhkan untuk bertindak dengan aman**: laporan kesalahan, output tes yang gagal, peringatan keamanan, dan konfirmasi untuk tindakan destruktif mempertahankan konten lengkap mereka.

67 

68<h3 id="explanatory">

69 Explanatory

70</h3>

71 

72Dalam gaya Explanatory, Claude melakukan tugas dengan cara yang sama seperti dalam gaya Default dan menambahkan penjelasan singkat tentang mengapa ia membuat pilihan yang ia buat. Setiap penjelasan muncul dalam percakapan, sebelum atau sesudah kode yang terkait, dalam blok berlabel `Insight`. Penjelasan tidak ditulis ke dalam file Anda sebagai komentar.

20 73 

21Ada empat gaya output bawaan tambahan:74Blok `Insight` membawa dua atau tiga poin tentang codebase Anda atau kode yang Claude tulis, seperti yang ini setelah menambahkan endpoint API:

22 75 

23* **Proactive**: Claude dieksekusi segera, membuat asumsi yang masuk akal alih-alih berhenti untuk keputusan rutin, dan lebih memilih tindakan daripada perencanaan. Ini adalah panduan eksekusi otonom yang lebih kuat daripada yang diterapkan [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), dan ini berfungsi tanpa mengubah mode izin Anda, jadi mode izin Anda masih menentukan apa yang berjalan tanpa meminta Anda.76```text theme={null}

77★ Insight ─────────────────────────────────────

78- Setiap rute di repo ini melewati wrapper withAuth, jadi endpoint baru mendapatkan pemeriksaan sesi tanpa middleware-nya sendiri.

79- Batas laju diatur per rute dalam limits.ts, itulah mengapa perubahan ini menambahkan entri di sana daripada default global.

80─────────────────────────────────────────────────

81```

82 

83<h3 id="learning">

84 Learning

85</h3>

24 86 

25* **Concise**: Claude memimpin dengan hasil, melewatkan pembukaan dan narasi, dan membuat respons tetap singkat secara default, sambil melakukan pekerjaan rekayasa sebaik-baiknya seperti dalam gaya Default. Ketika Anda meminta penjelasan atau detail lebih lanjut, Claude menjawab secara lengkap. Claude selalu menyimpan konten lengkap laporan kesalahan, peringatan keamanan, dan konfirmasi untuk tindakan destruktif. Memerlukan Claude Code v2.1.237 atau lebih baru.87Dalam gaya Learning, Claude menambahkan blok `Insight` yang sama seperti [gaya Explanatory](#explanatory) dan juga meminta Anda untuk menulis beberapa kode. Claude menangani implementasi rutin itu sendiri. Ketika mencapai bagian dengan keputusan desain nyata, seperti penanganan kesalahan, struktur data, atau logika bisnis dengan lebih dari satu pendekatan yang valid, ia meninggalkan beberapa baris untuk Anda.

26 88 

27* **Explanatory**: Menyediakan "Insights" edukatif di antara membantu Anda menyelesaikan tugas-tugas rekayasa perangkat lunak. Membantu Anda memahami pilihan implementasi dan pola codebase.89Claude menandai tempat dengan komentar `TODO(human)` dalam file, kemudian mengirim permintaan yang mengatakan apa yang sudah dibangun, apa yang harus ditulis, dan apa yang harus dipertimbangkan:

28 90 

29* **Learning**: Mode kolaboratif belajar-dengan-melakukan di mana Claude tidak hanya akan berbagi "Insights" saat coding, tetapi juga meminta Anda untuk berkontribusi dengan potongan kode kecil dan strategis sendiri. Claude Code akan menambahkan penanda `TODO(human)` dalam kode Anda untuk Anda implementasikan.91```text theme={null}

92● Learn by Doing

93 

94Context: Formulir upload sudah ada dan memanggil validateFile() sebelum menerima file. Pemeriksaan ukuran dan tipe berfungsi untuk gambar, tetapi pernyataan switch tidak memiliki penanganan untuk dokumen belum.

95 

96Your Task: Dalam upload.js, implementasikan cabang kasus "document" di dalam validateFile(). Cari TODO(human).

97 

98Guidance: Tentukan batas ukuran untuk dokumen dan apakah ekstensi file harus cocok dengan tipe MIME. Kembalikan {valid: boolean, error?: string}.

99```

100 

101Claude kemudian berhenti dan menunggu. Tulis kode Anda di komentar `TODO(human)` dan beri tahu Claude ketika Anda selesai. Claude merespons dengan satu `Insight` tentang kode Anda dan melanjutkan tugas.

30 102 

31<h2 id="change-your-output-style">103<h2 id="change-your-output-style">

32 Ubah gaya output Anda104 Ubah gaya output Anda

33</h2>105</h2>

34 106 

35Pilih gaya dengan salah satu cara berikut:107Pilih gaya dengan perintah, menu, atau file settings. Perintah dan kedua menu menyimpan pilihan Anda ke `.claude/settings.local.json` di [tingkat proyek lokal](/docs/id/settings).

36 108 

37* **Perintah `/output-style`**: jalankan `/output-style <style>` untuk beralih, misalnya `/output-style concise`. Tanpa argumen, perintah mencantumkan gaya yang dapat Anda pilih dan menandai yang saat ini. Claude Code menyimpan pilihan Anda ke `.claude/settings.local.json` di [tingkat proyek lokal](/docs/id/settings).109* **Perintah `/output-style`**: jalankan `/output-style <style>` untuk beralih, misalnya `/output-style concise`. Tanpa argumen, perintah mencantumkan gaya yang dapat Anda pilih dan menandai yang saat ini.

38 110 

39 Perintah ini juga berfungsi dalam [mode non-interaktif](/docs/id/headless) dan sesi Agent SDK, serta dari aplikasi mobile atau web melalui [Remote Control](/docs/id/remote-control#limitations), di mana Anda dapat mencantumkan dan memilih hanya [gaya bawaan](#built-in-output-styles). Memerlukan Claude Code v2.1.269 atau lebih baru.111 Perintah ini juga berfungsi dalam [mode non-interaktif](/docs/id/headless) dan sesi Agent SDK, serta dari aplikasi mobile atau web melalui [Remote Control](/docs/id/remote-control#limitations), di mana Anda dapat mencantumkan dan memilih hanya [gaya bawaan](#built-in-output-styles). Memerlukan Claude Code v2.1.269 atau lebih baru.

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

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

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

43 115 

44Untuk menetapkan gaya tanpa menu, edit field `outputStyle` secara langsung dalam file settings:116Untuk menetapkan gaya tanpa menu, edit field `outputStyle` secara langsung dalam file settings:


49}121}

50```122```

51 123 

124Nilainya peka huruf besar-kecil, jadi tulis nama bawaan sebagai `Proactive`, `Concise`, `Explanatory`, dan `Learning`. Nilai yang tidak cocok dengan nama gaya secara tepat, seperti `explanatory`, memberikan Anda gaya Default. Perintah `/output-style` mengabaikan huruf besar-kecil.

125 

126Untuk menjadikan gaya Anda default di seluruh proyek, atur `outputStyle` dalam `~/.claude/settings.json`. File settings proyek sendiri [mengambil prioritas](/docs/id/settings#settings-precedence) atas nilai tersebut.

127 

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

53 129 

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


98[Plugins](/docs/id/plugins-reference) juga dapat mengirimkan output styles dalam direktori `output-styles/`.174[Plugins](/docs/id/plugins-reference) juga dapat mengirimkan output styles dalam direktori `output-styles/`.

99 175 

100<h3 id="frontmatter">176<h3 id="frontmatter">

101 Frontmatter177 Referensi frontmatter

102</h3>178</h3>

103 179 

104File output style mendukung field frontmatter ini:180Konfigurasikan output style dengan [frontmatter](/docs/id/glossary#frontmatter) YAML antara penanda `---` di bagian atas file. Semua field bersifat opsional, dan nama field menggunakan kata-kata huruf kecil yang dipisahkan oleh tanda hubung. Field yang salah eja diabaikan tanpa kesalahan. Jika YAML tidak dapat diuraikan, style masih dimuat dengan nama filenya tanpa field yang ditetapkan; jalankan `claude --debug` untuk melihat kesalahan penguraian.

181 

182| Field | Diperlukan | Deskripsi |

183| :------------------------- | :--------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

184| `name` | Tidak | Nama output style, ditampilkan dalam picker `/config`. Default: nama file |

185| `description` | Tidak | Deskripsi output style, ditampilkan dalam picker `/config` |

186| `keep-coding-instructions` | Tidak | Atur ke `true` untuk mempertahankan instruksi rekayasa perangkat lunak bawaan Claude Code bersama style Anda. Default: `false` |

187| `force-for-plugin` | Tidak | Output styles plugin saja. Atur ke `true` untuk menerapkan style ini secara otomatis kapan pun plugin diaktifkan, tanpa memerlukan pengguna untuk memilihnya. Mengesampingkan pengaturan `outputStyle` pengguna. Jika beberapa plugin yang diaktifkan menetapkan ini, Claude Code menggunakan yang pertama dimuat. Default: `false` |

105 188 

106| Frontmatter | Tujuan | Default |189<span id="comparisons-to-related-features" />

107| :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------- |190 

108| `name` | Nama output style, jika bukan nama file | Mewarisi dari nama file |191<h2 id="choose-between-an-output-style-and-other-features">

109| `description` | Deskripsi output style, ditampilkan dalam picker `/config` | Tidak ada |192 Pilih antara output style dan fitur lainnya

110| `keep-coding-instructions` | Pertahankan instruksi rekayasa perangkat lunak bawaan Claude Code | `false` |193</h2>

111| `force-for-plugin` | Plugin output styles hanya: terapkan style ini secara otomatis kapan pun plugin diaktifkan, tanpa memerlukan pengguna untuk memilihnya. Mengesampingkan pengaturan `outputStyle` pengguna. Jika beberapa plugin yang diaktifkan menetapkan ini, Claude Code menggunakan yang pertama dimuat. | `false` |194 

195Output style berlaku untuk setiap respons dalam sesi. Ini adalah instruksi yang diikuti Claude, jadi tidak ada yang memberlakukannya. Ketika apa yang Anda inginkan lebih sempit daripada setiap respons, atau harus terjadi tanpa gagal, fitur lain lebih cocok.

196 

197Tabel ini mencocokkan apa yang Anda inginkan dengan fitur yang melakukannya:

198 

199| Anda ingin | Gunakan | Mengapa cocok |

200| :----------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------- |

201| Setiap respons dalam suara, panjang, atau format tertentu, atau Claude dalam peran yang berbeda | Output style | Ini berlaku untuk seluruh sesi, dan Anda beralih style dengan satu perintah |

202| Claude mengetahui konvensi, perintah, dan struktur proyek Anda | [CLAUDE.md](/docs/id/memory) | Ini menyimpan apa yang harus diketahui Claude tentang codebase, dan tetap dimuat dengan style apa pun yang Anda pilih |

203| Instruksi untuk satu jenis tugas, seperti checklist rilis atau prosedur review | A [skill](/docs/id/skills) | Claude memmuatnya hanya ketika Anda menginvokasinya atau tugas cocok, jadi tidak membentuk respons yang tidak terkait |

204| Sesuatu yang harus terjadi setiap saat tanpa terkecuali, seperti pemformatan setelah setiap edit atau memblokir perintah | A [hook](/docs/id/hooks-guide) | Claude Code menjalankan hook itu sendiri pada acara lifecycle, jadi tidak bergantung pada Claude mengikuti instruksi |

205| Pembantu dengan instruksi, model, dan tools sendiri untuk tugas yang terfokus | A [subagent](/docs/id/sub-agents) | Ini berjalan dalam konteks terpisah dengan system prompt sendiri dan mengembalikan ringkasan ke percakapan Anda |

206| Penambahan pada instruksi Claude yang Anda berikan saat memulai Claude Code | [`--append-system-prompt`](/docs/id/cli-reference#system-prompt-flags) | Ini menambahkan ke system prompt tanpa menghapus apa pun |

207 

208Fitur-fitur ini dapat digabungkan. Misalnya, Anda dapat menggunakan CLAUDE.md untuk apa yang harus diketahui Claude, output style untuk cara meresponnya, dan hook untuk apa pun yang harus dijamin. [Perluas Claude Code](/docs/id/features-overview) membandingkan fitur ekstensi lainnya.

112 209 

113<h2 id="how-output-styles-work">210<h2 id="how-output-styles-work">

114 Cara kerja output styles211 Cara kerja output styles

115</h2>212</h2>

116 213 

117Output style mengubah instruksi yang Claude Code berikan kepada Claude.214Output style mengubah instruksi yang diberikan Claude Code kepada Claude.

118 215 

119* Claude Code mengirimkan instruksi style aktif dengan setiap permintaan.216* Claude Code mengirimkan instruksi style aktif dengan setiap permintaan.

120* Ketika Anda [memilih style selain Default](#change-your-output-style), Claude Code juga mengingatkan Claude tentang style tersebut selama percakapan.217* Output styles kustom menghilangkan instruksi rekayasa perangkat lunak bawaan Claude Code, seperti cara membatasi perubahan, menulis komentar, dan memverifikasi pekerjaan, kecuali `keep-coding-instructions` diatur ke `true`.

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

122 218 

123Output styles berlaku pada percakapan utama dan pada [fork](/docs/id/sub-agents#fork-the-current-conversation), yang mewarisi percakapan lengkap parent dan system prompt. [Subagent lain menjalankan system prompt mereka sendiri](/docs/id/sub-agents#what-loads-at-startup), jadi styles tidak mengubah cara mereka merespons.219Output styles berlaku untuk percakapan utama dan untuk [fork](/docs/id/sub-agents#fork-the-current-conversation), yang mewarisi percakapan lengkap dan system prompt induk. [Subagent lain menjalankan system prompt mereka sendiri](/docs/id/sub-agents#what-loads-at-startup), jadi styles tidak mengubah cara mereka merespons.

124 220 

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

126 222 

127Built-in Explanatory dan Learning styles menghasilkan respons yang lebih panjang daripada Default secara desain, yang meningkatkan output tokens. Style Concise melakukan sebaliknya dengan menginstruksikan Claude untuk menjaga respons tetap singkat secara default. Untuk custom styles, penggunaan output tokens tergantung pada apa yang instruksi Anda katakan kepada Claude untuk diproduksi.223Style Explanatory dan Learning bawaan menghasilkan respons yang lebih panjang daripada Default secara desain, yang meningkatkan output tokens. Style Concise melakukan sebaliknya dengan menginstruksikan Claude untuk menjaga respons tetap singkat secara default. Untuk styles kustom, penggunaan output token tergantung pada apa yang instruksi Anda katakan kepada Claude untuk diproduksi.

128 

129<h2 id="comparisons-to-related-features">

130 Perbandingan dengan fitur terkait

131</h2>

132 

133Beberapa fitur menyesuaikan perilaku Claude Code. Output styles mengubah instruksi default Claude Code dan berlaku untuk setiap respons. Yang lain menambahkan instruksi tanpa mengubah default, atau membatasi mereka ke tugas tertentu.

134 

135| Fitur | Cara kerjanya | Gunakan ketika |

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

137| Output styles | Mengubah instruksi default Claude Code | Anda menginginkan peran, nada, atau format respons default yang berbeda setiap giliran |

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

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

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

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

142 224 

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

144 Sumber daya terkait226 Sumber daya terkait

overview.md +2 −1

Details

226 226 

227Selain permukaan [Terminal](/docs/id/quickstart), [VS Code](/docs/id/vs-code), [JetBrains](/docs/id/jetbrains), [Desktop](/docs/id/desktop), dan [Web](/docs/id/claude-code-on-the-web) di atas, Claude Code terintegrasi dengan alur kerja CI/CD, obrolan, dan browser:227Selain permukaan [Terminal](/docs/id/quickstart), [VS Code](/docs/id/vs-code), [JetBrains](/docs/id/jetbrains), [Desktop](/docs/id/desktop), dan [Web](/docs/id/claude-code-on-the-web) di atas, Claude Code terintegrasi dengan alur kerja CI/CD, obrolan, dan browser:

228 228 

229| Saya ingin... | Opsi terbaik |229| Apa yang ingin saya lakukan | Opsi terbaik |

230| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |230| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |

231| Lanjutkan sesi lokal dari ponsel atau perangkat lain | [Remote Control](/docs/id/remote-control) |231| Lanjutkan sesi lokal dari ponsel atau perangkat lain | [Remote Control](/docs/id/remote-control) |

232| Dorong acara dari Telegram, Discord, iMessage, atau webhook saya sendiri ke dalam sesi | [Channels](/docs/id/channels) |232| Dorong acara dari Telegram, Discord, iMessage, atau webhook saya sendiri ke dalam sesi | [Channels](/docs/id/channels) |


247* [Quickstart](/docs/id/quickstart): berjalan melalui tugas nyata pertama Anda, dari menjelajahi basis kode hingga melakukan perbaikan247* [Quickstart](/docs/id/quickstart): berjalan melalui tugas nyata pertama Anda, dari menjelajahi basis kode hingga melakukan perbaikan

248* [Simpan instruksi dan memori](/docs/id/memory): berikan Claude instruksi persisten dengan file CLAUDE.md dan memori otomatis248* [Simpan instruksi dan memori](/docs/id/memory): berikan Claude instruksi persisten dengan file CLAUDE.md dan memori otomatis

249* [Alur kerja umum](/docs/id/common-workflows) dan [praktik terbaik](/docs/id/best-practices): pola untuk mendapatkan hasil maksimal dari Claude Code249* [Alur kerja umum](/docs/id/common-workflows) dan [praktik terbaik](/docs/id/best-practices): pola untuk mendapatkan hasil maksimal dari Claude Code

250* [Claude Academy](https://academy.claude.com/): kursus gratis dengan kecepatan sendiri, termasuk [Claude Code 101](https://academy.claude.com/courses/claude-code-101) dan [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action)

250* [Sebuah harness untuk setiap tugas](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code): bagaimana tim Claude Code menggunakan [dynamic workflows](/docs/id/workflows) untuk mengorkestra subagen dalam skala besar251* [Sebuah harness untuk setiap tugas](https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code): bagaimana tim Claude Code menggunakan [dynamic workflows](/docs/id/workflows) untuk mengorkestra subagen dalam skala besar

251* [Pengaturan](/docs/id/settings): sesuaikan Claude Code untuk alur kerja Anda252* [Pengaturan](/docs/id/settings): sesuaikan Claude Code untuk alur kerja Anda

252* [Pemecahan masalah](/docs/id/troubleshooting): solusi untuk masalah umum253* [Pemecahan masalah](/docs/id/troubleshooting): solusi untuk masalah umum

Details

267 267 

268Ketika rencana siap, Claude menyajikannya dan menanyakan cara melanjutkan. Dari prompt itu Anda dapat memilih:268Ketika rencana siap, Claude menyajikannya dan menanyakan cara melanjutkan. Dari prompt itu Anda dapat memilih:

269 269 

270* **Ya, dan gunakan mode auto**: setujui dan mulai dalam [mode auto](#eliminate-prompts-with-auto-mode). Ketika mode auto tidak tersedia, opsi ini berbunyi **Ya, auto-accept edits**. Jika Anda memulai sesi dengan bypass permissions diaktifkan, opsi berbunyi **Ya, dan beralih ke BYPASS PERMISSIONS (tidak ada prompt lebih lanjut) untuk sesi ini** sebagai gantinya.270* **Ya, dan gunakan mode auto**: setujui dan mulai dalam [mode auto](#eliminate-prompts-with-auto-mode). Jika mode auto tidak [tersedia untuk sesi Anda](#eliminate-prompts-with-auto-mode), misalnya karena organisasi Anda mematikannya, opsi ini berbunyi **Ya, auto-accept edits**. Jika Anda memulai sesi dengan bypass permissions diaktifkan, opsi berbunyi **Ya, dan beralih ke BYPASS PERMISSIONS (tidak ada prompt lebih lanjut) untuk sesi ini** sebagai gantinya.

271* **Ya, secara manual setujui pengeditan**: setujui dan tinjau setiap pengeditan secara individual.271* **Ya, secara manual setujui pengeditan**: setujui dan tinjau setiap pengeditan secara individual.

272* **Tidak, terus merencanakan**: tetap dalam mode rencana dan beri tahu Claude apa yang harus diubah.272* **Tidak, terus merencanakan**: tetap dalam mode rencana dan beri tahu Claude apa yang harus diubah.

273 273 


457 457 

458Batas tidak disimpan sebagai aturan. Pengklasifikasi membaca ulang mereka dari transkrip pada setiap pemeriksaan, jadi batas dapat hilang jika [pemadatan konteks](/docs/id/costs#reduce-token-usage) menghapus pesan yang menyatakannya. Untuk jaminan keras, tambahkan [aturan deny](/docs/id/permissions#permission-rule-syntax) sebagai gantinya.458Batas tidak disimpan sebagai aturan. Pengklasifikasi membaca ulang mereka dari transkrip pada setiap pemeriksaan, jadi batas dapat hilang jika [pemadatan konteks](/docs/id/costs#reduce-token-usage) menghapus pesan yang menyatakannya. Untuk jaminan keras, tambahkan [aturan deny](/docs/id/permissions#permission-rule-syntax) sebagai gantinya.

459 459 

460<h3 id="approvals-you-state-in-conversation">

461 Persetujuan yang Anda nyatakan dalam percakapan

462</h3>

463 

464Jika Anda memberi tahu Claude bahwa tindakan yang diblokir diizinkan, pengklasifikasi membaca itu sebagai persetujuan Anda dan dapat menghapus blok. Cara Anda merumuskannya memutuskan apakah tindakan berjalan, dan seberapa jauh persetujuan mencapai:

465 

466* **Beri nama tindakan dan spesifikasinya**: pesan Anda harus menyebutkan tindakan dan hal spesifik yang membuatnya berbahaya, seperti cabang dorong paksa. Menyebutkan verba saja tidak menghapus apa pun, jadi "Anda dapat dorong paksa" membiarkan blok tetap ada.

467* **Harapkan itu mencakup satu tindakan**: persetujuan mencakup tindakan destruktif yang Anda sebutkan, jadi tindakan kemudian diblokir lagi kecuali Anda memberikan persetujuan sebagai berdiri. Untuk berhenti menyetujui pola rutin satu tindakan pada satu waktu, tambahkan ke [`autoMode.allow`](/docs/id/auto-mode-config#override-the-block-and-allow-rules).

468* **Beberapa blok tetap ada**: [urutan preseden pengklasifikasi](/docs/id/auto-mode-config#override-the-block-and-allow-rules) menetapkan blok mana yang dapat dicapai persetujuan Anda. Untuk menjalankan langkah yang tidak akan dihapus, [tinggalkan mode otomatis](#switch-permission-modes) dan jawab permintaan izin.

469 

460<h3 id="when-auto-mode-falls-back">470<h3 id="when-auto-mode-falls-back">

461 Ketika mode otomatis kembali471 Ketika mode otomatis kembali

462</h3>472</h3>


510 1. Sebelum subagen dimulai, deskripsi tugas yang didelegasikan dievaluasi, jadi tugas yang terlihat berbahaya diblokir pada waktu spawn.520 1. Sebelum subagen dimulai, deskripsi tugas yang didelegasikan dievaluasi, jadi tugas yang terlihat berbahaya diblokir pada waktu spawn.

511 2. Sementara subagen berjalan, setiap tindakannya melalui pengklasifikasi dengan aturan yang sama seperti sesi induk, dan `permissionMode` apa pun dalam frontmatter subagen diabaikan.521 2. Sementara subagen berjalan, setiap tindakannya melalui pengklasifikasi dengan aturan yang sama seperti sesi induk, dan `permissionMode` apa pun dalam frontmatter subagen diabaikan.

512 3. Ketika subagen selesai, pengklasifikasi meninjau pekerjaannya dan laporan akhirnya sebelum induk membaca laporan. Ketika pengklasifikasi menandai pekerjaan atau laporan subagen, atau pemeriksaan keselamatan API terpisah menolak tinjauan, laporan masih disampaikan, diawali dengan peringatan keamanan. Ketika pengklasifikasi tidak tersedia untuk tinjauan, laporan tiba dengan catatan untuk memverifikasi pekerjaan subagen sebelum bertindak atas dasar itu.522 3. Ketika subagen selesai, pengklasifikasi meninjau pekerjaannya dan laporan akhirnya sebelum induk membaca laporan. Ketika pengklasifikasi menandai pekerjaan atau laporan subagen, atau pemeriksaan keselamatan API terpisah menolak tinjauan, laporan masih disampaikan, diawali dengan peringatan keamanan. Ketika pengklasifikasi tidak tersedia untuk tinjauan, laporan tiba dengan catatan untuk memverifikasi pekerjaan subagen sebelum bertindak atas dasar itu.

513 

514 Langkah 1 memerlukan Claude Code v2.1.178 atau lebih baru. Versi sebelumnya menerapkan pengklasifikasi pada langkah 2 dan 3, tetapi tidak mengevaluasi deskripsi tugas sebelum subagen dimulai.

515 </Accordion>523 </Accordion>

516 524 

517 <Accordion title="Biaya dan latensi">525 <Accordion title="Biaya dan latensi">


662 670 

663Claude Code juga memperlakukan glob atau garis miring di bawah variabel shell, seperti `rm -rf "$DIR"/*`, sebagai penghapusan jalur kritis, karena perintah menjadi penghapusan dari akar filesystem ketika variabel kosong.671Claude Code juga memperlakukan glob atau garis miring di bawah variabel shell, seperti `rm -rf "$DIR"/*`, sebagai penghapusan jalur kritis, karena perintah menjadi penghapusan dari akar filesystem ketika variabel kosong.

664 672 

673Prompt untuk kasus variabel ini menamai `rm` yang ditandai dan mengatakan cara menulis ulangnya sehingga pemeriksaan lulus:

674 

675* Untuk variabel seperti `$DIR`, lindungi setiap ekspansi sehingga shell berhenti dengan kesalahan ketika variabel tidak diatur atau kosong, seperti dalam `rm -rf "${DIR:?}"/*`, atau gunakan jalur literal

676* Untuk variabel yang biasanya diatur, seperti `$HOME`, gunakan jalur literal

677 

678Penghapusan yang ekspansinya semuanya dilindungi dengan cara itu bukan penghapusan jalur kritis, jadi dalam mode `bypassPermissions` itu berjalan tanpa prompt.

679 

665Menyembunyikan penghapusan di dalam subshell dengan `(...)`, grup brace dengan `{ ...; }`, substitusi perintah dengan `$(...)` atau backtick, atau substitusi proses dengan `<(...)`, tidak melewati pemeriksaan. Claude Code menemukan penghapusan jalur kritis apakah itu berada di dalam bentuk bersarang, seperti dalam `(rm -rf ~)` atau `echo "$(rm -rf ~)"`, atau di tempat lain dalam perintah yang sama.680Menyembunyikan penghapusan di dalam subshell dengan `(...)`, grup brace dengan `{ ...; }`, substitusi perintah dengan `$(...)` atau backtick, atau substitusi proses dengan `<(...)`, tidak melewati pemeriksaan. Claude Code menemukan penghapusan jalur kritis apakah itu berada di dalam bentuk bersarang, seperti dalam `(rm -rf ~)` atau `echo "$(rm -rf ~)"`, atau di tempat lain dalam perintah yang sama.

666 681 

667<h3 id="remove-item-in-powershell">682<h3 id="remove-item-in-powershell">

permissions.md +103 −111

Details

26 26 

27Sebelum v2.1.211, Claude Code selalu menyimpan aturan di direktori awal, jadi persetujuan yang diberikan di worktree atau subdirektori tidak berlaku untuk sisa repositori. Aturan yang disimpan versi sebelumnya di subdirektori atau worktree masih berlaku untuk sesi yang dimulai di sana.27Sebelum v2.1.211, Claude Code selalu menyimpan aturan di direktori awal, jadi persetujuan yang diberikan di worktree atau subdirektori tidak berlaku untuk sisa repositori. Aturan yang disimpan versi sebelumnya di subdirektori atau worktree masih berlaku untuk sesi yang dimulai di sana.

28 28 

29Kadang-kadang prompt izin hanya menawarkan persetujuan satu kali, tanpa opsi "jangan tanya lagi" dan tanpa opsi untuk mengizinkan tindakan untuk sisa sesi. Claude Code menawarkan opsi-opsi itu hanya ketika prompt dapat menunjukkan kepada Anda semua yang akan mereka izinkan, jadi aturan yang Anda simpan dari prompt mencakup hanya apa yang dinamai opsinya.29Kadang-kadang prompt izin hanya menawarkan persetujuan satu kali, tanpa opsi "jangan tanya lagi" dan tanpa opsi untuk mengizinkan tindakan untuk sisa sesi. Claude Code menawarkan opsi-opsi itu hanya ketika prompt dapat menunjukkan kepada Anda semua yang akan mereka izinkan, jadi aturan yang Anda simpan dari prompt mencakup hanya apa yang dinamai opsinya. Ketika prompt hanya menawarkan persetujuan satu kali, setujui tindakan sekali, atau tambahkan aturan sendiri di [`/permissions`](#manage-permissions).

30 

31Ketika direktori tempat Anda memulai Claude Code adalah apa yang membuat label opsi terlalu panjang, Claude Code mempersingkatnya dalam label, mengganti direktori home Anda dengan `~` dan kemudian akhir jalur dengan `…`, dan menyimpan opsi. Anda masih menyimpan aturan yang sama. Claude Code menghilangkan opsi dalam tiga kasus:

32 

33* **Perintah atau edit:** terlalu besar untuk ditampilkan sepenuhnya.

34* **Perintah atau jalur yang akan dicakup aturan:** label tidak dapat menampung semuanya.

35* **Direktori awal terlalu panjang, tidak dipersingkat:** berisi karakter yang tidak dapat ditampilkan Claude Code dengan aman, atau bahkan awalnya tidak sesuai.

36 

37Setujui tindakan sekali, atau tambahkan aturan sendiri di [`/permissions`](#manage-permissions).

38 30 

39<h3 id="add-a-comment-when-you-answer-a-permission-prompt">31<h3 id="add-a-comment-when-you-answer-a-permission-prompt">

40 Tambahkan komentar ketika Anda menjawab prompt izin32 Tambahkan komentar ketika Anda menjawab prompt izin


224 216 

225Aturan izin menerima glob nama alat hanya setelah awalan literal `mcp__<server>__`. Segmen server harus bebas glob sehingga aturan menamai server spesifik yang Anda konfigurasi. `mcp__puppeteer__*` cocok dengan setiap alat dari server `puppeteer`, dan `mcp__github__get_*` cocok dengan alat `get_` miliknya. Glob izin yang tidak berlabuh seperti `"*"`, `"B*"`, atau `"mcp__*"` dilewati dengan peringatan dan tidak secara otomatis menyetujui apa pun.217Aturan izin menerima glob nama alat hanya setelah awalan literal `mcp__<server>__`. Segmen server harus bebas glob sehingga aturan menamai server spesifik yang Anda konfigurasi. `mcp__puppeteer__*` cocok dengan setiap alat dari server `puppeteer`, dan `mcp__github__get_*` cocok dengan alat `get_` miliknya. Glob izin yang tidak berlabuh seperti `"*"`, `"B*"`, atau `"mcp__*"` dilewati dengan peringatan dan tidak secara otomatis menyetujui apa pun.

226 218 

227Aturan penolakan atau tanya yang nama alatnya tidak cocok dengan alat yang dikenal menghasilkan peringatan startup untuk menangkap kesalahan ketik. Nama alat yang berisi `_` atau `*` dikecualikan dari pemeriksaan.219Aturan penolakan atau tanya yang nama alatnya tidak cocok dengan alat yang dikenal menghasilkan peringatan startup untuk menangkap kesalahan ketik. Nama alat yang berisi `_` atau `*` dikecualikan dari pemeriksaan, dan begitu juga nama alat yang telah dihapus Claude Code, seperti `TaskOutput`.

228 220 

229Label yang ditampilkan untuk alat dalam transkrip dan dialog izin dapat berbeda dari nama kanoniknya. Misalnya, alat yang diberi label `Stop Task` dalam transkrip memiliki nama kanonik `TaskStop`. Aturan izin dan [pencocokan hook](/docs/id/hooks) tidak cocok dengan label, jadi aturan yang ditulis sebagai `Stop Task` tidak cocok. Untuk aturan penolakan dan tanya, peringatan startup di atas menangkap ketidaksesuaian. Gunakan nama kanonik yang tercantum dalam [referensi alat](/docs/id/tools-reference).221Label yang ditampilkan untuk alat dalam transkrip dan dialog izin dapat berbeda dari nama kanoniknya. Misalnya, alat yang diberi label `Stop Task` dalam transkrip memiliki nama kanonik `TaskStop`. Aturan izin dan [pencocokan hook](/docs/id/hooks) tidak cocok dengan label, jadi aturan yang ditulis sebagai `Stop Task` tidak cocok. Untuk aturan penolakan dan tanya, peringatan startup di atas menangkap ketidaksesuaian. Gunakan nama kanonik yang tercantum dalam [referensi alat](/docs/id/tools-reference).

230 222 


236 Bash228 Bash

237</h3>229</h3>

238 230 

239Aturan Bash mencocokkan seluruh teks perintah, dengan `*` mewakili teks apa pun. [Pola wildcard](#wildcard-patterns) menunjukkan perintah mana yang cocok dengan setiap bentuk aturan dan di mana menempatkan `*`. Sisa bagian ini mencakup cara Claude Code mencocokkan perintah gabungan dan pembungkus, apa yang tidak dicocokkan aturan, perintah hanya baca, dan pengalihan.231Aturan Bash cocok dengan seluruh teks perintah, dengan `*` mewakili teks apa pun. [Pola wildcard](#wildcard-patterns) menunjukkan perintah mana yang cocok dengan setiap bentuk aturan dan di mana menempatkan `*`. Bagian lainnya mencakup cara Claude Code mencocokkan perintah gabungan dan pembungkus, apa yang tidak cocok dengan aturan, perintah baca-saja, dan pengalihan.

240 232 

241<h4 id="compound-commands">233<h4 id="compound-commands">

242 Perintah gabungan234 Perintah gabungan

243</h4>235</h4>

244 236 

245<Tip>237<Tip>

246 Claude Code menyadari operator shell, jadi aturan seperti `Bash(safe-cmd *)` tidak akan memberinya izin untuk menjalankan perintah `safe-cmd && other-cmd`. Pemisah perintah yang dikenali adalah `&&`, `||`, `;`, `|`, `|&`, `&`, dan baris baru. Aturan harus mencocokkan setiap subperintah secara independen.238 Claude Code menyadari operator shell, jadi aturan seperti `Bash(safe-cmd *)` tidak akan memberinya izin untuk menjalankan perintah `safe-cmd && other-cmd`. Pemisah perintah yang dikenali adalah `&&`, `||`, `;`, `|`, `|&`, `&`, dan baris baru. Aturan harus cocok dengan setiap subperintah secara independen.

247</Tip>239</Tip>

248 240 

249Aturan deny dan ask berlaku ketika subperintah apa pun mencocokkannya, termasuk perintah yang bersarang di dalam subshell, substitusi perintah, atau badan alur kontrol seperti loop `for`. Aturan ask seperti `Bash(git clean *)` masih meminta Anda untuk `cd /tmp && git clean -f` atau `echo "$(git clean -f)"`, bahkan dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode).241Aturan tolak dan tanya berlaku ketika subperintah apa pun cocok dengan mereka, termasuk perintah yang bersarang di dalam subshell, substitusi perintah, atau badan alur kontrol seperti loop `for`. Aturan tanya seperti `Bash(git clean *)` masih meminta Anda untuk `cd /tmp && git clean -f` atau `echo "$(git clean -f)"`, bahkan dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode).

250 242 

251Ketika `&&` atau `||` tidak memiliki apa pun setelahnya, seperti dalam `npm test &&`, Claude Code memperlakukan perintah sebagai tidak dapat diurai dan tidak membaginya menjadi subperintah untuk pencocokan aturan allow, jadi aturan seperti `Bash(npm *)` tidak menyetujuinya.243Ketika `&&` atau `||` tidak memiliki apa pun setelahnya, seperti dalam `npm test &&`, Claude Code memperlakukan perintah sebagai tidak dapat diurai dan tidak membaginya menjadi subperintah untuk pencocokan aturan izin, jadi aturan seperti `Bash(npm *)` tidak menyetujuinya.

252 244 

253Ketika Anda menyetujui perintah gabungan dengan "Ya, jangan tanya lagi", Claude Code menyimpan aturan terpisah untuk setiap subperintah yang memerlukan persetujuan, bukan satu aturan untuk string gabungan lengkap. Misalnya, menyetujui `git status && npm test` menyimpan aturan untuk `npm test`, jadi invokasi `npm test` di masa depan dikenali terlepas dari apa yang mendahului `&&`. Subperintah seperti `cd` ke subdirektori menghasilkan aturan Read mereka sendiri untuk jalur itu. Hingga 5 aturan dapat disimpan untuk satu perintah gabungan.245Ketika Anda menyetujui perintah gabungan dengan "Ya, dan jangan tanya lagi", Claude Code menyimpan aturan terpisah untuk setiap subperintah yang memerlukan persetujuan, bukan satu aturan untuk string gabungan lengkap. Misalnya, menyetujui `git status && npm test` menyimpan aturan untuk `npm test`, jadi invokasi `npm test` di masa depan dikenali terlepas dari apa yang mendahului `&&`. Subperintah seperti `cd` ke direktori di luar direktori kerja Anda menghasilkan aturan Read mereka sendiri untuk jalur itu. Hingga 5 aturan dapat disimpan untuk satu perintah gabungan.

254 246 

255<h4 id="process-wrappers">247<h4 id="process-wrappers">

256 Pembungkus248 Pembungkus

257</h4>249</h4>

258 250 

259Sebelum mencocokkan aturan Bash, Claude Code menghilangkan serangkaian pembungkus tetap, jadi aturan seperti `Bash(npm test *)` juga mencocokkan `timeout 30 npm test`. Pembungkus yang dihilangkan adalah `timeout`, `time`, `nice`, `nohup`, dan `stdbuf`, ditambah shell builtin `command` dan `builtin`, dan `noglob` zsh. Masing-masing menjalankan argumennya sebagai perintah aktual. Dua bentuk terkait tidak dihilangkan: bentuk query `command -v`, yang mencari perintah daripada menjalankannya, dan `nocorrect` zsh.251Sebelum mencocokkan aturan Bash, Claude Code menghilangkan serangkaian pembungkus tetap, jadi aturan seperti `Bash(npm test *)` juga cocok dengan `timeout 30 npm test`. Pembungkus yang dihilangkan adalah `timeout`, `time`, `nice`, `nohup`, dan `stdbuf`, ditambah shell builtin `command` dan `builtin`, dan `noglob` zsh. Masing-masing menjalankan argumennya sebagai perintah aktual. Dua bentuk terkait tidak dihilangkan: bentuk kueri `command -v`, yang mencari perintah daripada menjalankannya, dan `nocorrect` zsh.

260 252 

261Claude Code juga menghilangkan penugasan terkemuka variabel lingkungan yang dikenal aman, jadi `Bash(npm test *)` mencocokkan `NODE_ENV=test npm test`. Aturan allow tidak akan mencocokkan melampaui penugasan variabel apa pun yang lain. Aturan deny atau ask mencocokkan melampaui penugasan terkemuka apa pun, jadi `Bash(rm *)` dalam deny masih mencocokkan `FOO=bar rm -rf tmp/`.253Claude Code juga menghilangkan penugasan terdepan dari variabel lingkungan tertentu yang dikenal aman, jadi `Bash(npm test *)` cocok dengan `NODE_ENV=test npm test`. Aturan izin tidak akan cocok melampaui penugasan variabel apa pun yang lain. Aturan tolak atau tanya cocok melampaui penugasan terdepan apa pun, jadi `Bash(rm *)` dalam tolak masih cocok dengan `FOO=bar rm -rf tmp/`.

262 254 

263`xargs` telanjang juga dihilangkan, jadi `Bash(grep *)` mencocokkan `xargs grep pattern`. Penghilangan hanya berlaku ketika `xargs` tidak memiliki flag: invokasi seperti `xargs -n1 grep pattern` dicocokkan sebagai perintah `xargs`, jadi aturan yang ditulis untuk perintah inner tidak mencakupnya.255`xargs` telanjang juga dihilangkan, jadi `Bash(grep *)` cocok dengan `xargs grep pattern`. Penghilangan hanya berlaku ketika `xargs` tidak memiliki flag: invokasi seperti `xargs -n1 grep pattern` dicocokkan sebagai perintah `xargs`, jadi aturan yang ditulis untuk perintah dalam tidak mencakupnya.

264 256 

265Daftar pembungkus ini bawaan dan tidak dapat dikonfigurasi. Pelari lingkungan pengembangan seperti `direnv exec`, `devbox run`, `mise exec`, `npx`, dan `docker exec` tidak ada dalam daftar. Karena alat ini menjalankan argumen mereka sebagai perintah, aturan seperti `Bash(devbox run *)` mencocokkan apa pun yang datang setelah `run`, termasuk `devbox run rm -rf .`. Untuk menyetujui pekerjaan di dalam pelari lingkungan, tulis aturan spesifik yang mencakup baik pelari maupun perintah inner, seperti `Bash(devbox run npm test)`. Tambahkan satu aturan per perintah inner yang ingin Anda izinkan.257Daftar pembungkus ini bawaan dan tidak dapat dikonfigurasi. Pelari lingkungan pengembangan seperti `direnv exec`, `devbox run`, `mise exec`, `npx`, dan `docker exec` tidak ada dalam daftar. Karena alat-alat ini menjalankan argumen mereka sebagai perintah, aturan seperti `Bash(devbox run *)` cocok dengan apa pun yang datang setelah `run`, termasuk `devbox run rm -rf .`. Untuk menyetujui pekerjaan di dalam pelari lingkungan, tulis aturan spesifik yang mencakup baik pelari maupun perintah dalam, seperti `Bash(devbox run npm test)`. Tambahkan satu aturan per perintah dalam yang ingin Anda izinkan.

266 258 

267Pembungkus exec seperti `watch`, `setsid`, `ionice`, dan `flock` tidak dapat disetujui otomatis oleh aturan awalan seperti `Bash(watch *)`, jadi dalam mode Manual mereka selalu meminta. Hal yang sama berlaku untuk `find` dengan `-exec` atau `-delete`: aturan `Bash(find *)` tidak mencakup bentuk ini. Untuk menyetujui invokasi spesifik, tulis aturan pencocokan tepat untuk string perintah lengkap.259Pembungkus Exec seperti `watch`, `setsid`, `ionice`, dan `flock` tidak dapat disetujui otomatis oleh aturan awalan seperti `Bash(watch *)`, jadi dalam mode Manual mereka selalu meminta. Hal yang sama berlaku untuk `find` dengan `-exec` atau `-delete`: aturan `Bash(find *)` tidak mencakup bentuk-bentuk ini. Untuk menyetujui invokasi spesifik, tulis aturan pencocokan tepat untuk string perintah lengkap.

268 260 

269<h4 id="bash-rule-limits">261<h4 id="bash-rule-limits">

270 Apa yang tidak dicocokkan aturan Bash262 Apa yang tidak cocok dengan aturan Bash

271</h4>263</h4>

272 264 

273Aturan Bash mencocokkan teks perintah yang ditulis Claude, setelah Claude Code membagi [perintah gabungan](#compound-commands) dan menghilangkan [pembungkus](#process-wrappers). Aturan tidak mencocokkan program yang sama yang dipanggil dalam bentuk berbeda, jadi aturan deny atau ask mencakup invokasi yang biasanya dihasilkan Claude dan bukan batas keamanan di sekitar program. Aturan ini dalam `deny` atau `ask` menghentikan bentuk pertama dan bukan yang lain:265Aturan Bash cocok dengan teks perintah yang ditulis Claude, setelah Claude Code membagi [perintah gabungan](#compound-commands) dan menghilangkan [pembungkus](#process-wrappers). Aturan ini tidak cocok dengan program yang sama yang dipanggil dalam bentuk berbeda, jadi aturan tolak atau tanya mencakup invokasi yang biasanya dihasilkan Claude dan bukan batas keamanan di sekitar program. Aturan-aturan ini dalam `deny` atau `ask` menghentikan bentuk pertama dan bukan yang lain:

274 266 

275| Aturan | Menghentikan | Tidak menghentikan |267| Aturan | Menghentikan | Tidak menghentikan |

276| :----------------- | :------------------------- | :---------------------------------------------------------------------------------------------------- |268| :----------------- | :------------------------- | :---------------------------------------------------------------------------------------------------- |


283Untuk penegakan sistem file dan jaringan yang tidak bergantung pada teks perintah, gunakan [sandboxing](/docs/id/sandboxing). Untuk memeriksa teks perintah lengkap dengan logika Anda sendiri sebelum dijalankan, gunakan hook [PreToolUse](#extend-permissions-with-hooks).275Untuk penegakan sistem file dan jaringan yang tidak bergantung pada teks perintah, gunakan [sandboxing](/docs/id/sandboxing). Untuk memeriksa teks perintah lengkap dengan logika Anda sendiri sebelum dijalankan, gunakan hook [PreToolUse](#extend-permissions-with-hooks).

284 276 

285<h4 id="read-only-commands">277<h4 id="read-only-commands">

286 Perintah hanya baca278 Perintah baca-saja

287</h4>279</h4>

288 280 

289Claude Code mengenali serangkaian perintah Bash bawaan sebagai hanya baca dan menjalankannya tanpa prompt izin di setiap mode, kecuali untuk jalur yang dijaga oleh [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories). Serangkaian ini mencakup `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd`, dan bentuk hanya baca dari `git`. Serangkaian ini tidak dapat dikonfigurasi; untuk memerlukan prompt untuk salah satu perintah ini, tambahkan aturan `ask` atau `deny` untuk itu.281Claude Code mengenali serangkaian perintah Bash bawaan sebagai baca-saja dan menjalankannya tanpa prompt izin dalam setiap mode, kecuali untuk jalur yang [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) lindungi. Himpunan ini mencakup `ls`, `cat`, `echo`, `pwd`, `head`, `tail`, `grep`, `find`, `wc`, `which`, `diff`, `stat`, `du`, `cd`, dan bentuk baca-saja dari `git`. Himpunan ini tidak dapat dikonfigurasi; untuk memerlukan prompt untuk salah satu perintah ini, tambahkan aturan `ask` atau `deny` untuk itu.

290 282 

291Pengalihan seperti `ls > out.txt` menambahkan pemeriksaan pada target. Lihat [Pengalihan](#redirections).283Pengalihan seperti `ls > out.txt` menambahkan pemeriksaan pada target. Lihat [Pengalihan](#redirections).

292 284 

293Pola glob yang tidak dikutip diizinkan untuk perintah yang setiap flagnya hanya baca, jadi `ls *.ts` dan `wc -l src/*.py` berjalan tanpa prompt.285Pola glob yang tidak dikutip diizinkan untuk perintah yang setiap flagnya baca-saja, jadi `ls *.ts` dan `wc -l src/*.py` berjalan tanpa prompt.

294 286 

295Dalam mode Manual, perintah dari serangkaian ini masih meminta dalam kasus ini:287Dalam mode Manual, perintah dari himpunan ini masih meminta dalam kasus-kasus ini:

296 288 

297* **Glob yang tidak dikutip untuk perintah dengan flag yang mampu menulis**: perintah dengan flag yang mampu menulis atau exec, seperti `find`, `sort`, `sed`, dan `git`, meminta ketika glob yang tidak dikutip ada, karena glob dapat berkembang menjadi flag seperti `-delete`.289* **Glob yang tidak dikutip untuk perintah dengan flag yang mampu menulis**: perintah dengan flag yang mampu menulis atau mampu exec, seperti `find`, `sort`, `sed`, dan `git`, meminta ketika glob yang tidak dikutip ada, karena glob dapat berkembang menjadi flag seperti `-delete`.

298* **`docker` yang menunjuk ke daemon lain**: bentuk hanya baca dari `docker` meminta ketika perintah membawa flag yang memilih daemon berbeda, seperti `-H`, `--context`, atau `--url` dan `--connection` Podman.290* **`docker` yang menunjuk ke daemon lain**: bentuk baca-saja dari `docker` meminta ketika perintah membawa flag yang memilih daemon berbeda, seperti `-H`, `--context`, atau `--url` dan `--connection` Podman.

299* **`file` dengan flag pembuka jalur**: `file` meminta ketika melewatkan `-m`/`--magic-file` atau `-f`/`--files-from`, karena flag tersebut membuat `file` membuka jalur yang dinamai dalam nilai flag.291* **`file` dengan flag pembuka jalur**: `file` meminta ketika melewatkan `-m`/`--magic-file` atau `-f`/`--files-from`, karena flag-flag ini membuat `file` membuka jalur yang dinamai dalam nilai flag.

300* **Jalur jaringan di Windows**: perintah yang argumennya mencakup jalur jaringan (UNC), seperti `\\server\share\file`, meminta karena mengakses jalur jaringan dapat mengirim kredensial Windows Anda ke host yang dinamainya. Pemeriksaan yang sama berlaku untuk perintah [alat PowerShell](/docs/id/tools-reference#powershell-tool).292* **Jalur jaringan di Windows**: perintah yang argumennya mencakup jalur jaringan (UNC), seperti `\\server\share\file`, meminta karena mengakses jalur jaringan dapat mengirim kredensial Windows Anda ke host yang dinamainya. Pemeriksaan yang sama berlaku untuk perintah [alat PowerShell](/docs/id/tools-reference#powershell-tool).

301* **Perintah yang analisisnya tidak dapat diurai**: ketika Claude Code tidak dapat sepenuhnya mengurai perintah, itu meminta persetujuan daripada memperlakukan perintah sebagai hanya baca. Perintah yang lebih panjang dari 10.000 karakter selalu meminta karena melebihi apa yang dianalisis.293* **Perintah yang analisisnya tidak dapat diurai**: ketika Claude Code tidak dapat sepenuhnya mengurai perintah, itu meminta persetujuan daripada memperlakukan perintah sebagai baca-saja. Perintah yang lebih panjang dari 10.000 karakter selalu meminta karena melebihi apa yang dianalisis.

302 294 

303`cd` ke jalur di dalam direktori kerja Anda atau [direktori tambahan](#working-directories) juga hanya baca, dan perintah gabungan seperti `cd packages/api && ls` berjalan tanpa prompt ketika setiap bagian memenuhi syarat sendiri. Kombinasi ini meminta bahkan ketika setiap bagian hanya baca:295`cd` ke jalur di dalam direktori kerja Anda atau [direktori tambahan](#working-directories) juga baca-saja, dan perintah gabungan seperti `cd packages/api && ls` berjalan tanpa prompt ketika setiap bagian memenuhi syarat sendiri. Kombinasi-kombinasi ini meminta bahkan ketika setiap bagian baca-saja:

304 296 

305* **`cd` dengan `git`**: meminta ketika `cd` berubah ke direktori yang berbeda, karena menjalankan `git` di direktori baru dapat menjalankan hook direktori itu. `cd` yang targetnya diselesaikan ke direktori kerja saat ini adalah no-op dan tidak memicu prompt.297* **`cd` dengan `git`**: meminta ketika `cd` berubah ke direktori berbeda, karena menjalankan `git` di direktori baru dapat menjalankan hook direktori itu. `cd` yang targetnya diselesaikan ke direktori kerja saat ini adalah no-op dan tidak memicu prompt.

306* **`cd` dengan pengalihan**: meminta ketika Claude Code tidak dapat menentukan direktori mana target pengalihan diselesaikan setelah `cd` berjalan. Perintah yang satu-satunya target pengalihan adalah `/dev/null`, seperti `cd app; grep -r pattern . 2>/dev/null`, tidak meminta, karena `/dev/null` tidak bergantung pada direktori kerja.298* **`cd` dengan pengalihan**: meminta ketika Claude Code tidak dapat menentukan direktori mana target pengalihan diselesaikan terhadap setelah `cd` berjalan. Perintah yang satu-satunya target pengalihannya adalah `/dev/null`, seperti `cd app; grep -r pattern . 2>/dev/null`, tidak meminta, karena `/dev/null` tidak bergantung pada direktori kerja.

307 299 

308<Warning>300<Warning>

309 Pola izin Bash yang mencoba membatasi argumen perintah rapuh. Misalnya, `Bash(curl http://github.com/ *)` dimaksudkan untuk membatasi curl ke URL GitHub, tetapi tidak akan mencocokkan variasi seperti:301 Pola izin Bash yang mencoba membatasi argumen perintah rapuh. Misalnya, `Bash(curl http://github.com/ *)` dimaksudkan untuk membatasi curl ke URL GitHub, tetapi tidak akan cocok dengan variasi seperti:

310 302 

311 * Opsi sebelum URL: `curl -X GET http://github.com/...`303 * Opsi sebelum URL: `curl -X GET http://github.com/...`

312 * Protokol berbeda: `curl https://github.com/...`304 * Protokol berbeda: `curl https://github.com/...`

313 * Pengalihan: `curl -L http://short.example.com/xyz`, yang mengalihkan ke GitHub305 * Pengalihan: `curl -L http://short.example.com/xyz`, yang dialihkan ke GitHub

314 * Variabel: `URL=http://github.com && curl $URL`306 * Variabel: `URL=http://github.com && curl $URL`

315 307 

316 Untuk penyaringan URL yang lebih andal, pertimbangkan:308 Untuk penyaringan URL yang lebih andal, pertimbangkan:

317 309 

318 * **Batasi alat jaringan Bash**: gunakan aturan deny untuk memblokir `curl`, `wget`, dan alat serupa, kemudian gunakan alat WebFetch dengan izin `WebFetch(domain:github.com)` untuk domain yang diizinkan. Aturan deny tidak mencocokkan program yang sama berdasarkan jalur atau di dalam `sh -c`, jadi pasangkan dengan [allowlist jaringan sandbox](/docs/id/sandboxing#network-isolation) ketika pembatasan harus berlaku; lihat [apa yang tidak dicocokkan aturan Bash](#bash-rule-limits)310 * **Batasi alat jaringan Bash**: gunakan aturan tolak untuk menghentikan `curl`, `wget`, dan perintah serupa, kemudian gunakan alat WebFetch dengan izin `WebFetch(domain:github.com)` untuk domain yang diizinkan. Aturan tolak tidak cocok dengan program yang sama berdasarkan jalur atau di dalam `sh -c`, jadi pasangkan dengan [daftar allowlist jaringan sandbox](/docs/id/sandboxing#network-isolation) ketika pembatasan harus berlaku; lihat [apa yang tidak cocok dengan aturan Bash](#bash-rule-limits)

319 * **Gunakan hook PreToolUse**: implementasikan hook yang memvalidasi URL dalam perintah Bash dan memblokir domain yang tidak diizinkan311 * **Gunakan hook PreToolUse**: implementasikan hook yang memvalidasi URL dalam perintah Bash dan memblokir domain yang tidak diizinkan

320 * **Tambahkan panduan CLAUDE.md**: jelaskan pola curl yang diizinkan Anda di `CLAUDE.md`. Ini membentuk apa yang Claude coba tetapi tidak memberlakukan batas, jadi pasangkan dengan salah satu opsi di atas312 * **Tambahkan panduan CLAUDE.md**: jelaskan pola curl yang diizinkan Anda dalam `CLAUDE.md`. Ini membentuk apa yang Claude coba tetapi tidak memberlakukan batas, jadi pasangkan dengan salah satu opsi di atas

321 313 

322 Perhatikan bahwa menggunakan WebFetch saja tidak mencegah akses jaringan. Jika Bash diizinkan, Claude masih dapat menggunakan `curl`, `wget`, atau alat lain untuk menjangkau URL apa pun.314 Perhatikan bahwa menggunakan WebFetch saja tidak mencegah akses jaringan. Jika Bash diizinkan, Claude masih dapat menggunakan `curl`, `wget`, atau alat lain untuk menjangkau URL apa pun.

323</Warning>315</Warning>


328 320 

329Ketika perintah mengalihkan output atau input, Claude Code memeriksa target pengalihan terhadap aturan file Anda seolah-olah Claude menulis atau membaca file itu secara langsung:321Ketika perintah mengalihkan output atau input, Claude Code memeriksa target pengalihan terhadap aturan file Anda seolah-olah Claude menulis atau membaca file itu secara langsung:

330 322 

331* **Pengalihan output**: untuk `> file`, `>> file`, atau `2> file`, pemeriksaan mencakup aturan allow dan deny `Edit` Anda, [jalur yang dilindungi](/docs/id/permission-modes#protected-paths), dan [direktori kerja](#working-directories). Aturan seperti `Bash(git commit *)` memungkinkan perintah, bukan target. Target yang dimulai dengan `~` atau berisi karakter glob memerlukan persetujuan Anda.323* **Pengalihan output**: untuk `> file`, `>> file`, atau `2> file`, pemeriksaan mencakup aturan izin `Edit` Anda, [jalur terlindungi](/docs/id/permission-modes#protected-paths), dan [direktori kerja](#working-directories). Aturan seperti `Bash(git commit *)` mengizinkan perintah, bukan target. Target yang dimulai dengan `~` atau berisi karakter glob memerlukan persetujuan Anda.

332* **Pengalihan input**: untuk `< file`, pemeriksaan mencakup aturan allow dan deny `Read` Anda dan direktori kerja. Target di luar direktori kerja memerlukan persetujuan Anda kecuali aturan allow mencakupnya. Target yang berisi pola glob, atau jalur relatif yang mengikuti `cd` dalam perintah yang sama, memerlukan persetujuan Anda bahkan ketika aturan allow mencakupnya. Claude Code memeriksa target input dalam v2.1.257 dan lebih baru.324* **Pengalihan input**: untuk `< file`, pemeriksaan mencakup aturan izin `Read` Anda dan direktori kerja. Target di luar direktori kerja memerlukan persetujuan Anda kecuali aturan izin mencakupnya. Target yang berisi pola glob, atau jalur relatif yang mengikuti `cd` dalam perintah yang sama, memerlukan persetujuan Anda bahkan ketika aturan izin mencakupnya. Claude Code memeriksa target input dalam v2.1.257 dan yang lebih baru.

333 325 

334Target tanpa file di belakangnya tidak diperiksa: `/dev/null`, bentuk file-descriptor seperti `2>&1` dan `<&3`, dan here-docs dan here-strings.326Target tanpa file di belakangnya tidak diperiksa: `/dev/null`, bentuk file-descriptor seperti `2>&1` dan `<&3`, dan here-docs dan here-strings.

335 327 

336Claude Code juga memeriksa file yang ditulis perintah `tee`, termasuk dalam pipeline seperti `make | tee build.log`. Pemeriksaan mencakup aturan allow dan deny `Edit` Anda, [jalur yang dilindungi](/docs/id/permission-modes#protected-paths), dan [direktori kerja](#working-directories). Aturan allow seperti `Bash(tee *)` tidak mencakup tujuan di luar direktori kerja. Claude Code memeriksa target `tee` dalam v2.1.269 dan lebih baru.328Claude Code juga memeriksa file yang ditulis perintah `tee`, termasuk dalam pipeline seperti `make | tee build.log`. Pemeriksaan mencakup aturan izin `Edit` Anda, [jalur terlindungi](/docs/id/permission-modes#protected-paths), dan [direktori kerja](#working-directories). Aturan izin seperti `Bash(tee *)` tidak mencakup tujuan di luar direktori kerja. Claude Code memeriksa target `tee` dalam v2.1.269 dan yang lebih baru.

337 329 

338<h3 id="powershell">330<h3 id="powershell">

339 PowerShell331 PowerShell

340</h3>332</h3>

341 333 

342Aturan izin PowerShell menggunakan bentuk yang sama dengan aturan Bash. Wildcard dengan `*` mencocokkan di posisi mana pun, akhiran `:*` setara dengan trailing ` *`, dan PowerShell telanjang atau `PowerShell(*)` mencocokkan setiap perintah. Konfigurasi ini memungkinkan perintah `Get-ChildItem` dan `git commit` sambil memblokir `Remove-Item`:334Aturan izin PowerShell menggunakan bentuk yang sama dengan aturan Bash. Wildcard dengan `*` cocok di posisi apa pun, akhiran `:*` setara dengan ` *` di belakang, dan `PowerShell` atau `PowerShell(*)` telanjang cocok dengan setiap perintah. Konfigurasi ini mengizinkan perintah `Get-ChildItem` dan `git commit` sambil memblokir `Remove-Item`:

343 335 

344```json theme={null}336```json theme={null}

345{337{


355}347}

356```348```

357 349 

358Alias umum dikanonikalisasi sebelum pencocokan. Aturan yang ditulis untuk nama cmdlet juga mencocokkan aliasnya, jadi `PowerShell(Get-ChildItem *)` mencocokkan `gci`, `ls`, dan `dir` juga. Pencocokan tidak peka huruf besar-kecil.350Alias umum dikanonisasi sebelum pencocokan. Aturan yang ditulis untuk nama cmdlet juga cocok dengan aliasnya, jadi `PowerShell(Get-ChildItem *)` cocok dengan `gci`, `ls`, dan `dir` juga. Pencocokan tidak peka huruf besar-kecil.

359 351 

360Claude Code mengurai AST PowerShell dan memeriksa setiap perintah dalam perintah gabungan secara independen. Operator pipeline `|`, pemisah pernyataan `;`, dan pada PowerShell 7+ operator rantai `&&` dan `||` membagi perintah gabungan menjadi subperintah. Aturan harus mencocokkan setiap subperintah agar perintah gabungan diizinkan.352Claude Code mengurai AST PowerShell dan memeriksa setiap perintah dalam perintah gabungan secara independen. Operator pipeline `|`, pemisah pernyataan `;`, dan pada PowerShell 7+ operator rantai `&&` dan `||` membagi perintah gabungan menjadi subperintah. Aturan harus cocok dengan setiap subperintah agar perintah gabungan diizinkan.

361 353 

362<h3 id="read-and-edit">354<h3 id="read-and-edit">

363 Read dan Edit355 Read dan Edit

364</h3>356</h3>

365 357 

366Untuk memblokir alat file Claude dari membaca file atau direktori, tambahkan aturan deny `Read` untuk jalurnya, seperti `Read(./.env)` atau `Read(./secrets/**)`; [Exclude sensitive files](/docs/id/settings-reference#exclude-sensitive-files) memiliki contoh siap tempel.358Untuk memblokir alat file Claude dari membaca file atau direktori, tambahkan aturan tolak `Read` untuk jalurnya, seperti `Read(./.env)` atau `Read(./secrets/**)`; [Exclude sensitive files](/docs/id/settings-reference#exclude-sensitive-files) memiliki contoh siap tempel.

367 359 

368Aturan `Edit` berlaku untuk semua alat bawaan yang mengedit file. Claude membuat upaya terbaik untuk menerapkan aturan `Read` ke semua alat bawaan yang membaca file seperti Grep dan Glob, ke penyebutan `@file` dalam prompt Anda, dan ke seleksi dan konteks file terbuka yang [IDE](/docs/id/vs-code#the-built-in-ide-mcp-server) yang terhubung bagikan dengan Claude.360Aturan `Edit` berlaku untuk semua alat bawaan yang mengedit file. Claude membuat upaya terbaik untuk menerapkan aturan `Read` ke semua alat bawaan yang membaca file seperti Grep dan Glob, ke penyebutan `@file` dalam prompt Anda, dan ke konteks file pilihan dan file terbuka yang [IDE](/docs/id/vs-code#the-built-in-ide-mcp-server) yang terhubung bagikan dengan Claude.

369 361 

370Aturan deny `Read` juga memblokir [alat Edit dan Write](/docs/id/errors#file-is-covered-by-a-read-deny-rule) pada jalur yang sama, termasuk membuat file baru di sana. NotebookEdit tidak tercakup, jadi tambahkan aturan deny `Edit` untuk jalur yang tidak boleh diubah alat apa pun. Pemeriksaan memerlukan Claude Code v2.1.208 atau lebih baru pada edit, dan v2.1.228 atau lebih baru pada write.362Aturan tolak `Read` juga memblokir alat [Edit dan Write](/docs/id/errors#file-is-covered-by-a-read-deny-rule) pada jalur yang sama, termasuk membuat file baru di sana. NotebookEdit tidak tercakup, jadi tambahkan aturan tolak `Edit` untuk jalur yang tidak boleh diubah alat apa pun. Pemeriksaan memerlukan Claude Code v2.1.208 atau lebih baru pada edit, dan v2.1.228 atau lebih baru pada write.

371 363 

372Claude Code memeriksa izin file terhadap aturan `Edit(path)` dan `Read(path)` saja. Jika Anda menulis aturan jalur untuk `Write`, `NotebookEdit`, `Glob`, atau alat `MultiEdit` warisan sebagai gantinya, Claude Code menerima aturan tetapi tidak pernah berkonsultasi dengannya, dan [memperingatkan saat startup](/docs/id/errors#is-not-matched-by-file-permission-checks), kecuali untuk aturan `Glob` yang dilewatkan dalam `--allowedTools`. Gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`, `NotebookEdit(docs/**)`, atau `MultiEdit(docs/**)`, dan `Read(docs/**)` sebagai pengganti `Glob(docs/**)`. Claude Code tidak memperingatkan tentang aturan nama alat tanpa jalur, seperti aturan deny untuk `Write`; itu mencocokkan aturan itu di tingkat alat di mana-mana. Memerlukan Claude Code v2.1.210 atau lebih baru.364Claude Code memeriksa izin file hanya terhadap aturan `Edit(path)` dan `Read(path)`. Jika Anda menulis aturan jalur untuk `Write`, `NotebookEdit`, `Glob`, atau alat `MultiEdit` warisan sebagai gantinya, Claude Code menerima aturan tetapi tidak pernah berkonsultasi dengannya, dan [memperingatkan saat startup](/docs/id/errors#is-not-matched-by-file-permission-checks), kecuali untuk aturan `Glob` yang dilewatkan dalam `--allowedTools`. Gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`, `NotebookEdit(docs/**)`, atau `MultiEdit(docs/**)`, dan `Read(docs/**)` sebagai pengganti `Glob(docs/**)`. Claude Code tidak memperingatkan tentang aturan nama alat tanpa jalur, seperti aturan tolak untuk `Write`; aturan itu cocok di mana-mana di tingkat alat. Memerlukan Claude Code v2.1.210 atau lebih baru.

373 365 

374<Warning>366<Warning>

375 Aturan deny Read dan Edit berlaku untuk alat file bawaan Claude, untuk perintah file yang Claude Code kenali di Bash, seperti `cat`, `head`, `tail`, `sed`, dan `tee`, dan untuk target pengalihan Bash [redirections](#redirections) seperti `> file` dan `< file`. Mereka tidak berlaku untuk perintah yang membaca file tanpa menamakannya, seperti `grep -r pattern .` dijalankan dari direktori yang menyimpan file, atau untuk subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file itu sendiri. Untuk penegakan tingkat OS yang memblokir semua proses dari mengakses jalur, [aktifkan sandbox](/docs/id/sandboxing).367 Aturan tolak Read dan Edit berlaku untuk alat file bawaan Claude, ke perintah file yang Claude Code kenali dalam Bash, seperti `cat`, `head`, `tail`, `sed`, dan `tee`, dan ke target pengalihan Bash [redirections](#redirections) seperti `> file` dan `< file`. Aturan-aturan ini tidak berlaku untuk perintah yang membaca file tanpa menamakannya, seperti `grep -r pattern .` dijalankan dari direktori yang menyimpan file, atau ke subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file sendiri. Untuk penegakan tingkat OS yang memblokir semua proses dari mengakses jalur, [aktifkan sandbox](/docs/id/sandboxing).

376</Warning>368</Warning>

377 369 

378Aturan Read dan Edit keduanya menggunakan sintaks pola [gitignore](https://git-scm.com/docs/gitignore) dengan empat jenis pola yang berbeda; untuk pola direktori segmen tunggal, kedalaman pencocokan juga bergantung pada jenis aturan, dijelaskan nanti di bagian ini:370Aturan Read dan Edit keduanya menggunakan sintaks pola [gitignore](https://git-scm.com/docs/gitignore) dengan empat jenis pola yang berbeda; untuk pola direktori segmen tunggal, kedalaman pencocokan juga bergantung pada jenis aturan, dijelaskan nanti di bagian ini:


380| Pola | Arti | Contoh | Cocok |372| Pola | Arti | Contoh | Cocok |

381| -------------------- | ----------------------------------------- | -------------------------------- | ----------------------------------------------------------------- |373| -------------------- | ----------------------------------------- | -------------------------------- | ----------------------------------------------------------------- |

382| `//path` | Jalur absolut dari akar sistem file | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |374| `//path` | Jalur absolut dari akar sistem file | `Read(//Users/alice/secrets/**)` | `/Users/alice/secrets/**` |

383| `~/path` | Jalur dari direktori home | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |375| `~/path` | Jalur dari direktori rumah | `Read(~/Documents/*.pdf)` | `/Users/alice/Documents/*.pdf` |

384| `/path` | Jalur relatif terhadap sumber pengaturan | `Edit(/src/**/*.ts)` | `<primary working directory>/src/**/*.ts` dalam pengaturan proyek |376| `/path` | Jalur relatif terhadap sumber pengaturan | `Edit(/src/**/*.ts)` | `<primary working directory>/src/**/*.ts` dalam pengaturan proyek |

385| `path` atau `./path` | Jalur relatif terhadap direktori saat ini | `Read(*.env)` | `<cwd>/*.env` |377| `path` atau `./path` | Jalur relatif terhadap direktori saat ini | `Read(*.env)` | `<cwd>/*.env` |

386 378 

387<Warning>379<Warning>

388 Pola seperti `/Users/alice/file` bukan jalur absolut. Garis miring tunggal terkemuka berlabuh di sumber pengaturan, bukan akar sistem file. Gunakan `//Users/alice/file` untuk jalur absolut.380 Pola seperti `/Users/alice/file` bukan jalur absolut. Garis miring tunggal terdepan berlabuh di sumber pengaturan, bukan akar sistem file. Gunakan `//Users/alice/file` untuk jalur absolut.

389</Warning>381</Warning>

390 382 

391Pola `/path` berlabuh di direktori yang terkait dengan sumber pengaturan yang mendefinisikannya, jadi aturan yang sama mencocokkan lokasi berbeda tergantung di mana Anda menempatkannya:383Pola `/path` berlabuh di direktori yang terkait dengan sumber pengaturan yang mendefinisikannya, jadi aturan yang sama cocok dengan lokasi berbeda tergantung di mana Anda menempatkannya:

392 384 

393| Aturan didefinisikan dalam | `/path` diselesaikan ke |385| Aturan didefinisikan dalam | `/path` diselesaikan ke |

394| :------------------------------------------------ | :--------------------------------- |386| :------------------------------------------------ | :--------------------------------- |


400 392 

401Aturan yang Anda tambahkan melalui `/permissions` mengikuti baris untuk file pengaturan yang Anda simpan.393Aturan yang Anda tambahkan melalui `/permissions` mengikuti baris untuk file pengaturan yang Anda simpan.

402 394 

403Aturan pengaturan lokal berlabuh di [primary working directory](#working-directories) sesi, bukan di akar repositori tempat Claude Code [menyimpan file](#permission-system) dalam v2.1.211 dan lebih baru. Dalam sesi yang dimulai di akar repositori, dua direktori sama; dalam sesi [worktree](/docs/id/worktrees), aturan bersama seperti `Edit(/src/**)` mencocokkan direktori `src/` worktree itu sendiri.395Aturan pengaturan lokal berlabuh di [direktori kerja utama](#working-directories) sesi, bukan di akar repositori tempat Claude Code [menyimpan file](#permission-system) dalam v2.1.211 dan yang lebih baru. Dalam sesi yang dimulai di akar repositori, dua direktori sama; dalam sesi [worktree](/docs/id/worktrees), aturan bersama seperti `Edit(/src/**)` cocok dengan direktori `src/` worktree itu sendiri.

404 396 

405Aturan deny seperti `Read(/secrets/**)` dalam pengaturan pengguna memblokir `~/.claude/secrets/**`, bukan direktori `secrets` dalam proyek Anda. Untuk menulis aturan dalam pengaturan pengguna yang berlaku di dalam setiap proyek, gunakan jalur absolut `//` atau jalur relatif home `~/` sebagai gantinya.397Aturan tolak seperti `Read(/secrets/**)` dalam pengaturan pengguna memblokir `~/.claude/secrets/**`, bukan direktori `secrets` dalam proyek Anda. Untuk menulis aturan dalam pengaturan pengguna yang berlaku di dalam setiap proyek, gunakan jalur absolut `//` atau jalur relatif rumah `~/` sebagai gantinya.

406 398 

407Di Windows, jalur dinormalisasi ke bentuk POSIX sebelum pencocokan. `C:\Users\alice` menjadi `/c/Users/alice`, jadi gunakan `//c/**/.env` untuk mencocokkan file `.env` di mana pun di drive itu. Untuk mencocokkan di semua drive, gunakan `//**/.env`.399Di Windows, jalur dinormalisasi ke bentuk POSIX sebelum pencocokan. `C:\Users\alice` menjadi `/c/Users/alice`, jadi gunakan `//c/**/.env` untuk mencocokkan file `.env` di mana pun di drive itu. Untuk mencocokkan di semua drive, gunakan `//**/.env`.

408 400 

409Contoh:401Contoh:

410 402 

411* `Edit(/docs/**)`: edit di `<primary working directory>/docs/`, bukan `/docs/` atau `<primary working directory>/.claude/docs/`403* `Edit(/docs/**)`: edit dalam `<primary working directory>/docs/`, bukan `/docs/` atau `<primary working directory>/.claude/docs/`

412* `Read(~/.zshrc)`: membaca `.zshrc` direktori home Anda404* `Read(~/.zshrc)`: membaca `.zshrc` direktori rumah Anda

413* `Edit(//tmp/scratch.txt)`: edit jalur absolut `/tmp/scratch.txt`405* `Edit(//tmp/scratch.txt)`: edit jalur absolut `/tmp/scratch.txt`

414* `Read(src/**)`: sebagai aturan allow, membaca dari `<current-directory>/src/` saja; sebagai aturan deny atau ask, mencocokkan direktori `src` di kedalaman apa pun di bawah direktori saat ini406* `Read(src/**)`: sebagai aturan izin, membaca dari `<current-directory>/src/` saja; sebagai aturan tolak atau tanya, cocok dengan direktori `src` di kedalaman apa pun di bawah direktori saat ini

415 407 

416Aturan hanya mencocokkan file di bawah jangkarannya; dalam batas itu, kedalaman pencocokan bergantung pada bentuk pola dan, untuk pola direktori segmen tunggal, jenis aturan, dijelaskan di bawah. Nama file telanjang mengikuti semantik gitignore dan mencocokkan di kedalaman apa pun, jadi `Read(.env)` dan `Read(**/.env)` setara:408Aturan hanya cocok dengan file di bawah jangkarnya; dalam batas itu, kedalaman pencocokan bergantung pada bentuk pola dan, untuk pola direktori segmen tunggal, jenis aturan, dijelaskan di bawah. Nama file telanjang mengikuti semantik gitignore dan cocok di kedalaman apa pun, jadi `Read(.env)` dan `Read(**/.env)` setara:

417 409 

418| Aturan deny | Memblokir | Tidak memblokir |410| Aturan tolak | Memblokir | Tidak memblokir |

419| --------------------------------- | -------------------------------------------------- | -------------------------------------------------- |411| --------------------------------- | -------------------------------------------------- | ---------------------------------------------- |

420| `Read(.env)` atau `Read(**/.env)` | `.env` apa pun di atau di bawah direktori saat ini | `.env` di direktori induk atau proyek lain |412| `Read(.env)` atau `Read(**/.env)` | `.env` apa pun di atau di bawah direktori saat ini | `.env` dalam direktori induk atau proyek lain |

421| `Read(//**/.env)` | `.env` apa pun di mana pun di sistem file | tidak ada; aturan ini berlabuh di akar sistem file |413| `Read(//**/.env)` | `.env` apa pun di mana pun di sistem file | tidak ada; aturan berlabuh di akar sistem file |

422 414 

423Pola relatif dengan segmen direktori tunggal, seperti `src/**`, mencocokkan di kedalaman berbeda tergantung pada jenis aturan:415Pola relatif dengan segmen direktori tunggal, seperti `src/**`, cocok di kedalaman berbeda tergantung pada jenis aturan:

424 416 

425* **Aturan allow**: `Edit(src/**)` mencocokkan hanya `<cwd>/src` dan file di bawahnya. Untuk memungkinkan nama direktori di kedalaman apa pun, tulis `Edit(**/src/**)`.417* **Aturan izin**: `Edit(src/**)` cocok hanya dengan `<cwd>/src` dan file di bawahnya. Untuk mengizinkan nama direktori di kedalaman apa pun, tulis `Edit(**/src/**)`.

426* **Aturan deny dan ask**: `Read(secrets/**)` mencocokkan direktori bernama `secrets` di kedalaman apa pun di bawah direktori saat ini, jadi aturan juga berlaku untuk salinan bersarang.418* **Aturan tolak dan tanya**: `Read(secrets/**)` cocok dengan direktori bernama `secrets` di kedalaman apa pun di bawah direktori saat ini, jadi aturan juga berlaku untuk salinan bersarang.

427 419 

428Setiap bentuk pola lainnya mencocokkan pada kedalaman yang sama di setiap jenis aturan: `Edit(/src/**)` dan `Edit(src/components/**)` mencocokkan hanya di lokasi berlabuhnya, sementara `Edit(**/src/**)` mencocokkan di kedalaman apa pun.420Setiap bentuk pola lainnya cocok di kedalaman yang sama dalam setiap jenis aturan: `Edit(/src/**)` dan `Edit(src/components/**)` cocok hanya di lokasi berlabuh mereka, sementara `Edit(**/src/**)` cocok di kedalaman apa pun.

429 421 

430Contoh berikut menunjukkan setiap bentuk pola terhadap proyek dengan direktori `src/` tingkat atas dan salinan bersarang di bawah `vendor/`:422Contoh berikut menunjukkan setiap bentuk pola terhadap proyek dengan direktori `src/` tingkat atas dan salinan bersarang di bawah `vendor/`:

431 423 


439 └── lib.js431 └── lib.js

440```432```

441 433 

442| Aturan | Cocok `src/app.ts` | Cocok `vendor/pkg/src/lib.js` |434| Aturan | Cocok dengan `src/app.ts` | Cocok dengan `vendor/pkg/src/lib.js` |

443| :------------------------------------------- | :----------------- | :---------------------------- |435| :--------------------------------------------- | :------------------------ | :----------------------------------- |

444| `Edit(src/**)` sebagai aturan allow | Ya | Tidak |436| `Edit(src/**)` sebagai aturan izin | Ya | Tidak |

445| `Edit(src/**)` sebagai aturan deny atau ask | Ya | Ya |437| `Edit(src/**)` sebagai aturan tolak atau tanya | Ya | Ya |

446| `Edit(/src/**)` dalam jenis aturan apa pun | Ya | Tidak |438| `Edit(/src/**)` dalam jenis aturan apa pun | Ya | Tidak |

447| `Edit(**/src/**)` dalam jenis aturan apa pun | Ya | Ya |439| `Edit(**/src/**)` dalam jenis aturan apa pun | Ya | Ya |

448 440 

449<Note>441<Note>

450 Dalam pola gitignore, `*` mencocokkan dalam segmen jalur tunggal dan dapat muncul di posisi mana pun dalam pola, sementara `**` mencocokkan di seluruh direktori.442 Dalam pola gitignore, `*` cocok dalam segmen jalur tunggal dan dapat muncul di posisi apa pun dalam pola, sementara `**` cocok di seluruh direktori.

451</Note>443</Note>

452 444 

453Ketika Anda menyetujui jalur file dengan "Ya, jangan tanya lagi", Claude Code menghindari karakter pola gitignore dalam jalur itu, seperti `[`, `]`, dan `*`, jadi aturan yang dihasilkan hanya mencocokkan jalur literal yang Anda setujui. Aturan yang Anda tulis sendiri tidak dihindari. Sebelum v2.1.202, Claude Code menyimpan jalur tanpa dihindari, jadi aturan yang dihasilkan untuk direktori bernama `[2024-06] Reports` dapat gagal mencocokkan jalurnya sendiri atau mencocokkan direktori saudara yang tidak diinginkan.445Ketika Anda menyetujui jalur file dengan "Ya, dan jangan tanya lagi", Claude Code menghindari karakter pola gitignore dalam jalur itu, seperti `[`, `]`, dan `*`, jadi aturan yang dihasilkan cocok hanya dengan jalur literal yang Anda setujui. Aturan yang Anda tulis sendiri tidak dihindari. Sebelum v2.1.202, Claude Code menyimpan jalur tanpa dihindari, jadi aturan yang dihasilkan untuk direktori bernama `[2024-06] Reports` dapat gagal mencocokkan jalurnya sendiri atau mencocokkan direktori saudara yang tidak dimaksudkan.

454 446 

455Anda tidak perlu menghindari tanda kurung dalam jalur, jadi `Edit(./Finance (2024)/**)` mencocokkan folder `Finance (2024)` seperti yang dieja.447Anda tidak perlu menghindari tanda kurung dalam jalur, jadi `Edit(./Finance (2024)/**)` cocok dengan folder `Finance (2024)` seperti yang dieja.

456 448 

457Aturan deny atau ask yang jalurnya tidak dapat digunakan sebagai pola gitignore masih menjaga jalur yang tepat itu. Aturan allow dengan pola yang tidak dapat digunakan tidak menyetujui apa pun.449Aturan tolak atau tanya yang jalurnya tidak dapat digunakan sebagai pola gitignore masih menjaga jalur itu yang tepat. Aturan izin dengan pola yang tidak dapat digunakan tidak menyetujui apa pun.

458 450 

459Aturan deny atau ask pola yang dimulai dengan `!` adalah negasi gitignore. Aturan ini mengukir jalur yang cocok dari aturan `path` atau `./path` yang tercantum sebelumnya. Dalam daftar `deny` satu file pengaturan, `Read(*.env)` diikuti oleh `Read(!sample.env)` memblokir setiap file yang namanya berakhir dengan `.env` di kedalaman apa pun, kecuali file bernama `sample.env`. Aturan `!` yang tercantum pertama tidak mengukir apa pun.451Pola tolak atau tanya yang dimulai dengan `!` adalah negasi gitignore. Aturan ini mengukir jalur yang cocok dari aturan `path` atau `./path` yang tercantum sebelumnya. Dalam daftar `deny` satu file pengaturan, `Read(*.env)` diikuti oleh `Read(!sample.env)` memblokir setiap file yang namanya berakhir dengan `.env` di kedalaman apa pun, kecuali file bernama `sample.env`. Aturan `!` yang tercantum pertama tidak mengukir apa pun.

460 452 

461Pengukiran hanya mencapai aturan dari sumber yang sama. `Read(!.env)` dalam pengaturan proyek atau dalam `--disallowedTools` tidak membatalkan `Read(./.env)` deny dari pengaturan yang dikelola atau file pengaturan lainnya.453Pengukiran mencapai hanya aturan dari sumber yang sama. `Read(!.env)` dalam pengaturan proyek atau dalam `--disallowedTools` tidak membatalkan tolak `Read(./.env)` dari pengaturan terkelola atau file pengaturan lain apa pun.

462 454 

463Dua batas mempersempit apa yang pola `!` dapat ukir:455Dua batas mempersempit apa yang dapat diukir pola `!`:

464 456 

465* Claude Code membaca pola `!` relatif terhadap direktori saat ini bahkan ketika `/`, `~/`, atau `//` mengikuti `!`, jadi pola tidak dapat menjangkau aturan yang berlabuh dengan salah satu awalan itu. `Read(!~/notes/public/**)` tidak mengukir apa pun dari `Read(~/notes/**)`.457* Claude Code membaca pola `!` relatif terhadap direktori saat ini bahkan ketika `/`, `~/`, atau `//` mengikuti `!`, jadi pola tidak dapat menjangkau aturan yang berlabuh dengan salah satu awalan itu. `Read(!~/notes/public/**)` tidak mengukir apa pun dari `Read(~/notes/**)`.

466* Pengukiran tidak dapat membuka kembali file di dalam direktori yang aturan blokir secara keseluruhan. Dengan `Read(secrets/**)` dan `Read(!secrets/public/**)`, Claude Code masih memblokir `secrets/public` bersama dengan sisa `secrets`.458* Pengukiran tidak dapat membuka kembali file di dalam direktori yang aturan blokir secara keseluruhan. Dengan `Read(secrets/**)` dan `Read(!secrets/public/**)`, Claude Code masih memblokir `secrets/public` bersama dengan sisa `secrets`.

467 459 

468Ketika Claude mengakses symlink, aturan izin memeriksa dua jalur: symlink itu sendiri dan file yang diselesaikannya. Aturan allow dan deny memperlakukan pasangan itu secara berbeda: aturan allow kembali ke meminta Anda, sementara aturan deny memblokir sepenuhnya.460Ketika Claude mengakses symlink, aturan izin memeriksa dua jalur: symlink itu sendiri dan file yang diselesaikannya. Aturan izin dan tolak memperlakukan pasangan itu berbeda: aturan izin kembali ke meminta Anda, sementara aturan tolak memblokir langsung.

469 461 

470* **Aturan allow**: berlaku hanya ketika jalur symlink dan targetnya mencocokkan. Symlink di dalam direktori yang diizinkan yang menunjuk ke luar masih meminta Anda.462* **Aturan izin**: berlaku hanya ketika jalur symlink dan targetnya cocok. Symlink di dalam direktori yang diizinkan yang menunjuk ke luar masih meminta Anda.

471* **Aturan deny**: berlaku ketika jalur symlink atau targetnya mencocokkan. Symlink yang menunjuk ke file yang ditolak itu sendiri ditolak. Misalnya, dengan `Read(./project/**)` diizinkan dan `Read(~/.ssh/**)` ditolak, symlink di `./project/key` menunjuk ke `~/.ssh/id_rsa` diblokir: target gagal aturan allow dan mencocokkan aturan deny.463* **Aturan tolak**: berlaku ketika jalur symlink atau targetnya cocok. Symlink yang menunjuk ke file yang ditolak ditolak sendiri. Misalnya, dengan `Read(./project/**)` diizinkan dan `Read(~/.ssh/**)` ditolak, symlink di `./project/key` yang menunjuk ke `~/.ssh/id_rsa` diblokir: target gagal aturan izin dan cocok dengan aturan tolak.

472 464 

473Pada macOS dan Linux, aturan deny atau ask yang ditulis melalui direktori yang disimlink dengan pola `//`, `~/`, atau `/` juga berlaku di lokasi nyata direktori. Misalnya, di macOS, di mana `/etc` diselesaikan ke `/private/etc`, `Read(//etc/**)` juga memblokir `/private/etc/hosts`. Sebelum v2.1.268, aturan deny atau ask yang ditulis melalui direktori yang disimlink tidak berlaku untuk jalur yang diberikan oleh lokasi nyatanya.465Di macOS dan Linux, aturan tolak atau tanya yang ditulis melalui direktori yang disymlink dengan pola `//`, `~/`, atau `/` juga berlaku di lokasi nyata direktori. Misalnya, di macOS, di mana `/etc` diselesaikan ke `/private/etc`, `Read(//etc/**)` juga memblokir `/private/etc/hosts`. Sebelum v2.1.268, aturan tolak atau tanya yang ditulis melalui direktori yang disymlink tidak berlaku pada jalur yang diberikan oleh lokasi nyatanya.

474 466 

475Ketika alat membuka file yang disetujui, Claude Code [mengkonfirmasi jalur masih diselesaikan ke lokasi yang pemeriksaan izin setujui](/docs/id/errors#refusing-after-a-symlink-changed).467Ketika alat membuka file yang disetujui, Claude Code [mengkonfirmasi jalur masih diselesaikan ke lokasi yang pemeriksaan izin setujui](/docs/id/errors#refusing-after-a-symlink-changed).

476 468 

477Grep dan Glob mencari direktori yang argumen `path` diselesaikan ke. Claude Code menerapkan aturan deny `Read` ke direktori itu.469Grep dan Glob mencari direktori yang argumen `path` diselesaikan. Claude Code menerapkan aturan tolak `Read` ke direktori itu.

478 470 

479<h3 id="webfetch">471<h3 id="webfetch">

480 WebFetch472 WebFetch

481</h3>473</h3>

482 474 

483Aturan WebFetch menggunakan awalan `domain:` dan mencocokkan terhadap nama host dari URL yang diminta. Pencocokan tidak peka huruf besar-kecil, mendukung wildcard `*`, dan menghilangkan titik trailing dari aturan dan nama host sehingga `example.com.` dan `example.com` diperlakukan sama.475Aturan WebFetch menggunakan awalan `domain:` dan cocok terhadap nama host URL yang diminta. Pencocokan tidak peka huruf besar-kecil, mendukung wildcard `*`, dan menghilangkan titik di belakang dari baik aturan maupun nama host sehingga `example.com.` dan `example.com` diperlakukan sama.

484 476 

485* `WebFetch(domain:example.com)` mencocokkan permintaan ke `example.com`477* `WebFetch(domain:example.com)` cocok dengan permintaan ke `example.com`

486* `WebFetch(domain:*.example.com)` mencocokkan subdomain apa pun di kedalaman apa pun, seperti `api.example.com` atau `a.b.example.com`, tetapi bukan `example.com` itu sendiri478* `WebFetch(domain:*.example.com)` cocok dengan subdomain apa pun di kedalaman apa pun, seperti `api.example.com` atau `a.b.example.com`, tetapi bukan `example.com` itu sendiri

487* `WebFetch(domain:*)` mencocokkan setiap domain. Ini bukan sama dengan aturan `WebFetch` telanjang; lihat [Allow or deny every fetch](#allow-or-deny-every-fetch)479* `WebFetch(domain:*)` cocok dengan setiap domain. Aturan ini tidak sama dengan aturan `WebFetch` telanjang; lihat [Allow or deny every fetch](#allow-or-deny-every-fetch)

488 480 

489Di posisi mana pun selain `*.` terkemuka atau `*` telanjang, wildcard mencocokkan hanya teks antara dua titik. `WebFetch(domain:example.*)` mencocokkan `example.org`, di mana `*` menjadi `org`, tetapi bukan `example.evil.com`, di mana `*` harus menjadi `evil.com` dan melintasi titik. Ini mencegah wildcard trailing dari mencocokkan domain yang dapat didaftarkan penyerang.481Di posisi apa pun selain `*.` terdepan atau `*` telanjang, wildcard cocok hanya dengan teks antara dua titik. `WebFetch(domain:example.*)` cocok dengan `example.org`, di mana `*` menjadi `org`, tetapi bukan `example.evil.com`, di mana `*` harus menjadi `evil.com` dan menyeberangi titik. Ini menjaga wildcard di belakang dari mencocokkan domain yang dapat didaftarkan penyerang.

490 482 

491Wildcard dalam aturan `WebFetch` memerlukan Claude Code v2.1.172 atau lebih baru untuk mencocokkan fetch.483Wildcard dalam aturan `WebFetch` memerlukan Claude Code v2.1.172 atau lebih baru untuk mencocokkan fetch.

492 484 

493<h4 id="allow-or-deny-every-fetch">485<h4 id="allow-or-deny-every-fetch">

494 Allow atau deny setiap fetch486 Izinkan atau tolak setiap fetch

495</h4>487</h4>

496 488 

497Aturan `WebFetch` telanjang adalah nama alat tanpa bagian `domain:`, seperti `"deny": ["WebFetch"]`. Keduanya dan `WebFetch(domain:*)` mencakup setiap URL, tetapi Claude Code menerapkannya secara berbeda, dan hanya bentuk `domain:` yang juga menambahkan domainnya ke [allowed or denied domain list](/docs/id/sandboxing#network-isolation) sandbox. Bagian itu mencantumkan bentuk wildcard yang sandbox hormati dan versi yang menambahkan `*` telanjang.489Aturan `WebFetch` telanjang adalah nama alat tanpa bagian `domain:`, seperti `"deny": ["WebFetch"]`. Baik itu maupun `WebFetch(domain:*)` mencakup setiap URL, tetapi Claude Code menerapkannya berbeda, dan hanya bentuk `domain:` yang juga menambahkan domainnya ke [daftar domain yang diizinkan atau ditolak](/docs/id/sandboxing#network-isolation) sandbox. Bagian itu mencantumkan bentuk wildcard yang dihormati sandbox dan versi yang menambahkan `*` telanjang.

498 490 

499Setiap baris menunjukkan apa yang aturan lakukan dalam daftar `allow` dan dalam daftar `deny`:491Setiap baris menunjukkan apa yang dilakukan aturan dalam daftar `allow` dan dalam daftar `deny`:

500 492 

501| Aturan | Dalam `allow` | Dalam `deny` |493| Aturan | Dalam `allow` | Dalam `deny` |

502| :------------------- | :----------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------ |494| :------------------- | :------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- |

503| `WebFetch` | Claude fetch tanpa meminta Anda. Tidak mengubah host mana yang perintah sandboxed dapat jangkau. | Claude Code menghapus alat `WebFetch`, jadi Claude tidak dapat fetch sama sekali. Tidak mengubah host mana yang perintah sandboxed dapat jangkau. |495| `WebFetch` | Claude fetch tanpa meminta Anda. Tidak mengubah host mana yang dapat dijangkau perintah sandboxed. | Claude Code menghapus alat `WebFetch`, jadi Claude tidak dapat fetch sama sekali. Tidak mengubah host mana yang dapat dijangkau perintah sandboxed. |

504| `WebFetch(domain:*)` | Claude fetch tanpa meminta Anda, dan perintah sandboxed dapat menjangkau host apa pun. | Claude Code menyimpan alat dan menolak setiap fetch, dan perintah sandboxed tidak dapat menjangkau host apa pun. |496| `WebFetch(domain:*)` | Claude fetch tanpa meminta Anda, dan perintah sandboxed dapat menjangkau host apa pun. | Claude Code menyimpan alat dan menolak setiap fetch, dan perintah sandboxed tidak dapat menjangkau host apa pun. |

505 497 

506Dua bentuk juga berbeda pada pembacaan [artifacts](/docs/id/artifacts), halaman yang alat Artifact terbitkan di claude.ai. Aturan deny atau ask `WebFetch` telanjang tidak berlaku untuk pembacaan tersebut. Aturan `domain:` yang mencakup `claude.ai` atau host konten `*.claudeusercontent.com`, seperti `WebFetch(domain:claude.ai)` atau `WebFetch(domain:*)`, menolak setiap pembacaan atau meminta sebelumnya. Aturan [`Artifact`](/docs/id/artifacts#disable-artifacts) melakukan hal yang sama.498Dua bentuk juga berbeda pada pembacaan [artifact](/docs/id/artifacts), halaman yang alat Artifact terbitkan di claude.ai. Aturan tolak atau tanya `WebFetch` telanjang tidak berlaku pada pembacaan itu. Aturan `domain:` yang mencakup `claude.ai` atau host konten `*.claudeusercontent.com`, seperti `WebFetch(domain:claude.ai)` atau `WebFetch(domain:*)`, menolak setiap pembacaan atau meminta sebelumnya. Aturan [`Artifact`](/docs/id/artifacts#disable-artifacts) melakukan hal yang sama.

507 499 

508Ketika aturan memblokir pembacaan, penolakan menamai aturan. Sebelum v2.1.268, aturan deny `WebFetch` telanjang memblokir setiap pembacaan artifact, dan aturan ask telanjang meminta sebelum setiap pembacaan.500Ketika aturan memblokir pembacaan, penolakan menamai aturan. Sebelum v2.1.268, aturan tolak `WebFetch` telanjang memblokir setiap pembacaan artifact, dan aturan tanya telanjang meminta sebelum setiap pembacaan.

509 501 

510Untuk membiarkan Claude fetch dengan bebas sambil menjaga allowlist sandbox seperti apa adanya, gunakan bentuk telanjang. `settings.json` ini melakukan itu:502Untuk membiarkan Claude fetch dengan bebas sambil menjaga daftar allowlist sandbox seperti apa adanya, gunakan bentuk telanjang. `settings.json` ini melakukan itu:

511 503 

512```json theme={null}504```json theme={null}

513{505{


517}509}

518```510```

519 511 

520Ketika Anda meminta Claude untuk fetch halaman, itu fetch tanpa prompt. Ketika Anda meminta itu menjalankan `curl` [sandboxed](/docs/id/sandboxing) terhadap host di luar allowlist sandbox, Claude Code masih meminta Anda untuk host itu, karena aturan telanjang tidak menambahkan host ke allowlist.512Ketika Anda meminta Claude untuk fetch halaman, itu fetch tanpa prompt. Ketika Anda meminta itu menjalankan `curl` [sandboxed](/docs/id/sandboxing) terhadap host di luar daftar allowlist sandbox, Claude Code masih meminta Anda untuk host itu, karena aturan telanjang tidak menambahkan host ke daftar allowlist.

521 513 

522Dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), Claude sebagai gantinya menamai host dalam [per-command allowed domains](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) perintah untuk classifier ditinjau.514Dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), Claude sebagai gantinya menamai host dalam [domain yang diizinkan per perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) perintah untuk pengklasifikasi ditinjau.

523 515 

524<h3 id="mcp">516<h3 id="mcp">

525 MCP517 MCP

526</h3>518</h3>

527 519 

528Aturan MCP menggunakan nama server seperti yang dikonfigurasi di Claude Code, secara opsional diikuti oleh nama alat dari server itu.520Aturan MCP menggunakan nama server seperti yang dikonfigurasi dalam Claude Code, secara opsional diikuti oleh nama alat dari server itu.

529 521 

530* `mcp__puppeteer` mencocokkan alat apa pun yang disediakan oleh server `puppeteer`522* `mcp__puppeteer` cocok dengan alat apa pun yang disediakan oleh server `puppeteer`

531* `mcp__puppeteer__*` menggunakan sintaks wildcard dan juga mencocokkan semua alat dari server `puppeteer`523* `mcp__puppeteer__*` menggunakan sintaks wildcard dan juga cocok dengan semua alat dari server `puppeteer`

532* `mcp__puppeteer__puppeteer_navigate` mencocokkan alat `puppeteer_navigate` yang disediakan oleh server `puppeteer`524* `mcp__puppeteer__puppeteer_navigate` cocok dengan alat `puppeteer_navigate` yang disediakan oleh server `puppeteer`

533 525 

534Jika organisasi Anda telah menetapkan alat [claude.ai connector](/docs/id/mcp#organization-controls-on-connector-tools) ke `ask` dan pengaturan itu mencapai Claude Code dalam sesi Anda, aturan allow untuk alat itu tidak berlaku: Claude Code meminta pada setiap panggilan, bahkan dalam mode `auto` dan `bypassPermissions`. Dalam mode `dontAsk`, yang tidak pernah meminta, Claude Code menolak panggilan sebagai gantinya. Alat dari konektor yang Claude Code ambil sendiri muncul sebagai `mcp__claude_ai_<server>__<tool>`.526Jika organisasi Anda telah menetapkan alat [claude.ai connector](/docs/id/mcp#organization-controls-on-connector-tools) ke `ask` dan pengaturan itu mencapai Claude Code dalam sesi Anda, aturan izin untuk alat itu tidak berlaku: Claude Code meminta pada setiap panggilan, bahkan dalam mode `auto` dan `bypassPermissions`. Dalam mode `dontAsk`, yang tidak pernah meminta, Claude Code menolak panggilan sebagai gantinya. Alat dari konektor yang Claude Code ambil sendiri muncul sebagai `mcp__claude_ai_<server>__<tool>`.

535 527 

536Dalam sesi [Cowork](https://claude.com/docs/cowork/overview) di aplikasi Claude Desktop, Claude menjalankan perintah shell melalui alat `mcp__workspace__bash` Cowork daripada alat `Bash` bawaan, dan Cowork juga menyediakan `mcp__workspace__web_fetch` untuk web fetch. Claude Code juga menerapkan aturan deny yang menamai seluruh alat `Bash` atau `WebFetch` ke alat Cowork ini, jadi aturan deny `Bash` yang dikelola menghentikan Claude dari menjalankan perintah shell di Cowork. Ketika Claude Code memblokir panggilan seperti itu, pesan menamai alat Cowork: `Permission to use mcp__workspace__bash has been denied.` Aturan allow tidak terbawa: Claude Code tidak pernah menerapkan aturan `Bash` allow ke `mcp__workspace__bash`.528Dalam sesi [Cowork](https://claude.com/docs/cowork/overview) di aplikasi Claude Desktop, Claude menjalankan perintah shell melalui alat `mcp__workspace__bash` Cowork daripada alat `Bash` bawaan, dan Cowork juga menyediakan `mcp__workspace__web_fetch` untuk web fetch. Claude Code juga menerapkan aturan tolak yang menamai seluruh alat `Bash` atau `WebFetch` ke alat Cowork ini, jadi aturan tolak `Bash` terkelola menghentikan Claude dari menjalankan perintah shell dalam Cowork. Ketika Claude Code memblokir panggilan seperti itu, pesan menamai alat Cowork: `Permission to use mcp__workspace__bash has been denied.` Aturan izin tidak terbawa: Claude Code tidak pernah menerapkan aturan izin `Bash` ke `mcp__workspace__bash`.

537 529 

538<h3 id="agent-subagents">530<h3 id="agent-subagents">

539 Agent (subagents)531 Agent (subagents)

540</h3>532</h3>

541 533 

542Gunakan aturan `Agent(AgentName)` untuk mengontrol [subagents](/docs/id/sub-agents) mana yang dapat digunakan Claude:534Gunakan aturan `Agent(AgentName)` untuk mengontrol [subagent](/docs/id/sub-agents) mana yang dapat digunakan Claude:

543 535 

544* `Agent(Explore)` mencocokkan subagent Explore536* `Agent(Explore)` cocok dengan subagent Explore

545* `Agent(Plan)` mencocokkan subagent Plan537* `Agent(Plan)` cocok dengan subagent Plan

546* `Agent(my-custom-agent)` mencocokkan subagent kustom bernama `my-custom-agent`538* `Agent(my-custom-agent)` cocok dengan subagent kustom bernama `my-custom-agent`

547 539 

548Tambahkan aturan ini ke array `deny` dalam pengaturan Anda atau gunakan flag CLI `--disallowedTools` untuk menonaktifkan agen tertentu. Untuk menonaktifkan agen Explore:540Tambahkan aturan-aturan ini ke array `deny` dalam pengaturan Anda atau gunakan flag CLI `--disallowedTools` untuk menonaktifkan agen spesifik. Untuk menonaktifkan agen Explore:

549 541 

550```json theme={null}542```json theme={null}

551{543{


559 Cd551 Cd

560</h3>552</h3>

561 553 

562Aturan `Cd` mengontrol direktori mana yang dapat dipindahkan oleh perintah [`/cd`](/docs/id/commands) ke sesi. `Cd` bukan alat yang dapat dipanggil model: Claude tidak dapat memanggilnya, dan aturan hanya berlaku ketika Anda menjalankan `/cd` sendiri.554Aturan `Cd` mengontrol direktori mana yang dapat dipindahkan perintah [`/cd`](/docs/id/commands) ke sesi. `Cd` bukan alat yang dapat dipanggil model: Claude tidak dapat memanggilnya, dan aturan berlaku hanya ketika Anda menjalankan `/cd` sendiri.

563 555 

564Aturan deny `Cd` telanjang menonaktifkan `/cd` sepenuhnya. Aturan deny `Cd(<path-pattern>)` memblokir target yang mencocokkan. Aturan deny memeriksa setiap ejaan target, termasuk setiap lompatan symlink yang diselesaikannya, jadi aturan yang ditulis untuk satu jalur juga memblokir target yang diselesaikan ke itu.556Aturan tolak `Cd` telanjang menonaktifkan `/cd` sepenuhnya. Aturan tolak `Cd(<path-pattern>)` memblokir target yang cocok. Aturan tolak memeriksa setiap ejaan target, termasuk setiap lompatan symlink yang diselesaikannya, jadi aturan yang ditulis untuk satu jalur juga memblokir target yang diselesaikan ke itu.

565 557 

566Menambahkan aturan allow `Cd` apa pun beralih `/cd` ke mode allowlist: direktori target yang diselesaikan harus mencocokkan salah satu aturan allow Anda, atau `/cd` menolak. Tanpa aturan `Cd` yang dikonfigurasi, `/cd` mempertahankan perilaku defaultnya dan meminta Anda untuk mempercayai direktori yang tidak dikenal.558Menambahkan aturan izin `Cd` apa pun beralih `/cd` ke mode daftar allowlist: direktori target yang diselesaikan harus cocok dengan salah satu aturan izin Anda, atau `/cd` menolak. Tanpa aturan `Cd` yang dikonfigurasi, `/cd` menyimpan perilaku defaultnya dan meminta Anda untuk mempercayai direktori yang tidak dikenal.

567 559 

568Pola jalur berbagi jangkar `//`, `~/`, dan `/` dari [aturan Read dan Edit](#read-and-edit), tetapi pencocokan berlabuh ke seluruh jalur direktori daripada gaya gitignore. `*` mencocokkan tepat satu segmen jalur dan `**` mencocokkan di seluruh segmen. Trailing `/**` juga mencocokkan akar yang dinamainya.560Pola jalur berbagi jangkar `//`, `~/`, dan `/` dari [aturan Read dan Edit](#read-and-edit), tetapi pencocokan berlabuh pada seluruh jalur direktori daripada gaya gitignore. `*` cocok dengan tepat satu segmen jalur dan `**` cocok di seluruh segmen. `/**` di belakang juga cocok dengan akar yang dinamainya.

569 561 

570| Aturan | Cocok | Tidak cocok |562| Aturan | Cocok | Tidak cocok |

571| --------------------- | --------------------------------------------------------------------------------- | -------------------------- |563| --------------------- | --------------------------------------------------------------------------------- | -------------------------- |

plugin-evals.md +3 −1

Details

339 Berikan alat339 Berikan alat

340</h3>340</h3>

341 341 

342Run tidak pernah berhenti untuk meminta izin. Alat bawaan yang memerlukan izin yang tidak Anda berikan, seperti `Bash`, `Write`, `Edit`, `WebFetch`, dan `WebSearch`, dihapus dari sesi, jadi Claude tidak dapat memanggilnya sama sekali. Daftar izin adalah alat read-only yang daftar kasus dalam `allowed_tools`, dari `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite`, dan alat task `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `TaskStop`, dan `TaskOutput`, ditambah apa pun yang Anda berikan dengan `--allow-tools`, yang berlaku untuk setiap kasus dalam run. Untuk membiarkan kasus menggunakan `Bash`, `Write`, `Edit`, `WebFetch`, atau `WebSearch`, berikan mereka sendiri:342Run tidak pernah berhenti untuk meminta izin. Alat bawaan yang memerlukan izin yang tidak Anda berikan, seperti `Bash`, `Write`, `Edit`, `WebFetch`, dan `WebSearch`, dihapus dari sesi, jadi Claude tidak dapat memanggilnya sama sekali.

343 

344Daftar izin adalah alat read-only yang daftar kasus dalam `allowed_tools`, dari `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite`, dan alat task `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, dan `TaskStop`, ditambah apa pun yang Anda berikan dengan `--allow-tools`. Pemberian itu berlaku untuk setiap kasus dalam run. Untuk membiarkan kasus menggunakan `Bash`, `Write`, `Edit`, `WebFetch`, atau `WebSearch`, berikan mereka sendiri:

343 345 

344```bash theme={null}346```bash theme={null}

345claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"347claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

Details

71Prompt sistem terperinci untuk agent yang menjelaskan peran, keahlian, dan perilakunya.71Prompt sistem terperinci untuk agent yang menjelaskan peran, keahlian, dan perilakunya.

72```72```

73 73 

74Plugin agents mendukung field frontmatter `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, [`omitClaudeMd`](/docs/id/sub-agents#supported-frontmatter-fields), dan `isolation`. Satu-satunya nilai `isolation` yang valid adalah `"worktree"`.74<h4 id="plugin-agent-frontmatter">

75 Frontmatter agent plugin

76</h4>

77 

78File agent plugin menggunakan [field frontmatter yang sama seperti file subagent](/docs/id/sub-agents#supported-frontmatter-fields), kecuali bahwa Claude Code hanya menghormati beberapa di antaranya ketika agent berasal dari plugin:

79 

80* **Didukung**: `name`, `description`, `model`, `effort`, `maxTurns`, `tools`, `disallowedTools`, `skills`, `memory`, `background`, `omitClaudeMd`, `isolation`, `color`, dan `experimental`. Satu-satunya nilai `isolation` yang valid adalah `"worktree"`.

81* **Tidak didukung, untuk alasan keamanan**: `hooks`, `mcpServers`, dan `permissionMode`. Claude Code mengabaikan ini ketika memuat agent dari plugin. Untuk menggunakannya, salin file agent ke `.claude/agents/` atau `~/.claude/agents/`.

82* **Tidak didukung**: `initialPrompt`.

75 83 

76Untuk alasan keamanan, plugin-shipped agents tidak mendukung `hooks`, `mcpServers`, atau `permissionMode`.84Anda dapat menempatkan file plugin agent dalam subfolder dari `agents/`. Claude Code [memuatnya secara rekursif](/docs/id/sub-agents#choose-the-subagent-scope) dan menggabungkan nama plugin, setiap nama subfolder, dan nama file dengan titik dua untuk membentuk nama scoped agent. Misalnya, `agents/review/security.md` dalam plugin bernama `my-plugin` dimuat sebagai `my-plugin:review:security`. Dua pengaturan mengubah nama itu:

85 

86* Frontmatter `name`: ini menggantikan hanya nama file, jadi `name: audit` dalam `agents/review/security.md` dimuat sebagai `my-plugin:review:audit`

87* Field manifest [`agents`](#component-path-fields): file yang Anda daftarkan di sana dimuat tanpa nama subfolder, jadi `"agents": "./custom/review/security.md"` dimuat sebagai `my-plugin:security`

77 88 

78Claude Code memuat agent plugin bahkan ketika frontmatternya tidak memiliki `name` atau tidak dapat diuraikan:89Claude Code memuat agent plugin bahkan ketika frontmatternya tidak memiliki `name` atau tidak dapat diuraikan:

79 90 


537 548 

538`claude plugin validate` melaporkan bidang yang tidak dikenali sebagai peringatan, bukan kesalahan. Jika bidang hanya berbeda satu atau dua karakter dari yang dikenali, peringatan menyarankan nama yang mungkin dimaksudkan. Plugin dengan hanya peringatan bidang yang tidak dikenali masih lulus validasi dan dimuat saat runtime.549`claude plugin validate` melaporkan bidang yang tidak dikenali sebagai peringatan, bukan kesalahan. Jika bidang hanya berbeda satu atau dua karakter dari yang dikenali, peringatan menyarankan nama yang mungkin dimaksudkan. Plugin dengan hanya peringatan bidang yang tidak dikenali masih lulus validasi dan dimuat saat runtime.

539 550 

540Bagaimana Claude Code menangani bidang yang dikenali yang nilainya memiliki tipe salah tergantung pada bidangnya:551Bagaimana Claude Code menangani bidang yang dikenali yang nilainya memiliki tipe yang salah tergantung pada bidangnya:

541 552 

542* **Sebagian besar bidang**: plugin gagal dimuat. Misalnya, nilai `keywords` yang berupa string alih-alih array adalah kesalahan pemuatan, dan `claude plugin validate` melaporkannya sebagai demikian.553* **Sebagian besar bidang**: plugin gagal dimuat. Misalnya, nilai `keywords` yang berupa string bukan array adalah kesalahan pemuatan, dan `claude plugin validate` melaporkannya sebagai demikian.

543* **`experimental` dan `metadata`**: Claude Code mengabaikan nilai non-objek, dan `claude plugin validate` melaporkan peringatan.554* **`experimental` dan `metadata`**: Claude Code mengabaikan nilai non-object, dan `claude plugin validate` melaporkan peringatan.

544 555 

545Teruskan `--strict` untuk memperlakukan peringatan sebagai kesalahan. Gunakan di CI untuk menangkap nama bidang yang salah ketik atau bidang yang tersisa dari manifes alat lain sebelum menerbitkan, meskipun plugin akan dimuat saat runtime.556Teruskan `--strict` untuk memperlakukan peringatan sebagai kesalahan. Gunakan di CI untuk menangkap nama bidang yang salah eja atau bidang yang tersisa dari manifes alat lain sebelum menerbitkan, meskipun plugin akan dimuat saat runtime.

546 557 

547```bash theme={null}558```bash theme={null}

548claude plugin validate ./my-plugin --strict559claude plugin validate ./my-plugin --strict


555| Bidang | Tipe | Deskripsi | Contoh |566| Bidang | Tipe | Deskripsi | Contoh |

556| :--------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |567| :--------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------- |

557| `$schema` | string | URL JSON Schema untuk autocomplete dan validasi editor. Claude Code mengabaikan bidang ini saat waktu pemuatan. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |568| `$schema` | string | URL JSON Schema untuk autocomplete dan validasi editor. Claude Code mengabaikan bidang ini saat waktu pemuatan. | `"https://json.schemastore.org/claude-code-plugin-manifest.json"` |

558| `displayName` | string | Nama yang dapat dibaca manusia ditampilkan di pemilih `/plugin` dan permukaan UI lainnya. Untuk plugin yang diinstal marketplace, `displayName` pada [entri marketplace](/docs/id/plugin-marketplaces#optional-plugin-fields) mengambil alih nilai ini. Ketika tidak ada nama tampilan yang ditetapkan di tempat mana pun, pengguna melihat `name`. Tidak seperti `name`, dapat berisi spasi dan casing apa pun. Tidak digunakan untuk namespacing atau pencarian. | `"Deployment Tools"` |569| `displayName` | string | Nama yang dapat dibaca manusia ditampilkan di pemilih `/plugin` dan permukaan UI lainnya. Untuk plugin yang diinstal marketplace, `displayName` pada [entri marketplace](/docs/id/plugin-marketplaces#optional-plugin-fields) mengambil alih nilai ini. Ketika tidak ada nama tampilan yang ditetapkan di kedua tempat, pengguna melihat `name`. Tidak seperti `name`, dapat berisi spasi dan casing apa pun. Tidak digunakan untuk namespacing atau pencarian. | `"Deployment Tools"` |

559| `version` | string | Opsional. Versi semantik. Menetapkan ini mengikat plugin ke string versi itu, sehingga pengguna hanya menerima pembaruan ketika Anda menaikkannya, kecuali untuk [sumber `command`](/docs/id/plugin-marketplaces#command-sources) atau plugin [dimuat di tempat](#plugin-caching-and-file-resolution); lihat [Manajemen versi](#version-management). Jika juga ditetapkan di entri marketplace, `plugin.json` menang. Jika dihilangkan, versi berasal dari sumber berikutnya di [Manajemen versi](#version-management). | `"2.1.0"` |570| `version` | string | Opsional. Versi semantik. Menetapkan ini mengikat plugin ke string versi itu, sehingga pengguna hanya menerima pembaruan ketika Anda menaikkannya, kecuali untuk [sumber `command`](/docs/id/plugin-marketplaces#command-sources) atau plugin [dimuat di tempat](#plugin-caching-and-file-resolution); lihat [Manajemen versi](#version-management). Jika juga ditetapkan di entri marketplace, `plugin.json` menang. Jika dihilangkan, versi berasal dari sumber berikutnya di [Manajemen versi](#version-management). | `"2.1.0"` |

560| `description` | string | Penjelasan singkat tentang tujuan plugin | `"Deployment automation tools"` |571| `description` | string | Penjelasan singkat tentang tujuan plugin | `"Deployment automation tools"` |

561| `author` | object | Informasi penulis | `{"name": "Dev Team", "email": "dev@company.com"}` |572| `author` | object | Informasi penulis | `{"name": "Dev Team", "email": "dev@company.com"}` |


563| `repository` | string | URL kode sumber | `"https://github.com/user/plugin"` |574| `repository` | string | URL kode sumber | `"https://github.com/user/plugin"` |

564| `license` | string | Pengidentifikasi lisensi | `"MIT"`, `"Apache-2.0"` |575| `license` | string | Pengidentifikasi lisensi | `"MIT"`, `"Apache-2.0"` |

565| `keywords` | array | Tag penemuan | `["deployment", "ci-cd"]` |576| `keywords` | array | Tag penemuan | `["deployment", "ci-cd"]` |

566| `metadata` | object | Objek bentuk bebas untuk data Anda sendiri, seperti bidang hak atau katalog. Claude Code tidak membacanya, jadi nilai tidak pernah mempengaruhi perilaku plugin. Claude Code mengabaikan nilai non-objek, dan `claude plugin validate` melaporkannya sebagai peringatan. Sebelum v2.1.222, Claude Code memperlakukan kunci sebagai [bidang yang tidak dikenali](#unrecognized-fields). | `{"catalogId": "cat-123"}` |577| `metadata` | object | Objek bentuk bebas untuk data Anda sendiri, seperti bidang hak atau katalog. Claude Code tidak membacanya, jadi nilai tidak pernah mempengaruhi perilaku plugin. Claude Code mengabaikan nilai non-object, dan `claude plugin validate` melaporkannya sebagai peringatan. Sebelum v2.1.222, Claude Code memperlakukan kunci sebagai [bidang yang tidak dikenali](#unrecognized-fields). | `{"catalogId": "cat-123"}` |

567| `defaultEnabled` | boolean | Apakah plugin dimulai dalam keadaan diaktifkan ketika pengguna belum menetapkan satu. Default ke `true`. Lihat [Pengaktifan default](#default-enablement). | `false` |578| `defaultEnabled` | boolean | Apakah plugin dimulai dalam keadaan diaktifkan ketika pengguna belum menetapkan satu. Default ke `true`. Lihat [Pengaktifan default](#default-enablement). | `false` |

568 579 

569<h3 id="default-enablement">580<h3 id="default-enablement">


572 583 

573Atur `defaultEnabled: false` di `plugin.json` untuk mengirimkan plugin yang diinstal dalam keadaan dinonaktifkan. Pengguna menghidupkannya dengan `claude plugin enable <plugin>` atau antarmuka `/plugin`. Gunakan ini untuk plugin yang menambah biaya atau ruang lingkup yang harus dipilih pengguna, seperti yang menghubungkan ke layanan eksternal.584Atur `defaultEnabled: false` di `plugin.json` untuk mengirimkan plugin yang diinstal dalam keadaan dinonaktifkan. Pengguna menghidupkannya dengan `claude plugin enable <plugin>` atau antarmuka `/plugin`. Gunakan ini untuk plugin yang menambah biaya atau ruang lingkup yang harus dipilih pengguna, seperti yang menghubungkan ke layanan eksternal.

574 585 

575`defaultEnabled` adalah fallback ketika tidak ada yang telah memutuskan status plugin. Pengaturan pengguna dan persyaratan ketergantungan mengambil alih:586`defaultEnabled` adalah fallback ketika tidak ada yang lain telah memutuskan status plugin. Pengaturan pengguna dan persyaratan ketergantungan mengambil alih:

576 587 

577* **Pengaturan pengguna**: entri untuk plugin di `enabledPlugins` di ruang lingkup pengaturan apa pun. Setelah ditulis, itu bertahan di seluruh pembaruan dan penginstalan ulang plugin, jadi mengubah `defaultEnabled` dalam rilis kemudian tidak membalik pengguna yang ada.588* **Pengaturan pengguna**: entri untuk plugin di `enabledPlugins` di ruang lingkup pengaturan apa pun. Setelah ditulis, itu bertahan di seluruh pembaruan dan penginstalan ulang plugin, jadi mengubah `defaultEnabled` dalam rilis yang lebih baru tidak membalik pengguna yang ada.

578* **Persyaratan ketergantungan**: ketika plugin diperlukan oleh plugin lain yang aktif, Claude Code menulis `true` untuk itu pada waktu instalasi atau pengaktifan. Itu memberikannya pengaturan eksplisit, jadi default-nya sendiri tidak lagi berlaku. Lihat [Aktifkan atau nonaktifkan plugin dengan ketergantungan](/docs/id/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).589* **Persyaratan ketergantungan**: ketika plugin diperlukan oleh plugin lain yang aktif, Claude Code menulis `true` untuk itu pada waktu instalasi atau pengaktifan. Itu memberikannya pengaturan eksplisit, jadi default-nya sendiri tidak lagi berlaku. Lihat [Aktifkan atau nonaktifkan plugin dengan ketergantungan](/docs/id/plugin-dependencies#enable-or-disable-a-plugin-with-dependencies).

579 590 

580Bidang yang sama dapat muncul di entri marketplace plugin, di mana itu mengambil alih nilai di `plugin.json`. Lihat [Bidang plugin opsional](/docs/id/plugin-marketplaces#optional-plugin-fields).591Bidang yang sama dapat muncul di entri marketplace plugin, di mana itu mengambil alih nilai di `plugin.json`. Lihat [Bidang plugin opsional](/docs/id/plugin-marketplaces#optional-plugin-fields).


588| `skills` | string\|array | Direktori skill kustom yang berisi `<name>/SKILL.md`. Menambah pemindaian `skills/` default. Lihat [Aturan perilaku jalur](#path-behavior-rules) untuk pengecualian akar marketplace | `"./custom/skills/"` |599| `skills` | string\|array | Direktori skill kustom yang berisi `<name>/SKILL.md`. Menambah pemindaian `skills/` default. Lihat [Aturan perilaku jalur](#path-behavior-rules) untuk pengecualian akar marketplace | `"./custom/skills/"` |

589| `commands` | string\|array | File skill `.md` datar kustom atau direktori (menggantikan `commands/` default) | `"./custom/cmd.md"` atau `["./cmd1.md"]` |600| `commands` | string\|array | File skill `.md` datar kustom atau direktori (menggantikan `commands/` default) | `"./custom/cmd.md"` atau `["./cmd1.md"]` |

590| `agents` | string\|array | File agent kustom (menggantikan `agents/` default) | `"./custom/agents/reviewer.md"` |601| `agents` | string\|array | File agent kustom (menggantikan `agents/` default) | `"./custom/agents/reviewer.md"` |

591| `workflows` | string\|array | File skrip [workflow](/docs/id/workflows) kustom atau direktori (menggantikan `workflows/` default) | `"./custom/workflows/"` |602| `workflows` | string\|array | File atau direktori skrip [workflow](/docs/id/workflows) kustom (menggantikan `workflows/` default) | `"./custom/workflows/"` |

592| `hooks` | string\|array\|object | Jalur konfigurasi hook atau konfigurasi inline | `"./my-extra-hooks.json"` |603| `hooks` | string\|array\|object | Jalur konfigurasi hook atau konfigurasi inline | `"./my-extra-hooks.json"` |

593| `mcpServers` | string\|array\|object | Jalur konfigurasi MCP atau konfigurasi inline | `"./my-extra-mcp-config.json"` |604| `mcpServers` | string\|array\|object | Jalur konfigurasi MCP atau konfigurasi inline | `"./my-extra-mcp-config.json"` |

594| `outputStyles` | string\|array | File/direktori gaya output kustom (menggantikan `output-styles/` default) | `"./styles/"` |605| `outputStyles` | string\|array | File/direktori gaya output kustom (menggantikan `output-styles/` default) | `"./styles/"` |

595| `lspServers` | string\|array\|object | Konfigurasi [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) untuk intelijen kode (buka definisi, temukan referensi, dll.) | `"./.lsp.json"` |606| `lspServers` | string\|array\|object | Konfigurasi [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) untuk intelijen kode (buka definisi, temukan referensi, dll.) | `"./.lsp.json"` |

596| `experimental.themes` | string\|array | File/direktori tema warna (menggantikan `themes/` default). Lihat [Tema](#themes) | `"./themes/"` |607| `experimental.themes` | string\|array | File/direktori tema warna (menggantikan `themes/` default). Lihat [Themes](#themes) | `"./themes/"` |

597| `experimental.monitors` | string\|array | Konfigurasi [Monitor](/docs/id/tools-reference#monitor-tool) latar belakang yang dimulai secara otomatis ketika plugin aktif. Lihat [Monitor](#monitors) | `"./monitors.json"` |608| `experimental.monitors` | string\|array | Konfigurasi [Monitor](/docs/id/tools-reference#monitor-tool) latar belakang yang dimulai secara otomatis ketika plugin aktif. Lihat [Monitors](#monitors) | `"./monitors.json"` |

598| `experimental.evals` | string\|array | Direktori di bawah akar plugin yang menyimpan [kasus eval](/docs/id/plugin-evals#use-a-different-eval-directory) plugin, ketika bukan `evals/` default. `claude plugin eval --eval-dir` menggantinya | `"quality/evals"` |609| `experimental.evals` | string\|array | Direktori di bawah akar plugin yang menyimpan [kasus eval](/docs/id/plugin-evals#use-a-different-eval-directory) plugin, ketika bukan `evals/` default. `claude plugin eval --eval-dir` menggantinya | `"quality/evals"` |

599| `userConfig` | object | Nilai yang dapat dikonfigurasi pengguna yang diminta saat pengaktifan. Lihat [Konfigurasi pengguna](#user-configuration) | |610| `userConfig` | object | Nilai yang dapat dikonfigurasi pengguna yang diminta saat pengaktifan. Lihat [Konfigurasi pengguna](#user-configuration) | |

600| `channels` | array | Deklarasi saluran untuk injeksi pesan (gaya Telegram, Slack, Discord). Lihat [Saluran](#channels) | |611| `channels` | array | Deklarasi saluran untuk injeksi pesan (gaya Telegram, Slack, Discord). Lihat [Channels](#channels) | |

601| `dependencies` | array | Plugin lain yang diperlukan plugin ini, secara opsional dengan batasan versi semver. Lihat [Batasi versi ketergantungan plugin](/docs/id/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |612| `dependencies` | array | Plugin lain yang diperlukan plugin ini, secara opsional dengan batasan versi semver. Lihat [Batasi versi ketergantungan plugin](/docs/id/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` |

602 613 

603<h3 id="experimental-components">614<h3 id="experimental-components">

604 Komponen eksperimental615 Komponen eksperimental

605</h3>616</h3>

606 617 

607Komponen di bawah kunci `experimental`, `themes` dan `monitors`, memiliki skema manifes yang mungkin berubah antar rilis saat mereka stabil. Tempat Anda mendeklarasikannya adalah migrasi terpisah: tingkat atas masih berfungsi, `claude plugin validate` memperingatkan, dan rilis mendatang akan memerlukan `experimental.*`.618Komponen di bawah kunci `experimental`, `themes` dan `monitors`, memiliki skema manifes yang mungkin berubah antar rilis saat mereka stabil. Tempat Anda mendeklarasikannya adalah migrasi terpisah: tingkat atas masih berfungsi, `claude plugin validate` memperingatkan, dan rilis di masa depan akan memerlukan `experimental.*`.

608 619 

609<h3 id="user-configuration">620<h3 id="user-configuration">

610 Konfigurasi pengguna621 Konfigurasi pengguna

611</h3>622</h3>

612 623 

613Bidang `userConfig` mendeklarasikan nilai yang diminta Claude Code kepada pengguna ketika plugin diaktifkan. Gunakan ini alih-alih mengharuskan pengguna untuk mengedit `settings.json` secara manual.624Bidang `userConfig` mendeklarasikan nilai yang Claude Code minta dari pengguna ketika plugin diaktifkan. Gunakan ini alih-alih mengharuskan pengguna untuk mengedit `settings.json` secara manual.

614 625 

615```json theme={null}626```json theme={null}

616{627{


633Kunci harus berupa pengidentifikasi yang valid. Setiap opsi mendukung bidang-bidang ini:644Kunci harus berupa pengidentifikasi yang valid. Setiap opsi mendukung bidang-bidang ini:

634 645 

635| Bidang | Diperlukan | Deskripsi |646| Bidang | Diperlukan | Deskripsi |

636| :------------ | :--------- | :---------------------------------------------------------------------------------------------------------------------------------------------------- |647| :------------ | :--------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

637| `type` | Ya | Salah satu dari `string`, `number`, `boolean`, `directory`, atau `file` |648| `type` | Ya | Salah satu dari `string`, `number`, `boolean`, `directory`, atau `file` |

638| `title` | Ya | Label ditampilkan di dialog konfigurasi |649| `title` | Ya | Label ditampilkan di dialog konfigurasi |

639| `description` | Ya | Teks bantuan ditampilkan di bawah bidang |650| `description` | Ya | Teks bantuan ditampilkan di bawah bidang |

640| `sensitive` | Tidak | Jika `true`, menyembunyikan input dan menyimpan nilai dalam penyimpanan aman alih-alih `settings.json` |651| `sensitive` | Tidak | Jika `true`, menyembunyikan input dan menyimpan nilai dalam penyimpanan aman alih-alih `settings.json` |

641| `required` | Tidak | Jika `true`, validasi gagal ketika bidang kosong |652| `required` | Tidak | Jika `true`, validasi gagal ketika bidang kosong |

642| `default` | Tidak | Nilai yang digunakan ketika pengguna tidak memberikan apa pun |653| `default` | Tidak | Nilai yang digunakan ketika pengguna tidak memberikan apa pun |

643| `options` | Tidak | Untuk tipe `string`, nilai yang diterima bidang, ditampilkan di `/config` sebagai pemilih di atasnya. Memerlukan Claude Code v2.1.271 atau lebih baru |654| `options` | Tidak | Untuk tipe `string`, nilai yang diterima bidang, ditampilkan di `/config` sebagai pemilih di atasnya. Lihat [Batasi bidang ke opsi tetap](#limit-a-field-to-fixed-options). Memerlukan Claude Code v2.1.271 atau lebih baru |

644| `multiple` | Tidak | Untuk tipe `string`, izinkan array string |655| `multiple` | Tidak | Untuk tipe `string`, izinkan array string |

645| `min` / `max` | Tidak | Batas untuk tipe `number` |656| `min` / `max` | Tidak | Batas untuk tipe `number` |

646 657 

647Kecuali bidang `sensitive` dan daftar `multiple`, setiap bidang dari setiap plugin yang diaktifkan juga muncul sebagai baris di panel `/config`. Baris memerlukan Claude Code v2.1.269 atau lebih baru.658Kecuali bidang `sensitive` dan daftar `multiple`, setiap bidang dari setiap plugin yang diaktifkan juga muncul sebagai baris di panel `/config`. Baris memerlukan Claude Code v2.1.269 atau lebih baru.

648 659 

649Setiap nilai tersedia untuk substitusi sebagai `${user_config.KEY}` di konfigurasi server MCP dan LSP serta perintah hook. Nilai non-sensitif juga dapat disubstitusi dalam konten skill dan agent. Semua nilai diekspor ke proses hook sebagai variabel lingkungan `CLAUDE_PLUGIN_OPTION_<KEY>`, di mana `<KEY>` adalah kunci opsi dengan huruf besar.660Setiap nilai tersedia untuk substitusi sebagai `${user_config.KEY}` dalam konfigurasi server MCP dan LSP serta perintah hook. Nilai non-sensitif juga dapat disubstitusi dalam konten skill dan agent. Semua nilai diekspor ke proses hook sebagai variabel lingkungan `CLAUDE_PLUGIN_OPTION_<KEY>`, di mana `<KEY>` adalah kunci opsi dengan huruf besar.

650 661 

651Bidang yang berjalan dalam shell menolak `${user_config.*}`: mensubstitusi nilai yang dikonfigurasi ke dalam perintah shell akan membiarkan shell menjalankan apa pun yang berisi nilai itu, jadi komponen gagal dengan [kesalahan](/docs/id/errors#plugin-command-references-user-config) sebagai gantinya. Setiap bidang yang ditolak memiliki cara alternatif untuk melewatkan nilai:662Bidang yang berjalan dalam shell menolak `${user_config.*}`: mensubstitusi nilai yang dikonfigurasi ke dalam perintah shell akan membiarkan shell menjalankan apa pun yang berisi nilai itu, jadi komponen gagal dengan [kesalahan](/docs/id/errors#plugin-command-references-user-config) sebagai gantinya. Setiap bidang yang ditolak memiliki cara alternatif untuk melewatkan nilai:

652 663 


672 683 

673Entri di `.claude/settings.json` atau `.claude/settings.local.json` proyek diabaikan. Kedua file berada di workspace, jadi repositori yang dikloning dapat menyediakan nilai di sana, dan nilai-nilai itu akan mengalir ke perintah hook plugin, konfigurasi server MCP, perintah LSP, dan perintah monitor. Sebelum v2.1.207, entri-entri ini dibaca. Pembatasan khusus untuk `pluginConfigs`: [`enabledPlugins`](/docs/id/settings-reference#enabledplugins) masih menghormati pengaturan proyek dan lokal.684Entri di `.claude/settings.json` atau `.claude/settings.local.json` proyek diabaikan. Kedua file berada di workspace, jadi repositori yang dikloning dapat menyediakan nilai di sana, dan nilai-nilai itu akan mengalir ke perintah hook plugin, konfigurasi server MCP, perintah LSP, dan perintah monitor. Sebelum v2.1.207, entri-entri ini dibaca. Pembatasan khusus untuk `pluginConfigs`: [`enabledPlugins`](/docs/id/settings-reference#enabledplugins) masih menghormati pengaturan proyek dan lokal.

674 685 

686<h4 id="limit-a-field-to-fixed-options">

687 Batasi bidang ke opsi tetap

688</h4>

689 

690Atur `options` pada bidang `userConfig` untuk membuat pengguna memilih nilainya dari daftar tetap.

691 

692Untuk membatasi bidang `tone` ke tiga opsi, cantumkan dalam `options` dan atur `default` ke salah satunya:

693 

694```json theme={null}

695{

696 "userConfig": {

697 "tone": {

698 "type": "string",

699 "title": "Tone",

700 "description": "Voice for generated replies",

701 "options": ["neutral", "warm", "formal"],

702 "default": "neutral"

703 }

704 }

705}

706```

707 

708Jika Anda mendeklarasikan `options` pada bidang apa pun, pengguna pada versi Claude Code sebelum v2.1.271 tidak dapat memuat plugin.

709 

710Ketika Anda menetapkan `options` pada bidang, ikuti aturan-aturan ini:

711 

712* Atur `type` ke `string`

713* Jangan atur `multiple` atau `sensitive` ke `true`

714* Atur `default` ke salah satu opsi

715* Jika Anda membiarkan `default` tidak diatur, atur `required` ke `true`

716* Cantumkan setidaknya satu opsi, masing-masing 1 hingga 64 karakter panjang

717* Jangan mulai atau akhiri opsi dengan spasi

718* Jangan gunakan karakter kontrol, karakter tak terlihat, karakter yang mengubah arah teks, atau spasi selain spasi biasa dalam opsi

719* Jangan cantumkan opsi yang sama dua kali, bahkan dalam huruf case yang berbeda

720 

721Jika Anda melanggar salah satu aturan ini, plugin gagal dimuat. Jalankan `claude plugin validate` untuk melihat bidang mana yang melanggar aturan mana.

722 

675<h3 id="channels">723<h3 id="channels">

676 Saluran724 Channels

677</h3>725</h3>

678 726 

679Bidang `channels` memungkinkan plugin mendeklarasikan satu atau lebih saluran pesan yang menyuntikkan konten ke dalam percakapan. Setiap saluran mengikat ke server MCP yang disediakan plugin.727Bidang `channels` memungkinkan plugin mendeklarasikan satu atau lebih saluran pesan yang menyuntikkan konten ke dalam percakapan. Setiap saluran mengikat ke server MCP yang disediakan plugin.


710Apakah jalur kustom menggantikan atau memperluas direktori default plugin tergantung pada bidangnya:758Apakah jalur kustom menggantikan atau memperluas direktori default plugin tergantung pada bidangnya:

711 759 

712* **Menggantikan default**: `commands`, `agents`, `workflows`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Misalnya, ketika manifes menentukan `commands`, direktori `commands/` default tidak dipindai. Untuk menyimpan default dan menambah lebih banyak, cantumkan secara eksplisit: `"commands": ["./commands/", "./extras/"]`760* **Menggantikan default**: `commands`, `agents`, `workflows`, `outputStyles`, `experimental.themes`, `experimental.monitors`. Misalnya, ketika manifes menentukan `commands`, direktori `commands/` default tidak dipindai. Untuk menyimpan default dan menambah lebih banyak, cantumkan secara eksplisit: `"commands": ["./commands/", "./extras/"]`

713* **Menambah default**: `skills`. Direktori `skills/` default selalu dipindai, dan direktori yang tercantum di `skills` dimuat bersama dengannya. Pengecualian: untuk [entri marketplace yang `source`-nya diselesaikan ke akar marketplace](/docs/id/plugin-marketplaces#advanced-plugin-entries), mendeklarasikan subdirektori spesifik menggantikan pemindaian `skills/` default761* **Menambah default**: `skills`. Direktori `skills/` default selalu dipindai, dan direktori yang tercantum di `skills` dimuat bersama. Pengecualian: untuk [entri marketplace yang `source`-nya diselesaikan ke akar marketplace](/docs/id/plugin-marketplaces#advanced-plugin-entries), mendeklarasikan subdirektori spesifik menggantikan pemindaian `skills/` default

714* **Aturan penggabungan sendiri**: [hooks](#hooks), [server MCP](#mcp-servers), dan [server LSP](#lsp-servers). Lihat setiap bagian untuk cara beberapa sumber menggabungkan762* **Aturan penggabungan sendiri**: [hooks](#hooks), [server MCP](#mcp-servers), dan [server LSP](#lsp-servers). Lihat setiap bagian untuk cara beberapa sumber menggabungkan

715 763 

716Ketika plugin memiliki folder default dan kunci manifes yang cocok, Claude Code memperingatkan tentang folder yang diabaikan di `claude plugin list` dan tampilan detail `/plugin`. Plugin masih dimuat menggunakan jalur manifes. Claude Code tidak memperingatkan ketika kunci manifes menunjuk ke folder default, misalnya `"commands": ["./commands/deploy.md"]`, karena jalur itu secara eksplisit menamai folder.764Ketika plugin memiliki folder default dan kunci manifes yang cocok, Claude Code memperingatkan tentang folder yang diabaikan di `claude plugin list` dan tampilan detail `/plugin`. Plugin masih dimuat menggunakan jalur manifes. Claude Code tidak memperingatkan ketika kunci manifes menunjuk ke folder default, misalnya `"commands": ["./commands/deploy.md"]`, karena jalur itu menamai folder secara eksplisit.

717 765 

718Untuk semua bidang jalur:766Untuk semua bidang jalur:

719 767 

720* Semua jalur harus relatif terhadap akar plugin dan dimulai dengan `./`, kecuali bidang `skills` juga menerima `"."`768* Semua jalur harus relatif terhadap akar plugin dan dimulai dengan `./`, kecuali bidang `skills` juga menerima `"."`

721 * Baik `"."` maupun `"./"` menunjukkan akar plugin itu sendiri769 * Baik `"."` maupun `"./"` menunjukkan akar plugin itu sendiri

722 * Sebelum v2.1.221, `"."` gagal validasi manifes dan plugin tidak dimuat, jadi gunakan `"./"` untuk mendukung versi sebelumnya770 * Sebelum v2.1.221, `"."` gagal validasi manifes dan plugin tidak dimuat, jadi gunakan `"./"` untuk mendukung versi sebelumnya

723* Komponen dari jalur kustom menggunakan aturan penamaan dan namespacing yang sama771* Komponen dari jalur kustom menggunakan aturan penamaan dan namespacing yang sama, kecuali file agent. Lihat [Agents](#agents) untuk cara kerja nama agent

724* Beberapa jalur dapat ditentukan sebagai array772* Beberapa jalur dapat ditentukan sebagai array

725* Jalur skill dapat menunjuk ke direktori yang berisi `SKILL.md` secara langsung, misalnya `"skills": ["."]` untuk akar plugin773* Jalur skill dapat menunjuk ke direktori yang berisi `SKILL.md` secara langsung, misalnya `"skills": ["."]` untuk akar plugin

726 * Claude Code mengambil nama invokasi skill dari bidang frontmatter `name` di `SKILL.md`, jadi nama tetap stabil apa pun direktori instalasi dinamai774 * Claude Code mengambil nama invokasi skill dari bidang frontmatter `name` di `SKILL.md`, jadi nama tetap stabil apa pun nama direktori instalasi

727 * Jika `name` tidak ditetapkan di frontmatter, Claude Code kembali ke nama dasar direktori775 * Jika `name` tidak diatur di frontmatter, Claude Code kembali ke nama dasar direktori

728 776 

729Plugin yang memiliki `SKILL.md` di akarnya, tidak ada subdirektori `skills/`, dan tidak ada bidang manifes `skills` secara otomatis dimuat sebagai plugin skill tunggal. Anda tidak perlu menetapkan `"skills": ["./"]` di `plugin.json` untuk tata letak ini.777Plugin yang memiliki `SKILL.md` di akarnya, tidak ada subdirektori `skills/`, dan tidak ada bidang manifes `skills` secara otomatis dimuat sebagai plugin skill tunggal. Anda tidak perlu menetapkan `"skills": ["./"]` di `plugin.json` untuk tata letak ini.

730 778 


755| `${CLAUDE_PLUGIN_DATA}` | [Direktori persisten](#persistent-data-directory) yang bertahan pembaruan plugin, dibuat pada referensi pertama | Ketergantungan yang diinstal seperti `node_modules` atau lingkungan virtual Python, kode yang dihasilkan, dan cache |803| `${CLAUDE_PLUGIN_DATA}` | [Direktori persisten](#persistent-data-directory) yang bertahan pembaruan plugin, dibuat pada referensi pertama | Ketergantungan yang diinstal seperti `node_modules` atau lingkungan virtual Python, kode yang dihasilkan, dan cache |

756| `${CLAUDE_PROJECT_DIR}` | Akar proyek | Skrip dan file konfigurasi lokal proyek |804| `${CLAUDE_PROJECT_DIR}` | Akar proyek | Skrip dan file konfigurasi lokal proyek |

757 805 

758Ketiga-tiganya diekspor sebagai variabel lingkungan ke proses hook dan ke subproses server MCP dan LSP. Mereka tidak ada dalam lingkungan perintah yang Claude jalankan melalui alat Bash, dalam sesi utama atau dalam subagent. Dalam konten plugin, tulis placeholder sebagai gantinya, dan Claude Code mensubstitusi jalur secara inline ketika memuat konten. Bidang mana yang mensubstitusi mereka secara inline tergantung pada komponen plugin:806Ketiga-tiganya diekspor sebagai variabel lingkungan ke proses hook dan ke subproses server MCP dan LSP. Mereka tidak ada di lingkungan perintah yang Claude jalankan melalui alat Bash, di sesi utama atau di subagent. Dalam konten plugin, tulis placeholder sebagai gantinya, dan Claude Code mensubstitusi jalur inline ketika memuat konten. Bidang mana yang mensubstitusi mereka inline tergantung pada komponen plugin:

759 807 

760| Komponen plugin | Bidang tempat placeholder diselesaikan |808| Komponen plugin | Bidang tempat placeholder diselesaikan |

761| :----------------------------- | :------------------------------------------ |809| :----------------------------- | :------------------------------------------ |


784}832}

785```833```

786 834 

787Untuk plugin yang disalin, `${CLAUDE_PLUGIN_ROOT}` berubah ketika plugin diperbarui. Direktori versi sebelumnya tetap di disk untuk periode tenggang setelah pembaruan, tetapi perlakukan sebagai sementara dan jangan tulis status di sana. Untuk plugin yang dimuat di tempat dari marketplace direktori lokal, variabel menunjuk ke direktori sumber yang stabil. Lihat [plugin caching](#plugin-caching-and-file-resolution) untuk plugin mana yang disalin dan untuk semantik pembersihan.835Untuk plugin yang disalin, `${CLAUDE_PLUGIN_ROOT}` berubah ketika plugin diperbarui. Direktori versi sebelumnya tetap di disk untuk periode tenggang setelah pembaruan, tetapi perlakukan sebagai ephemeral dan jangan tulis status di sana. Untuk plugin yang dimuat di tempat dari marketplace direktori lokal, variabel menunjuk ke direktori sumber yang stabil. Lihat [plugin caching](#plugin-caching-and-file-resolution) untuk plugin mana yang disalin dan untuk semantik pembersihan.

788 836 

789Ketika plugin yang disalin diperbarui di tengah sesi, perintah hook, monitor, server MCP, dan server LSP terus menggunakan jalur versi sebelumnya. Jalankan `/reload-plugins` untuk beralih hook, server MCP, dan server LSP ke jalur baru; monitor memerlukan restart sesi. Dalam sesi tanpa terminal interaktif, reload meninggalkan server MCP plugin di jalur lama sampai sesi berikutnya.837Ketika plugin yang disalin diperbarui di tengah sesi, perintah hook, monitor, server MCP, dan server LSP terus menggunakan jalur versi sebelumnya. Jalankan `/reload-plugins` untuk mengganti hook, server MCP, dan server LSP ke jalur baru; monitor memerlukan restart sesi. Dalam sesi tanpa terminal interaktif, reload meninggalkan server MCP plugin di jalur lama sampai sesi berikutnya.

790 838 

791Untuk plugin dengan sumber `command`, Claude Code [dapat memuat ulang plugin itu sendiri](/docs/id/plugin-marketplaces#when-claude-code-re-runs-the-command).839Untuk plugin dengan sumber `command`, Claude Code [dapat memuat ulang plugin itu sendiri](/docs/id/plugin-marketplaces#when-claude-code-re-runs-the-command).

792 840 


798 846 

799Direktori `${CLAUDE_PLUGIN_DATA}` diselesaikan ke `~/.claude/plugins/data/{id}/`, di mana `{id}` adalah pengidentifikasi plugin dengan karakter di luar `a-z`, `A-Z`, `0-9`, `_`, dan `-` diganti dengan `-`. Untuk plugin yang diinstal sebagai `formatter@my-marketplace`, direktorinya adalah `~/.claude/plugins/data/formatter-my-marketplace/`.847Direktori `${CLAUDE_PLUGIN_DATA}` diselesaikan ke `~/.claude/plugins/data/{id}/`, di mana `{id}` adalah pengidentifikasi plugin dengan karakter di luar `a-z`, `A-Z`, `0-9`, `_`, dan `-` diganti dengan `-`. Untuk plugin yang diinstal sebagai `formatter@my-marketplace`, direktorinya adalah `~/.claude/plugins/data/formatter-my-marketplace/`.

800 848 

801Penggunaan umum adalah menginstal ketergantungan bahasa sekali dan menggunakannya kembali di seluruh sesi dan pembaruan plugin. Gunakan untuk ketergantungan Python, ketergantungan yang dikunci dengan Yarn atau pnpm, dan paket yang skrip siklus hidupnya harus berjalan. Untuk plugin yang diinstal marketplace, Anda mungkin tidak membutuhkannya sama sekali: Claude Code secara otomatis menginstal [ketergantungan paket Node.js yang memenuhi syarat](#node-js-package-dependencies) ketika itu cache plugin.849Penggunaan umum adalah menginstal ketergantungan bahasa sekali dan menggunakannya kembali di seluruh sesi dan pembaruan plugin. Gunakan untuk ketergantungan Python, ketergantungan yang dikunci dengan Yarn atau pnpm, dan paket yang skrip siklus hidupnya harus berjalan. Untuk plugin yang diinstal marketplace, Anda mungkin tidak membutuhkannya sama sekali: Claude Code secara otomatis menginstal ketergantungan paket [Node.js yang memenuhi syarat](#node-js-package-dependencies) ketika cache plugin.

802 850 

803Karena direktori data melampaui versi plugin apa pun, pemeriksaan keberadaan direktori saja tidak dapat mendeteksi ketika pembaruan mengubah manifes ketergantungan plugin. Pola yang direkomendasikan membandingkan manifes bundel terhadap salinan di direktori data dan menginstal ulang ketika mereka berbeda.851Karena direktori data melampaui versi plugin tunggal, pemeriksaan keberadaan direktori saja tidak dapat mendeteksi ketika pembaruan mengubah manifes ketergantungan plugin. Pola yang direkomendasikan membandingkan manifes bundel terhadap salinan di direktori data dan menginstal ulang ketika berbeda.

804 852 

805Hook `SessionStart` ini menginstal `node_modules` pada run pertama dan lagi kapan pun pembaruan plugin menyertakan `package.json` yang berubah:853Hook `SessionStart` ini menginstal `node_modules` pada run pertama dan lagi kapan pun pembaruan plugin menyertakan `package.json` yang berubah:

806 854 


823 871 

824`diff` keluar nonzero ketika salinan yang disimpan hilang atau berbeda dari yang bundel, mencakup run pertama dan pembaruan yang mengubah ketergantungan. Jika `npm install` gagal, `rm` trailing menghapus manifes yang disalin sehingga sesi berikutnya mencoba lagi.872`diff` keluar nonzero ketika salinan yang disimpan hilang atau berbeda dari yang bundel, mencakup run pertama dan pembaruan yang mengubah ketergantungan. Jika `npm install` gagal, `rm` trailing menghapus manifes yang disalin sehingga sesi berikutnya mencoba lagi.

825 873 

826Skrip yang disertakan dalam `${CLAUDE_PLUGIN_ROOT}` kemudian dapat berjalan terhadap `node_modules` yang persisten:874Skrip yang disertakan dalam `${CLAUDE_PLUGIN_ROOT}` kemudian dapat berjalan terhadap `node_modules` yang bertahan:

827 875 

828```json theme={null}876```json theme={null}

829{877{


959├── agents/ # Definisi subagent1007├── agents/ # Definisi subagent

960│ ├── security-reviewer.md1008│ ├── security-reviewer.md

961│ ├── performance-tester.md1009│ ├── performance-tester.md

962│ └── compliance-checker.md1010│ ├── compliance-checker.md

1011│ └── review/ # Agents di sini dimuat sebagai enterprise-plugin:review:<name>

1012│ └── accessibility.md

963├── workflows/ # Skrip workflow1013├── workflows/ # Skrip workflow

964│ └── release-audit.js1014│ └── release-audit.js

965├── output-styles/ # Definisi gaya output1015├── output-styles/ # Definisi gaya output


999| **Manifes** | `.claude-plugin/plugin.json` | Metadata dan konfigurasi plugin (opsional) |1049| **Manifes** | `.claude-plugin/plugin.json` | Metadata dan konfigurasi plugin (opsional) |

1000| **Skills** | `skills/` | Skills dengan struktur `<name>/SKILL.md` |1050| **Skills** | `skills/` | Skills dengan struktur `<name>/SKILL.md` |

1001| **Commands** | `commands/` | Skills sebagai file Markdown datar. Gunakan `skills/` untuk plugin baru |1051| **Commands** | `commands/` | Skills sebagai file Markdown datar. Gunakan `skills/` untuk plugin baru |

1002| **Agents** | `agents/` | File Markdown subagent |1052| **Agents** | `agents/` | File Markdown subagent. Subfolder adalah bagian dari [nama agent](#agents) |

1003| **Workflows** | `workflows/` | File skrip [Workflow](/docs/id/workflows) |1053| **Workflows** | `workflows/` | File skrip [Workflow](/docs/id/workflows) |

1004| **Output styles** | `output-styles/` | Definisi gaya output |1054| **Output styles** | `output-styles/` | Definisi gaya output |

1005| **Themes** | `themes/` | Definisi tema warna |1055| **Themes** | `themes/` | Definisi tema warna |


1503* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`: hapus definisi komponen duplikat atau hapus `strict: false` di entri marketplace1553* `Plugin my-plugin has conflicting manifests: both plugin.json and marketplace entry specify components.`: hapus definisi komponen duplikat atau hapus `strict: false` di entri marketplace

1504 1554 

1505<h3 id="hook-troubleshooting">1555<h3 id="hook-troubleshooting">

1506 Troubleshooting hook1556 Hook troubleshooting

1507</h3>1557</h3>

1508 1558 

1509**Hook script tidak dieksekusi**:1559**Hook script tidak dieksekusi**:


15203. Konfirmasi tipe hook valid: `command`, `http`, `mcp_tool`, `prompt`, atau `agent`15703. Konfirmasi tipe hook valid: `command`, `http`, `mcp_tool`, `prompt`, atau `agent`

1521 1571 

1522<h3 id="mcp-server-troubleshooting">1572<h3 id="mcp-server-troubleshooting">

1523 Troubleshooting server MCP1573 MCP server troubleshooting

1524</h3>1574</h3>

1525 1575 

1526**Server tidak memulai**:1576**Server tidak memulai**:

Details

96 96 

97[`opusplan` model setting](/docs/id/model-config#opusplan-model-setting) diselesaikan ke Opus selama plan mode dan Sonnet selama eksekusi, jadi setiap toggle plan-mode adalah pergantian model dan memulai cache segar.97[`opusplan` model setting](/docs/id/model-config#opusplan-model-setting) diselesaikan ke Opus selama plan mode dan Sonnet selama eksekusi, jadi setiap toggle plan-mode adalah pergantian model dan memulai cache segar.

98 98 

99[Automatic model fallback](/docs/id/model-config#automatic-model-fallback) pada model Fable dan Opus 5 juga merupakan pergantian model. Ketika pengklasifikasi keamanan menandai permintaan dalam kategori yang memiliki model fallback, Claude Code menjalankan kembali permintaan pada model tersebut dan sesi berlanjut di sana.99[Automatic model fallback](/docs/id/model-config#automatic-model-fallback) pada model Fable, Opus 5.5, dan Opus 5 juga merupakan pergantian model. Ketika pengklasifikasi keamanan menandai permintaan dalam kategori yang memiliki model fallback, Claude Code menjalankan kembali permintaan pada model tersebut dan sesi berlanjut di sana.

100 100 

101Ketika frontmatter skill atau command menamai [`model`](/docs/id/skills#frontmatter-reference) selain model saat ini sesi, putaran itu juga merupakan pergantian model: permintaan berikutnya membaca seluruh riwayat percakapan tanpa cache hits. Model sesi dilanjutkan pada prompt Anda berikutnya. Skill `context: fork` menetapkan [model subagent yang di-fork](/docs/id/skills#run-skills-in-a-subagent) sebagai gantinya.101Ketika frontmatter skill atau command menamai [`model`](/docs/id/skills#frontmatter-reference) selain model saat ini sesi, putaran itu juga merupakan pergantian model: permintaan berikutnya membaca seluruh riwayat percakapan tanpa cache hits. Model sesi dilanjutkan pada prompt Anda berikutnya. Skill `context: fork` menetapkan [model subagent yang di-fork](/docs/id/skills#run-skills-in-a-subagent) sebagai gantinya.

102 102 

Details

1384* [How Anthropic teams use Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code): alur kerja nyata dari tim teknik, produk, desain, dan data, dengan pendalaman tentang [legal](https://claude.com/blog/how-anthropic-uses-claude-legal), [marketing](https://claude.com/blog/how-anthropic-uses-claude-marketing), dan [cybersecurity](https://claude.com/blog/how-anthropic-uses-claude-cybersecurity)1384* [How Anthropic teams use Claude Code](https://claude.com/blog/how-anthropic-teams-use-claude-code): alur kerja nyata dari tim teknik, produk, desain, dan data, dengan pendalaman tentang [legal](https://claude.com/blog/how-anthropic-uses-claude-legal), [marketing](https://claude.com/blog/how-anthropic-uses-claude-marketing), dan [cybersecurity](https://claude.com/blog/how-anthropic-uses-claude-cybersecurity)

1385* [Scaling agentic coding guide](https://resources.anthropic.com/hubfs/Scaling%20agentic%20coding%20across%20your%20organization.pdf): panduan adopsi perusahaan1385* [Scaling agentic coding guide](https://resources.anthropic.com/hubfs/Scaling%20agentic%20coding%20across%20your%20organization.pdf): panduan adopsi perusahaan

1386 1386 

1387Untuk panduan video tentang pola ini, lihat kursus gratis [Claude Code in Action](https://anthropic.skilljar.com/claude-code-in-action) di Anthropic Academy.1387Untuk panduan video tentang pola ini, lihat kursus gratis [Claude Code in Action](https://academy.claude.com/courses/claude-code-in-action) di [Claude Academy](https://academy.claude.com/).

1388 1388 

1389<h2 id="related-resources">1389<h2 id="related-resources">

1390 Sumber daya terkait1390 Sumber daya terkait

quickstart.md +1 −0

Details

379 379 

380* **Di Claude Code**: Ketik `/help` atau tanya "bagaimana cara saya..."380* **Di Claude Code**: Ketik `/help` atau tanya "bagaimana cara saya..."

381* **Dokumentasi**: Anda di sini! Jelajahi panduan lainnya381* **Dokumentasi**: Anda di sini! Jelajahi panduan lainnya

382* **Kursus**: Ikuti [Claude Code 101](https://academy.claude.com/courses/claude-code-101) dan kursus gratis lainnya yang dapat Anda ikuti sendiri di [Claude Academy](https://academy.claude.com/)

382* **Komunitas**: Bergabunglah dengan [Discord](https://www.anthropic.com/discord) kami untuk tips dan dukungan383* **Komunitas**: Bergabunglah dengan [Discord](https://www.anthropic.com/discord) kami untuk tips dan dukungan

Details

187* **Menarik sesi dengan `/teleport`**: ketika Anda menarik sesi [cloud](/docs/id/claude-code-on-the-web#from-cloud-to-terminal) ke terminal Anda dengan `/teleport`, perangkat yang terhubung tidak menerima riwayat percakapan yang ditarik sebelumnya. Pesan baru di kedua arah pergi ke dan dari percakapan yang ditarik, yang sekarang adalah yang terbuka di terminal Anda.187* **Menarik sesi dengan `/teleport`**: ketika Anda menarik sesi [cloud](/docs/id/claude-code-on-the-web#from-cloud-to-terminal) ke terminal Anda dengan `/teleport`, perangkat yang terhubung tidak menerima riwayat percakapan yang ditarik sebelumnya. Pesan baru di kedua arah pergi ke dan dari percakapan yang ditarik, yang sekarang adalah yang terbuka di terminal Anda.

188* **Pesan dari sesi lain Anda**: dengan [pesan lintas sesi](/docs/id/cross-session-messaging), koneksi yang sama membawa pesan antara sesi Anda sendiri di mesin yang berbeda dan dari [sesi cloud](/docs/id/claude-code-on-the-web) Anda, melalui server Anthropic seperti sisa lalu lintas Remote Control. [Pesan sesi di mesin lain](/docs/id/cross-session-messaging#message-sessions-on-other-machines) mencakup aturan pengiriman dan [Kontrol pesan masuk](/docs/id/cross-session-messaging#control-inbound-messages) mencakup kontrol masuk. Memerlukan Claude Code v2.1.224 atau lebih baru.188* **Pesan dari sesi lain Anda**: dengan [pesan lintas sesi](/docs/id/cross-session-messaging), koneksi yang sama membawa pesan antara sesi Anda sendiri di mesin yang berbeda dan dari [sesi cloud](/docs/id/claude-code-on-the-web) Anda, melalui server Anthropic seperti sisa lalu lintas Remote Control. [Pesan sesi di mesin lain](/docs/id/cross-session-messaging#message-sessions-on-other-machines) mencakup aturan pengiriman dan [Kontrol pesan masuk](/docs/id/cross-session-messaging#control-inbound-messages) mencakup kontrol masuk. Memerlukan Claude Code v2.1.224 atau lebih baru.

189* **Prompt yang Anda kirim di tengah giliran**: ketika Anda mengirim prompt dari perangkat yang terhubung sebelum giliran saat ini berakhir, Claude Code mengantreannya dan menyimpannya dalam transkrip perangkat setelah giliran itu selesai.189* **Prompt yang Anda kirim di tengah giliran**: ketika Anda mengirim prompt dari perangkat yang terhubung sebelum giliran saat ini berakhir, Claude Code mengantreannya dan menyimpannya dalam transkrip perangkat setelah giliran itu selesai.

190* **Diff perubahan Anda**: ketika direktori sesi berada di repositori git, panel diff perangkat yang terhubung menampilkan diff perubahan yang tidak dikomit Anda. Perangkat meminta diff melalui koneksi, dan Claude Code menghitungnya di mesin Anda. Ketika pohon kerja Anda bersih, Claude Code malah melayani perubahan cabang Anda sejak divergen dari cabang default. Sebelum v2.1.247, Claude Code melaporkan diff ke perangkat yang terhubung hanya dalam sesi yang dilayani oleh `claude remote-control`.190* **Diff perubahan Anda**: ketika direktori sesi berada di repositori git, panel diff perangkat yang terhubung menampilkan perubahan Anda. Perangkat meminta diff melalui koneksi, dan Claude Code menghitungnya di mesin Anda. Pada cabang yang memiliki komit di depan cabang default repositori, panel menampilkan perubahan sejak cabang terpisah darinya, termasuk edit yang belum dikomit Anda. Pada cabang default itu sendiri, atau pada cabang yang tidak di depan itu, panel menampilkan hanya perubahan yang belum dikomit Anda. Sebelum v2.1.247, Claude Code melaporkan diff ke perangkat yang terhubung hanya dalam sesi yang dilayani oleh `claude remote-control`.

191* **Model**: ketika Anda memilih [model](/docs/id/model-config) dari perangkat yang terhubung, Claude Code menjalankan sesi pada model itu. Pemilih `/model` terminal, `/status`, dan `/config` menampilkan model itu. Memerlukan Claude Code v2.1.238 atau lebih baru.191* **Model**: ketika Anda memilih [model](/docs/id/model-config) dari perangkat yang terhubung, Claude Code menjalankan sesi pada model itu. Pemilih `/model` terminal, `/status`, dan `/config` menampilkan model itu. Memerlukan Claude Code v2.1.238 atau lebih baru.

192 * Model yang Anda pilih dari kontrol model perangkat berlaku hanya untuk sesi saat ini. Ketika Anda mengirim `/model <name>` dari perangkat ke sesi interaktif, Claude Code juga menetapkan default Anda untuk sesi baru.192 * Model yang Anda pilih dari kontrol model perangkat berlaku hanya untuk sesi saat ini. Ketika Anda mengirim `/model <name>` dari perangkat ke sesi interaktif, Claude Code juga menetapkan default Anda untuk sesi baru.

193 * Jika Anda mengirim nama yang Claude Code tidak kenali, seperti nama tampilan di mana ID model diharapkan, Claude Code [menolak pilihan](/docs/id/errors#model-is-not-a-recognized-model-id) dan sesi menyimpan model saat ini. Sebelum v2.1.260, Claude Code menyimpan pilihan yang tidak dikenali dari kontrol model perangkat, dan pesan berikutnya Anda gagal.193 * Jika Anda mengirim nama yang Claude Code tidak kenali, seperti nama tampilan di mana ID model diharapkan, Claude Code [menolak pilihan](/docs/id/errors#model-is-not-a-recognized-model-id) dan sesi menyimpan model saat ini. Sebelum v2.1.260, Claude Code menyimpan pilihan yang tidak dikenali dari kontrol model perangkat, dan pesan berikutnya Anda gagal.

sandboxing.md +12 −6

Details

179 Direktori sementara179 Direktori sementara

180</h4>180</h4>

181 181 

182Direktori temp sesi dapat ditulis di dalam sandbox secara default, bersama dengan direktori kerja. Kecuali Anda [disable filesystem isolation](#disable-filesystem-isolation), Claude Code menetapkan `$TMPDIR` ke direktori ini untuk perintah sandboxed, sehingga alat yang menulis file sementara bekerja tanpa konfigurasi tambahan. Perintah unsandboxed mewarisi `$TMPDIR` shell Anda tanpa perubahan, sehingga sementara isolasi filesystem aktif, perintah sandboxed dan unsandboxed menyelesaikan `$TMPDIR` ke direktori yang berbeda. Untuk meneruskan file sementara di antara keduanya, tulis di bawah direktori kerja sebagai gantinya.182Direktori temp sesi dapat ditulis di dalam sandbox secara default, bersama dengan direktori kerja. Kecuali Anda [disable filesystem isolation](#disable-filesystem-isolation), Claude Code menetapkan `$TMPDIR` ke direktori ini untuk perintah sandboxed, sehingga alat yang menulis file sementara bekerja tanpa konfigurasi tambahan.

183 

184Perintah unsandboxed mewarisi `$TMPDIR` shell Anda ketika diatur, sehingga sementara isolasi filesystem aktif, perintah sandboxed dan unsandboxed menyelesaikan `$TMPDIR` ke direktori yang berbeda. Jika shell Anda membiarkan `$TMPDIR` tidak diatur atau kosong, perintah unsandboxed yang mereferensikan `$TMPDIR` menerima override [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) Anda, atau direktori temp sistem operasi ketika Anda belum menetapkan satu atau override adalah jalur panjang, sehingga variabel tidak berkembang menjadi string kosong. Untuk meneruskan file sementara di antara keduanya, tulis di bawah direktori kerja sebagai gantinya.

183 185 

184<h2 id="configure-sandboxing">186<h2 id="configure-sandboxing">

185 Konfigurasi sandboxing187 Konfigurasi sandboxing


309 311 

310* Perintah sandboxed mewarisi `$TMPDIR` shell Anda daripada direktori temp sesi, karena setiap direktori temp dapat ditulis dan Claude Code tidak lagi mengarahkan perintah ke yang sesi.312* Perintah sandboxed mewarisi `$TMPDIR` shell Anda daripada direktori temp sesi, karena setiap direktori temp dapat ditulis dan Claude Code tidak lagi mengarahkan perintah ke yang sesi.

311 313 

312 Di Linux variabel sering tidak diatur dalam shell induk, jadi dapat berkembang kosong di dalam perintah sandboxed; Claude Code memberi tahu Claude melalui panduan alat Bash untuk membuat direktori scratch dengan `mktemp -d` daripada mengandalkan `$TMPDIR`.314 Di Linux variabel sering tidak diatur dalam shell induk. Panduan alat Bash memberi tahu Claude untuk membuat direktori scratch dengan `mktemp -d` daripada mengandalkan `$TMPDIR`.

313* [`autoAllowBashIfSandboxed`](/docs/id/settings-reference#sandbox-autoallowbashifsandboxed) masih default ke `true`, jadi perintah sandboxed terus berjalan tanpa prompt. Atur ke `false` untuk meminta perintah sandboxed.315* [`autoAllowBashIfSandboxed`](/docs/id/settings-reference#sandbox-autoallowbashifsandboxed) masih default ke `true`, jadi perintah sandboxed terus berjalan tanpa prompt. Atur ke `false` untuk meminta perintah sandboxed.

314 316 

315<h3 id="protect-credentials">317<h3 id="protect-credentials">


743 745 

744* **Perintah gagal dengan kesalahan host-not-allowed**: banyak alat CLI perlu menjangkau host tertentu. Memberikan izin saat diminta menambahkan host ke daftar yang diizinkan sehingga alat berjalan di dalam sandbox di masa depan.746* **Perintah gagal dengan kesalahan host-not-allowed**: banyak alat CLI perlu menjangkau host tertentu. Memberikan izin saat diminta menambahkan host ke daftar yang diizinkan sehingga alat berjalan di dalam sandbox di masa depan.

745* **`jest` hang atau gagal**: `watchman` tidak kompatibel dengan sandbox. Jalankan `jest --no-watchman` sebagai gantinya.747* **`jest` hang atau gagal**: `watchman` tidak kompatibel dengan sandbox. Jalankan `jest --no-watchman` sebagai gantinya.

746* **Go-based CLIs gagal verifikasi TLS di macOS**: alat seperti `gh`, `gcloud`, dan `terraform` mungkin gagal verifikasi TLS di bawah Seatbelt. Daftar alat ini dalam `excludedCommands` untuk menjalankannya di luar sandbox. Jika Anda menggunakan `httpProxyPort` dengan proxy MITM dan CA khusus, atur [`enableWeakerNetworkIsolation`](/docs/id/settings-reference#sandbox-enableweakernetworkisolation) ke `true` sebagai gantinya.748* **Go-based CLIs gagal verifikasi TLS di macOS**: alat seperti `gh`, `gcloud`, dan `terraform` mungkin gagal verifikasi TLS di bawah Seatbelt. Daftar alat ini dalam [`excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands). Jika Anda menggunakan `httpProxyPort` dengan proxy MITM dan CA khusus, atur [`enableWeakerNetworkIsolation`](/docs/id/settings-reference#sandbox-enableweakernetworkisolation) ke `true` sebagai gantinya.

747* **Perintah `open`, `osascript`, atau alur autentikasi berbasis browser gagal dengan kesalahan `-600` di macOS**: sandbox memblokir Apple Events secara default. Atur [`allowAppleEvents`](/docs/id/settings-reference#sandbox-allowappleevents) ke `true` dalam pengaturan pengguna, terkelola, atau CLI Anda untuk mengizinkannya. Pengaturan proyek diabaikan untuk kunci ini. Mengaktifkannya menghilangkan isolasi eksekusi kode, karena perintah sandboxed kemudian dapat meluncurkan aplikasi lain tanpa sandbox tanpa prompt pengguna dan mengirim perintah AppleScript ke aplikasi yang berjalan, tunduk pada prompt otomasi-persetujuan macOS (TCC). Alternatifnya, tambahkan perintah ke `excludedCommands` untuk menjalankannya di luar sandbox.749* **Perintah `open`, `osascript`, atau alur autentikasi berbasis browser gagal dengan kesalahan `-600` di macOS**: sandbox memblokir Apple Events secara default. Atur [`allowAppleEvents`](/docs/id/settings-reference#sandbox-allowappleevents) ke `true` dalam pengaturan pengguna, terkelola, atau CLI Anda untuk mengizinkannya. Pengaturan proyek diabaikan untuk kunci ini. Mengaktifkannya menghilangkan isolasi eksekusi kode, karena perintah sandboxed kemudian dapat meluncurkan aplikasi lain tanpa sandbox tanpa prompt pengguna dan mengirim perintah AppleScript ke aplikasi yang berjalan, tunduk pada prompt otomasi-persetujuan macOS (TCC). Alternatifnya, tambahkan perintah ke [`excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands).

748* **Perintah `docker` gagal**: `docker` tidak kompatibel dengan sandbox. Tambahkan `docker *` ke `excludedCommands` untuk menjalankannya di luar sandbox.750* **Perintah `docker` gagal**: `docker` tidak kompatibel dengan sandbox. Tambahkan `docker *` ke [`excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands).

749* **`pbcopy`, `xclip`, atau `wl-copy` tidak memperbarui clipboard**: utilitas clipboard ini dapat gagal menjangkau clipboard sistem dari dalam sandbox, dalam hal ini teks yang dialirkan ke dalamnya tidak tiba. Untuk menempatkan output Claude di clipboard Anda, minta Claude untuk mencetaknya dalam responsnya, kemudian jalankan [`/copy`](/docs/id/commands), yang menulis ke clipboard dari proses Claude Code daripada dari perintah sandboxed. Alternatifnya, tambahkan `pbcopy *`, `wl-copy *`, atau `xclip *` ke `excludedCommands` untuk menjalankan perintah di luar sandbox.751* **`pbcopy`, `xclip`, atau `wl-copy` tidak memperbarui clipboard**: utilitas clipboard ini dapat gagal menjangkau clipboard sistem dari dalam sandbox, dalam hal ini teks yang dialirkan ke dalamnya tidak tiba.

752 

753 Untuk menempatkan output Claude di clipboard Anda, minta Claude untuk mencetaknya dalam responsnya, kemudian jalankan [`/copy`](/docs/id/commands). `/copy` menulis ke clipboard dari proses Claude Code daripada dari perintah sandboxed.

754 

755 Ketika Claude mengalirkan teks ke salah satu alat ini, menambahkan alat ke [`excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands) tidak mengeluarkan panggilan itu dari sandbox dengan sendirinya.

750* **Perintah git gagal dengan `unable to unlink old`**: `git merge`, `git checkout`, dan perintah serupa gagal dengan cara ini ketika mereka perlu mengganti file yang sandbox tolak penulisannya, apakah file itu berada di bawah [jalur yang dilindungi](#protected-paths) seperti `.claude/skills`, di bawah salah satu entri `denyWrite` Anda, atau di luar direktori yang sandbox izinkan perintah untuk menulis sama sekali. Di Linux dan WSL2 kesalahan berakhir dengan `Read-only file system`.756* **Perintah git gagal dengan `unable to unlink old`**: `git merge`, `git checkout`, dan perintah serupa gagal dengan cara ini ketika mereka perlu mengganti file yang sandbox tolak penulisannya, apakah file itu berada di bawah [jalur yang dilindungi](#protected-paths) seperti `.claude/skills`, di bawah salah satu entri `denyWrite` Anda, atau di luar direktori yang sandbox izinkan perintah untuk menulis sama sekali. Di Linux dan WSL2 kesalahan berakhir dengan `Read-only file system`.

751 757 

752 Setelah kegagalan, Claude mungkin [menawarkan untuk menjalankan kembali perintah di luar sandbox](#the-unsandboxed-retry-escape-hatch); setujui retry itu, atau jalankan perintah git sendiri di terminal lain. Jika Anda telah menetapkan `allowUnsandboxedCommands` ke `false`, Claude tidak dapat menawarkan retry, jadi jalankan perintah sendiri. Jika perintah git yang sama sering gagal, tambahkan ke [`excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands).758 Setelah kegagalan, Claude mungkin [menawarkan untuk menjalankan kembali perintah di luar sandbox](#the-unsandboxed-retry-escape-hatch); setujui retry itu, atau jalankan perintah git sendiri di terminal lain. Jika Anda telah menetapkan `allowUnsandboxedCommands` ke `false`, Claude tidak dapat menawarkan retry, jadi jalankan perintah sendiri. Jika perintah git yang sama sering gagal, tambahkan ke [`excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands).

Details

31/plugin install security-guidance@claude-plugins-official31/plugin install security-guidance@claude-plugins-official

32```32```

33 33 

34`/plugin` membuka panel interaktif dan hanya tersedia di CLI terminal. Jika Claude melaporkan bahwa `/plugin` tidak tersedia di lingkungan ini, instal dengan cara lain:34`/plugin` membuka panel interaktif di CLI terminal. Jika Claude melaporkan bahwa `/plugin` tidak tersedia di lingkungan ini, instal dengan cara lain:

35 35 

36* **Aplikasi desktop Claude, sesi lokal atau SSH**: buka [browser plugin](/docs/id/desktop#install-plugins) dengan mengklik tombol **+** di sebelah prompt, kemudian **Plugins**, kemudian **Add plugin**36* **Aplikasi desktop Claude, sesi lokal atau SSH**: buka [browser plugin](/docs/id/desktop#install-plugins) dengan mengklik tombol **+** di sebelah prompt, kemudian **Plugins**, kemudian **Add plugin**

37* **Sesi cloud**: deklarasikan plugin dalam `.claude/settings.json` seperti yang ditunjukkan di bawah [Enable in cloud sessions](#enable-in-cloud-sessions-and-shared-repositories)37* **Ekstensi VS Code**: instal dari [dialog **Manage plugins**](/docs/id/vs-code#manage-plugins)

38* **Sesi cloud**: aktifkan plugin untuk akun claude.ai Anda sehingga Claude Code memuatnya sebagai [plugin yang disinkronkan](/docs/id/plugins-reference#synced-plugins). Sesi cloud tidak memuat plugin dari pengaturan pengguna Anda atau dari `.claude/settings.json` repositori, seperti yang dijelaskan dalam [What carries over from your setup](/docs/id/cloud-environments#what-carries-over-from-your-setup)

38 39 

39Instalasi terminal meminta scope. Pilih user scope untuk menulis plugin ke pengaturan pengguna Anda, sehingga dimuat di setiap sesi lokal baru yang Anda mulai di mesin ini.40Instalasi terminal meminta scope. Pilih user scope untuk menulis plugin ke pengaturan pengguna Anda, sehingga dimuat di setiap sesi lokal baru yang Anda mulai di mesin ini.

40 41 


45 46 

46Periksa ringkasan instalasi. Jika melaporkan `Run /reload-plugins to activate.`, lihat [Apply plugin changes without restarting](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) untuk mengaktifkan plugin dalam sesi Anda saat ini.47Periksa ringkasan instalasi. Jika melaporkan `Run /reload-plugins to activate.`, lihat [Apply plugin changes without restarting](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) untuk mengaktifkan plugin dalam sesi Anda saat ini.

47 48 

48<h3 id="enable-in-cloud-sessions-and-shared-repositories">49<h3 id="enable-for-your-team-in-local-sessions">

49 Aktifkan dalam sesi cloud dan repositori bersama50 Aktifkan untuk tim Anda dalam sesi lokal

50</h3>51</h3>

51 52 

52Plugin yang dibatasi pengguna tidak masuk ke [sesi cloud](/docs/id/claude-code-on-the-web), karena sesi tersebut tidak berjalan di mesin Anda. Untuk mengaktifkan plugin di sana, atau untuk mengaktifkannya bagi semua orang yang mengkloning repositori, deklarasikan dalam pengaturan proyek yang diperiksa:53Untuk mengaktifkan plugin dalam sesi lokal yang dimulai rekan kerja Anda di repositori, deklarasikan dalam pengaturan proyek yang diperiksa:

53 54 

54```json .claude/settings.json theme={null}55```json .claude/settings.json theme={null}

55{56{

Details

166* Runner menetapkan `GIT_TERMINAL_PROMPT=0`, jadi git tidak meminta nama pengguna atau kata sandi.166* Runner menetapkan `GIT_TERMINAL_PROMPT=0`, jadi git tidak meminta nama pengguna atau kata sandi.

167* Runner menjalankan SSH dengan `BatchMode=yes`, ditambahkan ke `GIT_SSH_COMMAND` Anda jika Anda menetapkan satu, jadi SSH tidak meminta frasa sandi atau konfirmasi host.167* Runner menjalankan SSH dengan `BatchMode=yes`, ditambahkan ke `GIT_SSH_COMMAND` Anda jika Anda menetapkan satu, jadi SSH tidak meminta frasa sandi atau konfirmasi host.

168* Runner menetapkan `GCM_INTERACTIVE=never`, jadi Git Credential Manager tidak membuka dialog sign-in.168* Runner menetapkan `GCM_INTERACTIVE=never`, jadi Git Credential Manager tidak membuka dialog sign-in.

169* Runner menghapus `core.askPass`, jadi jika Anda menggunakan helper askpass, aturnya melalui variabel lingkungan `GIT_ASKPASS`.169* Runner menghapus `core.askPass`, jadi jika Anda menggunakan helper askpass, aturnya melalui variabel lingkungan `GIT_ASKPASS` sebagai gantinya.

170 170 

171Jika host git Anda menolak kredensial, atau Anda tidak mengonfigurasi satu, runner mencoba beberapa kali dan kemudian gagal persiapan repositori ketika repositori adalah yang didorong sesi untuk hasil. Untuk repositori yang hanya dibaca sesi, [Troubleshooting](#troubleshooting) mencakup kapan runner melewatinya. Runner tidak meneruskan pengaturan ini ke lingkungan sesi.171Jika host git Anda menolak kredensial, atau Anda tidak mengonfigurasi satu, runner mencoba beberapa kali dan kemudian gagal persiapan repositori ketika repositori adalah yang didorong sesi untuk hasil. Untuk repositori yang hanya dibaca sesi, [Troubleshooting](#troubleshooting) mencakup kapan runner melewatinya. Runner tidak meneruskan pengaturan ini ke lingkungan sesi.

172 172 


184 184 

185Proxy memerlukan `--capacity 1` karena URL proxy adalah per-sesi, dan git 2.32 atau lebih baru karena git yang lebih lama mengabaikan mekanisme konfigurasi yang digunakan proxy untuk mengisolasi sesi satu sama lain. Runner menolak untuk memulai jika salah satu persyaratan tidak terpenuhi. Karena proxy mengambil dari sisi Anthropic, host git Anda harus dapat dijangkau dari infrastruktur Anthropic, persyaratan yang sama yang dimiliki sesi yang di-host Anthropic; untuk host git yang hanya dapat dirutekan di dalam jaringan Anda, gunakan [`checkout` lifecycle hook](/docs/id/self-hosted-environments-configuration#checkout). Setiap proses runner menangani satu sesi pada satu waktu, jadi jalankan lebih banyak replika untuk paralelisme. Ketika proxy diaktifkan, `--git-host-rewrite` dan `--git-ssh-rewrite` tidak berpengaruh: URL proxy menunjuk ke `api.anthropic.com`, bukan host git Anda.185Proxy memerlukan `--capacity 1` karena URL proxy adalah per-sesi, dan git 2.32 atau lebih baru karena git yang lebih lama mengabaikan mekanisme konfigurasi yang digunakan proxy untuk mengisolasi sesi satu sama lain. Runner menolak untuk memulai jika salah satu persyaratan tidak terpenuhi. Karena proxy mengambil dari sisi Anthropic, host git Anda harus dapat dijangkau dari infrastruktur Anthropic, persyaratan yang sama yang dimiliki sesi yang di-host Anthropic; untuk host git yang hanya dapat dirutekan di dalam jaringan Anda, gunakan [`checkout` lifecycle hook](/docs/id/self-hosted-environments-configuration#checkout). Setiap proses runner menangani satu sesi pada satu waktu, jadi jalankan lebih banyak replika untuk paralelisme. Ketika proxy diaktifkan, `--git-host-rewrite` dan `--git-ssh-rewrite` tidak berpengaruh: URL proxy menunjuk ke `api.anthropic.com`, bukan host git Anda.

186 186 

187Runner juga melaporkan opt-in ke Anthropic ketika mendaftar, mencetak `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` pada startup. Setiap sesi pada runner yang telah opt-in kemudian menggunakan baik git yang dikelola Anthropic atau URL proxy per-sesi. Ketika sesi menggunakan URL proxy per-sesi, runner mencatat satu baris `[runner:warn]` mengatakan demikian.187Runner juga melaporkan opt-in ke Anthropic ketika mendaftar, mencetak `Registering as opted in to Anthropic-managed git (--use-anthropic-git-proxy)` pada startup. Melaporkan opt-in memerlukan Claude Code v2.1.267 atau lebih baru, dan versi sebelumnya menerima flag tanpa melaporkannya atau mencetak baris itu. Setiap sesi pada runner yang telah opt-in kemudian menggunakan baik git yang dikelola Anthropic atau URL proxy per-sesi. Ketika sesi menggunakan URL proxy per-sesi, runner mencatat satu baris `[runner:warn]` mengatakan demikian.

188 188 

189<h3 id="rewrite-git-urls-for-private-networks">189<h3 id="rewrite-git-urls-for-private-networks">

190 Tulis ulang URL git untuk jaringan pribadi190 Tulis ulang URL git untuk jaringan pribadi


223Tukar `linux-x64` untuk `linux-arm64` jika node Anda adalah ARM, atau untuk `linux-x64-musl` atau `linux-arm64-musl` pada gambar berbasis musl seperti Alpine; lihat [Alpine Linux setup](/docs/id/setup#alpine-linux-and-musl-based-distributions) untuk paket tambahan yang dibutuhkan gambar musl. URL adalah lokasi rilis Claude Code standar, jadi Anda dapat memverifikasi biner yang diunduh terhadap manifes yang ditandatangani rilis seperti yang dijelaskan dalam [Binary integrity and code signing](/docs/id/setup#binary-integrity-and-code-signing). Bangun gambar dengan Claude Code versi 2.1.224 atau lebih baru, kemudian dorong ke registri Anda dan referensikan dalam resep di bawah:223Tukar `linux-x64` untuk `linux-arm64` jika node Anda adalah ARM, atau untuk `linux-x64-musl` atau `linux-arm64-musl` pada gambar berbasis musl seperti Alpine; lihat [Alpine Linux setup](/docs/id/setup#alpine-linux-and-musl-based-distributions) untuk paket tambahan yang dibutuhkan gambar musl. URL adalah lokasi rilis Claude Code standar, jadi Anda dapat memverifikasi biner yang diunduh terhadap manifes yang ditandatangani rilis seperti yang dijelaskan dalam [Binary integrity and code signing](/docs/id/setup#binary-integrity-and-code-signing). Bangun gambar dengan Claude Code versi 2.1.224 atau lebih baru, kemudian dorong ke registri Anda dan referensikan dalam resep di bawah:

224 224 

225```bash theme={null}225```bash theme={null}

226docker build --build-arg CLAUDE_CODE_VERSION=2.1.224 -t <your-registry>/claude-runner:latest .226docker build --build-arg CLAUDE_CODE_VERSION=2.1.267 -t <your-registry>/claude-runner:latest .

227```227```

228 228 

229<h2 id="size-cpu-and-memory-for-sessions">229<h2 id="size-cpu-and-memory-for-sessions">

Details

171* **Blok `env`**: terlepas dari unit telemetri dan variabel routing yang dipasangkan dengan kunci kredensial, keduanya dibahas di bawah, blok ini menggabungkan per kunci di seluruh sumber yang dikendalikan admin. Untuk setiap variabel lingkungan, sumber dengan prioritas tertinggi yang mendefinisikannya menang, dan sumber admin yang lebih rendah mengisi variabel yang sumber yang lebih tinggi biarkan tidak diatur. Entri `env` yang dikelola endpoint oleh karena itu berlaku kapan pun konfigurasi yang dikelola server meninggalkan variabel tersebut tidak diatur, atau saat nilai server yang di-cache untuk itu [ditahan menunggu konfirmasi server](#fetch-and-caching-behavior). Memerlukan Claude Code v2.1.223 atau lebih baru. Sebelum v2.1.223, Claude Code menerapkan blok `env` sumber yang dipilih secara keseluruhan saja.171* **Blok `env`**: terlepas dari unit telemetri dan variabel routing yang dipasangkan dengan kunci kredensial, keduanya dibahas di bawah, blok ini menggabungkan per kunci di seluruh sumber yang dikendalikan admin. Untuk setiap variabel lingkungan, sumber dengan prioritas tertinggi yang mendefinisikannya menang, dan sumber admin yang lebih rendah mengisi variabel yang sumber yang lebih tinggi biarkan tidak diatur. Entri `env` yang dikelola endpoint oleh karena itu berlaku kapan pun konfigurasi yang dikelola server meninggalkan variabel tersebut tidak diatur, atau saat nilai server yang di-cache untuk itu [ditahan menunggu konfirmasi server](#fetch-and-caching-behavior). Memerlukan Claude Code v2.1.223 atau lebih baru. Sebelum v2.1.223, Claude Code menerapkan blok `env` sumber yang dipilih secara keseluruhan saja.

172 * **Unit telemetri**: kunci exporter `OTEL_EXPORTER_OTLP_*`, toggle penangkapan konten `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER`, dan variabel tracing beta `ENABLE_BETA_TRACING_DETAILED` dan `BETA_TRACING_ENDPOINT` mengikuti sumber tertinggi yang menetapkan salah satu dari mereka sebagai unit. Sumber yang mengirimkan kunci kredensial `otelHeadersHelper` juga mengklaim unit, tetapi mendarat variabel ini hanya ketika itu adalah sumber yang dipilih: sumber yang tidak dipilih tetapi mengirimkan kunci tidak berkontribusi pada salah satu dari mereka dan masih memblokir sumber yang lebih rendah dari mengisinya. Bagaimanapun, endpoint exporter dari satu sumber tidak pernah dapat dipasangkan dengan kredensial dari sumber lain.172 * **Unit telemetri**: kunci exporter `OTEL_EXPORTER_OTLP_*`, toggle penangkapan konten `OTEL_LOG_*`, `OTEL_LOGS_EXPORTER`, dan variabel tracing beta `ENABLE_BETA_TRACING_DETAILED` dan `BETA_TRACING_ENDPOINT` mengikuti sumber tertinggi yang menetapkan salah satu dari mereka sebagai unit. Sumber yang mengirimkan kunci kredensial `otelHeadersHelper` juga mengklaim unit, tetapi mendarat variabel ini hanya ketika itu adalah sumber yang dipilih: sumber yang tidak dipilih tetapi mengirimkan kunci tidak berkontribusi pada salah satu dari mereka dan masih memblokir sumber yang lebih rendah dari mengisinya. Bagaimanapun, endpoint exporter dari satu sumber tidak pernah dapat dipasangkan dengan kredensial dari sumber lain.

173 * **Routing yang dipasangkan kredensial**: sumber yang memasangkan variabel routing dengan kunci kredensial yang hanya dipilih-sumber, seperti `apiKeyHelper` atau `otelHeadersHelper`, berkontribusi pada variabel routing tersebut hanya ketika itu memenangkan slot.173 * **Routing yang dipasangkan kredensial**: sumber yang memasangkan variabel routing dengan kunci kredensial yang hanya dipilih-sumber, seperti `apiKeyHelper` atau `otelHeadersHelper`, berkontribusi pada variabel routing tersebut hanya ketika itu memenangkan slot.

174* **Kunci masuk gateway**: Claude Code tidak pernah membaca [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl) atau nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) dari pengaturan yang dikelola server, jadi memilih pengaturan yang dikelola server tidak menyediakan masuk gateway atau menyembunyikan yang diatur dalam kebijakan MDM atau file pengaturan terkelola. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) mengatakan sumber admin mana di mesin yang menyediakannya.174* **Kunci masuk gateway**: Claude Code tidak pernah membaca [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/id/settings-reference#gatewayinternalnetworks), atau nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) dari pengaturan yang dikelola server, jadi nilai di sana tidak berlaku atau menyembunyikan yang diatur dalam kebijakan MDM atau file pengaturan terkelola. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) mengatakan sumber admin mana di mesin yang menyediakannya.

175 175 

176<h3 id="fetch-and-caching-behavior">176<h3 id="fetch-and-caching-behavior">

177 Perilaku pengambilan dan caching177 Perilaku pengambilan dan caching

sessions.md +16 −10

Details

120| `/resume <name>` | Melanjutkan secara langsung | Melaporkan kesalahan; jalankan `/resume` tanpa argumen untuk membuka pemilih sesi |120| `/resume <name>` | Melanjutkan secara langsung | Melaporkan kesalahan; jalankan `/resume` tanpa argumen untuk membuka pemilih sesi |

121 121 

122<h2 id="name-your-sessions">122<h2 id="name-your-sessions">

123 Beri nama sesi Anda123 Beri nama pada sesi Anda

124</h2>124</h2>

125 125 

126Berikan sesi nama deskriptif sehingga dapat ditemukan di pemilih sesi dan dapat dilanjutkan berdasarkan nama. Ini paling penting ketika Anda mengerjakan beberapa tugas secara paralel.126Berikan sesi nama deskriptif sehingga mudah ditemukan di pemilih sesi dan dapat dilanjutkan berdasarkan nama. Hal ini paling penting ketika Anda mengerjakan beberapa tugas secara paralel.

127 127 

128| Kapan | Cara mengatur nama |128| Kapan | Cara mengatur nama |

129| :---------------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |129| :---------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

130| Saat startup | `claude -n auth-refactor` |130| Saat startup | `claude -n auth-refactor` |

131| Selama sesi | `/rename auth-refactor`. Nama juga muncul di bilah prompt |131| Selama sesi | `/rename auth-refactor`. Nama juga muncul di bilah prompt |

132| Dari pemilih sesi | Sorot sesi dan tekan `Ctrl+R` |132| Dari pemilih sesi | Sorot sesi dan tekan `Ctrl+R` |

133| Pada penerimaan rencana | Menerima rencana dalam [mode rencana](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) memberi sesi judul yang dihasilkan berdasarkan rencana kecuali Anda sudah menamakannya |133| Saat menerima plan | Menerima plan dalam [plan mode](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) memberikan sesi judul yang dihasilkan berdasarkan plan kecuali Anda telah menamainya |

134| Dari claude.ai atau aplikasi Claude | Ubah nama sesi [Remote Control](/docs/id/remote-control#connect-from-another-device); Claude Code menerapkan nama yang sama di CLI. Memerlukan Claude Code v2.1.221 atau lebih baru |134| Dari claude.ai atau aplikasi Claude | Ubah nama [sesi Remote Control](/docs/id/remote-control#connect-from-another-device); Claude Code menerapkan nama yang sama di CLI. Memerlukan Claude Code v2.1.221 atau lebih baru |

135| Dari aplikasi desktop | Ubah nama sesi di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions) |135| Dari aplikasi desktop | Ubah nama sesi di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions) |

136 136 

137Setelah Anda memberi nama sesi melalui rute CLI atau dari claude.ai, kembali ke sesi dengan `claude --resume <name>` atau `/resume <name>`; sesi aplikasi desktop dilanjutkan di aplikasi, yang menyimpan riwayat sesinya sendiri. Lihat [Lanjutkan sesi](#resume-a-session) untuk cara resolusi nama berperilaku di seluruh worktrees.137Setelah Anda memberi nama sesi melalui rute CLI atau dari claude.ai, kembali ke sesi tersebut dengan `claude --resume <name>` atau `/resume <name>`; sesi aplikasi desktop dilanjutkan di aplikasi, yang menyimpan riwayat sesinya sendiri. Lihat [Resume a session](#resume-a-session) untuk mengetahui bagaimana perilaku resolusi nama di seluruh worktrees.

138 138 

139Ketika Anda memulai atau melanjutkan sesi interaktif dengan nama yang sudah digunakan oleh sesi langsung lain di mesin ini, atau mengganti nama sesi menjadi nama seperti itu, Claude Code membiarkan nama dengan sesi yang sudah memilikinya, mengganti nama Anda menjadi varian dengan akhiran dua kata, seperti `auth-refactor-graceful-unicorn`, dan memberitahu Anda. Jalankan `/rename` dengan nama baru jika Anda lebih suka memilih sendiri. Sebelum v2.1.232, kedua sesi menyimpan nama tersebut.139Ketika Anda memulai atau melanjutkan sesi interaktif dengan nama yang sudah digunakan oleh sesi live lain di mesin ini, atau mengganti nama sesi menjadi nama seperti itu, Claude Code membiarkan nama dengan sesi yang sudah memilikinya, mengganti nama Anda menjadi varian dengan akhiran dua kata, seperti `auth-refactor-graceful-unicorn`, dan memberitahu Anda. Jalankan `/rename` dengan nama baru jika Anda lebih suka memilih sendiri. Sebelum v2.1.232, kedua sesi menyimpan nama tersebut.

140 140 

141Dalam tiga kasus Claude Code tidak mengganti nama duplikat, sehingga Anda masih dapat melihat dua sesi dengan nama yang sama dalam daftar:141Dalam tiga kasus Claude Code tidak mengganti nama duplikat, sehingga Anda masih dapat melihat dua sesi dengan nama yang sama dalam daftar:

142 142 


144* Tidak memeriksa `--name` dari sesi [background](/docs/id/agent-view#from-your-shell) atau `-p` saat startup.144* Tidak memeriksa `--name` dari sesi [background](/docs/id/agent-view#from-your-shell) atau `-p` saat startup.

145* Tidak dapat mengganti nama sesi di versi Claude Code yang lebih awal.145* Tidak dapat mengganti nama sesi di versi Claude Code yang lebih awal.

146 146 

147Sesi yang tidak Anda beri nama masih mendapatkan dua label yang ditetapkan Claude Code. Hanya judul yang dihasilkan yang berfungsi sebagai pegangan resume:147Sesi yang tidak Anda beri nama masih mendapatkan dua label yang ditetapkan Claude Code. Hanya judul yang dihasilkan yang berfungsi sebagai handle resume:

148 148 

149* Nama tampilan default: sesi interaktif yang tidak pernah Anda beri nama masih mendapatkan nama tampilan default saat dimulai. Memerlukan Claude Code v2.1.196 atau lebih baru. Default menggabungkan nama direktori kerja dengan akhiran dua karakter, misalnya `my-app-3f`, dan mengidentifikasi sesi dalam daftar sesi yang sedang berjalan, seperti [tampilan agen](/docs/id/agent-view) dan output `claude agents --json`. Default bukan pegangan resume. Jika Anda meneruskannya ke `claude --resume` atau `/resume`, Claude Code tidak menemukan sesi. Memberi nama sesi menggantikan default dalam daftar tersebut, dan begitu juga dengan menerima rencana.149* Nama tampilan default: sesi interaktif yang tidak pernah Anda beri nama masih mendapatkan nama tampilan default saat dimulai. Memerlukan Claude Code v2.1.196 atau lebih baru. Default menggabungkan nama direktori kerja dengan akhiran dua karakter, misalnya `my-app-3f`, dan mengidentifikasi sesi dalam daftar sesi yang berjalan, seperti [agent view](/docs/id/agent-view) dan output `claude agents --json`. Default bukan handle resume. Jika Anda meneruskannya ke `claude --resume` atau `/resume`, Claude Code tidak menemukan sesi. Memberi nama sesi menggantikan default dalam daftar tersebut, begitu juga dengan menerima plan.

150* Judul yang dihasilkan: jika Anda tidak memberi nama sesi, Claude Code menghasilkan judul sesi untuk itu. Judul adalah ringkasan singkat dari prompt pertama Anda, ditulis oleh permintaan latar belakang ke model kecil/cepat, biasanya model kelas Haiku. Menerima rencana menggantinya dengan judul berdasarkan rencana. Memberi nama sesi menggantikan judul yang dihasilkan. Anda melihat judul prompt pertama di [pemilih sesi](#use-the-session-picker) dan di bidang [`session_name`](/docs/id/statusline) statusline ketika tidak ada nama yang ditetapkan. Judul rencana ditampilkan di dua tempat yang sama dan juga dalam daftar sesi yang sedang berjalan, di mana judul tersebut menggantikan nama tampilan default. Anda dapat meneruskan salah satu judul ke `claude --resume` atau `/resume`, dan Claude Code menyelesaikannya dengan cara yang sama seperti nama yang Anda tetapkan.150* Judul yang dihasilkan: jika Anda tidak memberi nama sesi, Claude Code menghasilkan judul sesi untuk itu. Judul adalah ringkasan singkat dari prompt pertama Anda, ditulis oleh permintaan latar belakang ke model kecil/cepat, biasanya model kelas Haiku. Jalankan `claude -p` yang Anda mulai langsung dari shell atau script tidak mendapatkan satu.

151 

152 Menerima plan menggantikan judul prompt pertama dengan judul berdasarkan plan. Memberi nama sesi juga menggantinya.

153 

154 Anda melihat judul prompt pertama di [pemilih sesi](#use-the-session-picker) dan di bidang [`session_name`](/docs/id/statusline) statusline ketika tidak ada nama yang diatur. Judul plan ditampilkan di tempat yang sama dan juga dalam daftar sesi yang berjalan, di mana ia menggantikan nama tampilan default.

155 

156 Anda dapat meneruskan salah satu judul ke `claude --resume` atau `/resume`, dan Claude Code menyelesaikannya dengan cara yang sama seperti nama yang Anda atur.

151 157 

152<h2 id="use-the-session-picker">158<h2 id="use-the-session-picker">

153 Gunakan pemilih sesi159 Gunakan pemilih sesi

settings.md +3 −3

Details

468 Simpan pengaturan pribadi keluar dari repositori468 Simpan pengaturan pribadi keluar dari repositori

469</h3>469</h3>

470 470 

471Untuk mengubah pengaturan untuk diri sendiri di satu proyek tanpa mengubahnya untuk rekan kerja Anda, simpan di `.claude/settings.local.json` di dalam proyek. Claude Code menerapkan file itu di atas `.claude/settings.json` yang dikomit, jadi jika file tim Anda menetapkan `"model": "claude-sonnet-5"` dan Anda menginginkan Opus, masukkan `"model": "claude-opus-4-8"` di file lokal Anda dan hanya sesi Anda yang berubah.471Untuk mengubah pengaturan untuk diri sendiri di satu proyek tanpa mengubahnya untuk rekan kerja Anda, simpan di `.claude/settings.local.json` di dalam proyek. Claude Code menerapkan file itu di atas `.claude/settings.json` yang dikomit, jadi jika file tim Anda menetapkan `"model": "claude-sonnet-5"` dan Anda menginginkan Opus, masukkan `"model": "claude-opus-5-5"` di file lokal Anda dan hanya sesi Anda yang berubah.

472 472 

473Claude Code juga menulis ke file ini, menyimpannya keluar dari komit Anda, dan menerapkan aturan izinnya tanpa langkah kepercayaan:473Claude Code juga menulis ke file ini, menyimpannya keluar dari komit Anda, dan menerapkan aturan izinnya tanpa langkah kepercayaan:

474 474 


598Misalnya, untuk memulai satu sesi di Opus tanpa mengubah default Anda:598Misalnya, untuk memulai satu sesi di Opus tanpa mengubah default Anda:

599 599 

600```bash theme={null}600```bash theme={null}

601claude --settings '{"model": "claude-opus-4-8"}'601claude --settings '{"model": "claude-opus-5-5"}'

602```602```

603 603 

604<h3 id="when-edits-take-effect">604<h3 id="when-edits-take-effect">


803 803 

804Sesi [cloud](/docs/id/claude-code-on-the-web) berjalan di [lingkungan cloud](/docs/id/cloud-environments) pada klon segar repositori Anda, bukan di mesin Anda. Itu mengubah pengaturan mana yang mencapainya:804Sesi [cloud](/docs/id/claude-code-on-the-web) berjalan di [lingkungan cloud](/docs/id/cloud-environments) pada klon segar repositori Anda, bukan di mesin Anda. Itu mengubah pengaturan mana yang mencapainya:

805 805 

806* **Pengaturan proyek bersama** (`.claude/settings.json`): dibaca dalam sesi dengan satu repositori, karena file adalah bagian dari klon dan sesi dimulai di dalamnya. Komit pengaturan di sana untuk menerapkannya dalam sesi tersebut. Sesi dengan beberapa repositori dimulai di atas klon, jadi dari `.claude/settings.json` setiap repositori hanya memuat plugin dan marketplace yang dideklarasikan file, bukan aturan izin, hooks, `env`, atau kunci lainnya; lihat [Apa yang dibawa dari pengaturan Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup).806* **Pengaturan proyek bersama** (`.claude/settings.json`): dibaca dalam sesi dengan satu repositori, karena file adalah bagian dari klon dan sesi dimulai di dalamnya. Komit pengaturan di sana untuk menerapkannya dalam sesi tersebut. Sesi dengan beberapa repositori dimulai di atas klon dan membaca hanya kunci `enabledPlugins` dan `extraKnownMarketplaces` dari `.claude/settings.json` setiap repositori, bukan aturan izin, hooks, `env`, atau kunci lainnya. Marketplace dan plugin yang dideklarasikan oleh dua kunci tersebut masih [tidak dimuat dalam sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup).

807* **Pengaturan pengguna dan proyek lokal** (`~/.claude/settings.json` dan `.claude/settings.local.json`): tidak dibaca. Keduanya tetap di mesin Anda, dan file lokal tidak ada dalam klon.807* **Pengaturan pengguna dan proyek lokal** (`~/.claude/settings.json` dan `.claude/settings.local.json`): tidak dibaca. Keduanya tetap di mesin Anda, dan file lokal tidak ada dalam klon.

808* **Pengaturan yang dikelola**: hanya [pengaturan yang dikelola server](/docs/id/server-managed-settings) yang mencapai sesi cloud; file `managed-settings.json` atau profil MDM di perangkat Anda tidak. [Lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) juga membaca file pengaturan yang dikelola dalam gambar runner-nya. [Bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku.808* **Pengaturan yang dikelola**: hanya [pengaturan yang dikelola server](/docs/id/server-managed-settings) yang mencapai sesi cloud; file `managed-settings.json` atau profil MDM di perangkat Anda tidak. [Lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) juga membaca file pengaturan yang dikelola dalam gambar runner-nya. [Bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku.

809* **`/config`**: di browser Anda di claude.ai/code, membuka bagian Claude Code dari pengaturan claude.ai Anda daripada mengubah nilai. Untuk mengubah pengaturan untuk sesi cloud, atur [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) di lingkungan, atau dalam sesi dengan satu repositori, komit kunci ke `.claude/settings.json` repositori tersebut.809* **`/config`**: di browser Anda di claude.ai/code, membuka bagian Claude Code dari pengaturan claude.ai Anda daripada mengubah nilai. Untuk mengubah pengaturan untuk sesi cloud, atur [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) di lingkungan, atau dalam sesi dengan satu repositori, komit kunci ke `.claude/settings.json` repositori tersebut.

Details

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

30 {30 {

31 "model": "claude-sonnet-5",31 "model": "claude-sonnet-5",

32 "effortLevel": "xhigh",32 "modelSettings": {

33 "claude-sonnet-5": { "effortLevel": "xhigh" }

34 },

33 "editorMode": "vim",35 "editorMode": "vim",

34 "theme": "light-daltonized",36 "theme": "light-daltonized",

35 "statusLine": {37 "statusLine": {


58 {60 {

59 // Mulai setiap sesi di Sonnet 561 // Mulai setiap sesi di Sonnet 5

60 "model": "claude-sonnet-5",62 "model": "claude-sonnet-5",

61 // Alasan lebih dalam daripada tingkat tinggi default pada model tanpa tingkat yang disimpan; /effort menyimpan tingkat per model, dan --effort menetapkan satu untuk sesi tunggal63 // Jalankan Sonnet 5 di atas tingkat tinggi defaultnya; /effort menyimpan tingkat per model, dan --effort menetapkan satu untuk sesi tunggal

62 "effortLevel": "xhigh",64 "modelSettings": {

65 "claude-sonnet-5": { "effortLevel": "xhigh" }

66 },

63 // Pintasan keyboard Vim dalam prompt67 // Pintasan keyboard Vim dalam prompt

64 "editorMode": "vim",68 "editorMode": "vim",

65 // Tema terang yang ramah buta warna69 // Tema terang yang ramah buta warna

Details

685| [`hooks`](#hooks) | Jalankan perintah Anda sendiri sebagai [hooks](/docs/id/hooks) pada titik dalam siklus hidup Claude Code | Hooks and automation | Any file |685| [`hooks`](#hooks) | Jalankan perintah Anda sendiri sebagai [hooks](/docs/id/hooks) pada titik dalam siklus hidup Claude Code | Hooks and automation | Any file |

686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Batasi variabel env mana yang dapat dimasukkan [HTTP hooks](/docs/id/hooks) ke header | Hooks and automation | Any file |686| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | Batasi variabel env mana yang dapat dimasukkan [HTTP hooks](/docs/id/hooks) ke header | Hooks and automation | Any file |

687| [`includeCoAuthoredBy`](#includecoauthoredby) | Usang; gunakan `attribution` untuk menyembunyikan atau mengubah atribusi commit dan PR | Git and attribution | Any file |687| [`includeCoAuthoredBy`](#includecoauthoredby) | Usang; gunakan `attribution` untuk menyembunyikan atau mengubah atribusi commit dan PR | Git and attribution | Any file |

688| [`includeGitInstructions`](#includegitinstructions) | Hapus instruksi commit dan PR bawaan dari [prompt sistem](/docs/id/sub-agents#what-loads-at-startup) | Git and attribution | Any file |688| [`includeGitInstructions`](#includegitinstructions) | Hapus instruksi commit dan PR bawaan dari konteks Claude | Git and attribution | Any file |

689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Dapatkan [notifikasi push](/docs/id/remote-control#mobile-push-notifications) ketika Claude menunggu Anda | Remote, desktop, and notifications | Any file |689| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | Dapatkan [notifikasi push](/docs/id/remote-control#mobile-push-notifications) ketika Claude menunggu Anda | Remote, desktop, and notifications | Any file |

690| [`isolatePeerMachines`](#isolatepeermachines) | Tanyakan Anda sebelum Claude [mengirim pesan ke salah satu sesi Anda di mesin lain](/docs/id/cross-session-messaging#require-approval-for-cross-machine-messages) | Agents, sessions, and worktrees | Any file |690| [`isolatePeerMachines`](#isolatepeermachines) | Tanyakan Anda sebelum Claude [mengirim pesan ke salah satu sesi Anda di mesin lain](/docs/id/cross-session-messaging#require-approval-for-cross-machine-messages) | Agents, sessions, and worktrees | Any file |

691| [`keybindingFlavor`](#keybindingflavor) | Usang dan tidak berpengaruh; pintasan pengeditan kata selalu [mengikuti konvensi readline](/docs/id/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | Interface and terminal | Any file |691| [`keybindingFlavor`](#keybindingflavor) | Usang dan tidak berpengaruh; pintasan pengeditan kata selalu [mengikuti konvensi readline](/docs/id/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | Interface and terminal | Any file |


797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Hentikan pemuatan [plugin yang diaktifkan di akun claude.ai Anda](/docs/id/plugins-reference#synced-plugins) dan hentikan pengunduhan yang baru | Plugins and skills | User, local, or managed |797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Hentikan pemuatan [plugin yang diaktifkan di akun claude.ai Anda](/docs/id/plugins-reference#synced-plugins) dan hentikan pengunduhan yang baru | Plugins and skills | User, local, or managed |

798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Hentikan pemuatan [skill yang diaktifkan di akun claude.ai Anda](/docs/id/skills#how-synced-skills-behave) dan hentikan pengunduhan yang baru | Plugins and skills | User, local, or managed |798| [`syncClaudeAiSkills`](#syncclaudeaiskills) | Hentikan pemuatan [skill yang diaktifkan di akun claude.ai Anda](/docs/id/skills#how-synced-skills-behave) dan hentikan pengunduhan yang baru | Plugins and skills | User, local, or managed |

799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Matikan penyorotan sintaks dalam diff dan blok kode | Interface and terminal | Any file |799| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Matikan penyorotan sintaks dalam diff dan blok kode | Interface and terminal | Any file |

800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Atur berapa banyak output [tugas latar belakang](/docs/id/tools-reference#background-commands) yang Claude terima secara inline | Memory and context | Any file |800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Dihapus di v2.1.277, bersama dengan alat `TaskOutput` yang disizingnya | Memory and context | Any file |

801| [`teammateDefaultModel`](#teammatedefaultmodel) | Dihapus di v2.1.234; lihat [Tentukan rekan tim dan model](/docs/id/agent-teams#specify-teammates-and-models) untuk cara Claude Code memilih model rekan tim | Global config settings | Global config |801| [`teammateDefaultModel`](#teammatedefaultmodel) | Dihapus di v2.1.234; lihat [Tentukan rekan tim dan model](/docs/id/agent-teams#specify-teammates-and-models) untuk cara Claude Code memilih model rekan tim | Global config settings | Global config |

802| [`teammateMode`](#teammatemode) | Pilih cara [rekan tim tim agent](/docs/id/agent-teams#choose-a-display-mode) ditampilkan | Agents, sessions, and worktrees | Any file |802| [`teammateMode`](#teammatemode) | Pilih cara [rekan tim tim agent](/docs/id/agent-teams#choose-a-display-mode) ditampilkan | Agents, sessions, and worktrees | Any file |

803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | Sembunyikan bilah kemajuan terminal di terminal yang mendukungnya | Interface and terminal | Any file |803| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | Sembunyikan bilah kemajuan terminal di terminal yang mendukungnya | Interface and terminal | Any file |


840Jika akun Anda memerlukan [persetujuan usage-credits](/docs/id/advisor#fable-advisor-and-usage-credits), terima terlebih dahulu dengan menjalankan `/model fable`. Sampai Anda melakukannya, memilih Fable di `/advisor` tidak menyimpan apa pun dan Claude Code memberi tahu Anda untuk menjalankan `/model fable` terlebih dahulu.840Jika akun Anda memerlukan [persetujuan usage-credits](/docs/id/advisor#fable-advisor-and-usage-credits), terima terlebih dahulu dengan menjalankan `/model fable`. Sampai Anda melakukannya, memilih Fable di `/advisor` tidak menyimpan apa pun dan Claude Code memberi tahu Anda untuk menjalankan `/model fable` terlebih dahulu.

841 841 

842* **Scope**: [`Any file`](#scopes)842* **Scope**: [`Any file`](#scopes)

843* **Type**: string, salah satu alias `"fable"`, `"opus"`, atau `"sonnet"`, yang diselesaikan ke versi default Claude Code saat ini dari keluarga model itu, atau ID model lengkap seperti `"claude-opus-5"`843* **Type**: string, salah satu alias `"fable"`, `"opus"`, atau `"sonnet"`, yang diselesaikan ke versi default Claude Code saat ini dari keluarga model itu, atau ID model lengkap seperti `"claude-opus-5-5"`

844* **Default**: tidak diatur, jadi advisor dimatikan844* **Default**: tidak diatur, jadi advisor dimatikan

845* **Per-session overrides**: `--advisor` mengambil alih kunci ini untuk satu sesi. [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](/docs/id/env-vars) mematikan advisor, dan kunci ini tidak dapat menghidupkannya kembali845* **Per-session overrides**: `--advisor` mengambil alih kunci ini untuk satu sesi. [`CLAUDE_CODE_DISABLE_ADVISOR_TOOL`](/docs/id/env-vars) mematikan advisor, dan kunci ini tidak dapat menghidupkannya kembali

846 846 


858 858 

859Matikan [extended thinking](/docs/id/model-config#extended-thinking) untuk setiap sesi dengan mengatur ini ke `false`. Thinking aktif secara default, jadi `true` tidak mengubah apa pun. Sebagian besar orang mengatur ini melalui `/config` daripada mengedit file.859Matikan [extended thinking](/docs/id/model-config#extended-thinking) untuk setiap sesi dengan mengatur ini ke `false`. Thinking aktif secara default, jadi `true` tidak mengubah apa pun. Sebagian besar orang mengatur ini melalui `/config` daripada mengedit file.

860 860 

861Pada model yang selalu berpikir, seperti model Fable, `false` tidak berpengaruh. Pada [penyedia pihak ketiga](/docs/id/third-party-integrations) Claude Code menghilangkan parameter `thinking` daripada mematikan thinking, jadi model adaptive-reasoning mungkin masih berpikir. Dengan thinking dimatikan di Anthropic API, Claude Code mengirim effort `high` daripada level yang lebih tinggi ke model yang diketahui [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5.861Pada model yang selalu berpikir, seperti Opus 5.5 dan model Fable, `false` tidak berpengaruh. Pada [penyedia pihak ketiga](/docs/id/third-party-integrations) Claude Code menghilangkan parameter `thinking` daripada mematikan thinking, jadi model adaptive-reasoning mungkin masih berpikir. Dengan thinking dimatikan di Anthropic API, Claude Code mengirim effort `high` daripada level yang lebih tinggi ke model yang diketahui [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5.

862 862 

863* **Scope**: [`Any file`](#scopes)863* **Scope**: [`Any file`](#scopes)

864* **Type**: Boolean864* **Type**: Boolean


903 903 

904Dalam file pengaturan yang sama, Claude Code menggunakan level yang disimpan model daripada kunci ini. [`modelSettings`](#modelsettings) menyatakan preseden lintas file.904Dalam file pengaturan yang sama, Claude Code menggunakan level yang disimpan model daripada kunci ini. [`modelSettings`](#modelsettings) menyatakan preseden lintas file.

905 905 

906Dalam sesi yang terhubung ke pekerja jarak jauh, `/effort` hanya berlaku untuk sesi itu. Dalam jalankan `-p` atau Agent SDK juga hanya berlaku untuk sesi itu, [kecuali ada penahan pada effort default model yang berlaku](/docs/id/model-config#non-interactive-effort). [Sesuaikan effort level](/docs/id/model-config#adjust-effort-level) mencantumkan pilihan interaktif yang juga hanya berlaku untuk sesi itu. Pesan yang dicetak `/effort` mengatakan apa yang terjadi.906Dalam sesi yang terhubung ke pekerja jarak jauh, dalam jalankan `-p`, dan dalam Agent SDK, `/effort` hanya berlaku untuk sesi itu. [Sesuaikan effort level](/docs/id/model-config#adjust-effort-level) mencantumkan pilihan interaktif yang juga hanya berlaku untuk sesi itu. Pesan yang dicetak `/effort` mengatakan apa yang terjadi.

907 907 

908* **Scope**: [`Any file`](#scopes)908* **Scope**: [`Any file`](#scopes)

909* **Type**: string, salah satu dari:909* **Type**: string, salah satu dari:


920}920}

921```921```

922 922 

923Pada Opus 4.7, Opus 4.8, dan Fable 5, Claude Code menahan effort default model itu, yang ditetapkan organisasi atau bawaan; [Sesuaikan effort level](/docs/id/model-config#adjust-effort-level) menyatakan cara menetapkan level mana yang mengakhiri penahan dan mana yang membiarkannya tetap berlaku. Setelah penahan berakhir, Claude Code menyelesaikan effort berdasarkan preseden yang dinyatakan di [`modelSettings`](#modelsettings).923Dalam file pengaturan pengguna Anda, `~/.claude/settings.json`, kunci ini adalah bentuk yang lebih lama `/effort` tulis sebelum menyimpan level per model, dan terus berlaku di mana itu berlaku sebelumnya, pada Opus 5, Fable 5.1, dan model sebelumnya. Opus 5.5 dan model yang dirilis setelahnya mengabaikannya dan mulai pada default mereka sendiri sampai Anda menyimpan level untuk mereka, yang `/effort` tulis di bawah [`modelSettings`](#modelsettings). Dalam pengaturan proyek, lokal, dan terkelola, dan dengan `--settings`, kunci ini berlaku untuk setiap model.

924 924 

925<h3 id="enforceavailablemodels">925<h3 id="enforceavailablemodels">

926 `enforceAvailableModels`926 `enforceAvailableModels`


974 `fastMode`974 `fastMode`

975</h3>975</h3>

976 976 

977Hidupkan [fast mode](/docs/id/fast-mode) untuk sesi di mana tersedia, untuk pekerjaan interaktif seperti iterasi cepat atau debugging langsung di mana Anda menginginkan kecepatan dengan biaya lebih tinggi per token. Anda biasanya tidak mengedit kunci ini secara manual: menjalankan `/fast` menulis `fastMode: true` ke `~/.claude/settings.json`, dan menjalankannya lagi untuk mematikan fast mode menghapus kunci. Fast mode hanya berjalan di Opus 5 dan Opus 4.8: menghidupkannya dari model lain beralih Anda ke Opus, dan beralih ke model yang tidak didukung mematikannya. Lihat [Beralih model saat fast mode aktif](/docs/id/fast-mode#switch-models-while-fast-mode-is-on).977Hidupkan [fast mode](/docs/id/fast-mode) untuk sesi di mana tersedia, untuk pekerjaan interaktif seperti iterasi cepat atau debugging langsung di mana Anda menginginkan kecepatan dengan biaya lebih tinggi per token. Anda biasanya tidak mengedit kunci ini secara manual: menjalankan `/fast` menulis `fastMode: true` ke `~/.claude/settings.json`, dan menjalankannya lagi untuk mematikan fast mode menghapus kunci. Fast mode hanya berjalan di Opus 5.5, Opus 5, dan Opus 4.8: menghidupkannya dari model lain beralih Anda ke Opus, dan beralih ke model yang tidak didukung mematikannya. Lihat [Beralih model saat fast mode aktif](/docs/id/fast-mode#switch-models-while-fast-mode-is-on).

978 978 

979* **Scope**: [`Any file`](#scopes)979* **Scope**: [`Any file`](#scopes)

980* **Type**: Boolean980* **Type**: Boolean


993 `fastModePerSessionOptIn`993 `fastModePerSessionOptIn`

994</h3>994</h3>

995 995 

996Biasanya, menjalankan `/fast` menyimpan [`fastMode`](#fastmode) ke pengaturan pengguna seseorang, jadi fast mode aktif di awal setiap sesi kemudian. Atur kunci ini ke `true` untuk menghentikan itu: `fastMode: true` yang disimpan tidak lagi menghidupkan fast mode di awal sesi, dan setiap orang harus menjalankan `/fast` di setiap sesi yang mereka inginkan. Claude Code meninggalkan kunci `fastMode` di file mereka, jadi mematikan kunci ini mengembalikan perilaku lama. Pemilik pada paket Team atau Enterprise dapat menerapkannya di seluruh organisasi melalui [pengaturan terkelola server](/docs/id/server-managed-settings).996Biasanya, menjalankan `/fast` menyimpan [`fastMode`](#fastmode) ke pengaturan pengguna seseorang, jadi fast mode aktif di awal setiap sesi kemudian. Atur kunci ini ke `true` untuk menghentikan itu: `fastMode: true` yang disimpan tidak lagi menghidupkan fast mode di awal sesi, dan setiap orang harus menjalankan `/fast` di setiap sesi yang mereka inginkan. Claude Code meninggalkan kunci `fastMode` di file mereka, jadi mematikan kunci ini mengembalikan perilaku lama.

997 

998Pemilik pada paket Team atau Enterprise dapat menerapkannya di seluruh organisasi melalui [pengaturan terkelola server](/docs/id/server-managed-settings). Ketika pengaturan terkelola menetapkan kunci, `/fast on` ditolak di luar sesi terminal interaktif dan melaporkan bahwa organisasi Anda telah menonaktifkan fast mode. Itu mencakup [mode non-interaktif](/docs/id/headless), [ekstensi VS Code](/docs/id/vs-code), dan [sesi cloud](/docs/id/claude-code-on-the-web).

997 999 

998* **Scope**: [`Any file`](#scopes)1000* **Scope**: [`Any file`](#scopes)

999* **Type**: Boolean1001* **Type**: Boolean


1208 `modelSettings`1210 `modelSettings`

1209</h3>1211</h3>

1210 1212 

1211Simpan [effort level](/docs/id/model-config#adjust-effort-level) untuk setiap model yang Anda gunakan. Dalam sesi interaktif di mesin Anda, ketika Anda menyimpan `low`, `medium`, `high`, atau `xhigh` sebagai default Anda dengan `/effort` atau slider effort pemilih `/model`, Claude Code menulis level itu di sini di bawah model yang Anda gunakan, jadi Anda jarang mengedit kunci ini sendiri. Entri [`effortLevel`](#effortlevel) mencantumkan sesi di mana `/effort` hanya berlaku untuk sesi itu. Memerlukan Claude Code v2.1.251 atau lebih baru.1213Simpan [effort level](/docs/id/model-config#adjust-effort-level) untuk setiap model yang Anda gunakan. Memerlukan Claude Code v2.1.251 atau lebih baru.

1214 

1215Dalam sesi interaktif di mesin Anda, ketika Anda menyimpan `low`, `medium`, `high`, atau `xhigh` sebagai default Anda dengan `/effort` atau slider effort pemilih `/model`, Claude Code menulis level itu di sini di bawah model yang Anda gunakan, jadi Anda jarang mengedit kunci ini sendiri. Ketika Anda memilih salah satu level itu di [pemilih model ekstensi VS Code](/docs/id/vs-code#use-the-prompt-box), Claude Code menyimpannya di sini dengan cara yang sama. Entri [`effortLevel`](#effortlevel) mencantumkan sesi di mana `/effort` hanya berlaku untuk sesi itu.

1212 1216 

1213Edit kunci secara manual untuk mengubah atau menghapus level yang Anda simpan.1217Edit kunci secara manual untuk mengubah atau menghapus level yang Anda simpan.

1214 1218 

1215`effortLevel` model di sini mengambil preseden atas [`effortLevel`](#effortlevel) tingkat atas dalam file pengaturan yang sama. Di seluruh file, Claude Code menyelesaikan setiap model secara terpisah: [file pengaturan](/docs/id/settings#settings-precedence) dengan preseden tertinggi yang menetapkan `effortLevel` untuk model itu atau `effortLevel` tingkat atas memutuskan, jadi `effortLevel` dalam pengaturan terkelola mengalahkan level yang Anda simpan dalam pengaturan pengguna. [Sesuaikan effort level](/docs/id/model-config#adjust-effort-level) mencantumkan apa lagi yang dapat mengesampingkan level yang disimpan, seperti `--effort` saat peluncuran.1219`effortLevel` model di sini mengambil preseden atas [`effortLevel`](#effortlevel) tingkat atas dalam file pengaturan yang sama. Di seluruh file, Claude Code menyelesaikan setiap model secara terpisah: [file pengaturan](/docs/id/settings#settings-precedence) dengan preseden tertinggi yang menetapkan `effortLevel` untuk model itu atau `effortLevel` tingkat atas yang [berlaku untuk model itu](#effortlevel) memutuskan, jadi `effortLevel` dalam pengaturan terkelola mengalahkan level yang Anda simpan dalam pengaturan pengguna. [Sesuaikan effort level](/docs/id/model-config#adjust-effort-level) mencantumkan apa lagi yang dapat mengesampingkan level yang disimpan, seperti `--effort` saat peluncuran.

1216 1220 

1217Untuk membatasi effort satu model daripada menetapkan levelnya, tambahkan field [`maxEffortLevel`](#maxeffortlevel) ke entri model itu. Field memerlukan Claude Code v2.1.267 atau lebih baru.1221Untuk membatasi effort satu model daripada menetapkan levelnya, tambahkan field [`maxEffortLevel`](#maxeffortlevel) ke entri model itu. Field memerlukan Claude Code v2.1.267 atau lebih baru.

1218 1222 


1220* **Type**: object memetakan nama model ke object dengan field `effortLevel`, salah satu dari `"low"`, `"medium"`, `"high"`, atau `"xhigh"`, field [`maxEffortLevel`](#maxeffortlevel), atau keduanya1224* **Type**: object memetakan nama model ke object dengan field `effortLevel`, salah satu dari `"low"`, `"medium"`, `"high"`, atau `"xhigh"`, field [`maxEffortLevel`](#maxeffortlevel), atau keduanya

1221* **Default**: tidak diatur1225* **Default**: tidak diatur

1222 1226 

1223Claude Code menulis setiap entri di bawah nama kanonik model, seperti `claude-opus-5`, dan mencocokkan alias model itu, bertanggal, `[1m]`, dan ID khusus penyedia yang dikenali ke entri yang sama.1227Claude Code menulis setiap entri di bawah nama kanonik model, seperti `claude-opus-5-5`, dan mencocokkan alias model itu, bertanggal, `[1m]`, dan ID khusus penyedia yang dikenali ke entri yang sama.

1224 1228 

1225Contoh ini menyimpan Opus 5 pada `medium` sementara model lain menggunakan level yang disimpan atau default mereka sendiri:1229Contoh ini menyimpan Opus 5.5 pada `high` sementara model lain menggunakan level yang disimpan atau default mereka sendiri:

1226 1230 

1227```json settings.json theme={null}1231```json settings.json theme={null}

1228{1232{

1229 "modelSettings": {1233 "modelSettings": {

1230 "claude-opus-5": {1234 "claude-opus-5-5": {

1231 "effortLevel": "medium"1235 "effortLevel": "high"

1232 }1236 }

1233 }1237 }

1234}1238}


1839 `sandbox.excludedCommands`1843 `sandbox.excludedCommands`

1840</h3>1844</h3>

1841 1845 

1842Beri nama perintah yang selalu dijalankan Claude Code di luar sandbox, seperti alat yang tidak berfungsi di bawahnya. Setiap entri menggunakan sintaks yang sama dengan konten aturan izin `Bash(...)` [permission rule](/docs/id/permissions#permission-rule-syntax): perintah yang tepat, awalan seperti `docker *`, atau pola wildcard. Ketika bagian mana pun dari perintah gabungan cocok dengan entri, Claude Code menjalankan seluruh perintah tanpa sandbox.1846Beri nama perintah yang Claude Code jalankan di luar sandbox, seperti alat yang tidak berfungsi di bawahnya. Setiap entri menggunakan sintaks yang sama dengan konten aturan izin `Bash(...)` [permission rule](/docs/id/permissions#permission-rule-syntax): perintah yang tepat, awalan seperti `docker *`, atau pola wildcard.

1847 

1848Entri Anda mengeluarkan panggilan Bash dari sandbox hanya ketika mereka mencakup setiap perintah di dalamnya, dan beberapa bentuk panggilan tetap bersandbox bahkan kemudian. Entri `docker *` saja tidak mengeluarkan `npm ci && docker build .` dari sandbox.

1843 1849 

1844* **Scope**: [`Any file`](#scopes)1850* **Scope**: [`Any file`](#scopes)

1845* **Type**: array pola perintah1851* **Type**: array pola perintah


1853}1859}

1854```1860```

1855 1861 

1862Claude Code menjaga panggilan Bash bersandbox ketika memiliki salah satu bentuk ini, di antara lainnya:

1863 

1864* Perintah yang dimulai dengan `sudo`, `eval`, atau `xargs`

1865* `cd`, `pushd`, atau `popd`, di mana pun muncul dalam panggilan

1866* Substitusi perintah, subshell, atau blok alur kontrol seperti `if` atau `for`

1867* Pengalihan, seperti `docker build . > build.log`, selain yang hanya menduplikasi deskriptor file, seperti `2>&1`

1868* Nama perintah yang berasal dari variabel

1869 

1870Misalnya, `cd build && docker compose up` tetap bersandbox di bawah entri `docker *`, dan menambahkan entri `cd` tidak mengubah itu.

1871 

1856Perintah yang dikecualikan masih melalui alur izin reguler. Pengecualian adalah kenyamanan, bukan batas keamanan: lebih suka [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) ketika alat hanya perlu menulis ke tempat tertentu. Claude Code menggabungkan entri di setiap scope pengaturan yang dimuat sesi, dan tidak ada kunci khusus yang dikelola untuk daftar ini, jadi jaga daftar yang dikelola tetap sempit.1872Perintah yang dikecualikan masih melalui alur izin reguler. Pengecualian adalah kenyamanan, bukan batas keamanan: lebih suka [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) ketika alat hanya perlu menulis ke tempat tertentu. Claude Code menggabungkan entri di setiap scope pengaturan yang dimuat sesi, dan tidak ada kunci khusus yang dikelola untuk daftar ini, jadi jaga daftar yang dikelola tetap sempit.

1857 1873 

1858<h3 id="sandbox-allowunsandboxedcommands">1874<h3 id="sandbox-allowunsandboxedcommands">


1905}1921}

1906```1922```

1907 1923 

1908Claude Code memberlakukan daftar ini di batas sandbox OS, jadi mereka berlaku untuk setiap subprocess yang dimulai perintah bersandbox, seperti `kubectl`, `terraform`, atau `npm`, bukan hanya untuk alat file Claude. Claude Code menambahkan [permission rules](/docs/id/sandboxing#permission-rules) Anda ke daftar yang sama: aturan allow dan deny `Edit` ke `allowWrite` dan `denyWrite`, aturan deny `Read` ke `denyRead`, dan aturan allow dan deny `WebFetch(domain:...)` ke daftar domain [`network`](#sandbox-network).1924Claude Code memberlakukan daftar ini di batas sandbox OS, jadi mereka berlaku untuk setiap subprocess yang dimulai perintah bersandbox, seperti `kubectl`, `terraform`, atau `npm`. Claude Code menambahkan [permission rules](/docs/id/sandboxing#permission-rules) Anda ke daftar yang sama: aturan allow dan deny `Edit` ke `allowWrite` dan `denyWrite`, aturan deny `Read` ke `denyRead`, dan aturan allow dan deny `WebFetch(domain:...)` ke daftar domain [`network`](#sandbox-network).

1909 1925 

1910Kecuali kunci khusus yang dikelola diatur, Claude Code menggabungkan setiap daftar di file pengaturan yang dimuat sesi. [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) membatasi `allowRead` ke entri dari pengaturan yang dikelola, dan [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) melakukan hal yang sama untuk domain yang diizinkan.1926Kecuali kunci khusus yang dikelola diatur, Claude Code menggabungkan setiap daftar di file pengaturan yang dimuat sesi. [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) membatasi `allowRead` ke entri dari pengaturan yang dikelola, dan [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) melakukan hal yang sama untuk domain yang diizinkan.

1911 1927 


3066 `taskOutputMaxChars`3082 `taskOutputMaxChars`

3067</h3>3083</h3>

3068 3084 

3069Atur berapa banyak karakter dari output [tugas latar belakang](/docs/id/tools-reference#background-commands) yang diterima Claude secara inline ketika Claude membaca tugas dengan alat `TaskOutput`. Ketika output tugas yang selesai lebih panjang, Claude menerima karakter paling baru. Naikkan batas ketika tugas latar belakang Anda secara rutin menghasilkan lebih banyak output daripada default. Memerlukan Claude Code v2.1.261 atau lebih baru.3085<Warning>

3070 3086 Dihapus dalam v2.1.277, bersama dengan alat `TaskOutput` yang diukurnya. Menetapkannya tidak berpengaruh pada versi saat ini. Claude membaca [file output](/docs/id/tools-reference#background-commands) tugas latar belakang dengan `Read` sebagai gantinya.

3071* **Scope**: [`Any file`](#scopes)3087</Warning>

3072* **Type**: jumlah karakter, bilangan bulat positif. Claude Code menjepit nilai ke dalam rentang `4000` hingga `128000`

3073* **Default**: tidak diatur, jadi Claude menerima hingga 32.000 karakter secara inline

3074 

3075```json settings.json theme={null}

3076{

3077 "taskOutputMaxChars": 100000

3078}

3079```

3080 3088 

3081Ketika Anda menetapkan kunci ini, Claude Code mengabaikan variabel lingkungan [`TASK_MAX_OUTPUT_LENGTH`](/docs/id/env-vars).3089Melalui v2.1.276, Anda menetapkan kunci ini ke jumlah karakter dari [output tugas latar belakang](/docs/id/tools-reference#background-commands) yang diterima Claude secara inline ketika membacanya dengan alat `TaskOutput`.

3082 3090 

3083<h2 id="interface-and-terminal">3091<h2 id="interface-and-terminal">

3084 Interface dan terminal3092 Interface dan terminal


3994 4002 

3995Untuk menyembunyikan semua atribusi, atur [`commit`](#attribution-commit) dan [`pr`](#attribution-pr) ke string kosong dan [`sessionUrl`](#attribution-sessionurl) ke `false`. Setelah Anda mengatur `commit` atau `pr`, Claude Code mengabaikan pengaturan `includeCoAuthoredBy` yang sudah usang dan menggunakan teks defaultnya untuk mana pun dari keduanya yang Anda biarkan tidak diatur.4003Untuk menyembunyikan semua atribusi, atur [`commit`](#attribution-commit) dan [`pr`](#attribution-pr) ke string kosong dan [`sessionUrl`](#attribution-sessionurl) ke `false`. Setelah Anda mengatur `commit` atau `pr`, Claude Code mengabaikan pengaturan `includeCoAuthoredBy` yang sudah usang dan menggunakan teks defaultnya untuk mana pun dari keduanya yang Anda biarkan tidak diatur.

3996 4004 

4005Claude Code memberitahu Claude bahwa instruksi Anda sendiri tentang atribusi, seperti aturan CLAUDE.md atau [memory](/docs/id/memory), mengambil alih baris commit dan PR ini, kecuali baris diatur dalam [managed settings](/docs/id/managed-settings).

4006 

3997<h3 id="includecoauthoredby">4007<h3 id="includecoauthoredby">

3998 `includeCoAuthoredBy`4008 `includeCoAuthoredBy`

3999</h3>4009</h3>


4022 `includeGitInstructions`4032 `includeGitInstructions`

4023</h3>4033</h3>

4024 4034 

4025Pada awal sesi, Claude Code menambahkan dua bagian terkait git ke prompt Claude: instruksi bawaan untuk cara menulis commit dan pull request, dalam deskripsi alat Bash, dan snapshot status git dari repositori Anda dalam system prompt, yang berarti cabang saat ini, cabang utama, output `git status`, dan commit terbaru. Atur kunci ini ke `false` untuk meninggalkan keduanya, misalnya ketika Anda menggunakan skill alur kerja git Anda sendiri.4035Claude Code memberikan Claude dua bagian konteks terkait git: instruksi bawaan untuk cara menulis commit dan pull request, dalam deskripsi alat Bash, dan snapshot status git dari repositori Anda. Snapshot menyimpan cabang saat ini, cabang utama, output `git status`, dan commit terbaru. Claude Code membacanya ketika percakapan dimulai.

4036 

4037Atur kunci ini ke `false` untuk meninggalkan keduanya, misalnya ketika Anda menggunakan skill alur kerja git Anda sendiri.

4026 4038 

4027* **Scope**: [`Any file`](#scopes)4039* **Scope**: [`Any file`](#scopes)

4028* **Type**: Boolean4040* **Type**: Boolean


4627| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` diperlukan; `ref` adalah cabang atau tag; `path` adalah subdirektori |4639| `github` | `{ "source": "github", "repo": "acme-corp/plugins", "ref": "main", "path": "marketplace" }` | `repo` diperlukan; `ref` adalah cabang atau tag; `path` adalah subdirektori |

4628| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` diperlukan; `ref` dan `path` seperti untuk `github` |4640| `git` | `{ "source": "git", "url": "https://gitlab.example.com/tools/plugins.git", "ref": "production" }` | `url` diperlukan; `ref` dan `path` seperti untuk `github` |

4629| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` diperlukan; `headers` menambahkan header HTTP untuk akses yang diautentikasi |4641| `url` | `{ "source": "url", "url": "https://plugins.example.com/marketplace.json", "headers": { "Authorization": "Bearer ${TOKEN}" } }` | `url` diperlukan; `headers` menambahkan header HTTP untuk akses yang diautentikasi |

4630| `npm` | `{ "source": "npm", "package": "@acme-corp/claude-plugins" }` | `package` diperlukan, paket npm yang berisi `marketplace.json` |

4631| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` diperlukan, jalur absolut ke file `marketplace.json` |4642| `file` | `{ "source": "file", "path": "/opt/acme-corp/plugins/marketplace.json" }` | `path` diperlukan, jalur absolut ke file `marketplace.json` |

4632| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` diperlukan, jalur absolut ke direktori yang berisi `.claude-plugin/marketplace.json` |4643| `directory` | `{ "source": "directory", "path": "/opt/acme-corp/approved-marketplaces" }` | `path` diperlukan, jalur absolut ke direktori yang berisi `.claude-plugin/marketplace.json` |

4633| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` diperlukan, regex yang cocok dengan host marketplace |4644| `hostPattern` | `{ "source": "hostPattern", "hostPattern": "^github\\.example\\.com$" }` | `hostPattern` diperlukan, regex yang cocok dengan host marketplace |


5905}5916}

5906```5917```

5907 5918 

5908Atur interval penyegaran dengan [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/id/env-vars). Lihat [Dynamic headers](/docs/id/monitoring-usage#dynamic-headers) untuk persyaratan skrip dan di mana Claude Code melaporkan pembantu yang gagal.5919Atur interval penyegaran dengan [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/id/env-vars). Lihat [Dynamic headers](/docs/id/monitoring-usage#dynamic-headers) untuk persyaratan skrip dan apa yang terjadi ketika pembantu gagal.

5909 5920 

5910<h2 id="updates-and-versioning">5921<h2 id="updates-and-versioning">

5911 Pembaruan dan versioning5922 Pembaruan dan versioning


5940Cegah pembaruan otomatis latar belakang dan `claude update` dari menginstal versi apa pun di bawah yang ini, jadi berpindah ke saluran `"stable"` tidak menurunkan Anda dari build `"latest"` yang lebih baru. Claude Code menulis kunci ini untuk Anda ketika Anda memilih untuk tetap di versi saat ini Anda sambil beralih saluran di `/config`, dan menghapusnya ketika Anda beralih kembali ke `"latest"`.5951Cegah pembaruan otomatis latar belakang dan `claude update` dari menginstal versi apa pun di bawah yang ini, jadi berpindah ke saluran `"stable"` tidak menurunkan Anda dari build `"latest"` yang lebih baru. Claude Code menulis kunci ini untuk Anda ketika Anda memilih untuk tetap di versi saat ini Anda sambil beralih saluran di `/config`, dan menghapusnya ketika Anda beralih kembali ke `"latest"`.

5941 5952 

5942* **Scope**: [`Any file`](#scopes). Atur di managed settings untuk menetapkan minimum di seluruh organisasi yang tidak dapat diturunkan oleh pengaturan pengguna dan proyek.5953* **Scope**: [`Any file`](#scopes). Atur di managed settings untuk menetapkan minimum di seluruh organisasi yang tidak dapat diturunkan oleh pengaturan pengguna dan proyek.

5943* **Type**: string, nomor versi seperti `"2.1.100"`5954* **Type**: string, nomor versi seperti `"2.1.100"`; nilai yang bukan versi valid diabaikan

5944* **Default**: tidak diatur, jadi pembaruan dapat menginstal versi apa pun yang ditawarkan saluran5955* **Default**: tidak diatur, jadi pembaruan dapat menginstal versi apa pun yang ditawarkan saluran

5945 5956 

5946Contoh ini mengikuti saluran stable dan menolak untuk menginstal versi apa pun di bawah 2.1.100:5957Contoh ini mengikuti saluran stable dan menolak untuk menginstal versi apa pun di bawah 2.1.100:

skills.md +54 −50

Details

120 Pilih tempat skills dimuat120 Pilih tempat skills dimuat

121</h2>121</h2>

122 122 

123Tempat Anda menyimpan skill menentukan sesi mana yang memuatnya. Simpan di bawah direktori home Anda untuk mendapatkannya di setiap proyek, komitkan ke repositori untuk membagikannya dengan semua orang yang bekerja di sana, atau distribusikan melalui plugin atau pengaturan terkelola untuk menjangkau seluruh tim.123Tempat Anda menyimpan skill menentukan sesi mana yang memuatnya. Simpan di bawah direktori home Anda untuk mendapatkannya di setiap proyek, commit ke repositori untuk membagikannya dengan semua orang yang bekerja di sana, atau distribusikan melalui plugin atau managed settings untuk menjangkau seluruh tim.

124 124 

125| Lokasi | Path | Dimuat di |125| Lokasi | Path | Dimuat di |

126| :------------------- | :------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |126| :------------------- | :--------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |

127| Enterprise | `.claude/skills/<skill-name>/SKILL.md` di [direktori pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms) | Semua pengguna di mesin tempat organisasi Anda menerapkannya |127| Enterprise | `.claude/skills/<skill-name>/SKILL.md` di [direktori managed settings](/docs/id/managed-settings#delivery-mechanisms) | Semua pengguna di mesin tempat organisasi Anda menerapkannya |

128| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | Semua proyek Anda di mesin ini, tetapi bukan [sesi Cowork atau cloud](#skills-in-cowork-and-cloud-sessions) |128| Personal | `~/.claude/skills/<skill-name>/SKILL.md` | Semua proyek Anda di mesin ini, tetapi bukan [sesi Cowork atau cloud](#skills-in-cowork-and-cloud-sessions) |

129| Project | `.claude/skills/<skill-name>/SKILL.md` | Sesi di repositori ini. Komitkan sehingga tim Anda juga mendapatkannya |129| Project | `.claude/skills/<skill-name>/SKILL.md` | Sesi di repositori ini. Commit agar tim Anda juga mendapatkannya |

130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sesi dimulai di atau di bawah `<subdir>`. Sesi yang dimulai di atasnya memuat skill sekali Claude bekerja pada file di sana. Lihat [monorepos dan subdirektori](#discovery-from-parent-and-nested-directories) |130| Nested | `<subdir>/.claude/skills/<skill-name>/SKILL.md` | Sesi yang dimulai di atau di bawah `<subdir>`. Sesi yang dimulai di atasnya memuat skill sekali Claude bekerja pada file di sana. Lihat [monorepos dan subdirektori](#discovery-from-parent-and-nested-directories) |

131| Additional directory | `.claude/skills/<skill-name>/SKILL.md` di direktori yang Anda lewatkan dengan `--add-dir` | Sesi itu. Lihat [direktori di luar proyek](#skills-from-additional-directories) |131| Additional directory | `.claude/skills/<skill-name>/SKILL.md` di direktori yang Anda lewatkan dengan `--add-dir` | Sesi itu. Lihat [direktori di luar proyek](#skills-from-additional-directories) |

132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Di mana pun [plugin](/docs/id/plugins) diaktifkan, sebagai `/plugin-name:skill-name` |132| Plugin | `<plugin>/skills/<skill-name>/SKILL.md` | Di mana pun [plugin](/docs/id/plugins) diaktifkan, sebagai `/plugin-name:skill-name` |

133| claude.ai account | Skills yang diaktifkan untuk akun claude.ai Anda | Sesi Cowork, sesi cloud, dan sesi terminal tempat Anda masuk dengan akun itu. Lihat [Skills yang disinkronkan dari claude.ai](#how-synced-skills-behave) |133| claude.ai account | Skills yang diaktifkan untuk akun claude.ai Anda | Sesi Cowork, sesi cloud, dan sesi terminal tempat Anda masuk dengan akun itu. Lihat [Skills yang disinkronkan dari claude.ai](#how-synced-skills-behave) |

134 134 

135Folder skill juga mengikuti aturan ini:135Folder skill juga mengikuti aturan ini:

136 136 

137* **Folder yang disimlink**: entri `<skill-name>` di lokasi enterprise, personal, atau project dapat berupa symlink ke direktori lain di disk. Claude Code membaca `SKILL.md` dari target dan memuat skill sekali bahkan jika beberapa lokasi menunjuk ke target yang sama. Plugin skills [menangani symlinks secara berbeda](/docs/id/plugins-reference#share-files-within-a-marketplace-with-symlinks).137* **Folder yang di-symlink**: entri `<skill-name>` di lokasi enterprise, personal, atau project dapat berupa symlink ke direktori lain di disk. Claude Code membaca `SKILL.md` dari target dan memuat skill sekali meskipun beberapa lokasi menunjuk ke target yang sama. Plugin skills [menangani symlinks secara berbeda](/docs/id/plugins-reference#share-files-within-a-marketplace-with-symlinks).

138* **Nama yang dicadangkan**: jangan beri nama folder skill `synced`, dalam kapitalisasi apa pun. Claude Code menggunakan `~/.claude/skills/synced/` untuk [skills yang diunduh dari claude.ai](#where-synced-skills-load) dan melewati skill yang Anda buat dengan nama itu di lokasi enterprise, personal, dan project.138* **Nama yang dicadangkan**: jangan beri nama folder skill `synced`, dalam kapitalisasi apa pun. Claude Code menggunakan `~/.claude/skills/synced/` untuk [skills yang diunduh dari claude.ai](#where-synced-skills-load) dan melewati skill yang Anda buat dengan nama itu di lokasi enterprise, personal, dan project.

139* **File perintah**: file Markdown di `.claude/commands/` adalah format yang lebih lama dan masih berfungsi. Ini mendukung [frontmatter](#frontmatter-reference) yang sama kecuali `name` dan `paths`. Untuk menemukan nama yang Anda ketik untuk memanggilnya, lihat [Bagaimana skill mendapatkan nama perintahnya](#how-a-skill-gets-its-command-name). Lebih suka skill untuk pekerjaan baru, karena skills juga mendukung [file pendukung](#add-supporting-files).139* **File perintah**: file Markdown di `.claude/commands/` adalah format yang lebih lama dan masih berfungsi. Ini mendukung [frontmatter](#frontmatter-reference) yang sama kecuali `name` dan `paths`. Untuk menemukan nama yang Anda ketik untuk menginvokasinya, lihat [Bagaimana skill mendapatkan nama perintahnya](#how-a-skill-gets-its-command-name). Lebih suka skill untuk pekerjaan baru, karena skills juga mendukung [file pendukung](#add-supporting-files).

140* **Folder skill sebagai plugin**: tambahkan `.claude-plugin/plugin.json` ke folder skill dan itu dimuat sebagai [plugin](/docs/id/plugins-reference#skills-directory-plugins) bernama `<name>@skills-dir`, sehingga dapat menggabungkan agents, hooks, dan MCP servers. Di `.claude/skills/` proyek, ini memerlukan penerimaan dialog kepercayaan workspace terlebih dahulu.140* **Folder skill sebagai plugin**: tambahkan `.claude-plugin/plugin.json` ke folder skill dan itu dimuat sebagai [plugin](/docs/id/plugins-reference#skills-directory-plugins) bernama `<name>@skills-dir`, sehingga dapat menggabungkan agents, hooks, dan MCP servers. Di `.claude/skills/` proyek, ini memerlukan penerimaan dialog kepercayaan workspace terlebih dahulu.

141 141 

142<h3 id="discovery-from-parent-and-nested-directories">142<h3 id="discovery-from-parent-and-nested-directories">

143 Muat skills di monorepos dan subdirektori143 Muat skills di monorepos dan subdirektori

144</h3>144</h3>

145 145 

146Claude Code memuat project skills dari `.claude/skills/` di direktori tempat Anda memulainya dan di setiap direktori induk hingga akar repositori, jadi memulai di `packages/frontend/` masih mengambil skills yang ditentukan di root. Ketika Anda [memindahkan sesi dengan `/cd`](/docs/id/permissions#move-the-session-to-another-directory) di v2.1.246 atau lebih baru, Claude Code menambahkan project skills direktori baru.146Claude Code memuat project skills dari `.claude/skills/` di direktori tempat Anda memulainya dan di setiap direktori parent hingga akar repositori, jadi memulai di `packages/frontend/` masih mengambil skills yang ditentukan di root. Ketika Anda [memindahkan sesi dengan `/cd`](/docs/id/permissions#move-the-session-to-another-directory) pada v2.1.246 atau lebih baru, Claude Code menambahkan project skills direktori baru.

147 147 

148Skills di direktori `.claude/skills/` di bawah tempat Anda memulai tidak dimuat saat startup. Mereka dimuat pertama kali Claude membaca atau mengedit file di subdirektori itu dan tetap tersedia untuk sisa sesi. Sampai saat itu mereka tidak muncul di menu `/` dan Anda tidak dapat memanggilnya berdasarkan nama. Untuk memuatnya lebih cepat, jalankan `/add-dir` dengan path subdirektori, yang memerlukan Claude Code v2.1.257 atau lebih baru.148Dalam sesi yang berjalan di [git worktree](/docs/id/worktrees) yang tertaut, Claude Code hanya mencari direktori parent hingga akar worktree. Pada Claude Code v2.1.277 atau lebih baru, ketika checkout worktree tidak memiliki direktori `.claude/skills` di rootnya, Claude Code memuat project skills checkout utama sebagai gantinya. Lihat [Apa yang dibagikan worktrees dengan checkout utama](/docs/id/worktrees#what-worktrees-share-with-the-main-checkout).

149 149 

150Ketika nested skill berbagi nama dengan skill lain, keduanya tetap tersedia. Dengan skill `deploy` di akar repositori dan yang lain di `apps/web/.claude/skills/`:150Skills di direktori `.claude/skills/` di bawah tempat Anda memulai tidak dimuat saat startup. Mereka dimuat pertama kali Claude membaca atau mengedit file di subdirektori itu dan tetap tersedia untuk sisa sesi. Sampai saat itu mereka tidak muncul di menu `/` dan Anda tidak dapat menginvokasinya berdasarkan nama. Untuk memuatnya lebih cepat, jalankan `/add-dir` dengan path subdirektori, yang memerlukan Claude Code v2.1.257 atau lebih baru.

151 151 

152* `/deploy` menjalankan skill root. Claude Code juga mencantumkan varian yang memenuhi syarat direktori untuk Claude, dengan instruksi untuk memanggil yang direktorinya menyimpan file yang sedang dikerjakan, sehingga nested skill masih berlaku untuk pekerjaan di `apps/web/`.152Ketika nested skill berbagi nama dengan skill lain, keduanya tetap tersedia. Dengan skill `deploy` di akar repositori dan skill lain di `apps/web/.claude/skills/`:

153 

154* `/deploy` menjalankan skill root. Claude Code juga mencantumkan varian yang memenuhi syarat direktori untuk Claude, dengan instruksi untuk menginvokasi yang direktorinya menyimpan file yang sedang dikerjakan, sehingga nested skill masih berlaku untuk pekerjaan di `apps/web/`.

153* `/apps/web:deploy` menjalankan nested skill sendiri. Deskripsinya menamai direktori yang berlaku.155* `/apps/web:deploy` menjalankan nested skill sendiri. Deskripsinya menamai direktori yang berlaku.

154 156 

155<h3 id="skills-from-additional-directories">157<h3 id="skills-from-additional-directories">


169Ketika dua skills berbagi nama, tempat asal masing-masing menentukan yang mana `/name` jalankan. Tabel mencakup lokasi enterprise, personal, project, nested, plugin, dan claude.ai, skills bundel, dan file perintah:171Ketika dua skills berbagi nama, tempat asal masing-masing menentukan yang mana `/name` jalankan. Tabel mencakup lokasi enterprise, personal, project, nested, plugin, dan claude.ai, skills bundel, dan file perintah:

170 172 

171| Nama yang sama di | Yang mana yang berjalan |173| Nama yang sama di | Yang mana yang berjalan |

172| :--------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |174| :--------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

173| Dua dari enterprise, personal, dan project | Enterprise di atas personal, dan personal di atas project. Dengan `deploy` di `~/.claude/skills/` dan `.claude/skills/` proyek, `/deploy` menjalankan yang personal |175| Dua dari enterprise, personal, dan project | Enterprise di atas personal, dan personal di atas project. Dengan `deploy` di `~/.claude/skills/` dan `.claude/skills/` proyek, `/deploy` menjalankan yang personal |

174| Salah satu dari lokasi itu dan [bundled skill](#bundled-skills) | Skill Anda menggantikan perintah bundel, tetapi bukan aliasnya. Skill `code-review` proyek menggantikan `/code-review`, dan alias bundel `/review` tidak pernah menjalankan skill Anda |176| Salah satu dari lokasi itu dan [bundled skill](#bundled-skills) | Skill Anda menggantikan perintah bundel, tetapi bukan aliasnya. Skill `code-review` proyek menggantikan `/code-review`, dan alias bundel `/review` tidak pernah menjalankan skill Anda |

175| Skill dan file di `.claude/commands/` | Skill itu |177| Skill dan file di `.claude/commands/` | Skill itu |

176| Skill root proyek dan nested skill | Keduanya dimuat. Lihat [monorepos dan subdirektori](#discovery-from-parent-and-nested-directories) |178| Skill root proyek dan nested skill | Keduanya dimuat. Lihat [monorepos dan subdirektori](#discovery-from-parent-and-nested-directories) |

177| Plugin skill dan skill di salah satu lokasi di atas | Keduanya dimuat, karena plugin skills diberi namespace sebagai `/plugin-name:skill-name` |179| Plugin skill dan skill di salah satu lokasi di atas | Keduanya dimuat, karena plugin skills diberi namespace sebagai `/plugin-name:skill-name` |

178| Salah satu dari di atas dan skill [disinkronkan dari akun claude.ai Anda](#how-synced-skills-behave) | Skill atau perintah lainnya. Skill yang disinkronkan masih berjalan sebagai `/anthropic-skills:<name>`. Lihat [When a synced skill name matches another command](#when-a-synced-skill-name-matches-another-command) |180| Salah satu dari di atas dan skill [disinkronkan dari akun claude.ai Anda](#how-synced-skills-behave) | Skill atau perintah lainnya. Skill yang disinkronkan masih berjalan sebagai `/anthropic-skills:<name>`. Lihat [Ketika nama synced skill cocok dengan perintah lain](#when-a-synced-skill-name-matches-another-command) |

179 181 

180<h3 id="skills-in-cowork-and-cloud-sessions">182<h3 id="skills-in-cowork-and-cloud-sessions">

181 Gunakan skills di sesi Cowork dan cloud183 Gunakan skills di sesi Cowork dan cloud

182</h3>184</h3>

183 185 

184Sesi [Cowork](https://claude.com/product/cowork) dan [cloud sessions](/docs/id/cloud-environments#what-carries-over-from-your-setup), termasuk [routines](/docs/id/routines), tidak membaca `~/.claude/skills/` di mesin Anda. Sesi Cowork interaktif dan terjadwal memuat skills yang diaktifkan untuk akun claude.ai Anda, disinkronkan saat startup sesi; kelola dari **Customize** di sidebar Desktop app atau dari pengaturan skills di claude.ai. Cloud sessions juga memuat project skills yang dikomitkan ke `.claude/skills/` repositori yang dikloning.186Sesi [Cowork](https://claude.com/product/cowork) dan [sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup), termasuk [routines](/docs/id/routines), tidak membaca `~/.claude/skills/` di mesin Anda. Baik sesi Cowork interaktif maupun terjadwal memuat skills yang diaktifkan untuk akun claude.ai Anda, disinkronkan saat startup sesi; kelola dari **Customize** di sidebar Desktop app atau dari pengaturan skills di claude.ai. Sesi cloud juga memuat project skills yang di-commit ke `.claude/skills/` repositori yang dikloning.

185 187 

186Jika skill hanya ada di `~/.claude/skills/` di mesin Anda, Claude Code melaporkan bahwa skill tidak ditemukan ketika [routine](/docs/id/routines) memanggilnya, karena setiap routine run dimulai sebagai sesi cloud yang segar. Untuk membuat personal skill tersedia di sesi ini:188Jika skill hanya ada di `~/.claude/skills/` di mesin Anda, Claude Code melaporkan bahwa skill tidak ditemukan ketika [routine](/docs/id/routines) menginvokasinya, karena setiap jalankan routine dimulai sebagai sesi cloud segar. Untuk membuat personal skill tersedia di sesi ini:

187 189 

188* Untuk sesi Cowork dan cloud, aktifkan skill untuk akun claude.ai Anda.190* Untuk sesi Cowork dan cloud, aktifkan skill untuk akun claude.ai Anda.

189* Untuk cloud sessions, Anda dapat sebagai gantinya mengkomitkan skill ke `.claude/skills/` repositori, atau mengirimkannya di plugin yang dideklarasikan di `.claude/settings.json` repositori. Repo-declared plugins [install at session start](/docs/id/cloud-environments#what-carries-over-from-your-setup); plugins yang hanya diaktifkan di pengaturan pengguna Anda tidak ditransfer.191* Untuk sesi cloud, Anda dapat sebagai gantinya commit skill ke `.claude/skills/` repositori. Plugin yang dideklarasikan di `.claude/settings.json` repositori dan plugin yang hanya diaktifkan di pengaturan pengguna Anda [tidak dimuat di sesi cloud](/docs/id/cloud-environments#what-carries-over-from-your-setup).

190 192 

191[Desktop scheduled tasks](/docs/id/desktop-scheduled-tasks) berjalan secara lokal di mesin Anda, jadi mereka memuat `~/.claude/skills/`.193[Desktop scheduled tasks](/docs/id/desktop-scheduled-tasks) berjalan secara lokal di mesin Anda, jadi mereka memuat `~/.claude/skills/`.

192 194 


194 Skills yang disinkronkan dari claude.ai196 Skills yang disinkronkan dari claude.ai

195</h3>197</h3>

196 198 

197Bagian ini berlaku untuk Anda jika Anda menggunakan sesi Cowork atau cloud, atau masuk ke Claude Code di terminal Anda dengan akun claude.ai. Di sesi itu, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, tanpa setup apa pun di pihak Anda, seperti yang dijelaskan [Where synced skills load](#where-synced-skills-load). Skills itu mencakup yang Anda buat atau aktifkan di pengaturan claude.ai Anda, skills yang disediakan organisasi Anda di sana, dan skills built-in Anthropic seperti `pdf` dan `xlsx`.199Bagian ini berlaku untuk Anda jika Anda menggunakan sesi Cowork atau cloud, atau masuk ke Claude Code di terminal Anda dengan akun claude.ai. Di sesi itu, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, tanpa setup di pihak Anda, seperti yang dijelaskan [Where synced skills load](#where-synced-skills-load). Skills itu termasuk yang Anda buat atau aktifkan di pengaturan claude.ai Anda, skills yang disediakan organisasi Anda di sana, dan skills bawaan Anthropic seperti `pdf` dan `xlsx`.

198 200 

199Claude Code mengunduh synced skill dari akun Anda daripada membaca file yang Anda tulis di mesin tempat sesi berjalan, jadi itu menerapkan aturan ke synced skills yang tidak berlaku untuk skills yang Anda simpan di [skills locations](#where-skills-live).201Claude Code mengunduh synced skill dari akun Anda daripada membaca file yang Anda tulis di mesin tempat sesi berjalan, jadi itu menerapkan aturan ke synced skills yang tidak berlaku untuk skills yang Anda simpan di [lokasi skills](#where-skills-live).

200 202 

201<h4 id="where-synced-skills-load">203<h4 id="where-synced-skills-load">

202 Tempat synced skills dimuat204 Tempat synced skills dimuat

203</h4>205</h4>

204 206 

205Di sesi Cowork atau cloud, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, dan [Skills in Cowork and cloud sessions](#skills-in-cowork-and-cloud-sessions) mengatakan bagaimana memilih skills mana yang sesi itu dapatkan.207Dalam sesi Cowork atau cloud, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, dan [Skills in Cowork and cloud sessions](#skills-in-cowork-and-cloud-sessions) mengatakan bagaimana memilih skills mana yang sesi itu dapatkan.

206 208 

207Di terminal Anda, Claude Code menyinkronkan skills itu di sesi tempat Anda masuk dengan akun claude.ai Anda. Ketika sesi dimulai, Claude Code mengunduh skills akun Anda ke `~/.claude/skills/synced/` di latar belakang, kemudian memeriksa claude.ai untuk perubahan sekitar setiap 10 menit saat sesi berjalan. Ketika pemeriksaan menemukan bahwa skill ditambahkan, diedit, atau dimatikan di claude.ai, Claude Code menambah, memperbarui, atau menghapusnya di sesi yang berjalan tanpa restart. Sinkronisasi di sesi terminal memerlukan Claude Code v2.1.273 atau lebih baru.209Di terminal Anda, Claude Code menyinkronkan skills itu di sesi tempat Anda masuk dengan akun claude.ai Anda. Ketika sesi dimulai, Claude Code mengunduh skills akun Anda ke `~/.claude/skills/synced/` di latar belakang, kemudian memeriksa claude.ai untuk perubahan sekitar setiap 10 menit saat sesi berjalan. Ketika pemeriksaan menemukan bahwa skill ditambahkan, diedit, atau dimatikan di claude.ai, Claude Code menambah, memperbarui, atau menghapusnya di sesi yang berjalan tanpa restart. Sinkronisasi di sesi terminal memerlukan Claude Code v2.1.273 atau lebih baru.

208 210 

209Sinkronisasi tidak pernah menunda startup, karena Claude menunggu unduhan skill hanya ketika itu memanggil skill itu. Run [non-interactive](/docs/id/headless) yang singkat dapat selesai sebelum skill yang baru ditambahkan diunduh, dalam hal ini sesi yang lebih baru mengunduhnya. Untuk membuat run non-interactive mengunduh skills Anda dan menunggu daftar sebelum menjawab prompt, atur [`CLAUDE_CODE_SYNC_SKILLS`](/docs/id/env-vars#variables) ke `1`.211Sinkronisasi tidak pernah menunda startup, karena Claude menunggu unduhan skill hanya ketika menginvokasinya. Jalankan [non-interaktif](/docs/id/headless) yang singkat dapat selesai sebelum skill yang baru ditambahkan diunduh, dalam hal ini sesi yang lebih baru mengunduhnya. Untuk membuat jalankan non-interaktif mengunduh skills Anda dan menunggu daftar sebelum menjawab prompt, atur [`CLAUDE_CODE_SYNC_SKILLS`](/docs/id/env-vars#variables) ke `1`.

210 212 

211Claude Code menyinkronkan hanya di sesi yang masuk dengan akun claude.ai Anda dan [mengambil feature flags dari Anthropic](/docs/id/env-vars#features-that-need-feature-flag-fetching). Itu tidak menyinkronkan di sesi ini:213Claude Code hanya menyinkronkan di sesi yang masuk dengan akun claude.ai Anda dan [mengambil feature flags dari Anthropic](/docs/id/env-vars#features-that-need-feature-flag-fetching). Itu tidak menyinkronkan di sesi ini:

212 214 

213* Sesi yang tidak menggunakan sign-in yang disimpan oleh `/login`, seperti yang mengautentikasi dengan API key, atau yang mana `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`, atau script `apiKeyHelper` menyediakan kredensial215* Sesi yang tidak menggunakan sign-in yang disimpan oleh `/login`, seperti yang mengautentikasi dengan API key, atau yang mana `ANTHROPIC_AUTH_TOKEN`, `CLAUDE_CODE_OAUTH_TOKEN`, atau skrip `apiKeyHelper` menyediakan kredensial

214* Sesi yang tidak mengambil feature flags, seperti yang di Amazon Bedrock atau yang mana Anda atur `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`216* Sesi yang tidak mengambil feature flags, seperti yang di Amazon Bedrock atau yang mana Anda atur `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`

215* Sesi dalam [bare mode](/docs/id/headless#start-faster-with-bare-mode) atau yang Anda mulai dengan `--safe-mode`217* Sesi di [bare mode](/docs/id/headless#start-faster-with-bare-mode) atau yang Anda mulai dengan `--safe-mode`

216* Sesi tempat pengaturan terkelola organisasi Anda [mengunci skills ke sumber plugin](/docs/id/settings-reference#strictpluginonlycustomization-skills), atau yang Anda mulai dengan daftar [`--setting-sources`](/docs/id/cli-reference#cli-flags) yang meninggalkan `user`218* Sesi tempat managed settings organisasi Anda [mengunci skills ke sumber plugin](/docs/id/settings-reference#strictpluginonlycustomization-skills), atau yang Anda mulai dengan daftar [`--setting-sources`](/docs/id/cli-reference#cli-flags) yang meninggalkan `user`

217 219 

218Jika Anda masuk dengan `/login` selama sesi, restart Claude Code untuk mulai menyinkronkan.220Jika Anda masuk dengan `/login` selama sesi, restart Claude Code untuk mulai menyinkronkan.

219 221 

220Skills yang sesi sebelumnya sinkronkan tetap di disk. Claude Code memuatnya di sesi yang lebih baru yang masuk ke akun yang sama, bahkan ketika itu tidak dapat menjangkau claude.ai.222Skills yang sesi sebelumnya sinkronkan tetap di disk. Claude Code memuatnya di sesi yang lebih baru yang masuk ke akun yang sama, bahkan ketika tidak dapat menjangkau claude.ai.

223 

224Claude Code mengunduh synced skills dan tidak pernah mengunggahnya. Jika Anda atau Claude mengedit file di bawah `~/.claude/skills/synced/`, perubahan tidak disimpan ke akun claude.ai Anda, dan sinkronisasi yang lebih baru dapat menimpanya atau menghapusnya. Untuk mengubah synced skill, perbarui di claude.ai; sinkronisasi berikutnya mengunduh versi baru.

221 225 

222Untuk melihat skills mana yang disinkronkan, jalankan `/skills`. Menu mencantumnya di bawah `claude.ai sync`.226Untuk melihat skills mana yang disinkronkan, jalankan `/skills`. Menu mencantumnya di bawah `claude.ai sync`.

223 227 

224Beberapa skills Anthropic, seperti `pdf` dan `xlsx`, selalu menyinkronkan. Untuk sisanya, aktifkan atau matikan skill di pengaturan skills Anda di claude.ai untuk mengubah apakah itu menyinkronkan.228Beberapa skills Anthropic, seperti `pdf` dan `xlsx`, selalu disinkronkan. Untuk sisanya, aktifkan atau matikan skill di pengaturan skills Anda di claude.ai untuk mengubah apakah itu disinkronkan.

225 229 

226Untuk menghentikan sinkronisasi di mesin, atur [`syncClaudeAiSkills`](/docs/id/settings-reference#syncclaudeaiskills) ke `false` di pengaturan pengguna Anda. Claude Code berhenti mengunduh, dan lain kali itu dimulai itu memindahkan skills yang sudah disinkronkan ke `~/.claude/skills/.trash/` dan tidak lagi memuatnya. Organisasi Anda dapat mematikan sinkronisasi untuk semua orang dengan mematikan Skills di claude.ai. Untuk menghentikan sinkronisasi sambil meninggalkan Skills aktif, itu dapat mengatur kunci yang sama di [managed settings](/docs/id/managed-settings).230Untuk berhenti menyinkronkan di mesin, atur [`syncClaudeAiSkills`](/docs/id/settings-reference#syncclaudeaiskills) ke `false` di pengaturan pengguna Anda. Claude Code berhenti mengunduh, dan saat berikutnya dimulai itu memindahkan skills yang sudah disinkronkan ke `~/.claude/skills/.trash/` dan tidak lagi memuatnya. Organisasi Anda dapat mematikan sinkronisasi untuk semua orang dengan mematikan Skills di claude.ai. Untuk berhenti menyinkronkan sambil membiarkan Skills aktif, itu dapat mengatur kunci yang sama di [managed settings](/docs/id/managed-settings).

227 231 

228Jika organisasi Anda mematikan Skills di claude.ai, Claude Code menghapus skills yang diunduh dan mereka berhenti dimuat. Skills yang dihapus pindah ke `~/.claude/skills/.trash/`, di mana Anda dapat memulihkan file sampai [retention sweep](/docs/id/claude-directory#cleaned-up-automatically) menghapusnya. Setelah organisasi Anda menghidupkan Skills kembali, Claude Code mengunduh skills yang Anda aktifkan pada sinkronisasi berikutnya.232Jika organisasi Anda mematikan Skills di claude.ai, Claude Code menghapus skills yang diunduh dan mereka berhenti dimuat. Skills yang dihapus pindah ke `~/.claude/skills/.trash/`, tempat Anda dapat memulihkan file sampai [retention sweep](/docs/id/claude-directory#cleaned-up-automatically) menghapusnya. Setelah organisasi Anda menghidupkan Skills kembali, Claude Code mengunduh skills yang Anda aktifkan di sinkronisasi berikutnya.

229 233 

230<h4 id="when-a-synced-skill-name-matches-another-command">234<h4 id="when-a-synced-skill-name-matches-another-command">

231 Ketika nama synced skill cocok dengan perintah lain235 Ketika nama synced skill cocok dengan perintah lain

232</h4>236</h4>

233 237 

234Anda dapat memanggil synced skill dengan nama lengkapnya, `/anthropic-skills:<name>`, atau dengan nama pendeknya, `/<name>`. Ketika perintah lain menggunakan nama pendek itu, `/<name>` menjalankan perintah lain, dan synced skill berjalan hanya sebagai `/anthropic-skills:<name>`. Dengan skill `deploy` lokal dan synced `deploy`, `/deploy` menjalankan skill lokal dan `/anthropic-skills:deploy` menjalankan yang disinkronkan. Sebelum v2.1.269, synced skill hanya memiliki nama pendeknya.238Anda dapat menginvokasi synced skill dengan nama lengkapnya, `/anthropic-skills:<name>`, atau dengan nama pendeknya, `/<name>`. Ketika perintah lain menggunakan nama pendek itu, `/<name>` menjalankan perintah lain, dan synced skill berjalan hanya sebagai `/anthropic-skills:<name>`. Dengan skill `deploy` lokal dan synced `deploy`, `/deploy` menjalankan skill lokal dan `/anthropic-skills:deploy` menjalankan yang disinkronkan. Sebelum v2.1.269, synced skill hanya memiliki nama pendeknya.

235 239 

236Perintah lainnya dapat berupa salah satu dari ini:240Perintah lain dapat berupa salah satu dari ini:

237 241 

238* Perintah built-in atau [bundled skill](#bundled-skills), termasuk yang tidak tersedia di sesi Anda, misalnya setelah Anda mematikan bundled skills242* Perintah bawaan atau [bundled skill](#bundled-skills), termasuk yang tidak tersedia di sesi Anda, misalnya setelah Anda mematikan bundled skills

239* Skill di [local level](#where-skills-live) apa pun atau file di `.claude/commands/`243* Skill di [level lokal apa pun](#where-skills-live) atau file di `.claude/commands/`

240* Plugin skill244* Plugin skill

241* [MCP prompt](/docs/id/mcp#use-mcp-prompts-as-commands)245* [MCP prompt](/docs/id/mcp#use-mcp-prompts-as-commands)

242 246 

243Claude Code memberi label synced skills sehingga Anda dapat mengetahui dari mana mereka berasal. Menu `/skills` dan `/context` mengelompokkan synced skills di bawah `claude.ai sync`, dan menu perintah `/` menandainya sebagai berasal dari claude.ai.247Claude Code memberi label synced skills sehingga Anda dapat mengetahui dari mana mereka berasal. Menu `/skills` dan `/context` mengelompokkan synced skills di bawah `claude.ai sync`, dan menu perintah `/` menandainya sebagai berasal dari claude.ai.

244 248 

245Ketika membandingkan nama, Claude Code mengabaikan kasus, spasi, dan karakter tak terlihat, dan memperlakukan bentuk kompatibilitas seperti huruf lebar dan varian dash sebagai padanan polosnya. Misalnya, synced skill bernama `Commit` dan skill lokal bernama `commit` dihitung sebagai nama yang sama, jadi `/commit` terus menjalankan skill lokal Anda.249Ketika membandingkan nama, Claude Code mengabaikan huruf besar-kecil, spasi, dan karakter tak terlihat, dan memperlakukan bentuk kompatibilitas seperti huruf lebar dan varian dash sebagai padanan polosnya. Misalnya, synced skill bernama `Commit` dan skill lokal bernama `commit` dihitung sebagai nama yang sama, jadi `/commit` terus menjalankan skill lokal Anda.

246 250 

247Nama yang berbeda hanya dengan huruf yang mirip dari alfabet lain dihitung sebagai nama yang berbeda, dan label `claude.ai sync` adalah cara Anda membedakan keduanya. Pemeriksaan dan label ini memerlukan Claude Code v2.1.228 atau lebih baru.251Nama yang berbeda hanya dengan huruf yang mirip dari alfabet lain dihitung sebagai nama yang berbeda, dan label `claude.ai sync` adalah cara Anda membedakan keduanya. Pemeriksaan dan label ini memerlukan Claude Code v2.1.228 atau lebih baru.

248 252 


252 256 

253Claude Code menerapkan dua aturan ke frontmatter synced skill:257Claude Code menerapkan dua aturan ke frontmatter synced skill:

254 258 

255* Claude Code menghormati frontmatter di setiap jenis sesi, jadi grant `allowed-tools` melalui [permission flow](/docs/id/permissions) normal.259* Claude Code menghormati frontmatter di setiap jenis sesi, jadi hibah `allowed-tools` melalui [permission flow](/docs/id/permissions) normal.

256* Claude Code membersihkan teks tampilan yang disediakan skill, seperti deskripsinya. Itu menghapus karakter kontrol, dan dalam teks yang mencapai Claude, seperti deskripsi, itu juga menghindari kurung sudut sehingga teks tidak dapat meniru pemformatan internal Claude Code. Sanitasi ini memerlukan Claude Code v2.1.228 atau lebih baru.260* Claude Code membersihkan teks tampilan yang disediakan skill, seperti deskripsinya. Itu menghapus karakter kontrol, dan dalam teks yang mencapai Claude, seperti deskripsi, itu juga menghindari tanda kurung sudut sehingga teks tidak dapat meniru pemformatan internal Claude Code. Pembersihan ini memerlukan Claude Code v2.1.228 atau lebih baru.

257 261 

258<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">262<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">

259 Bagaimana Claude Code menangani body dari synced skill263 Bagaimana Claude Code menangani body dari synced skill

260</h4>264</h4>

261 265 

262Apa yang Claude Code lakukan dengan body synced skill tergantung di mana sesi berjalan:266Apa yang Claude Code lakukan dengan body synced skill bergantung pada tempat sesi berjalan:

263 267 

264* Di cloud session, body mempertahankan perilaku yang dimiliki skill lokal, karena sesi berjalan di container terisolasi.268* Dalam sesi cloud, body mempertahankan perilaku yang dimiliki skill lokal, karena sesi berjalan dalam kontainer terisolasi.

265* Di sesi Cowork di desktop Anda, body mempertahankan perilaku yang dimiliki skill lokal, kecuali Claude Code menggantikan setiap baris perintah `!` dengan placeholder [`disableSkillShellExecution`](#inject-dynamic-context), seperti yang dilakukannya untuk setiap skill yang Anda sediakan di sana.269* Dalam sesi Cowork di desktop Anda, body mempertahankan perilaku yang dimiliki skill lokal, kecuali Claude Code menggantikan setiap baris perintah `!` dengan placeholder [`disableSkillShellExecution`](#inject-dynamic-context), seperti yang dilakukannya untuk setiap skill yang Anda sediakan di sana.

266* Di sesi lain apa pun di mesin Anda, Claude Code tidak menjalankan [perintah `!`](#inject-dynamic-context), tidak melampirkan file yang referensi `@` beri nama dengan cara yang dilakukannya untuk skill lokal, dan tidak mengganti placeholder `${CLAUDE_PROJECT_DIR}` dan `${CLAUDE_SESSION_ID}`, jadi referensi `@` dan kedua placeholder mencapai Claude sebagai teks literal. Baris perintah `!` juga mencapai Claude sebagai teks literal, atau sebagai placeholder itu ketika `disableSkillShellExecution` aktif. Penanganan ini memerlukan Claude Code v2.1.228 atau lebih baru.270* Dalam sesi lain di mesin Anda, Claude Code tidak menjalankan perintah [`!`](#inject-dynamic-context), tidak melampirkan file yang referensi `@` beri nama dengan cara yang dilakukannya untuk skill lokal, dan tidak mengganti placeholder `${CLAUDE_PROJECT_DIR}` dan `${CLAUDE_SESSION_ID}`, jadi referensi `@` dan kedua placeholder mencapai Claude sebagai teks literal. Baris perintah `!` mencapai Claude sebagai teks literal juga, atau sebagai placeholder itu ketika `disableSkillShellExecution` aktif. Penanganan ini memerlukan Claude Code v2.1.228 atau lebih baru.

267 271 

268<h3 id="live-change-detection">272<h3 id="live-change-detection">

269 Edit skill selama sesi273 Edit skill selama sesi

270</h3>274</h3>

271 275 

272Claude Code mengawasi direktori skill untuk perubahan file, kecuali dalam [bare mode](/docs/id/headless#start-faster-with-bare-mode). Ketika Anda menambah, mengedit, atau menghapus skill di bawah `~/.claude/skills/`, project `.claude/skills/`, atau `.claude/skills/` di dalam direktori `--add-dir`, Claude Code mengambil perubahan dalam sesi saat ini, tanpa restart. Jika Anda membuat direktori skills tingkat atas yang tidak ada ketika sesi dimulai, restart Claude Code sehingga dapat mengawasi direktori baru.276Claude Code mengawasi direktori skill untuk perubahan file, kecuali di [bare mode](/docs/id/headless#start-faster-with-bare-mode). Ketika Anda menambah, mengedit, atau menghapus skill di bawah `~/.claude/skills/`, project `.claude/skills/`, atau `.claude/skills/` di dalam direktori `--add-dir`, Claude Code mengambil perubahan dalam sesi saat ini, tanpa restart. Jika Anda membuat direktori skills tingkat atas yang tidak ada ketika sesi dimulai, restart Claude Code sehingga dapat mengawasi direktori baru.

273 277 

274Live change detection mencakup teks `SKILL.md` saja. Untuk folder skill yang juga merupakan [plugin](/docs/id/plugins-reference#skills-directory-plugins), perubahan ke `hooks/`, `.mcp.json`, `agents/`, dan `output-styles/` memerlukan `/reload-plugins` untuk berlaku.278Live change detection mencakup teks `SKILL.md` saja. Untuk folder skill yang juga merupakan [plugin](/docs/id/plugins-reference#skills-directory-plugins), perubahan ke `hooks/`, `.mcp.json`, `agents/`, dan `output-styles/` memerlukan `/reload-plugins` untuk berlaku.

275 279 


277 Hapus skill281 Hapus skill

278</h3>282</h3>

279 283 

280Bagaimana Anda menghapus skill tergantung dari mana asalnya:284Bagaimana Anda menghapus skill bergantung pada dari mana asalnya:

281 285 

282* **Personal atau project skill**: hapus direktori skill, `~/.claude/skills/<skill-name>/` atau `.claude/skills/<skill-name>/`. Claude Code [menjatuhkannya dari `/skills` dalam sesi saat ini](#live-change-detection); konten yang sudah dimuat Claude Code darinya mengikuti [skill content lifecycle](#skill-content-lifecycle).286* **Personal atau project skill**: hapus direktori skill, `~/.claude/skills/<skill-name>/` atau `.claude/skills/<skill-name>/`. Claude Code [menjatuhkannya dari `/skills` di sesi saat ini](#live-change-detection); konten yang sudah dimuat Claude Code darinya mengikuti [skill content lifecycle](#skill-content-lifecycle).

283* **Enterprise skill**: administrator menghapus direktori skill dari `.claude/skills/` di dalam [managed settings directory](/docs/id/managed-settings#delivery-mechanisms), misalnya `/etc/claude-code/.claude/skills/<skill-name>/` di Linux.287* **Enterprise skill**: administrator menghapus direktori skill dari `.claude/skills/` di dalam [direktori managed settings](/docs/id/managed-settings#delivery-mechanisms), misalnya `/etc/claude-code/.claude/skills/<skill-name>/` di Linux.

284* **Plugin skill**: nonaktifkan atau uninstall plugin yang menyediakannya, dari menu `/plugin` atau dengan `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code membongkar plugin skills ketika [perubahan berlaku](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) atau ketika Anda restart.288* **Plugin skill**: nonaktifkan atau uninstall plugin yang menyediakannya, dari menu `/plugin` atau dengan `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code membongkar skills plugin ketika [perubahan berlaku](/docs/id/discover-plugins#apply-plugin-changes-without-restarting) atau ketika Anda restart.

285* **Skill yang disinkronkan dari claude.ai**: matikan skill untuk akun claude.ai Anda, di tempat yang sama Anda [mengaktifkannya](#skills-in-cowork-and-cloud-sessions). Claude Code menghapusnya dari `~/.claude/skills/synced/` lain kali itu [menyinkronkan skills Anda](#where-synced-skills-load). Jika Anda menghapus direktori dengan tangan sebagai gantinya, sinkronisasi berikutnya mengunduhnya lagi sementara skill tetap diaktifkan di claude.ai.289* **Skill yang disinkronkan dari claude.ai**: matikan skill untuk akun claude.ai Anda, di tempat yang sama Anda [mengaktifkannya](#skills-in-cowork-and-cloud-sessions). Claude Code menghapusnya dari `~/.claude/skills/synced/` saat berikutnya [menyinkronkan skills Anda](#where-synced-skills-load). Jika Anda menghapus direktori dengan tangan sebagai gantinya, sinkronisasi berikutnya mengunduhnya lagi sementara skill tetap diaktifkan di claude.ai.

286* **Bundled skill**: atur [`disableBundledSkills`](#bundled-skills) ke `true` untuk mematikan bundled skills, atau atur satu skill ke `"off"` di [`skillOverrides`](#override-skill-visibility-from-settings) untuk menyembunyikannya.290* **Bundled skill**: atur [`disableBundledSkills`](#bundled-skills) ke `true` untuk mematikan bundled skills, atau atur satu skill ke `"off"` di [`skillOverrides`](#override-skill-visibility-from-settings) untuk menyembunyikannya.

287 291 

288Untuk menyimpan personal atau project skill tetapi menghentikan Claude dari memanggilnya sendiri, atur [`disable-model-invocation: true`](#control-who-invokes-a-skill) di frontmatter-nya, atau `"user-invocable-only"` di [`skillOverrides`](#override-skill-visibility-from-settings) ketika Anda tidak ingin mengedit file.292Untuk menyimpan personal atau project skill tetapi menghentikan Claude dari menginvokasinya sendiri, atur [`disable-model-invocation: true`](#control-who-invokes-a-skill) di frontmatter-nya, atau `"user-invocable-only"` di [`skillOverrides`](#override-skill-visibility-from-settings) ketika Anda tidak ingin mengedit file.

289 293 

290<h2 id="configure-skills">294<h2 id="configure-skills">

291 Konfigurasi skills295 Konfigurasi skills


335 Referensi frontmatter339 Referensi frontmatter

336</h3>340</h3>

337 341 

338Selain konten markdown, Anda dapat mengonfigurasi perilaku skill menggunakan bidang frontmatter YAML antara penanda `---` di bagian atas file `SKILL.md` Anda:342Konfigurasi skill dengan YAML [frontmatter](/docs/id/glossary#frontmatter) antara penanda `---` di bagian atas `SKILL.md`, dan tulis instruksi skill sebagai Markdown setelah penutup `---`. Nama bidang menggunakan kata-kata huruf kecil yang dipisahkan dengan tanda hubung, kecuali `when_to_use`. File [command](#where-skills-live) di `.claude/commands/` menerima bidang yang sama kecuali `name` dan `paths`. Contoh ini menetapkan empat bidang:

339 343 

340```yaml theme={null}344```yaml theme={null}

341---345---


348Your skill instructions here...352Your skill instructions here...

349```353```

350 354 

351Semua bidang bersifat opsional. Hanya `description` yang direkomendasikan sehingga Claude tahu kapan harus menggunakan skill.355Semua bidang bersifat opsional. Hanya `description` yang direkomendasikan sehingga Claude tahu kapan harus menggunakan skill. Nama bidang harus cocok dengan tabel dengan tepat, tanda hubung disertakan: Claude Code mengabaikan bidang yang tidak dikenalinya tanpa melaporkan kesalahan.

352 356 

353Claude Code membaca frontmatter hanya ketika pembukaan `---` adalah baris pertama file. Jika tidak, itu memperlakukan seluruh file, penanda `---` disertakan, sebagai konten skill.357Claude Code membaca frontmatter hanya ketika pembukaan `---` adalah baris pertama file. Jika tidak, itu memperlakukan seluruh file, penanda `---` disertakan, sebagai konten skill. Jika YAML antara penanda tidak diuraikan, skill masih dimuat tanpa bidang yang ditetapkan; lihat [Skill tidak memicu](#skill-not-triggering) untuk menemukan dan memperbaiki kesalahan.

354 358 

355Bidang Boolean menerima `yes`, `no`, `on`, `off`, `1`, dan `0` dalam huruf apa pun, selain `true` dan `false`. Sebelum v2.1.218, Claude Code hanya mengenali `true` dan `false`.359Bidang Boolean menerima `yes`, `no`, `on`, `off`, `1`, dan `0` dalam huruf apa pun, selain `true` dan `false`. Sebelum v2.1.218, Claude Code hanya mengenali `true` dan `false`.

356 360 


790Ketika skill ini berjalan:794Ketika skill ini berjalan:

791 795 

7921. Konteks terisolasi baru dibuat7961. Konteks terisolasi baru dibuat

7932. Subagent menerima konten skill sebagai promptnya ("Research \$ARGUMENTS thoroughly...")7972. Subagent menerima konten skill sebagai promptnya (instruksi "Research \$ARGUMENTS thoroughly")

7943. Field `agent` menentukan lingkungan eksekusi (model, alat, dan izin)7983. Field `agent` menentukan lingkungan eksekusi (model, alat, dan izin)

7954. Subagent merangkum hasilnya dan mengembalikannya ke percakapan utama Anda ketika selesai7994. Subagent merangkum hasilnya dan mengembalikannya ke percakapan utama Anda ketika selesai

796 800 

statusline.md +2 −2

Details

192| `workspace.git_worktree` | Nama git worktree ketika direktori saat ini berada di dalam linked worktree yang dibuat dengan `git worktree add`. Tidak ada di main working tree. Diisi untuk git worktree apa pun, tidak seperti `worktree.*`, yang hanya ada saat sesi berada dalam [sesi worktree](/docs/id/worktrees) |192| `workspace.git_worktree` | Nama git worktree ketika direktori saat ini berada di dalam linked worktree yang dibuat dengan `git worktree add`. Tidak ada di main working tree. Diisi untuk git worktree apa pun, tidak seperti `worktree.*`, yang hanya ada saat sesi berada dalam [sesi worktree](/docs/id/worktrees) |

193| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Identitas repositori yang diuraikan dari remote `origin`, misalnya `"github.com"`, `"anthropics"`, `"claude-code"`. Tidak ada di luar repositori git atau ketika tidak ada remote `origin` yang dikonfigurasi. Untuk proyek gitlab.com yang bersarang dalam subgroup, `owner` adalah jalur namespace lengkap dengan garis miring, seperti `"group/subgroup"`. Sebelum v2.1.260, `workspace.repo` tidak ada untuk proyek-proyek ini |193| `workspace.repo.host`, `workspace.repo.owner`, `workspace.repo.name` | Identitas repositori yang diuraikan dari remote `origin`, misalnya `"github.com"`, `"anthropics"`, `"claude-code"`. Tidak ada di luar repositori git atau ketika tidak ada remote `origin` yang dikonfigurasi. Untuk proyek gitlab.com yang bersarang dalam subgroup, `owner` adalah jalur namespace lengkap dengan garis miring, seperti `"group/subgroup"`. Sebelum v2.1.260, `workspace.repo` tidak ada untuk proyek-proyek ini |

194| `cost.total_cost_usd` | Perkiraan biaya sesi dalam USD, dihitung sisi klien dengan harga daftar kecuali tabel [`modelPricing`](/docs/id/settings-reference#modelpricing) berlaku. Mungkin berbeda dari tagihan aktual Anda. Direset ke \$0 ketika `/clear` memulai sesi baru. Sebelum v2.1.211, total dibawa setelah `/clear` |194| `cost.total_cost_usd` | Perkiraan biaya sesi dalam USD, dihitung sisi klien dengan harga daftar kecuali tabel [`modelPricing`](/docs/id/settings-reference#modelpricing) berlaku. Mungkin berbeda dari tagihan aktual Anda. Direset ke \$0 ketika `/clear` memulai sesi baru. Sebelum v2.1.211, total dibawa setelah `/clear` |

195| `cost.total_duration_ms` | Total waktu dinding jam sejak sesi dimulai, dalam milidetik |195| `cost.total_duration_ms` | Total waktu dinding jam sejak sesi dimulai, dalam milidetik. Terakumulasi di seluruh resume dan tidak termasuk waktu saat sesi tidak berjalan |

196| `cost.total_api_duration_ms` | Total waktu yang dihabiskan menunggu respons API dalam milidetik |196| `cost.total_api_duration_ms` | Total waktu yang dihabiskan menunggu respons API dalam milidetik |

197| `cost.total_lines_added`, `cost.total_lines_removed` | Baris kode yang diubah |197| `cost.total_lines_added`, `cost.total_lines_removed` | Baris kode yang diubah |

198| `context_window.total_input_tokens`, `context_window.total_output_tokens` | Jumlah token saat ini dalam jendela konteks, dari respons API terbaru. Input mencakup pembacaan dan penulisan cache |198| `context_window.total_input_tokens`, `context_window.total_output_tokens` | Jumlah token saat ini dalam jendela konteks, dari respons API terbaru. Input mencakup pembacaan dan penulisan cache |


236 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",236 "prompt_id": "550e8400-e29b-41d4-a716-446655440000",

237 "transcript_path": "/path/to/transcript.jsonl",237 "transcript_path": "/path/to/transcript.jsonl",

238 "model": {238 "model": {

239 "id": "claude-opus-5",239 "id": "claude-opus-5-5",

240 "display_name": "Opus"240 "display_name": "Opus"

241 },241 },

242 "workspace": {242 "workspace": {

sub-agents.md +29 −15

Details

230 </Tab>230 </Tab>

231</Tabs>231</Tabs>

232 232 

233Flag `--agents` menerima JSON dengan bidang `prompt` ditambah bidang [frontmatter](#supported-frontmatter-fields) ini: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, dan `isolation`. Gunakan `prompt` untuk prompt sistem, setara dengan badan markdown dalam subagent berbasis file.233Flag `--agents` menerima JSON dengan bidang `prompt` ditambah bidang [frontmatter](#supported-frontmatter-fields) ini: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, dan `isolation`. Gunakan `prompt` untuk prompt sistem, setara dengan badan markdown dalam subagent berbasis file. `color` dan `experimental` tidak diterima di sini dan diabaikan daripada ditolak.

234 234 

235Setiap kunci tingkat atas dalam JSON adalah nama agen. Jangan mulai nama dengan `-`.235Setiap kunci tingkat atas dalam JSON adalah nama agen. Jangan mulai nama dengan `-`.

236 236 


295 295 

296Ketika percakapan utama itu sendiri berjalan terisolasi dalam worktree, Claude Code menerapkan pemeriksaan yang sama ke sesi dan ke setiap subagent yang dihasilkannya, termasuk subagent tanpa `isolation: worktree`; lihat [Bagaimana Claude Code memberlakukan isolasi](/docs/id/worktrees#how-claude-code-enforces-isolation).296Ketika percakapan utama itu sendiri berjalan terisolasi dalam worktree, Claude Code menerapkan pemeriksaan yang sama ke sesi dan ke setiap subagent yang dihasilkannya, termasuk subagent tanpa `isolation: worktree`; lihat [Bagaimana Claude Code memberlakukan isolasi](/docs/id/worktrees#how-claude-code-enforces-isolation).

297 297 

298<h4 id="supported-frontmatter-fields">298<h3 id="supported-frontmatter-fields">

299 Bidang frontmatter yang didukung299 Referensi frontmatter

300</h4>300</h3>

301 

302Konfigurasi subagent dengan frontmatter YAML [frontmatter](/docs/id/glossary#frontmatter) antara penanda `---` di bagian atas file-nya, dan tulis prompt sistem-nya sebagai Markdown setelah penutup `---`. Hanya `name` dan `description` yang diperlukan.

301 303 

302Bidang berikut dapat digunakan dalam frontmatter YAML. Hanya `name` dan `description` yang diperlukan.304Nama bidang multi-kata menggunakan camelCase, seperti `maxTurns` dan `disallowedTools`, dan harus cocok dengan tabel dengan tepat: Claude Code mengabaikan bidang yang tidak dikenalinya tanpa melaporkan kesalahan. Untuk mengetahui mengapa file subagent tidak dimuat, lihat [File subagent yang Claude Code lewati](#subagent-files-claude-code-skips).

303 305 

304| Bidang | Diperlukan | Deskripsi |306| Bidang | Diperlukan | Deskripsi |

305| :---------------- | :--------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |307| :---------------- | :--------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

306| `name` | Ya | Pengenal unik menggunakan huruf kecil dan tanda hubung. [Hooks](/docs/id/hooks#subagentstart) menerima nilai ini sebagai `agent_type`. Nama file tidak harus cocok. Nama tidak dapat berisi `:`, yang dicadangkan untuk [pengenal yang dibatasi cakupan plugin](/docs/id/plugins) seperti `my-plugin:reviewer`. Claude Code tidak memuat file yang namanya berisi satu dan mencatat kesalahan ke debug log. Sebelum v2.1.218, nama seperti itu diterima |308| `name` | Ya | Pengenal unik, seperti `code-reviewer` atau `reviewer-v2`. [Hooks](/docs/id/hooks#subagentstart) menerima nilai ini sebagai `agent_type`. Nama file tidak harus cocok. Nama tidak dapat berisi `:`, yang dicadangkan untuk [pengenal yang dibatasi cakupan plugin](/docs/id/plugins) seperti `my-plugin:reviewer`. Claude Code tidak memuat file yang namanya berisi satu dan mencatat kesalahan ke debug log. Sebelum v2.1.218, nama seperti itu diterima |

307| `description` | Ya | Kapan Claude harus mendelegasikan ke subagent ini |309| `description` | Ya | Kapan Claude harus mendelegasikan ke subagent ini |

308| `tools` | Tidak | [Alat](#available-tools) yang dapat digunakan subagent. Mewarisi setiap alat yang tersedia untuk subagent jika dihilangkan. Jika tidak ada entri dalam daftar yang diselesaikan ke alat, subagent biasanya [gagal diluncurkan](/docs/id/errors#agent-would-be-spawned-with-zero-tools) dengan kesalahan yang menyebutkan entri. Untuk memuat Skills ke dalam konteks, gunakan bidang `skills` daripada mencantumkan `Skill` di sini |310| `tools` | Tidak | [Alat](#available-tools) yang dapat digunakan subagent, sebagai string yang dipisahkan koma seperti `Read, Grep, Bash` atau daftar YAML. Mewarisi setiap alat yang tersedia untuk subagent jika dihilangkan. Jika tidak ada entri dalam daftar yang diselesaikan ke alat, subagent biasanya [gagal diluncurkan](/docs/id/errors#agent-would-be-spawned-with-zero-tools) dengan kesalahan yang menyebutkan entri. Untuk memuat Skills ke dalam konteks, gunakan bidang `skills` daripada mencantumkan `Skill` di sini |

309| `disallowedTools` | Tidak | Alat untuk ditolak, dihapus dari daftar yang diwarisi atau ditentukan. Entri dengan penentu, seperti `Bash(git push *)`, masih [menghapus seluruh alat](#available-tools) |311| `disallowedTools` | Tidak | Alat untuk ditolak, dihapus dari daftar yang diwarisi atau ditentukan. Format yang sama dengan `tools`. Entri dengan penentu, seperti `Bash(git push *)`, masih [menghapus seluruh alat](#available-tools) |

310| `model` | Tidak | [Model](#choose-a-model) untuk digunakan: `sonnet`, `opus`, `haiku`, `fable`, ID model lengkap seperti `claude-opus-5`, atau `inherit`. Ketika Anda menghilangkannya, Claude Code memilih model dalam [urutan model subagent](#choose-a-model) |312| `model` | Tidak | [Model](#choose-a-model) untuk digunakan: `sonnet`, `opus`, `haiku`, `fable`, ID model lengkap seperti `claude-opus-5-5`, atau `inherit`. Ketika Anda menghilangkannya, Claude Code memilih model dalam [urutan model subagent](#choose-a-model) |

311| `permissionMode` | Tidak | [Mode izin](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, atau `manual` sebagai alias untuk `default`. Alias `manual` memerlukan Claude Code v2.1.200 atau lebih baru. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |313| `permissionMode` | Tidak | [Mode izin](#permission-modes): `default`, `acceptEdits`, `auto`, `dontAsk`, `bypassPermissions`, `plan`, atau `manual` sebagai alias untuk `default`. Alias `manual` memerlukan Claude Code v2.1.200 atau lebih baru. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |

312| `maxTurns` | Tidak | Jumlah maksimum putaran agentic sebelum subagent berhenti. Ketika subagent mencapai batas, Claude Code mengembalikan outputnya ditandai sebagai parsial, dan Claude dapat [melanjutkannya](#resume-subagents) untuk terus. Penandaan parsial memerlukan Claude Code v2.1.246 atau lebih baru |314| `maxTurns` | Tidak | Jumlah maksimum putaran agentic sebelum subagent berhenti. Ketika subagent mencapai batas, Claude Code mengembalikan outputnya ditandai sebagai parsial, dan Claude dapat [melanjutkannya](#resume-subagents) untuk terus. Penandaan parsial memerlukan Claude Code v2.1.246 atau lebih baru |

313| `skills` | Tidak | [Skills](/docs/id/skills) untuk dimuat sebelumnya ke dalam konteks subagent saat startup. Konten skill lengkap disuntikkan, bukan hanya deskripsi. Subagent masih dapat memanggil project, user, dan plugin skills yang tidak tercantum melalui alat Skill |315| `skills` | Tidak | [Skills](/docs/id/skills) untuk dimuat sebelumnya ke dalam konteks subagent saat startup. Konten skill lengkap disuntikkan, bukan hanya deskripsi. Subagent masih dapat memanggil project, user, dan plugin skills yang tidak tercantum melalui alat Skill |


319| `effort` | Tidak | Tingkat usaha ketika subagent ini aktif. Menimpa tingkat usaha sesi. Default: mewarisi dari sesi. Opsi: `low`, `medium`, `high`, `xhigh`, `max`; tingkat yang tersedia tergantung pada model |321| `effort` | Tidak | Tingkat usaha ketika subagent ini aktif. Menimpa tingkat usaha sesi. Default: mewarisi dari sesi. Opsi: `low`, `medium`, `high`, `xhigh`, `max`; tingkat yang tersedia tergantung pada model |

320| `isolation` | Tidak | Atur ke `worktree` untuk menjalankan subagent dalam [git worktree](/docs/id/worktrees) sementara, memberikannya salinan repositori yang terisolasi yang bercabang secara default dari [cabang default](/docs/id/worktrees#choose-the-base-branch) Anda daripada `HEAD` sesi induk. Worktree secara otomatis dibersihkan jika subagent tidak membuat perubahan |322| `isolation` | Tidak | Atur ke `worktree` untuk menjalankan subagent dalam [git worktree](/docs/id/worktrees) sementara, memberikannya salinan repositori yang terisolasi yang bercabang secara default dari [cabang default](/docs/id/worktrees#choose-the-base-branch) Anda daripada `HEAD` sesi induk. Worktree secara otomatis dibersihkan jika subagent tidak membuat perubahan |

321| `color` | Tidak | Warna tampilan untuk subagent dalam daftar tugas dan transkrip. Menerima `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, atau `cyan` |323| `color` | Tidak | Warna tampilan untuk subagent dalam daftar tugas dan transkrip. Menerima `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, atau `cyan` |

322| `initialPrompt` | Tidak | Auto-submitted sebagai putaran pengguna pertama ketika agen ini berjalan sebagai agen sesi utama (melalui `--agent` atau pengaturan `agent`). [Commands](/docs/id/commands) dan [skills](/docs/id/skills) diproses. Ditambahkan di depan prompt yang disediakan pengguna apa pun |324| `initialPrompt` | Tidak | Auto-submitted sebagai putaran pengguna pertama ketika agen ini berjalan sebagai agen sesi utama (melalui `--agent` atau pengaturan `agent`). [Commands](/docs/id/commands) dan [skills](/docs/id/skills) diproses. Ditambahkan di depan prompt yang disediakan pengguna apa pun. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |

323| `experimental` | Tidak | Peta opsi eksperimental. Atur kunci `cacheTtl`-nya ke `5m` atau `1h` untuk memilih [lifetime cache prompt](/docs/id/prompt-caching#choose-the-ttl-yourself) untuk permintaan subagent ini, di tempat frontmatter dalam [prioritas lifetime cache](/docs/id/prompt-caching#choose-the-ttl-yourself). Claude Code mengabaikan nilai lain apa pun, mengabaikan `1h` saat langganan Claude Anda menggunakan kredit penggunaan, dan membaca bidang hanya dari file subagent. Memerlukan Claude Code v2.1.248 atau lebih baru |325| `experimental` | Tidak | Peta opsi eksperimental. Atur kunci `cacheTtl`-nya ke `5m` atau `1h` untuk memilih [lifetime cache prompt](/docs/id/prompt-caching#choose-the-ttl-yourself) untuk permintaan subagent ini, di tempat frontmatter dalam [prioritas lifetime cache](/docs/id/prompt-caching#choose-the-ttl-yourself). Claude Code mengabaikan nilai lain apa pun, mengabaikan `1h` saat langganan Claude Anda menggunakan kredit penggunaan, dan membaca bidang hanya dari file subagent. Memerlukan Claude Code v2.1.248 atau lebih baru |

324 326 

325Tulis `cacheTtl` di dalam peta `experimental`, bukan di tingkat atas frontmatter.327Tulis `cacheTtl` di dalam peta `experimental`, bukan di tingkat atas frontmatter.


362Bidang `model` mengontrol model mana yang digunakan subagent:364Bidang `model` mengontrol model mana yang digunakan subagent:

363 365 

364* **Alias model**: gunakan salah satu alias yang tersedia: `sonnet`, `opus`, `haiku`, atau `fable`366* **Alias model**: gunakan salah satu alias yang tersedia: `sonnet`, `opus`, `haiku`, atau `fable`

365* **ID model lengkap**: gunakan ID model lengkap seperti `claude-opus-5` atau `claude-sonnet-5`. Menerima nilai yang sama dengan flag `--model`367* **ID model lengkap**: gunakan ID model lengkap seperti `claude-opus-5-5` atau `claude-sonnet-5`. Menerima nilai yang sama dengan flag `--model`

366* **inherit**: gunakan model yang sama dengan percakapan utama368* **inherit**: gunakan model yang sama dengan percakapan utama

367 369 

368Ketika Claude memanggil subagent, Claude juga dapat melewatkan parameter `model` untuk invokasi spesifik itu. Claude Code menyelesaikan model subagent dalam urutan ini:370Ketika Claude memanggil subagent, Claude juga dapat melewatkan parameter `model` untuk invokasi spesifik itu. Claude Code menyelesaikan model subagent dalam urutan ini:


3723. Variabel lingkungan [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/id/model-config#environment-variables), ketika Anda mengaturnya ke alias model atau ID model3743. Variabel lingkungan [`CLAUDE_CODE_SUBAGENT_MODEL`](/docs/id/model-config#environment-variables), ketika Anda mengaturnya ke alias model atau ID model

3734. Model percakapan utama3754. Model percakapan utama

374 376 

377Dalam dua kasus, alias keluarga seperti `opus` dalam parameter per-invokasi atau frontmatter diselesaikan ke model percakapan utama sebagai gantinya dari [versi yang ditunjuk alias](/docs/id/model-config#model-aliases):

378 

379* **Model percakapan utama milik keluarga itu**: subagent berjalan pada model yang tepat percakapan utama, termasuk apa pun `[1m]` suffix, sehingga mendapatkan [jendela konteks diperpanjang](/docs/id/model-config#extended-context) yang sama dengan percakapan utama.

380* **Claude Code tidak dapat mengetahui keluarga model percakapan utama, pada [penyedia selain API Anthropic](/docs/id/third-party-integrations)**: ini dapat terjadi dengan [application inference profile ARN](/docs/id/amazon-bedrock#iam-configuration) pada Amazon Bedrock yang Claude Code belum diselesaikan ke model pendukung. Kasus ini hanya mencakup alias `opus`, dan tidak berlaku ketika Anda mengatur [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/id/model-config#environment-variables), karena `opus` kemudian diselesaikan ke model yang Anda atur.

381 

382Alias dalam `CLAUDE_CODE_SUBAGENT_MODEL` selalu diselesaikan ke versi yang ditunjuk alias, bahkan ketika itu menyebutkan keluarga percakapan utama.

383 

375Mengatur `CLAUDE_CODE_SUBAGENT_MODEL` dengan sendirinya tidak mengubah model yang dijalankan subagent Explore dan Plan bawaan. Untuk mengubahnya, lihat [Jalankan setiap subagent pada satu model](#run-every-subagent-on-one-model).384Mengatur `CLAUDE_CODE_SUBAGENT_MODEL` dengan sendirinya tidak mengubah model yang dijalankan subagent Explore dan Plan bawaan. Untuk mengubahnya, lihat [Jalankan setiap subagent pada satu model](#run-every-subagent-on-one-model).

376 385 

377Sebelum v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` datang pertama dalam urutan ini dan menimpa parameter per-invokasi dan frontmatter, termasuk `model: inherit`.386Sebelum v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` datang pertama dalam urutan ini dan menimpa parameter per-invokasi dan frontmatter, termasuk `model: inherit`.


438* `EnterPlanMode`447* `EnterPlanMode`

439* `ExitPlanMode`, kecuali [`permissionMode`](#permission-modes) subagent adalah `plan`448* `ExitPlanMode`, kecuali [`permissionMode`](#permission-modes) subagent adalah `plan`

440* `ScheduleWakeup`449* `ScheduleWakeup`

441* `TaskOutput`

442* `WaitForMcpServers`450* `WaitForMcpServers`

443* `Workflow`451* `Workflow`

444 452 

445Filter kedua berlaku untuk subagent yang berjalan di latar belakang. Terlepas dari `Agent` dan `ExitPlanMode`, yang mengikuti kondisi filter pertama di mana pun subagent berjalan, subagent latar belakang menyimpan setiap alat MCP tetapi hanya alat bawaan ini: `Read`, `Grep`, `Glob`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage`, dan `Artifact`, plus [`SubagentHandback`](/docs/id/tools-reference) untuk subagent yang melaporkan melaluinya. Claude Code menghapus setiap alat bawaan lainnya dari subagent latar belakang, baik yang diwarisi atau tercantum dalam bidang `tools`, sehingga definisi yang sama dapat diselesaikan ke alat berbeda di latar depan dan latar belakang. Penghapusan tidak melaporkan kesalahan kecuali itu meninggalkan daftar `tools` [diselesaikan ke tidak ada apa-apa](/docs/id/errors#agent-would-be-spawned-with-zero-tools).453Filter kedua berlaku untuk subagent yang berjalan di latar belakang. Terlepas dari `Agent` dan `ExitPlanMode`, yang mengikuti kondisi filter pertama di mana pun subagent berjalan, subagent latar belakang menyimpan setiap alat MCP tetapi hanya alat bawaan ini: `Read`, `Grep`, `Glob`, `LSP`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage`, dan `Artifact`, plus [`SubagentHandback`](/docs/id/tools-reference) untuk subagent yang melaporkan melaluinya. Claude Code menghapus setiap alat bawaan lainnya dari subagent latar belakang, baik yang diwarisi atau tercantum dalam bidang `tools`, sehingga definisi yang sama dapat diselesaikan ke alat berbeda di latar depan dan latar belakang. Penghapusan tidak melaporkan kesalahan kecuali itu meninggalkan daftar `tools` [diselesaikan ke tidak ada apa-apa](/docs/id/errors#agent-would-be-spawned-with-zero-tools).

454 

455Sebelum v2.1.280, subagent latar belakang tidak dapat menggunakan `LSP`.

446 456 

447[`ListAgents`](/docs/id/cross-session-messaging) mengikuti filter ini seperti alat bawaan apa pun: subagent latar depan mewarisnya dalam sesi di mana cross-session messaging diaktifkan, dan subagent latar belakang tidak menyimpannya.457[`ListAgents`](/docs/id/cross-session-messaging) mengikuti filter ini seperti alat bawaan apa pun: subagent latar depan mewarisnya dalam sesi di mana cross-session messaging diaktifkan, dan subagent latar belakang tidak menyimpannya.

448 458 


989 999 

990Pemindaian tidak menilai apakah konten berbahaya, dan itu tidak mengubah apa yang dapat dilakukan instruksi dalam laporan: panggilan alat yang dilaporkan mengarahkan Claude untuk membuat masih melalui [pemeriksaan izin](/docs/id/permissions) sesi dan [sandboxing](/docs/id/sandboxing). Ini bukan pengganti untuk [membatasi apa yang dapat dijangkau subagent](#control-subagent-capabilities).1000Pemindaian tidak menilai apakah konten berbahaya, dan itu tidak mengubah apa yang dapat dilakukan instruksi dalam laporan: panggilan alat yang dilaporkan mengarahkan Claude untuk membuat masih melalui [pemeriksaan izin](/docs/id/permissions) sesi dan [sandboxing](/docs/id/sandboxing). Ini bukan pengganti untuk [membatasi apa yang dapat dijangkau subagent](#control-subagent-capabilities).

991 1001 

1002Laporan yang kembali ke Claude sebagai hasil subagent juga tiba di bawah header yang menandainya sebagai output subagent. Header menyatakan bahwa instruksi atau klaim persetujuan di dalam laporan adalah kata-kata subagent dan tidak membawa otoritas dari Anda.

1003 

1004Laporan [subagent background](#run-subagents-in-foreground-or-background) tiba di dalam notifikasi penyelesaian, yang ditandai sebagai peristiwa otomatis daripada pesan dari Anda.

1005 

992<Note>1006<Note>

993 Pemindaian output subagent memerlukan Claude Code v2.1.210 atau lebih baru.1007 Pemindaian output subagent memerlukan Claude Code v2.1.210 atau lebih baru.

994</Note>1008</Note>


1078 1092 

1079Subagent bersarang dikonfigurasi dengan cara yang sama seperti subagent tingkat atas dan diselesaikan dari [scope](#choose-the-subagent-scope) yang sama. Untuk menjaga satu subagent agar tidak menghasilkan sementara nesting aktif, seperti reviewer yang harus tetap read-only, hilangkan `Agent` dari daftar [`tools`](#available-tools) atau tambahkan ke `disallowedTools`.1093Subagent bersarang dikonfigurasi dengan cara yang sama seperti subagent tingkat atas dan diselesaikan dari [scope](#choose-the-subagent-scope) yang sama. Untuk menjaga satu subagent agar tidak menghasilkan sementara nesting aktif, seperti reviewer yang harus tetap read-only, hilangkan `Agent` dari daftar [`tools`](#available-tools) atau tambahkan ke `disallowedTools`.

1080 1094 

1081Claude Code menampilkan subagent bersarang sebagai pohon dalam panel subagent di bawah input prompt dan menandai setiap baris yang masih memiliki keturunan dalam panel dengan hitungan `(+N)` mereka. Buka baris untuk melihat saudara dan anak langsung subagent itu dengan jalur kembali ke `main`.1095Dalam terminal, Claude Code menampilkan subagent bersarang sebagai pohon dalam panel subagent di bawah input prompt dan menandai setiap baris yang masih memiliki keturunan dalam panel dengan hitungan `(+N)` mereka. Buka baris untuk melihat saudara dan anak langsung subagent itu dengan jalur kembali ke `main`.

1082 1096 

1083<Note>1097<Note>

1084 Versi sebelumnya menggunakan default yang berbeda:1098 Versi sebelumnya menggunakan default yang berbeda:

Details

343 Tempel konten besar343 Tempel konten besar

344</h2>344</h2>

345 345 

346Ketika Anda menempel lebih dari 800 karakter atau lebih dari tiga baris ke dalam prompt, Claude Code menciutkan input ke placeholder seperti `[Pasted text #1 +120 lines]` sehingga kotak input tetap dapat digunakan. Di jendela terminal yang lebih pendek dari 12 baris, batas baris turun, sehingga Claude Code menciutkan tempel tiga baris pada 11 baris dan tempel multi-baris apa pun pada 10 baris atau lebih sedikit. Claude Code masih mengirimkan konten lengkap ketika Anda mengirimkan.346Ketika Anda menempel lebih dari 800 karakter atau lebih dari tiga baris ke dalam prompt, Claude Code menciutkan input ke placeholder seperti `[Pasted text #1 +120 lines]` sehingga kotak input tetap dapat digunakan, dan masih mengirimkan konten lengkap ketika Anda mengirimkan. Untuk input yang sangat besar seperti seluruh file atau log panjang, tulis konten ke file dan minta Claude membacanya alih-alih menempel. Transkrip percakapan tetap dapat dibaca dan Claude dapat merujuk ke file berdasarkan jalur di putaran berikutnya. Terminal terintegrasi VS Code juga dapat menjatuhkan karakter dari tempel yang sangat besar sebelum mencapai Claude Code, jadi gunakan file di sana.

347 347 

348Ketika Anda menghapus dengan pintasan kata atau baris seperti `Ctrl+W` atau `Ctrl+K`, atau dengan penghapusan vim melalui gerakan `f`/`t` seperti `df]`, dan rentang yang dihapus mencapai dalam placeholder, Claude Code menghapus placeholder sepenuhnya. Anda dapat menempel penghapusan kembali untuk memulihkannya, dengan [`Ctrl+Y`](/docs/id/interactive-mode#text-editing) setelah pintasan kata atau baris, atau dengan [`p` dalam NORMAL mode](/docs/id/interactive-mode#editing-normal-mode) setelah penghapusan vim.348Jika tempel membawa [karakter Unicode tak terlihat](/docs/id/interactive-mode#invisible-characters-in-prompts), Claude Code menghapusnya ketika Anda menekan Enter dan menempatkan prompt yang dibersihkan kembali di kotak input untuk Anda kirimkan dengan Enter lain.

349 349 

350Claude Code menyimpan konten yang diciutkan di bawah `~/.claude/paste-cache/`, sehingga ketika Anda mengingat kembali prompt dari [riwayat perintah](/docs/id/interactive-mode#command-history) dan mengirimkannya kembali, Claude Code mengirimkan konten tempel lengkap lagi, termasuk dalam sesi yang lebih baru, sampai penyapuan retensi menghapus file cache.350<h3 id="how-claude-treats-pasted-text">

351 Cara Claude memperlakukan teks yang ditempel

352</h3>

353 

354Ketika Anda mengirimkan, Claude melihat konten di balik setiap placeholder `[Pasted text #N]` ditandai sebagai teks yang Anda tempel dari tempat lain daripada diketik. Claude diberitahu bahwa tempel dapat berisi instruksi yang tidak Anda tulis, dan untuk mengikuti instruksi di dalamnya hanya di mana pesan yang Anda ketik memintanya. Dalam sesi yang tidak [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), tempel tidak ditandai.

351 355 

352Claude Code menghapus file cache yang lebih lama dari [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays), mengikuti [aturan penyapuan retensi](/docs/id/claude-directory#cleaned-up-automatically), sehingga prompt yang diingat kembali dapat mereferensikan teks tempel yang tidak lagi ada. Ketika Anda mengirimkan prompt seperti itu, Claude Code tidak pernah mengirimkan string literal `[Pasted text #N]`, dan menampilkan notifikasi yang menamai tempel yang hilang:356<h3 id="delete-and-restore-a-collapsed-paste">

357 Hapus dan pulihkan tempel yang diciutkan

358</h3>

359 

360Ketika Anda menghapus dengan pintasan kata atau baris seperti `Ctrl+W` atau `Ctrl+K`, atau dengan penghapusan vim melalui gerakan `f`/`t` seperti `df]`, dan rentang yang dihapus mencapai dalam placeholder `[Pasted text #N]`, Claude Code menghapus placeholder sepenuhnya. Untuk memulihkannya, tempel penghapusan kembali dengan [`Ctrl+Y`](/docs/id/interactive-mode#text-editing) setelah pintasan kata atau baris, atau dengan [`p` dalam NORMAL mode](/docs/id/interactive-mode#editing-normal-mode) setelah penghapusan vim.

361 

362<h3 id="recall-a-prompt-that-had-pasted-text">

363 Ingat kembali prompt yang memiliki teks yang ditempel

364</h3>

365 

366Claude Code menyimpan konten di balik setiap placeholder `[Pasted text #N]` di bawah `~/.claude/paste-cache/`, sehingga ketika Anda mengingat kembali prompt dari [riwayat perintah](/docs/id/interactive-mode#command-history) dan mengirimkannya kembali, konten tempel lengkap dikirimkan lagi, termasuk dalam sesi yang lebih baru.

367 

368File cache yang lebih lama dari [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays) dihapus di bawah [aturan penyapuan retensi](/docs/id/claude-directory#cleaned-up-automatically), sehingga prompt yang diingat kembali dapat mereferensikan teks tempel yang tidak lagi ada. Ketika Anda mengirimkan prompt seperti itu, Claude Code tidak pernah mengirimkan string literal `[Pasted text #N]`, dan menampilkan notifikasi yang menamai tempel yang hilang:

353 369 

354* Dalam prompt biasa dengan teks yang tersisa, Claude Code menghapus placeholder dan mengirimkan teks yang tersisa.370* Dalam prompt biasa dengan teks yang tersisa, Claude Code menghapus placeholder dan mengirimkan teks yang tersisa.

355* Dalam perintah [shell mode](/docs/id/interactive-mode#shell-mode-with-prefix) atau perintah `/`, di mana penghapusan akan mengubah apa yang berjalan, dan dalam prompt apa pun penghapusan meninggalkan kosong, Claude Code membatalkan pengiriman dan menyimpan teks asli di input, dengan placeholder masih di dalamnya. Hapus placeholder atau edit perintah, kemudian kirim ulang.371* Dalam perintah [shell mode](/docs/id/interactive-mode#shell-mode-with-prefix) atau perintah `/`, di mana penghapusan akan mengubah apa yang berjalan, dan dalam prompt apa pun penghapusan meninggalkan kosong, Claude Code membatalkan pengiriman dan menyimpan teks asli di input, dengan placeholder masih di dalamnya. Hapus placeholder atau edit perintah, kemudian kirim ulang.

356 372 

357Terminal terintegrasi VS Code dapat menjatuhkan karakter dari tempel yang sangat besar sebelum mencapai Claude Code, jadi lebih suka alur kerja berbasis file di sana. Untuk input yang sangat besar seperti seluruh file atau log panjang, tulis konten ke file dan minta Claude membacanya alih-alih menempel. Ini membuat transkrip percakapan tetap dapat dibaca dan memungkinkan Claude mereferensikan file berdasarkan jalur di putaran berikutnya.

358 

359<h2 id="edit-prompts-with-vim-keybindings">373<h2 id="edit-prompts-with-vim-keybindings">

360 Edit prompts with Vim keybindings374 Edit prompts with Vim keybindings

361</h2>375</h2>

Details

86 86 

87Untuk sebagian besar organisasi, Claude for Teams atau Claude for Enterprise memberikan pengalaman terbaik. Anggota tim mendapatkan akses ke Claude Code dan Claude di web dengan satu langganan, penagihan terpusat, dan tidak ada setup infrastruktur yang diperlukan.87Untuk sebagian besar organisasi, Claude for Teams atau Claude for Enterprise memberikan pengalaman terbaik. Anggota tim mendapatkan akses ke Claude Code dan Claude di web dengan satu langganan, penagihan terpusat, dan tidak ada setup infrastruktur yang diperlukan.

88 88 

89**Claude for Teams** adalah self-service dan mencakup fitur kolaborasi, alat admin, dan manajemen penagihan. Terbaik untuk tim yang lebih kecil yang perlu memulai dengan cepat.89**Claude for Teams** adalah self-service dan mencakup fitur kolaborasi, alat admin, SSO, manajemen penagihan, dan [pengaturan yang dikelola server](/docs/id/server-managed-settings) untuk konfigurasi Claude Code di seluruh organisasi. Terbaik untuk tim yang lebih kecil yang perlu memulai dengan cepat.

90 90 

91**Claude for Enterprise** menambahkan SSO dan domain capture, izin berbasis peran, akses API kepatuhan, dan pengaturan kebijakan terkelola untuk menyebarkan konfigurasi Claude Code di seluruh organisasi. Terbaik untuk organisasi yang lebih besar dengan persyaratan keamanan dan kepatuhan.91**Claude for Enterprise** menambahkan domain capture, izin berbasis peran, dan akses API kepatuhan. Terbaik untuk organisasi yang lebih besar dengan persyaratan keamanan dan kepatuhan.

92 92 

93Pelajari lebih lanjut tentang [rencana Tim](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) dan [rencana Enterprise](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan).93Pelajari lebih lanjut tentang [rencana Tim](https://support.claude.com/en/articles/9266767-what-is-the-team-plan) dan [rencana Enterprise](https://support.claude.com/en/articles/9797531-what-is-the-enterprise-plan).

94 94 

Details

24| `Raw mode is not supported` selama instalasi | [Jalankan kembali installer](#raw-mode-is-not-supported-during-install) |24| `Raw mode is not supported` selama instalasi | [Jalankan kembali installer](#raw-mode-is-not-supported-during-install) |

25| `TLS connect error` atau `SSL/TLS secure channel` | [Perbarui sertifikat CA](#tls-or-ssl-connection-errors) |25| `TLS connect error` atau `SSL/TLS secure channel` | [Perbarui sertifikat CA](#tls-or-ssl-connection-errors) |

26| `Failed to fetch version` atau tidak dapat menjangkau server download | [Periksa pengaturan jaringan dan proxy](#check-network-connectivity) |26| `Failed to fetch version` atau tidak dapat menjangkau server download | [Periksa pengaturan jaringan dan proxy](#check-network-connectivity) |

27| `irm is not recognized` atau `&& is not valid` | [Gunakan perintah yang tepat untuk shell Anda](#wrong-install-command-on-windows) |27| `irm is not recognized` atau `The token '&&' is not a valid statement separator` | [Gunakan perintah yang tepat untuk shell Anda](#wrong-install-command-on-windows) |

28| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Perbarui Homebrew](#homebrew-cask-unavailable-or-outdated) |28| `Cask 'claude-code' is unavailable: No Cask with this name exists` | [Perbarui Homebrew](#homebrew-cask-unavailable-or-outdated) |

29| `'bash' is not recognized as the name of a cmdlet` | [Gunakan perintah installer Windows](#wrong-install-command-on-windows) |29| `'bash' is not recognized as the name of a cmdlet` | [Gunakan perintah installer Windows](#wrong-install-command-on-windows) |

30| `A parameter cannot be found that matches parameter name 'fsSL'` | [Gunakan perintah installer Windows](#wrong-install-command-on-windows) |30| `A parameter cannot be found that matches parameter name 'fsSL'` | [Gunakan perintah installer Windows](#wrong-install-command-on-windows) |


512 Wrong install command on Windows512 Wrong install command on Windows

513</h3>513</h3>

514 514 

515Jika Anda melihat `'irm' is not recognized`, `The token '&&' is not valid`, `A parameter cannot be found that matches parameter name 'fsSL'`, atau `'bash' is not recognized as the name of a cmdlet`, Anda menyalin perintah install untuk shell atau sistem operasi yang berbeda. Jika perintah mencetak teks script alih-alih menginstal apa pun, Anda menjalankan hanya sebagian darinya.515Jika Anda melihat `'irm' is not recognized`, `The token '&&' is not a valid statement separator`, `A parameter cannot be found that matches parameter name 'fsSL'`, atau `'bash' is not recognized as the name of a cmdlet`, Anda menyalin perintah install untuk shell atau sistem operasi yang berbeda. Jika perintah mencetak teks script alih-alih menginstal apa pun, Anda menjalankan hanya sebagian darinya.

516 516 

517* **`irm` not recognized**: Anda berada di CMD, bukan PowerShell. Anda memiliki dua opsi:517* **`irm` not recognized**: Anda berada di CMD, bukan PowerShell. Anda memiliki dua opsi:

518 518 


528 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd528 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

529 ```529 ```

530 530 

531* **`&&` not valid**: Anda berada di PowerShell tetapi menjalankan perintah CMD installer. Gunakan PowerShell installer:531* **`&&` not a valid statement separator**: Anda berada di PowerShell tetapi menjalankan perintah CMD installer. Gunakan PowerShell installer:

532 ```powershell theme={null}532 ```powershell theme={null}

533 irm https://claude.ai/install.ps1 | iex533 irm https://claude.ai/install.ps1 | iex

534 ```534 ```

Details

413. Pertimbangkan menambahkan direktori build besar ke file `.gitignore` Anda413. Pertimbangkan menambahkan direktori build besar ke file `.gitignore` Anda

424. Mulai ulang dengan [`claude --safe-mode`](/docs/id/cli-reference#cli-flags) untuk memeriksa apakah plugin, server MCP, atau hook adalah sumbernya. Ini menonaktifkan semua kustomisasi untuk sesi; jika penggunaan turun, lihat [Debug your configuration](/docs/id/debug-your-config#test-against-a-clean-configuration) untuk menemukan yang mana424. Mulai ulang dengan [`claude --safe-mode`](/docs/id/cli-reference#cli-flags) untuk memeriksa apakah plugin, server MCP, atau hook adalah sumbernya. Ini menonaktifkan semua kustomisasi untuk sesi; jika penggunaan turun, lihat [Debug your configuration](/docs/id/debug-your-config#test-against-a-clean-configuration) untuk menemukan yang mana

43 43 

44Jika penggunaan memori heap sesi melampaui 2.5GB, peringatan penggunaan memori kritis muncul. Untuk membebaskan memori, mulai ulang Claude Code dan jalankan [`claude --continue`](/docs/id/cli-reference#cli-flags) untuk melanjutkan percakapan dalam proses baru.

45 

46Di luar [fullscreen rendering](/docs/id/fullscreen), menjalankan `/compact` juga membebaskan memori. Peringatan hilang setelah penggunaan memori turun kembali di bawah 2.5GB.

47 

44Jika penggunaan memori tetap tinggi setelah langkah-langkah ini, jalankan `/heapdump` untuk menulis dua file ke `~/Desktop`: snapshot heap JavaScript bernama `<session-id>.heapsnapshot` dan rincian memori bernama `<session-id>-diagnostics.json`. Claude Code [menyembunyikan perintah dari menu perintah](/docs/id/commands#how-the-command-menu-matches-what-you-type); ketikkan secara lengkap. Di Linux tanpa folder Desktop, file ditulis ke direktori home Anda.48Jika penggunaan memori tetap tinggi setelah langkah-langkah ini, jalankan `/heapdump` untuk menulis dua file ke `~/Desktop`: snapshot heap JavaScript bernama `<session-id>.heapsnapshot` dan rincian memori bernama `<session-id>-diagnostics.json`. Claude Code [menyembunyikan perintah dari menu perintah](/docs/id/commands#how-the-command-menu-matches-what-you-type); ketikkan secara lengkap. Di Linux tanpa folder Desktop, file ditulis ke direktori home Anda.

45 49 

46<Warning>50<Warning>


108 112 

109Untuk menempatkan output Claude di clipboard Anda, minta Claude untuk mencetak konten dalam responsnya, kemudian jalankan [`/copy`](/docs/id/commands). `/copy` menulis ke clipboard dari proses Claude Code itu sendiri daripada dari perintah yang di-sandbox, jadi sandboxing tidak membloknya. Ini dapat menyalin satu blok kode alih-alih seluruh respons, dan juga menulis apa yang disalinnya ke file dan mencetak jalurnya, yang memberi Anda fallback ketika penulisan clipboard tidak mencapai terminal Anda, misalnya melalui SSH.113Untuk menempatkan output Claude di clipboard Anda, minta Claude untuk mencetak konten dalam responsnya, kemudian jalankan [`/copy`](/docs/id/commands). `/copy` menulis ke clipboard dari proses Claude Code itu sendiri daripada dari perintah yang di-sandbox, jadi sandboxing tidak membloknya. Ini dapat menyalin satu blok kode alih-alih seluruh respons, dan juga menulis apa yang disalinnya ke file dan mencetak jalurnya, yang memberi Anda fallback ketika penulisan clipboard tidak mencapai terminal Anda, misalnya melalui SSH.

110 114 

111Untuk membiarkan perintah yang disalurkan menjangkau clipboard secara langsung, tambahkan `pbcopy *`, `wl-copy *`, atau `xclip *` ke [`excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands) sehingga perintah berjalan di luar sandbox.115Ketika Claude menyalurkan teks ke salah satu alat ini, menambahkan `pbcopy *`, `wl-copy *`, atau `xclip *` ke [`excludedCommands`](/docs/id/settings-reference#sandbox-excludedcommands) tidak mengeluarkan panggilan itu dari sandbox dengan sendirinya.

112 116 

113<h3 id="copied-text-doesn’t-reach-your-local-clipboard-over-ssh">117<h3 id="copied-text-doesn’t-reach-your-local-clipboard-over-ssh">

114 Copied text doesn't reach your local clipboard over SSH118 Copied text doesn't reach your local clipboard over SSH

ultrareview.md +10 −3

Details

50 50 

51Cabang basis tidak perlu ada di klon lokal Anda; Claude Code mengambilnya dari `origin`. Jika nama memiliki kesalahan ketik, Claude Code menyarankan nama cabang terdekat dalam kesalahan.51Cabang basis tidak perlu ada di klon lokal Anda; Claude Code mengambilnya dari `origin`. Jika nama memiliki kesalahan ketik, Claude Code menyarankan nama cabang terdekat dalam kesalahan.

52 52 

53Commit id atau tag juga berfungsi sebagai basis, dan tinjauan kemudian mencakup perubahan pada cabang Anda sejak commit itu.

54 

53<h3 id="review-a-pull-request">55<h3 id="review-a-pull-request">

54 Tinjau pull request56 Tinjau pull request

55</h3>57</h3>


114Ultrareview memeriksa diff sebelum pekerjaan tinjauan apa pun berjalan dan memberi tahu Anda ketika tidak dapat meninjau seperti apa adanya:116Ultrareview memeriksa diff sebelum pekerjaan tinjauan apa pun berjalan dan memberi tahu Anda ketika tidak dapat meninjau seperti apa adanya:

115 117 

116* **Diff terlalu besar**: tinjauan cabang dapat mencakup hingga 500 file yang diubah dan 8.000 baris yang diubah secara default. Nilai yang tepat dapat berubah, dan [penolakan](/docs/id/errors#diff-is-too-large-for-ultrareview) menyebutkan yang berlaku, ukuran diff Anda, dan file dengan baris yang paling banyak diubah. Claude Code menolak pull request yang terlalu besar dengan cara yang sama, menyebutkan jumlah file dan barisnya tetapi bukan rincian per-file118* **Diff terlalu besar**: tinjauan cabang dapat mencakup hingga 500 file yang diubah dan 8.000 baris yang diubah secara default. Nilai yang tepat dapat berubah, dan [penolakan](/docs/id/errors#diff-is-too-large-for-ultrareview) menyebutkan yang berlaku, ukuran diff Anda, dan file dengan baris yang paling banyak diubah. Claude Code menolak pull request yang terlalu besar dengan cara yang sama, menyebutkan jumlah file dan barisnya tetapi bukan rincian per-file

117* **Tidak ada yang ditinjau**: ketika diff terhadap basis kosong, Claude Code mengatakan demikian dan menyarankan staging atau committing editan lokal, atau melewatkan basis yang berbeda119* **Tidak ada yang ditinjau**: ketika diff terhadap basis kosong, ultrareview menolak dan menyebutkan cabang atau commit yang dibandingkannya dan kasus yang Anda alami, seperti berada di cabang basis itu sendiri tanpa apa pun yang tidak berkomitmen, atau cabang yang commitnya semuanya sudah bagian dari basis. Ini juga menyarankan cara keluar untuk kasus itu, seperti beralih ke cabang dengan pekerjaan Anda, staging atau committing editan lokal, atau melewatkan basis yang berbeda

118* **Tidak ada merge base**: ketika cabang Anda tidak berbagi sejarah dengan cabang basis, Claude Code kembali ke meninjau setiap file yang dilacak dalam repositori sebagai gantinya; fallback memerlukan klon penuh dan menerapkan batas ukuran yang sama. Pada checkout tanpa cabang atau ref lainnya, seperti HEAD terlepas yang dibuat dengan checkout `FETCH_HEAD` setelah mengambil URL, Claude Code [menolak tinjauan](/docs/id/errors#your-checkout-has-no-branches) dan menyarankan membuat cabang terlebih dahulu120* **Commit pertama**: commit pertama repositori tidak memiliki apa pun sebelumnya untuk dibandingkan, jadi ultrareview meninjau setiap file di dalamnya setelah Anda mengonfirmasi dalam dialog peluncuran. Jika Anda memiliki file yang tidak dilacak, itu menolak sebagai gantinya dan memberi tahu Anda untuk `git add` yang ingin Anda tinjau. Batas ukuran yang sama berlaku.

121 

122 Commit pertama ditinjau secara keseluruhan hanya setelah konfirmasi itu, jadi subperintah `claude ultrareview` dan `claude -p` menolaknya dan menunjukkan Anda ke sesi interaktif sebagai gantinya. Memerlukan Claude Code v2.1.277 atau lebih baru

123* **Tidak ada merge base**: ketika cabang Anda tidak berbagi sejarah dengan cabang basis, atau repositori tidak memiliki cabang basis untuk dibandingkan, ultrareview meninjau setiap file yang dilacak dalam repositori sebagai gantinya. Fallback memerlukan klon penuh dan menerapkan batas ukuran yang sama. Ini diluncurkan hanya ketika Anda mengonfirmasi dalam dialog peluncuran atau menjalankan subperintah `claude ultrareview` sendiri. Dalam `claude -p` dan di mana pun tidak ada yang terjadi, ultrareview menolak, mengatakan tinjauan akan mencakup setiap file, dan menunjukkan Anda ke sesi interaktif.

124 

125 Pada checkout tanpa cabang atau ref lainnya, seperti HEAD terlepas yang dibuat dengan checkout `FETCH_HEAD` setelah mengambil URL, Claude Code [menolak tinjauan](/docs/id/errors#your-checkout-has-no-branches) dan menyarankan membuat cabang terlebih dahulu

119 126 

120<h2 id="pricing-and-free-runs">127<h2 id="pricing-and-free-runs">

121 Harga dan run gratis128 Harga dan run gratis


166 173 

167Tanpa argumen, subperintah meninjau perbedaan antara cabang saat ini Anda dan cabang default, dengan [fallback seluruh repositori](#diff-limits-and-fallbacks) yang sama seperti `/code-review ultra` ketika tidak ada merge base. Teruskan nomor PR untuk meninjau pull request, atau teruskan cabang dasar untuk meninjau terhadapnya; [penanganan cabang dasar](#review-against-a-different-base) cocok dengan perintah interaktif.174Tanpa argumen, subperintah meninjau perbedaan antara cabang saat ini Anda dan cabang default, dengan [fallback seluruh repositori](#diff-limits-and-fallbacks) yang sama seperti `/code-review ultra` ketika tidak ada merge base. Teruskan nomor PR untuk meninjau pull request, atau teruskan cabang dasar untuk meninjau terhadapnya; [penanganan cabang dasar](#review-against-a-different-base) cocok dengan perintah interaktif.

168 175 

169Anda menyetujui fallback seluruh repositori dan prompt penagihan serta syarat ketika Anda menjalankan subperintah, sehingga jalankan dimulai tanpa menunggu input.176Anda menyetujui fallback seluruh repositori dan prompt penagihan serta syarat ketika Anda menjalankan subperintah, sehingga jalankan dimulai tanpa menunggu input. Menjalankannya sendiri adalah apa yang dihitung sebagai persetujuan. Ketika Claude menjalankan subperintah untuk Anda sebagai gantinya, misalnya melalui alat Bash, Claude Code menolak tinjauan seluruh repositori.

170 177 

171Pada Claude Code v2.1.218 atau lebih baru, Anda juga dapat memulai tinjauan cloud dengan menjalankan `/code-review ultra` dalam sesi non-interaktif, misalnya `claude -p '/code-review ultra'`. Claude Code meluncurkan tinjauan dan mencetak tautan pelacakan tanpa menunggu temuan, tidak seperti `claude ultrareview`, yang memblokir hingga temuan tiba. Ketika tinjauan akan menagih kredit penggunaan, Claude Code berhenti sebelum meluncurkan dan mengarahkan Anda ke `claude ultrareview`, karena konfirmasi penagihan memerlukan sesi interaktif. Sebelum v2.1.218, `/code-review ultra` dalam sesi non-interaktif menjalankan tinjauan lokal.178Pada Claude Code v2.1.218 atau lebih baru, Anda juga dapat memulai tinjauan cloud dengan menjalankan `/code-review ultra` dalam sesi non-interaktif, misalnya `claude -p '/code-review ultra'`. Claude Code meluncurkan tinjauan dan mencetak tautan pelacakan tanpa menunggu temuan, tidak seperti `claude ultrareview`, yang memblokir hingga temuan tiba. Ketika tinjauan akan menagih kredit penggunaan, Claude Code berhenti sebelum meluncurkan dan mengarahkan Anda ke `claude ultrareview`, karena konfirmasi penagihan memerlukan sesi interaktif. Sebelum v2.1.218, `/code-review ultra` dalam sesi non-interaktif menjalankan tinjauan lokal.

172 179 

vs-code.md +81 −16

Details

90 * Dalam mode Manual, ketika Claude ingin mengedit file, Claude menampilkan perbandingan berdampingan dari perubahan asli dan yang diusulkan, kemudian meminta izin. Anda dapat menerima, menolak, atau memberi tahu Claude apa yang harus dilakukan sebagai gantinya. Jika Anda mengedit konten yang diusulkan secara langsung di tampilan diff sebelum menerima, Claude diberitahu bahwa Anda memodifikasinya sehingga tidak menganggap file cocok dengan proposal aslinya.90 * Dalam mode Manual, ketika Claude ingin mengedit file, Claude menampilkan perbandingan berdampingan dari perubahan asli dan yang diusulkan, kemudian meminta izin. Anda dapat menerima, menolak, atau memberi tahu Claude apa yang harus dilakukan sebagai gantinya. Jika Anda mengedit konten yang diusulkan secara langsung di tampilan diff sebelum menerima, Claude diberitahu bahwa Anda memodifikasinya sehingga tidak menganggap file cocok dengan proposal aslinya.

91 91 

92 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code menampilkan diff dari perubahan yang diusulkan Claude dengan prompt izin yang menanyakan apakah akan membuat edit" width="3292" height="1876" data-path="images/vs-code-edits.png" />92 <img src="https://mintcdn.com/claude-code/FVYz38sRY-VuoGHA/images/vs-code-edits.png?fit=max&auto=format&n=FVYz38sRY-VuoGHA&q=85&s=e005f9b41c541c5c7c59c082f7c4841c" alt="VS Code menampilkan diff dari perubahan yang diusulkan Claude dengan prompt izin yang menanyakan apakah akan membuat edit" width="3292" height="1876" data-path="images/vs-code-edits.png" />

93 

94 Untuk meninjau edit yang diusulkan satu perubahan pada satu waktu, gunakan tombol **Accept this change** dan **Reject this change** di bawah setiap perubahan dalam diff. Menolak perubahan mengembalikannya dalam konten yang diusulkan; menerima menandainya sebagai ditinjau. Menerima atau menolak seluruh file masih menyelesaikan tinjauan. Diff dengan lebih dari 100 perubahan terbuka tanpa tombol per-perubahan, jadi tinjau sebagai seluruh file. Tinjauan per-perubahan memerlukan Claude Code v2.1.275 atau lebih baru.

95 

96 Tindakan yang sama tersedia di kursor dari menu konteks editor dan dari Command Palette sebagai **Claude Code: Accept Change at Cursor** dan **Claude Code: Reject Change at Cursor**.

93 </Step>97 </Step>

94</Steps>98</Steps>

95 99 


110 * **Manual**: Claude meminta izin sebelum pengeditan file dan sebagian besar perintah shell.114 * **Manual**: Claude meminta izin sebelum pengeditan file dan sebagian besar perintah shell.

111 * **Plan**: Claude menjelaskan apa yang akan dilakukan dan menunggu persetujuan sebelum membuat perubahan. VS Code secara otomatis membuka rencana sebagai dokumen Markdown lengkap di mana Anda dapat menambahkan komentar inline untuk memberikan umpan balik sebelum Claude dimulai.115 * **Plan**: Claude menjelaskan apa yang akan dilakukan dan menunggu persetujuan sebelum membuat perubahan. VS Code secara otomatis membuka rencana sebagai dokumen Markdown lengkap di mana Anda dapat menambahkan komentar inline untuk memberikan umpan balik sebelum Claude dimulai.

112 * **Edit automatically**: Claude membuat pengeditan tanpa bertanya.116 * **Edit automatically**: Claude membuat pengeditan tanpa bertanya.

113* **Model**: pilih **Switch model…** dari menu perintah untuk mengubah model di tengah sesi. Anda juga dapat mengklik nama model di bagian bawah kotak prompt untuk membuka pemilih yang sama. Ketika model saat ini mendukung [tingkat upaya](/docs/id/model-config#adjust-effort-level), pemilih juga menampilkan baris **Effort** dan tombol nama model menunjukkan tingkat yang dipilih. Tombol nama model dan baris **Effort** memerlukan Claude Code v2.1.257 atau lebih baru.117* **Model**: pilih **Switch model…** dari menu perintah untuk mengubah model di tengah sesi. Anda juga dapat mengklik nama model di bagian bawah kotak prompt untuk membuka pemilih yang sama.

114* **Command menu**: klik `/` atau ketik `/` untuk membuka menu perintah. Opsi termasuk melampirkan file, beralih model, dan mengalihkan pemikiran yang diperluas. Bagian Customize menyediakan akses ke server MCP, slash commands, gaya output, hooks, memory, permissions, dan plugins. Item dengan ikon terminal terbuka di terminal terintegrasi.118 

119 Ketika model saat ini mendukung [tingkat upaya](/docs/id/model-config#adjust-effort-level), pemilih juga menampilkan baris **Effort** dan tombol nama model menunjukkan tingkat yang dipilih. Ketika Anda memilih tingkat selain `max`, Claude Code menyimpannya untuk model saat ini sebagai default Anda, di bawah [`modelSettings`](/docs/id/settings-reference#modelsettings) dalam pengaturan pengguna Anda; `max` berlaku hanya untuk sesi saat ini. Tombol nama model dan baris **Effort** memerlukan Claude Code v2.1.257 atau lebih baru.

120* **Command menu**: klik `/` atau ketik `/` untuk membuka menu perintah. Opsi termasuk melampirkan file, beralih model, dan mengalihkan pemikiran yang diperluas.

121 

122 Bagian Customize menyediakan akses ke server MCP, slash commands, gaya output, hooks, memory, instructions, permissions, dan plugins. Item dengan ikon terminal terbuka di terminal terintegrasi.

123 

115 * Untuk menelusuri perintah seperti `/usage` atau [`/remote-control`](/docs/id/remote-control), pilih **Slash commands** di bagian Customize. Dialog mencantumkan mereka dengan kotak filter. Pilih satu untuk menjalankannya. Mengetik `/` di kotak prompt masih menyarankan perintah secara inline. Memerlukan Claude Code v2.1.257 atau lebih baru.124 * Untuk menelusuri perintah seperti `/usage` atau [`/remote-control`](/docs/id/remote-control), pilih **Slash commands** di bagian Customize. Dialog mencantumkan mereka dengan kotak filter. Pilih satu untuk menjalankannya. Mengetik `/` di kotak prompt masih menyarankan perintah secara inline. Memerlukan Claude Code v2.1.257 atau lebih baru.

116 * Pilih **Output styles** di bagian Customize untuk memilih [gaya output](/docs/id/output-styles), termasuk gaya kustom Anda. Memerlukan Claude Code v2.1.257 atau lebih baru.125 * Pilih **Output styles** di bagian Customize untuk memilih [gaya output](/docs/id/output-styles), termasuk gaya kustom Anda. Memerlukan Claude Code v2.1.257 atau lebih baru.

117 126 

118 Untuk membuat gaya kustom sebagai gantinya, pilih **Build a custom style** dari menu **Output styles**. Claude Code menulis [file gaya](/docs/id/output-styles#create-a-custom-output-style) untuk Anda di tingkat proyek atau pengguna. Memerlukan Claude Code v2.1.261 atau lebih baru.127 Untuk membuat gaya kustom sebagai gantinya, pilih **Build a custom style** dari menu **Output styles**. Claude Code menulis [file gaya](/docs/id/output-styles#create-a-custom-output-style) untuk Anda di tingkat proyek atau pengguna. Memerlukan Claude Code v2.1.261 atau lebih baru.

119 * Pilih **Hooks** di bagian Customize untuk melihat [hooks](/docs/id/hooks) yang dimuat dalam sesi, dikelompokkan berdasarkan acara. Anda dapat menambah, mengedit, atau menghapus hooks yang disimpan di file pengaturan pengguna, proyek, dan lokal Anda. Hooks dari sumber lain, seperti pengaturan terkelola atau plugins, bersifat read-only. Memerlukan Claude Code v2.1.269 atau lebih baru.128 * Pilih **Hooks** di bagian Customize untuk melihat [hooks](/docs/id/hooks) yang dimuat dalam sesi, dikelompokkan berdasarkan acara. Anda dapat menambah, mengedit, atau menghapus hooks yang disimpan di file pengaturan pengguna, proyek, dan lokal Anda. Hooks dari sumber lain, seperti pengaturan terkelola atau plugins, bersifat read-only. Memerlukan Claude Code v2.1.269 atau lebih baru.

120 * Pilih **Permissions** di bagian Customize untuk melihat [aturan izin](/docs/id/permissions) sesi, dikelompokkan menjadi Allow, Ask, dan Deny. Anda dapat menambahkan aturan ke pengaturan pengguna, proyek, atau lokal Anda dan menghapus aturan yang disimpan di sana. Aturan dari sumber lain, seperti pengaturan terkelola atau persetujuan yang dibuat hanya untuk sesi ini, bersifat read-only. Memerlukan Claude Code v2.1.269 atau lebih baru.129 * Pilih **Permissions** di bagian Customize untuk melihat [aturan izin](/docs/id/permissions) sesi, dikelompokkan menjadi Allow, Ask, dan Deny. Anda dapat menambahkan aturan ke pengaturan pengguna, proyek, atau lokal Anda dan menghapus aturan yang disimpan di sana. Aturan dari sumber lain, seperti pengaturan terkelola atau persetujuan yang dibuat hanya untuk sesi ini, bersifat read-only. Memerlukan Claude Code v2.1.269 atau lebih baru.

130 * Pilih **Memory** di bagian Customize untuk mengaktifkan atau menonaktifkan [auto memory](/docs/id/memory#auto-memory). Saat aktif, Anda juga dapat menelusuri memori yang telah disimpan Claude dan mengungkapkan folder yang menyimpannya di pengelola file Anda. Memerlukan Claude Code v2.1.274 atau lebih baru.

131 

132 Klik memori yang disimpan untuk membacanya di dialog, di mana Anda dapat mengedit teks, menghapus memori, atau membuka filenya di editor. Melihat, mengedit, dan menghapus memori di dialog memerlukan Claude Code v2.1.275 atau lebih baru.

133 * Pilih **Instructions** di bagian Customize untuk mengedit [file CLAUDE.md](/docs/id/memory#claude-md-files) yang dibaca Claude. Pilih file untuk membukanya di editor. Jika file belum ada, Claude Code akan membuatnya terlebih dahulu. Memerlukan Claude Code v2.1.274 atau lebih baru.

121 * Bagian Settings mencakup **Enable Remote Control for all sessions**, yang menetapkan [`remoteControlAtStartup`](/docs/id/settings-reference#remotecontrolatstartup) untuk mengontrol apakah [sesi interaktif baru terhubung ke Remote Control secara otomatis](/docs/id/remote-control#enable-remote-control-for-all-sessions). Memerlukan Claude Code v2.1.203 atau lebih baru.134 * Bagian Settings mencakup **Enable Remote Control for all sessions**, yang menetapkan [`remoteControlAtStartup`](/docs/id/settings-reference#remotecontrolatstartup) untuk mengontrol apakah [sesi interaktif baru terhubung ke Remote Control secara otomatis](/docs/id/remote-control#enable-remote-control-for-all-sessions). Memerlukan Claude Code v2.1.203 atau lebih baru.

122 135 

123 Ketika Anda mengalihkan toggle on atau off di jendela VS Code, perubahan berlaku untuk sesi yang sudah terbuka di jendela VS Code itu, bukan hanya untuk sesi yang Anda mulai setelahnya. Jika Anda mematikannya, sesi terbuka akan terputus. Dengan Claude Code v2.1.261 atau lebih baru, perubahan juga mencapai sesi yang terbuka di jendela VS Code lainnya Anda.136 Ketika Anda mengalihkan toggle on atau off di jendela VS Code, perubahan berlaku untuk sesi yang sudah terbuka di jendela VS Code itu, bukan hanya untuk sesi yang Anda mulai setelahnya. Jika Anda mematikannya, sesi terbuka akan terputus. Dengan Claude Code v2.1.261 atau lebih baru, perubahan juga mencapai sesi yang terbuka di jendela VS Code lainnya Anda.

124 * Bagian Settings juga mencakup **Focus view**, yang menyembunyikan panggilan alat, hasil alat, dan pemikiran di balik baris yang dapat diperluas, meninggalkan prompt Anda dan respons Claude. Alihkan di sana, dengan `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux), atau dari Command Palette dengan **Claude Code: Toggle Focus view**. Perubahan berlaku untuk setiap sesi terbuka dan bertahan di seluruh sesi. Memerlukan Claude Code v2.1.221 atau lebih baru.137 * Bagian Settings juga mencakup **Focus view**, yang menyembunyikan panggilan alat, hasil alat, dan pemikiran di balik baris yang dapat diperluas, meninggalkan prompt Anda dan respons Claude. Alihkan di sana, dengan `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux), atau dari Command Palette dengan **Claude Code: Toggle Focus view**. Perubahan berlaku untuk setiap sesi terbuka dan bertahan di seluruh sesi. Memerlukan Claude Code v2.1.221 atau lebih baru.

125 138 

126 Daftar tugas terbaru Claude tetap terlihat, begitu juga dengan teks pertanyaan yang tertunda dari Claude yang ditanyakan; ini memerlukan Claude Code v2.1.225 atau lebih baru. Saat Claude menjalankan [subagents](/docs/id/sub-agents), baris kemajuan langsung dengan aktivitas terbaru mereka muncul di bawah grup panggilan alat yang memulainya. Ini memerlukan Claude Code v2.1.269 atau lebih baru.139 Daftar tugas terbaru Claude tetap terlihat, dan begitu juga dengan teks pertanyaan yang tertunda dari Claude yang ditanyakan; ini memerlukan Claude Code v2.1.225 atau lebih baru. Saat Claude menjalankan [subagents](/docs/id/sub-agents), baris kemajuan langsung dengan aktivitas terbaru mereka muncul di bawah grup panggilan alat yang memulainya. Ini memerlukan Claude Code v2.1.269 atau lebih baru.

140 * Untuk keluar dari akun Anthropic Anda, pilih **Sign out** di bagian Settings, atau ketik `/logout`. Pada [penyedia pihak ketiga](#use-third-party-providers), menu tidak menawarkan keduanya. Memerlukan Claude Code v2.1.277 atau lebih baru.

127 * Untuk melaporkan bug, klik **Report a problem** di bagian bawah menu, atau ketik `/bug` atau `/feedback` dengan deskripsi opsional yang mengisi laporan sebelumnya. Ketika Anda mengirimkan laporan dan Anda masuk ke Anthropic pada koneksi pihak pertama, Claude Code mengirimkannya ke Anthropic. Pada penyedia pihak ketiga, atau tanpa kredensial Anthropic, dialog masih terbuka, tetapi mengirimkan menunjukkan kesalahan dan tidak mengirim apa pun: tidak seperti `/bug` CLI, ekstensi tidak menulis arsip lokal. Memerlukan Claude Code v2.1.229 atau lebih baru.141 * Untuk melaporkan bug, klik **Report a problem** di bagian bawah menu, atau ketik `/bug` atau `/feedback` dengan deskripsi opsional yang mengisi laporan sebelumnya. Ketika Anda mengirimkan laporan dan Anda masuk ke Anthropic pada koneksi pihak pertama, Claude Code mengirimkannya ke Anthropic. Pada penyedia pihak ketiga, atau tanpa kredensial Anthropic, dialog masih terbuka, tetapi mengirimkan menunjukkan kesalahan dan tidak mengirim apa pun: tidak seperti `/bug` CLI, ekstensi tidak menulis arsip lokal. Memerlukan Claude Code v2.1.229 atau lebih baru.

128 142 

129 Jika kebijakan organisasi Anda mematikan umpan balik produk, **Report a problem** tidak muncul di menu, dan `/bug` serta `/feedback` menampilkan pemberitahuan `Feedback is turned off by your organization's policy or this environment's settings.` alih-alih membuka laporan.143 Jika kebijakan organisasi Anda mematikan umpan balik produk, **Report a problem** tidak muncul di menu, dan `/bug` serta `/feedback` menampilkan pemberitahuan `Feedback is turned off by your organization's policy or this environment's settings.` alih-alih membuka laporan.

130* **Side questions**: ketik `/btw` diikuti oleh pertanyaan untuk bertanya tentang sesi Anda [tanpa menambah percakapan](/docs/id/interactive-mode#side-questions-with-%2Fbtw). Jawaban terbuka di panel di samping obrolan, di mana Anda dapat mengajukan pertanyaan lanjutan. Thread bertahan dari muat ulang jendela. Claude Code menyimpan 20 pertukaran terbaru dan thread yang disimpan kedaluwarsa pada jadwal [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays), selama Claude Code dapat [dengan aman menentukan periode retensi](/docs/id/claude-directory#cleaned-up-automatically). Untuk menghapus thread, klik ikon tempat sampah di panel. Memerlukan Claude Code v2.1.227 atau lebih baru.144* **Side questions**: ketik `/btw` diikuti oleh pertanyaan untuk bertanya tentang sesi Anda [tanpa menambah percakapan](/docs/id/interactive-mode#side-questions-with-%2Fbtw). Jawaban terbuka di panel di samping obrolan, di mana Anda dapat mengajukan pertanyaan lanjutan. Thread bertahan dari muat ulang jendela. Claude Code menyimpan 20 pertukaran terbaru dan thread yang disimpan kedaluwarsa pada jadwal [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays), selama Claude Code dapat [dengan aman menentukan periode retensi](/docs/id/claude-directory#cleaned-up-automatically). Untuk menghapus thread, klik ikon tempat sampah di panel. Memerlukan Claude Code v2.1.227 atau lebih baru.

145* **Copy a response**: arahkan kursor ke respons dan klik **Copy response** untuk menyalinnya ke clipboard Anda, atau ketik `/copy` untuk menyalin respons terbaru. `/copy 2` menyalin yang kedua terakhir. Memerlukan Claude Code v2.1.277 atau lebih baru.

131* **Context indicator**: kotak prompt menunjukkan berapa banyak jendela konteks Claude yang Anda gunakan. Claude secara otomatis mengompres saat diperlukan, atau Anda dapat menjalankan `/compact` secara manual.146* **Context indicator**: kotak prompt menunjukkan berapa banyak jendela konteks Claude yang Anda gunakan. Claude secara otomatis mengompres saat diperlukan, atau Anda dapat menjalankan `/compact` secara manual.

132* **Prompt cache clock**: ikon jam di samping indikator konteks memperkirakan berapa banyak waktu [prompt cache](/docs/id/prompt-caching) percakapan yang tersisa sebelum kedaluwarsa. Ini menghitung mundur dari [lifetime](/docs/id/prompt-caching#cache-lifetime) cache lima menit atau satu jam, dan setiap respons yang menggunakan cache memulai ulang hitungan mundur. Terlepas dari pemadatan, [tindakan yang membatalkan cache](/docs/id/prompt-caching#actions-that-invalidate-the-cache) tidak mengatur ulang jam, jadi masih dapat menunjukkan menit yang tersisa setelah Anda beralih model.147* **Prompt cache clock**: ikon jam di samping indikator konteks memperkirakan berapa banyak waktu [prompt cache](/docs/id/prompt-caching) percakapan yang tersisa sebelum kedaluwarsa. Ini menghitung mundur dari [lifetime](/docs/id/prompt-caching#cache-lifetime) cache lima menit atau satu jam, dan setiap respons yang menggunakan cache memulai ulang hitungan mundur. Terlepas dari pemadatan, [tindakan yang membatalkan cache](/docs/id/prompt-caching#actions-that-invalidate-the-cache) tidak mengatur ulang jam, jadi masih dapat menunjukkan menit yang tersisa setelah Anda beralih model.

133 * Sampai hitungan mundur habis, ikon menunjukkan menit yang tersisa, seperti **12m**.148 * Sampai hitungan mundur habis, ikon menunjukkan menit yang tersisa, seperti **12m**.


136* **Agent map**: ketika percakapan mencakup [subagents](/docs/id/sub-agents), hitungan agen seperti **2 agents** muncul di bagian bawah kotak prompt. Titiknya menunjukkan apakah ada subagent yang bekerja atau menunggu izin Anda.151* **Agent map**: ketika percakapan mencakup [subagents](/docs/id/sub-agents), hitungan agen seperti **2 agents** muncul di bagian bawah kotak prompt. Titiknya menunjukkan apakah ada subagent yang bekerja atau menunggu izin Anda.

137 152 

138 Klik hitungan agen untuk membuka peta agen, yang menggambar subagent percakapan sebagai pohon di bawah agen utama, masing-masing dengan status, waktu yang telah berlalu, dan hitungan token. Klik subagent untuk melihat prompt dan panggilan alat, buka transkrip read-only, atau hentikan saat berjalan. Memerlukan Claude Code v2.1.269 atau lebih baru.153 Klik hitungan agen untuk membuka peta agen, yang menggambar subagent percakapan sebagai pohon di bawah agen utama, masing-masing dengan status, waktu yang telah berlalu, dan hitungan token. Klik subagent untuk melihat prompt dan panggilan alat, buka transkrip read-only, atau hentikan saat berjalan. Memerlukan Claude Code v2.1.269 atau lebih baru.

154 

155 Peta juga mencantumkan [tugas latar belakang](/docs/id/tools-reference#background-commands) sesi lainnya, seperti perintah shell latar belakang dan [monitors](/docs/id/tools-reference#monitor-tool), di bawah agen. Klik baris untuk membuka kartu tugas dan hentikan di sana.

156 

157 Untuk membuka peta ketika tidak ada hitungan agen yang ditampilkan, seperti ketika Claude telah memulai shell latar belakang tetapi tidak ada subagents, ketik `/tasks` di kotak prompt. Tugas latar belakang dalam peta dan `/tasks` yang diketik memerlukan Claude Code v2.1.277 atau lebih baru.

139* **Extended thinking**: memungkinkan Claude menghabiskan lebih banyak waktu untuk bernalar melalui masalah yang kompleks. Alihkan melalui menu perintah (`/`). Penalaran Claude muncul dalam percakapan sebagai blok yang runtuh: klik blok untuk membacanya, atau tekan `Ctrl+O` untuk memperluas atau meruntuhkan setiap blok pemikiran dalam sesi. Lihat [Extended thinking](/docs/id/model-config#extended-thinking) untuk detail.158* **Extended thinking**: memungkinkan Claude menghabiskan lebih banyak waktu untuk bernalar melalui masalah yang kompleks. Alihkan melalui menu perintah (`/`). Penalaran Claude muncul dalam percakapan sebagai blok yang runtuh: klik blok untuk membacanya, atau tekan `Ctrl+O` untuk memperluas atau meruntuhkan setiap blok pemikiran dalam sesi. Lihat [Extended thinking](/docs/id/model-config#extended-thinking) untuk detail.

140* **Multi-line input**: tekan `Shift+Enter` untuk menambahkan baris baru tanpa mengirim. Ini juga berfungsi di input teks bebas "Other" dari dialog pertanyaan.159* **Multi-line input**: tekan `Shift+Enter` untuk menambahkan baris baru tanpa mengirim. Ini juga berfungsi di input teks bebas "Other" dari dialog pertanyaan.

141 160 


154 173 

155Ketika Anda memilih teks di editor, Claude dapat melihat kode yang disorot secara otomatis. Footer kotak prompt menunjukkan berapa banyak baris yang dipilih. Tekan `Option+K` (Mac) / `Alt+K` (Windows/Linux) untuk menyisipkan @-mention dengan jalur file dan nomor baris (misalnya, `@app.ts#5-10`). Klik **X** pada indikator seleksi untuk menghapusnya sehingga Claude tidak menerima seleksi. Indikator muncul kembali ketika Anda memilih teks lain.174Ketika Anda memilih teks di editor, Claude dapat melihat kode yang disorot secara otomatis. Footer kotak prompt menunjukkan berapa banyak baris yang dipilih. Tekan `Option+K` (Mac) / `Alt+K` (Windows/Linux) untuk menyisipkan @-mention dengan jalur file dan nomor baris (misalnya, `@app.ts#5-10`). Klik **X** pada indikator seleksi untuk menghapusnya sehingga Claude tidak menerima seleksi. Indikator muncul kembali ketika Anda memilih teks lain.

156 175 

176Ekstensi menahan teks yang dipilih dari beberapa file. Ketika file berada di dalam workspace Anda dan cocok dengan pengaturan `files.exclude` atau `search.exclude` Anda, Claude menerima paling banyak jalur file dan bukan teks yang Anda pilih. Hal yang sama berlaku untuk file yang diabaikan git, selama pengaturan `search.useIgnoreFiles` VS Code dan pengaturan [`respectGitIgnore`](#extension-settings) ekstensi keduanya aktif, yang merupakan default. Filter ini mencakup panel obrolan saja: ketika Claude Code berjalan di terminal terintegrasi, CLI mengirimkan teks yang dipilih Anda apa pun filenya, jadi tambahkan [aturan deny `Read`](#the-built-in-ide-mcp-server) untuk menjaga konten file dari Claude di sana.

177 

157Claude juga melihat file mana yang Anda buka di editor, bahkan ketika tidak ada yang dipilih, dan kotak prompt menunjukkan namanya. Untuk menambahkan hanya teks yang dipilih, matikan [pengaturan Attach Open File](vscode://settings/claudeCode.attachOpenFile). Pengaturan memerlukan Claude Code v2.1.271 atau lebih baru.178Claude juga melihat file mana yang Anda buka di editor, bahkan ketika tidak ada yang dipilih, dan kotak prompt menunjukkan namanya. Untuk menambahkan hanya teks yang dipilih, matikan [pengaturan Attach Open File](vscode://settings/claudeCode.attachOpenFile). Pengaturan memerlukan Claude Code v2.1.271 atau lebih baru.

158 179 

159Untuk melampirkan gambar, tempel dari clipboard Anda ke kotak prompt. Anda juga dapat menahan `Shift` sambil menyeret file ke kotak prompt untuk menambahkannya sebagai lampiran. Klik X pada lampiran apa pun untuk menghapusnya dari konteks.180Anda juga dapat melampirkan gambar dan file ke pesan Anda:

181 

182* Untuk melampirkan gambar, tempel dari clipboard Anda ke kotak prompt.

183* Untuk melampirkan file, tahan `Shift` sambil menyeret mereka ke kotak prompt.

184* Untuk menghapus lampiran dari konteks, klik X padanya.

160 185 

161<h3 id="resume-past-conversations">186<h3 id="resume-past-conversations">

162 Lanjutkan percakapan masa lalu187 Lanjutkan percakapan masa lalu


171 196 

172Secara default, sesi tanpa aktivitas selama 14 hari pindah ke **Archived sessions** secara otomatis, kecuali jika terbuka, belum dibaca, atau dalam [grup](#organize-sessions-into-groups). Pengarsipan otomatis memerlukan Claude Code v2.1.265 atau lebih baru. Untuk mengubah periode atau mematikannya, buka [Archive Inactive Sessions setting](vscode://settings/claudeCode.archiveInactiveSessions) dan pilih jumlah hari atau **Never**.197Secara default, sesi tanpa aktivitas selama 14 hari pindah ke **Archived sessions** secara otomatis, kecuali jika terbuka, belum dibaca, atau dalam [grup](#organize-sessions-into-groups). Pengarsipan otomatis memerlukan Claude Code v2.1.265 atau lebih baru. Untuk mengubah periode atau mematikannya, buka [Archive Inactive Sessions setting](vscode://settings/claudeCode.archiveInactiveSessions) dan pilih jumlah hari atau **Never**.

173 198 

174Untuk memulihkan sesi yang diarsipkan, perluas **Archived sessions** dan klik **Unarchive session**. Sebelum v2.1.257, tindakannya adalah **Delete session**, yang menyembunyikan sesi tanpa cara untuk memulihkannya. Sesi yang Anda hapus kemudian muncul di bawah **Archived sessions** setelah Anda upgrade.199Untuk memulihkan sesi yang diarsipkan, perluas **Archived sessions** dan klik **Unarchive session**. Untuk memulihkan setiap sesi yang diarsipkan sekaligus, arahkan kursor ke header **Archived sessions** dalam daftar sesi di Activity Bar dan klik ikon unarchive-nya, yang memerlukan Claude Code v2.1.277 atau lebih baru. Sebelum v2.1.257, tindakannya adalah **Delete session**, yang menyembunyikan sesi tanpa cara untuk memulihkannya. Sesi yang Anda hapus kemudian muncul di bawah **Archived sessions** setelah Anda upgrade.

175 200 

176Ketika percakapan yang Anda lanjutkan berakhir dalam plan mode, Claude Code memulihkan plan mode. Memerlukan Claude Code v2.1.246 atau lebih baru. Claude Code tidak memulihkannya dalam dua kasus:201Ketika percakapan yang Anda lanjutkan berakhir dalam plan mode, Claude Code memulihkan plan mode. Memerlukan Claude Code v2.1.246 atau lebih baru. Claude Code tidak memulihkannya dalam dua kasus:

177 202 


206 Periksa akun dan penggunaan231 Periksa akun dan penggunaan

207</h3>232</h3>

208 233 

209Jalankan `/usage` untuk membuka dialog Account & usage. Dialog memerlukan masuk claude.ai, jadi tidak ditawarkan pada [penyedia pihak ketiga](#use-third-party-providers). Ini menunjukkan akun yang masuk, paket Anda, dan bilah penggunaan untuk batas paket Anda, seperti sesi saat ini dan minggu ini. Setiap bilah menunjukkan berapa lama sampai batasnya direset.234Jalankan `/usage` untuk membuka dialog Account & usage. Dialog menunjukkan akun yang masuk, dan penggunaan yang dilaporkan berbeda menurut masuk:

210 235 

211Dialog juga merinci apa yang berkontribusi pada batas paket Anda. Ini menandai perilaku yang menyumbang 10% atau lebih dari penggunaan baru-baru ini, seperti cache misses, konteks panjang, dan sesi yang berat subagent atau sangat paralel, masing-masing dengan tip untuk menguranginya. Tabel atribusi menunjukkan berapa banyak penggunaan yang berasal dari setiap skill, subagent, plugin, dan server MCP.236* **Paket claude.ai**: bilah penggunaan untuk batas paket Anda, seperti sesi saat ini dan minggu ini. Setiap bilah menunjukkan berapa lama sampai batasnya direset.

212 237 

213Gunakan toggle Day dan Week untuk beralih antara 24 jam terakhir dan 7 hari terakhir. Angka-angka tersebut perkiraan dan dihitung dari sesi lokal di mesin ini, jadi penggunaan dari perangkat lain atau claude.ai tidak disertakan. Untuk informasi lebih lanjut tentang pelacakan dan pengurangan penggunaan, lihat [Track your costs](/docs/id/costs#track-your-costs).238 Dialog juga merinci apa yang berkontribusi pada batas paket Anda. Ini menandai perilaku yang menyumbang 10% atau lebih dari penggunaan baru-baru ini, seperti cache misses, konteks panjang, dan sesi yang berat subagent atau sangat paralel, masing-masing dengan tip untuk menguranginya. Tabel atribusi menunjukkan berapa banyak penggunaan yang berasal dari setiap skill, subagent, plugin, dan server MCP.

239 

240 Gunakan toggle Day dan Week untuk beralih antara 24 jam terakhir dan 7 hari terakhir. Angka-angka tersebut perkiraan dan dihitung dari sesi lokal di mesin ini, jadi penggunaan dari perangkat lain atau claude.ai tidak disertakan.

241* **Masuk lainnya**: ketika batas paket tidak berlaku untuk masuk Anda, seperti pada [penyedia pihak ketiga](#use-third-party-providers) atau dengan kunci API, bagian Usage menunjukkan biaya sesi sendiri dan penggunaan token sebagai gantinya. `/usage` CLI menunjukkan total yang sama dalam [Session block](/docs/id/costs#track-your-costs)-nya. Daftar sesi dalam Activity Bar juga menunjukkan total sesi aktif di bawah header **Account & usage**-nya. Memerlukan Claude Code v2.1.277 atau lebih baru.

242 

243Untuk informasi lebih lanjut tentang pelacakan dan pengurangan penggunaan, lihat [Track your costs](/docs/id/costs#track-your-costs).

214 244 

215<h2 id="customize-your-workflow">245<h2 id="customize-your-workflow">

216 Sesuaikan alur kerja Anda246 Sesuaikan alur kerja Anda


228* **Primary sidebar**: sidebar kiri dengan ikon untuk Explorer, Search, dll.258* **Primary sidebar**: sidebar kiri dengan ikon untuk Explorer, Search, dll.

229* **Editor area**: membuka Claude sebagai tab di samping file Anda. Berguna untuk tugas sampingan.259* **Editor area**: membuka Claude sebagai tab di samping file Anda. Berguna untuk tugas sampingan.

230 260 

261Ketika Claude membuka tab di grup editor baru, ekstensi mengunci grup tersebut, sehingga file yang Anda buka saat tab Claude fokus masuk ke grup lain alih-alih di sebelahnya.

262 

263Untuk menghentikan ekstensi dari mengunci grup, matikan [pengaturan Lock Editor Groups](vscode://settings/claudeCode.lockEditorGroups). Grup yang sudah terkunci tetap terkunci sampai Anda membukanya. Pengaturan ini memerlukan Claude Code v2.1.274 atau lebih baru.

264 

231<Tip>265<Tip>

232 Gunakan sidebar untuk sesi Claude utama Anda dan buka tab tambahan untuk tugas sampingan. Claude mengingat lokasi pilihan Anda. Ikon daftar sesi Activity Bar terpisah dari panel Claude: daftar sesi selalu terlihat di Activity Bar, sementara ikon panel Claude hanya muncul di sana ketika panel ditambatkan ke sidebar kiri.266 Gunakan sidebar untuk sesi Claude utama Anda dan buka tab tambahan untuk tugas sampingan. Claude mengingat lokasi pilihan Anda. Ikon daftar sesi Activity Bar terpisah dari panel Claude: daftar sesi selalu terlihat di Activity Bar, sementara ikon panel Claude hanya muncul di sana ketika panel ditambatkan ke sidebar kiri.

233</Tip>267</Tip>


237* **Editor tab**: percakapan kembali dengan tabnya.271* **Editor tab**: percakapan kembali dengan tabnya.

238* **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).272* **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).

239 273 

274Jika 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.

275 

276Untuk mematikan kelanjutan, buka [pengaturan Continue After Reload](vscode://settings/claudeCode.continueAfterReload) dan hapus centangnya.

277 

240<h3 id="run-multiple-conversations">278<h3 id="run-multiple-conversations">

241 Jalankan beberapa percakapan279 Jalankan beberapa percakapan

242</h3>280</h3>


262 Beralih ke mode terminal300 Beralih ke mode terminal

263</h3>301</h3>

264 302 

265Secara default, ekstensi membuka panel chat grafis. Jika Anda lebih suka antarmuka gaya CLI, buka [Use Terminal setting](vscode://settings/claudeCode.useTerminal) dan centang kotak.303Secara default, ekstensi membuka panel chat grafis. Jika Anda lebih suka antarmuka gaya CLI, buka [pengaturan Use Terminal](vscode://settings/claudeCode.useTerminal) dan centang kotak.

266 304 

267Anda juga dapat membuka pengaturan VS Code (`Cmd+,` di Mac atau `Ctrl+,` di Windows/Linux), buka Extensions → Claude Code, dan centang **Use Terminal**.305Anda juga dapat membuka pengaturan VS Code (`Cmd+,` di Mac atau `Ctrl+,` di Windows/Linux), buka Extensions → Claude Code, dan centang **Use Terminal**.

268 306 


304URL mengambil dua parameter query:342URL mengambil dua parameter query:

305 343 

306| Parameter | Deskripsi |344| Parameter | Deskripsi |

307| ------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |345| ------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

308| `plugin` | Nama plugin seperti yang tercantum di marketplace-nya. Diperlukan. |346| `plugin` | Nama plugin seperti yang tercantum di marketplace-nya. Diperlukan. |

309| `marketplace` | Tempat plugin berasal, dalam bentuk apa pun yang diterima [tab Marketplaces](#manage-marketplaces), seperti GitHub `owner/repo` atau URL git. URL-encode jika berisi karakter seperti `&`. Default ke `anthropics/claude-plugins-official` ketika dihilangkan. |347| `marketplace` | Tempat plugin berasal: repositori GitHub `owner/repo`, URL `https://`, atau URL git SSH seperti `git@github.com:owner/repo.git`. Default ke `anthropics/claude-plugins-official` ketika dihilangkan. |

348 

349Beberapa nilai yang diterima [tab Marketplaces](#manage-marketplaces) tidak berfungsi dalam tautan, seperti jalur lokal atau alamat `http://`. Untuk yang tersebut, VS Code menampilkan pesan kesalahan dan dialog tidak terbuka.

310 350 

311Dua kasus berakhir pada pesan dalam dialog alih-alih pilihan cakupan:351Dua kasus berakhir pada pesan dalam dialog alih-alih pilihan cakupan:

312 352 


364</Note>404</Note>

365 405 

366| Perintah | Pintasan Keyboard | Deskripsi |406| Perintah | Pintasan Keyboard | Deskripsi |

367| -------------------------- | -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |407| -------------------------- | -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

368| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | Beralih fokus antara editor dan Claude |408| Focus Input | `Cmd+Esc` (Mac) / `Ctrl+Esc` (Windows/Linux) | Beralih fokus antara editor dan Claude |

409| Focus last message | - | Pindahkan fokus keyboard ke pesan terbaru dalam percakapan, atau ke prompt izin yang menunggu, sehingga Anda dapat membaca dari sana dengan keyboard atau pembaca layar. Tidak tersedia dalam [mode terminal](#switch-to-terminal-mode). Memerlukan Claude Code v2.1.268 atau lebih baru |

369| Open in Side Bar | - | Buka Claude di sidebar |410| Open in Side Bar | - | Buka Claude di sidebar |

370| Open in Terminal | - | Buka Claude dalam mode terminal |411| Open in Terminal | - | Buka Claude dalam mode terminal |

371| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | Buka percakapan baru sebagai tab editor |412| Open in New Tab | `Cmd+Shift+Esc` (Mac) / `Ctrl+Shift+Esc` (Windows/Linux) | Buka percakapan baru sebagai tab editor |


373| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | Mulai percakapan baru. Memerlukan Claude fokus dan `enableNewConversationShortcut` diatur ke `true` |414| New Conversation | `Cmd+N` (Mac) / `Ctrl+N` (Windows/Linux) | Mulai percakapan baru. Memerlukan Claude fokus dan `enableNewConversationShortcut` diatur ke `true` |

374| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | Buka kembali tab sesi Claude yang ditutup paling baru. Jatuh kembali ke pembukaan kembali editor normal VS Code ketika tab yang ditutup terakhir bukan sesi Claude. Nonaktifkan dengan `enableReopenClosedSessionShortcut` |415| Reopen Closed Session | `Cmd+Shift+T` (Mac) / `Ctrl+Shift+T` (Windows/Linux) | Buka kembali tab sesi Claude yang ditutup paling baru. Jatuh kembali ke pembukaan kembali editor normal VS Code ketika tab yang ditutup terakhir bukan sesi Claude. Nonaktifkan dengan `enableReopenClosedSessionShortcut` |

375| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Sisipkan referensi ke file saat ini dan pilihan (memerlukan editor fokus) |416| Insert @-Mention Reference | `Option+K` (Mac) / `Alt+K` (Windows/Linux) | Sisipkan referensi ke file saat ini dan pilihan (memerlukan editor fokus) |

417| Accept Change at Cursor | - | Terima perubahan di kursor sambil [meninjau edit yang diusulkan](#get-started) satu perubahan pada satu waktu. Memerlukan Claude Code v2.1.275 atau lebih baru |

418| Reject Change at Cursor | - | Kembalikan perubahan di kursor sambil meninjau edit yang diusulkan satu perubahan pada satu waktu. Memerlukan Claude Code v2.1.275 atau lebih baru |

376| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | Sembunyikan atau tampilkan aktivitas alat dalam percakapan. Bekerja saat panel Claude atau sidebar terlihat. Memerlukan Claude Code v2.1.221 atau lebih baru |419| Toggle Focus view | `Ctrl+Option+F` (Mac) / `Ctrl+Alt+F` (Windows/Linux) | Sembunyikan atau tampilkan aktivitas alat dalam percakapan. Bekerja saat panel Claude atau sidebar terlihat. Memerlukan Claude Code v2.1.221 atau lebih baru |

377| Rename Session Tab | - | Ubah nama sesi di tab Claude aktif. Memerlukan Claude Code v2.1.257 atau lebih baru |420| Rename Session Tab | - | Ubah nama sesi di tab Claude aktif. Memerlukan Claude Code v2.1.257 atau lebih baru |

378| Add Session Tab to Group | - | Tambahkan sesi di tab Claude aktif ke [grup sesi](#organize-sessions-into-groups) yang Anda pilih atau buat. Memerlukan Claude Code v2.1.257 atau lebih baru |421| Add Session Tab to Group | - | Tambahkan sesi di tab Claude aktif ke [grup sesi](#organize-sessions-into-groups) yang Anda pilih atau buat. Memerlukan Claude Code v2.1.257 atau lebih baru |


457| `useTerminal` | `false` | Luncurkan Claude dalam mode terminal alih-alih panel grafis |500| `useTerminal` | `false` | Luncurkan Claude dalam mode terminal alih-alih panel grafis |

458| `initialPermissionMode` | - | Mengontrol prompt persetujuan untuk percakapan baru: `default`, `plan`, `acceptEdits`, atau `bypassPermissions`. `manual` adalah alias untuk `default` dan memilih mode yang diberi label **Manual** dalam indikator mode. Ketika Anda membiarkannya tidak diatur, ekstensi memilih mode izin awal seperti yang dijelaskan dalam [Switch permission modes](/docs/id/permission-modes#switch-permission-modes). |501| `initialPermissionMode` | - | Mengontrol prompt persetujuan untuk percakapan baru: `default`, `plan`, `acceptEdits`, atau `bypassPermissions`. `manual` adalah alias untuk `default` dan memilih mode yang diberi label **Manual** dalam indikator mode. Ketika Anda membiarkannya tidak diatur, ekstensi memilih mode izin awal seperti yang dijelaskan dalam [Switch permission modes](/docs/id/permission-modes#switch-permission-modes). |

459| `preferredLocation` | `panel` | Tempat Claude membuka: `sidebar` (kanan) atau `panel` (tab baru) |502| `preferredLocation` | `panel` | Tempat Claude membuka: `sidebar` (kanan) atau `panel` (tab baru) |

503| `lockEditorGroups` | `true` | [Kunci grup editor yang dimulai Claude untuk tabnya](#choose-where-claude-lives), sehingga file yang Anda buka saat tab Claude difokuskan pergi ke grup lain. Ketika dimatikan, ekstensi tidak pernah mengunci grup editor. Memerlukan Claude Code v2.1.274 atau lebih baru |

460| `autosave` | `true` | Simpan file secara otomatis sebelum Claude membaca atau menulisnya |504| `autosave` | `true` | Simpan file secara otomatis sebelum Claude membaca atau menulisnya |

461| `attachOpenFile` | `true` | Tambahkan file yang terbuka di editor ke pesan Anda dan tampilkan di kotak prompt. Ketika dimatikan, hanya teks yang dipilih yang ditambahkan. Memerlukan Claude Code v2.1.271 atau lebih baru |505| `attachOpenFile` | `true` | Tambahkan file yang terbuka di editor ke pesan Anda dan tampilkan di kotak prompt. Ketika dimatikan, hanya teks yang dipilih yang ditambahkan. Memerlukan Claude Code v2.1.271 atau lebih baru |

462| `useCtrlEnterToSend` | `false` | Gunakan Ctrl/Cmd+Enter alih-alih Enter untuk mengirim prompt |506| `useCtrlEnterToSend` | `false` | Gunakan Ctrl/Cmd+Enter alih-alih Enter untuk mengirim prompt |

507| `scrollToBottomOnSend` | `true` | Gulir percakapan ke bawah saat Anda mengirim pesan. Ketika dimatikan, percakapan tetap berada di tempat Anda meninggalkannya. Memerlukan Claude Code v2.1.275 atau lebih baru |

463| `enableNewConversationShortcut` | `false` | Aktifkan Cmd/Ctrl+N untuk memulai percakapan baru |508| `enableNewConversationShortcut` | `false` | Aktifkan Cmd/Ctrl+N untuk memulai percakapan baru |

464| `enableReopenClosedSessionShortcut` | `true` | Gunakan Cmd/Ctrl+Shift+T untuk membuka kembali tab sesi Claude yang paling baru ditutup. Ketika tab terakhir yang ditutup bukan sesi Claude, pintasan menjalankan perintah reopen-closed-editor normal VS Code. |509| `enableReopenClosedSessionShortcut` | `true` | Gunakan Cmd/Ctrl+Shift+T untuk membuka kembali tab sesi Claude yang paling baru ditutup. Ketika tab terakhir yang ditutup bukan sesi Claude, pintasan menjalankan perintah reopen-closed-editor normal VS Code. |

465| `archiveInactiveSessions` | `14` | [Arsipkan sesi secara otomatis](#resume-past-conversations) setelah jumlah hari tanpa aktivitas ini: `1`, `2`, `7`, atau `14`. Atur `0` untuk mematikannya. Memerlukan Claude Code v2.1.265 atau lebih baru |510| `archiveInactiveSessions` | `14` | [Arsipkan sesi secara otomatis](#resume-past-conversations) setelah jumlah hari tanpa aktivitas ini: `1`, `2`, `7`, atau `14`. Atur `0` untuk mematikannya. Memerlukan Claude Code v2.1.265 atau lebih baru |

511| `continueAfterReload` | `true` | Setelah reload jendela, Claude [melanjutkan langkah yang terputus](#choose-where-claude-lives) dalam sesi yang dipulihkan. Memerlukan Claude Code v2.1.274 atau lebih baru |

466| `hideOnboarding` | `false` | Sembunyikan daftar periksa onboarding (ikon topi kelulusan) |512| `hideOnboarding` | `false` | Sembunyikan daftar periksa onboarding (ikon topi kelulusan) |

467| `focusView` | `false` | Sembunyikan panggilan alat, hasil alat, dan pemikiran di balik baris yang dapat diperluas, meninggalkan prompt Anda dan respons Claude. Daftar tugas terbaru Claude tetap terlihat; ini memerlukan Claude Code v2.1.225 atau lebih baru. Anda juga dapat mengalihkan Focus view dari menu perintah. Memerlukan Claude Code v2.1.221 atau lebih baru |513| `focusView` | `false` | Sembunyikan panggilan alat, hasil alat, dan pemikiran di balik baris yang dapat diperluas, meninggalkan prompt Anda dan respons Claude. Daftar tugas terbaru Claude tetap terlihat; ini memerlukan Claude Code v2.1.225 atau lebih baru. Anda juga dapat mengalihkan Focus view dari menu perintah. Memerlukan Claude Code v2.1.221 atau lebih baru |

468| `respectGitIgnore` | `true` | Kecualikan pola .gitignore dari pencarian file |514| `respectGitIgnore` | `true` | Kecualikan pola .gitignore dari pencarian file dan dari [konteks seleksi](#reference-files-and-folders) |

469| `usePythonEnvironment` | `true` | Aktifkan lingkungan Python workspace saat menjalankan Claude. Memerlukan ekstensi Python. |515| `usePythonEnvironment` | `true` | Aktifkan lingkungan Python workspace saat menjalankan Claude. Memerlukan ekstensi Python. |

470| `environmentVariables` | `[]` | Atur variabel lingkungan untuk proses Claude. Gunakan pengaturan Claude Code sebagai gantinya untuk konfigurasi bersama. |516| `environmentVariables` | `[]` | Atur variabel lingkungan untuk proses Claude. Gunakan pengaturan Claude Code sebagai gantinya untuk konfigurasi bersama. |

471| `disableLoginPrompt` | `false` | Lewati prompt autentikasi (untuk pengaturan penyedia pihak ketiga) |517| `disableLoginPrompt` | `false` | Lewati prompt autentikasi (untuk pengaturan penyedia pihak ketiga) |


487* **Perubahan status**: ekstensi mengumumkan ketika Claude mulai bekerja, ketika Claude siap untuk input Anda, dan ketika Claude Code mulai mengompres percakapan.533* **Perubahan status**: ekstensi mengumumkan ketika Claude mulai bekerja, ketika Claude siap untuk input Anda, dan ketika Claude Code mulai mengompres percakapan.

488* **Kesalahan dan prompt model**: ekstensi mengumumkan kesalahan dalam percakapan, dan mengumumkan ketika [prompt persetujuan kredit penggunaan](/docs/id/model-config#fable-and-usage-credits) atau [prompt permintaan yang ditandai](/docs/id/model-config#ask-before-switching) muncul.534* **Kesalahan dan prompt model**: ekstensi mengumumkan kesalahan dalam percakapan, dan mengumumkan ketika [prompt persetujuan kredit penggunaan](/docs/id/model-config#fable-and-usage-credits) atau [prompt permintaan yang ditandai](/docs/id/model-config#ask-before-switching) muncul.

489 535 

490Setiap giliran dalam transkrip dimulai dengan judul yang tersembunyi secara visual yang diberi label dengan prompt yang memulai giliran, sehingga Anda dapat melompat antar giliran dengan navigasi judul pembaca layar Anda. Anda juga dapat memindahkan fokus ke transkrip itu sendiri dengan `Tab`, karena ekstensi mengeksposnya sebagai wilayah berlabel, dan membacanya dengan kecepatan Anda sendiri. Saat Claude bekerja, pembaca layar Anda membaca label teks sebagai pengganti animasi spinner kemajuan.536Saat Claude bekerja, pembaca layar Anda membaca label teks sebagai pengganti animasi spinner kemajuan.

491 537 

492Ketika Anda membuka kembali sesi atau beralih ke sesi lain, ekstensi tidak mengumumkan apa pun: riwayat yang dipulihkan, prompt izin yang tertunda, dan status yang sedang berlangsung tetap diam sampai sesuatu yang baru terjadi.538Ketika Anda membuka kembali sesi atau beralih ke sesi lain, ekstensi tidak mengumumkan apa pun: riwayat yang dipulihkan, prompt izin yang tertunda, dan status yang sedang berlangsung tetap diam sampai sesuatu yang baru terjadi.

493 539 

540<h3 id="use-the-chat-panel-from-the-keyboard">

541 Gunakan panel obrolan dari keyboard

542</h3>

543 

544Setiap giliran dalam transkrip dimulai dengan judul yang tersembunyi secara visual yang diberi label dengan prompt yang memulai giliran, sehingga Anda dapat melompat antar giliran dengan navigasi judul pembaca layar Anda.

545 

546Dalam satu giliran, pembaca layar Anda mengumumkan pesan siapa yang sedang Anda baca saat Anda bergerak melaluinya:

547 

548* **Pesan Anda**: "Anda"

549* **Pesan Claude**: "Claude"

550* **Langkah alat**: "Claude" ditambah nama alat, seperti "Claude, Bash"

551* **Blok pemikiran**: "Claude, thinking"

552 

553Karena ekstensi mengeksposnya sebagai wilayah berlabel, Anda juga dapat memindahkan fokus ke transkrip itu sendiri dengan `Tab` dan membacanya dengan kecepatan Anda sendiri. Untuk memindahkan fokus ke pesan terbaru atau prompt izin yang menunggu, jalankan **Claude Code: Focus last message** dari [Command Palette](#vs-code-commands-and-shortcuts).

554 

555Ketika opsi pada prompt izin menyimpan aturan izin atau akses direktori, labelnya diakhiri dengan menyebutkan tempat persetujuan disimpan, seperti "semua proyek" atau "sesi ini". Dengan opsi yang difokuskan, tekan tombol panah `Left` atau `Right` untuk mengubah tujuan, dan ekstensi mengumumkan setiap tujuan saat Anda berpindah ke tujuan tersebut. Anda juga dapat mengklik tujuan dalam label. Tombol panah memerlukan Claude Code v2.1.268 atau lebih baru.

556 

494<h2 id="vs-code-extension-vs-claude-code-cli">557<h2 id="vs-code-extension-vs-claude-code-cli">

495 Ekstensi VS Code vs. Claude Code CLI558 Ekstensi VS Code vs. Claude Code CLI

496</h2>559</h2>


543 Pantau proses latar belakang606 Pantau proses latar belakang

544</h3>607</h3>

545 608 

546Visibilitas untuk tugas latar belakang di ekstensi terbatas dibandingkan dengan CLI. Untuk visibilitas yang lebih baik, minta Claude untuk menampilkan perintah sehingga Anda dapat menjalankannya di terminal terintegrasi VS Code.609Ketik `/tasks` di kotak prompt untuk membuka [peta agen](#use-the-prompt-box), yang mencantumkan tugas latar belakang sesi, seperti server dev yang Claude biarkan berjalan sebagai perintah shell latar belakang. Klik tugas untuk membuka kartunya dan hentikan di sana. Memerlukan Claude Code v2.1.277 atau lebih baru.

547 610 

548<h3 id="connect-to-external-tools-with-mcp">611<h3 id="connect-to-external-tools-with-mcp">

549 Hubungkan ke alat eksternal dengan MCP612 Hubungkan ke alat eksternal dengan MCP


610 </Step>673 </Step>

611</Steps>674</Steps>

612 675 

613Pada penyedia pihak ketiga, ekstensi tidak menawarkan fitur yang memerlukan akun claude.ai, seperti pelacakan penggunaan, [voice dictation](/docs/id/voice-dictation), dan tab Web untuk [sesi cloud](#resume-cloud-sessions-from-claude-ai). Masuk claude.ai yang tersisa dari `/login` sebelumnya tetap tidak digunakan: ekstensi tidak mengirimkannya dengan permintaan apa pun.676Pada penyedia pihak ketiga, ekstensi tidak menawarkan fitur yang memerlukan akun claude.ai, seperti bilah penggunaan rencana, [voice dictation](/docs/id/voice-dictation), dan tab Web untuk [sesi cloud](#resume-cloud-sessions-from-claude-ai). Untuk apa yang ditampilkan dialog Akun & penggunaan pada masuk ini, lihat [Periksa akun dan penggunaan](#check-account-and-usage).

677 

678Masuk claude.ai yang tersisa dari `/login` sebelumnya tetap tidak digunakan: ekstensi tidak mengirimkannya dengan permintaan apa pun.

614 679 

615<h2 id="security-and-privacy">680<h2 id="security-and-privacy">

616 Keamanan dan privasi681 Keamanan dan privasi

workflows.md +4 −2

Details

231 231 

232Sebelum v2.1.216, Claude Code mengikuti tautan, yang dapat menempatkan file di luar lokasi yang Anda pilih.232Sebelum v2.1.216, Claude Code mengikuti tautan, yang dapat menempatkan file di luar lokasi yang Anda pilih.

233 233 

234Dalam monorepo dengan beberapa direktori `.claude/`, Anda dapat menyimpan alur kerja di samping paket yang mereka terapkan. Mulai dari v2.1.178, menyimpan ke lokasi proyek menulis ke direktori `.claude/workflows/` terdekat yang sudah ada antara direktori kerja Anda dan akar repositori, atau ke akar repositori jika belum ada. Alur kerja proyek juga dimuat dari setiap `.claude/workflows/` di sepanjang jalur itu, dan ketika lebih dari satu mendefinisikan nama yang sama Claude Code menjalankan yang terdekat dengan direktori kerja.234Dalam monorepo dengan beberapa direktori `.claude/`, Anda dapat menyimpan alur kerja di samping paket yang mereka terapkan. Menyimpan ke lokasi proyek menulis ke direktori `.claude/workflows/` terdekat yang sudah ada antara direktori kerja Anda dan akar repositori, atau ke akar repositori jika belum ada. Alur kerja proyek juga dimuat dari setiap `.claude/workflows/` di sepanjang jalur itu, dan ketika lebih dari satu mendefinisikan nama yang sama Claude Code menjalankan yang terdekat dengan direktori kerja.

235 235 

236Jika alur kerja proyek dan alur kerja pribadi berbagi nama, yang proyek berjalan.236Jika alur kerja proyek dan alur kerja pribadi berbagi nama, yang proyek berjalan.

237 237 


348 348 

349Badan adalah JavaScript biasa dengan `await` tingkat atas. `agent()` menghasilkan satu subagen, `pipeline()` menjalankan satu per item dalam daftar, dan `parallel()` menjalankan serangkaian tugas agen pada waktu yang sama dan menunggu semuanya selesai.349Badan adalah JavaScript biasa dengan `await` tingkat atas. `agent()` menghasilkan satu subagen, `pipeline()` menjalankan satu per item dalam daftar, dan `parallel()` menjalankan serangkaian tugas agen pada waktu yang sama dan menunggu semuanya selesai.

350 350 

351Panggilan `agent()` diselesaikan ke `null` jika Anda menghentikannya di tengah-jalan atau mengalami kesalahan API yang tidak dapat dipulihkan. Dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), pengklasifikasi dapat memblokir panggilan `agent()` sebelum subagen dimulai. Panggilan yang diblokir diselesaikan ke `null` dan ditampilkan dalam tampilan kemajuan run dengan alasannya. `pipeline()` menyimpan setiap `null` dalam array hasil, itulah mengapa contoh berakhir dengan `.filter(Boolean)` untuk menghapus entri tersebut.351Panggilan `agent()` diselesaikan ke `null` jika Anda menghentikannya di tengah-jalan atau mengalami kesalahan API yang tidak dapat dipulihkan. `pipeline()` menyimpan setiap `null` dalam array hasil, itulah mengapa contoh berakhir dengan `.filter(Boolean)` untuk menghapus entri tersebut.

352 

353Dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), prompt yang diteruskan skrip Anda ke `agent()` tidak dihitung sebagai permintaan dari Anda ketika pengklasifikasi meninjau tindakan subagen itu, karena Claude Code menandainya sebagai teks yang dihitung skrip.

352 354 

353Jika Anda melewatkan `schema` pada panggilan `agent()`, subagen itu mengembalikan JSON yang cocok dengan bentuk alih-alih prosa. Claude Code memeriksa skema sebelum memulai subagen: ketika dapat membuktikan skema bertentangan dengan dirinya sendiri, panggilan gagal dengan kesalahan yang menamai kontradiksi, dan subagen tidak pernah dimulai. Satu kontradiksi yang dapat dibuktikan adalah kunci `required` yang `additionalProperties: false` aturan keluar.355Jika Anda melewatkan `schema` pada panggilan `agent()`, subagen itu mengembalikan JSON yang cocok dengan bentuk alih-alih prosa. Claude Code memeriksa skema sebelum memulai subagen: ketika dapat membuktikan skema bertentangan dengan dirinya sendiri, panggilan gagal dengan kesalahan yang menamai kontradiksi, dan subagen tidak pernah dimulai. Satu kontradiksi yang dapat dibuktikan adalah kunci `required` yang `additionalProperties: false` aturan keluar.

354 356 

worktrees.md +10 −5

Details

59 Bersihkan worktrees59 Bersihkan worktrees

60</h2>60</h2>

61 61 

62Saat Anda keluar dari sesi worktree interaktif, Claude memeriksa worktree untuk pekerjaan yang akan dihapus oleh penghapusan: file yang diubah atau tidak dilacak, dan commit baru.62Saat Anda keluar dari sesi worktree interaktif, Claude memeriksa worktree untuk pekerjaan yang akan dihapus oleh penghapusan: file yang diubah atau tidak dilacak, pekerjaan yang tidak dikomitkan di dalam submodul yang diperiksa, dan commit baru.

63 63 

64* **Worktree bersih**: untuk sesi tanpa nama, Claude menghapus worktree dan cabangnya secara otomatis. Sesi [bernama](/docs/id/sessions#name-your-sessions) meminta Anda terlebih dahulu sehingga Anda dapat menyimpan worktree untuk nanti64* **Worktree bersih**: untuk sesi tanpa nama, Claude menghapus worktree dan cabangnya secara otomatis. Sesi [bernama](/docs/id/sessions#name-your-sessions) meminta Anda terlebih dahulu sehingga Anda dapat menyimpan worktree untuk nanti

65* **Worktree memiliki pekerjaan di dalamnya**: Claude meminta Anda untuk menyimpan atau menghapus worktree. Menyimpan mempertahankan direktori dan cabang sehingga Anda dapat kembali nanti. Menghapus menghapus direktori worktree dan cabangnya, bersama dengan semua pekerjaan di dalamnya65* **Worktree memiliki pekerjaan di dalamnya**: Claude meminta Anda untuk menyimpan atau menghapus worktree. Menyimpan mempertahankan direktori dan cabang sehingga Anda dapat kembali nanti. Menghapus menghapus direktori worktree dan cabangnya, bersama dengan semua pekerjaan di dalamnya

66* **Status worktree tidak dapat diverifikasi**: ketika Claude Code tidak dapat menghitung perubahan worktree atau tidak dapat memeriksa checkout submodulnya, Claude meminta Anda daripada menghapus worktree secara otomatis. Prompt tersebut menyebutkan apa yang tidak dapat diperiksa

66 67 

67Jalankan non-interaktif dengan `-p` tidak memiliki prompt keluar, jadi Claude tidak membersihkan worktrees mereka, dan Claude Code meninggalkan kunci yang diambilnya pada setiap satu saat pembuatan di tempat sampai [sapuan kunci basi](#clean-up-subagent-and-background-session-worktrees) sesi nanti melepaskannya. Untuk menghapus satu, jalankan `git worktree remove`; jika git menolak karena worktree terkunci, jalankan `git worktree unlock` padanya terlebih dahulu.68Jalankan non-interaktif dengan `-p` tidak memiliki prompt keluar, jadi Claude tidak membersihkan worktrees mereka, dan Claude Code meninggalkan kunci yang diambilnya pada setiap satu saat pembuatan di tempat sampai [sapuan kunci basi](#clean-up-subagent-and-background-session-worktrees) sesi nanti melepaskannya. Untuk menghapus satu, jalankan `git worktree remove`; jika git menolak karena worktree terkunci, jalankan `git worktree unlock` padanya terlebih dahulu.

68 69 


101* **Edit file**: Claude Code memblokir `Edit`, `Write`, atau `NotebookEdit` yang menargetkan jalur dalam checkout utama.102* **Edit file**: Claude Code memblokir `Edit`, `Write`, atau `NotebookEdit` yang menargetkan jalur dalam checkout utama.

102* **Direktori kerja perintah**: Claude Code memblokir perintah Bash, PowerShell, atau Monitor yang direktori kerjanya diselesaikan ke checkout utama, atau yang direktori kerjanya tidak dapat diverifikasi tetap di luar itu.103* **Direktori kerja perintah**: Claude Code memblokir perintah Bash, PowerShell, atau Monitor yang direktori kerjanya diselesaikan ke checkout utama, atau yang direktori kerjanya tidak dapat diverifikasi tetap di luar itu.

103* **Pengalihan git**: Claude Code memblokir perintah Bash atau Monitor yang mengalihkan git ke checkout utama. Pengalihan dapat datang melalui `git -C`, `--git-dir`, variabel `GIT_DIR` atau `GIT_WORK_TREE`, atau `cd` ke checkout utama sebelum menjalankan git.104* **Pengalihan git**: Claude Code memblokir perintah Bash atau Monitor yang mengalihkan git ke checkout utama. Pengalihan dapat datang melalui `git -C`, `--git-dir`, variabel `GIT_DIR` atau `GIT_WORK_TREE`, atau `cd` ke checkout utama sebelum menjalankan git.

104* **Bentuk perintah**: Claude Code memblokir perintah Bash atau Monitor saat tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap berada di dalam worktree, misalnya saat nama perintah dihitung saat runtime atau sintaks tidak dapat diuraikan. Claude Code memberi tahu Claude cara menulis ulang perintah yang ditolak, seperti membaginya menjadi perintah biasa yang terpisah. Anda tidak dapat mematikan pemeriksaan ini.105* **Bentuk perintah**: Claude Code memblokir perintah Bash atau Monitor saat tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap berada di dalam worktree. Itu terjadi, misalnya, saat nama perintah dihitung saat runtime, saat sintaks tidak dapat diuraikan, atau saat ekspansi seperti `${!name}` atau `${ command; }` dapat menjalankan perintah yang teks tidak jelaskan. Claude Code memberi tahu Claude cara menulis ulang perintah yang ditolak, seperti membaginya menjadi perintah biasa yang terpisah. Anda tidak dapat mematikan pemeriksaan ini.

105 106 

106Pemeriksaan berlaku untuk repositori tempat Anda meluncurkan Claude Code. Mereka juga mencakup checkout utama yang ditautkan worktree ditautkan darinya. Untuk perintah PowerShell, Claude Code hanya menerapkan pemeriksaan direktori kerja.107Pemeriksaan berlaku untuk repositori tempat Anda meluncurkan Claude Code. Mereka juga mencakup checkout utama yang ditautkan worktree ditautkan darinya. Untuk perintah PowerShell, Claude Code hanya menerapkan pemeriksaan direktori kerja.

107 108 

108Claude melihat setiap penolakan sebagai kesalahan tool yang menamai worktree dan mengatakan cara melanjutkan.109Claude melihat setiap penolakan sebagai kesalahan tool yang menamai worktree dan mengatakan cara melanjutkan. Untuk perintah yang ditolak, lihat [apa arti pesan penolakan dan cara menghapusnya](/docs/id/errors#command-blocked-by-the-worktree-isolation-checks).

109 110 

110<h2 id="isolate-subagents-with-worktrees">111<h2 id="isolate-subagents-with-worktrees">

111 Isolasi subagents dengan worktrees112 Isolasi subagents dengan worktrees


139Saat Anda [mengirim ke latar belakang](/docs/id/agent-view#send-the-session-to-the-background) sesi `--worktree`, worktree-nya menjadi worktree sesi latar belakang yang dapat dihapus sapuan. Sapuan meninggalkan worktree di tempat dalam kasus ini:140Saat Anda [mengirim ke latar belakang](/docs/id/agent-view#send-the-session-to-the-background) sesi `--worktree`, worktree-nya menjadi worktree sesi latar belakang yang dapat dihapus sapuan. Sapuan meninggalkan worktree di tempat dalam kasus ini:

140 141 

141* Worktree masih menyimpan pekerjaan: file yang diubah atau tidak dilacak, atau commit yang belum didorong.142* Worktree masih menyimpan pekerjaan: file yang diubah atau tidak dilacak, atau commit yang belum didorong.

143* Submodul yang diperiksa dalam worktree menyimpan file yang diubah atau tidak dilacak, atau Claude Code tidak dapat memeriksa submodul worktree. Pemeriksaan ini memerlukan Claude Code v2.1.274 atau lebih baru.

142* Salah satu dari [empat kasus yang juga memblokir pembuatan worktree](#git-lfs-content-is-missing-from-a-worktree-claude-code-created) berlaku: Claude Code tidak dapat menentukan driver filter mana yang didefinisikan konfigurasi repositori, atau menemukan pengaturan di sana yang tidak dapat dimatikan.144* Salah satu dari [empat kasus yang juga memblokir pembuatan worktree](#git-lfs-content-is-missing-from-a-worktree-claude-code-created) berlaku: Claude Code tidak dapat menentukan driver filter mana yang didefinisikan konfigurasi repositori, atau menemukan pengaturan di sana yang tidak dapat dimatikan.

143* Worktree milik sesi `--worktree` yang belum Anda kirim ke latar belakang, apa pun usianya.145* Worktree milik sesi `--worktree` yang belum Anda kirim ke latar belakang, apa pun usianya.

144* Anda membuat worktree sendiri dengan `git worktree add`, bahkan jika Anda kemudian menjalankan sesi `--worktree <name>` di dalamnya dan mengirimnya ke latar belakang.146* Anda membuat worktree sendiri dengan `git worktree add`, bahkan jika Anda kemudian menjalankan sesi `--worktree <name>` di dalamnya dan mengirimnya ke latar belakang.


251 Apa yang dibagikan worktrees dengan checkout utama253 Apa yang dibagikan worktrees dengan checkout utama

252</h2>254</h2>

253 255 

254Worktree mendapatkan file dan cabang sendiri, tetapi berbagi direktori `.git` repositori, plugin cakupan proyek, dan persetujuan izin yang disimpan dengan checkout utama:256Worktree mendapatkan file dan cabang sendiri, tetapi berbagi hal-hal berikut dengan checkout utama:

255 257 

256* **Direktori `.git` repositori**: perintah git dalam worktree menulis ke direktori `.git` bersama repositori utama, dan [sandboxing](/docs/id/sandboxing#filesystem-isolation) memungkinkan penulisan tersebut, jadi perintah seperti `git commit` bekerja dari dalam worktree dengan sandbox diaktifkan.258* **Direktori `.git` repositori**: perintah git dalam worktree menulis ke direktori `.git` bersama repositori utama, dan [sandboxing](/docs/id/sandboxing#filesystem-isolation) memungkinkan penulisan tersebut, jadi perintah seperti `git commit` bekerja dari dalam worktree dengan sandbox diaktifkan.

257* **Plugins**: plugin yang diinstal pada [cakupan proyek](/docs/id/plugins-reference#plugin-installation-scopes) dari checkout utama juga dimuat dalam worktrees dari repositori yang sama, jadi Anda tidak perlu menginstal ulang per worktree. Memerlukan Claude Code v2.1.200 atau lebih baru.259* **Plugins**: plugin yang diinstal pada [cakupan proyek](/docs/id/plugins-reference#plugin-installation-scopes) dari checkout utama juga dimuat dalam worktrees dari repositori yang sama, jadi Anda tidak perlu menginstal ulang per worktree. Memerlukan Claude Code v2.1.200 atau lebih baru.

258* **Persetujuan izin**: memilih "Ya, dan jangan tanya lagi" untuk perintah Bash dalam sesi worktree menyimpan aturan ke `.claude/settings.local.json` checkout utama, jadi itu berlaku dalam checkout utama dan di setiap worktree lain dari repositori, dan itu bertahan penghapusan worktree. Di Windows dan dalam kasus lain di mana Claude Code [tidak menggunakan root repositori](/docs/id/settings#where-claude-code-looks-for-each-file), aturan tetap dengan worktree itu. Sebelum v2.1.211, persetujuan yang diberikan dalam worktree disimpan di dalam worktree itu, tidak berlaku di tempat lain, dan hilang saat worktree dihapus. Lihat [di mana persetujuan disimpan](/docs/id/permissions#permission-system).260* **Persetujuan izin**: memilih "Ya, dan jangan tanya lagi" untuk perintah Bash dalam sesi worktree menyimpan aturan ke `.claude/settings.local.json` checkout utama, jadi itu berlaku dalam checkout utama dan di setiap worktree lain dari repositori, dan itu bertahan penghapusan worktree. Di Windows dan dalam kasus lain di mana Claude Code [tidak menggunakan root repositori](/docs/id/settings#where-claude-code-looks-for-each-file), aturan tetap dengan worktree itu. Sebelum v2.1.211, persetujuan yang diberikan dalam worktree disimpan di dalam worktree itu, tidak berlaku di tempat lain, dan hilang saat worktree dihapus. Lihat [di mana persetujuan disimpan](/docs/id/permissions#permission-system).

261* **Skills, agents, dan commands yang tidak dilacak**: ketika checkout worktree tidak memiliki direktori `.claude/skills` di akarnya, misalnya karena `.claude/skills` Anda diabaikan oleh git, Claude Code memuat [project skills](/docs/id/skills#where-skills-live) checkout utama dalam sesi worktree. Dalam worktree dengan direktori `.claude/skills` sendiri, hanya salinan itu yang dimuat.

259 262 

260Ketiga hal ini berlaku apakah Anda membuat worktree dengan `--worktree`, dengan `git worktree add`, atau melalui [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions).263 Pembacaan yang sama mencakup `.claude/agents` dan `.claude/commands`. Untuk skills, pembacaan memerlukan Claude Code v2.1.277 atau lebih baru.

264 

265Semua ini berlaku apakah Anda membuat worktree dengan `--worktree`, dengan `git worktree add`, atau melalui [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions).

261 266 

262<h2 id="manage-worktrees-manually">267<h2 id="manage-worktrees-manually">

263 Kelola worktrees secara manual268 Kelola worktrees secara manual