SpyBara
Go Premium

Documentation 2026-09-28 22:59 UTC to 2026-09-29 21:59 UTC

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

111 Menjawab menu dan prompt111 Menjawab menu dan prompt

112</h2>112</h2>

113 113 

114Dalam mode pembaca layar, menu yang biasanya Anda navigasikan dengan tombol panah, termasuk prompt izin, menjadi daftar bernomor. Claude Code mengumumkan setiap opsi sebagai baris bernomor, kemudian prompt `Enter selection` yang menyebutkan rentang yang valid. Ketik nomor opsi yang Anda inginkan dan tekan Enter.114Dalam mode pembaca layar, menu yang biasanya Anda navigasikan dengan tombol panah, termasuk prompt izin, menjadi daftar bernomor. Claude Code mengumumkan setiap opsi sebagai baris bernomor, kemudian prompt `Select with numbers` yang menyebutkan rentang yang valid. Ketik nomor opsi yang Anda inginkan dan tekan Enter.

115 115 

116* Tekan Escape untuk membatalkan menu yang promptnya diakhiri dengan `or Escape to cancel`.116* Tekan Escape untuk membatalkan menu yang promptnya diakhiri dengan `or Escape to cancel`.

117* Jika Anda mengetik nomor yang tidak ada dalam daftar, Claude Code mengumumkan rentang yang valid dan membiarkan Anda mencoba lagi.117* Jika Anda mengetik nomor yang tidak ada dalam daftar, Claude Code mengumumkan rentang yang valid dan membiarkan Anda mencoba lagi.

admin-setup.md +2 −2

Details

97| :- | :- | :- |97| :- | :- | :- |

98| [Permission rules](/docs/id/permissions) | Izinkan, tanyakan, atau tolak alat dan perintah tertentu | `permissions.allow`, `permissions.deny` |98| [Permission rules](/docs/id/permissions) | Izinkan, tanyakan, atau tolak alat dan perintah tertentu | `permissions.allow`, `permissions.deny` |

99| [Permission lockdown](/docs/id/permissions#managed-only-settings) | Buat pengaturan terkelola menjadi [satu-satunya sumber pengaturan aturan izin](/docs/id/settings-reference#allowmanagedpermissionrulesonly). Nonaktifkan `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |99| [Permission lockdown](/docs/id/permissions#managed-only-settings) | Buat pengaturan terkelola menjadi [satu-satunya sumber pengaturan aturan izin](/docs/id/settings-reference#allowmanagedpermissionrulesonly). Nonaktifkan `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`, `permissions.disableBypassPermissionsMode` |

100| [Starting permission mode](/docs/id/permission-modes#which-mode-a-session-starts-in) | Pilih mode izin yang dimulai sesi terminal pengembang Anda alih-alih mode izin awal bawaan, atau hapus mode otomatis. Ekstensi VS Code membaca `defaultMode` yang Anda atur hanya pada paket Pro, Max, dan Team; [Switch permission modes](/docs/id/permission-modes#switch-permission-modes) mencantumkan apa yang dibaca ekstensi | `permissions.defaultMode`, `permissions.disableAutoMode` |100| [Starting permission mode](/docs/id/permission-modes#which-mode-a-session-starts-in) | Pilih mode izin yang dimulai sesi terminal pengembang Anda alih-alih mode izin awal bawaan, atau hapus mode otomatis. [Switch permission modes](/docs/id/permission-modes#switch-permission-modes) mencantumkan kapan ekstensi VS Code membaca `defaultMode` yang Anda atur | `permissions.defaultMode`, `permissions.disableAutoMode` |

101| [Sandboxing](/docs/id/sandboxing) | Isolasi filesystem dan jaringan tingkat OS dengan daftar allowlist domain | `sandbox.enabled`, `sandbox.network.allowedDomains` |101| [Sandboxing](/docs/id/sandboxing) | Isolasi filesystem dan jaringan tingkat OS dengan daftar allowlist domain | `sandbox.enabled`, `sandbox.network.allowedDomains` |

102| [Managed policy CLAUDE.md](/docs/id/memory#deploy-organization-wide-claude-md) | Instruksi di seluruh organisasi dimuat di setiap sesi, tidak dapat dikecualikan | File di jalur kebijakan terkelola |102| [Managed policy CLAUDE.md](/docs/id/memory#deploy-organization-wide-claude-md) | Instruksi di seluruh organisasi dimuat di setiap sesi, tidak dapat dikecualikan | File di jalur kebijakan terkelola |

103| [MCP server control](/docs/id/managed-mcp) | Batasi server MCP mana yang dapat ditambahkan atau dihubungkan pengguna, terapkan set tetap, atau sediakan server jarak jauh kepada setiap pengguna bersama dengan server mereka sendiri | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, atau file `managed-mcp.json` yang diterapkan |103| [MCP server control](/docs/id/managed-mcp) | Batasi server MCP mana yang dapat ditambahkan atau dihubungkan pengguna, terapkan set tetap, atau sediakan server jarak jauh kepada setiap pengguna bersama dengan server mereka sendiri | `allowedMcpServers`, `deniedMcpServers`, `allowManagedMcpServersOnly`, `managedMcpServers`, atau file `managed-mcp.json` yang diterapkan |


105| [Customization lockdown](/docs/id/settings-reference#strictpluginonlycustomization) | Blokir skills, agents, hooks, dan server MCP dari sumber pengguna dan proyek, sehingga mereka hanya dapat berasal dari plugin atau pengaturan terkelola. Mengunci skills juga menghentikan [skills yang diaktifkan pengembang Anda di claude.ai](/docs/id/skills#where-synced-skills-load) dari sinkronisasi | `strictPluginOnlyCustomization` |105| [Customization lockdown](/docs/id/settings-reference#strictpluginonlycustomization) | Blokir skills, agents, hooks, dan server MCP dari sumber pengguna dan proyek, sehingga mereka hanya dapat berasal dari plugin atau pengaturan terkelola. Mengunci skills juga menghentikan [skills yang diaktifkan pengembang Anda di claude.ai](/docs/id/skills#where-synced-skills-load) dari sinkronisasi | `strictPluginOnlyCustomization` |

106| [Disable claude.ai sync](/docs/id/settings-reference#syncclaudeaiskills) | Hentikan Claude Code dari memuat [skills](/docs/id/skills#how-synced-skills-behave) dan [plugins](/docs/id/plugins/loading#synced-plugins) yang diaktifkan pengembang Anda di claude.ai. Jika Anda mematikan Skills untuk organisasi Anda di claude.ai, Claude Code berhenti menyinkronkan keduanya, dan pada v2.1.273 atau lebih baru juga menghapus yang sudah disinkronkan. Untuk menghentikan salah satu tanpa mematikan Skills, atur kuncinya ke `false` dalam pengaturan terkelola | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |106| [Disable claude.ai sync](/docs/id/settings-reference#syncclaudeaiskills) | Hentikan Claude Code dari memuat [skills](/docs/id/skills#how-synced-skills-behave) dan [plugins](/docs/id/plugins/loading#synced-plugins) yang diaktifkan pengembang Anda di claude.ai. Jika Anda mematikan Skills untuk organisasi Anda di claude.ai, Claude Code berhenti menyinkronkan keduanya, dan pada v2.1.273 atau lebih baru juga menghapus yang sudah disinkronkan. Untuk menghentikan salah satu tanpa mematikan Skills, atur kuncinya ke `false` dalam pengaturan terkelola | `syncClaudeAiSkills`, `syncClaudeAiPlugins` |

107| [Hook restrictions](/docs/id/settings-reference#allowmanagedhooksonly) | Batasi hook mana yang berjalan dan batasi URL hook HTTP; lihat [apa yang berjalan di bawah `allowManagedHooksOnly`](/docs/id/settings-reference#what-runs-under-allowmanagedhooksonly) untuk daftar efek lengkap | `allowManagedHooksOnly`, `allowedHttpHookUrls` |107| [Hook restrictions](/docs/id/settings-reference#allowmanagedhooksonly) | Batasi hook mana yang berjalan dan batasi URL hook HTTP; lihat [apa yang berjalan di bawah `allowManagedHooksOnly`](/docs/id/settings-reference#what-runs-under-allowmanagedhooksonly) untuk daftar efek lengkap | `allowManagedHooksOnly`, `allowedHttpHookUrls` |

108| [Login enforcement](/docs/id/settings-reference#forceloginmethod) | Batasi login ke metode tertentu atau organisasi Anthropic. Pembatasan metode berlaku di seluruh ekstensi VS Code, Agent SDK, `claude setup-token`, dan `/install-github-app`, dan layar login interaktif terminal, dicapai oleh `/login` atau onboarding first-run, pra-pilih metode tanpa memberlakukannya; Claude Code memverifikasi organisasi untuk login akun claude.ai di terminal, ekstensi VS Code, dan Agent SDK, dan tidak memeriksanya untuk login Claude Console atau untuk sign-in [gateway](/docs/id/claude-apps-gateway). Sebelum v2.1.212, hanya login terminal yang menerapkan salah satu kunci. Ketika diatur, sesi yang diautentikasi oleh `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` diblokir saat startup; sesi penyedia cloud tidak terpengaruh | `forceLoginMethod`, `forceLoginOrgUUID` |108| [Login enforcement](/docs/id/settings-reference#forceloginmethod) | Batasi login ke metode tertentu atau organisasi Anthropic. Pembatasan metode berlaku di seluruh ekstensi VS Code, Agent SDK, `claude setup-token`, dan `/install-github-app`, dan layar login interaktif terminal, dicapai oleh `/login` atau onboarding first-run, pra-pilih metode tanpa memberlakukannya; Claude Code memverifikasi organisasi untuk login akun claude.ai di terminal, ekstensi VS Code, dan Agent SDK, dan tidak memeriksanya untuk login Claude Console atau untuk sign-in [gateway](/docs/id/claude-apps-gateway). Sebelum v2.1.212, hanya login terminal yang menerapkan salah satu kunci. Ketika diatur, sesi yang diautentikasi oleh `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` diblokir saat startup; sesi penyedia cloud tidak terpengaruh kecuali salah satu dari kredensial tersebut, atau kunci API yang disimpan oleh login Claude Console sebelumnya, juga ada | `forceLoginMethod`, `forceLoginOrgUUID` |

109| [Disable agent view](/docs/id/agent-view#how-background-sessions-are-hosted) | Matikan `claude agents`, `--bg`, `/background`, dan supervisor on-demand | `disableAgentView` |109| [Disable agent view](/docs/id/agent-view#how-background-sessions-are-hosted) | Matikan `claude agents`, `--bg`, `/background`, dan supervisor on-demand | `disableAgentView` |

110| [Configure the corporate launcher](/docs/id/corporate-launcher) | Awali [background-agent supervisor](/docs/id/agent-view#how-background-sessions-are-hosted), pekerja-pekerja, dan [proses latar belakang tercakup lainnya](/docs/id/corporate-launcher#what-the-launcher-covers) dengan corporate launcher yang diperlukan alih-alih mematikan agent view | `processWrapper` |110| [Configure the corporate launcher](/docs/id/corporate-launcher) | Awali [background-agent supervisor](/docs/id/agent-view#how-background-sessions-are-hosted), pekerja-pekerja, dan [proses latar belakang tercakup lainnya](/docs/id/corporate-launcher#what-the-launcher-covers) dengan corporate launcher yang diperlukan alih-alih mematikan agent view | `processWrapper` |

111| [Model restrictions](/docs/id/model-config#restrict-model-selection) | `availableModels` memfilter model mana yang muncul di pemilih. Menambahkan `enforceAvailableModels` juga membatasi model default yang dipilih secara otomatis. Lihat [surface coverage](/docs/id/model-config#surface-coverage) untuk cara pengaturan ini menjangkau CLI, web, dan IDE | `availableModels`, `enforceAvailableModels` |111| [Model restrictions](/docs/id/model-config#restrict-model-selection) | `availableModels` memfilter model mana yang muncul di pemilih. Menambahkan `enforceAvailableModels` juga membatasi model default yang dipilih secara otomatis. Lihat [surface coverage](/docs/id/model-config#surface-coverage) untuk cara pengaturan ini menjangkau CLI, web, dan IDE | `availableModels`, `enforceAvailableModels` |

advisor.md +3 −2

Details

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 API menolak advisor Opus 4.6 |104| Sonnet 5.5 atau Sonnet 5 | Fable, Opus 4.7 atau lebih baru, Sonnet 5 atau lebih baru | 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 atau lebih baru | 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.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 |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 |


161 161 

162* **Reviewed**: baris mengkonfirmasi bahwa advisor telah meninjau percakapan. Ketika advisor mengembalikan panduan yang dapat dibaca, tekan `Ctrl+O` untuk membacanya.162* **Reviewed**: baris mengkonfirmasi bahwa advisor telah meninjau percakapan. Ketika advisor mengembalikan panduan yang dapat dibaca, tekan `Ctrl+O` untuk membacanya.

163* **Declined**: baris berbunyi `Advisor declined to advise on this request`. Jika advisor memberikan alasan, tekan `Ctrl+O` untuk membacanya.163* **Declined**: baris berbunyi `Advisor declined to advise on this request`. Jika advisor memberikan alasan, tekan `Ctrl+O` untuk membacanya.

164* **Unavailable**: panggilan advisor gagal, dan baris berbunyi `Advisor unavailable (<error_code>)`, di mana `<error_code>` adalah kode yang dikembalikan oleh panggilan.

164 165 

165Claude umumnya mengikuti panduan advisor, tetapi beradaptasi ketika bukti miliknya bertentangan dengan klaim spesifik: jika langkah yang direkomendasikan gagal saat dicoba, atau isi file bertentangan dengan saran, Claude menampilkan konflik daripada mengikuti panduan secara tidak terbatas.166Claude umumnya mengikuti panduan advisor, tetapi beradaptasi ketika bukti miliknya bertentangan dengan klaim spesifik: jika langkah yang direkomendasikan gagal saat dicoba, atau isi file bertentangan dengan saran, Claude menampilkan konflik daripada mengikuti panduan secara tidak terbatas.

166 167 

Details

129Lihat referensi TypeScript [`tool()`](/docs/id/agent-sdk/typescript#tool) atau referensi Python [`@tool`](/docs/id/agent-sdk/python#tool) untuk detail parameter lengkap, termasuk format input JSON Schema dan struktur nilai pengembalian.129Lihat referensi TypeScript [`tool()`](/docs/id/agent-sdk/typescript#tool) atau referensi Python [`@tool`](/docs/id/agent-sdk/python#tool) untuk detail parameter lengkap, termasuk format input JSON Schema dan struktur nilai pengembalian.

130 130 

131<Tip>131<Tip>

132 Untuk membuat parameter opsional: di TypeScript, tambahkan `.default()` ke bidang Zod. Di Python, skema dict memperlakukan setiap kunci sebagai diperlukan, jadi tinggalkan parameter dari skema, sebutkan dalam string deskripsi, dan baca dengan `args.get()` di handler. Alat [`get_precipitation_chance` di bawah](#add-more-tools) menunjukkan kedua pola.132 Untuk membuat parameter opsional: di TypeScript, tambahkan `.optional()` ke bidang Zod dan terapkan default di handler. Di Python, skema dict memperlakukan setiap kunci sebagai diperlukan, jadi tinggalkan parameter dari skema, sebutkan dalam string deskripsi, dan baca dengan `args.get()` di handler. Alat [`get_precipitation_chance` di bawah](#add-more-tools) menunjukkan kedua pola.

133</Tip>133</Tip>

134 134 

135<h3 id="call-a-custom-tool">135<h3 id="call-a-custom-tool">


248 .int()248 .int()

249 .min(1)249 .min(1)

250 .max(24)250 .max(24)

251 .default(12) // .default() makes the parameter optional251 .optional() // .optional() lets Claude omit the parameter

252 .describe("How many hours of forecast to return")252 .describe("How many hours of forecast to return")

253 },253 },

254 async (args) => {254 async (args) => {

255 const hours = args.hours ?? 12; // Apply the default in the handler

255 const response = await fetch(256 const response = await fetch(

256 `https://api.open-meteo.com/v1/forecast?latitude=${args.latitude}&longitude=${args.longitude}&hourly=precipitation_probability&forecast_days=1`257 `https://api.open-meteo.com/v1/forecast?latitude=${args.latitude}&longitude=${args.longitude}&hourly=precipitation_probability&forecast_days=1`

257 );258 );

258 const data: any = await response.json();259 const data: any = await response.json();

259 const chances = data.hourly.precipitation_probability.slice(0, args.hours);260 const chances = data.hourly.precipitation_probability.slice(0, hours);

260 261 

261 return {262 return {

262 content: [{ type: "text", text: `Next ${args.hours} hours: ${chances.join("%, ")}%` }]263 content: [{ type: "text", text: `Next ${hours} hours: ${chances.join("%, ")}%` }]

263 };264 };

264 }265 }

265 );266 );


469 Gambar470 Gambar

470</h3>471</h3>

471 472 

472Blok gambar membawa byte gambar secara inline, dikodekan sebagai base64. Tidak ada bidang URL. Untuk mengembalikan gambar yang berada di URL, ambil dalam handler, baca byte respons, dan kodekan base64 sebelum mengembalikan. Hasilnya diproses sebagai input visual.473Blok gambar membawa byte gambar secara inline, dikodekan sebagai base64. Tidak ada bidang URL. Untuk mengembalikan gambar yang berada di URL, ambil dalam handler, baca byte respons, dan kodekan base64 sebelum mengembalikan. Gambar PNG, JPEG, GIF, atau WebP mencapai Claude sebagai input visual; gambar dari jenis lain apa pun disimpan ke disk dan Claude menerima jalur filenya sebagai teks sebagai gantinya.

473 474 

474| Field | Type | Notes |475| Field | Type | Notes |

475| :- | :- | :- |476| :- | :- | :- |


538 Sumber Daya539 Sumber Daya

539</h3>540</h3>

540 541 

541Blok sumber daya menyematkan sepotong konten yang diidentifikasi oleh URI. URI adalah label untuk Claude untuk referensi; konten aktual berada di bidang `text` atau `blob` blok. Gunakan ini ketika tool Anda menghasilkan sesuatu yang masuk akal untuk ditangani berdasarkan nama nanti, seperti file yang dihasilkan atau catatan dari sistem eksternal.542Blok sumber daya menyematkan sepotong konten yang diidentifikasi oleh URI. Konten aktual berada di bidang `text` atau `blob` blok. Gunakan ini ketika tool Anda menghasilkan file yang dihasilkan atau catatan dari sistem eksternal.

542 543 

543| Field | Type | Notes |544| Field | Type | Notes |

544| :- | :- | :- |545| :- | :- | :- |


548| `resource.blob` | `string` | Konten yang dikodekan base64, jika biner. Hanya TypeScript: SDK Python menghapus sumber daya biner dari hasil tool dan mencatat peringatan |549| `resource.blob` | `string` | Konten yang dikodekan base64, jika biner. Hanya TypeScript: SDK Python menghapus sumber daya biner dari hasil tool dan mencatat peringatan |

549| `resource.mimeType` | `string` | Opsional |550| `resource.mimeType` | `string` | Opsional |

550 551 

551Contoh ini menunjukkan blok sumber daya yang dikembalikan dari dalam handler tool. URI `file:///tmp/report.md` adalah label yang dapat direferensikan Claude nanti; SDK tidak membaca dari jalur tersebut.552Contoh ini menunjukkan blok sumber daya yang dikembalikan dari dalam handler tool. SDK tidak membaca dari URI contoh, `file:///tmp/report.md`.

552 553 

553<CodeGroup>554<CodeGroup>

554 ```typescript TypeScript theme={null}555 ```typescript TypeScript theme={null}


572 {573 {

573 "type": "resource",574 "type": "resource",

574 "resource": {575 "resource": {

575 "uri": "file:///tmp/report.md", # Label for Claude to reference, not a path the SDK reads576 "uri": "file:///tmp/report.md", # Not a path the SDK reads

576 "mimeType": "text/markdown",577 "mimeType": "text/markdown",

577 "text": "# Report\n...", # The actual content, inline578 "text": "# Report\n...", # The actual content, inline

578 },579 },

Details

6 6 

7> Temukan proyek Agent SDK yang lengkap dan dapat dijalankan atau resep terpandu di Claude Cookbook yang sesuai dengan apa yang ingin Anda bangun.7> Temukan proyek Agent SDK yang lengkap dan dapat dijalankan atau resep terpandu di Claude Cookbook yang sesuai dengan apa yang ingin Anda bangun.

8 8 

9Halaman ini mengarahkan Anda ke proyek Agent SDK yang lengkap dan dapat dijalankan serta resep Claude Cookbook yang terpandu. Aplikasi TypeScript berada di repositori [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos), dan resep Python berada di [Claude Cookbook](https://platform.claude.com/cookbook).9Halaman ini mengarahkan Anda ke proyek Agent SDK yang lengkap dan dapat dijalankan serta resep Claude Cookbook yang terpandu. Aplikasi berada di repositori [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos), dan resep Python berada di [Claude Cookbook](https://platform.claude.com/cookbook).

10 10 

11<h2 id="run-a-minimal-agent-first">11<h2 id="run-a-minimal-agent-first">

12 Jalankan agen minimal terlebih dahulu12 Jalankan agen minimal terlebih dahulu


18 18 

19* [Hello World](https://github.com/anthropics/claude-agent-sdk-demos/tree/main/hello-world): proyek TypeScript minimal untuk diklon ketika Anda ingin memulai dari kode repo19* [Hello World](https://github.com/anthropics/claude-agent-sdk-demos/tree/main/hello-world): proyek TypeScript minimal untuk diklon ketika Anda ingin memulai dari kode repo

20 20 

21<h2 id="explore-a-typescript-application">21<h2 id="explore-a-demo-application">

22 Jelajahi aplikasi TypeScript22 Jelajahi aplikasi demo

23</h2>23</h2>

24 24 

25Aplikasi TypeScript di [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) adalah demo untuk pengembangan lokal, dari klien email hingga sistem penelitian multi-agen. Klon demo yang bentuknya sesuai dengan apa yang Anda bangun.25Aplikasi di [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) adalah demo untuk pengembangan lokal, dari klien email hingga sistem penelitian multi-agen. Klon demo yang bentuknya sesuai dengan apa yang Anda bangun.

26 26 

27<h2 id="work-through-a-python-recipe">27<h2 id="work-through-a-python-recipe">

28 Bekerja melalui resep Python28 Bekerja melalui resep Python

Details

6 6 

7> Lacak perubahan file selama sesi agen dan pulihkan file ke status sebelumnya7> Lacak perubahan file selama sesi agen dan pulihkan file ke status sebelumnya

8 8 

9File checkpointing melacak modifikasi file yang dilakukan melalui alat Write, Edit, dan NotebookEdit selama sesi agen, memungkinkan Anda untuk mengembalikan file ke status sebelumnya. Ingin mencobanya? Lompat ke [contoh interaktif](#try-it-out).9File checkpointing melacak modifikasi file yang dilakukan melalui alat [Write](/docs/id/tools-reference#write-tool-behavior), [Edit](/docs/id/tools-reference#edit-tool-behavior), dan [NotebookEdit](/docs/id/tools-reference#notebookedit-tool-behavior) selama sesi agen, memungkinkan Anda untuk mengembalikan file ke status sebelumnya. Untuk melihat rewind memulihkan file, lompat ke [contoh interaktif](#try-it-out).

10 

11Dengan checkpointing, Anda dapat:

12 

13* **Membatalkan perubahan yang tidak diinginkan** dengan memulihkan file ke status yang diketahui baik

14* **Menjelajahi alternatif** dengan memulihkan ke checkpoint dan mencoba pendekatan berbeda

15* **Pulih dari kesalahan** ketika agen membuat modifikasi yang salah

16 10 

17<Warning>11<Warning>

18 Hanya perubahan yang dilakukan melalui alat Write, Edit, dan NotebookEdit yang dilacak. Perubahan yang dilakukan melalui perintah Bash (seperti `echo > file.txt` atau `sed -i`) tidak ditangkap oleh sistem checkpoint, dan juga tidak ada edit yang diterapkan [subagen](/docs/id/agent-sdk/subagents), kecuali [skill dengan `context: fork`](/docs/id/skills#run-skills-in-a-subagent) yang berjalan di foreground.12 Hanya perubahan yang dilakukan melalui alat Write, Edit, dan NotebookEdit yang dilacak. Perubahan yang dilakukan melalui perintah Bash (seperti `echo > file.txt` atau `sed -i`) tidak ditangkap oleh sistem checkpoint, dan juga tidak ada edit yang diterapkan [subagen](/docs/id/agent-sdk/subagents), kecuali [skill dengan `context: fork`](/docs/id/skills#run-skills-in-a-subagent) yang berjalan di foreground.


36 30 

37Untuk menggunakan file checkpointing, aktifkan dalam opsi Anda, tangkap UUID checkpoint dari aliran respons, kemudian panggil `rewindFiles()` (TypeScript) atau `rewind_files()` (Python) ketika Anda perlu memulihkan.31Untuk menggunakan file checkpointing, aktifkan dalam opsi Anda, tangkap UUID checkpoint dari aliran respons, kemudian panggil `rewindFiles()` (TypeScript) atau `rewind_files()` (Python) ketika Anda perlu memulihkan.

38 32 

39Contoh berikut menunjukkan alur lengkap: aktifkan checkpointing, tangkap UUID checkpoint dan ID sesi dari aliran respons, kemudian lanjutkan sesi nanti untuk mengembalikan file. Setiap langkah dijelaskan secara detail di bawah. Contoh-contoh di bagian ini menggunakan prompt "Refactor the authentication module". Jalankan mereka dalam proyek yang berisi modul autentikasi, atau ubah prompt untuk menamai file yang ada di proyek Anda, sehingga Anda dapat menonton file berubah dan melihat rewind memulihkannya.33Contoh-contoh di bagian ini menggunakan prompt "Refactor the authentication module". Jalankan mereka dalam proyek yang berisi modul autentikasi, atau ubah prompt untuk menamai file yang ada di proyek Anda, sehingga Anda dapat menonton file berubah dan melihat rewind memulihkannya.

34 

35Contoh ini mengaktifkan checkpointing, menangkap UUID checkpoint dan ID sesi dari aliran respons, kemudian melanjutkan sesi nanti untuk mengembalikan file. Komentar bernomor contoh cocok dengan langkah-langkah yang mengikuti.

40 36 

41<CodeGroup>37<CodeGroup>

42 ```python Python theme={null}38 ```python Python theme={null}


153 | Aktifkan checkpointing | `enable_file_checkpointing=True` | `enableFileCheckpointing: true` | Melacak perubahan file untuk pemulihan |149 | Aktifkan checkpointing | `enable_file_checkpointing=True` | `enableFileCheckpointing: true` | Melacak perubahan file untuk pemulihan |

154 | Terima UUID checkpoint | `extra_args={"replay-user-messages": None}` | `extraArgs: { 'replay-user-messages': null }` | Diperlukan untuk mendapatkan UUID pesan pengguna dalam aliran |150 | Terima UUID checkpoint | `extra_args={"replay-user-messages": None}` | `extraArgs: { 'replay-user-messages': null }` | Diperlukan untuk mendapatkan UUID pesan pengguna dalam aliran |

155 151 

156 <CodeGroup>152 Contoh utama di bawah [Implementasikan checkpointing](#implement-checkpointing) juga menetapkan mode izin ke `acceptEdits`, yang menyetujui pengeditan file agen tanpa prompt. Untuk informasi lebih lanjut, lihat [Mode izin](/docs/id/agent-sdk/permissions#permission-modes).

157 ```python Python theme={null}

158 options = ClaudeAgentOptions(

159 enable_file_checkpointing=True,

160 permission_mode="acceptEdits",

161 extra_args={"replay-user-messages": None},

162 )

163 

164 async with ClaudeSDKClient(options) as client:

165 await client.query("Refactor the authentication module")

166 ```

167 

168 ```typescript TypeScript theme={null}

169 const response = query({

170 prompt: "Refactor the authentication module",

171 options: {

172 enableFileCheckpointing: true,

173 permissionMode: "acceptEdits" as const,

174 extraArgs: { "replay-user-messages": null }

175 }

176 });

177 ```

178 </CodeGroup>

179 </Step>153 </Step>

180 154 

181 <Step title="Tangkap UUID checkpoint dan ID sesi">155 <Step title="Tangkap UUID checkpoint dan ID sesi">


184 Untuk sebagian besar kasus penggunaan, tangkap UUID pesan pengguna pertama (`message.uuid`); mengembalikan ke sana memulihkan semua file ke status asli mereka. Untuk menyimpan beberapa checkpoint dan mengembalikan ke status perantara, lihat [Beberapa titik pemulihan](#multiple-restore-points).158 Untuk sebagian besar kasus penggunaan, tangkap UUID pesan pengguna pertama (`message.uuid`); mengembalikan ke sana memulihkan semua file ke status asli mereka. Untuk menyimpan beberapa checkpoint dan mengembalikan ke status perantara, lihat [Beberapa titik pemulihan](#multiple-restore-points).

185 159 

186 Menangkap ID sesi (`message.session_id`) bersifat opsional; Anda hanya membutuhkannya jika Anda ingin mengembalikan nanti, setelah aliran selesai. Jika Anda memanggil `rewindFiles()` segera saat masih memproses pesan (seperti yang dilakukan contoh di [Checkpoint sebelum operasi berisiko](#checkpoint-before-risky-operations)), Anda dapat melewatkan penangkapan ID sesi.160 Menangkap ID sesi (`message.session_id`) bersifat opsional; Anda hanya membutuhkannya jika Anda ingin mengembalikan nanti, setelah aliran selesai. Jika Anda memanggil `rewindFiles()` segera saat masih memproses pesan (seperti yang dilakukan contoh di [Checkpoint sebelum operasi berisiko](#checkpoint-before-risky-operations)), Anda dapat melewatkan penangkapan ID sesi.

187 

188 <CodeGroup>

189 ```python Python theme={null}

190 checkpoint_id = None

191 session_id = None

192 

193 async for message in client.receive_response():

194 # Capture the first user message UUID as the checkpoint

195 if isinstance(message, UserMessage) and message.uuid and checkpoint_id is None:

196 checkpoint_id = message.uuid

197 # Capture session ID from the result message

198 if isinstance(message, ResultMessage):

199 session_id = message.session_id

200 ```

201 

202 ```typescript TypeScript theme={null}

203 let checkpointId: string | undefined;

204 let sessionId: string | undefined;

205 

206 for await (const message of response) {

207 // Capture the first user message UUID as the checkpoint

208 if (message.type === "user" && message.uuid && !checkpointId) {

209 checkpointId = message.uuid;

210 }

211 // Capture session ID from any message that has it

212 if ("session_id" in message) {

213 sessionId = message.session_id;

214 }

215 }

216 ```

217 </CodeGroup>

218 </Step>161 </Step>

219 162 

220 <Step title="Kembalikan file">163 <Step title="Kembalikan file">

221 Untuk mengembalikan setelah aliran selesai, lanjutkan sesi dengan prompt kosong dan panggil `rewind_files()` (Python) atau `rewindFiles()` (TypeScript) dengan UUID checkpoint Anda. Anda juga dapat mengembalikan selama aliran; lihat [Checkpoint sebelum operasi berisiko](#checkpoint-before-risky-operations) untuk pola itu.164 Untuk mengembalikan setelah aliran selesai, lanjutkan sesi dengan prompt kosong dan panggil `rewind_files()` (Python) atau `rewindFiles()` (TypeScript) dengan UUID checkpoint Anda. Aktifkan checkpointing pada opsi sesi yang dilanjutkan juga, dan panggil rewind dari dalam loop respons. Anda juga dapat mengembalikan selama aliran. Lihat [Checkpoint sebelum operasi berisiko](#checkpoint-before-risky-operations) untuk pola itu.

222 165 

223 <CodeGroup>166 Jika Anda menangkap ID sesi dan ID checkpoint, Anda juga dapat mengembalikan dari CLI. Perintah ini memerlukan executable `claude`, yang berasal dari [menginstal Claude Code](/docs/id/setup). SDK mengaktifkan checkpointing untuk Anda, tetapi ketika Anda menjalankan `claude -p` secara langsung, Anda harus mengatur variabel lingkungan `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING`:

224 ```python Python theme={null}

225 async with ClaudeSDKClient(

226 ClaudeAgentOptions(enable_file_checkpointing=True, resume=session_id)

227 ) as client:

228 await client.query("") # Empty prompt to open the connection

229 async for message in client.receive_response():

230 if checkpoint_id:

231 await client.rewind_files(checkpoint_id)

232 break

233 ```

234 

235 ```typescript TypeScript theme={null}

236 const rewindQuery = query({

237 prompt: "", // Empty prompt to open the connection

238 options: { ...opts, resume: sessionId }

239 });

240 

241 for await (const msg of rewindQuery) {

242 if (checkpointId) {

243 await rewindQuery.rewindFiles(checkpointId);

244 }

245 break;

246 }

247 ```

248 </CodeGroup>

249 

250 Jika Anda menangkap ID sesi dan ID checkpoint, Anda juga dapat mengembalikan dari CLI. Perintah ini memerlukan executable `claude`, yang berasal dari [menginstal Claude Code](/docs/id/setup) dan tidak diinstal oleh paket SDK. SDK mengaktifkan checkpointing untuk Anda, tetapi ketika Anda menjalankan `claude -p` secara langsung, Anda harus mengatur variabel lingkungan `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING`:

251 167 

252 ```bash theme={null}168 ```bash theme={null}

253 CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>169 CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>


783 699 

784Kesalahan ini terjadi ketika Anda memanggil `rewindFiles()` atau `rewind_files()` setelah Anda selesai mengulangi respons. Koneksi ke proses CLI ditutup ketika loop selesai.700Kesalahan ini terjadi ketika Anda memanggil `rewindFiles()` atau `rewind_files()` setelah Anda selesai mengulangi respons. Koneksi ke proses CLI ditutup ketika loop selesai.

785 701 

786**Solusi**: Lanjutkan sesi dengan prompt kosong, kemudian panggil rewind pada kueri baru:702**Solusi**: Lanjutkan sesi dengan prompt kosong, kemudian panggil rewind pada kueri baru. Contoh utama di bawah [Implement checkpointing](#implement-checkpointing) menunjukkan panggilan resume-and-rewind di kedua bahasa, pada komentar yang ditandai Langkah 3.

787 

788<CodeGroup>

789 ```python Python theme={null}

790 # Resume session with empty prompt, then rewind

791 async with ClaudeSDKClient(

792 ClaudeAgentOptions(enable_file_checkpointing=True, resume=session_id)

793 ) as client:

794 await client.query("")

795 async for message in client.receive_response():

796 if checkpoint_id:

797 await client.rewind_files(checkpoint_id)

798 break

799 ```

800 

801 ```typescript TypeScript theme={null}

802 // Resume session with empty prompt, then rewind

803 const rewindQuery = query({

804 prompt: "",

805 options: { ...opts, resume: sessionId }

806 });

807 

808 try {

809 for await (const msg of rewindQuery) {

810 if (checkpointId) {

811 await rewindQuery.rewindFiles(checkpointId);

812 }

813 break;

814 }

815 } catch (error) {

816 // An error here means the rewind didn't complete, for example the checkpoint

817 // wasn't found or the session couldn't be resumed.

818 console.error(`Rewind session ended with an error: ${error}`);

819 }

820 ```

821</CodeGroup>

822 703 

823<h2 id="next-steps">704<h2 id="next-steps">

824 Langkah berikutnya705 Langkah berikutnya

Details

127 127 

128Contoh beban kerja termasuk agen email yang menyeleksi dan merespons surat masuk, pembuat situs yang menghosting situs yang dapat diedit per pengguna melalui port kontainer, dan chatbot yang menangani lalu lintas berkelanjutan dari platform seperti Slack.128Contoh beban kerja termasuk agen email yang menyeleksi dan merespons surat masuk, pembuat situs yang menghosting situs yang dapat diedit per pengguna melalui port kontainer, dan chatbot yang menangani lalu lintas berkelanjutan dari platform seperti Slack.

129 129 

130Kontainer mengekspos endpoint HTTP atau WebSocket dan memetakan setiap sesi aktif ke kueri berjalan lama dan subproses di belakangnya. Di TypeScript, gunakan [`streamInput()`](/docs/id/agent-sdk/typescript#query-object) untuk menambahkan giliran ke sesi aktif dan [`startup()`](/docs/id/agent-sdk/typescript#startup) untuk pra-pemanasan subproses sebelum lalu lintas masuk. Di Python, gunakan [`ClaudeSDKClient`](/docs/id/agent-sdk/python#claudesdkclient) untuk menjaga sesi tetap terbuka di seluruh giliran. Ukuran kontainer sehingga dapat menampung jumlah maksimum sesi bersamaan dalam memori.130Kontainer mengekspos endpoint HTTP atau WebSocket dan memetakan setiap sesi aktif ke kueri berjalan lama dan subproses di belakangnya. Panggilan yang menjaga sesi tetap terbuka dan hangat berbeda antara SDK:

131 

132* **TypeScript**: gunakan [`streamInput()`](/docs/id/agent-sdk/typescript#query-object) untuk menambahkan giliran ke sesi aktif. Panggil [`startup()`](/docs/id/agent-sdk/typescript#startup) untuk pra-pemanasan subproses sebelum lalu lintas masuk. Jika Anda tidak mengetahui direktori kerja sesi sampai permintaan pertamanya tiba, pra-panaskan dengan [`prewarm()`](/docs/id/agent-sdk/typescript#prewarm) sebagai gantinya.

133* **Python**: gunakan [`ClaudeSDKClient`](/docs/id/agent-sdk/python#claudesdkclient) untuk menjaga sesi tetap terbuka di seluruh giliran.

134 

135Ukuran kontainer sehingga dapat menampung jumlah maksimum sesi bersamaan dalam memori.

131 136 

132<h3 id="hybrid-sessions">137<h3 id="hybrid-sessions">

133 Sesi Hybrid138 Sesi Hybrid


314 319 

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

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

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

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

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

320 325 

Details

162| :- | :- | :- |162| :- | :- | :- |

163| Server stdio, atau server HTTP/SSE tanpa daftar alat yang di-cache | Ya, sampai terhubung | [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default; koneksi gagal pada batas waktu tersebut |163| Server stdio, atau server HTTP/SSE tanpa daftar alat yang di-cache | Ya, sampai terhubung | [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default; koneksi gagal pada batas waktu tersebut |

164| Server jarak jauh dengan daftar alat yang di-cache, disimpan oleh Claude Code dari koneksi sebelumnya | Tidak; alat yang di-cache tersedia dari putaran pertama | Tidak ada; terhubung pada panggilan alat pertamanya, dan koneksi tertunda tersebut memiliki batas waktu sendiri |164| Server jarak jauh dengan daftar alat yang di-cache, disimpan oleh Claude Code dari koneksi sebelumnya | Tidak; alat yang di-cache tersedia dari putaran pertama | Tidak ada; terhubung pada panggilan alat pertamanya, dan koneksi tertunda tersebut memiliki batas waktu sendiri |

165| Server [SDK](#sdk-mcp-servers) dalam proses | Ya, sampai terhubung dan mencantumkan alatnya | Tidak ada; permintaan koneksi dan pencantuman alat masing-masing memiliki batas waktu sendiri |165| Server [SDK](#sdk-mcp-servers) dalam proses | Ya, sampai terhubung dan mencantumkan alatnya | [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default, per upaya koneksi; koneksi gagal pada batas waktu tersebut |

166 166 

167Server yang dimuat dari [file pengaturan](#from-a-config-file) seperti `.mcp.json` atau dari plugin biasanya menunjukkan `pending` dalam pesan init. Ketika `options.mcpServers` menyimpan server stdio, HTTP, atau SSE, putaran pertama menunggu server yang tertunda ini juga, hingga `MCP_TIMEOUT`. Ketika `options.mcpServers` kosong atau hanya menyimpan server SDK, putaran pertama menunggu hingga 2 detik sebagai gantinya:167Server yang dimuat dari [file pengaturan](#from-a-config-file) seperti `.mcp.json` atau dari plugin biasanya menunjukkan `pending` dalam pesan init. Ketika `options.mcpServers` menyimpan server stdio, HTTP, atau SSE, putaran pertama menunggu server yang tertunda ini juga, hingga `MCP_TIMEOUT`. Ketika `options.mcpServers` kosong atau hanya menyimpan server SDK, putaran pertama menunggu hingga 2 detik sebagai gantinya:

168 168 

Details

14 14 

15Sebuah system prompt adalah set instruksi awal yang membentuk bagaimana Claude berperilaku sepanjang percakapan. Agent SDK memiliki tiga titik awal untuk itu:15Sebuah system prompt adalah set instruksi awal yang membentuk bagaimana Claude berperilaku sepanjang percakapan. Agent SDK memiliki tiga titik awal untuk itu:

16 16 

17* **Default minimal**: ketika Anda tidak menetapkan `systemPrompt` di TypeScript atau `system_prompt` di Python, SDK menggunakan prompt minimal yang mencakup tool calling tetapi menghilangkan sisa konten preset `claude_code`, termasuk instruksi keamanan dan keselamatannya serta konteksnya tentang direktori kerja dan lingkungan. Ini berbeda dari `claude -p`, yang menggunakan system prompt Claude Code secara default. Jika Anda bermigrasi dari CLI dan menginginkan perilaku yang cocok, atur preset `claude_code`.17* **Default minimal**: ketika Anda tidak menetapkan `systemPrompt` di TypeScript atau `system_prompt` di Python, SDK menggunakan prompt minimal yang mencakup tool calling tetapi menghilangkan sisa konten preset `claude_code`, termasuk instruksi keamanan dan keselamatannya. Ini berbeda dari `claude -p`, yang menggunakan system prompt Claude Code secara default. Jika Anda bermigrasi dari CLI dan menginginkan perilaku yang cocok, atur preset `claude_code`.

18* **Preset `claude_code`**: system prompt yang digunakan CLI Claude Code, dengan instruksi penggunaan tool, instruksi keamanan dan keselamatan, dan konteks tentang direktori kerja dan lingkungan. Atur `systemPrompt: { type: "preset", preset: "claude_code" }` di TypeScript atau `system_prompt={"type": "preset", "preset": "claude_code"}` di Python, secara opsional dengan `append` untuk menambahkan instruksi Anda sendiri di akhir.18* **Preset `claude_code`**: system prompt yang digunakan CLI Claude Code, dengan instruksi penggunaan tool dan instruksi keamanan dan keselamatan. Atur `systemPrompt: { type: "preset", preset: "claude_code" }` di TypeScript atau `system_prompt={"type": "preset", "preset": "claude_code"}` di Python, secara opsional dengan `append` untuk menambahkan instruksi Anda sendiri di akhir.

19* **String kustom**: prompt yang Anda tulis sendiri. SDK hanya mengirimkan apa yang Anda berikan.19* **String kustom**: prompt yang Anda tulis sendiri. SDK hanya mengirimkan apa yang Anda berikan.

20 20 

21<h3 id="decide-on-a-starting-point">21<h3 id="decide-on-a-starting-point">


26 26 

27| Anda membangun | Gunakan | Apa yang Anda dapatkan |27| Anda membangun | Gunakan | Apa yang Anda dapatkan |

28| :- | :- | :- |28| :- | :- | :- |

29| Alat coding seperti CLI atau IDE di mana manusia mengamati dan mengarahkan, dan default Claude Code adalah apa yang Anda inginkan | Preset `claude_code` | Prompt Claude Code, termasuk panduan tool, aturan keselamatan, dan konteks lingkungan |29| Alat coding seperti CLI atau IDE di mana manusia mengamati dan mengarahkan, dan default Claude Code adalah apa yang Anda inginkan | Preset `claude_code` | Prompt Claude Code, termasuk panduan tool dan aturan keselamatan |

30| Jenis alat yang sama, ditambah aturan khusus produk seperti standar coding, format output, atau konteks domain | Preset `claude_code` dengan `append` | Semuanya di atas, dengan instruksi Anda ditambahkan setelah preset. Tidak ada yang dihapus, jadi ini adalah kustomisasi risiko terendah |30| Jenis alat yang sama, ditambah aturan khusus produk seperti standar coding, format output, atau konteks domain | Preset `claude_code` dengan `append` | Semuanya di atas, dengan instruksi Anda ditambahkan setelah preset. Tidak ada yang dihapus, jadi ini adalah kustomisasi risiko terendah |

31| Agen dengan permukaan, identitas, atau model izin yang berbeda, atau agen non-coding | String prompt kustom | Hanya apa yang Anda tulis. Anda bertanggung jawab untuk mengganti panduan tool dan instruksi keselamatan yang masih dibutuhkan agen Anda |31| Agen dengan permukaan, identitas, atau model izin yang berbeda, atau agen non-coding | String prompt kustom | Hanya apa yang Anda tulis. Anda bertanggung jawab untuk mengganti panduan tool dan instruksi keselamatan yang masih dibutuhkan agen Anda |

32| Loop tool-calling tipis tanpa persona agen, di mana Anda menyediakan semua perilaku dalam prompt pengguna | Tidak ada opsi `systemPrompt` | Default minimal: dukungan tool-calling dan tidak ada yang lain |32| Loop tool-calling tipis tanpa persona agen, di mana Anda menyediakan semua perilaku dalam prompt pengguna | Tidak ada opsi `systemPrompt` | Default minimal: dukungan tool-calling dan tidak ada yang lain |


225 Tingkatkan prompt caching di berbagai pengguna dan mesin225 Tingkatkan prompt caching di berbagai pengguna dan mesin

226</h4>226</h4>

227 227 

228Secara default, dua sesi yang menggunakan preset `claude_code` dan teks `append` yang sama masih tidak dapat berbagi entri cache prompt jika berjalan dari direktori kerja yang berbeda. Ini karena preset menyematkan konteks per-sesi dalam system prompt sebelum teks `append` Anda: direktori kerja, apakah itu repositori git, platform, shell aktif, versi OS, dan jalur auto-memory. Perbedaan apa pun dalam konteks itu menghasilkan system prompt yang berbeda dan cache miss. Konten CLAUDE.md tidak mempengaruhi cache system prompt karena SDK menyuntikkannya ke dalam percakapan, bukan system prompt.228Secara default, dua sesi yang menggunakan preset `claude_code` dan teks `append` yang sama masih tidak dapat berbagi entri cache prompt ketika lokasi auto memory mereka berbeda. Preset menyematkan lokasi itu dalam system prompt sebelum teks `append` Anda. Lokasi default adalah jalur absolut di bawah `~/.claude/projects/` yang dinamai untuk jalur repositori di disk, sehingga berbeda di berbagai pengguna, mesin, dan checkout.

229 229 

230Untuk membuat system prompt identik di berbagai sesi, atur `excludeDynamicSections: true` di TypeScript atau `"exclude_dynamic_sections": True` di Python. Konteks per-sesi berpindah ke pesan pengguna pertama, meninggalkan hanya preset statis dan teks `append` Anda dalam system prompt sehingga konfigurasi identik berbagi entri cache di berbagai pengguna dan mesin.230Konten CLAUDE.md dan detail lingkungan seperti direktori kerja, platform, shell, dan versi OS tidak mempengaruhi cache system prompt, karena Claude Code menyampaikannya dalam percakapan, bukan system prompt.

231 

232Untuk membuat system prompt identik di berbagai sesi, atur `excludeDynamicSections: true` di TypeScript atau `"exclude_dynamic_sections": True` di Python. Konteks per-pengguna berpindah ke pesan pengguna pertama, meninggalkan hanya preset statis dan teks `append` Anda dalam system prompt sehingga konfigurasi identik berbagi entri cache di berbagai pengguna dan mesin.

231 233 

232<Note>234<Note>

233 `excludeDynamicSections` memerlukan `@anthropic-ai/claude-agent-sdk` v0.2.98 atau lebih baru, atau `claude-agent-sdk` v0.1.58 atau lebih baru untuk Python. Atur pada bentuk objek preset saja. SDK mengabaikannya ketika Anda melewatkan prompt khusus alih-alih preset; untuk menjaga instruksi prompt khusus yang di-cache dalam TypeScript SDK, lihat [Cache bagian statis dari prompt khusus](#cache-the-static-part-of-a-custom-prompt).235 `excludeDynamicSections` memerlukan `@anthropic-ai/claude-agent-sdk` v0.2.98 atau lebih baru, atau `claude-agent-sdk` v0.1.58 atau lebih baru untuk Python. Atur pada bentuk objek preset saja. SDK mengabaikannya ketika Anda melewatkan prompt khusus alih-alih preset; untuk menjaga instruksi prompt khusus yang di-cache dalam TypeScript SDK, lihat [Cache bagian statis dari prompt khusus](#cache-the-static-part-of-a-custom-prompt).

234</Note>236</Note>

235 237 

236Contoh berikut memasangkan blok `append` bersama dengan `excludeDynamicSections` sehingga armada agen yang berjalan dari direktori berbeda dapat menggunakan kembali system prompt yang di-cache sama:238Contoh berikut memasangkan blok `append` bersama dengan `excludeDynamicSections` sehingga armada agen dapat menggunakan kembali system prompt yang di-cache sama:

237 239 

238<CodeGroup>240<CodeGroup>

239 ```typescript TypeScript theme={null}241 ```typescript TypeScript theme={null}


279 ```281 ```

280</CodeGroup>282</CodeGroup>

281 283 

282**Tradeoffs:** direktori kerja, flag git-repo, platform, shell aktif, versi OS, dan jalur auto-memory masih mencapai Claude, tetapi sebagai bagian dari pesan pengguna pertama daripada system prompt. Instruksi dalam pesan pengguna memiliki bobot sedikit lebih rendah daripada teks yang sama dalam system prompt, sehingga Claude mungkin mengandalkannya lebih sedikit saat bernalar tentang direktori saat ini atau jalur auto-memory. Aktifkan opsi ini ketika penggunaan kembali cache lintas-sesi lebih penting daripada konteks lingkungan yang paling otoritatif.284**Tradeoffs:** teks yang berpindah keluar dari system prompt masih mencapai Claude, tetapi dalam pesan pengguna. Teks itu setidaknya adalah lokasi direktori auto memory, dan sering kali seluruh bagian auto memory. Instruksi dalam pesan pengguna memiliki bobot sedikit lebih rendah daripada teks yang sama dalam system prompt, sehingga Claude mungkin mengikuti panduan auto memory-nya dengan kurang konsisten. Aktifkan opsi ini ketika penggunaan kembali cache lintas-sesi lebih penting daripada itu.

283 285 

284Untuk flag yang setara dalam mode CLI non-interaktif, lihat [`--exclude-dynamic-system-prompt-sections`](/docs/id/cli-reference).286Untuk flag yang setara dalam mode CLI non-interaktif, lihat [`--exclude-dynamic-system-prompt-sections`](/docs/id/cli-reference).

285 287 


418 420 

419Pencatatan `append` atau prompt khusus secara default memerlukan Claude Code v2.1.265 atau lebih baru, yang TypeScript Agent SDK bundel dari v0.3.265 dan Python Agent SDK dari v0.2.153. Sebelum Claude Code v2.1.268, sesi yang tidak [mengambil feature flags](/docs/id/env-vars#features-that-need-feature-flag-fetching), termasuk sesi di Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry, membangun kembali prompt pada setiap permintaan dan `snapshot` tidak berpengaruh.421Pencatatan `append` atau prompt khusus secara default memerlukan Claude Code v2.1.265 atau lebih baru, yang TypeScript Agent SDK bundel dari v0.3.265 dan Python Agent SDK dari v0.2.153. Sebelum Claude Code v2.1.268, sesi yang tidak [mengambil feature flags](/docs/id/env-vars#features-that-need-feature-flag-fetching), termasuk sesi di Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry, membangun kembali prompt pada setiap permintaan dan `snapshot` tidak berpengaruh.

420 422 

423<h2 id="context-claude-code-adds-outside-the-system-prompt">

424 Konteks yang Claude Code tambahkan di luar system prompt

425</h2>

426 

427System reminders adalah pesan yang Claude Code tambahkan ke percakapan selama sesi untuk memberikan Claude konteks, seperti isi file CLAUDE.md Anda atau catatan bahwa file berubah di disk. Claude Code mengirimnya dalam percakapan, bukan dalam system prompt, sehingga mereka mencapai Claude apakah Anda menggunakan preset `claude_code` atau meneruskan string Anda sendiri sebagai `systemPrompt`.

428 

429Bagian ini mencakup [reminders yang paling mungkin mengubah perilaku agen Anda](#reminders-claude-code-adds-to-the-conversation), cara [mematikan yang diganti agen Anda](#turn-off-the-context-your-agent-replaces), dan cara [melihat apa yang Claude terima](#see-what-claude-received) dalam permintaan tertentu.

430 

431<h3 id="reminders-claude-code-adds-to-the-conversation">

432 Reminders Claude Code adds to the conversation

433</h3>

434 

435System reminders adalah teks yang Claude Code tambahkan ke percakapan bersama dengan prompt yang kode Anda kirim. Reminders berikut adalah yang paling mungkin mengubah perilaku agen Anda:

436 

437* **Project instructions**: file CLAUDE.md yang opsi [`settingSources`](#claude-md-files-for-project-level-instructions) Anda muat

438* **Output style instructions**: instruksi dari [output style](#output-styles-for-persistent-configurations) aktif, dalam percakapan utama

439* **Commit and pull request attribution**: trailer `Co-Authored-By` dan footer pull request dari pengaturan [`attribution`](/docs/id/settings-reference#attribution)

440* **Hook output**: teks yang [hooks](/docs/id/agent-sdk/hooks#outputs) Anda kembalikan sebagai `additionalContext`

441* **Available skills**: nama dan deskripsi [skills](/docs/id/agent-sdk/skills) yang dapat dipanggil Claude

442* **Available subagents**: nama dan deskripsi [subagents](/docs/id/agent-sdk/subagents) yang dapat dimulai Claude

443* **Task list nudges**: dalam [sesi yang memiliki task-tracking tools](/docs/id/agent-sdk/todo-tracking#model-availability), prompt untuk memperbarui daftar tugas ketika Claude belum menyentuhnya selama beberapa putaran

444* **File-changed notes**: catatan bahwa file yang dibaca Claude sebelumnya telah berubah di disk

445 

446Claude Code memperkenalkan file CLAUDE.md Anda dengan baris yang memberi tahu Claude bahwa instruksi menggantikan perilaku default.

447 

448Jika Anda meneruskan string Anda sendiri sebagai `systemPrompt`, tambahkan kalimat ke dalamnya yang mengatakan apa itu system reminder. Preset `claude_code` memiliki satu, dan string Anda menggantikan seluruh preset. Tanpa itu, tidak ada dalam prompt Anda yang memberi tahu Claude bahwa reminders seperti konten CLAUDE.md dan hook output berasal dari aplikasi daripada dari pengguna. Sebagai contoh:

449 

450```text theme={null}

451The application adds system reminders to this conversation. Treat them as context from the application, not as messages from the user.

452```

453 

454<h3 id="turn-off-the-context-your-agent-replaces">

455 Turn off the context your agent replaces

456</h3>

457 

458Matikan bagian konteks bawaan ketika agen Anda menyediakan versi panduan yang sama. Misalnya, jika prompt Anda memberi tahu Claude untuk menulis pesan commit sebagai `PROJ-142: fix login redirect` tanpa trailer, Claude Code masih memberi tahu Claude untuk mengakhiri setiap pesan commit dengan trailer `Co-Authored-By`, sehingga Claude menerima dua instruksi yang bertentangan untuk commit yang sama.

459 

460Teruskan kunci pengaturan melalui opsi [`settings`](/docs/id/agent-sdk/typescript#options) di TypeScript atau [`settings`](/docs/id/agent-sdk/python#claudeagentoptions) di Python, dan variabel lingkungan melalui opsi `env`. Di TypeScript, [`env`](/docs/id/agent-sdk/typescript#options) menggantikan lingkungan yang diwariskan, jadi sebarkan `process.env` ke dalamnya.

461 

462| Built-in context | Cara mematikannya |

463| :- | :- |

464| Instruksi commit dan pull request bawaan dan snapshot status git | Atur [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) ke `false`, atau `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS=1` |

465| Trailer `Co-Authored-By` dan footer pull request | Atur [`attribution.commit`](/docs/id/settings-reference#attribution-commit) dan [`attribution.pr`](/docs/id/settings-reference#attribution-pr) ke teks Anda sendiri, atau ke string kosong untuk menghapusnya |

466| Sumber pengaturan pengguna atau proyek, termasuk CLAUDE.md-nya | Tinggalkan `'user'` atau `'project'` dari [`settingSources`](/docs/id/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) |

467| Setiap file CLAUDE.md | Atur `CLAUDE_CODE_DISABLE_CLAUDE_MDS=1` |

468| Task list nudges, file-changed notes, dan daftar skill | Atur `CLAUDE_CODE_DISABLE_ATTACHMENTS=1` |

469 

470Instruksi commit dan pull request bawaan Claude Code bukan reminder. Mereka adalah bagian dari deskripsi Bash tool, sehingga mereka juga mencapai Claude ketika Anda meneruskan `systemPrompt` kustom.

471 

472Jika Anda mengatur `CLAUDE_CODE_DISABLE_ATTACHMENTS`, Claude Code juga mengirim penyebutan file `@` sebagai teks biasa daripada memperluas mereka ke konten file. Daftar subagents yang tersedia dan notifikasi tugas latar belakang masih tiba.

473 

474Contoh berikut adalah untuk agen yang membawa aturan commit sendiri dalam `append`. Ini mengatur kedua kunci `attribution` ke string kosong untuk menghapus trailer dan footer, dan mematikan `includeGitInstructions` sehingga instruksi alur kerja commit Claude Code sendiri tidak bersaing dengan milik Anda:

475 

476<CodeGroup>

477 ```typescript TypeScript theme={null}

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

479 

480 for await (const message of query({

481 prompt: "Commit the staged changes for ticket PROJ-142",

482 options: {

483 systemPrompt: {

484 type: "preset",

485 preset: "claude_code",

486 append: "Write commit messages as: <ticket id>: <summary>. Add no trailers."

487 },

488 settings: {

489 includeGitInstructions: false,

490 attribution: { commit: "", pr: "" }

491 },

492 allowedTools: ["Bash(git *)"]

493 }

494 })) {

495 if (message.type === "result") console.log(message.subtype);

496 }

497 ```

498 

499 ```python Python theme={null}

500 import asyncio

501 from claude_agent_sdk import query, ClaudeAgentOptions

502 

503 

504 async def main():

505 async for message in query(

506 prompt="Commit the staged changes for ticket PROJ-142",

507 options=ClaudeAgentOptions(

508 system_prompt={

509 "type": "preset",

510 "preset": "claude_code",

511 "append": "Write commit messages as: <ticket id>: <summary>. Add no trailers.",

512 },

513 settings='{"includeGitInstructions": false, "attribution": {"commit": "", "pr": ""}}',

514 allowed_tools=["Bash(git *)"],

515 ),

516 ):

517 print(message)

518 

519 

520 asyncio.run(main())

521 ```

522</CodeGroup>

523 

524Untuk mengonfirmasi perubahan, jalankan contoh dalam repositori dengan perubahan yang dipentaskan dan periksa commit baru dengan `git log -1`. Pesan berakhir tanpa trailer `Co-Authored-By`.

525 

526<h3 id="see-what-claude-received">

527 See what Claude received

528</h3>

529 

530Aliran pesan SDK tidak menyertakan system reminders, jadi membaca pesan yang kode Anda terima tidak akan menunjukkan kepada Anda apa yang Claude lihat. Untuk melihatnya, catat permintaan yang Claude Code kirim:

531 

532* **Raw request logging**: atur [`OTEL_LOG_RAW_API_BODIES`](/docs/id/monitoring-usage#api-request-body-event) ke `file:<dir>`. Claude Code menulis setiap badan permintaan ke direktori itu.

533* **A gateway you control**: arahkan [`ANTHROPIC_BASE_URL`](/docs/id/llm-gateway) ke proxy yang mencatat badan permintaan.

534 

535Dalam permintaan yang dicatat, lihat di array `messages`. Reminder muncul di dalam pesan pengguna yang dibungkus dalam tag `<system-reminder>` atau, pada beberapa model, sebagai pesan terpisah dengan peran `system`.

536 

421<h2 id="compare-the-four-approaches">537<h2 id="compare-the-four-approaches">

422 Perbandingan keempat pendekatan538 Perbandingan keempat pendekatan

423</h2>539</h2>


431| **Management** | Di filesystem | CLI + file | Dalam kode | Dalam kode |547| **Management** | Di filesystem | CLI + file | Dalam kode | Dalam kode |

432| **Default tools** | Dipertahankan | Dipertahankan | Dipertahankan | Hilang (kecuali disertakan) |548| **Default tools** | Dipertahankan | Dipertahankan | Dipertahankan | Hilang (kecuali disertakan) |

433| **Built-in safety** | Dipertahankan | Dipertahankan | Dipertahankan | Harus ditambahkan |549| **Built-in safety** | Dipertahankan | Dipertahankan | Dipertahankan | Harus ditambahkan |

434| **Environment context** | Otomatis | Otomatis | Otomatis | Harus disediakan |

435| **Customization level** | Hanya penambahan | Ganti atau perluas default | Hanya penambahan | Kontrol penuh |550| **Customization level** | Hanya penambahan | Ganti atau perluas default | Hanya penambahan | Kontrol penuh |

436| **Version control** | Dengan proyek | Ya | Dengan kode | Dengan kode |551| **Version control** | Dengan proyek | Ya | Dengan kode | Dengan kode |

437| **Scope** | Spesifik proyek | Pengguna atau proyek | Sesi kode | Sesi kode |552| **Scope** | Spesifik proyek | Pengguna atau proyek | Sesi kode | Sesi kode |

Details

250| Variable | Menambahkan |250| Variable | Menambahkan |

251| - | - |251| - | - |

252| `OTEL_LOG_USER_PROMPTS=1` | Prompt text pada events `claude_code.user_prompt` dan pada span `claude_code.interaction` |252| `OTEL_LOG_USER_PROMPTS=1` | Prompt text pada events `claude_code.user_prompt` dan pada span `claude_code.interaction` |

253| `OTEL_LOG_TOOL_DETAILS=1` | Tool input arguments (file paths, shell commands, search patterns) pada events `claude_code.tool_result` |253| `OTEL_LOG_TOOL_DETAILS=1` | Tool input arguments seperti file paths, shell commands, dan search patterns pada events `claude_code.tool_result`, dan real agent, skill, plugin, dan MCP server names pada [cost and token metrics](/docs/id/monitoring-usage#cost-counter) |

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

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

256 256 

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

Details

41 </Step>41 </Step>

42 42 

43 <Step title="Allow rules">43 <Step title="Allow rules">

44 Periksa aturan `allow` (dari `allowed_tools` dan settings.json). Jika aturan cocok, alat disetujui. Panggilan yang alat setujui sendiri juga diselesaikan pada langkah ini, tanpa aturan yang diperlukan: misalnya pembacaan file di dalam direktori kerja Anda atau [perintah Bash read-only](/docs/id/permissions#read-only-commands). Penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](/docs/id/permission-modes#critical-paths) tidak pernah disetujui oleh aturan allow: mereka mencapai callback Anda dalam mode yang meminta, pergi ke [classifier](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) dalam mode `auto` pada Claude Code v2.1.218 atau lebih baru, dan ditolak dalam mode `dontAsk`.44 Periksa aturan `allow` (dari `allowed_tools` dan settings.json). Jika aturan cocok, alat disetujui. Panggilan yang alat setujui sendiri juga diselesaikan pada langkah ini, tanpa aturan yang diperlukan: misalnya pembacaan file di dalam direktori kerja Anda atau [perintah Bash read-only](/docs/id/permissions#read-only-commands).

45 

46 Penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](/docs/id/permission-modes#critical-paths) tidak pernah disetujui oleh aturan allow. Apakah mereka kemudian mencapai callback Anda tergantung pada mode izin: dalam sesi Agent SDK dalam mode `auto`, misalnya, Claude Code menolaknya secara default tanpa memanggilnya. Tabel mode [Critical paths](/docs/id/permission-modes#critical-paths) mencantumkan apa yang dilakukan setiap mode dengan mereka.

45 </Step>47 </Step>

46 48 

47 <Step title="canUseTool callback">49 <Step title="canUseTool callback">


89Gunakan `//path` untuk jalur sistem file absolut: aturan penolakan `Edit(//secrets/**)` memblokir penulisan di mana pun di bawah `/secrets` di disk. Dengan garis miring tunggal di depan, `Edit(/secrets/**)` berlabuh di sumber aturan sebagai gantinya. Untuk aturan yang dilewatkan melalui `allowed_tools` atau `disallowed_tools`, itu berarti direktori kerja sesi, sehingga aturan tidak memblokir `/secrets` di disk. Lihat [Aturan Read dan Edit](/docs/id/permissions#read-and-edit) untuk empat bentuk jangkar dan bagaimana aturan dari file pengaturan diselesaikan.91Gunakan `//path` untuk jalur sistem file absolut: aturan penolakan `Edit(//secrets/**)` memblokir penulisan di mana pun di bawah `/secrets` di disk. Dengan garis miring tunggal di depan, `Edit(/secrets/**)` berlabuh di sumber aturan sebagai gantinya. Untuk aturan yang dilewatkan melalui `allowed_tools` atau `disallowed_tools`, itu berarti direktori kerja sesi, sehingga aturan tidak memblokir `/secrets` di disk. Lihat [Aturan Read dan Edit](/docs/id/permissions#read-and-edit) untuk empat bentuk jangkar dan bagaimana aturan dari file pengaturan diselesaikan.

90 92 

91<Warning>93<Warning>

92 **Alat yang disetujui secara otomatis tidak pernah mencapai `canUseTool`.** Panggilan alat yang disetujui pada langkah sebelumnya apa pun, oleh `acceptEdits` atau `bypassPermissions`, atau oleh aturan izin, melewati callback `canUseTool` Anda, sehingga pemeriksaan izin yang Anda letakkan di sana diam-diam dilewati untuk alat tersebut. `AskUserQuestion`, alat MCP yang ditandai [`_meta["anthropic/requiresUserInteraction"]`](/docs/id/mcp#require-approval-for-a-specific-tool), alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools), dan penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](/docs/id/permission-modes#critical-paths) masih mencapai callback, bahkan ketika aturan izin cocok. Dalam mode `auto`, penghapusan jalur kritis pergi ke [pengklasifikasi](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) alih-alih callback, sementara panggilan lain yang tercantum di sini masih mencapainya; perutean pengklasifikasi memerlukan Claude Code v2.1.218 atau lebih baru. Dalam mode `dontAsk` panggilan ini ditolak sebagai gantinya, tanpa memanggil callback.94 **Alat yang disetujui secara otomatis tidak pernah mencapai `canUseTool`.** Panggilan alat yang disetujui pada langkah sebelumnya apa pun, oleh `acceptEdits` atau `bypassPermissions`, atau oleh aturan izin, melewati callback `canUseTool` Anda, sehingga pemeriksaan izin yang Anda letakkan di sana diam-diam dilewati untuk alat tersebut.

95 

96 Aturan izin tidak pernah menyetujui secara otomatis `AskUserQuestion`, alat MCP yang ditandai [`_meta["anthropic/requiresUserInteraction"]`](/docs/id/mcp#require-approval-for-a-specific-tool), alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools), atau penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](/docs/id/permission-modes#critical-paths). Dalam mode `dontAsk` Claude Code menolak panggilan ini tanpa memanggil callback. Dalam mode lain tiga yang pertama mencapai callback. Tergantung pada [mode izin](/docs/id/permission-modes#critical-paths), penghapusan jalur kritis mencapai callback juga atau Claude Code menolaknya tanpa memanggilnya, seperti yang dilakukannya secara default untuk sesi Agent SDK dalam mode `auto`.

93 97 

94 Cakupan tergantung pada bentuk entri: nama telanjang seperti `Read` atau `mcp__github__get_issue` menyetujui setiap panggilan ke alat tersebut terlepas dari pengecualian di atas, sementara aturan berskop seperti `Bash(npm test *)` hanya menyetujui panggilan yang cocok, dan panggilan `Bash` lainnya yang memerlukan persetujuan masih jatuh melalui callback. Untuk pemeriksaan yang harus berjalan pada setiap panggilan alat, gunakan [hook `PreToolUse`](/docs/id/agent-sdk/hooks): hook berjalan sebelum setiap langkah lainnya, dan penolakan hook bahkan berlaku dalam mode `bypassPermissions`.98 Cakupan tergantung pada bentuk entri: nama telanjang seperti `Read` atau `mcp__github__get_issue` menyetujui setiap panggilan ke alat tersebut terlepas dari pengecualian di atas, sementara aturan berskop seperti `Bash(npm test *)` hanya menyetujui panggilan yang cocok, dan panggilan `Bash` lainnya yang memerlukan persetujuan masih jatuh melalui callback. Untuk pemeriksaan yang harus berjalan pada setiap panggilan alat, gunakan [hook `PreToolUse`](/docs/id/agent-sdk/hooks): hook berjalan sebelum setiap langkah lainnya, dan penolakan hook bahkan berlaku dalam mode `bypassPermissions`.

95</Warning>99</Warning>


301 305 

302Pengeditan file tidak pernah auto-approved dalam mode rencana, bahkan ketika aturan izin cocok. Mereka meminta melalui callback `canUseTool` Anda sebagai gantinya. Pada Claude Code v2.1.212 atau lebih baru, perintah shell yang memodifikasi file, seperti `touch` dan `rm`, mencapai callback `canUseTool` Anda dengan cara yang sama.306Pengeditan file tidak pernah auto-approved dalam mode rencana, bahkan ketika aturan izin cocok. Mereka meminta melalui callback `canUseTool` Anda sebagai gantinya. Pada Claude Code v2.1.212 atau lebih baru, perintah shell yang memodifikasi file, seperti `touch` dan `rm`, mencapai callback `canUseTool` Anda dengan cara yang sama.

303 307 

304Jika Anda mengatur `allowDangerouslySkipPermissions: true` bersama dengan `permissionMode: 'plan'`, pengeditan file dan perintah shell yang memodifikasi file masih mencapai callback `canUseTool` Anda. Opsi ini memungkinkan Anda untuk beralih ke `bypassPermissions` nanti dengan `setPermissionMode()`.308Dalam SDK TypeScript, jika Anda mengatur `allowDangerouslySkipPermissions: true` bersama dengan `permissionMode: 'plan'`, pengeditan file dan perintah shell yang memodifikasi file masih mencapai callback `canUseTool` Anda. Opsi ini memungkinkan Anda untuk beralih ke `bypassPermissions` nanti dengan `setPermissionMode()`.

305 309 

306Claude dapat menggunakan `AskUserQuestion` untuk mengklarifikasi persyaratan sebelum menyelesaikan rencana. Lihat [Tangani persetujuan dan input pengguna](/docs/id/agent-sdk/user-input#handle-clarifying-questions) untuk menangani prompt ini.310Claude dapat menggunakan `AskUserQuestion` untuk mengklarifikasi persyaratan sebelum menyelesaikan rencana. Lihat [Tangani persetujuan dan input pengguna](/docs/id/agent-sdk/user-input#handle-clarifying-questions) untuk menangani prompt ini.

307 311 

Details

331 Plugin tidak dimuat331 Plugin tidak dimuat

332</h3>332</h3>

333 333 

334Jika plugin Anda tidak muncul dalam pesan init:334Jika plugin Anda tidak muncul dalam daftar `plugins` pesan init, periksa bidang [`plugin_errors`](/docs/id/agent-sdk/typescript#sdksystemmessage) untuk alasannya, kemudian lakukan pemeriksaan berikut:

335 335 

3361. **Periksa jalurnya**: pastikan jalur menunjuk ke direktori root plugin, induk dari `skills/`, `agents/`, `hooks/`, `commands/`, atau `.claude-plugin/`3361. **Periksa jalurnya**: pastikan jalur menunjuk ke direktori root plugin, induk dari `skills/`, `agents/`, `hooks/`, `commands/`, atau `.claude-plugin/`

3372. **Validasi plugin.json**: jika plugin Anda menyertakan manifest, pastikan memiliki sintaks JSON yang valid3372. **Validasi plugin.json**: jika plugin Anda menyertakan manifest, pastikan memiliki sintaks JSON yang valid

Details

295| Properti | Tipe | Deskripsi |295| Properti | Tipe | Deskripsi |

296| :- | :- | :- |296| :- | :- | :- |

297| `session_id` | `str` | Pengenal sesi unik |297| `session_id` | `str` | Pengenal sesi unik |

298| `summary` | `str` | Judul tampilan: judul kustom, ringkasan yang dihasilkan otomatis, atau prompt pertama |298| `summary` | `str` | Judul tampilan: judul kustom, prompt terbaru, ringkasan yang dihasilkan otomatis, atau prompt pertama |

299| `last_modified` | `int` | Waktu modifikasi terakhir dalam milidetik sejak epoch |299| `last_modified` | `int` | Waktu modifikasi terakhir dalam milidetik sejak epoch |

300| `file_size` | `int \| None` | Ukuran file sesi dalam byte (`None` untuk backend penyimpanan jarak jauh) |300| `file_size` | `int \| None` | Ukuran file sesi dalam byte (`None` untuk backend penyimpanan jarak jauh) |

301| `custom_title` | `str \| None` | Judul sesi yang ditetapkan pengguna |301| `custom_title` | `str \| None` | Judul sesi yang ditetapkan pengguna |


875 include_partial_messages: bool = False875 include_partial_messages: bool = False

876 include_hook_events: bool = False876 include_hook_events: bool = False

877 forward_subagent_text: bool = False877 forward_subagent_text: bool = False

878 verbatim_prompts: bool = False

878 fork_session: bool = False879 fork_session: bool = False

879 resume_session_at: str | None = None880 resume_session_at: str | None = None

880 resume_drops_turn: str | None = None881 resume_drops_turn: str | None = None


928| `include_partial_messages` | `bool` | `False` | Sertakan event streaming pesan parsial. Ketika diaktifkan, pesan [`StreamEvent`](#streamevent) dihasilkan |929| `include_partial_messages` | `bool` | `False` | Sertakan event streaming pesan parsial. Ketika diaktifkan, pesan [`StreamEvent`](#streamevent) dihasilkan |

929| `include_hook_events` | `bool` | `False` | Sertakan event lifecycle hook dalam aliran pesan sebagai objek `HookEventMessage` |930| `include_hook_events` | `bool` | `False` | Sertakan event lifecycle hook dalam aliran pesan sebagai objek `HookEventMessage` |

930| `forward_subagent_text` | `bool` | `False` | Teruskan blok teks dan thinking subagent dalam aliran pesan. Tanpa opsi ini, Claude Code memancarkan blok `tool_use` dan `tool_result` subagent tetapi bukan teks atau thinking. Memerlukan Python Agent SDK 0.2.140 atau lebih baru |931| `forward_subagent_text` | `bool` | `False` | Teruskan blok teks dan thinking subagent dalam aliran pesan. Tanpa opsi ini, Claude Code memancarkan blok `tool_use` dan `tool_result` subagent tetapi bukan teks atau thinking. Memerlukan Python Agent SDK 0.2.140 atau lebih baru |

932| `verbatim_prompts` | `bool` | `False` | Berikan setiap prompt seperti yang ditulis. SDK mengirim setiap pesan pengguna dengan `client_composed` diatur ke `True`. Lihat [`client_composed`](/docs/id/agent-sdk/typescript#sdkusermessage) untuk apa yang Claude Code lewati pada pesan tersebut. Gunakan opsi ini ketika teks prompt Anda menyertakan konten yang pengguna akhir tidak ketik. Untuk kontrol per-turn, biarkan mati dan atur `"client_composed": True` pada pesan streaming individual sebagai gantinya. Sementara opsi aktif, SDK menimpa nilai `client_composed` apa pun yang Anda atur. Memerlukan Python Agent SDK 0.2.158 atau lebih baru dan Claude Code v2.1.248 atau lebih baru; CLI yang disertakan dengan versi SDK tersebut memenuhi persyaratan Claude Code |

931| `fork_session` | `bool` | `False` | Ketika melanjutkan dengan `resume`, fork ke ID sesi baru alih-alih melanjutkan sesi asli |933| `fork_session` | `bool` | `False` | Ketika melanjutkan dengan `resume`, fork ke ID sesi baru alih-alih melanjutkan sesi asli |

932| `resume_session_at` | `str \| None` | `None` | Ketika melanjutkan, muat percakapan hanya hingga dan termasuk pesan dengan UUID ini. Gunakan dengan `resume`, dan biasanya `fork_session`, untuk cabang dari titik sebelumnya. Memerlukan Python Agent SDK 0.2.137 atau lebih baru |934| `resume_session_at` | `str \| None` | `None` | Ketika melanjutkan, muat percakapan hanya hingga dan termasuk pesan dengan UUID ini. Gunakan dengan `resume`, dan biasanya `fork_session`, untuk cabang dari titik sebelumnya. Memerlukan Python Agent SDK 0.2.137 atau lebih baru |

933| `resume_drops_turn` | `str \| None` | `None` | UUID dari prompt pengguna yang putaran pemotongan `resume_session_at` buang. Ketika diatur, CLI menolak resume jika rentang yang dibuang menyimpan entri yang tidak dapat diatribusikan ke putaran itu. Memerlukan Python Agent SDK 0.2.137 atau lebih baru dan Claude Code v2.1.223 atau lebih baru; CLI yang disertakan dengan versi SDK tersebut memenuhi persyaratan Claude Code |935| `resume_drops_turn` | `str \| None` | `None` | UUID dari prompt pengguna yang putaran pemotongan `resume_session_at` buang. Ketika diatur, CLI menolak resume jika rentang yang dibuang menyimpan entri yang tidak dapat diatribusikan ke putaran itu. Memerlukan Python Agent SDK 0.2.137 atau lebih baru dan Claude Code v2.1.223 atau lebih baru; CLI yang disertakan dengan versi SDK tersebut memenuhi persyaratan Claude Code |


1010| `type` | Ya | Harus `"preset"` untuk menggunakan preset system prompt |1012| `type` | Ya | Harus `"preset"` untuk menggunakan preset system prompt |

1011| `preset` | Ya | Harus `"claude_code"` untuk menggunakan system prompt Claude Code |1013| `preset` | Ya | Harus `"claude_code"` untuk menggunakan system prompt Claude Code |

1012| `append` | Tidak | Instruksi tambahan untuk ditambahkan ke preset system prompt |1014| `append` | Tidak | Instruksi tambahan untuk ditambahkan ke preset system prompt |

1013| `exclude_dynamic_sections` | Tidak | Pindahkan konteks per-sesi seperti direktori kerja, flag git-repo, dan jalur memori otomatis dari system prompt ke pesan pengguna pertama. Meningkatkan reuse prompt-cache di seluruh pengguna dan mesin. Lihat [Modify system prompts](/docs/id/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |1015| `exclude_dynamic_sections` | Tidak | Pindahkan konteks per-pengguna, seperti lokasi memori otomatis, dari system prompt ke pesan pengguna pertama. Meningkatkan reuse prompt-cache di seluruh pengguna dan mesin. Lihat [Modify system prompts](/docs/id/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) |

1014| `snapshot` | Tidak | Atur ke `False` untuk membangun kembali system prompt pada setiap permintaan alih-alih [menggunakan kembali prompt yang sesi catat pada permintaan pertamanya](/docs/id/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Memerlukan `claude-agent-sdk` v0.2.153 atau lebih baru |1016| `snapshot` | Tidak | Atur ke `False` untuk membangun kembali system prompt pada setiap permintaan alih-alih [menggunakan kembali prompt yang sesi catat pada permintaan pertamanya](/docs/id/agent-sdk/modifying-system-prompts#change-the-prompt-of-an-existing-session). Memerlukan `claude-agent-sdk` v0.2.153 atau lebih baru |

1015 1017 

1016<h3 id="systempromptcustom">1018<h3 id="systempromptcustom">


1221 "plan", # Planning mode - explore without editing1223 "plan", # Planning mode - explore without editing

1222 "dontAsk", # Deny anything not pre-approved instead of prompting1224 "dontAsk", # Deny anything not pre-approved instead of prompting

1223 "bypassPermissions", # Bypass permission checks; explicit ask rules still prompt (use with caution)1225 "bypassPermissions", # Bypass permission checks; explicit ask rules still prompt (use with caution)

1224 "auto", # Model classifier approves or denies permission prompts1226 "auto", # A model classifier reviews actions such as shell commands and network requests

1225]1227]

1226```1228```

1227 1229 


3791<Warning>3793<Warning>

3792 Perintah yang berjalan dengan `dangerouslyDisableSandbox: True` memiliki akses sistem penuh. Pastikan handler `can_use_tool` Anda memvalidasi permintaan ini dengan hati-hati.3794 Perintah yang berjalan dengan `dangerouslyDisableSandbox: True` memiliki akses sistem penuh. Pastikan handler `can_use_tool` Anda memvalidasi permintaan ini dengan hati-hati.

3793 3795 

3794 Jika `permission_mode` diatur ke `bypassPermissions` dan `allow_unsandboxed_commands` diaktifkan, model dapat secara otonom menjalankan perintah di luar sandbox tanpa prompt persetujuan, kecuali untuk [tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves). Kombinasi ini secara efektif memungkinkan model untuk melarikan diri dari isolasi sandbox secara diam-diam.3796 Jika `permission_mode` diatur ke `bypassPermissions` dan `allowUnsandboxedCommands` diaktifkan, model dapat secara otonom menjalankan perintah di luar sandbox tanpa prompt persetujuan, kecuali untuk [tindakan yang tidak ada mode auto-approve](/docs/id/permission-modes#actions-no-mode-auto-approves). Kombinasi ini secara efektif memungkinkan model untuk melarikan diri dari isolasi sandbox secara diam-diam.

3795</Warning>3797</Warning>

3796 3798 

3797<h2 id="see-also">3799<h2 id="see-also">

Details

330 Keterbatasan yang Diketahui330 Keterbatasan yang Diketahui

331</h2>331</h2>

332 332 

333* **Structured output**: hasil JSON muncul hanya di `ResultMessage.structured_output` akhir, bukan sebagai streaming deltas. Lihat [structured outputs](/docs/id/agent-sdk/structured-outputs) untuk detail.333* **Structured output**: dengan partial messages diaktifkan, JSON mengalir sebagai chunks `input_json_delta` yang tidak divalidasi dari tool call, dan hanya hasil yang divalidasi yang mencapai `ResultMessage.structured_output` akhir. Lihat [structured outputs](/docs/id/agent-sdk/structured-outputs) untuk detail.

334 334 

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

336 Langkah selanjutnya336 Langkah selanjutnya

Details

162 structured\_output is None but the result says success162 structured\_output is None but the result says success

163</h3>163</h3>

164 164 

165Pesan hasil dapat berakhir dengan `subtype: "success"` sementara `structured_output` adalah `None` di Python atau `undefined` di TypeScript. Jalankan selesai, tetapi tidak ada output yang divalidasi. Salah satu cara untuk mencapai ini adalah skema yang tidak dapat dipenuhi output apa pun, misalnya batasan panjang yang bertentangan. Jalankan berakhir tanpa kesalahan validasi, dan satu-satunya sinyal adalah `structured_output` yang hilang.165Pesan hasil dapat berakhir dengan `subtype: "success"` sementara `structured_output` adalah `None` di Python atau `undefined` di TypeScript. Jalankan selesai, tetapi tidak ada output yang divalidasi. Salah satu cara untuk mencapai ini adalah skema yang tidak dapat dipenuhi output apa pun, misalnya batasan panjang yang bertentangan.

166 166 

167Perlakukan hasil ini sebagai kegagalan dalam kode aplikasi. Periksa baik bahwa `subtype` adalah `success` dan bahwa `structured_output` ada sebelum menggunakannya. Bagian [Error handling](/docs/id/agent-sdk/structured-outputs#error-handling) menunjukkan pola ini untuk kedua SDK.167Perlakukan hasil ini sebagai kegagalan dalam kode aplikasi. Periksa baik bahwa `subtype` adalah `success` dan bahwa `structured_output` ada sebelum menggunakannya. Bagian [Error handling](/docs/id/agent-sdk/structured-outputs#error-handling) menunjukkan pola ini untuk kedua SDK.

168 168 

Details

54* Untuk cross-compile, instal paket platform yang tidak cocok, misalnya `npm install @anthropic-ai/claude-agent-sdk-linux-x64 --force`.54* Untuk cross-compile, instal paket platform yang tidak cocok, misalnya `npm install @anthropic-ai/claude-agent-sdk-linux-x64 --force`.

55* Di Windows, subpath biner adalah `claude.exe`, misalnya `@anthropic-ai/claude-agent-sdk-win32-x64/claude.exe`.55* Di Windows, subpath biner adalah `claude.exe`, misalnya `@anthropic-ai/claude-agent-sdk-win32-x64/claude.exe`.

56 56 

57<h3 id="import-the-/core-entry-when-you-bundle-the-agent-sdk">

58 Impor entri `/core` ketika Anda membundel Agent SDK

59</h3>

60 

61Jika aplikasi Anda membundel Agent SDK bersama dengan dependensinya sendiri, impor dari `@anthropic-ai/claude-agent-sdk/core` alih-alih akar paket. Entri `/core` memerlukan TypeScript Agent SDK v0.3.282 atau lebih baru, dan tipenya memerlukan TypeScript 5.0 atau lebih baru.

62 

63Entri `/core` mengekspor `query()`, `startup()`, `tool()`, `createSdkMcpServer()`, dan `resolveSettings()` yang sama seperti entri akar, bersama dengan fungsi yang mengganti nama, menandai, dan menghapus sesi, `AbortError`, konstanta runtime, dan setiap tipe. Ini tidak menambahkan nama miliknya sendiri. Untuk menjaga kode yang dimuat aplikasi Anda tetap kecil, `/core` menghilangkan beberapa ekspor akar, termasuk `prewarm()`, kelas `InMemorySessionStore`, dan pembantu yang mencantumkan, membaca, melakukan fork, mengimpor, dan merangkum sesi. Jika Anda memerlukan salah satunya, gunakan entri akar sebagai gantinya.

64 

65Entri akar menginline salinan miliknya sendiri dari `zod` dan `@modelcontextprotocol/sdk`. Entri `/core` mengimpornya dari `node_modules` Anda pada rentang yang dideklarasikan `peerDependencies` Agent SDK, jadi bundel yang sudah menyertakan mereka tidak membawa salinan kedua. Impor dari entri akar atau `/core` dalam proses tertentu, bukan keduanya: mereka adalah bundel terpisah, dan memuat keduanya memberi Anda dua salinan dari kelas dan status Agent SDK.

66 

57<h2 id="functions">67<h2 id="functions">

58 Fungsi68 Fungsi

59</h2>69</h2>


93 `startup()`103 `startup()`

94</h3>104</h3>

95 105 

96Pra-pemanasan subprocess CLI dengan menspawnya dan menyelesaikan handshake inisialisasi sebelum prompt tersedia. Handle [`WarmQuery`](#warmquery) yang dikembalikan menerima prompt nanti dan menulisnya ke proses yang sudah siap, sehingga panggilan `query()` pertama diselesaikan tanpa membayar biaya spawn dan inisialisasi subprocess secara inline.106Pra-pemanasan subprocess CLI dengan menspawnya dan menyelesaikan handshake inisialisasi sebelum prompt tersedia. Handle [`WarmQuery`](#warmquery) yang dikembalikan menerima prompt nanti dan menulisnya ke proses yang sudah siap, sehingga panggilan `query()` pertama diselesaikan tanpa membayar biaya spawn dan inisialisasi subprocess secara inline. Jika Anda belum mengetahui direktori kerja sesi, gunakan [`prewarm()`](#prewarm) sebagai gantinya.

97 107 

98```typescript theme={null}108```typescript theme={null}

99function startup(params?: {109function startup(params?: {


135}145}

136```146```

137 147 

148<h3 id="prewarm">

149 `prewarm()`

150</h3>

151 

152*Alpha.* Memulai proses Claude Code sebagai cadangan sebelum Anda mengetahui sesi mana yang akan dilayaninya, sehingga Anda dapat mengikatnya ke sesi nanti dengan [`claim()`](#spareprocess). Gunakan dalam aplikasi yang boot sebelum pengguna memilih folder. Memerlukan TypeScript Agent SDK v0.3.282 atau lebih baru.

153 

154`prewarm()` menyelesaikan handshake inisialisasi yang sama dengan [`startup()`](#startup), dengan proses menunggu di `options.cwd` ketika Anda menetapkannya dan sebaliknya di direktori sementara pribadi di bawah direktori konfigurasi Claude Code Anda. Direktori kerja sesi, hook `SessionStart` nya, server MCP stdio nya, dan konteks CLAUDE.md dan git nya menunggu klaim. Cadangan menahan kira-kira 230 hingga 260 MB memori saat menunggu. Jika [`spawnClaudeCodeProcess`](#options) Anda menjalankan Claude Code di mesin lain atau dalam kontainer, atur `options.cwd` ke direktori yang ada di sana agar cadangan menunggu.

155 

156```typescript theme={null}

157function prewarm(params?: {

158 options?: Options;

159 initializeTimeoutMs?: number;

160}): Promise<SpareProcess>;

161```

162 

163`options` dan `initializeTimeoutMs` berarti sama seperti untuk `startup()`, kecuali bahwa `options.cwd` hanya menetapkan direktori tempat cadangan menunggu. Promise diselesaikan dengan [`SpareProcess`](#spareprocess) setelah proses menyelesaikan handshake inisialisasinya. `prewarm()` melempar jika `options` menetapkan `resume`, `continue`, atau `forkSession`, karena cadangan tidak memiliki sesi. Semuanya yang tidak dapat ditetapkan klaim, seperti `mcpServers`, `hooks`, `canUseTool`, `settingSources`, `systemPrompt`, dan `plugins`, diperbaiki untuk kehidupan cadangan, jadi simpan satu cadangan per set opsi yang berbeda dan prewarm lagi ketika mereka berubah.

164 

165<h4 id="example-2">

166 Contoh

167</h4>

168 

169Prewarm saat boot aplikasi, kemudian klaim cadangan ketika pengguna memulai sesi:

170 

171```typescript theme={null}

172import { prewarm } from "@anthropic-ai/claude-agent-sdk";

173 

174// Saat boot aplikasi, sebelum folder sesi diketahui

175const spare = await prewarm({ options: { maxTurns: 3 } });

176 

177// Nanti, ketika pengguna memulai sesi dalam folder

178const claimedQuery = spare.claim({

179 prompt: "What files are here?",

180 options: { cwd: "/path/to/project" },

181});

182 

183spare.claimed.catch((error: Error) => {

184 // Kecuali pesan dimulai dengan "option_not_applied", prompt tidak berjalan:

185 // mulai sesi ini dengan query() sebagai gantinya

186 console.error("Claim failed:", error.message);

187});

188 

189for await (const message of claimedQuery) {

190 console.log(message);

191}

192```

193 

138<h3 id="tool">194<h3 id="tool">

139 `tool()`195 `tool()`

140</h3>196</h3>


259| `tag` | `string \| undefined` | Tag sesi yang ditetapkan pengguna (lihat [`tagSession()`](#tagsession)) |315| `tag` | `string \| undefined` | Tag sesi yang ditetapkan pengguna (lihat [`tagSession()`](#tagsession)) |

260| `createdAt` | `number \| undefined` | Waktu pembuatan dalam milidetik sejak epoch, dari timestamp entri pertama |316| `createdAt` | `number \| undefined` | Waktu pembuatan dalam milidetik sejak epoch, dari timestamp entri pertama |

261 317 

262<h4 id="example-2">318<h4 id="example-3">

263 Contoh319 Contoh

264</h4>320</h4>

265 321 


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 |368| `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 |369| `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 370 

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

316 Contoh372 Contoh

317</h4>373</h4>

318 374 


452| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | Untuk setiap kunci tingkat atas dalam `effective`, sumber mana yang memasok nilai |508| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | Untuk setiap kunci tingkat atas dalam `effective`, sumber mana yang memasok nilai |

453| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | Pengaturan mentah per-sumber, diurutkan dari preseden terendah hingga tertinggi |509| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | Pengaturan mentah per-sumber, diurutkan dari preseden terendah hingga tertinggi |

454 510 

455<h4 id="example-4">511<h4 id="example-5">

456 Contoh512 Contoh

457</h4>513</h4>

458 514 


547| `toolAliases` | `Record<string, string>` | `undefined` | Map built-in tool names ke MCP tool names sehingga Claude memanggil implementasi MCP Anda alih-alih built-in. Misalnya, `{ Bash: 'mcp__workspace__bash' }` |603| `toolAliases` | `Record<string, string>` | `undefined` | Map built-in tool names ke MCP tool names sehingga Claude memanggil implementasi MCP Anda alih-alih built-in. Misalnya, `{ Bash: 'mcp__workspace__bash' }` |

548| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Konfigurasi untuk perilaku built-in tool. Lihat [`ToolConfig`](#toolconfig) untuk detail |604| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | Konfigurasi untuk perilaku built-in tool. Lihat [`ToolConfig`](#toolconfig) untuk detail |

549| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Konfigurasi tool. Teruskan array nama tool atau gunakan preset untuk mendapatkan default tools Claude Code |605| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | Konfigurasi tool. Teruskan array nama tool atau gunakan preset untuk mendapatkan default tools Claude Code |

606| `verbatimPrompts` | `boolean` | `false` | Berikan setiap prompt seperti yang ditulis. SDK mengirim setiap user message dengan `client_composed: true`. Lihat [`client_composed`](#sdkusermessage) untuk apa yang Claude Code lewati pada pesan tersebut. Gunakan opsi ini ketika teks prompt Anda mencakup konten yang end user tidak ketik. Untuk kontrol per-turn, biarkan off dan atur `client_composed` pada individual streamed messages sebagai gantinya. Memerlukan TypeScript Agent SDK v0.3.280 atau lebih baru dan Claude Code v2.1.248 atau lebih baru; Claude Code version yang bundled dengan SDK versions tersebut memenuhi Claude Code requirement |

550 607 

551<h4 id="handle-slow-or-stalled-api-responses">608<h4 id="handle-slow-or-stalled-api-responses">

552 Tangani respons API yang lambat atau terhenti609 Tangani respons API yang lambat atau terhenti


617 path: string,674 path: string,

618 options?: { maxBytes?: number; encoding?: 'utf-8' | 'base64' }675 options?: { maxBytes?: number; encoding?: 'utf-8' | 'base64' }

619 ): Promise<SDKControlReadFileResponse | null>;676 ): Promise<SDKControlReadFileResponse | null>;

677 reloadPlugins(options?: {

678 holdOnCacheImpact?: boolean;

679 }): Promise<SDKControlReloadPluginsResponse>;

620 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;680 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;

681 reloadOutputStyles(): Promise<SDKControlReloadOutputStylesResponse>;

621 accountInfo(): Promise<AccountInfo>;682 accountInfo(): Promise<AccountInfo>;

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

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


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

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

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

714| `reloadPlugins(options?)` | Reload plugins dari disk, sehingga plugins yang Anda install atau edit mid-session mencapai running session. Resolves dengan [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) yang mencantumkan session's commands, subagents, plugins, dan MCP server status. Memerlukan Agent SDK v0.2.85 atau lebih baru. Opsi [`holdOnCacheImpact`](#sdkcontrolreloadpluginsresponse) memerlukan Agent SDK v0.3.268 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 |715| `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 |

716| `reloadOutputStyles()` | Re-reads [output styles](/docs/id/output-styles) dari disk, sehingga style file yang Anda tambahkan atau edit mid-session menjadi tersedia untuk running session. Resolves dengan [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) yang mencantumkan style names yang tersedia setelah reload. Memerlukan Agent SDK v0.3.261 atau lebih baru |

654| `accountInfo()` | Mengembalikan account information |717| `accountInfo()` | Mengembalikan account information |

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

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


672* **Applied selama current turn**: `model`. Jika Anda switch `model` saat Claude bekerja pada turn, response yang Claude sudah generate selesai pada model lama, dan sisa turn, dimulai dengan next call Claude Code buat ke model, menggunakan yang baru. Subagents menjaga model mereka sendiri. Sebelum v2.1.212, mid-turn switch menunggu next turn.735* **Applied selama current turn**: `model`. Jika Anda switch `model` saat Claude bekerja pada turn, response yang Claude sudah generate selesai pada model lama, dan sisa turn, dimulai dengan next call Claude Code buat ke model, menggunakan yang baru. Subagents menjaga model mereka sendiri. Sebelum v2.1.212, mid-turn switch menunggu next turn.

673* **Tidak ada efek mid-session**: opsi system prompt. Ini diselesaikan sekali saat startup, jadi running session menjaga nilai asli bahkan meskipun call berhasil. Untuk mengubahnya, mulai session baru.736* **Tidak ada efek mid-session**: opsi system prompt. Ini diselesaikan sekali saat startup, jadi running session menjaga nilai asli bahkan meskipun call berhasil. Untuk mengubahnya, mulai session baru.

674 737 

675`effortLevel` menerima nama [effort level](/docs/id/model-config#adjust-effort-level). Ini juga menerima `"ultracode"`, yang meminta `xhigh` effort dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) on. `applyFlagSettings()` mendeklarasikan `effortLevel` tanpa nilai itu, jadi teruskan `{ ultracode: true }` yang setara dalam TypeScript. Nilai `ultracode` memerlukan Claude Code v2.1.203 atau lebih baru dan diterima hanya oleh `applyFlagSettings()`, bukan oleh key `effortLevel` dalam settings file.738`effortLevel` menerima nama [effort level](/docs/id/model-config#adjust-effort-level). Ini juga menerima `"ultracode"`, yang meminta `xhigh` effort dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) on. `applyFlagSettings()` mendeklarasikan `effortLevel` tanpa nilai itu, jadi dalam TypeScript teruskan `{ ultracode: true, effortLevel: "xhigh" }` untuk hasil yang sama, atau key [`ultracode`](/docs/id/settings-reference#ultracode) saja untuk menyalakan ultracode pada current effort level session. Nilai `ultracode` memerlukan Claude Code v2.1.203 atau lebih baru dan diterima hanya oleh `applyFlagSettings()`, bukan oleh key `effortLevel` dalam settings file. Sebelum v2.1.284, key `ultracode` saja juga menetapkan level ke `xhigh`.

676 739 

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.740Values 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.

678 741 


741 804 

742`WarmQuery` mengimplementasikan `AsyncDisposable`, jadi dapat digunakan dengan `await using` untuk automatic cleanup.805`WarmQuery` mengimplementasikan `AsyncDisposable`, jadi dapat digunakan dengan `await using` untuk automatic cleanup.

743 806 

807<h3 id="spareprocess">

808 `SpareProcess`

809</h3>

810 

811*Alpha.* Handle yang dikembalikan oleh [`prewarm()`](#prewarm): proses Claude Code yang dimulai yang belum terikat ke session dan dapat diklaim sekali. Memerlukan TypeScript Agent SDK v0.3.282 atau lebih baru.

812 

813```typescript theme={null}

814interface SpareProcess extends AsyncDisposable {

815 claim(params: {

816 prompt: string | AsyncIterable<SDKUserMessage>;

817 options: ClaimOptions;

818 }): Query;

819 readonly claimed: Promise<{ cwd: string; sessionId: string; parkedMs?: number; sdkMcpSettled: boolean }>;

820 readonly exited: Promise<void>;

821 close(): void;

822}

823```

824 

825<h4 id="members">

826 Anggota

827</h4>

828 

829| Anggota | Deskripsi |

830| :- | :- |

831| `claim({ prompt, options })` | Ikat spare ke session dalam `options.cwd` dan kirim pesan pertamanya. Mengembalikan [`Query`](#query-object) secara sinkron, seperti `query()` lakukan. Dapat hanya dipanggil sekali |

832| `claimed` | Resolves dengan working directory dan ID session sekali Claude Code menerima claim. Rejects ketika Claude Code menolak claim, ketika process exited atau ditutup terlebih dahulu, dan, dengan pesan yang dimulai dengan `option_not_applied`, ketika session berjalan tanpa `model` atau `maxThinkingTokens` yang Anda minta |

833| `exited` | Settles ketika process exits, claimed atau tidak. Ganti spare yang exits sebelum Anda claim-nya |

834| `close()` | Terminate process. Sebelum claim ini discard spare dan reject `claimed` |

835 

836`options.cwd` diperlukan. Claim juga dapat mengatur `additionalDirectories`, `model`, `permissionMode`, `maxThinkingTokens`, overlay flag-settings dalam `settings`, `appendSystemPrompt`, `title`, `agents`, dan per-session tokens dalam `env`.

837 

838Claude Code dapat menolak claim, misalnya untuk folder yang tidak ada atau yang project settings-nya mengatur `env`, `agent`, atau `model`. Ketika `claimed` rejects dengan pesan yang dimulai dengan `option_not_applied`, session berjalan tanpa `model` atau `maxThinkingTokens` yang Anda minta. Setelah penolakan lainnya prompt Anda belum berjalan, jadi mulai session dengan `query()` sebagai gantinya.

839 

744<h3 id="sdkcontrolinitializeresponse">840<h3 id="sdkcontrolinitializeresponse">

745 `SDKControlInitializeResponse`841 `SDKControlInitializeResponse`

746</h3>842</h3>


824 tokens: number;920 tokens: number;

825 color: string;921 color: string;

826 isDeferred?: boolean;922 isDeferred?: boolean;

923 kind: "used" | "free" | "buffer" | "deferred";

827 }[];924 }[];

828 totalTokens: number;925 totalTokens: number;

829 maxTokens: number;926 maxTokens: number;


913 1010 

914Baca token attribution dari collection fields:1011Baca token attribution dari collection fields:

915 1012 

916* `categories` memegang per-category totals.1013* `categories` memegang per-category totals. Setiap entry's `kind` mengklasifikasikan row dengan nilai yang sama seperti [`SDKContextUsageCategory`](#sdkcontextusagecategory). Klasifikasikan rows pada itu daripada pada display `name`. Field memerlukan Agent SDK v0.3.268 atau lebih baru.

917* `mcpTools` dan `agents` attribute tokens ke individual MCP tools dan subagents.1014* `mcpTools` dan `agents` attribute tokens ke individual MCP tools dan subagents.

918* `memoryFiles` mencantumkan setiap loaded memory file dengan costnya.1015* `memoryFiles` mencantumkan setiap loaded memory file dengan costnya.

919* `skills.skillFrontmatter` attributes skill listing's tokens ke setiap included skill. Per-skill counts mengukur setiap skill's listing entry seperti Claude Code benar-benar kirimkan, yang dapat lebih pendek daripada skill's full frontmatter. Bandingkan `skills.totalSkills` dengan `skills.includedSkills` untuk lihat apakah setiap discovered skill membuat ke listing.1016* `skills.skillFrontmatter` attributes skill listing's tokens ke setiap included skill. Per-skill counts mengukur setiap skill's listing entry seperti Claude Code benar-benar kirimkan, yang dapat lebih pendek daripada skill's full frontmatter. Bandingkan `skills.totalSkills` dengan `skills.includedSkills` untuk lihat apakah setiap discovered skill membuat ke listing.


950 1047 

951`Read` deny dan ask rules masih memblokir matching path, dan broad `Read` allow rule tidak membuka sisa filesystem ke `readFile()`. Untuk apa pun yang lain call resolves dengan `null`.1048`Read` deny dan ask rules masih memblokir matching path, dan broad `Read` allow rule tidak membuka sisa filesystem ke `readFile()`. Untuk apa pun yang lain call resolves dengan `null`.

952 1049 

1050<h3 id="sdkcontrolreloadpluginsresponse">

1051 `SDKControlReloadPluginsResponse`

1052</h3>

1053 

1054Return type dari [`reloadPlugins()`](#query-object).

1055 

1056```typescript theme={null}

1057type SDKControlReloadPluginsResponse = {

1058 commands: SlashCommand[];

1059 agents: AgentInfo[];

1060 plugins: {

1061 name: string;

1062 path: string;

1063 source?: string;

1064 version?: string;

1065 }[];

1066 mcpServers: McpServerStatus[];

1067 error_count: number;

1068 held?: boolean;

1069 cache_impact?: {

1070 mcp_servers_added: string[];

1071 mcp_servers_removed: string[];

1072 lsp_tool_change: ("adds" | "may-add" | "removes" | "may-remove") | null;

1073 };

1074};

1075```

1076 

1077Collection fields mendeskripsikan session setelah call:

1078 

1079* `commands`, `agents`, dan `mcpServers`: session's commands, subagents, dan MCP server status, dalam shapes yang sama yang `supportedCommands()`, `supportedAgents()`, dan `mcpServerStatus()` kembalikan. `supportedAgents()` terus mengembalikan list yang ditangkap saat initialization, jadi baca `agents` di sini untuk set setelah reload

1080* `plugins`: setiap loaded plugin dengan `name` dan install `path`-nya. `version` mengulangi apa yang plugin's manifest deklarasikan dan plugin-author-controlled, jadi validate sebelum mempercayainya. Ini dihilangkan ketika manifest tidak mendeklarasikan apa pun

1081* `error_count`: jumlah errors dari loading plugins

1082 

1083Teruskan `{ holdOnCacheImpact: true }` ke `reloadPlugins()` untuk hold reload yang akan invalidate conversation's prompt cache alih-alih applying-nya. Claude Code menjalankan check yang interactive `/reload-plugins` command buat sebelum itu [warns about cache cost](/docs/id/prompt-caching#enabling-or-disabling-a-plugin). Option memerlukan Agent SDK v0.3.268 atau lebih baru. Claude Code executable yang lebih lama daripada v2.1.268, seperti yang Anda point `pathToClaudeCodeExecutable` pada, mengabaikan option dan applies reload.

1084 

1085Ketika Anda teruskan option, baca `held` untuk pelajari apa yang terjadi:

1086 

1087* `true`: reload tidak diterapkan, dan collection fields mendeskripsikan session seperti masih. `cache_impact` mengatakan apa yang applying akan ubah. Untuk apply anyway, panggil `reloadPlugins()` lagi tanpa option.

1088* `false`: check menemukan tidak ada cache impact, dan reload diterapkan.

1089* Absent: Anda tidak teruskan option, atau Claude Code executable lebih lama daripada v2.1.268 dan applied reload.

1090 

1091`cache_impact` present hanya bersama `held: true`. `mcp_servers_added` dan `mcp_servers_removed` menyebutkan plugin MCP servers yang reload akan register atau drop, sebagai scoped `plugin:<plugin>:<server>` names. Names adalah plugin-authored, jadi validate sebelum menunjukkan mereka. `lsp_tool_change` mengatakan apakah applying akan add atau remove LSP tool, atau `null` ketika tidak akan lakukan keduanya. Bentuk `may-` berarti check tidak bisa fully lihat pending plugin set.

1092 

953<h3 id="sdkcontrolreloadskillsresponse">1093<h3 id="sdkcontrolreloadskillsresponse">

954 `SDKControlReloadSkillsResponse`1094 `SDKControlReloadSkillsResponse`

955</h3>1095</h3>


964 1104 

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

966 1106 

1107<h3 id="sdkcontrolreloadoutputstylesresponse">

1108 `SDKControlReloadOutputStylesResponse`

1109</h3>

1110 

1111Return type dari [`reloadOutputStyles()`](#query-object).

1112 

1113```typescript theme={null}

1114type SDKControlReloadOutputStylesResponse = {

1115 available_output_styles: string[];

1116};

1117```

1118 

1119`available_output_styles` mencantumkan names dari built-in dan custom output styles yang tersedia setelah reload.

1120 

967<h3 id="sdkcontrolmcpreadresourceresponse">1121<h3 id="sdkcontrolmcpreadresourceresponse">

968 `SDKControlMcpReadResourceResponse`1122 `SDKControlMcpReadResourceResponse`

969</h3>1123</h3>


984 1138 

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`.1139Teruskan `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 1140 

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.1141Setiap `contents` entry adalah satu content item seperti server kirimkan, minus any `_meta` key di bawah prefix `com.anthropic/`, yang reserved untuk Claude Code. `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`.

1142 

1143Contents adalah untrusted third-party HTML, jadi render dalam sandbox.

988 1144 

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

990 `AgentDefinition`1146 `AgentDefinition`


1142 blockedPath?: string;1298 blockedPath?: string;

1143 mcpServer?: { name: string; source: string };1299 mcpServer?: { name: string; source: string };

1144 decisionReason?: string;1300 decisionReason?: string;

1301 defaultToNo?: boolean;

1302 suppressAlwaysAllowRule?: boolean;

1145 toolUseID: string;1303 toolUseID: string;

1146 agentID?: string;1304 agentID?: string;

1147 requestId: string;1305 requestId: string;


1156| `blockedPath` | `string` | File path yang triggered permission request, jika applicable |1314| `blockedPath` | `string` | File path yang triggered permission request, jika applicable |

1157| `mcpServer` | `{ name: string; source: string }` | Untuk tool `mcp__*`, MCP server yang melayaninya dan dari mana definisi server itu berasal, dengan fields dari [`McpServerProvenance`](#mcpserverprovenance). Absent untuk tools lainnya. Memerlukan Agent SDK v0.3.274 atau lebih baru |1315| `mcpServer` | `{ name: string; source: string }` | Untuk tool `mcp__*`, MCP server yang melayaninya dan dari mana definisi server itu berasal, dengan fields dari [`McpServerProvenance`](#mcpserverprovenance). Absent untuk tools lainnya. Memerlukan Agent SDK v0.3.274 atau lebih baru |

1158| `decisionReason` | `string` | Menjelaskan mengapa permission request ini triggered |1316| `decisionReason` | `string` | Menjelaskan mengapa permission request ini triggered |

1317| `defaultToNo` | `boolean` | Ketika `true`, single stray keystroke harus tidak approve request ini: open prompt Anda pada decline option-nya, jangan pre-select approve, dan offer tidak ada one-key approve shortcut. Memerlukan Agent SDK v0.3.268 atau lebih baru |

1318| `suppressAlwaysAllowRule` | `boolean` | Ketika `true`, jangan offer persistent always-allow choice untuk request ini, karena rule yang akan ditulis grants lebih dari request's sendiri action. Memerlukan Agent SDK v0.3.268 atau lebih baru |

1159| `toolUseID` | `string` | Unique identifier untuk specific tool call ini dalam assistant message |1319| `toolUseID` | `string` | Unique identifier untuk specific tool call ini dalam assistant message |

1160| `agentID` | `string` | Jika running dalam sub-agent, sub-agent's ID |1320| `agentID` | `string` | Jika running dalam sub-agent, sub-agent's ID |

1161| `requestId` | `string` | `control_request` envelope's `request_id`. `control_response` yang aplikasi Anda kirim di luar SDK, seperti signed HTTP POST, harus echo nilai ini sehingga Claude Code process dapat match reply ke request |1321| `requestId` | `string` | `control_request` envelope's `request_id`. `control_response` yang aplikasi Anda kirim di luar SDK, seperti signed HTTP POST, harus echo nilai ini sehingga Claude Code process dapat match reply ke request |


1380 context_usage?: SDKContextUsage;1540 context_usage?: SDKContextUsage;

1381 user_message_uuid?: string;1541 user_message_uuid?: string;

1382 user_message_uuids?: string[];1542 user_message_uuids?: string[];

1543 resume_reason?: string;

1383};1544};

1384```1545```

1385 1546 


1394 1555 

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

1396 1557 

1397Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada pesan asisten pertama giliran, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid).1558Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada pesan asisten pertama giliran, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid). Ketika Claude Code menjalankan kembali giliran yang gangguan interupsi, pesan asisten re-run yang membawa bidang itu juga membawa [`resume_reason`](#resume_reason).

1398 1559 

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

1400 1561 


1416 parent_tool_use_id: string | null;1577 parent_tool_use_id: string | null;

1417 isSynthetic?: boolean;1578 isSynthetic?: boolean;

1418 shouldQuery?: boolean;1579 shouldQuery?: boolean;

1580 client_composed?: true;

1419 tool_use_result?: unknown;1581 tool_use_result?: unknown;

1420 origin?: SDKMessageOrigin;1582 origin?: SDKMessageOrigin;

1421 inline_pastes?: string[];1583 inline_pastes?: string[];


1424 1586 

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.1587Atur `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 1588 

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.1589Atur `shouldQuery` atau `client_composed` untuk mengubah cara Claude Code menangani pesan yang Anda kirim:

1590 

1591* `shouldQuery`: atur 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 perintah yang Anda jalankan di luar pita, tanpa menghabiskan panggilan model.

1592* `client_composed`: atur ke `true` untuk membuat Claude Code mengirimkan teks pesan seperti yang ditulis. Claude Code kemudian tidak memperluas penyebutan `@path` atau [`@server:resource`](/docs/id/mcp#use-mcp-resources), dan tidak menjalankan teks yang dimulai dengan `/` sebagai perintah. Sementara opsi [`verbatimPrompts`](#options) aktif, SDK menetapkan bidang pada setiap pesan. Memerlukan TypeScript Agent SDK v0.3.280 atau lebih baru dan Claude Code v2.1.248 atau lebih baru.

1428 1593 

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

1430 1595 


1448 message: MessageParam;1613 message: MessageParam;

1449 parent_tool_use_id: string | null;1614 parent_tool_use_id: string | null;

1450 isSynthetic?: boolean;1615 isSynthetic?: boolean;

1616 client_composed?: true;

1451 tool_use_result?: unknown;1617 tool_use_result?: unknown;

1452 origin?: SDKMessageOrigin;1618 origin?: SDKMessageOrigin;

1453 isReplay: true;1619 isReplay: true;


1480 ttft_stream_ms?: number;1646 ttft_stream_ms?: number;

1481 user_message_uuid?: string;1647 user_message_uuid?: string;

1482 user_message_uuids?: string[];1648 user_message_uuids?: string[];

1649 resume_reason?: string;

1650 local_command?: string;

1483 request_sent_wall_ms?: number;1651 request_sent_wall_ms?: number;

1484 first_content_frame_ms?: number;1652 first_content_frame_ms?: number;

1485 first_stream_post_ms?: number;1653 first_stream_post_ms?: number;


1493 structured_output?: unknown;1661 structured_output?: unknown;

1494 deferred_tool_use?: { id: string; name: string; input: Record<string, unknown> };1662 deferred_tool_use?: { id: string; name: string; input: Record<string, unknown> };

1495 terminal_reason?: TerminalReason;1663 terminal_reason?: TerminalReason;

1664 result_index?: number;

1496 fast_mode_state?: FastModeState;1665 fast_mode_state?: FastModeState;

1497 fast_mode_disabled_reason?: FastModeDisabledReason;1666 fast_mode_disabled_reason?: FastModeDisabledReason;

1498 origin?: SDKMessageOrigin;1667 origin?: SDKMessageOrigin;


1520 startup_failure_reason?: SDKStartupFailureReason;1689 startup_failure_reason?: SDKStartupFailureReason;

1521 user_message_uuid?: string;1690 user_message_uuid?: string;

1522 user_message_uuids?: string[];1691 user_message_uuids?: string[];

1692 resume_reason?: string;

1523 terminal_reason?: TerminalReason;1693 terminal_reason?: TerminalReason;

1694 result_index?: number;

1524 fast_mode_state?: FastModeState;1695 fast_mode_state?: FastModeState;

1525 fast_mode_disabled_reason?: FastModeDisabledReason;1696 fast_mode_disabled_reason?: FastModeDisabledReason;

1526 origin?: SDKMessageOrigin;1697 origin?: SDKMessageOrigin;


1534* `ttft_stream_ms`: waktu dalam milidetik hingga acara aliran `message_start` pertama, ketika aliran respons terbuka. Lebih rendah dari `ttft_ms`; celah antara keduanya adalah waktu yang dihabiskan untuk streaming pesan pertama. Hadir hanya pada lengan kesuksesan.1705* `ttft_stream_ms`: waktu dalam milidetik hingga acara aliran `message_start` pertama, ketika aliran respons terbuka. Lebih rendah dari `ttft_ms`; celah antara keduanya adalah waktu yang dihabiskan untuk streaming pesan pertama. Hadir hanya pada lengan kesuksesan.

1535* `user_message_uuid`: `uuid` dari pesan yang Anda kirim yang dijawab giliran ini. Lihat [`user_message_uuid`](#user_message_uuid) untuk hasil mana yang membawanya.1706* `user_message_uuid`: `uuid` dari pesan yang Anda kirim yang dijawab giliran ini. Lihat [`user_message_uuid`](#user_message_uuid) untuk hasil mana yang membawanya.

1536* `user_message_uuids`: `uuid` dari setiap pesan yang Anda kirim yang dijawab Claude Code dalam giliran ini. Lihat [`user_message_uuids`](#user_message_uuids).1707* `user_message_uuids`: `uuid` dari setiap pesan yang Anda kirim yang dijawab Claude Code dalam giliran ini. Lihat [`user_message_uuids`](#user_message_uuids).

1708* `resume_reason`: mengapa Claude Code menjalankan kembali giliran ini setelah gangguan interupsi. Hadir pada kedua lengan, dan hanya pada re-run seperti itu. Lihat [`resume_reason`](#resume_reason).

1709* `local_command`: nama perintah yang dijalankan giliran, pada hasil kesuksesan giliran yang perintah selesai tanpa memasuki loop agen, seperti `/compact`. Nama dilipat menjadi huruf kecil dan garis bawah, jadi `/reload-plugins` melaporkan `reload_plugins`. Perintah yang server MCP sediakan, dan `/mcp` bawaan, melaporkan `mcp`. Perintah yang Anda tentukan sendiri melaporkan `custom`. Argumen tidak pernah disertakan. Tidak ada pada setiap giliran yang memasuki loop agen dan pada pengiriman yang tidak menjalankan perintah. Memerlukan Agent SDK v0.3.268 atau lebih baru.

1537* `request_sent_wall_ms`: epoch milidetik di mana Claude Code mengirim permintaan API, untuk bergabung dengan stempel waktu sisi server. Hadir hanya bersama dengan [`user_message_uuid`](#user_message_uuid), pada hasil kesuksesan dengan `is_error` false yang gilirannya mengirim permintaan API.1710* `request_sent_wall_ms`: epoch milidetik di mana Claude Code mengirim permintaan API, untuk bergabung dengan stempel waktu sisi server. Hadir hanya bersama dengan [`user_message_uuid`](#user_message_uuid), pada hasil kesuksesan dengan `is_error` false yang gilirannya mengirim permintaan API.

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.1711* `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.

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.1712* `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.


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.1714* `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.

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.1715* `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.

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.1716* `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.

1544*1717* `result_index`: di mana hasil ini jatuh dalam urutan pengiriman jalankan, menghitung dari 0 di seluruh setiap hasil yang ditulis proses. Hadir pada kedua lengan. Hasil yang penulisannya gagal masih menggunakan nomornya, jadi celah dalam urutan berarti hasil hilang. Memerlukan Agent SDK v0.3.268 atau lebih baru.

1545 1718* `startup_failure_reason`: mengapa Claude Code menolak untuk memulai, pada hasil `error_during_execution` yang ditulis sebelum keluar pada kegagalan startup yang diketahui. Lihat [`startup_failure_reason`](#startup_failure_reason) untuk nilai-nilai dan kegagalan mana yang membawanya. Memerlukan Agent SDK v0.3.274 atau lebih baru.

1546`startup_failure_reason`: mengapa Claude Code menolak untuk memulai, pada hasil `error_during_execution` yang ditulis sebelum keluar pada kegagalan startup yang diketahui. Lihat [`startup_failure_reason`](#startup_failure_reason) untuk nilai-nilai dan kegagalan mana yang membawanya. Memerlukan Agent SDK v0.3.274 atau lebih baru.

1547 

1548* `terminal_reason`: mengapa loop berakhir. Salah satu dari `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"`, atau `"turn_setup_failed"`.1719* `terminal_reason`: mengapa loop berakhir. Salah satu dari `"completed"`, `"max_turns"`, `"tool_deferred"`, `"aborted_streaming"`, `"aborted_tools"`, `"hook_stopped"`, `"stop_hook_prevented"`, `"background_requested"`, `"blocking_limit"`, `"rapid_refill_breaker"`, `"prompt_too_long"`, `"image_error"`, `"model_error"`, `"api_error"`, `"malformed_tool_use_exhausted"`, `"budget_exhausted"`, `"structured_output_retry_exhausted"`, `"tool_deferred_unavailable"`, atau `"turn_setup_failed"`.

1549* `fast_mode_state`: salah satu dari `"on"`, `"off"`, atau `"cooldown"`.1720* `fast_mode_state`: salah satu dari `"on"`, `"off"`, atau `"cooldown"`.

1550* `fast_mode_disabled_reason`: mengapa [fast mode](/docs/id/fast-mode) tidak tersedia sekarang. Tidak ada ketika tidak ada yang memblokir fast mode, meskipun permintaan mungkin masih berjalan dengan kecepatan standar. Selama cooldown setelah batas laju fast mode, Claude Code melaporkan `fast_mode_state: "cooldown"` tanpa kode alasan dan mengaktifkan kembali fast mode ketika cooldown berakhir. Memerlukan Claude Code v2.1.219 atau lebih baru.1721* `fast_mode_disabled_reason`: mengapa [fast mode](/docs/id/fast-mode) tidak tersedia sekarang. Tidak ada ketika tidak ada yang memblokir fast mode, meskipun permintaan mungkin masih berjalan dengan kecepatan standar. Selama cooldown setelah batas laju fast mode, Claude Code melaporkan `fast_mode_state: "cooldown"` tanpa kode alasan dan mengaktifkan kembali fast mode ketika cooldown berakhir. Memerlukan Claude Code v2.1.219 atau lebih baru.


1584 1755 

1585* **Pesan reguler yang Anda kirim**, yang berarti tanpa `isSynthetic: true`: giliran menjawab pesan itu untuk seluruh jalannya. Ketika Anda mengirim beberapa pesan berdekatan, Claude Code dapat menggabungkannya menjadi satu giliran, dan bidang kemudian membawa hanya `uuid` pesan terakhir. Untuk mencocokkan balasan dengan salah satu pesan yang digabungkan, gunakan [`user_message_uuids`](#user_message_uuids).1756* **Pesan reguler yang Anda kirim**, yang berarti tanpa `isSynthetic: true`: giliran menjawab pesan itu untuk seluruh jalannya. Ketika Anda mengirim beberapa pesan berdekatan, Claude Code dapat menggabungkannya menjadi satu giliran, dan bidang kemudian membawa hanya `uuid` pesan terakhir. Untuk mencocokkan balasan dengan salah satu pesan yang digabungkan, gunakan [`user_message_uuids`](#user_message_uuids).

1586* **Pesan yang Anda kirim dengan `isSynthetic: true`**: giliran menjawab pesan itu pada awalnya. Jika Claude Code mengambil pesan reguler Anda di antara panggilan alat, giliran menjawab pesan yang diambil dari saat itu. Mengulangi `uuid` pesan sintetis memerlukan Agent SDK v0.3.265 atau lebih baru; versi sebelumnya tidak mengulangi apa pun pada giliran sintetis.1757* **Pesan yang Anda kirim dengan `isSynthetic: true`**: giliran menjawab pesan itu pada awalnya. Jika Claude Code mengambil pesan reguler Anda di antara panggilan alat, giliran menjawab pesan yang diambil dari saat itu. Mengulangi `uuid` pesan sintetis memerlukan Agent SDK v0.3.265 atau lebih baru; versi sebelumnya tidak mengulangi apa pun pada giliran sintetis.

1587* **Prompt yang dihasilkan Claude Code sendiri**, seperti giliran yang melanjutkan pekerjaan terputus setelah sesi dimulai ulang: giliran tidak menjawab pesan Anda pada awalnya dan frame-nya tidak membawa echo. Jika Claude Code mengambil pesan reguler Anda di antara panggilan alat, giliran menjawab pesan itu dari saat itu. Echo pengambilan memerlukan Agent SDK v0.3.265 atau lebih baru; versi sebelumnya tidak mengulangi apa pun pada giliran ini.1758* **Prompt yang dihasilkan Claude Code untuk menjalankan kembali giliran terputus di bawah [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/id/env-vars)**: ketika prompt terakhir giliran terputus adalah pesan reguler yang Anda kirim, apakah itu membuka giliran atau Claude Code mengambilnya selama giliran, re-run menjawab pesan itu pada awalnya. [`resume_reason`](#resume_reason) memberi tahu frame re-run dari upaya terputus. Ketika prompt terakhir bukan pesan reguler Anda, re-run tidak menjawab pesan Anda pada awalnya. Jika Claude Code mengambil pesan reguler Anda di antara panggilan alat, giliran menjawab pesan yang diambil dari saat itu. Mengulangi prompt giliran terputus memerlukan Agent SDK v0.3.268 atau lebih baru.

1759* **Prompt lain yang dihasilkan Claude Code sendiri**: giliran tidak menjawab pesan Anda pada awalnya dan frame-nya tidak membawa echo. Jika Claude Code mengambil pesan reguler Anda di antara panggilan alat, giliran menjawab pesan itu dari saat itu. Echo pengambilan memerlukan Agent SDK v0.3.265 atau lebih baru; versi sebelumnya tidak mengulangi apa pun pada giliran ini.

1588 1760 

1589Claude Code mengulangi `uuid` pesan yang dijawab pada tiga jenis frame:1761Claude Code mengulangi `uuid` pesan yang dijawab pada tiga jenis frame:

1590 1762 


1596 1768 

1597* Frame balasan selain balasan pertama itu1769* Frame balasan selain balasan pertama itu

1598* Frame subagen1770* Frame subagen

1599* Giliran yang tidak menjawab pesan dengan `uuid`: giliran menjawab pesan yang Anda kirim tanpa satu, atau Claude Code memulai giliran sendiri dan tidak mengambil pesan reguler yang memiliki satu1771* Giliran yang tidak menjawab pesan Anda, atau menjawab pesan yang Anda kirim tanpa `uuid`

1600* Hasil yang tidak menjawab pesan apa pun yang Anda kirim, seperti hasil yang dinolkan setelah proses pekerja yang jatuh1772* Hasil yang tidak menjawab pesan apa pun yang Anda kirim, seperti hasil yang dinolkan setelah proses pekerja yang jatuh

1601 1773 

1602<h4 id="user_message_uuids">1774<h4 id="user_message_uuids">


1611 1783 

1612Ketika balasan pertama atau hasil membawa `user_message_uuid` tanpa daftar, itu berasal dari versi Claude Code sebelumnya, jadi kembali ke bidang tunggal.1784Ketika balasan pertama atau hasil membawa `user_message_uuid` tanpa daftar, itu berasal dari versi Claude Code sebelumnya, jadi kembali ke bidang tunggal.

1613 1785 

1786<h4 id="resume_reason">

1787 `resume_reason`

1788</h4>

1789 

1790Mengapa Claude Code menjalankan kembali giliran ini setelah gangguan interupsi. Claude Code menetapkan bidang ini pada giliran yang dijalankan kembali di bawah [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/id/env-vars), jadi Anda dapat membedakan balasan dan hasil re-run dari upaya terputus. Memerlukan Agent SDK v0.3.268 atau lebih baru.

1791 

1792Claude Code menetapkan bidang pada dua jenis frame:

1793 

1794* **Hasil re-run**: pada lengan kesuksesan dan kesalahan sama-sama, apakah atau tidak hasil membawa `user_message_uuid`.

1795* **Frame balasan re-run**: yang membawa [`user_message_uuid`](#user_message_uuid).

1796 

1797Nilai adalah token huruf kecil pendek yang menamai mengapa giliran dijalankan kembali, seperti `interrupted_turn`. Bidang tidak ada pada setiap giliran lain.

1798 

1614<h4 id="queued_turn_count">1799<h4 id="queued_turn_count">

1615 `queued_turn_count`1800 `queued_turn_count`

1616</h4>1801</h4>


1660| `org_pin_api_key_conflict` | Pengaturan terkelola [memerlukan masuk gateway first-party atau Cloud](/docs/id/authentication#restrict-login-to-your-organization), dan kunci API Anthropic, token auth, atau `apiKeyHelper` dikonfigurasi sebagai gantinya |1845| `org_pin_api_key_conflict` | Pengaturan terkelola [memerlukan masuk gateway first-party atau Cloud](/docs/id/authentication#restrict-login-to-your-organization), dan kunci API Anthropic, token auth, atau `apiKeyHelper` dikonfigurasi sebagai gantinya |

1661| `org_verify_failed` | Organisasi masuk tidak dapat diverifikasi terhadap pin, misalnya karena kegagalan jaringan atau token yang dicabut |1846| `org_verify_failed` | Organisasi masuk tidak dapat diverifikasi terhadap pin, misalnya karena kegagalan jaringan atau token yang dicabut |

1662| `org_pin_mismatch` | Masuk milik organisasi yang pin tidak izinkan |1847| `org_pin_mismatch` | Masuk milik organisasi yang pin tidak izinkan |

1663| `managed_settings_invalid` | Pengaturan kebijakan terkelola tidak dapat dibaca, atau pin tidak menamai organisasi |1848| `managed_settings_invalid` | Pengaturan kebijakan terkelola tidak dapat dibaca, pin tidak menamai organisasi, atau [pembatasan model terkelola](/docs/id/errors#managed-settings-block-the-default-model) tidak meninggalkan model yang diizinkan untuk opsi Default |

1664| `remote_settings_required_unavailable` | Pengaturan terkelola yang organisasi perlukan tidak dapat dimuat |1849| `remote_settings_required_unavailable` | Pengaturan terkelola yang organisasi perlukan tidak dapat dimuat |

1665| `gateway_signin_required` | [Gateway cloud](/docs/id/claude-apps-gateway) mengakhiri masuk ini |1850| `gateway_signin_required` | [Gateway cloud](/docs/id/claude-apps-gateway) mengakhiri masuk ini |

1666| `gateway_access_denied` | Permintaan pengaturan terkelola ke gateway cloud kembali dengan 403, yang [tabel pemecahan masalah](/docs/id/claude-apps-gateway-deploy#troubleshooting) gateway mencakup |1851| `gateway_access_denied` | Permintaan pengaturan terkelola ke gateway cloud kembali dengan 403, yang [tabel pemecahan masalah](/docs/id/claude-apps-gateway-deploy#troubleshooting) gateway mencakup |


1704 output_style: string;1889 output_style: string;

1705 skills: string[];1890 skills: string[];

1706 plugins: { name: string; path: string }[];1891 plugins: { name: string; path: string }[];

1892 plugin_errors?: {

1893 plugin: string;

1894 type: string;

1895 message: string;

1896 path?: string;

1897 }[];

1707 fast_mode_state?: FastModeState;1898 fast_mode_state?: FastModeState;

1708 fast_mode_disabled_reason?: FastModeDisabledReason;1899 fast_mode_disabled_reason?: FastModeDisabledReason;

1709 effort?: "low" | "medium" | "high" | "xhigh" | "max" | null;1900 effort?: "low" | "medium" | "high" | "xhigh" | "max" | null;


1730| `interrupt_receipt_v1` | [`interrupt()`](#query-object) menyelesaikan dengan penerimaan [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) yang mencantumkan pesan yang tertunda ketika gangguan tiba |1921| `interrupt_receipt_v1` | [`interrupt()`](#query-object) menyelesaikan dengan penerimaan [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) yang mencantumkan pesan yang tertunda ketika gangguan tiba |

1731| `interrupt_cancel_queued_v1` | Permintaan kontrol `interrupt` menghormati `cancel_queued: true`, membatalkan pesan yang akan dicantumkan penerimaan di bawah `still_queued` dan mencantumnya di bawah `cancelled` sebagai gantinya. Lihat [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse). Memerlukan Claude Code v2.1.219 atau lebih baru |1922| `interrupt_cancel_queued_v1` | Permintaan kontrol `interrupt` menghormati `cancel_queued: true`, membatalkan pesan yang akan dicantumkan penerimaan di bawah `still_queued` dan mencantumnya di bawah `cancelled` sebagai gantinya. Lihat [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse). Memerlukan Claude Code v2.1.219 atau lebih baru |

1732 1923 

1924Array `plugin_errors` mencantumkan kegagalan pemuatan plugin. Entri menggambarkan baik plugin yang tidak dimuat dan tidak ada dalam `plugins`, atau plugin yang dimuat tanpa salah satu bagiannya, seperti file hooks-nya. Kunci dihilangkan ketika tidak ada yang gagal. `SDKSystemMessage` mendeklarasikan `plugin_errors` dalam Agent SDK v0.3.283 atau lebih baru.

1925 

1926Ketika direktori atau arsip dari opsi [`plugins`](#options) Anda sendiri gagal dimuat, bidang `plugin` entri menyimpan tag posisional seperti `inline[0]` daripada nama plugin. Ini terjadi, misalnya, ketika jalur tidak ada atau manifes tidak valid. Cocokkan entri seperti itu dengan opsi Anda berdasarkan bidang `path`.

1927 

1928Tabel di bawah mencantumkan bidang setiap entri `plugin_errors`.

1929 

1930| Bidang | Tipe | Deskripsi |

1931| - | - | - |

1932| `plugin` | `string` | ID plugin yang gagal, atau tag posisional seperti `inline[0]` ketika direktori atau arsip plugin itu sendiri gagal dimuat |

1933| `type` | `string` | Kategori kesalahan dari set terbuka, seperti `path-not-found` atau `manifest-validation-error`. Perlakukan nilai yang tidak Anda kenal sebagai kegagalan generik |

1934| `message` | `string` | Teks tampilan yang menggambarkan kegagalan |

1935| `path` | `string` | Ada hanya ketika direktori atau arsip plugin itu sendiri gagal dimuat. Jalur absolutnya, dengan jalur relatif dari opsi `plugins` Anda diselesaikan terhadap opsi [`cwd`](#options) |

1936 

1733<h3 id="sdkpartialassistantmessage">1937<h3 id="sdkpartialassistantmessage">

1734 `SDKPartialAssistantMessage`1938 `SDKPartialAssistantMessage`

1735</h3>1939</h3>


1746 ttft_ms?: number; // Waktu ke token pertama dalam ms, hadir hanya pada acara message_start1950 ttft_ms?: number; // Waktu ke token pertama dalam ms, hadir hanya pada acara message_start

1747 user_message_uuid?: string;1951 user_message_uuid?: string;

1748 user_message_uuids?: string[];1952 user_message_uuids?: string[];

1953 resume_reason?: string;

1749};1954};

1750```1955```

1751 1956 

1752Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada acara aliran non-ping pertama giliran, dan lagi ketika pesan yang dijawab giliran berubah, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid).1957Claude Code menetapkan `user_message_uuid` dan `user_message_uuids` pada acara aliran non-ping pertama giliran, dan lagi ketika pesan yang dijawab giliran berubah, di bawah kondisi dalam [`user_message_uuid`](#user_message_uuid). Ketika Claude Code menjalankan kembali giliran yang gangguan interupsi, acara aliran re-run yang membawa bidang itu juga membawa [`resume_reason`](#resume_reason).

1753 1958 

1754<h3 id="sdkcompactboundarymessage">1959<h3 id="sdkcompactboundarymessage">

1755 `SDKCompactBoundaryMessage`1960 `SDKCompactBoundaryMessage`


1774 `SDKInformationalMessage`1979 `SDKInformationalMessage`

1775</h3>1980</h3>

1776 1981 

1777Spanduk teks generik yang dipancarkan oleh loop. Membawa baris status non-kesalahan, umpan balik hook seperti alasan blokir hook `UserPromptSubmit`, dan output perintah. Pada Claude Code v2.1.227 atau lebih baru, [`systemMessage`](/docs/id/hooks#json-output) hook dapat tiba sebagai pesan ini, dengan setiap baris diawali oleh nama hook, seperti `PostToolUse:Bash says:`. Apakah `systemMessage` hook tiba sebagai pesan ini tergantung pada acara. Setiap [bagian acara](/docs/id/hooks#hook-events) pada halaman hooks mengatakan bagaimana output muncul. Render `content` sebagai plaintext pada `level` yang diberikan.1982Spanduk teks generik yang dipancarkan oleh loop. Membawa peringatan, pemberitahuan, dan baris status non-kesalahan lainnya yang Claude Code naikkan, dan umpan balik hook seperti alasan blokir hook `UserPromptSubmit`.

1983 

1984Pada Claude Code v2.1.227 atau lebih baru, [`systemMessage`](/docs/id/hooks#json-output) hook dapat tiba sebagai pesan ini, dengan setiap baris diawali oleh nama hook, seperti `PostToolUse:Bash says:`. Setiap [bagian acara](/docs/id/hooks#hook-events) pada halaman hooks mengatakan bagaimana output muncul.

1985 

1986Render `content` sebagai plaintext pada `level` yang diberikan.

1778 1987 

1779```typescript theme={null}1988```typescript theme={null}

1780type SDKInformationalMessage = {1989type SDKInformationalMessage = {


1830Acara aliran yang dipancarkan ketika sistem izin menolak panggilan alat tanpa prompt interaktif. Gunakan untuk merender penolakan di UI Anda saat terjadi, daripada hanya mengamati hasil alat `is_error` yang mengikuti. Penolakan mana yang dilaporkan tergantung pada bagaimana jalannya menangani prompt izin:2039Acara aliran yang dipancarkan ketika sistem izin menolak panggilan alat tanpa prompt interaktif. Gunakan untuk merender penolakan di UI Anda saat terjadi, daripada hanya mengamati hasil alat `is_error` yang mengikuti. Penolakan mana yang dilaporkan tergantung pada bagaimana jalannya menangani prompt izin:

1831 2040 

1832* **Dengan callback [`canUseTool`](#canusetool) dan [`permissionPrompts: 'host'`](#options) default**: prompt izin pergi ke callback Anda, dan acara ini melaporkan penolakan yang Claude Code putuskan sendiri tanpa memanggilnya.2041* **Dengan callback [`canUseTool`](#canusetool) dan [`permissionPrompts: 'host'`](#options) default**: prompt izin pergi ke callback Anda, dan acara ini melaporkan penolakan yang Claude Code putuskan sendiri tanpa memanggilnya.

1833*2042* **Tanpa keduanya**: jalankan `-p` telanjang, atau `query()` yang tidak menetapkan `canUseTool` atau `permissionPromptToolName`, menolak panggilan alat apa pun yang akan diminta, dan acara ini melaporkan penolakan itu serta yang Claude Code putuskan sendiri. Sebelum v2.1.223, Claude Code tidak memancarkan acara ini dalam jalankan tanpa callback.

1834 

1835**Tanpa keduanya**: jalankan `-p` telanjang, atau `query()` yang tidak menetapkan `canUseTool` atau `permissionPromptToolName`, menolak panggilan alat apa pun yang akan diminta, dan acara ini melaporkan penolakan itu serta yang Claude Code putuskan sendiri. Sebelum v2.1.223, Claude Code tidak memancarkan acara ini dalam jalankan tanpa callback.

1836 

1837* **Dengan alat prompt MCP**, diatur dengan `permissionPromptToolName` atau flag [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags), dan `permissionPrompts: 'host'` default: Claude Code tidak memancarkan acara ini sama sekali, bahkan untuk penolakan aturan yang diputuskan sendiri.2043* **Dengan alat prompt MCP**, diatur dengan `permissionPromptToolName` atau flag [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags), dan `permissionPrompts: 'host'` default: Claude Code tidak memancarkan acara ini sama sekali, bahkan untuk penolakan aturan yang diputuskan sendiri.

1838*2044* **Dengan [`permissionPrompts: 'none'`](#options)**: Claude Code menolak panggilan yang akan diminta, bahkan ketika `canUseTool` atau alat prompt MCP juga diatur, dan acara ini melaporkan penolakan itu serta yang Claude Code putuskan sendiri. Memerlukan Claude Code v2.1.259 atau lebih baru.

1839 

1840**Dengan [`permissionPrompts: 'none'`](#options)**: Claude Code menolak panggilan yang akan diminta, bahkan ketika `canUseTool` atau alat prompt MCP juga diatur, dan acara ini melaporkan penolakan itu serta yang Claude Code putuskan sendiri. Memerlukan Claude Code v2.1.259 atau lebih baru.

1841 2045 

1842Dalam setiap konfigurasi, acara ini melewati penolakan apa pun yang diputuskan pada jalur hook `PreToolUse`, apakah hook menolak panggilan sendiri atau aturan deny menimpa keputusan allow atau ask hook. Acara ini juga best-effort: kadang-kadang Claude Code merekam penolakan tanpa memancarkan acara ini, jadi `permission_denials` pada [pesan hasil](#sdkresultmessage) adalah catatan otoritatif.2046Dalam setiap konfigurasi, acara ini melewati penolakan apa pun yang diputuskan pada jalur hook `PreToolUse`, apakah hook menolak panggilan sendiri atau aturan deny menimpa keputusan allow atau ask hook. Acara ini juga best-effort: kadang-kadang Claude Code merekam penolakan tanpa memancarkan acara ini, jadi `permission_denials` pada [pesan hasil](#sdkresultmessage) adalah catatan otoritatif.

1843 2047 


2888 Jenis Input Tool3092 Jenis Input Tool

2889</h2>3093</h2>

2890 3094 

2891Dokumentasi skema input untuk semua tool Claude Code bawaan. Jenis-jenis ini diekspor dari `@anthropic-ai/claude-agent-sdk` dan dapat digunakan untuk interaksi tool yang aman tipe.3095Dokumentasi skema input untuk semua tool Claude Code bawaan. Jenis-jenis ini diekspor dari `@anthropic-ai/claude-agent-sdk/sdk-tools` dan dapat digunakan untuk interaksi tool yang aman tipe.

2892 3096 

2893<h3 id="toolinputschemas">3097<h3 id="toolinputschemas">

2894 `ToolInputSchemas`3098 `ToolInputSchemas`

2895</h3>3099</h3>

2896 3100 

2897Gabungan jenis input tool yang diekspor dari `@anthropic-ai/claude-agent-sdk`; anggota mencakup:3101Gabungan jenis input tool yang diekspor dari `@anthropic-ai/claude-agent-sdk/sdk-tools`; anggota mencakup:

2898 3102 

2899```typescript theme={null}3103```typescript theme={null}

2900type ToolInputSchemas =3104type ToolInputSchemas =


3696 Tipe Output Tool3900 Tipe Output Tool

3697</h2>3901</h2>

3698 3902 

3699Dokumentasi skema output untuk semua tool Claude Code bawaan. Tipe ini dieksport dari `@anthropic-ai/claude-agent-sdk` dan mewakili data respons aktual yang dikembalikan oleh setiap tool.3903Dokumentasi skema output untuk semua tool Claude Code bawaan. Tipe ini dieksport dari `@anthropic-ai/claude-agent-sdk/sdk-tools` dan mewakili data respons aktual yang dikembalikan oleh setiap tool.

3700 3904 

3701<h3 id="tooloutputschemas">3905<h3 id="tooloutputschemas">

3702 `ToolOutputSchemas`3906 `ToolOutputSchemas`

3703</h3>3907</h3>

3704 3908 

3705Union dari tipe output tool yang dieksport dari `@anthropic-ai/claude-agent-sdk`; anggota mencakup:3909Union dari tipe output tool yang dieksport dari `@anthropic-ai/claude-agent-sdk/sdk-tools`; anggota mencakup:

3706 3910 

3707```typescript theme={null}3911```typescript theme={null}

3708type ToolOutputSchemas =3912type ToolOutputSchemas =


5541 `SDKTaskProgressMessage`5745 `SDKTaskProgressMessage`

5542</h3>5746</h3>

5543 5747 

5544Dipancarkan secara berkala saat subagen atau tugas latar belakang sedang berjalan. Field `summary` diisi hanya ketika [`agentProgressSummaries`](#options) diaktifkan.5748Dipancarkan secara berkala saat subagen atau tugas latar belakang sedang berjalan.

5749 

5750Untuk tugas subagen, field `summary` membawa ringkasan kemajuan yang dihasilkan model dan diisi hanya ketika [`agentProgressSummaries`](#options) diaktifkan. Untuk [panggilan tool MCP yang di-background](/docs/id/mcp#automatic-backgrounding-of-long-tool-calls), `summary` membawa kemajuan terbaru yang dilaporkan server MCP dan tidak bergantung pada opsi itu.

5545 5751 

5546```typescript theme={null}5752```typescript theme={null}

5547type SDKTaskProgressMessage = {5753type SDKTaskProgressMessage = {


5704 5910 

5705Dipancarkan ketika set perintah yang tersedia berubah di tengah sesi, seperti ketika Claude Code menemukan skills saat agen memasuki subdirektori. Array `commands` adalah daftar lengkap yang diperbarui, jadi ganti daftar perintah yang di-cache dengan payload ini. Memanggil [`supportedCommands()`](#query-object) setelah pesan ini mengembalikan daftar yang diperbarui yang sama, karena metode melacak push terbaru; ini memerlukan Agent SDK v0.3.216 atau lebih baru. Dalam versi SDK yang lebih awal, `supportedCommands()` mengembalikan snapshot yang ditangkap saat inisialisasi dan tidak pernah mencerminkan perubahan di tengah sesi.5911Dipancarkan ketika set perintah yang tersedia berubah di tengah sesi, seperti ketika Claude Code menemukan skills saat agen memasuki subdirektori. Array `commands` adalah daftar lengkap yang diperbarui, jadi ganti daftar perintah yang di-cache dengan payload ini. Memanggil [`supportedCommands()`](#query-object) setelah pesan ini mengembalikan daftar yang diperbarui yang sama, karena metode melacak push terbaru; ini memerlukan Agent SDK v0.3.216 atau lebih baru. Dalam versi SDK yang lebih awal, `supportedCommands()` mengembalikan snapshot yang ditangkap saat inisialisasi dan tidak pernah mencerminkan perubahan di tengah sesi.

5706 5912 

5913Claude Code juga memancarkan pesan ini ketika [prompts](/docs/id/mcp#use-mcp-prompts-as-commands) server MCP bergabung atau meninggalkan daftar, misalnya ketika server selesai terhubung setelah sesi dimulai. Ini memerlukan Claude Code v2.1.281 atau lebih baru.

5914 

5707```typescript theme={null}5915```typescript theme={null}

5708type SDKCommandsChangedMessage = {5916type SDKCommandsChangedMessage = {

5709 type: "system";5917 type: "system";


5741 new_conversation_id: UUID;5949 new_conversation_id: UUID;

5742 uuid: UUID;5950 uuid: UUID;

5743 session_id: string;5951 session_id: string;

5952 trigger?: "clear" | "plan_mode_exit" | "fresh_session" | "onboarding";

5953 user_message_uuid?: string;

5954 timestamp?: string;

5744};5955};

5745```5956```

5746 5957 

5958Field opsional menjelaskan reset:

5959 

5960* `trigger`: apa yang membuang percakapan. Atur ulang transkrip Anda pada setiap pesan `conversation_reset`, termasuk yang field ini tidak ada atau membawa nilai yang tidak Anda kenali.

5961* `user_message_uuid`: `uuid` dari pesan pengguna yang membawa `/clear`. Gunakan untuk mencocokkan reset ke pesan itu.

5962* `timestamp`: kapan reset terjadi, sebagai string ISO 8601 dalam UTC. Gunakan untuk tampilan, bukan untuk mengurutkan pesan.

5963 

5964Field `trigger`, `user_message_uuid`, dan `timestamp` memerlukan Claude Code v2.1.281 atau lebih baru.

5965 

5747Pengetikan yang dipublikasikan SDK mendeklarasikan `SDKConversationResetMessage` dalam Claude Code v2.1.203 dan lebih baru. Sebelum v2.1.203, `SDKMessage` mereferensikan tipe tanpa mendeklarasikannya, jadi penyempitan pada `type === "conversation_reset"` gagal untuk typecheck ketika `skipLibCheck` dinonaktifkan.5966Pengetikan yang dipublikasikan SDK mendeklarasikan `SDKConversationResetMessage` dalam Claude Code v2.1.203 dan lebih baru. Sebelum v2.1.203, `SDKMessage` mereferensikan tipe tanpa mendeklarasikannya, jadi penyempitan pada `type === "conversation_reset"` gagal untuk typecheck ketika `skipLibCheck` dinonaktifkan.

5748 5967 

5749<h3 id="aborterror">5968<h3 id="aborterror">


5860| `allowedDomains` | `string[]` | `[]` | Nama domain yang dapat diakses proses sandboxed |6079| `allowedDomains` | `string[]` | `[]` | Nama domain yang dapat diakses proses sandboxed |

5861| `deniedDomains` | `string[]` | `[]` | Nama domain yang tidak dapat diakses proses sandboxed. Mengambil prioritas atas `allowedDomains` |6080| `deniedDomains` | `string[]` | `[]` | Nama domain yang tidak dapat diakses proses sandboxed. Mengambil prioritas atas `allowedDomains` |

5862| `strictAllowlist` | `boolean` | `false` | Tolak akses perintah sandboxed ke host di luar [daftar izin jaringan](/docs/id/sandboxing#network-isolation) alih-alih meminta. Diberlakukan untuk perintah sandboxed saja; tool dalam proses seperti WebFetch tidak dibatasi olehnya. Hanya dihormati dari pengaturan pengguna, terkelola, atau CLI `--settings`; pengaturan proyek diabaikan. Memerlukan Claude Code v2.1.219 atau lebih baru |6081| `strictAllowlist` | `boolean` | `false` | Tolak akses perintah sandboxed ke host di luar [daftar izin jaringan](/docs/id/sandboxing#network-isolation) alih-alih meminta. Diberlakukan untuk perintah sandboxed saja; tool dalam proses seperti WebFetch tidak dibatasi olehnya. Hanya dihormati dari pengaturan pengguna, terkelola, atau CLI `--settings`; pengaturan proyek diabaikan. Memerlukan Claude Code v2.1.219 atau lebih baru |

5863| `allowManagedDomainsOnly` | `boolean` | `false` | Hanya pengaturan yang dikelola. Ketika diatur dalam [pengaturan yang dikelola](/docs/id/managed-settings), hanya entri `allowedDomains` dan aturan izin `WebFetch(domain:...)` dari pengaturan yang dikelola yang dihormati, dan entri izin dari pengaturan pengguna, proyek, atau lokal diabaikan. Tidak berpengaruh ketika diatur melalui opsi SDK |6082| `allowManagedDomainsOnly` | `boolean` | `false` | Hanya pengaturan yang dikelola. Ketika diatur dalam [pengaturan yang dikelola](/docs/id/managed-settings), hanya entri `allowedDomains` dan aturan izin `WebFetch(domain:...)` dari pengaturan yang dikelola yang dihormati, dan entri izin dari pengaturan pengguna, proyek, atau lokal diabaikan. Dari SDK, teruskan melalui opsi [`managedSettings`](#options) |

5864| `allowLocalBinding` | `boolean` | `false` | Izinkan proses untuk mengikat ke port lokal (misalnya, untuk dev server) |6083| `allowLocalBinding` | `boolean` | `false` | Izinkan proses untuk mengikat ke port lokal (misalnya, untuk dev server) |

5865| `allowUnixSockets` | `string[]` | `[]` | Jalur Unix socket yang dapat diakses proses (misalnya, Docker socket) |6084| `allowUnixSockets` | `string[]` | `[]` | Jalur Unix socket yang dapat diakses proses (misalnya, Docker socket) |

5866| `allowAllUnixSockets` | `boolean` | `false` | Izinkan akses ke semua Unix socket |6085| `allowAllUnixSockets` | `boolean` | `false` | Izinkan akses ke semua Unix socket |

Details

296 <Tab title="Setujui dan ingat">296 <Tab title="Setujui dan ingat">

297 Pengguna menyetujui dan tidak ingin ditanya lagi untuk jenis panggilan ini. Argumen callback ketiga membawa `suggestions`, sebuah array entri [`PermissionUpdate`](/docs/id/agent-sdk/typescript#permissionupdate) yang sudah jadi. Kembalikan satu di `updatedPermissions` untuk menerapkannya. Saran dengan tujuan `localSettings` menulis aturan ke `.claude/settings.local.json` sehingga sesi mendatang melewati prompt untuk panggilan yang cocok.297 Pengguna menyetujui dan tidak ingin ditanya lagi untuk jenis panggilan ini. Argumen callback ketiga membawa `suggestions`, sebuah array entri [`PermissionUpdate`](/docs/id/agent-sdk/typescript#permissionupdate) yang sudah jadi. Kembalikan satu di `updatedPermissions` untuk menerapkannya. Saran dengan tujuan `localSettings` menulis aturan ke `.claude/settings.local.json` sehingga sesi mendatang melewati prompt untuk panggilan yang cocok.

298 298 

299 Di TypeScript, lewati pilihan selalu-izinkan untuk permintaan yang opsinya membawa [`suppressAlwaysAllowRule: true`](/docs/id/agent-sdk/typescript#canusetool). Petunjuk memerlukan Agent SDK v0.3.268 atau lebih baru, dan `context` Python tidak membawanya.

300 

299 Contoh Python memerlukan `claude-agent-sdk` 0.1.80 atau lebih baru.301 Contoh Python memerlukan `claude-agent-sdk` 0.1.80 atau lebih baru.

300 302 

301 <CodeGroup>303 <CodeGroup>

agent-teams.md +44 −42

Details

239* [`TaskCompleted`](/docs/id/hooks#taskcompleted): berjalan ketika tugas ditandai selesai. Keluar dengan kode 2 untuk mencegah penyelesaian dan mengirim umpan balik.239* [`TaskCompleted`](/docs/id/hooks#taskcompleted): berjalan ketika tugas ditandai selesai. Keluar dengan kode 2 untuk mencegah penyelesaian dan mengirim umpan balik.

240 240 

241<h2 id="how-agent-teams-work">241<h2 id="how-agent-teams-work">

242 Bagaimana tim agent bekerja242 Cara kerja tim agent

243</h2>243</h2>

244 244 

245Bagian ini mencakup arsitektur dan mekanik di balik tim agent. Jika Anda ingin mulai menggunakannya, lihat [Kontrol tim agent Anda](#control-your-agent-team) di atas.245Bagian ini mencakup arsitektur dan mekanika di balik tim agent. Jika Anda ingin mulai menggunakannya, lihat [Kontrol tim agent Anda](#control-your-agent-team) di atas.

246 246 

247<h3 id="how-claude-starts-agent-teams">247<h3 id="how-claude-starts-agent-teams">

248 Bagaimana Claude memulai tim agent248 Cara Claude memulai tim agent

249</h3>249</h3>

250 250 

251Untuk memulai tim, minta Claude untuk rekan tim. Claude meluncurkan rekan tim ketika memanggil [Agent tool](/docs/id/tools-reference) dengan [`name`](/docs/id/sub-agents#subagent-names) sementara tim agent diaktifkan, kecuali panggilan adalah [fork](/docs/id/sub-agents#fork-the-current-conversation) atau melewatkan `isolation` pada panggilan itu sendiri. Claude Code tidak meminta Anda untuk mengonfirmasi peluncuran.251Untuk memulai tim, minta Claude untuk mendapatkan rekan kerja. Claude meluncurkan rekan kerja ketika memanggil [Agent tool](/docs/id/tools-reference) dengan [`name`](/docs/id/sub-agents#subagent-names) saat tim agent diaktifkan, kecuali panggilan tersebut adalah [fork](/docs/id/sub-agents#fork-the-current-conversation) atau meneruskan `isolation` pada panggilan itu sendiri. Claude Code tidak meminta Anda untuk mengonfirmasi peluncuran.

252 252 

253Claude juga memberi nama subagent biasa dengan sendirinya sehingga dapat mengirim pesan kepada mereka nanti. Panggilan-panggilan tersebut mengikuti aturan yang sama, jadi tim dapat terbentuk bahkan ketika Anda tidak memintanya. Jika Anda menginginkan subagent sebagai gantinya, [matikan tim agent](#claude-spawns-teammates-instead-of-subagents).253Claude juga memberi nama subagent biasa dengan sendirinya sehingga dapat mengirim pesan kepada mereka nanti. Panggilan tersebut mengikuti aturan yang sama, sehingga tim dapat terbentuk bahkan ketika Anda tidak memintanya. Jika Anda menginginkan subagent sebagai gantinya, [matikan tim agent](#claude-spawns-teammates-instead-of-subagents).

254 254 

255<h3 id="architecture">255<h3 id="architecture">

256 Arsitektur256 Arsitektur


260 260 

261| Komponen | Peran |261| Komponen | Peran |

262| :- | :- |262| :- | :- |

263| **Team lead** | Sesi Claude Code utama yang menghasilkan rekan tim dan mengoordinasikan pekerjaan |263| **Pemimpin tim** | Sesi Claude Code utama yang meluncurkan rekan kerja dan mengoordinasikan pekerjaan |

264| **Rekan tim** | Instance Claude Code terpisah yang masing-masing bekerja pada tugas yang ditugaskan |264| **Rekan kerja** | Instans Claude Code terpisah yang masing-masing bekerja pada tugas yang ditugaskan |

265| **Daftar tugas** | Daftar item pekerjaan bersama yang diklaim dan diselesaikan rekan tim |265| **Daftar tugas** | Daftar item pekerjaan bersama yang diklaim dan diselesaikan oleh rekan kerja |

266| **Mailbox** | Sistem pesan untuk komunikasi antar agent |266| **Kotak surat** | Sistem pesan untuk komunikasi antar agent |

267 267 

268Mailbox setiap agent adalah file JSON di `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code memvalidasi setiap entri ketika membaca file mailbox. Entri yang tidak sesuai dengan format pesan dilaporkan sebagai kesalahan dan dihapus dari file; pesan yang valid masih dikirimkan. Sebelum v2.1.207, satu entri mailbox yang salah format menyebabkan kesalahan berulang setiap detik dan memblokir pengiriman untuk mailbox itu sampai Anda menghapus file secara manual.268Kotak surat setiap agent adalah file JSON di `~/.claude/teams/{team-name}/inboxes/{agent-name}.json`. Claude Code memvalidasi setiap entri ketika membaca file kotak surat. Entri yang tidak sesuai dengan format pesan dilaporkan sebagai kesalahan dan dihapus dari file; pesan yang valid masih disampaikan. Sebelum v2.1.207, satu entri kotak surat yang salah format menyebabkan kesalahan berulang setiap detik dan memblokir pengiriman untuk kotak surat itu sampai Anda menghapus file secara manual.

269 269 

270Claude Code melaporkan pesan sebagai terkirim hanya ketika penulisan ke file mailbox penerima berhasil, baik pesan itu teks biasa atau pesan protokol terstruktur seperti persetujuan rencana atau permintaan shutdown. Ketika penulisan gagal, misalnya karena disk penuh atau direktori mailbox tidak dapat ditulis, agent pengirim menerima kesalahan dan tidak ada yang dikirim. Lihat [Gagal menulis ke inbox rekan tim](/docs/id/errors#failed-to-write-to-a-teammate-inbox) untuk pesan kesalahan dan langkah pemulihan.270Claude Code melaporkan pesan sebagai terkirim hanya ketika penulisan ke file kotak surat penerima berhasil, baik pesan itu teks biasa atau pesan protokol terstruktur seperti persetujuan rencana atau permintaan shutdown. Ketika penulisan gagal, misalnya karena disk penuh atau direktori kotak surat tidak dapat ditulis, agent pengirim menerima kesalahan dan tidak ada yang dikirim. Lihat [Failed to write to a teammate's inbox](/docs/id/errors#failed-to-write-to-a-teammate-inbox) untuk pesan kesalahan dan langkah pemulihan.

271 271 

272Claude Code mengelola dependensi tugas secara otomatis: ketika rekan tim menyelesaikan tugas yang tugas lain bergantung padanya, tugas yang diblokir membuka tanpa tindakan apa pun dari Anda.272Claude Code mengelola dependensi tugas secara otomatis: ketika rekan kerja menyelesaikan tugas yang tugas lain bergantung padanya, ia membuka blokir tugas yang bergantung tanpa tindakan apa pun dari Anda.

273 273 

274Tim dan tugas disimpan secara lokal dengan nama yang diturunkan dari sesi. Nama adalah `session-` diikuti oleh delapan karakter pertama dari session ID:274Tim dan tugas disimpan secara lokal dengan nama yang diturunkan dari sesi. Nama adalah `session-` diikuti oleh delapan karakter pertama dari ID sesi:

275 275 

276* **Konfigurasi tim**: `~/.claude/teams/{team-name}/config.json`276* **Konfigurasi tim**: `~/.claude/teams/{team-name}/config.json`

277* **Daftar tugas**: `~/.claude/tasks/{team-name}/`277* **Daftar tugas**: `~/.claude/tasks/{team-name}/`

278 278 

279Claude Code menghasilkan keduanya secara otomatis saat startup sesi dan memperbarui mereka saat rekan tim bergabung, idle, atau pergi. Direktori konfigurasi tim dihapus ketika sesi berakhir. Direktori daftar tugas tetap ada secara lokal dan tidak pernah diunggah, jadi sesi yang dilanjutkan menyimpan tugas mereka. Retensi diatur oleh [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays) yang sama yang sudah Anda kontrol untuk transkrip sesi, mengikuti [aturan pembersihan retensi](/docs/id/claude-directory#cleaned-up-automatically).279Claude Code menghasilkan keduanya secara otomatis saat startup sesi dan memperbaruinya saat rekan kerja bergabung, menjadi idle, atau pergi. Direktori konfigurasi tim dihapus ketika sesi berakhir. Direktori daftar tugas tetap ada secara lokal dan tidak pernah diunggah, sehingga sesi yang dilanjutkan menyimpan tugas mereka. Retensi diatur oleh [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays) yang sama yang sudah Anda kontrol untuk transkrip sesi, mengikuti [aturan pembersihan retensi](/docs/id/claude-directory#cleaned-up-automatically).

280 280 

281Konfigurasi tim menyimpan status runtime seperti session IDs dan tmux pane IDs, jadi jangan mengeditnya dengan tangan atau pre-author: perubahan Anda ditimpa pada update status berikutnya.281Konfigurasi tim menyimpan status runtime seperti ID sesi dan ID pane tmux, jadi jangan mengeditnya dengan tangan atau membuat penulisnya sebelumnya: perubahan Anda akan ditimpa pada pembaruan status berikutnya.

282 282 

283Untuk mendefinisikan peran rekan tim yang dapat digunakan kembali, gunakan [subagent definitions](#use-subagent-definitions-for-teammates) sebagai gantinya.283Untuk menentukan peran rekan kerja yang dapat digunakan kembali, gunakan [definisi subagent](#use-subagent-definitions-for-teammates) sebagai gantinya.

284 284 

285Konfigurasi tim berisi array `members` dengan nama setiap anggota dan agent ID. Entri lead selalu membawa tipe agent `team-lead`. Entri rekan tim membawa tipe agent apa pun yang lead beri nama saat menghasilkannya, baik [tipe built-in](/docs/id/sub-agents#built-in-subagents) atau [subagent definition](#use-subagent-definitions-for-teammates), dan menghilangkan field ketika lead tidak memberi nama apa pun. Rekan tim dapat membaca file ini untuk menemukan anggota tim lainnya.285Konfigurasi tim berisi array `members` dengan nama dan ID agent setiap anggota. Entri pemimpin selalu membawa jenis agent `team-lead`. Entri rekan kerja membawa jenis agent apa pun yang dinamai pemimpin saat meluncurkannya, baik [jenis bawaan](/docs/id/sub-agents#built-in-subagents) atau [definisi subagent](#use-subagent-definitions-for-teammates), dan menghilangkan bidang ketika pemimpin tidak menamai apa pun. Rekan kerja dapat membaca file ini untuk menemukan anggota tim lainnya.

286 286 

287Tidak ada padanan tingkat proyek dari konfigurasi tim. File seperti `.claude/teams/teams.json` di direktori proyek Anda tidak dikenali sebagai konfigurasi; Claude memperlakukannya sebagai file biasa.287Tidak ada padanan tingkat proyek dari konfigurasi tim. File seperti `.claude/teams/teams.json` di direktori proyek Anda tidak dikenali sebagai konfigurasi; Claude memperlakukannya sebagai file biasa.

288 288 

289<h3 id="use-subagent-definitions-for-teammates">289<h3 id="use-subagent-definitions-for-teammates">

290 Gunakan subagent definitions untuk rekan tim290 Gunakan definisi subagent untuk rekan kerja

291</h3>291</h3>

292 292 

293Ketika menghasilkan rekan tim dalam mode tampilan apa pun, Anda dapat mereferensikan tipe [subagent](/docs/id/sub-agents) dari proyek, pengguna, atau [subagent scope](/docs/id/sub-agents#choose-the-subagent-scope) yang dikelola. Ini memungkinkan Anda mendefinisikan peran sekali, seperti security-reviewer atau test-runner, dan menggunakannya kembali baik sebagai subagent yang didelegasikan maupun sebagai rekan tim agent team.293Saat meluncurkan rekan kerja di salah satu mode tampilan, Anda dapat mereferensikan jenis [subagent](/docs/id/sub-agents) dari proyek, pengguna, atau [cakupan subagent](/docs/id/sub-agents#choose-the-subagent-scope) yang dikelola. Ini memungkinkan Anda menentukan peran sekali, seperti security-reviewer atau test-runner, dan menggunakannya kembali baik sebagai subagent yang didelegasikan maupun sebagai rekan kerja tim agent.

294 294 

295Untuk menggunakan subagent definition, sebutkan berdasarkan nama ketika meminta Claude untuk menghasilkan rekan tim:295Untuk menggunakan definisi subagent, namai saat Anda meminta Claude untuk meluncurkan rekan kerja:

296 296 

297```text wrap theme={null}297```text wrap theme={null}

298Hasilkan rekan tim menggunakan tipe agent security-reviewer untuk mengaudit modul auth.298Spawn a teammate using the security-reviewer agent type to audit the auth module.

299```299```

300 300 

301Claude Code membaca subagent definition yang Anda beri nama dan menerapkan bagian-bagian ini ke rekan tim. Jika bagian bergantung pada [mode tampilan](#choose-a-display-mode) rekan tim, entri mengatakan demikian:301Claude Code membaca definisi subagent yang Anda namai dan menerapkan bagian-bagian ini ke rekan kerja. Jika bagian bergantung pada [mode tampilan](#choose-a-display-mode) rekan kerja, entri mengatakan demikian:

302 302 

303* **`tools`**: Claude Code membatasi rekan tim ke tools dalam daftar `tools` definition. Untuk rekan tim in-process, Claude Code menambahkan `SendMessage` ke daftar itu, dan dalam [sesi yang memiliki Task tools](/docs/id/tools-reference#task-tool-availability) menambahkan `TaskCreate`, `TaskGet`, `TaskList`, dan `TaskUpdate` juga.303* **`tools`**: Claude Code membatasi rekan kerja ke alat dalam daftar `tools` definisi. Untuk rekan kerja dalam proses, Claude Code menambahkan `SendMessage` ke daftar itu, dan dalam [sesi yang memiliki Task tools](/docs/id/tools-reference#task-tool-availability) juga menambahkan `TaskCreate`, `TaskGet`, `TaskList`, dan `TaskUpdate`.

304* **`model`**: Claude Code menggunakan `model` definition dalam mode tampilan apa pun ketika spawn prompt Anda tidak memberi nama satu. Lihat [bagaimana Claude Code memilih model rekan tim](#specify-teammates-and-models).304* **`model`**: Claude Code menggunakan `model` definisi di salah satu mode tampilan ketika prompt spawn Anda tidak menamai satu. Lihat [bagaimana Claude Code memilih model rekan kerja](#specify-teammates-and-models).

305* **Body**: untuk rekan tim in-process, Claude Code menambahkan body definition ke system prompt default-nya sebagai instruksi tambahan. Untuk rekan tim split-pane, Claude Code menggunakan body sebagai pengganti system prompt default-nya.305* **Body**: untuk rekan kerja dalam proses, Claude Code menambahkan body definisi ke prompt sistem defaultnya sebagai instruksi tambahan. Untuk rekan kerja split-pane, Claude Code menggunakan body sebagai pengganti prompt sistem defaultnya.

306* **`skills`**: Claude Code tidak menerapkan `skills` definition ke rekan tim dalam mode tampilan apa pun. Rekan tim memuat skills dari pengaturan proyek dan pengguna Anda.306* **`skills`**: Claude Code tidak menerapkan `skills` definisi ke rekan kerja di salah satu mode tampilan. Rekan kerja memuat skills dari pengaturan proyek dan pengguna Anda.

307* **`mcpServers`**: untuk rekan tim split-pane, Claude Code menerapkan `mcpServers` definition di bawah [aturan untuk field itu](/docs/id/sub-agents#scope-mcp-servers-to-a-subagent), yang mencakup sesi yang dimulai dengan `--agent` juga. Rekan tim in-process mengabaikan field dan memuat MCP servers dari pengaturan proyek dan pengguna Anda.307* **`mcpServers`**: untuk rekan kerja split-pane, Claude Code menerapkan `mcpServers` definisi di bawah [aturan untuk bidang itu](/docs/id/sub-agents#scope-mcp-servers-to-a-subagent), yang mencakup sesi yang dimulai dengan `--agent` juga. Rekan kerja dalam proses mengabaikan bidang dan memuat server MCP dari pengaturan proyek dan pengguna Anda.

308 308 

309Ketika Claude mengirim pesan ke rekan tim in-process yang tidak lagi berjalan, Claude Code membawanya kembali dalam sesi yang sama, memulihkan percakapan apa pun yang disimpan untuk itu, dan memberikan pesan sebagai prompt berikutnya. Setelah Anda melanjutkan sesi, rekan tim tidak dibawa kembali dengan cara ini, sesuai [batasan resume](#limitations).309Ketika Claude mengirim pesan ke rekan kerja dalam proses yang tidak lagi berjalan, Claude Code membawanya kembali dalam sesi yang sama, memulihkan percakapan apa pun yang disimpan untuknya, dan memberikan pesan sebagai prompt berikutnya. Setelah Anda melanjutkan sesi, rekan kerja tidak dibawa kembali dengan cara ini, per [batasan resume](#limitations).

310 310 

311Untuk rekan tim yang dibawanya kembali, Claude Code menerapkan kembali definition yang berasal dari direktori `.claude/agents/` proyek atau direktori `--add-dir` hanya jika Anda telah [mempercayai folder tempat file agent berada](/docs/id/permissions#what-runs-before-you-trust-a-folder). Mempercayai folder induk tidak dihitung. Sampai saat itu, rekan tim kembali tanpa tools atau instruksi definition apa pun, hanya menyimpan tools yang Claude Code tambahkan ke setiap rekan tim in-process. Lihat [definisi agent rekan tim tidak dipulihkan](/docs/id/errors#teammate-agent-definition-not-restored) untuk teks pemberitahuan.311Untuk rekan kerja yang dibawanya kembali, Claude Code menerapkan kembali definisi yang berasal dari direktori `.claude/agents/` proyek atau direktori `--add-dir` hanya jika Anda telah [mempercayai folder tempat file agent berada](/docs/id/permissions#what-runs-before-you-trust-a-folder). Mempercayai folder induk tidak dihitung. Sampai saat itu, rekan kerja kembali tanpa alat atau instruksi definisi apa pun, hanya menyimpan alat yang Claude Code tambahkan ke setiap rekan kerja dalam proses. Lihat [definisi agent rekan kerja tidak dipulihkan](/docs/id/errors#teammate-agent-definition-not-restored) untuk teks pemberitahuan.

312 312 

313<h3 id="permissions">313<h3 id="permissions">

314 Izin314 Izin

315</h3>315</h3>

316 316 

317Rekan tim dimulai dengan mode izin lead, kecuali mode [`dontAsk`](/docs/id/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), yang tidak mereka warisi. Jika lead berjalan dengan `--dangerously-skip-permissions`, semua rekan tim juga demikian. Setelah dihasilkan, Anda dapat mengubah mode izin rekan tim individual, tetapi Anda tidak dapat mengatur mode izin per-rekan tim pada waktu spawn.317Rekan kerja dimulai dengan mode izin pemimpin, kecuali mode [`dontAsk`](/docs/id/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), yang tidak mereka warisi. Jika pemimpin berjalan dengan `--dangerously-skip-permissions`, semua rekan kerja juga demikian. Setelah diluncurkan, Anda dapat mengubah mode izin rekan kerja individual, tetapi Anda tidak dapat menetapkan mode izin per-rekan kerja pada waktu spawn.

318 318 

319Prompt izin rekan tim muncul di sesi lead, jadi setujui mereka di sana sendiri. [Persetujuan rencana](#have-teammates-plan-before-implementing) adalah pengecualian yang dirancang: sesi lead memberikan persetujuan rencana rekan tim tanpa prompt terpisah kepada Anda.319Prompt izin rekan kerja muncul dalam sesi pemimpin, jadi setujui mereka di sana sendiri. [Persetujuan rencana](#have-teammates-plan-before-implementing) adalah pengecualian yang dirancang: sesi pemimpin memberikan persetujuan rencana rekan kerja tanpa prompt terpisah kepada Anda.

320 320 

321<h4 id="messages-between-agents">321<h4 id="messages-between-agents">

322 Pesan antar agent322 Pesan antar agent

323</h4>323</h4>

324 324 

325Ketika satu agent mengirim agent lain pesan melalui `SendMessage`, Claude Code memberi tahu agent penerima bahwa pesan itu berasal dari sesi Claude lain, bukan dari Anda. Rekan tim tidak dapat menyetujui prompt izin atau memberikan persetujuan atas nama Anda, dan rekan tim yang ditolak tindakannya tidak dapat menyampaikannya ke rekan tim lain untuk melewati pemeriksaan. Aturan yang sama berlaku untuk pesan yang tiba dari [salah satu sesi Claude Code lain Anda](/docs/id/cross-session-messaging#how-a-session-treats-an-incoming-message), di luar tim sepenuhnya.325Ketika satu agent mengirim agent lain pesan melalui `SendMessage`, Claude Code memberi tahu agent penerima bahwa pesan berasal dari sesi Claude lain, bukan dari Anda. Rekan kerja tidak dapat menyetujui prompt izin atau memberikan persetujuan atas nama Anda, dan rekan kerja yang ditolak tindakan tidak dapat menyampaikannya ke rekan kerja lain untuk melewati pemeriksaan. Aturan yang sama berlaku untuk pesan yang tiba dari [salah satu sesi Claude Code lain Anda](/docs/id/cross-session-messaging#how-a-session-treats-an-incoming-message), di luar tim sepenuhnya.

326 326 

327Dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), classifier menerapkan dua pemeriksaan ke pesan antar agent:327Dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), pengklasifikasi menerapkan dua pemeriksaan ke pesan antar agent:

328 328 

329* Ini memperlakukan klaim persetujuan yang disalurkan dari agent lain sebagai input yang tidak dipercaya daripada konfirmasi dari Anda.329* Ini memperlakukan klaim persetujuan yang disalurkan dari agent lain sebagai input yang tidak dipercaya daripada konfirmasi dari Anda.

330* Ini meninjau setiap pesan sebelum Claude Code mengirimkannya, baik pesan biasa atau pesan protokol terstruktur seperti permintaan shutdown atau respons persetujuan rencana. Pesan yang diblokir tidak pernah mencapai penerima.330* Ini meninjau setiap pesan sebelum Claude Code mengirimkannya, baik pesan biasa atau pesan protokol terstruktur seperti permintaan shutdown atau respons persetujuan rencana. Pesan yang diblokir tidak pernah mencapai penerima.

331 331 

332<h3 id="context-and-communication">332<h3 id="context-and-communication">

333 Context dan komunikasi333 Konteks dan komunikasi

334</h3>334</h3>

335 335 

336Setiap rekan tim memiliki context window-nya sendiri. Ketika dihasilkan, rekan tim memuat konteks proyek yang sama seperti session reguler: CLAUDE.md, MCP servers, dan skills. Mereka juga menerima spawn prompt dari lead. Riwayat percakapan lead tidak terbawa.336Setiap rekan kerja memiliki jendela konteksnya sendiri. Ketika diluncurkan, rekan kerja memuat konteks proyek yang sama dengan sesi biasa: CLAUDE.md, server MCP, dan skills. Jika Anda memulai pemimpin dengan [`--setting-sources`](/docs/id/cli-reference#cli-flags), rekan kerja memuat dari daftar sumber terbatas yang sama. Sebelum v2.1.281, rekan kerja [split-pane](#choose-a-display-mode) memuat setiap sumber pengaturan.

337 337 

338**Bagaimana rekan tim berbagi informasi:**338Rekan kerja juga menerima prompt spawn dari pemimpin. Riwayat percakapan pemimpin tidak terbawa.

339 339 

340* **Pengiriman pesan otomatis**: ketika rekan tim mengirim pesan, mereka dikirimkan secara otomatis ke penerima. Lead tidak perlu polling untuk update.340**Cara rekan kerja berbagi informasi:**

341* **Notifikasi idle**: ketika rekan tim selesai dan berhenti, mereka secara otomatis memberi tahu lead dan menyertakan jawaban akhir mereka dalam notifikasi. Rekan tim yang giliran berakhir pada kesalahan API memberi tahu lead bahwa itu gagal dan menyertakan teks kesalahan.341 

342* **Pengiriman pesan otomatis**: ketika rekan kerja mengirim pesan, mereka disampaikan secara otomatis kepada penerima. Pemimpin tidak perlu menunggu pembaruan.

343* **Notifikasi idle**: ketika rekan kerja selesai dan berhenti, ia secara otomatis memberi tahu pemimpin dan menyertakan jawaban finalnya dalam notifikasi. Rekan kerja yang giliran berakhir pada kesalahan API memberi tahu pemimpin bahwa ia gagal dan menyertakan teks kesalahan.

342* **Daftar tugas bersama**: [agent yang memiliki Task tools](/docs/id/tools-reference#task-tool-availability) dapat melihat status tugas dan mengklaim pekerjaan yang tersedia.344* **Daftar tugas bersama**: [agent yang memiliki Task tools](/docs/id/tools-reference#task-tool-availability) dapat melihat status tugas dan mengklaim pekerjaan yang tersedia.

343* **Pesan rekan tim**: kirim pesan ke satu rekan tim spesifik berdasarkan nama. Untuk menjangkau semua orang, kirim satu pesan per penerima.345* **Pesan rekan kerja**: kirim pesan ke satu rekan kerja spesifik berdasarkan nama. Untuk menjangkau semua orang, kirim satu pesan per penerima.

344 346 

345Lead menugaskan setiap rekan tim nama ketika menghasilkannya, dan rekan tim mana pun dapat mengirim pesan ke yang lain berdasarkan nama itu. Untuk mendapatkan nama yang dapat diprediksi yang dapat Anda referensikan dalam prompt kemudian, beri tahu lead apa yang harus dipanggil setiap rekan tim dalam instruksi spawn Anda.347Pemimpin memberikan setiap rekan kerja nama ketika meluncurkannya, dan rekan kerja apa pun dapat mengirim pesan ke yang lain berdasarkan nama itu. Untuk mendapatkan nama yang dapat diprediksi yang dapat Anda referensikan dalam prompt nanti, beri tahu pemimpin apa yang harus dipanggil setiap rekan kerja dalam instruksi spawn Anda.

346 348 

347<h3 id="token-usage">349<h3 id="token-usage">

348 Penggunaan token350 Penggunaan token

349</h3>351</h3>

350 352 

351Tim agent menggunakan token secara signifikan lebih banyak daripada satu session. Setiap rekan tim memiliki context window-nya sendiri, dan penggunaan token skala dengan jumlah rekan tim aktif. Untuk penelitian, review, dan pekerjaan fitur baru, token tambahan biasanya berharga. Untuk tugas rutin, satu session lebih cost-effective. Lihat [biaya token tim agent](/docs/id/costs#agent-team-token-costs) untuk panduan penggunaan.353Tim agent menggunakan jauh lebih banyak token daripada sesi tunggal. Setiap rekan kerja memiliki jendela konteksnya sendiri, dan penggunaan token diskalakan dengan jumlah rekan kerja aktif. Untuk penelitian, tinjauan, dan pekerjaan fitur baru, token tambahan biasanya berharga. Untuk tugas rutin, sesi tunggal lebih hemat biaya. Lihat [biaya token tim agent](/docs/id/costs#agent-team-token-costs) untuk panduan penggunaan.

352 354 

353Permintaan rekan tim in-process jatuh di luar [cache TTL bucket](/docs/id/prompt-caching#which-ttl-each-request-gets) percakapan utama, jadi cache-nya berlaku selama lima menit secara default, termasuk pada langganan Claude. Untuk menyimpannya selama satu jam, atur [`subagentPromptCacheTtl`](/docs/id/settings-reference#subagentpromptcachettl) ke `1h`. API menagih penulisan cache 1 jam dengan tarif yang lebih tinggi.355Permintaan rekan kerja dalam proses berada di luar [cache TTL bucket](/docs/id/prompt-caching#which-ttl-each-request-gets) percakapan utama, sehingga cache-nya berlaku selama lima menit secara default, termasuk pada langganan Claude. Untuk menyimpannya selama satu jam, atur [`subagentPromptCacheTtl`](/docs/id/settings-reference#subagentpromptcachettl) ke `1h`. API menagih penulisan cache 1 jam dengan tarif yang lebih tinggi.

354 356 

355<h2 id="use-case-examples">357<h2 id="use-case-examples">

356 Contoh use case358 Contoh use case

agent-view.md +83 −67

Details

260 260 

261Menekan `←` membuat baris sesi bahkan ketika percakapan belum memiliki pesan, jadi `→` masih kembali ke sana.261Menekan `←` membuat baris sesi bahkan ketika percakapan belum memiliki pesan, jadi `→` masih kembali ke sana.

262 262 

263Anda dapat mematikan pintasan ini dengan pengaturan `leftArrowOpensAgents` di `/config`.263Anda dapat mematikan pintasan ini dengan pengaturan [`leftArrowOpensAgents`](/docs/id/settings-reference#leftarrowopensagents) di `/config`.

264 264 

265<h3 id="organize-the-list">265<h3 id="organize-the-list">

266 Atur daftar266 Atur daftar


340 Dispatch new agents340 Dispatch new agents

341</h2>341</h2>

342 342 

343You can dispatch new background sessions from agent view, send or copy an existing interactive session to the background, or start one directly from the shell.343Anda dapat mengirim sesi latar belakang baru dari agent view, mengirim atau menyalin sesi interaktif yang ada ke latar belakang, atau memulai satu langsung dari shell.

344 344 

345<h3 id="from-agent-view">345<h3 id="from-agent-view">

346 From agent view346 From agent view

347</h3>347</h3>

348 348 

349Type a prompt in the input at the bottom of agent view and press `Enter` to start a new background session. The session is named automatically from the prompt; rename it later with `Ctrl+R`.349Ketik prompt dalam input di bagian bawah agent view dan tekan `Enter` untuk memulai sesi latar belakang baru. Sesi diberi nama secara otomatis dari prompt; ubah nama nanti dengan `Ctrl+R`.

350 350 

351Nama otomatis adalah label pendek yang ditulis oleh [model kelas Haiku](/docs/id/model-config). Nama yang diterima sesi nanti juga muncul di barisnya, termasuk [judul yang dihasilkan](/docs/id/sessions#name-your-sessions) yang diterima sesi ketika Anda [menerima rencana](/docs/id/permission-modes#review-and-approve-a-plan) dalam sesi itu.351Nama otomatis adalah label pendek yang ditulis oleh [model kelas Haiku](/docs/id/model-config). Nama yang diterima sesi nanti juga muncul di barisnya, termasuk [judul yang dihasilkan](/docs/id/sessions#name-your-sessions) yang diterima sesi ketika Anda [menerima rencana](/docs/id/permission-modes#review-and-approve-a-plan) dalam sesi itu.

352 352 


454 454 

455* `--mcp-config` dan `--strict-mcp-config`455* `--mcp-config` dan `--strict-mcp-config`

456* `--settings`456* `--settings`

457* `--setting-sources`

457* `--add-dir`458* `--add-dir`

458* `--plugin-dir`459* `--plugin-dir`

459* `--fallback-model`460* `--fallback-model`


473 474 

474Prompt adalah argumen posisional, bukan nilai `-p`. Claude Code menolak `--bg` dikombinasikan dengan `-p` atau `--print` sebelum sesi apa pun dibuat, karena `--print` tidak pernah memulai sesi interaktif yang `claude agents` lampirkan.475Prompt adalah argumen posisional, bukan nilai `-p`. Claude Code menolak `--bg` dikombinasikan dengan `-p` atau `--print` sebelum sesi apa pun dibuat, karena `--print` tidak pernah memulai sesi interaktif yang `claude agents` lampirkan.

475 476 

477Jika Anda menjalankan `claude --bg` dari terminal di direktori yang belum Anda [percayai](/docs/id/permissions#project-allow-rules-and-workspace-trust), dialog kepercayaan ruang kerja muncul terlebih dahulu dan sesi dimulai setelah Anda menerima. Jika Anda menolak, Claude Code keluar tanpa memulai sesi. Di mana tidak ada dialog yang dapat muncul, seperti dalam skrip, perintah keluar dengan kesalahan [`Workspace not trusted`](/docs/id/errors#workspace-not-trusted-when-dispatching-a-background-session) sebagai gantinya.

478 

476Untuk menjalankan [subagent](/docs/id/sub-agents) spesifik yang telah Anda tentukan, seperti `code-reviewer`, sebagai agen utama sesi, gabungkan `--bg` dengan `--agent`:479Untuk menjalankan [subagent](/docs/id/sub-agents) spesifik yang telah Anda tentukan, seperti `code-reviewer`, sebagai agen utama sesi, gabungkan `--bg` dengan `--agent`:

477 480 

478```bash theme={null}481```bash theme={null}


593* Worktree yang git tidak lagi kenali, misalnya setelah `git worktree prune`, tidak memblokir penghapusan. Claude Code menghapus sesi dan meninggalkan direktori di disk.596* Worktree yang git tidak lagi kenali, misalnya setelah `git worktree prune`, tidak memblokir penghapusan. Claude Code menghapus sesi dan meninggalkan direktori di disk.

594* Ketika git atau [`WorktreeRemove` hook](/docs/id/hooks#worktreeremove) Anda gagal menghapus worktree, Claude Code menyimpan worktree dan sesi, dan pesan menyebutkan penyebabnya. Untuk hook, pesan mengatakan bagaimana itu berakhir, seperti `exited 1`, dan mengutip awal stderr-nya. Pesan juga memberitahu Anda mana dari ini yang harus dilakukan selanjutnya:597* Ketika git atau [`WorktreeRemove` hook](/docs/id/hooks#worktreeremove) Anda gagal menghapus worktree, Claude Code menyimpan worktree dan sesi, dan pesan menyebutkan penyebabnya. Untuk hook, pesan mengatakan bagaimana itu berakhir, seperti `exited 1`, dan mengutip awal stderr-nya. Pesan juga memberitahu Anda mana dari ini yang harus dilakukan selanjutnya:

595 598 

596 * Hapus sesi lagi untuk menghapus direktori bagaimanapun, dengan menekan `Ctrl+X` dua kali pada barisnya di agent view atau menjalankan perintah `claude rm <id> --force-remove-worktree <worktree-id>` yang ditolak cetak. Claude Code menawarkan ini hanya ketika dapat mengonfirmasi direktori adalah salah satu worktrees tertaut repositori di bawah `.claude/worktrees/` tanpa perubahan yang tidak di-commit ke file yang dilacak, tidak ada repositori bersarang di dalamnya, dan tidak ada catatan sesi lain yang menyebutkannya. Cabang worktree tetap dalam repositori.599 * Hapus sesi lagi untuk menghapus direktori bagaimanapun, dengan menekan `Ctrl+X` dua kali pada barisnya di agent view atau menjalankan perintah `claude rm <id> --force-remove-worktree <worktree-id>` yang ditolak cetak. Cabang worktree tetap dalam repositori.

597 * Perbaiki apa yang menghalangi, seperti committing atau stashing perubahan yang tidak di-commit, menutup apa pun yang menggunakan direktori, atau memperbaiki hook, kemudian hapus sesi lagi.600 

601 Claude Code menawarkan ini hanya ketika dapat mengonfirmasi semua hal berikut:

602 

603 * Direktori adalah salah satu worktrees tertaut repositori di bawah `.claude/worktrees/`

604 * Baik worktree maupun submodule yang diperiksa tidak memiliki perubahan yang tidak di-commit ke file yang dilacak

605 * Tidak ada catatan sesi lain yang menyebutkannya

606 

607 Ketika Claude Code tidak dapat memverifikasi status checkout submodule, seperti yang diganti oleh repositori git terpisah, itu tidak menawarkan ini juga.

608 * Perbaiki apa yang menghalangi, seperti committing atau stashing perubahan yang tidak di-commit, memindahkan repositori git terpisah keluar dari worktree, menutup apa pun yang menggunakan direktori, atau memperbaiki hook, kemudian hapus sesi lagi.

598 * Hapus direktori sendiri, kemudian hapus sesi lagi.609 * Hapus direktori sendiri, kemudian hapus sesi lagi.

599 610 

600Worktree yang Anda buat sendiri dan mulai sesi di dalamnya ditinggalkan di tempat bagaimanapun.611Worktree yang Anda buat sendiri dan mulai sesi di dalamnya ditinggalkan di tempat bagaimanapun.


639 Settings and provider650 Settings and provider

640</h4>651</h4>

641 652 

642Sesi latar belakang membaca [pengaturan](/docs/id/settings) dari direktori tempat ia berjalan, sama seperti jika Anda telah memulai `claude` di sana. Ini termasuk nilai [`env`](/docs/id/settings-reference#env) dalam pengaturan proyek, jadi `ANTHROPIC_MODEL` atau variabel penyedia yang ditetapkan di sana berlaku untuk setiap sesi latar belakang di direktori itu.653Sesi latar belakang membaca [pengaturan](/docs/id/settings) dari direktori tempat ia berjalan, sama seperti jika Anda telah memulai `claude` di sana dengan [bendera konfigurasi yang dibawanya](#what-carries-over-when-you-background). Ini termasuk nilai [`env`](/docs/id/settings-reference#env) dalam pengaturan proyek, jadi `ANTHROPIC_MODEL` atau variabel penyedia yang ditetapkan di sana berlaku untuk setiap sesi latar belakang di direktori itu.

643 654 

644Sesi latar belakang juga berjalan dengan `PATH` dari shell tempat Anda mengirimnya, jadi perintah yang dijalankannya menemukan alat yang sama yang ditemukan terminal Anda. Ia menyimpan pilihan penyedia cloud shell itu juga, seperti `CLAUDE_CODE_USE_BEDROCK` atau `CLAUDE_CODE_USE_VERTEX`, bersama dengan alias `ANTHROPIC_DEFAULT_*_MODEL` dan penggantian [`CLAUDE_CODE_EXTRA_BODY`](/docs/id/env-vars) apa pun yang Anda ekspor di sana.655Sesi latar belakang juga berjalan dengan `PATH` dari shell tempat Anda mengirimnya, jadi perintah yang dijalankannya menemukan alat yang sama yang ditemukan terminal Anda. Ia menyimpan pilihan penyedia cloud shell itu juga, seperti `CLAUDE_CODE_USE_BEDROCK` atau `CLAUDE_CODE_USE_VERTEX`, bersama dengan alias `ANTHROPIC_DEFAULT_*_MODEL` dan penggantian [`CLAUDE_CODE_EXTRA_BODY`](/docs/id/env-vars) apa pun yang Anda ekspor di sana.

645 656 


718 Settings, plugins, and MCP servers729 Settings, plugins, and MCP servers

719</h3>730</h3>

720 731 

721Agent view menerima bendera konfigurasi yang sama seperti `claude` untuk memuat pengaturan, plugin, server MCP, dan direktori tambahan. Agent view menerapkan `--settings` dan `--plugin-dir` ke dirinya sendiri dan melewatkan setiap bendera konfigurasi ke sesi yang Anda kirim darinya, jadi plugin atau server MCP yang Anda muat dengan cara ini tersedia dalam sesi itu.732Agent view menerima bendera konfigurasi yang sama seperti `claude` untuk memuat pengaturan, plugin, server MCP, dan direktori tambahan. Agent view menerapkan `--settings`, `--setting-sources`, dan `--plugin-dir` ke dirinya sendiri dan melewatkan setiap bendera konfigurasi ke sesi yang Anda kirim darinya, jadi plugin atau server MCP yang Anda muat dengan cara ini tersedia dalam sesi itu.

722 733 

723| Bendera | Efek |734| Bendera | Efek |

724| :- | :- |735| :- | :- |

725| [`--settings <file-or-json>`](/docs/id/settings) | Pengaturan penggantian untuk agent view dan sesi yang dikirim |736| [`--settings <file-or-json>`](/docs/id/settings) | Pengaturan penggantian untuk agent view dan sesi yang dikirim |

737| [`--setting-sources <sources>`](/docs/id/cli-reference#cli-flags) | Muat hanya sumber pengaturan yang dinamai, di agent view dan sesi yang dikirim |

726| [`--add-dir <path>`](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) | Berikan akses file ke direktori tambahan |738| [`--add-dir <path>`](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) | Berikan akses file ke direktori tambahan |

727| [`--plugin-dir <path>`](/docs/id/plugins/create#load-a-directory-or-archive-for-one-session) | Muat plugin dari direktori lokal |739| [`--plugin-dir <path>`](/docs/id/plugins/create#load-a-directory-or-archive-for-one-session) | Muat plugin dari direktori lokal |

728| [`--mcp-config <file-or-json>`](/docs/id/mcp) | Muat server MCP dari file konfigurasi atau string JSON |740| [`--mcp-config <file-or-json>`](/docs/id/mcp) | Muat server MCP dari file konfigurasi atau string JSON |


730 742 

731Ulangi `--add-dir`, `--plugin-dir`, atau `--mcp-config` sekali per nilai. `claude agents` tidak mendukung bentuk yang dipisahkan spasi, seperti `--add-dir a b c`.743Ulangi `--add-dir`, `--plugin-dir`, atau `--mcp-config` sekali per nilai. `claude agents` tidak mendukung bentuk yang dipisahkan spasi, seperti `--add-dir a b c`.

732 744 

733Anda dapat menempatkan `--settings` dan `--plugin-dir` sebelum atau sesudah `agents`. Simpan `--add-dir` dan `--mcp-config` setelah `agents`: jika Anda menempatkan salah satu sebelum `agents`, [`claude agents --json`](#manage-sessions-from-the-shell) gagal dengan kesalahan `unknown option`.745Anda dapat menempatkan `--settings`, `--setting-sources`, dan `--plugin-dir` sebelum atau sesudah `agents`. Simpan `--add-dir` dan `--mcp-config` setelah `agents`: jika Anda menempatkan salah satu sebelum `agents`, [`claude agents --json`](#manage-sessions-from-the-shell) gagal dengan kesalahan `unknown option`.

734 746 

735Contoh berikut membuka agent view dengan penggantian pengaturan dan satu direktori tambahan:747Contoh berikut membuka agent view dengan penggantian pengaturan dan satu direktori tambahan:

736 748 


1044 Riwayat versi1056 Riwayat versi

1045</h2>1057</h2>

1046 1058 

1047Tampilan agen telah berkembang dengan cepat selama pratinjau penelitian. Jika Anda berada di versi Claude Code yang lebih lama, beberapa perilaku di halaman ini mungkin berbeda; khususnya, `claude agents` menolak bendera yang belum didukungnya dengan kesalahan `unknown option`. Tabel di bawah mencantumkan kapan setiap bendera dan perilaku ditambahkan.1059Agent view telah berkembang pesat selama pratinjau penelitian. Jika Anda menggunakan versi Claude Code yang lebih lama, beberapa perilaku di halaman ini mungkin berbeda; khususnya, `claude agents` menolak flag yang belum didukungnya dengan kesalahan `unknown option`. Tabel di bawah mencantumkan kapan setiap flag dan perilaku ditambahkan.

1048 1060 

1049| Versi | Perubahan |1061| Versi | Perubahan |

1050| - | - |1062| - | - |

1051| v2.1.268 | Ketika [penghapusan ditolak](#what-deleting-a-session-removes) karena git atau hook `WorktreeRemove` Anda tidak dapat menghapus worktree, pesan menyebutkan penyebabnya, termasuk bagaimana hook berakhir dan awal stderr-nya. Untuk worktree yang ditautkan di bawah `.claude/worktrees/` repositori dengan tidak ada perubahan yang tidak dilakukan commit pada file yang dilacak, tidak ada repositori bersarang di dalamnya, dan tidak ada catatan sesi lain yang menyebutnya, menghapus sesi lagi menghapus direktori bagaimanapun, dari tampilan agen atau dengan `claude rm <id> --force-remove-worktree <worktree-id>`. Sebelum rilis ini, baris hanya menampilkan `worktree could not be removed (WorktreeRemove hook failed)` atau kesalahan git, stderr hook hanya pergi ke log debug, dan menghapus lagi ditolak dengan cara yang sama. |1063| v2.1.281 | Pembatasan [`--setting-sources`](/docs/id/cli-reference#cli-flags) [terbawa](/docs/id/agent-view#what-carries-over-when-you-background) ke sesi yang Anda pindahkan ke latar belakang dengan `←` atau `/bg` dan ke sesi yang Anda dispatch dari agent view. Sebelum rilis ini, sesi yang dihasilkan memuat setiap sumber pengaturan. |

1052| v2.1.268 | Setelah `←` pertama menampilkan `Press ← again to open agents`, atau `Press ← again to go back to agents` dalam sesi yang dilampirkan, [tekan pertama yang datang setidaknya satu detik kemudian beralih](#switch-sessions-without-leaving-the-terminal), bahkan ketika tekan yang lebih cepat di antaranya diabaikan. Sebelum rilis ini, setiap tekan yang diabaikan memulai ulang penantian, jadi menekan `←` lagi dengan kecepatan yang stabil tidak beralih sampai Anda berhenti selama lebih dari satu detik. |1064| v2.1.281 | `claude --bg`, dan perintah yang memulai ulang sesi, memeriksa kepercayaan ruang kerja untuk direktori sesi terlebih dahulu. Dari terminal di direktori itu, [dialog kepercayaan muncul](#from-your-shell) jika Anda belum menerimanya; di mana tidak ada dialog yang dapat muncul, seperti dalam skrip, perintah keluar dengan kesalahan [`Workspace not trusted`](/docs/id/errors#workspace-not-trusted-when-dispatching-a-background-session). |

1053| v2.1.260 | Ketika Anda [melepaskan sesi](#from-inside-a-session), [daftar agen](/docs/id/cross-session-messaging#see-which-sessions-claude-can-reach) sesi lain Anda menampilkan percakapan sekali, sebagai sesi latar belakangnya, dan pesan mereka kepadanya tidak lagi mencapai terminal tempat Anda memindahkannya. Sebelum rilis ini, terminal itu bisa tetap terdaftar sebagai sesi interaktif kedua di bawah nama percakapan, dan sesi yang telah mengirim pesan ke percakapan sebelum perpindahan terus mengirimkan ke terminal itu. |1065| v2.1.274 | Setelah pembaruan otomatis, agent view yang Anda tinggalkan selama sekitar satu jam dapat meluncurkan ulang dirinya ke build baru. Ketika melakukannya, ia menyimpan [default dispatch](#dispatch-defaults) yang Anda buka dengannya: `--model`, `--effort`, `--permission-mode`, `--allow-dangerously-skip-permissions`, dan `--agent`. Sebelum rilis ini, tampilan yang diluncurkan ulang hanya menyimpan `--cwd` dan flag konfigurasi seperti `--settings` dan `--mcp-config`, jadi sesi yang Anda dispatch setelahnya dimulai tanpa default tersebut. |

1054| v2.1.260 | Ketika [penghapusan ditolak atas commit yang tidak didorong](#what-deleting-a-session-removes), pesan menyebutkan cabang worktree dan berapa banyak commit yang tidak didorong, dan menghapus sesi lagi membuang worktree dan commitnya. Sebelum rilis ini, penolakan hanya mengatakan `worktree has commits that are not pushed anywhere`, menghapus lagi ditolak dengan cara yang sama, dan menghapus sesi memerlukan mendorong commit atau menghapus worktree dengan tangan. |1066| v2.1.274 | Ketika [penghapusan ditolak](#what-deleting-a-session-removes) karena git atau hook `WorktreeRemove` Anda tidak dapat menghapus worktree, submodul yang diperiksa yang Claude Code verifikasi tidak memiliki perubahan yang tidak dikomit pada file yang dilacak tidak memblokir penawaran untuk menghapus lagi dan menghapus direktori bagaimanapun. Pekerjaan yang tidak dikomit di dalam submodul yang diperiksa dihitung sebagai perubahan yang tidak dikomit, dan pesan menyebutkan submodul. Sebelum rilis ini, checkout submodul apa pun di worktree memblokir penawaran, dengan pesan mengatakan worktree berisi repositori bersarang. |

1055| v2.1.257 | `←` [melepaskan dari sesi yang dilampirkan sementara overlay `/btw` terbuka](#attach-to-a-session), bahkan di tengah jawaban, dan overlay membuka kembali ketika Anda melampirkan lagi. Sebelum rilis ini, `←` tidak melepaskan sementara overlay terbuka. |1067| v2.1.268 | Ketika [penghapusan ditolak](#what-deleting-a-session-removes) karena git atau hook `WorktreeRemove` Anda tidak dapat menghapus worktree, pesan menyebutkan penyebabnya, termasuk bagaimana hook berakhir dan awal stderr-nya. Untuk worktree git yang ditautkan di bawah `.claude/worktrees/` repositori tanpa perubahan yang tidak dikomit pada file yang dilacak, tidak ada repositori bersarang di dalamnya, dan tidak ada catatan sesi lain yang menyebutkannya, menghapus sesi lagi menghapus direktori bagaimanapun, dari agent view atau dengan `claude rm <id> --force-remove-worktree <worktree-id>`. Sebelum rilis ini, baris hanya menampilkan `worktree could not be removed (WorktreeRemove hook failed)` atau kesalahan git, stderr hook hanya masuk ke log debug, dan menghapus lagi ditolak dengan cara yang sama. |

1056| v2.1.257 | Ketika Anda menjalankan [`claude --resume <session-id> --bg`](#from-your-shell), Claude Code melanjutkan sesi itu di bawah ID-nya sendiri, atau memulai salinan di bawah ID baru dan mencetak baris `note:` yang menjelaskan alasannya. `--continue`, `--resume` telanjang, dan `--resume` dengan nama atau jalur memulai salinan dengan catatan yang sama. Sebelum rilis ini, `--resume` dengan `--bg` selalu memulai salinan di bawah ID baru dan tidak mengatakan apa-apa. |1068| v2.1.268 | Setelah `←` pertama menampilkan `Press ← again to open agents`, atau `Press ← again to go back to agents` dalam sesi yang terpasang, [tekan pertama yang datang setidaknya satu detik kemudian beralih](#switch-sessions-without-leaving-the-terminal), bahkan ketika tekan yang lebih cepat di antaranya diabaikan. Sebelum rilis ini, setiap tekan yang diabaikan memulai ulang penantian, jadi menekan `←` lagi dengan kecepatan yang stabil tidak beralih sampai Anda berhenti selama lebih dari satu detik. |

1057| v2.1.257 | Ketika Anda mengirim sesi dari tampilan agen yang Anda buka dengan `←`, Claude Code memulainya dalam [mode izin yang dikonfigurasi direktori target](#permission-mode) melalui `permissions.defaultMode`. Ketika direktori tidak menetapkan satu, mode izin sesi yang Anda datang darinya berlaku. Sebelum rilis ini, sesi yang dikirim selalu dimulai dalam mode izin sesi yang Anda datang darinya, menimpanya. |1069| v2.1.260 | Ketika Anda [memindahkan sesi ke latar belakang](#from-inside-a-session), [daftar agent](/docs/id/cross-session-messaging#see-which-sessions-claude-can-reach) sesi lain Anda menampilkan percakapan sekali, sebagai sesi latar belakangnya, dan pesan mereka kepadanya tidak lagi mencapai terminal yang Anda pindahkan. Sebelum rilis ini, terminal itu bisa tetap terdaftar sebagai sesi interaktif kedua di bawah nama percakapan, dan sesi yang telah mengirim pesan ke percakapan sebelum perpindahan terus mengirimkan ke terminal itu. |

1058| v2.1.257 | `Ctrl+S`, `Ctrl+T`, dan `Ctrl+G` dalam tampilan agen [mengikuti `keybindings.json` Anda](#keyboard-shortcuts): `Ctrl+S` dan `Ctrl+T` melalui tindakan `agents:switchView` dan `agents:togglePin` konteks `Agents`, dan `Ctrl+G` melalui pengikatan `chat:externalEditor` konteks `Chat`. Sebelum rilis ini, tampilan agen mengabaikan `keybindings.json` dan kunci ini diperbaiki. |1070| v2.1.260 | Ketika [penghapusan ditolak atas komit yang tidak didorong](#what-deleting-a-session-removes), pesan menyebutkan cabang worktree dan berapa banyak komit yang tidak didorong, dan menghapus sesi lagi membuang worktree dan komitnya. Sebelum rilis ini, penolakan hanya mengatakan `worktree has commits that are not pushed anywhere`, menghapus lagi ditolak dengan cara yang sama, dan menghapus sesi memerlukan mendorong komit atau menghapus worktree dengan tangan. |

1059| v2.1.257 | Memulai [layanan latar belakang](#the-supervisor-process) pulih dari dua penyebab kegagalan. Pada instalasi npm macOS, awal selama pembaruan diri [menunggu instalasi](/docs/id/errors#eacces-when-starting-a-background-session) alih-alih menjalankan placeholder yang npm letakkan saat mengganti biner. Di Windows, `daemon.lock` yang sudah usang ditulis sebelum mesin terakhir boot, atau yang ID proses yang dicatat sekarang milik proses yang berbeda, diganti. Sebelum rilis ini, awal macOS gagal dengan `Error: claude native binary not installed.` selama jendela instalasi, dan kunci Windows membuat setiap awal gagal dengan [`exited before it became reachable`](/docs/id/errors#background-service-exited-before-it-became-reachable) sampai Anda menghapus `~/.claude/daemon.lock`. |1071| v2.1.257 | `←` [melepaskan dari sesi yang terpasang sementara overlay `/btw` terbuka](#attach-to-a-session), bahkan di tengah jawaban, dan overlay dibuka kembali ketika Anda melampirkan berikutnya. Sebelum rilis ini, `←` tidak melepaskan sementara overlay terbuka. |

1060| v2.1.257 | Ketika Anda membuka atau mengirim sesi latar belakang sementara proses Claude Code lain mengunduh pembaruan npm, Claude Code [terus menunggu hingga dua menit](/docs/id/errors#eacces-when-starting-a-background-session) sementara instalasi berjalan, kemudian gagal mengatakan `Claude Code is being updated by npm on this machine`. Sebelum rilis ini, penantian berhenti pada sepuluh detik, jadi pembukaan gagal dengan `Couldn't start the background service` sementara unduhan masih berjalan. |1072| v2.1.257 | Ketika Anda menjalankan [`claude --resume <session-id> --bg`](#from-your-shell), Claude Code melanjutkan sesi itu di bawah ID-nya sendiri, atau memulai salinan di bawah ID baru dan mencetak baris `note:` yang menjelaskan mengapa. `--continue`, `--resume` yang kosong, dan `--resume` dengan nama atau path memulai salinan dengan catatan yang sama. Sebelum rilis ini, `--resume` dengan `--bg` selalu memulai salinan di bawah ID baru dan tidak mengatakan apa-apa. |

1061| v2.1.257 | Sesi latar belakang yang memegang [pesan lintas sesi](/docs/id/cross-session-messaging#control-inbound-messages) untuk persetujuan Anda menampilkan `approve message from` pada barisnya `Needs input`, dengan alamat pengirim dan nama yang diklaim pengirim. Sebelum rilis ini, baris pindah ke `Needs input` tetapi menyimpan teks sebelumnya, jadi tidak ada dalam `claude agents` yang menyebutkan pesan yang menunggu atau pengirimnya. |1073| v2.1.257 | Ketika Anda dispatch sesi dari agent view yang Anda buka dengan `←`, Claude Code memulainya dalam [mode izin yang dikonfigurasi direktori target](#permission-mode) melalui `permissions.defaultMode`. Ketika direktori tidak menetapkan satu, mode izin sesi yang Anda datangi berlaku. Sebelum rilis ini, sesi yang didispatch selalu dimulai dalam mode izin sesi yang Anda datangi, menimpanya. |

1062| v2.1.257 | Prompt yang disimpan dengan `Ctrl+S` di dalam sesi latar belakang yang dibuka [disimpan dengan sesi](#what-persists-across-restarts), jadi `Ctrl+S` memulihkannya setelah proses sesi dihentikan dan dimulai lagi. Sebelum rilis ini, simpanan hanya hidup dalam proses yang berjalan dan hilang ketika sesi menjadi idle cukup lama untuk prosesnya berhenti, atau ketika dihentikan dan kemudian dibuka kembali. |1074| v2.1.257 | `Ctrl+S`, `Ctrl+T`, dan `Ctrl+G` dalam agent view [mengikuti `keybindings.json`](#keyboard-shortcuts) Anda: `Ctrl+S` dan `Ctrl+T` melalui tindakan `agents:switchView` dan `agents:togglePin` konteks `Agents`, dan `Ctrl+G` melalui pengikatan `chat:externalEditor` konteks `Chat`. Sebelum rilis ini, agent view mengabaikan `keybindings.json` dan kunci ini diperbaiki. |

1063| v2.1.251 | Dalam sesi latar belakang yang belum [pindah ke worktree](#how-file-edits-are-isolated), Claude dan subagen yang dipawnnya dapat mengedit file di dalam worktree git yang ditautkan. |1075| v2.1.257 | Memulai [layanan latar belakang](#the-supervisor-process) pulih dari dua penyebab kegagalan. Pada instalasi npm macOS, awal selama pembaruan diri [menunggu instalasi](/docs/id/errors#eacces-when-starting-a-background-session) alih-alih menjalankan placeholder yang npm letakkan saat mengganti biner. Di Windows, `daemon.lock` yang sudah usang ditulis sebelum mesin terakhir boot, atau yang ID proses yang dicatat sekarang milik proses berbeda, diganti. Sebelum rilis ini, awal macOS gagal dengan `Error: claude native binary not installed.` selama jendela instalasi, dan kunci Windows membuat setiap awal gagal dengan [`exited before it became reachable`](/docs/id/errors#background-service-exited-before-it-became-reachable) sampai Anda menghapus `~/.claude/daemon.lock`. |

1064| v2.1.251 | Claude Code meneruskan gateway penyedia cloud yang diekspor dalam shell tempat Anda mengirim, seperti `ANTHROPIC_VERTEX_BASE_URL` atau `ANTHROPIC_BEDROCK_BASE_URL` dengan bendera bypass autnya, ke [worker sesi](#llm-gateway) di bawah kondisi yang sama dengan `ANTHROPIC_BASE_URL`. Sebelum rilis ini, jika Anda melepaskan atau mengirim dari shell yang hanya diautentikasi melalui gateway seperti itu, setiap permintaan yang dibuat sesi gagal, karena titik akhir dan bendera dijatuhkan dari lingkungannya. |1076| v2.1.257 | Ketika Anda membuka atau dispatch sesi latar belakang sementara proses Claude Code lain mengunduh pembaruan npm, Claude Code [terus menunggu hingga dua menit](/docs/id/errors#eacces-when-starting-a-background-session) sementara instalasi berjalan, kemudian gagal mengatakan `Claude Code is being updated by npm on this machine`. Sebelum rilis ini, penantian berhenti pada sepuluh detik, jadi pembukaan gagal dengan `Couldn't start the background service` sementara unduhan masih berjalan. |

1065| v2.1.251 | Ketika sesi latar belakang dimulai sementara proses Claude Code lain sedang menyegarkan [marketplace plugin](/docs/id/plugins/overview), seperti sesi saudara yang menjalankan [pembaruan otomatis marketplace](/docs/id/plugins/install#keep-plugins-updated), Claude Code menjaga plugin marketplace tersebut tetap tersedia. Sebelum rilis ini, sesi seperti itu bisa dimulai tanpa skill, agen, hook, dan server MCP marketplace apa pun dan tetap seperti itu selama seluruh jalannya. |1077| v2.1.257 | Sesi latar belakang yang menyimpan [pesan lintas sesi](/docs/id/cross-session-messaging#control-inbound-messages) untuk persetujuan Anda menampilkan `approve message from` pada baris `Needs input`-nya, dengan alamat pengirim dan nama yang diklaim pengirim. Sebelum rilis ini, baris pindah ke `Needs input` tetapi menyimpan teks sebelumnya, jadi tidak ada dalam `claude agents` yang menyebutkan pesan menunggu atau pengirimnya. |

1066| v2.1.248 | `Shift+Enter` dalam [input pengiriman](#keyboard-shortcuts) menyisipkan baris baru, sesuai dengan prompt utama, dan `Ctrl+Enter` mengirim dan melampirkan segera di terminal tempat overlay `?` mencantumkan `ctrl+enter to start and open`. Sebelum rilis ini, `Shift+Enter` mengirim dan melampirkan. |1078| v2.1.257 | Prompt yang disimpan dengan `Ctrl+S` di dalam sesi latar belakang yang dibuka [disimpan dengan sesi](#what-persists-across-restarts), jadi `Ctrl+S` memulihkannya setelah proses sesi dihentikan dan dimulai lagi. Sebelum rilis ini, simpanan hanya hidup dalam proses yang berjalan dan hilang ketika sesi menjadi idle cukup lama untuk proses berhenti, atau ketika dihentikan dan kemudian dibuka kembali. |

1067| v2.1.248 | [Menghapus sesi](#what-deleting-a-session-removes) berhasil ketika commit worktree sudah ada di salinan lokal cabang default remote `origin` Anda dan checkout utama Anda memiliki cabang itu yang diperiksa; sebelum rilis ini, penghapusan ditolak dengan `has commits that are not pushed anywhere`. |1079| v2.1.251 | Dalam sesi latar belakang yang belum [pindah ke worktree](#how-file-edits-are-isolated), Claude dan subagent yang dihasilkannya dapat mengedit file di dalam worktree git yang ditautkan. |

1068| v2.1.248 | Sesi yang dilepaskan dengan `←` atau `/background` memegang [`git worktree lock`](/docs/id/worktrees#clean-up-subagent-and-background-session-worktrees) pada worktree-nya saat berjalan; sebelum rilis ini, melepaskan melepaskan kunci, dan pembersihan atau `git worktree remove` bisa menghapus worktree di bawah sesi yang sedang berjalan. |1080| v2.1.251 | Claude Code meneruskan gateway penyedia cloud yang diekspor dalam shell tempat Anda dispatch, seperti `ANTHROPIC_VERTEX_BASE_URL` atau `ANTHROPIC_BEDROCK_BASE_URL` dengan flag bypass autentikasi, ke [worker sesi](#llm-gateway) di bawah kondisi yang sama dengan `ANTHROPIC_BASE_URL`. Sebelum rilis ini, jika Anda memindahkan ke latar belakang atau dispatch dari shell yang diautentikasi hanya melalui gateway seperti itu, setiap permintaan yang dibuat sesi gagal, karena endpoint dan flag dijatuhkan dari lingkungannya. |

1069| v2.1.248 | Sesi latar belakang yang tidak menunggu input Anda dan ditemukan mati lebih dari 48 jam setelah aktivitas terakhirnya, seperti setelah mesin mati selama berhari-hari, [menampilkan sebagai berhenti](#sessions-show-as-failed-after-shutdown) dengan `ended while the background service was off`, dan `Enter` padanya bertanya sebelum melanjutkan percakapan yang disimpannya. Sebelum rilis ini, sesi seperti itu muncul kembali sebagai kegagalan segar yang diurutkan ke atas daftar, dan satu `Enter` menarik percakapan berusia berminggu-minggu ke latar depan. |1081| v2.1.251 | Ketika sesi latar belakang dimulai sementara proses Claude Code lain menyegarkan [marketplace plugin](/docs/id/plugins/overview), seperti sesi saudara yang menjalankan [pembaruan otomatis marketplace](/docs/id/plugins/install#keep-plugins-updated), Claude Code menjaga plugin marketplace itu tetap tersedia. Sebelum rilis ini, sesi seperti itu bisa dimulai tanpa skill, agent, hook, dan server MCP marketplace itu dan tetap seperti itu untuk seluruh jalannya. |

1070| v2.1.248 | Membuka baris yang dihentikan yang percakapannya [Anda lanjutkan di terminal lain](#opening-a-session-says-the-conversation-is-already-open) ditolak dengan `Can't open — this session is running in another terminal`, dan baris menampilkan `Open in a terminal` alih-alih menampilkan di bawah `Working`. Sebelum rilis ini, membuka baris memulai proses kedua yang menulis ke percakapan yang sama. |1082| v2.1.248 | `Shift+Enter` dalam [input dispatch](#keyboard-shortcuts) menyisipkan baris baru, cocok dengan prompt utama, dan `Ctrl+Enter` dispatch dan melampirkan segera di terminal tempat overlay `?` mencantumkan `ctrl+enter to start and open`. Sebelum rilis ini, `Shift+Enter` dispatch dan melampirkan. |

1071| v2.1.248 | Sesi latar belakang yang menunggu keputusan izin sementara hook `PermissionRequest` atau `PreToolUse` mencetak jawaban yang tidak valid [menyebutkan acara hook dan kesalahan skema pada barisnya](#peek-and-reply). Sebelum rilis ini, baris hanya menampilkan permintaan yang tertunda. |1083| v2.1.248 | [Menghapus sesi](#what-deleting-a-session-removes) berhasil ketika komit worktree sudah ada di salinan lokal cabang default remote `origin` Anda dan checkout utama Anda memiliki cabang itu diperiksa; sebelum rilis ini, penghapusan ditolak dengan `has commits that are not pushed anywhere`. |

1072| v2.1.248 | Di Windows, `claude agents` merespons keyboard ketika diluncurkan di tab terminal yang program sebelumnya tinggalkan dalam mode win32-input. Sebelum rilis ini, Claude Code tidak mendekode catatan kunci yang dikirim tab seperti itu. |1084| v2.1.248 | Sesi yang dipindahkan ke latar belakang dengan `←` atau `/background` menyimpan [`git worktree lock`](/docs/id/worktrees#clean-up-subagent-and-background-session-worktrees) pada worktreenya sementara berjalan; sebelum rilis ini, memindahkan ke latar belakang melepaskan kunci, dan pembersihan atau `git worktree remove` bisa menghapus worktree di bawah sesi yang berjalan. |

1073| v2.1.247 | Di Linux dan WSL, sesi [yang proses host terminalnya mati](#the-terminal-host-died-or-the-session-stopped-responding) gagal dalam hitungan detik dengan alasannya. Pembukaan yang tidak menghasilkan output berakhir setelah sekitar sepuluh detik dengan penawaran restart, dan `Enter` pada baris memulai ulang sesi dengan percakapannya; `claude attach <id>` melaporkan penyebabnya dan keluar. Sebelum rilis ini, membuka sesi seperti itu menampilkan `opening… · esc to cancel` tanpa batas dan `claude attach <id>` menunggu tanpa melaporkan kesalahan. |1085| v2.1.248 | Sesi latar belakang yang tidak menunggu input Anda dan ditemukan mati lebih dari 48 jam setelah aktivitas terakhirnya, seperti setelah mesin mati selama berhari-hari, [menampilkan sebagai dihentikan](#sessions-show-as-failed-after-shutdown) dengan `ended while the background service was off`, dan `Enter` padanya menanyakan sebelum melanjutkan percakapan yang disimpannya. Sebelum rilis ini, sesi seperti itu muncul kembali sebagai kegagalan segar yang diurutkan ke atas daftar, dan satu `Enter` menarik percakapan berminggu-minggu lalu ke latar depan. |

1086| v2.1.248 | Membuka baris yang dihentikan yang percakapannya [Anda lanjutkan di terminal lain](#opening-a-session-says-the-conversation-is-already-open) ditolak dengan `Can't open — this session is running in another terminal`, dan baris menampilkan `Open in a terminal` alih-alih menampilkan di bawah `Working`. Sebelum rilis ini, membuka baris memulai proses kedua menulis ke percakapan yang sama. |

1087| v2.1.248 | Sesi latar belakang menunggu keputusan izin sementara hook `PermissionRequest` atau `PreToolUse` mencetak jawaban yang tidak valid [menyebutkan acara hook dan kesalahan skema pada barisnya](#peek-and-reply). Sebelum rilis ini, baris hanya menampilkan permintaan yang tertunda. |

1088| v2.1.248 | Di Windows, `claude agents` merespons keyboard ketika diluncurkan di tab terminal yang program sebelumnya tinggalkan dalam mode input win32. Sebelum rilis ini, Claude Code tidak mendekode catatan kunci yang dikirim tab seperti itu. |

1089| v2.1.247 | Di Linux dan WSL, sesi [yang proses host terminalnya mati](#the-terminal-host-died-or-the-session-stopped-responding) gagal dalam hitungan detik dengan alasannya. Pembukaan yang tidak menghasilkan output berakhir setelah sekitar sepuluh detik dengan penawaran restart, dan `Enter` pada baris memulai ulang sesi dengan percakapannya; `claude attach <id>` melaporkan penyebab dan keluar. Sebelum rilis ini, membuka sesi seperti itu menampilkan `opening… · esc to cancel` tanpa batas dan `claude attach <id>` menunggu tanpa melaporkan kesalahan. |

1074| v2.1.246 | Pada instalasi npm, ketika [layanan latar belakang](#the-supervisor-process) gagal dimulai sementara `npm install -g @anthropic-ai/claude-code` mengganti biner, Claude Code menunggu hingga sepuluh detik agar instalasi selesai dan mencoba lagi sebelum melaporkan [`EACCES: permission denied`](/docs/id/errors#eacces-when-starting-a-background-session). |1090| v2.1.246 | Pada instalasi npm, ketika [layanan latar belakang](#the-supervisor-process) gagal dimulai sementara `npm install -g @anthropic-ai/claude-code` mengganti biner, Claude Code menunggu hingga sepuluh detik agar instalasi selesai dan mencoba lagi sebelum melaporkan [`EACCES: permission denied`](/docs/id/errors#eacces-when-starting-a-background-session). |

1075| v2.1.246 | Ketika proses [layanan latar belakang](#the-supervisor-process) mati setelah mencetak kesalahan, Claude Code melaporkan kegagalan dan [mengutip baris kesalahan pertama layanan](/docs/id/errors#background-service-exited-before-it-became-reachable). |1091| v2.1.246 | Ketika proses [layanan latar belakang](#the-supervisor-process) mati setelah mencetak kesalahan, Claude Code melaporkan kegagalan dan [mengutip baris kesalahan pertama layanan](/docs/id/errors#background-service-exited-before-it-became-reachable). |

1076| v2.1.246 | Jika mesin Anda tidur sementara [layanan latar belakang](#the-supervisor-process) sedang dimulai, Claude Code mencoba lagi sekali alih-alih gagal. |1092| v2.1.246 | Jika mesin Anda tidur sementara [layanan latar belakang](#the-supervisor-process) dimulai, Claude Code mencoba ulang awal sekali alih-alih gagal. |

1077| v2.1.246 | Claude Code menunggu sekitar dua menit alih-alih 45 detik untuk [layanan latar belakang](#the-supervisor-process) yang baru dimulai yang hidup tetapi lambat menerima koneksi. |1093| v2.1.246 | Claude Code menunggu sekitar dua menit alih-alih 45 detik untuk [layanan latar belakang](#the-supervisor-process) yang baru dimulai yang hidup tetapi lambat menerima koneksi. |

1078| v2.1.246 | [Layanan latar belakang](#the-supervisor-process) dimulai dari direktori rumah Anda, jadi di macOS dan Linux direktori awal yang dihapus atau dipindahkan tidak lagi memblokir awal. |1094| v2.1.246 | [Layanan latar belakang](#the-supervisor-process) dimulai dari direktori rumah Anda, jadi di macOS dan Linux direktori awal yang dihapus atau dipindahkan tidak lagi memblokir awal. |

1079| v2.1.246 | `/fork` [menyalin percakapan lengkap](#copy-the-session-with-%2Ffork) dari sesi yang sendiri dimulai sebagai salinan dan belum merekam prompt baru sejak: salinan `/fork` yang Anda lampirkan, sesi yang dilampirkan kembali setelah `←` atau `/background` memindahkannya ke latar belakang, atau sesi yang dimulai dengan `claude --resume <id> --fork-session`. Sebelum rilis ini, jika Anda menjalankan `/fork` dalam sesi seperti itu sebelum mengirimnya prompt baru, Claude Code mencetak konfirmasi normal tetapi memulai salinan dengan percakapan kosong. Memindahkan sesi seperti itu ke latar belakang dengan `←` atau `/background` kehilangan percakapan dengan cara yang sama. |1095| v2.1.246 | `/fork` [menyalin percakapan lengkap](#copy-the-session-with-%2Ffork) dari sesi yang sendiri dimulai sebagai salinan dan belum mencatat prompt baru sejak: salinan `/fork` yang Anda lampirkan, sesi yang dilampirkan kembali setelah `←` atau `/background` memindahkannya ke latar belakang, atau sesi dimulai dengan `claude --resume <id> --fork-session`. Sebelum rilis ini, jika Anda menjalankan `/fork` dalam sesi seperti itu sebelum mengirimnya prompt baru, Claude Code mencetak konfirmasi normal tetapi memulai salinan dengan percakapan kosong. Memindahkan sesi seperti itu ke latar belakang dengan `←` atau `/background` kehilangan percakapan dengan cara yang sama. |

1080| v2.1.246 | Ketika Anda membuka sesi yang baru saja Anda kirim sementara proses worker-nya masih dimulai, seperti dengan menekan `Enter` pada barisnya, Claude Code menunggu proses dan kemudian melampirkan. Sebelum rilis ini, jika Anda menekan `Enter` sementara proses masih dimulai, Claude Code bisa menghentikan sesi dengan [`Session <id> was stopped while the respawn was in flight`](/docs/id/errors#session-was-stopped-while-the-respawn-was-in-flight). |1096| v2.1.246 | Ketika Anda membuka sesi yang baru saja Anda dispatch sementara proses worker masih dimulai, seperti dengan menekan `Enter` pada barisnya, Claude Code menunggu proses dan kemudian melampirkan. Sebelum rilis ini, jika Anda menekan `Enter` sementara proses masih dimulai, Claude Code bisa menghentikan sesi dengan [`Session <id> was stopped while the respawn was in flight`](/docs/id/errors#session-was-stopped-while-the-respawn-was-in-flight). |

1081| v2.1.246 | Ketika Anda [melepaskan](#from-inside-a-session) sesi bernama, Claude Code mencantumkannya sekali, dan ketika Anda melepaskan percakapan yang sama lagi, itu menomori nama baris baru, seperti `my-session (2)`, dengan baris yang ada menyimpan namanya. Sebelum rilis ini, terminal tempat Anda menekan `←` bisa muncul dalam `claude agents --json` sebagai sesi kedua dengan nama yang sama, dan jika Anda melepaskan percakapan yang sama lagi, Claude Code menambahkan baris lain di bawah nama yang identik. |1097| v2.1.246 | Ketika Anda [memindahkan](#from-inside-a-session) sesi bernama ke latar belakang, Claude Code mencantumkannya sekali, dan ketika Anda memindahkan percakapan yang sama ke latar belakang lagi, ia menomori nama baris baru, seperti `my-session (2)`, dengan baris yang ada menyimpan namanya. Sebelum rilis ini, terminal yang Anda tekan `←` bisa muncul dalam `claude agents --json` sebagai sesi kedua di bawah nama yang sama, dan jika Anda memindahkan percakapan yang sama ke latar belakang lagi, Claude Code menambahkan baris lain di bawah nama yang identik. |

1082| v2.1.239 | Dengan [mode editor vim](/docs/id/interactive-mode#vim-editor-mode) aktif, menekan `Esc` dalam input tampilan agen beralih dari mode INSERT ke NORMAL dan menyimpan teks Anda, sesuai dengan prompt utama; dalam mode NORMAL dengan teks masih dalam input, menekan `Esc` menghapusnya, dan menekan `Esc` pada input kosong keluar, seperti yang dijelaskan pintasan [`Esc`](#keyboard-shortcuts). Sebelum rilis ini, `Esc` menghapus input. |1098| v2.1.239 | Dengan [mode editor vim](/docs/id/interactive-mode#vim-editor-mode) aktif, menekan `Esc` dalam input agent view beralih dari mode INSERT ke NORMAL dan menyimpan teks Anda, cocok dengan prompt utama; dalam mode NORMAL dengan teks masih dalam input, menekan `Esc` menghapusnya, dan menekan `Esc` pada input kosong keluar, seperti yang dijelaskan pintasan [`Esc`](#keyboard-shortcuts). Sebelum rilis ini, `Esc` menghapus input. |

1083| v2.1.233 | Untuk sesi yang ditautkan ke permintaan tarik GitLab, Claude Code menulis label baris dalam sintaks referensi `!1234` GitLab. Anda juga dapat menempel URL permintaan tarik ke dalam [input pengiriman](#filter-sessions) untuk memilih sesi itu. Sebelum rilis ini, label dirender sebagai `#1234`, dan URL permintaan tarik yang ditempel cocok dengan sesi hanya ketika prompt pertamanya berisi URL. |1099| v2.1.233 | Untuk sesi yang ditautkan ke permintaan penggabungan GitLab, Claude Code menulis label baris dalam sintaks referensi `!1234` GitLab. Anda juga dapat menempel URL permintaan penggabungan ke dalam [input dispatch](#filter-sessions) untuk memilih sesi itu. Sebelum rilis ini, label dirender sebagai `#1234`, dan URL permintaan penggabungan yang ditempel cocok dengan sesi hanya ketika prompt pertamanya berisi URL. |

1084| v2.1.227 | [Menghapus sesi](#what-deleting-a-session-removes) menyimpan sesi dan worktree-nya sementara sesi Claude Code langsung lain sedang berjalan di dalam direktori worktree itu. Tampilan agen menampilkan `not deleted` pada baris dan alasannya di footer, dan `claude rm` mencetak `kept <id>` dengan alasan, yang menyebutkan ID proses sesi lain. Sebelum rilis ini, menghapus sesi menghapus worktree sementara sesi lain masih bekerja di dalamnya. |1100| v2.1.227 | [Menghapus sesi](#what-deleting-a-session-removes) menyimpan sesi dan worktreenya sementara sesi Claude Code langsung lain berjalan di dalam direktori worktree itu. Agent view menampilkan `not deleted` pada baris dan alasannya di footer, dan `claude rm` mencetak `kept <id>` dengan alasannya, yang menyebutkan ID proses sesi lain. Sebelum rilis ini, menghapus sesi menghapus worktree sementara sesi lain masih bekerja di dalamnya. |

1085| v2.1.225 | `claude agents` dalam direktori yang belum Anda percayai menampilkan [dialog kepercayaan workspace](/docs/id/permissions#project-allow-rules-and-workspace-trust) yang sama yang ditampilkan `claude` saat startup, sebelum tampilan agen terbuka. Menerima menyimpan kepercayaan untuk workspace itu; menolak keluar tanpa membuka tampilan agen. Sebelum rilis ini, `claude agents` terbuka tanpa bertanya, jadi sesi yang Anda kirim darinya berjalan dalam direktori yang tidak pernah Anda diminta untuk percayai.<br /><br />Dengan daftar yang dikelompokkan berdasarkan direktori, mengarahkan mouse ke baris menyorotinya tanpa mengubah [target pengiriman](#dispatch-to-a-specific-directory); memilih baris dengan tombol panah atau klik masih mengubah target. Sebelum rilis ini, menggerakkan mouse ke sesi di proyek lain diam-diam mengubah direktori tempat sesi yang dikirim berikutnya dimulai. |1101| v2.1.225 | `claude agents` dalam direktori yang belum Anda percayai menampilkan [dialog kepercayaan ruang kerja](/docs/id/permissions#project-allow-rules-and-workspace-trust) yang sama yang ditampilkan `claude` saat startup, sebelum agent view terbuka. Menerima menyimpan kepercayaan untuk ruang kerja itu; menolak keluar tanpa membuka agent view. Sebelum rilis ini, `claude agents` terbuka tanpa bertanya, jadi sesi yang Anda dispatch darinya berjalan dalam direktori yang belum pernah Anda diminta untuk percayai.<br /><br />Dengan daftar dikelompokkan berdasarkan direktori, mengarahkan mouse ke baris menyorotinya tanpa mengubah [target dispatch](#dispatch-to-a-specific-directory); memilih baris dengan tombol panah atau klik masih mengubah target. Sebelum rilis ini, menggerakkan mouse ke sesi dalam proyek lain secara diam-diam mengubah direktori tempat sesi yang didispatch berikutnya dimulai. |

1086| v2.1.221 | `/status` menampilkan baris `Session kind`: `background job · attached` atau `background job · unattended` dalam sesi latar belakang, tergantung apakah terminal dilampirkan, dan `interactive` dalam sesi lain apa pun. Sebelum rilis ini, `/status` tidak melaporkan jenis sesi.<br /><br />`/fork`: Claude Code menginstruksikan [salinan](#from-inside-a-session) untuk mengisolasi pekerjaannya dari sesi asli: salinan membuat worktree-nya sendiri sebelum membuat perubahan kode, tetap keluar dari worktree sesi asli, dan mendasarkan cabang baru pada cabang asli ketika tugasnya dibangun di atas pekerjaan itu. Lihat bagian tertaut untuk kondisi pastinya. Sebelum rilis ini, salinan tidak menerima instruksi isolasi dan bisa berakhir mengedit worktree atau checkout yang masih dikerjakan sesi asli.<br /><br />Dengan [mode editor vim](/docs/id/interactive-mode#vim-editor-mode) aktif, menekan `←` tepat setelah membatalkan prompt kembali ke kosong dengan `u` bertanya untuk konfirmasi yang sama seperti menghapus teks atau bergerak melalui riwayat prompt, dan beralih hanya pada tekan kedua; sebelum rilis ini tekan beralih segera. |1102| v2.1.221 | `/status` menampilkan baris `Session kind`: `background job · attached` atau `background job · unattended` dalam sesi latar belakang, tergantung apakah terminal dilampirkan, dan `interactive` dalam sesi lain apa pun. Sebelum rilis ini, `/status` tidak melaporkan jenis sesi.<br /><br />`/fork`: Claude Code menginstruksikan [salinan](#from-inside-a-session) untuk mengisolasi pekerjaannya dari sesi asli: salinan membuat worktree sendiri sebelum membuat perubahan kode, tetap keluar dari worktree sesi asli, dan mendasarkan cabang baru pada cabang asli ketika tugasnya dibangun di atas pekerjaan itu. Lihat bagian tertaut untuk kondisi yang tepat. Sebelum rilis ini, salinan tidak menerima instruksi isolasi dan bisa berakhir mengedit worktree atau checkout yang masih dikerjakan sesi asli.<br /><br />Dengan [mode editor vim](/docs/id/interactive-mode#vim-editor-mode) aktif, menekan `←` tepat setelah membatalkan prompt kembali ke kosong dengan `u` menanyakan konfirmasi yang sama seperti menghapus teks atau bergerak melalui riwayat prompt, dan beralih hanya pada tekan kedua; sebelum rilis ini tekan beralih segera. |

1087| v2.1.219 | Dengan [mode editor vim](/docs/id/interactive-mode#vim-editor-mode) aktif, menekan `←` pada prompt kosong membuka tampilan agen dari mode NORMAL serta INSERT, dan petunjuk `←` footer menampilkan dalam mode NORMAL; sebelum rilis ini gestur dan petunjuk adalah INSERT-only, dan dalam mode NORMAL `←` pada prompt kosong tidak melakukan apa pun. Mengetik ke dalam input sementara Claude Code menunggu untuk melepaskan sesi membatalkan switch dengan `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.` jadi draft yang diketik tidak hilang. |1103| v2.1.219 | Dengan [mode editor vim](/docs/id/interactive-mode#vim-editor-mode) aktif, menekan `←` pada prompt kosong membuka agent view dari mode NORMAL serta INSERT, dan hint footer `←` menampilkan dalam mode NORMAL; sebelum rilis ini gesture dan hint adalah INSERT-only, dan dalam mode NORMAL `←` pada prompt kosong tidak melakukan apa-apa. Mengetik ke dalam input sementara Claude Code menunggu untuk memindahkan sesi ke latar belakang membatalkan switch dengan `Backgrounding cancelled — you have unsent text in the input. Send it or clear it, then press ← again.` jadi draft yang diketik tidak hilang. |

1088| v2.1.218 | Menekan `←` dalam dua detik penghapusan yang mengosongkan prompt, atau bergerak melalui riwayat prompt, menampilkan `Press ← again to open agents`, atau `Press ← again to go back to agents` dalam sesi yang dilampirkan, dan beralih hanya pada tekan kedua setidaknya satu detik kemudian; sebelum rilis ini tekan beralih segera. `←` yang tiba di dalam input yang ditempel atau skrip tidak lagi memicu switch. Melepaskan sesi latar depan dengan `←` menampilkan `Your conversation moved to the background` di atas daftar, dan `Esc` di akar tampilan agen kembali ke percakapan itu alih-alih keluar ke shell, dengan `Ctrl+C` ganda tetap menjadi keluar; jika percakapan tidak dapat dibuka kembali, Claude Code keluar dan mencetak perintah `claude --resume` untuknya. Di Windows, `←` yang ditekan dalam sekitar setengah detik melampirkan menampilkan `Ambiguous ←, press again to detach` dan melepaskan pada tekan kedua. |1104| v2.1.218 | Menekan `←` dalam dua detik penghapusan yang mengosongkan prompt, atau bergerak melalui riwayat prompt, menampilkan `Press ← again to open agents`, atau `Press ← again to go back to agents` dalam sesi yang terpasang, dan beralih hanya pada tekan kedua setidaknya satu detik kemudian; sebelum rilis ini tekan beralih segera. `←` yang tiba di dalam input yang ditempel atau skrip tidak lagi memicu switch. Memindahkan sesi latar depan ke latar belakang dengan `←` menampilkan `Your conversation moved to the background` di atas daftar, dan `Esc` di akar agent view kembali ke percakapan itu alih-alih keluar ke shell, dengan `Ctrl+C` ganda tetap menjadi keluar; jika percakapan tidak dapat dibuka kembali, Claude Code keluar dan mencetak perintah `claude --resume` untuknya. Di Windows, `←` ditekan dalam sekitar setengah detik melampirkan menampilkan `Ambiguous ←, press again to detach` dan melepaskan pada tekan kedua. |

1089| v2.1.217 | Lencana permintaan tarik pada baris sesi dirender sebagai hyperlink bahkan ketika Claude Code tidak dapat mendeteksi dukungan hyperlink terminal, misalnya melalui SSH atau tmux; atur [`FORCE_HYPERLINK=0`](/docs/id/env-vars) untuk merendernya sebagai teks biasa. Sebelum rilis ini, lencana dirender sebagai teks biasa ketika dukungan tidak terdeteksi. |1105| v2.1.217 | Lencana permintaan tarik pada baris sesi dirender sebagai hyperlink bahkan ketika Claude Code tidak dapat mendeteksi dukungan hyperlink terminal, misalnya melalui SSH atau tmux; atur [`FORCE_HYPERLINK=0`](/docs/id/env-vars) untuk merender sebagai teks biasa. Sebelum rilis ini, lencana dirender sebagai teks biasa ketika dukungan tidak terdeteksi. |

1090| v2.1.216 | `/fork`: [konfirmasi](#from-inside-a-session) adalah satu baris, menampilkan status salinan, nama baris tampilan agen-nya, dan ID sesi-nya untuk `claude attach`, berakhir dengan `runs in the origin tree` atau `edits this checkout` hanya ketika salinan berjalan di pohon kerja utama atau mengedit checkout yang Anda buka. Mengklik nama melepaskan sesi ini dan membuka tampilan agen dalam sesi salinan. Konfirmasi tidak lagi menyatakan kembali mode izin yang diwarisi salinan; versi sebelumnya mencetak konfirmasi multi-baris tanpa nama yang dapat diklik.<br /><br />Memerlukan input: `/install-github-app` dan daftar pengaturan `/mcp`, jalankan sementara tidak ada yang dilampirkan, menampilkan sesi di bawah `Needs input` dengan baris yang menyebutkan perintah, dan melampirkan dan menjalankan kembali perintah melanjutkan; dari v2.1.208 hingga v2.1.215 mereka ditolak sepenuhnya dalam keadaan itu.<br /><br />Pemulihan `--agent`: melanjutkan atau memulai ulang sesi `--agent` yang [dilepaskan](#from-your-shell) memulihkan prompt sistem agen dan pembatasan alat, mencari direktori sesi sendiri untuk agen terlebih dahulu, ketika workspace-nya dipercayai; sesi yang agennya tidak lagi ada melanjutkan dengan alat default dan prompt sistem dan terbuka dengan peringatan yang terlihat, alih-alih diam-diam kembali ke agen default.<br /><br />`Ctrl+X`: menekannya dua kali menghapus sesi bahkan ketika upaya berhenti gagal, alih-alih berhenti yang gagal membatalkan penghapusan yang tertunda, dan sesi yang dihapus yang proses worker-nya telah mati tidak lagi muncul kembali pada refresh berikutnya.<br /><br />Penghapusan worktree: sesi yang direktori worktree-nya tidak termasuk dalam repositori git apa pun dapat dihapus; sebelum rilis ini setiap upaya menghapus sesi seperti itu ditolak. Direktori yang sudah hilang dihapus segera. Tekan ganda tampilan agen menghapus direktori yang masih memiliki file, menjalankan hook `WorktreeRemove` Anda untuk direktori yang dibuat hook, kecuali sesi lain juga menyebutnya. `claude rm` menyimpan direktori seperti itu kapan pun file tetap ada. |1106| v2.1.216 | `/fork`: [konfirmasi](#from-inside-a-session) adalah satu baris, menampilkan status salinan, nama baris agent-view-nya, dan ID sesinya untuk `claude attach`, berakhir dengan `runs in the origin tree` atau `edits this checkout` hanya ketika salinan berjalan di pohon kerja utama atau mengedit checkout yang Anda buka. Mengklik nama memindahkan sesi ini ke latar belakang dan membuka agent view dalam sesi salinan. Konfirmasi tidak lagi menyatakan kembali mode izin yang diwarisi salinan; versi sebelumnya mencetak konfirmasi multi-baris tanpa nama yang dapat diklik.<br /><br />Needs input: `/install-github-app` dan daftar pengaturan `/mcp`, dijalankan sementara tidak ada yang dilampirkan, menampilkan sesi di bawah `Needs input` dengan baris yang menyebutkan perintah, dan melampirkan dan menjalankan kembali perintah melanjutkan; dari v2.1.208 melalui v2.1.215 mereka ditolak sepenuhnya dalam keadaan itu.<br /><br />`--agent` restore: melanjutkan atau memulai ulang sesi [backgrounded `--agent`](#from-your-shell) memulihkan prompt sistem agent dan pembatasan alat, mencari direktori sesi sendiri untuk agent terlebih dahulu, ketika ruang kerja kepercayaannya; sesi yang agennya tidak lagi ada melanjutkan dengan alat default dan prompt sistem dan terbuka dengan peringatan yang terlihat, alih-alih diam-diam kembali ke agent default.<br /><br />`Ctrl+X`: menekannya dua kali menghapus sesi bahkan ketika upaya berhenti gagal, alih-alih berhenti yang gagal membatalkan penghapusan yang tertunda, dan sesi yang dihapus yang proses worker-nya telah mati tidak lagi muncul kembali pada refresh berikutnya.<br /><br />Penghapusan worktree: sesi yang direktori worktree-nya tidak termasuk dalam repositori git apa pun dapat dihapus; sebelum rilis ini setiap upaya menghapus sesi seperti itu ditolak. Direktori yang sudah hilang dihapus segera. Tekan ganda agent view menghapus direktori yang masih memiliki file, menjalankan hook `WorktreeRemove` Anda untuk direktori yang dibuat hook, kecuali sesi lain juga menyebutkannya. `claude rm` menyimpan direktori seperti itu kapan pun file tetap ada. |

1091| v2.1.214 | Sesi yang dilepaskan dengan `←` atau `/background` dan dibiarkan idle tanpa apa pun yang berjalan memiliki prosesnya dihentikan seperti sesi idle lainnya, alih-alih menyimpan prosesnya dan layanan latar belakang berjalan tanpa batas. Sesi yang selesai dapat dihapus dengan `claude rm` atau dari tampilan agen setelah layanan latar belakang telah idle, dan sesi yang memasuki worktree setelah dikirim dari direktori yang bukan repositori git, seperti folder workspace multi-repo, dapat dihapus dari tampilan agen ketika worktree itu sendiri termasuk dalam repositori git, karena pembersihan diselesaikan dari worktree alih-alih direktori tempat sesi dikirim; kedua penghapusan ditolak pada setiap upaya sebelumnya. Membuka kembali sesi yang dihentikan memulihkan percakapan yang disimpannya bahkan ketika folder dalam penyimpanan transkrip tidak dapat dibaca. |1107| v2.1.214 | Sesi yang dipindahkan ke latar belakang dengan `←` atau `/background` dan dibiarkan idle tanpa apa pun yang berjalan memiliki prosesnya dihentikan seperti sesi idle lainnya, alih-alih menyimpan prosesnya dan layanan latar belakang berjalan tanpa batas. Sesi yang selesai dapat dihapus dengan `claude rm` atau dari agent view setelah layanan latar belakang telah idle, dan sesi yang memasuki worktree setelah didispatch dari direktori yang bukan repositori git, seperti folder ruang kerja multi-repo, dapat dihapus dari agent view ketika worktree itu sendiri termasuk dalam repositori git, karena pembersihan diselesaikan dari worktree alih-alih direktori tempat sesi didispatch; kedua penghapusan ditolak pada setiap upaya sebelumnya. Membuka kembali sesi yang dihentikan memulihkan percakapan yang disimpannya bahkan ketika folder dalam penyimpanan transkrip tidak dapat dibaca. |

1092| v2.1.213 | `/install-github-app`, [daftar pengaturan `/mcp`](/docs/id/mcp), dan tindakan autentikasi MCP bekerja dalam sesi latar belakang sementara terminal dilampirkan, dan ditolak hanya ketika tidak ada yang dilampirkan, dengan pesan yang memberi tahu Anda untuk melampirkan dan menjalankan perintah lagi; dari v2.1.208 hingga v2.1.212 mereka ditolak bahkan dengan terminal yang dilampirkan. |1108| v2.1.213 | `/install-github-app`, [daftar pengaturan `/mcp`](/docs/id/mcp), dan tindakan autentikasi MCP bekerja dalam sesi latar belakang sementara terminal dilampirkan, dan ditolak hanya ketika tidak ada yang dilampirkan, dengan pesan memberi tahu Anda untuk melampirkan dan menjalankan perintah lagi; dari v2.1.208 melalui v2.1.212 mereka ditolak bahkan dengan terminal dilampirkan. |

1093| v2.1.212 | [`/fork` dalam sesi interaktif](#from-inside-a-session) menyalin percakapan ke sesi latar belakang baru yang muncul sebagai barisnya sendiri, dinamai setelah sesi yang berasal darinya atau, untuk fork yang diminta dari sesi tanpa nama, setelah prompt fork, sementara asli terus berjalan; perilaku subagen yang di-fork sebelumnya dari `/fork` pindah ke `/subtask`. Dengan [tampilan agen dimatikan](#turn-off-agent-view), `/fork` menyimpan perilaku subagen yang di-fork. Baris yang difokuskan yang menunggu prompt pertamanya menampilkan `space to send it a prompt`. `Ctrl+J` menyisipkan baris baru dalam input pengiriman di terminal dengan pelaporan kunci diperluas, di mana penekanan tombol sebelumnya diabaikan, dan overlay `?` mencantumkan pintasan. Petunjuk footer `←` dalam sesi interaktif secara singkat menampilkan `N done` ketika sesi latar belakang selesai sementara tidak ada yang memerlukan input Anda. Mengetik `/resume` telanjang dalam tampilan agen membuka pemilih sesi masa lalu dari repositori tempat Anda membuka tampilan agen, termasuk sesi yang dihapus dari daftar, dan memilih satu melanjutkannya sebagai sesi latar belakang; sebelum rilis ini `/resume` tidak tersedia dalam tampilan agen dan sesi yang dihapus hanya dapat dijangkau dengan `claude --resume` atau `/resume` dari sesi interaktif. Bentuk yang ditargetkan, dibatasi, dan dibatasi menyimpan petunjuk `attach to a session to run it` yang ditampilkan versi sebelumnya untuk setiap bentuk. Sesi yang menunggu prompt jaringan sandbox network-host, permintaan input MCP, atau prompt pengaturan terkelola menampilkan sebagai `Needs input` alih-alih `Working`, dalam tampilan agen dan dalam `claude agents --json`, dan pertanyaan dari Claude melaporkan `waitingFor: input needed` alih-alih `permission prompt`. Melampirkan ke sesi yang prosesnya telah berhenti menampilkan transkripsnya diformat cara sesi langsung merendernya, alih-alih sebagai teks mentah. Sesi yang dihentikan yang transkripsnya berada di tempat yang tidak terduga melanjutkan darinya melalui pemindaian upaya terakhir dari transkrip yang disimpan Anda, dan membuka baris yang tidak memiliki transkrip yang disimpan menampilkan `Press enter again to restart this session fresh`, memulai ulang segar pada tekan kedua; v2.1.211 menampilkan penolakan tanpa cara untuk memulai ulang dari tampilan agen. |1109| v2.1.212 | [`/fork` dalam sesi interaktif](#from-inside-a-session) menyalin percakapan ke dalam sesi latar belakang baru yang muncul sebagai barisnya sendiri, dinamai setelah sesi yang berasal darinya atau, untuk fork yang diminta dari sesi tanpa nama, setelah prompt fork, sementara asli terus berjalan; perilaku subagent yang di-fork sebelumnya dari `/fork` pindah ke `/subtask`. Dengan [agent view dimatikan](#turn-off-agent-view), `/fork` menyimpan perilaku subagent yang di-fork. Baris yang difokuskan yang menunggu prompt pertamanya menampilkan `space to send it a prompt`. `Ctrl+J` menyisipkan baris baru dalam input dispatch pada terminal dengan pelaporan kunci yang diperluas, di mana penekanan kunci sebelumnya diabaikan, dan overlay `?` mencantumkan pintasan. Hint footer `←` dalam sesi interaktif secara singkat menampilkan `N done` ketika sesi latar belakang selesai sementara tidak ada yang memerlukan input Anda. Mengetik `/resume` kosong dalam agent view membuka pemilih sesi masa lalu dari repositori tempat Anda membuka agent view, termasuk sesi yang dihapus dari daftar, dan memilih satu melanjutkannya sebagai sesi latar belakang; sebelum rilis ini `/resume` tidak tersedia dalam agent view dan sesi yang dihapus hanya dapat dijangkau dengan `claude --resume` atau `/resume` dari sesi interaktif. Bentuk yang ditargetkan, berscopus, dan terbatas menyimpan hint `attach to a session to run it` yang ditampilkan versi sebelumnya untuk setiap bentuk. Sesi menunggu prompt jaringan sandbox host, permintaan input MCP, atau prompt pengaturan yang dikelola menampilkan sebagai `Needs input` alih-alih `Working`, dalam agent view dan dalam `claude agents --json`, dan pertanyaan dari Claude melaporkan `waitingFor: input needed` alih-alih `permission prompt`. Melampirkan ke sesi yang prosesnya telah berhenti menampilkan transkrip yang diformat cara sesi langsung merender, alih-alih sebagai teks mentah. Sesi yang dihentikan yang transkrip-nya berada di tempat yang tidak terduga dilanjutkan darinya melalui pemindaian upaya terakhir dari transkrip yang disimpan, dan membuka baris yang tidak memiliki transkrip yang disimpan menampilkan `Press enter again to restart this session fresh`, memulai ulang segar pada tekan kedua; v2.1.211 menampilkan penolakan tanpa cara untuk memulai ulang dari agent view. |

1094| v2.1.211 | Membangunkan sesi yang dihentikan dengan melampirkan atau membalas dari direktori tempat ia berjalan meneruskan gateway `ANTHROPIC_BASE_URL` shell Anda lagi, di bawah kondisi yang sama dengan pengiriman segar, jadi sesi yang diautentikasi melalui gateway `ANTHROPIC_AUTH_TOKEN` melanjutkan di gateway alih-alih melaporkan `Not logged in`. Melampirkan ke sesi yang dihentikan yang dilepaskan dari percakapan lain sebelum respons pertamanya selesai ditolak dengan `This session has no saved transcript` alih-alih diam-diam memulai percakapan kosong di bawah ID sesi yang sama; membuka baris yang sama dari tampilan agen menampilkan penolakan di footer. Mengakhiri proses sesi `←` atau `/background` dari luar Claude Code menandainya berhenti alih-alih supervisor memulai ulangnya, berhenti yang sudah dicatat di disk dihormati kecuali balasan yang Anda kirim masih menunggu untuk dikirimkan, sesi yang dimulai ulang setelah crash diberitahu itu dimulai ulang, dan sesi `←` atau `/background` yang dimulai ulang tidak melanjutkan respons yang terputus lebih lama dari sekitar satu jam. Balasan penamaan sesi yang menjawab atau menolak prompt alih-alih memberi label padanya, seperti untuk prompt yang sebagian besar tautan, dibuang dan baris menyimpan nama yang diambil dari teks prompt. Menghapus sesi yang worktree git-nya tidak lagi dikenali berhasil, meninggalkan direktori worktree di disk dan menyebutkan jalurnya, alih-alih setiap upaya ditolak. Penolakan penghapusan menampilkan alasan pada baris sesi, termasuk kesalahan git yang mendasar ketika worktree tidak dapat dihapus, alih-alih baris diam-diam muncul kembali. |1110| v2.1.211 | Membangunkan sesi yang dihentikan dengan melampirkan atau membalas dari direktori tempat ia berjalan meneruskan gateway `ANTHROPIC_BASE_URL` shell Anda lagi, di bawah kondisi yang sama dengan dispatch segar, jadi sesi yang diautentikasi melalui gateway `ANTHROPIC_AUTH_TOKEN` dilanjutkan pada gateway alih-alih melaporkan `Not logged in`. Melampirkan ke sesi yang dihentikan yang dipindahkan ke latar belakang dari percakapan lain sebelum respons pertamanya selesai ditolak dengan `This session has no saved transcript` alih-alih diam-diam memulai percakapan kosong di bawah ID sesi yang sama; membuka baris yang sama dari agent view menampilkan penolakan di footer. Mengakhiri proses sesi `←` atau `/background` dari luar Claude Code menandainya dihentikan alih-alih supervisor memulai ulangnya, berhenti yang sudah dicatat di disk dihormati kecuali balasan yang Anda kirim masih menunggu untuk dikirimkan, sesi yang dimulai ulang setelah crash diberitahu itu dimulai ulang, dan sesi `←` atau `/background` yang dimulai ulang tidak melanjutkan respons yang terputus lebih lama dari sekitar satu jam. Balasan penamaan sesi yang menjawab atau menolak prompt alih-alih memberi label, seperti untuk prompt yang sebagian besar tautan, dibuang dan baris menyimpan nama yang diambil dari teks prompt. Menghapus sesi yang worktree git-nya tidak lagi dikenali berhasil, meninggalkan direktori worktree di disk dan menyebutkan jalurnya, alih-alih setiap upaya ditolak. Penghapusan yang ditolak menampilkan alasannya pada baris sesi, termasuk kesalahan git yang mendasar ketika worktree tidak dapat dihapus, alih-alih baris diam-diam muncul kembali. |

1095| v2.1.210 | `claude attach` menunggu sementara layanan latar belakang sedang dimulai atau terhubung kembali alih-alih gagal dengan kesalahan `job not found` atau `still starting`, melaporkan sesi yang selesai selama lampiran sebagai keluar, dan menerapkan perubahan ukuran terminal yang dibuat selama lampiran lambat ketika lampiran selesai. Hitungan kebutuhan input `←` footer prompt muncul di setiap penyedia, termasuk penyedia pihak ketiga yang sebelumnya menampilkan bentuk `← for agents` biasa. Melepaskan sesi dengan `←` membawa daftar tugas Claude ke sesi latar belakang alih-alih menjatuhkannya. Baris yang Anda tekan `←` darinya menyimpan nama yang berani dan tidak redup setelah pilihan bergerak. `claude agents --effort` menerima `ultracode` alih-alih diam-diam menjatuhkannya. |1111| v2.1.210 | `claude attach` menunggu sementara layanan latar belakang dimulai atau menghubungkan kembali alih-alih gagal dengan kesalahan `job not found` atau `still starting`, melaporkan sesi yang selesai selama melampirkan sebagai keluar, dan menerapkan perubahan ukuran terminal yang dibuat selama melampirkan lambat ketika melampirkan selesai. Hint kebutuhan input footer prompt `←` muncul di setiap penyedia, termasuk penyedia pihak ketiga yang sebelumnya menampilkan bentuk `← for agents` biasa. Memindahkan sesi ke latar belakang dengan `←` membawa daftar tugas Claude ke sesi latar belakang alih-alih menjatuhkannya. Baris yang Anda tekan `←` darinya menyimpan nama yang berani dan tidak redup setelah pilihan bergerak. `claude agents --effort` menerima `ultracode` alih-alih diam-diam menjatuhkannya. |

1096| v2.1.208 | Melampirkan ke sesi yang prosesnya telah berhenti menampilkan layar terakhir transkripsnya sementara proses dimulai, alih-alih hanya catatan `Session is starting`. Balasan yang tidak dapat dikirimkan karena layanan latar belakang tidak dapat dijangkau atau pengiriman gagal disimpan dan dikirim sebagai prompt berikutnya dari sesi ketika prosesnya dimulai lagi; sebelum rilis ini, balasan yang hilang saat layanan latar belakang tidak dapat dijangkau dibuang. Proses yang binernya sendiri diganti oleh pembaruan masih dapat memulai supervisor, dari peluncur `claude` yang terinstal atau versi terbaru di disk, alih-alih gagal sampai Claude Code dimulai ulang. Supervisor yang menjalankan versi yang lebih lama tidak pernah memulai ulang sesi idle yang dimulai oleh versi yang lebih baru ke binernya sendiri yang lebih lama. Menghapus sesi menghapus worktree-nya bahkan setelah sesi memindahkan worktree ke cabang yang berbeda, dan menjaga worktree tetap bersama dengan baris sesi ketika worktree memiliki commit yang tidak didorong ke mana pun atau sesi lain mengklaimnya, alih-alih menghancurkan commit atau meninggalkan worktree. `/install-github-app` dan daftar pengaturan `/mcp` serta tindakan autentikasinya ditolak dalam sesi latar belakang dengan pesan yang menyebutkan alternatifnya; hanya dalam v2.1.208, pemilih `/model` ditolak dengan cara yang sama dan `/model <name>` yang diketik beralih hanya sesi itu alih-alih juga menyimpan model default Anda. |1112| v2.1.208 | Melampirkan ke sesi yang prosesnya telah berhenti menampilkan layar terakhir transkrip-nya sementara proses dimulai, alih-alih hanya catatan `Session is starting`. Balasan yang tidak dapat dikirimkan karena layanan latar belakang tidak dapat dijangkau atau pengiriman gagal disimpan dan dikirim sebagai prompt berikutnya sesi ketika prosesnya dimulai lagi; sebelum rilis ini, balasan yang hilang sementara layanan latar belakang tidak dapat dijangkau dibuang. Proses yang binernya sendiri diganti oleh pembaruan masih dapat memulai supervisor, dari peluncur `claude` yang diinstal atau versi terbaru di disk, alih-alih gagal sampai Claude Code dimulai ulang. Supervisor yang menjalankan versi yang lebih lama tidak pernah memulai ulang sesi idle yang dimulai oleh versi yang lebih baru ke biner yang lebih lama miliknya. Menghapus sesi menghapus worktree-nya bahkan setelah sesi memindahkan worktree ke cabang berbeda, dan menyimpan worktree bersama dengan baris sesi ketika worktree memiliki komit yang tidak didorong ke mana pun atau sesi lain mengklaimnya, alih-alih menghancurkan komit atau meninggalkan worktree. `/install-github-app` dan daftar pengaturan `/mcp` dan tindakan autentikasinya ditolak dalam sesi latar belakang dengan pesan yang menyebutkan alternatif; dalam v2.1.208 saja, pemilih `/model` ditolak dengan cara yang sama dan `/model <name>` yang diketik beralih sesi itu saja alih-alih juga menyimpan model default Anda. |

1097| v2.1.207 | Panel intip terbuka dengan kalimat yang dipotong baris, seperti pertanyaan pastinya untuk sesi yang menunggu Anda, dan menampilkan berapa lama sesi yang diblokir telah menunggu sebagai baris `waiting 3m` tunggal alih-alih menambahkan awalan stempel waktu yang sama ke kalimat status dan pertanyaan. Menempel teks yang sama lagi dalam input pengiriman memperluas placeholder `[Pasted text #N]` yang runtuh alih-alih menambahkan yang kedua. Sesi latar belakang yang dinamai dengan menerima rencana menampilkan nama itu pada barisnya. Sesi latar belakang yang pindah ke worktree menyimpan percakapannya ketika prosesnya dimulai ulang dari tampilan agen. |1113| v2.1.207 | Panel intip terbuka dengan kalimat yang dipotong baris, seperti pertanyaan yang tepat untuk sesi yang menunggu Anda, dan menampilkan berapa lama sesi yang diblokir telah menunggu sebagai baris `waiting 3m` tunggal alih-alih menambahkan awalan stempel waktu yang sama ke kalimat status dan pertanyaan. Menempel teks yang sama lagi dalam input dispatch memperluas placeholder `[Pasted text #N]` yang runtuh alih-alih menambahkan yang kedua. Sesi latar belakang yang dinamai dengan menerima rencana menampilkan nama itu pada barisnya. Sesi latar belakang yang pindah ke worktree menyimpan percakapannya ketika prosesnya dimulai ulang dari agent view. |

1098| v2.1.206 | Ringkasan baris mengisi lebar sisa baris dan dipotong hanya di tepi kanan terminal alih-alih pada 64 kolom. Setelah supervisor dimulai ulang ke versi Claude Code baru, ia memulai ulang sesi latar belakang idle yang tersisa ke versi itu di latar belakang alih-alih beberapa per menit. Menghapus sesi dengan `Ctrl+X` atau `claude rm` juga menghapusnya dari daftar sesi supervisor, sehingga baris tidak lagi muncul kembali setelah restart supervisor. Penimpaan badan permintaan `CLAUDE_CODE_EXTRA_BODY` yang diekspor dalam shell pengiriman mencapai sesi latar belakang alih-alih diabaikan. |1114| v2.1.206 | Ringkasan baris mengisi lebar sisa baris dan memotong hanya di tepi kanan terminal alih-alih pada 64 kolom. Setelah supervisor memulai ulang ke versi Claude Code baru, ia memulai ulang sesi latar belakang idle yang tersisa ke versi itu di latar belakang alih-alih beberapa per menit. Menghapus sesi dengan `Ctrl+X` atau `claude rm` juga menghapusnya dari daftar sesi supervisor, jadi baris tidak lagi muncul kembali setelah restart supervisor. Penggantian badan permintaan `CLAUDE_CODE_EXTRA_BODY` yang diekspor dalam shell pengiriman mencapai sesi latar belakang alih-alih diabaikan. |

1099| v2.1.205 | Petunjuk `←` footer prompt menghitung agen latar belakang yang menunggu Anda, seperti `← 2 agents`. Ringkasan baris menampilkan laporan satu baris sesi itu sendiri, dipotong pada 64 kolom, alih-alih invokasi alat mentah atau hitungan `done/total`; baris yang dikelompokkan direktori terbuka dengan kata status berwarna. Panel intip terbuka dengan kalimat status lengkap dan, untuk sesi yang menunggu Anda, pertanyaan pastinya di atas input balasan. Sesi yang mengedit, mengomentari, menutup, atau menandai permintaan tarik siap dengan `gh` ditautkan ke sana, bukan hanya yang membuat atau checkout permintaan tarik, push menautkan permintaan tarik bahkan ketika nama cabang lokal tidak cocok, dan permintaan tarik yang output perintah pembuatannya melebihi batas inline juga ditautkan. Giliran tanpa teks yang dapat dibaca menyimpan status sesi sebelumnya alih-alih membaliknya kembali ke `Working`. `claude attach` menunggu hingga sekitar 60 detik untuk sesi yang sedang dimulai ulang, dengan baris status yang menyebutkan alasannya, alih-alih gagal. |1115| v2.1.205 | Hint `←` footer prompt dalam sesi `claude` biasa menghitung agen latar belakang yang menunggu Anda, seperti `← 2 agents`. Ringkasan baris menampilkan laporan satu baris sesi sendiri, dipotong pada 64 kolom, alih-alih invokasi alat mentah atau hitungan `done/total`; baris yang dikelompokkan direktori terbuka dengan kata status berwarna. Panel intip terbuka dengan kalimat status lengkap dan, untuk sesi menunggu Anda, pertanyaan yang tepat di atas input balasan. Sesi yang mengedit, berkomentar, menutup, atau menandai permintaan tarik siap dengan `gh` ditautkan ke sesi itu, bukan hanya yang membuat atau checkout permintaan tarik, push menautkan permintaan tarik bahkan ketika nama cabang lokal tidak cocok, dan permintaan tarik yang perintah pembuatannya melebihi batas inline juga ditautkan. Giliran tanpa teks yang dapat dibaca menyimpan status sesi sebelumnya alih-alih membaliknya kembali ke `Working`. `claude attach` menunggu hingga sekitar 60 detik untuk sesi yang dimulai ulang, dengan baris status yang menyebutkan mengapa, alih-alih gagal. |

1100| v2.1.203 | Gateway `ANTHROPIC_BASE_URL` yang diekspor dalam shell pengiriman mencapai sesi yang dikirim darinya ke direktori yang sama ketika supervisor membagikan gateway environment tersebut, alih-alih dijatuhkan sementara kunci API yang diekspor bersama dengannya tetap disimpan. `PATH` shell pengiriman diterapkan ke setiap worker sesi. Menekan `←` saat subagen sedang berjalan menunggu mereka alih-alih memulai ulang mereka setelah sepuluh detik. Daftar kosong selalu menampilkan header bagian dengan deskripsi di bawah masing-masing. Mengetik `@` dalam input pengiriman juga mencantumkan git worktrees terdaftar dari repositori peluncuran yang berada di dalam pohon direktorinya. Upaya yang diwarisi dari pengaturan `effortLevel` mengikuti pengeditan kemudian ke pengaturan tersebut alih-alih diperbaiki pada pengiriman. Membuka sesi yang dihentikan yang percakapannya sudah terbuka di sesi yang sedang berjalan lainnya ditolak dengan pesan alih-alih gagal pada baris. Perintah yang tidak tersedia dalam tampilan agen meninggalkan teks yang diketik dalam input. Hook `WorktreeCreate` yang gagal di luar repositori git tidak lagi memblokir sesi dari pengeditan file. |1116| v2.1.203 | Gateway `ANTHROPIC_BASE_URL` yang diekspor dalam shell pengiriman mencapai sesi yang didispatch darinya ke direktori yang sama ketika supervisor berbagi lingkungan gateway itu, alih-alih dijatuhkan sementara kunci API yang diekspor bersama dengannya disimpan. `PATH` shell pengiriman diterapkan ke worker setiap sesi. Menekan `←` sementara subagent berjalan menunggu mereka alih-alih memulai ulang mereka setelah sepuluh detik. Daftar kosong selalu menampilkan header bagian dengan deskripsi di bawah masing-masing. Mengetik `@` dalam input dispatch juga mencantumkan worktree git terdaftar repositori peluncuran yang hidup di dalam pohon direktorinya. Upaya yang diwarisi dari pengaturan `effortLevel` mengikuti pengeditan kemudian ke pengaturan itu alih-alih diperbaiki pada pengiriman. Membuka sesi yang dihentikan yang percakapannya sudah terbuka dalam sesi yang berjalan lain ditolak dengan pesan alih-alih gagal baris. Perintah yang tidak tersedia dalam agent view meninggalkan teks yang diketik dalam input. Hook `WorktreeCreate` yang gagal di luar repositori git tidak lagi memblokir sesi dari mengedit file. |

1101| v2.1.202 | Nama yang ditetapkan dengan `/rename` atau `Ctrl+R` pada sesi latar belakang tetap ada ketika supervisor menghentikan dan memulai ulang prosesnya, alih-alih kembali ke nama yang dikirim sesi dengan. |1117| v2.1.202 | Nama yang ditetapkan dengan `/rename` atau `Ctrl+R` pada sesi latar belakang bertahan ketika supervisor menghentikan dan memulai ulang prosesnya, alih-alih kembali ke nama sesi yang didispatch dengannya. |

1102| v2.1.200 | Versi Claude Code yang lebih lama yang menulis ulang daftar sesi dalam `roster.json` mempertahankan bidang yang ditulis oleh versi yang lebih baru, sesuai dengan jaminan `state.json` yang ada, sehingga sesi yang dimulai oleh versi yang lebih baru terus menerima input setelah supervisor dimulai ulang. Ketika Anda membuka sesi yang telah berhenti merespons, supervisor memulai ulang prosesnya dan sesi melanjutkan respons yang terputus dari tempat ia berhenti. Tampilan agen menerapkan bendera `--plugin-dir` yang ditempatkan setelah `agents` ke subagen tampilan agen-nya sendiri dan autocomplete skill dalam input pengiriman serta sesi yang dikirim. |1118| v2.1.200 | Versi Claude Code yang lebih lama yang menulis ulang daftar sesi dalam `roster.json` menyimpan bidang yang ditulis oleh versi yang lebih baru, cocok dengan jaminan `state.json` yang ada, jadi sesi yang dimulai oleh versi yang lebih baru terus menerima input setelah supervisor dimulai ulang. Ketika Anda membuka sesi yang telah berhenti merespons, supervisor memulai ulang prosesnya dan sesi melanjutkan respons yang terputus dari tempat ia berhenti. Agent view menerapkan flag `--plugin-dir` yang ditempatkan setelah `agents` ke subagent dan skill autocomplete-nya sendiri dalam input dispatch serta sesi yang didispatch. |

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

1104| v2.1.198 | Tampilan agen mengirim notifikasi melalui `preferredNotifChannel` ketika sesi latar belakang memerlukan input, selesai, atau gagal, dan memicu hook `Notification` dengan tipe `agent_needs_input` atau `agent_completed`. `←` dan `/exit` di dalam `claude attach <id>` kembali ke tampilan agen alih-alih keluar ke shell; `Ctrl+Z` kembali ke shell. Sesi latar belakang yang mengisolasi pekerjaannya dalam worktree melakukan commit, mendorong cabang terisolasinya sendiri, tidak pernah `main` atau `master`, dan membuka permintaan tarik draft ketika selesai alih-alih bertanya terlebih dahulu. `/login` berjalan dalam tampilan agen dan membuka dialog masuk. Dialog keluar `Background work is running` menawarkan `Move to background and exit`. Handoff keluar juga mencakup subagen latar belakang, yang melanjutkan dari transkrip mereka pada waktu bangun berikutnya alih-alih dilaporkan sebagai gagal. `claude --bg` dikombinasikan dengan `-p` atau `--print` ditolak dengan kesalahan. Host sesi latar belakang meminta izin Jaringan Lokal macOS pada akses LAN pertama alih-alih gagal dengan `connect: no route to host`. |1120| v2.1.198 | Agent view mengirim notifikasi melalui `preferredNotifChannel` ketika sesi latar belakang memerlukan input, selesai, atau gagal, dan menembakkan hook `Notification` dengan tipe `agent_needs_input` atau `agent_completed`. `←` dan `/exit` di dalam `claude attach <id>` kembali ke agent view alih-alih keluar ke shell; `Ctrl+Z` kembali ke shell. Sesi latar belakang yang mengisolasi pekerjaannya dalam worktree melakukan komit, mendorong cabang terisolasinya sendiri, tidak pernah `main` atau `master`, dan membuka permintaan tarik draf ketika selesai alih-alih bertanya terlebih dahulu. `/login` berjalan dalam agent view dan membuka dialog masuk. Dialog keluar `Background work is running` menawarkan `Move to background and exit`. Handoff keluar juga mencakup subagent latar belakang, yang dilanjutkan dari transkrip mereka pada bangun berikutnya alih-alih dilaporkan sebagai gagal. `claude --bg` dikombinasikan dengan `-p` atau `--print` ditolak dengan kesalahan. Host sesi latar belakang meminta izin Jaringan Lokal macOS pada akses LAN pertama alih-alih gagal dengan `connect: no route to host`. |

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

1106| v2.1.195 | Pekerjaan yang sedang berlangsung dibawa ketika Anda melepaskan sesi di Windows juga; atur `CLAUDE_DISABLE_ADOPT=1` untuk menghentikannya sebagai gantinya. Grup `Completed` mengisi ruang vertikal yang tersisa dan header dikompakkan di terminal pendek. Versi Claude Code yang lebih lama tidak lagi menjatuhkan bidang `state.json` sesi yang lebih baru atau menyembunyikan sesi tersebut dari `claude agents`. Melampirkan ke sesi yang dihentikan beralih segera alih-alih menampilkan layar kosong selama lima detik. Supervisor yang tidak dapat menerima koneksi keluar dan melepaskan kuncinya sendiri. |1122| v2.1.195 | Pekerjaan dalam penerbangan terbawa ketika Anda memindahkan sesi di Windows juga; atur `CLAUDE_DISABLE_ADOPT=1` untuk menghentikannya. Grup `Completed` mengisi ruang vertikal yang tersisa dan header mengompak pada terminal pendek. Versi Claude Code yang lebih lama tidak lagi menjatuhkan bidang `state.json` sesi yang lebih baru atau menyembunyikan sesi itu dari `claude agents`. Melampirkan ke sesi yang dihentikan beralih segera alih-alih menampilkan layar kosong selama hingga lima detik. Supervisor yang tidak dapat menerima koneksi keluar dan melepaskan kuncinya sendiri. |

1107| v2.1.191 | `claude --bg` dengan nama `--agent` yang tidak cocok dengan subagen apa pun Anda gagal meluncurkan: sesi keluar segera dengan kesalahan `--agent '<name>' not found` alih-alih berjalan dengan agen default. |1123| v2.1.191 | `claude --bg` dengan nama `--agent` yang tidak cocok dengan subagent Anda apa pun gagal peluncuran: sesi keluar segera dengan kesalahan `--agent '<name>' not found` alih-alih berjalan dengan agent default. |

1108| v2.1.174 | Sesi latar belakang tidak lagi mewarisi variabel titik akhir gateway seperti `ANTHROPIC_BASE_URL` dari shell peluncuran supervisor; supervisor menyediakan snapshot kredensial segar ke worker yang sudah dipanaskan sebelumnya, memperbaiki kesalahan `Could not resolve authentication method` yang palsu. |1124| v2.1.174 | Sesi latar belakang tidak lagi mewarisi variabel endpoint gateway seperti `ANTHROPIC_BASE_URL` dari shell peluncuran supervisor; supervisor menyediakan snapshot kredensial segar ke worker yang sudah hangat, memperbaiki kesalahan `Could not resolve authentication method` yang palsu. |

1109| v2.1.172 | `/model` dalam input pengiriman menetapkan penimpaan model pengiriman yang dibatasi sesi. |1125| v2.1.172 | `/model` dalam input dispatch menetapkan penggantian model dispatch yang berscopus sesi. |

1110| v2.1.161 | Ringkasan baris menampilkan hitungan `done/total` untuk item kerja paralel; panel intip menyebutkan item kerja paralel yang paling lama berjalan. |1126| v2.1.161 | Ringkasan baris menampilkan hitungan `done/total` untuk item kerja paralel; panel intip menyebutkan item kerja paralel yang paling lama berjalan. |

1111| v2.1.157 | `claude agents` menerima `--agent`; sesi yang dikirim menghormati pengaturan `agent`. |1127| v2.1.157 | `claude agents` menerima `--agent`; sesi yang didispatch menghormati pengaturan `agent`. |

1112| v2.1.145 | Dikte suara didukung dalam input balasan panel intip dan input pengiriman. |1128| v2.1.145 | Dikte suara didukung dalam input balasan panel intip dan input dispatch. |

1113| v2.1.143 | Pengaturan `worktree.bgIsolation` ditambahkan; `claude agents` menerima `--allow-dangerously-skip-permissions`. |1129| v2.1.143 | Pengaturan `worktree.bgIsolation` ditambahkan; `claude agents` menerima `--allow-dangerously-skip-permissions`. |

1114| v2.1.142 | `claude agents` menerima `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions`, `--settings`, `--add-dir`, `--plugin-dir`, `--mcp-config`, dan `--strict-mcp-config`. |1130| v2.1.142 | `claude agents` menerima `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions`, `--settings`, `--add-dir`, `--plugin-dir`, `--mcp-config`, dan `--strict-mcp-config`. |

1115| v2.1.141 | `claude agents` menerima `--cwd` untuk membatasi daftar ke satu proyek. |1131| v2.1.141 | `claude agents` menerima `--cwd` untuk membatasi daftar ke satu proyek. |

1116| v2.1.139 | Tampilan agen diperkenalkan sebagai pratinjau penelitian. |1132| v2.1.139 | Agent view diperkenalkan sebagai pratinjau penelitian. |

agents.md +1 −1

Details

13| [Subagents](/docs/id/sub-agents) | Pekerja delegasi di dalam satu sesi yang melakukan tugas sampingan dalam konteks mereka sendiri dan mengembalikan ringkasan | Tugas sampingan akan membanjiri percakapan utama Anda dengan hasil pencarian, log, atau konten file yang tidak akan Anda referensikan lagi |13| [Subagents](/docs/id/sub-agents) | Pekerja delegasi di dalam satu sesi yang melakukan tugas sampingan dalam konteks mereka sendiri dan mengembalikan ringkasan | Tugas sampingan akan membanjiri percakapan utama Anda dengan hasil pencarian, log, atau konten file yang tidak akan Anda referensikan lagi |

14| [Agent view](/docs/id/agent-view) | Satu layar untuk mengirim dan memantau sesi yang berjalan di latar belakang, dibuka dengan `claude agents`. Pratinjau penelitian | Anda memiliki beberapa tugas independen dan ingin menyerahkannya, memeriksa status sekilas, dan hanya melangkah ketika salah satunya membutuhkan Anda |14| [Agent view](/docs/id/agent-view) | Satu layar untuk mengirim dan memantau sesi yang berjalan di latar belakang, dibuka dengan `claude agents`. Pratinjau penelitian | Anda memiliki beberapa tugas independen dan ingin menyerahkannya, memeriksa status sekilas, dan hanya melangkah ketika salah satunya membutuhkan Anda |

15| [Agent teams](/docs/id/agent-teams) | Beberapa sesi terkoordinasi dengan daftar tugas bersama dan pesan antar-agen, dikelola oleh pemimpin. Eksperimental dan dinonaktifkan secara default | Anda ingin Claude membagi proyek menjadi beberapa bagian, menugaskannya, dan menjaga pekerja tetap tersinkronisasi |15| [Agent teams](/docs/id/agent-teams) | Beberapa sesi terkoordinasi dengan daftar tugas bersama dan pesan antar-agen, dikelola oleh pemimpin. Eksperimental dan dinonaktifkan secara default | Anda ingin Claude membagi proyek menjadi beberapa bagian, menugaskannya, dan menjaga pekerja tetap tersinkronisasi |

16| [Projects](/docs/id/claude-projects) | Satu percakapan berkelanjutan di claude.ai/code atau di aplikasi desktop. Claude memulai sesi cloud paralel yang disebut threads, memberikan masing-masing repositori proyek, instruksi, dan memori, dan menunjukkan kepada Anda mana yang membutuhkan Anda. Beta publik di Pro dan Max | Pekerjaan mencakup banyak tugas selama berhari-hari atau berminggu-minggu, harus terus berjalan ketika mesin Anda mati, dan Anda lebih suka mendeskripsikannya sekali daripada mengirim dan melacak setiap sesi |16| [Projects](/docs/id/claude-projects) | Satu percakapan berkelanjutan di claude.ai/code atau di aplikasi desktop. Claude memulai sesi paralel yang disebut threads, di cloud atau, ketika Anda meminta, di komputer Anda melalui Remote Control, memberikan masing-masing instruksi proyek, dan menunjukkan kepada Anda mana yang membutuhkan Anda. Beta publik di Pro dan Max | Pekerjaan mencakup banyak tugas selama berhari-hari atau berminggu-minggu, harus terus berjalan ketika mesin Anda mati, dan Anda lebih suka mendeskripsikannya sekali daripada mengirim dan melacak setiap sesi |

17| [Dynamic workflows](/docs/id/workflows) | Skrip yang menjalankan banyak subagents dan memeriksa silang hasil mereka, untuk pekerjaan yang terlalu besar untuk dikoordinasikan satu putaran sekaligus atau yang memerlukan lebih dari satu kali lintasan | Tugas terlalu besar untuk segelintir subagents, atau Anda ingin temuan diverifikasi satu sama lain: audit seluruh codebase, migrasi 500 file, penelitian yang diperiksa silang, atau rencana yang disusun dari beberapa sudut |17| [Dynamic workflows](/docs/id/workflows) | Skrip yang menjalankan banyak subagents dan memeriksa silang hasil mereka, untuk pekerjaan yang terlalu besar untuk dikoordinasikan satu putaran sekaligus atau yang memerlukan lebih dari satu kali lintasan | Tugas terlalu besar untuk segelintir subagents, atau Anda ingin temuan diverifikasi satu sama lain: audit seluruh codebase, migrasi 500 file, penelitian yang diperiksa silang, atau rencana yang disusun dari beberapa sudut |

18 18 

19Dalam setiap pendekatan, pekerja adalah sesi Claude. Untuk melibatkan alat yang berbeda, paparkan ke Claude sebagai [MCP server](/docs/id/mcp).19Dalam setiap pendekatan, pekerja adalah sesi Claude. Untuk melibatkan alat yang berbeda, paparkan ke Claude sebagai [MCP server](/docs/id/mcp).

artifacts.md +39 −12

Details

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

52```52```

53 53 

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

55 55 

56* **Mode Auto**: pengklasifikasi meninjau penerbitan alih-alih meminta Anda, sehingga Claude dapat menerbitkan halaman tanpa Anda melihat prompt. Mode mana yang dimulai sesi Anda tergantung pada paket Anda; lihat [mode izin awal](/docs/id/permission-modes#eliminate-prompts-with-auto-mode).56Artefak tetap pribadi untuk Anda sampai Anda [membagikannya](#share-an-artifact). Setelah Anda membagikannya secara publik, Claude Code meminta persetujuan Anda sekali per percakapan sebelum mengubahnya, atau dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) memiliki pengklasifikasi meninjau perubahan tersebut.

57* **Mode Manual dan Accept edits**: Claude Code meminta izin; mungkin mengatakan sesuatu seperti `Claude wants to publish deploy-failures.html, uploading it to claude.ai (Anthropic's servers) to host as the page "Deploy failures by service", private to you until you share it`. Pilih **Yes** untuk menerbitkan.

58 57 

59Setelah Anda menyetujui artefak sekali, Claude Code menerbitkannya kembali tanpa bertanya, dan bertanya lagi dalam beberapa kasus, termasuk ketika:58Jika Anda mematikan [feature-flag fetching](/docs/id/env-vars#features-that-need-feature-flag-fetching), Claude Code meminta sebelum penerbitan pertama setiap artefak, atau dalam auto mode memiliki pengklasifikasi meninjau artefak tersebut.

60 

61* Claude mendeklarasikan kemampuan runtime untuk halaman, seperti [connector calls](#pull-live-data-with-mcp-connectors) atau [file downloads](#offer-a-file-download)

62* Anda telah [membagikannya secara publik](#share-an-artifact)

63* Anda telah membagikannya dengan orang-orang tertentu atau organisasi Anda dengan versi terbaru dipilih sebagai versi yang dilihat pemirsa

64 59 

65Setelah penerbitan pertama, Claude mencetak URL, dan browser Anda membuka halaman baru. Jika Anda mengirim prompt melalui [Remote Control](/docs/id/remote-control) dari claude.ai, Claude Desktop, atau aplikasi Claude mobile, tidak ada tab yang terbuka di mesin yang menjalankan sesi. Browser terbuka di sana lain kali Claude menerbitkan artefak dari prompt yang Anda ketik di terminal. Tekan `Ctrl+]` kapan saja untuk membuka kembali artefak terbaru dari sesi Anda.60Setelah penerbitan pertama, Claude mencetak URL, dan browser Anda membuka halaman baru. Jika Anda mengirim prompt melalui [Remote Control](/docs/id/remote-control) dari claude.ai, Claude Desktop, atau aplikasi Claude mobile, tidak ada tab yang terbuka di mesin yang menjalankan sesi. Browser terbuka di sana lain kali Claude menerbitkan artefak dari prompt yang Anda ketik di terminal. Tekan `Ctrl+]` kapan saja untuk membuka kembali artefak terbaru dari sesi Anda.

66 61 


305 300 

306Untuk tipografi, Claude dapat memuat typeface dari Google Fonts, satu-satunya sumber font eksternal yang dapat dimuat halaman artefak. Claude menginline typeface lain apa pun sebagai `@font-face` data URI dan memberikan setiap typeface tumpukan fallback, sehingga halaman masih ditampilkan jika font tidak dimuat. Untuk menggunakan typeface tertentu, sebutkan dalam prompt atau sistem desain Anda.301Untuk tipografi, Claude dapat memuat typeface dari Google Fonts, satu-satunya sumber font eksternal yang dapat dimuat halaman artefak. Claude menginline typeface lain apa pun sebagai `@font-face` data URI dan memberikan setiap typeface tumpukan fallback, sehingga halaman masih ditampilkan jika font tidak dimuat. Untuk menggunakan typeface tertentu, sebutkan dalam prompt atau sistem desain Anda.

307 302 

308<h2 id="draft-a-design-canvas">303<h2 id="start-from-a-slides-design-or-docs-template">

309 Buat kanvas desain304 Mulai dari template Slides, Design, atau Docs

310</h2>305</h2>

311 306 

312Untuk membuat mockup UI, alur layar, halaman landing, atau poster daripada membangun halaman, jalankan `/design` dengan ringkasan singkat. Claude membuat desain sebagai artboard pada satu kanvas dan menerbitkan kanvas sebagai artefak Design. Ringkasan singkat menamai apa yang ingin Anda gambar:307Alih-alih membangun halaman dari awal, Claude dapat memulai artefak dari salah satu template di akun claude.ai Anda: [Claude Slides](https://support.claude.com/en/articles/17153992-what-are-artifacts-and-how-do-i-use-them#h_11d5a9a5fa) untuk presentasi, [Claude Design](https://support.claude.com/en/articles/14604416-get-started-with-claude-design) untuk desain visual, atau [Claude Docs](https://support.claude.com/en/articles/16923645-get-started-with-claude-docs) untuk dokumen yang akan dibaca dan diedit orang lain. Masing-masing membuka di editor tersendiri di claude.ai, di mana Anda dan rekan tim mengubahnya secara langsung atau meminta Claude melakukannya, dan mengekspornya ke format seperti PowerPoint, PDF, atau Word.

308 

309Untuk memulai dari template, jelaskan apa yang Anda inginkan, seperti "ubah catatan migrasi menjadi deck untuk tinjauan Kamis" atau "tulis rencana ini sebagai dokumen untuk tim". Claude memilih template yang cocok, mengisinya dari permintaan Anda dan dari apa yang sudah ada di sesi, dan memberikan Anda tautannya. Untuk deck atau desain, Anda juga dapat menjalankan `/slides` atau `/design` dengan ringkasan singkat.

310 

311<Note>

312 Template sedang dalam beta. Mereka aktif secara default pada paket Pro, Max, dan Team. Pada paket Enterprise, Owner [mengaktifkan setiap template](https://support.claude.com/en/articles/16994751-artifacts-admin-guide-for-team-and-enterprise-plans) di bawah **Organization settings > Artifacts**. Jika organisasi Anda menonaktifkan template Slides, `/slides` tidak muncul; jika menonaktifkan template Design, `/design` tidak membuat draf desain. Kedua perintah memerlukan Claude Code v2.1.265 atau lebih baru dan sesi di mana [artefak tersedia](#availability).

313</Note>

314 

315<h3 id="make-a-slide-deck">

316 Buat slide deck

317</h3>

318 

319Jalankan `/slides` dengan ringkasan singkat yang mengatakan apa yang deck bahas dan untuk siapa:

320 

321```text wrap theme={null}

322/slides a quarterly review of the platform team's reliability work, for the engineering all-hands

323```

324 

325Claude membuat artefak Claude Slides dan memberikan Anda tautannya. Buka di browser desktop untuk mengedit atau mempresentasikan deck. Jika Anda menjalankan `/slides` tanpa ringkasan singkat, Claude menanyakan apa yang seharusnya deck bahas sebelum membuat apa pun.

326 

327<h3 id="draft-a-design-canvas">

328 Buat kanvas desain

329</h3>

330 

331Untuk membuat mockup UI, alur layar, halaman landing, atau poster daripada membangun halaman, jalankan `/design` dengan ringkasan singkat. Claude membuat desain sebagai artboard pada satu kanvas dan menerbitkan kanvas sebagai artefak Claude Design. Ringkasan singkat menamai apa yang ingin Anda gambar:

313 332 

314```text wrap theme={null}333```text wrap theme={null}

315/design a settings screen for a mobile banking app334/design a settings screen for a mobile banking app


317 336 

318Buka artefak yang diterbitkan di browser desktop untuk meninjau artboard. Pilih elemen pada artboard dan ubah, dan edit Anda disimpan secara otomatis. Anda dapat mengekspor setiap artboard sebagai PNG atau PDF.337Buka artefak yang diterbitkan di browser desktop untuk meninjau artboard. Pilih elemen pada artboard dan ubah, dan edit Anda disimpan secara otomatis. Anda dapat mengekspor setiap artboard sebagai PNG atau PDF.

319 338 

320`/design` memerlukan sesi di mana [artefak tersedia](#availability) dan Claude Code v2.1.265 atau lebih baru.339<h3 id="write-a-document-with-claude-docs">

340 Tulis dokumen dengan Claude Docs

341</h3>

342 

343Claude Docs mencapai Claude Code sebagai [konektor](/docs/id/mcp#use-mcp-servers-from-claude-ai) claude.ai daripada perintah. Ketika terhubung, `/mcp` mencantumnya sebagai `claude.ai Claude Docs`. Permintaan untuk dokumen yang dimaksudkan untuk orang lain kemudian pergi ke Claude Docs alih-alih halaman artefak: spesifikasi, proposal, atau penulisan rencana yang Anda kerjakan melalui sesi. Claude memberikan Anda tautan dokumen ketika sudah dibuat draf.

344 

345Dokumen yang termasuk dalam basis kode, seperti README, tetap menjadi file. Untuk mendapatkan file untuk sesuatu yang Claude akan menempatkan di Claude Docs, namai formatnya, seperti `.docx` atau file Markdown di repositori.

346 

347Untuk mematikan konektor, tambahkan `claude.ai Claude Docs` ke `deniedMcpServers` atau gunakan toggle `/mcp`, keduanya dijelaskan dalam [Nonaktifkan konektor claude.ai](/docs/id/mcp#disable-claude-ai-connectors).

321 348 

322<h2 id="page-constraints">349<h2 id="page-constraints">

323 Batasan halaman350 Batasan halaman

authentication.md +47 −21

Details

32 32 

33Untuk keluar dan melakukan autentikasi ulang, ketik `/logout` di prompt Claude Code. Keluar juga mengatur ulang status pengaturan peluncuran pertama Anda, jadi lain kali Anda menjalankan `claude` akan memandu Anda melalui login dan pengaturan lagi.33Untuk keluar dan melakukan autentikasi ulang, ketik `/logout` di prompt Claude Code. Keluar juga mengatur ulang status pengaturan peluncuran pertama Anda, jadi lain kali Anda menjalankan `claude` akan memandu Anda melalui login dan pengaturan lagi.

34 34 

35Untuk tetap masuk ke beberapa akun sekaligus, seperti akun kerja dan pribadi, berikan setiap akun direktori konfigurasi sendiri. Ketika Anda memulai `claude`, atur variabel lingkungan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars#variables) ke direktori untuk akun yang ingin Anda gunakan. Setiap direktori memiliki pengaturan sendiri, riwayat sesi, dan login claude.ai atau kunci API. Misalnya, di Bash atau Zsh, tambahkan alias ini ke `~/.bashrc` atau `~/.zshrc` sehingga `claude-work` menggunakan akun kerja Anda sementara `claude` menyimpan akun pribadi Anda:

36 

37```bash theme={null}

38alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'

39```

40 

41Setelah Anda membuka terminal baru dan menjalankan `claude-work` untuk pertama kalinya, Claude Code memandu Anda melalui login dan pengaturan untuk direktori baru. Direktori terpisah tidak menjaga dua login Claude Console [tanpa kunci API](#sign-in-without-an-api-key) terpisah, karena Claude Code menyimpan jenis login itu di luar direktori konfigurasi.

42 

35Jika Anda mengalami kesulitan masuk, lihat [pemecahan masalah autentikasi](/docs/id/troubleshoot-install#login-and-authentication).43Jika Anda mengalami kesulitan masuk, lihat [pemecahan masalah autentikasi](/docs/id/troubleshoot-install#login-and-authentication).

36 44 

37<h2 id="set-up-team-authentication">45<h2 id="set-up-team-authentication">


122* File pengaturan apa pun menetapkan [`forceLoginOrgUUID`](#restrict-login-to-your-organization), atau menetapkan `forceLoginMethod` ke `"claudeai"` atau `"console"`130* File pengaturan apa pun menetapkan [`forceLoginOrgUUID`](#restrict-login-to-your-organization), atau menetapkan `forceLoginMethod` ke `"claudeai"` atau `"console"`

123* Sumber pengaturan terkelola di mesin Anda, seperti file pengaturan terkelola, profil MDM, atau pengaturan terkelola server yang di-cache, ada tetapi Claude Code [tidak dapat membacanya](/docs/id/managed-settings#invalid-entries-in-managed-settings) dan tidak ada sumber terkelola lain yang menyediakan kebijakan131* Sumber pengaturan terkelola di mesin Anda, seperti file pengaturan terkelola, profil MDM, atau pengaturan terkelola server yang di-cache, ada tetapi Claude Code [tidak dapat membacanya](/docs/id/managed-settings#invalid-entries-in-managed-settings) dan tidak ada sumber terkelola lain yang menyediakan kebijakan

124 132 

125Batalkan `ANTHROPIC_API_KEY` sebelum Anda masuk tanpa kunci. Profil yang ditulis oleh masuk Console Claude Code sendiri, atau oleh CLI Claude Platform `ant auth login`, adalah jenis kredensial yang sama, jadi masuk lagi menggantinya.133Batalkan `ANTHROPIC_API_KEY` sebelum Anda masuk tanpa kunci.

126 134 

127Setelah Anda masuk tanpa kunci, Anda memiliki profil alih-alih kunci API yang disimpan:135Setelah Anda masuk tanpa kunci, Anda memiliki profil alih-alih kunci API yang disimpan:

128 136 


160 168 

161Untuk memerlukan bahwa login claude.ai pengembang milik organisasi Anthropic tertentu, atur [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) dan [`forceLoginOrgUUID`](/docs/id/settings-reference#forceloginorguuid) dalam [pengaturan terkelola](/docs/id/managed-settings). Atur `forceLoginOrgUUID` ke ID organisasi Anda, ditampilkan dalam [pengaturan admin claude.ai](https://claude.ai/admin-settings/organization) untuk organisasi Claude for Teams atau Enterprise. Claude Code melaporkan kesalahan untuk login claude.ai ke organisasi lain dan keluar saat startup jika kredensial claude.ai yang digunakan milik organisasi yang tidak terdaftar.169Untuk memerlukan bahwa login claude.ai pengembang milik organisasi Anthropic tertentu, atur [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) dan [`forceLoginOrgUUID`](/docs/id/settings-reference#forceloginorguuid) dalam [pengaturan terkelola](/docs/id/managed-settings). Atur `forceLoginOrgUUID` ke ID organisasi Anda, ditampilkan dalam [pengaturan admin claude.ai](https://claude.ai/admin-settings/organization) untuk organisasi Claude for Teams atau Enterprise. Claude Code melaporkan kesalahan untuk login claude.ai ke organisasi lain dan keluar saat startup jika kredensial claude.ai yang digunakan milik organisasi yang tidak terdaftar.

162 170 

163Untuk login Claude Console, Claude Code menggunakan `forceLoginOrgUUID` untuk pra-pilih organisasi di halaman masuk Console ketika Anda menetapkannya ke ID organisasi Console tunggal, ditampilkan di [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization). Ini tidak memeriksa organisasi mana yang dimiliki kredensial Console yang dihasilkan, saat login atau saat startup, dan pengembang yang masuk dengan akun Console sebelum Anda menerapkan kunci tetap masuk.171Untuk login Claude Console, Claude Code menggunakan `forceLoginOrgUUID` untuk pra-pilih organisasi di halaman masuk Console ketika Anda menetapkannya ke ID organisasi Console tunggal, ditampilkan di [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization). Ini tidak memeriksa organisasi mana yang dimiliki kredensial Console yang dihasilkan, saat login atau saat startup. Pengembang yang masuk dengan akun Console sebelum Anda menerapkan kunci tetap masuk, dan kunci yang disimpan itu diblokir di mesin yang juga memerlukan masuk [gateway](/docs/id/claude-apps-gateway) atau dalam sesi yang memilih penyedia cloud.

164 172 

165Jika Anda menetapkan `forceLoginOrgUUID` dalam file pengaturan apa pun, Claude Code berhenti menawarkan [masuk Console tanpa kunci](#sign-in-without-an-api-key) dalam sesi yang berlaku file itu dan membuat kunci API sebagai gantinya. Untuk mengarahkan pengembang ke masuk claude.ai sebagai gantinya, atur `forceLoginMethod` ke `"claudeai"`.173Jika Anda menetapkan `forceLoginOrgUUID` dalam file pengaturan apa pun, Claude Code berhenti menawarkan [masuk Console tanpa kunci](#sign-in-without-an-api-key) dalam sesi yang berlaku file itu dan membuat kunci API sebagai gantinya. Untuk mengarahkan pengembang ke masuk claude.ai sebagai gantinya, atur `forceLoginMethod` ke `"claudeai"`.

166 174 

167Pengembang dapat masuk dari beberapa jalur: alur terminal `/login`, [ekstensi VS Code](/docs/id/vs-code), Agent SDK, `claude setup-token`, `/install-github-app`, dan [masuk gateway](/docs/id/claude-apps-gateway) untuk organisasi yang merutekan melalui gateway cloud. Pada Claude Code v2.1.212 atau lebih baru, setiap jalur menerapkan `forceLoginMethod`; sebelum v2.1.212, hanya login terminal yang menerapkan salah satu kunci. Di layar login interaktif terminal, dicapai oleh `/login` atau onboarding pertama kali, Claude Code pra-pilih metode `claudeai` atau `console` tanpa memberlakukannya, jadi bahkan dengan `forceLoginMethod` diatur ke `"claudeai"`, pengembang masih dapat menyelesaikan login Console di sana. Jalur berbeda pada `forceLoginOrgUUID`:175Pada Claude Code v2.1.212 atau lebih baru, setiap jalur login yang terdaftar di sini menerapkan `forceLoginMethod`. Di layar login interaktif terminal, dicapai oleh `/login` atau onboarding pertama kali, Claude Code pra-pilih metode `claudeai` atau `console` tanpa memberlakukannya, jadi bahkan dengan `forceLoginMethod` diatur ke `"claudeai"`, pengembang masih dapat menyelesaikan login Console di sana.

168 176 

169* **Login terminal, ekstensi VS Code, dan Agent SDK**: verifikasi `forceLoginOrgUUID` untuk login akun claude.ai177Jalur berbeda pada `forceLoginOrgUUID`:

178 

179* **Login terminal, [ekstensi VS Code](/docs/id/vs-code), dan Agent SDK**: verifikasi `forceLoginOrgUUID` untuk login akun claude.ai

170* **`claude setup-token` dan `/install-github-app`**: hanya berlakukan `forceLoginMethod`, jadi mereka dapat membuat token di organisasi yang berbeda180* **`claude setup-token` dan `/install-github-app`**: hanya berlakukan `forceLoginMethod`, jadi mereka dapat membuat token di organisasi yang berbeda

171* **Masuk [gateway](/docs/id/claude-apps-gateway)**: dipilih oleh `forceLoginMethod: "gateway"` daripada dibatasi olehnya, dan tidak mengautentikasi terhadap organisasi Anthropic, jadi `forceLoginOrgUUID` tidak berlaku; gunakan penyedia identitas gateway Anda untuk membatasi akses181* **Masuk [gateway](/docs/id/claude-apps-gateway)**: dipilih oleh `forceLoginMethod: "gateway"` daripada dibatasi olehnya, dan tidak mengautentikasi terhadap organisasi Anthropic, jadi `forceLoginOrgUUID` tidak berlaku; gunakan penyedia identitas gateway Anda untuk membatasi akses

172 182 

173Terapkan kunci melalui alat manajemen perangkat Anda. [Pengaturan terkelola server](/docs/id/server-managed-settings) hanya menjangkau akun yang sudah diautentikasi ke organisasi Anda, jadi mereka tidak dapat mengarahkan login pertama pengembang. Jika organisasi Anda juga mendistribusikan pengaturan terkelola server, atur kunci di kedua tempat: sumber [pengaturan terkelola tidak bergabung](/docs/id/server-managed-settings#settings-precedence), dan pengaturan terkelola server yang di-cache menggantikan file yang dikelola perangkat, terlepas dari beberapa [pengecualian per-kunci](/docs/id/server-managed-settings#per-key-exceptions-across-managed-sources). `forceLoginOrgUUID` dan nilai `"claudeai"` dan `"console"` dari `forceLoginMethod` bukan di antara pengecualian tersebut, jadi simpan di kedua tempat.183Terapkan kunci melalui alat manajemen perangkat Anda. [Pengaturan terkelola server](/docs/id/server-managed-settings) hanya menjangkau akun yang sudah diautentikasi ke organisasi Anda, jadi mereka tidak dapat mengarahkan login pertama pengembang. Jika organisasi Anda juga mendistribusikan pengaturan terkelola server, atur kunci di kedua tempat: sumber [pengaturan terkelola tidak bergabung](/docs/id/server-managed-settings#settings-precedence), dan pengaturan terkelola server yang di-cache menggantikan file yang dikelola perangkat, terlepas dari beberapa [pengecualian per-kunci](/docs/id/server-managed-settings#per-key-exceptions-across-managed-sources). `forceLoginOrgUUID` dan nilai `"claudeai"` dan `"console"` dari `forceLoginMethod` bukan di antara pengecualian tersebut, jadi simpan di kedua tempat.

174 184 

185Dalam penerapan [gateway](/docs/id/claude-apps-gateway), juga simpan `forceLoginMethod` dan `forceLoginOrgUUID` di luar [pengaturan yang disajikan gateway](/docs/id/claude-apps-gateway-config#managed).

186 

175Kunci juga memutuskan apakah sesi yang tidak menggunakan kredensial login dapat dimulai. Lihat [`forceLoginOrgUUID`](/docs/id/settings-reference#forceloginorguuid) dalam referensi pengaturan untuk perilaku lengkap.187Kunci juga memutuskan apakah sesi yang tidak menggunakan kredensial login dapat dimulai. Lihat [`forceLoginOrgUUID`](/docs/id/settings-reference#forceloginorguuid) dalam referensi pengaturan untuk perilaku lengkap.

176 188 

177* **`ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper`**: diblokir saat startup, karena keanggotaan organisasi tidak dapat diverifikasi untuk kredensial lingkungan189* **`ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper`**: diblokir saat startup. Di bawah `forceLoginOrgUUID`, keanggotaan organisasi tidak dapat diverifikasi untuk kredensial lingkungan, dan di bawah `forceLoginMethod` kredensial akan berdiri untuk masuk yang diperlukan. Ketika pengaturan terkelola juga memerlukan masuk [gateway](/docs/id/claude-apps-gateway), Claude Code memblokir kunci API yang disimpan oleh login Claude Console sebelumnya dengan cara yang sama. Lihat [Kebijakan administrator memerlukan masuk gateway Cloud](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in)

178* **Sesi penyedia cloud seperti Amazon Bedrock**: tidak diblokir, karena mereka mengautentikasi terhadap penyedia cloud Anda. Batasi mereka melalui kebijakan IAM cloud Anda190* **Sesi penyedia cloud seperti Amazon Bedrock**: diblokir hanya saat kredensial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper`, atau kunci API yang disimpan oleh login Claude Console sebelumnya, masih ada di mesin. Hapusnya dan sesi dimulai. Sesi ini mengautentikasi terhadap penyedia cloud Anda, yang kebijakan akses mereka mengaturnya

179* **[Profil Anthropic atau kredensial federasi](#anthropic-profiles-and-federation-credentials)**: tidak diblokir, dan kunci tidak memeriksa organisasi mana yang dimiliki profil191* **[Profil Anthropic atau kredensial federasi](#anthropic-profiles-and-federation-credentials)**: tidak diblokir kecuali kredensial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper`, atau kunci API yang disimpan oleh login Claude Console sebelumnya, juga ada di mesin. Kunci tidak memeriksa organisasi mana yang dimiliki profil

180 192 

181<h2 id="credential-management">193<h2 id="credential-management">

182 Manajemen kredensial194 Manajemen kredensial


192 * Claude Code mengelola `.credentials.json` melalui `/login` dan `/logout`. Untuk merutekan permintaan melalui titik akhir API kustom, atur variabel lingkungan [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) sebagai gantinya.204 * Claude Code mengelola `.credentials.json` melalui `/login` dan `/logout`. Untuk merutekan permintaan melalui titik akhir API kustom, atur variabel lingkungan [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) sebagai gantinya.

193* **Jenis autentikasi yang didukung**: kredensial claude.ai, kredensial API Claude, Microsoft Foundry Auth, Bedrock Auth, Vertex Auth, kredensial profil Anthropic dan [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation), dan token sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway).205* **Jenis autentikasi yang didukung**: kredensial claude.ai, kredensial API Claude, Microsoft Foundry Auth, Bedrock Auth, Vertex Auth, kredensial profil Anthropic dan [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation), dan token sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway).

194* **Skrip kredensial kustom**: konfigurasi pengaturan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) untuk menjalankan skrip shell yang mengembalikan kunci API.206* **Skrip kredensial kustom**: konfigurasi pengaturan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) untuk menjalankan skrip shell yang mengembalikan kunci API.

195* **Interval penyegaran**: Claude Code menjalankan kembali `apiKeyHelper` setelah lima menit secara default. Atur variabel lingkungan `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` untuk interval penyegaran kustom. Lihat [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) untuk kasus lain di mana Claude Code menjalankan kembali helper.207* **Interval penyegaran**: lihat [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) untuk kasus di mana Claude Code menjalankan kembali helper.

196* **Pemberitahuan helper lambat**: jika `apiKeyHelper` membutuhkan waktu lebih lama dari 10 detik untuk mengembalikan kunci, Claude Code menampilkan pemberitahuan peringatan di bilah prompt yang menunjukkan waktu yang telah berlalu. Jika Anda melihat pemberitahuan ini secara teratur, periksa apakah skrip kredensial Anda dapat dioptimalkan.208* **Pemberitahuan helper lambat**: jika `apiKeyHelper` membutuhkan waktu lebih lama dari 10 detik untuk mengembalikan kunci, Claude Code menampilkan pemberitahuan peringatan di bilah prompt yang menunjukkan waktu yang telah berlalu. Jika Anda melihat pemberitahuan ini secara teratur, periksa apakah skrip kredensial Anda dapat dioptimalkan.

197* **Kegagalan helper**: ketika skrip keluar dengan kesalahan, habis waktu, atau tidak mencetak apa pun, permintaan gagal dengan [`Your apiKeyHelper script is failing`](/docs/id/errors#your-apikeyhelper-script-is-failing) dalam tiga upaya. Sebelum v2.1.208, kegagalan helper muncul sebagai 401 generik setelah sekitar sepuluh upaya ulang diam.209* **Kegagalan helper**: ketika skrip keluar dengan kesalahan, habis waktu, atau tidak mencetak apa pun, permintaan gagal dengan [`Your apiKeyHelper script is failing`](/docs/id/errors#your-apikeyhelper-script-is-failing) dalam tiga upaya.

198 210 

199`apiKeyHelper`, `ANTHROPIC_API_KEY`, dan `ANTHROPIC_AUTH_TOKEN` berlaku untuk CLI dan permukaan yang membungkusnya, termasuk ekstensi VS Code, Agent SDK, dan GitHub Actions. Claude Desktop dan sesi cloud tidak memanggil `apiKeyHelper` atau membaca variabel lingkungan ini: mereka menggunakan OAuth, kecuali sesi desktop yang menjalankan [konfigurasi inferensi pihak ketiga](/docs/id/llm-gateway-connect#desktop-app), yang melakukan autentikasi dengan kredensial konfigurasi tersebut.211`apiKeyHelper`, `ANTHROPIC_API_KEY`, dan `ANTHROPIC_AUTH_TOKEN` berlaku untuk CLI dan permukaan yang membungkusnya, termasuk ekstensi VS Code, Agent SDK, dan GitHub Actions. Claude Desktop dan sesi cloud tidak memanggil `apiKeyHelper` atau membaca variabel lingkungan ini: mereka menggunakan OAuth, kecuali sesi desktop yang menjalankan [konfigurasi inferensi pihak ketiga](/docs/id/llm-gateway-connect#desktop-app), yang melakukan autentikasi dengan kredensial konfigurasi tersebut.

200 212 


202 Perbarui login yang akan kedaluwarsa214 Perbarui login yang akan kedaluwarsa

203</h3>215</h3>

204 216 

205Ketika login yang Anda buat dengan `/login` dalam tiga hari akan kedaluwarsa, Claude Code menampilkan peringatan saat startup: `Your login expires in 3 days · run /login to renew`. Memerlukan Claude Code v2.1.203 atau lebih baru. Sebelum v2.1.217, peringatan muncul lima hari keluar.217Ketika login yang Anda buat dengan `/login` dalam tiga hari akan kedaluwarsa, Claude Code menampilkan peringatan saat startup: `Your login expires in 3 days · run /login to renew`.

206 218 

207Jalankan `/login` untuk memperbarui. Peringatan bersifat informatif dan tidak pernah memblokir permintaan: autentikasi terus bekerja sampai login benar-benar kedaluwarsa. Masa hidup login itu sendiri tidak berubah; peringatan awal adalah apa yang ditambahkan v2.1.203.219Jalankan `/login` untuk memperbarui. Peringatan bersifat informatif dan tidak pernah memblokir permintaan: autentikasi terus bekerja sampai login benar-benar kedaluwarsa.

208 220 

209Setelah login yang disimpan kedaluwarsa dan tidak dapat disegarkan, setiap permintaan model gagal dengan [`Login expired · Please run /login`](/docs/id/errors#login-expired) sampai Anda masuk lagi. Sebelum v2.1.206, Claude Code melaporkan login yang kedaluwarsa pada permintaan model sebagai kesalahan model sebagai gantinya.221Setelah login yang disimpan kedaluwarsa dan tidak dapat disegarkan, setiap permintaan model gagal dengan [`Login expired · Please run /login`](/docs/id/errors#login-expired) sampai Anda masuk lagi.

210 222 

211Anda dapat memeriksa status ini sebelum permintaan gagal: [`/status`](/docs/id/commands) menampilkan baris `Login` yang membaca `Expired — log in again`, ditambah organisasi dan email yang disimpannya untuk login yang kedaluwarsa. Baris muncul hanya ketika login claude.ai atau Claude Console yang disimpan adalah kredensial aktif. Baris memerlukan Claude Code v2.1.210 atau lebih baru.223Anda dapat memeriksa status ini sebelum permintaan gagal: [`/status`](/docs/id/commands) menampilkan baris `Login` yang membaca `Expired — log in again`, ditambah organisasi dan email yang disimpannya untuk login yang kedaluwarsa. Baris muncul hanya ketika login claude.ai yang disimpan adalah kredensial aktif. Baris memerlukan Claude Code v2.1.210 atau lebih baru.

212 224 

213Peringatan muncul hanya ketika login claude.ai atau Claude Console adalah kredensial aktif, dan bukan ketika penyedia cloud, `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` menyediakan kredensial.225Peringatan muncul hanya ketika login claude.ai adalah kredensial aktif, dan bukan ketika penyedia cloud, `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` menyediakan kredensial.

214 226 

215Memperbarui lebih awal paling penting untuk sesi yang berjalan tanpa pengawasan. Sesi [background session in agent view](/docs/id/agent-view) atau sesi [Remote Control](/docs/id/remote-control) yang melampaui login berhenti membuat kemajuan setelah kredensial kedaluwarsa dan tidak dapat pulih sampai Anda masuk lagi.227Memperbarui lebih awal paling penting untuk sesi yang berjalan tanpa pengawasan. Sesi [background session in agent view](/docs/id/agent-view) atau sesi [Remote Control](/docs/id/remote-control) yang melampaui login berhenti membuat kemajuan setelah kredensial kedaluwarsa dan tidak dapat pulih sampai Anda masuk lagi.

216 228 


230 242 

231Sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang sudah masuk berada di luar daftar ini: ini adalah pemilihan penyedia seperti Amazon Bedrock atau Agent Platform Google Cloud, dan itu mengungguli mereka. Ketika sesi gateway ada, CLI melakukan autentikasi dengan token gateway bahkan jika `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, atau `CLAUDE_CODE_USE_FOUNDRY` diatur, dan sumber kredensial di atas seperti token bearer, kunci API, `apiKeyHelper`, dan profil tidak digunakan.243Sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang sudah masuk berada di luar daftar ini: ini adalah pemilihan penyedia seperti Amazon Bedrock atau Agent Platform Google Cloud, dan itu mengungguli mereka. Ketika sesi gateway ada, CLI melakukan autentikasi dengan token gateway bahkan jika `CLAUDE_CODE_USE_BEDROCK`, `CLAUDE_CODE_USE_VERTEX`, atau `CLAUDE_CODE_USE_FOUNDRY` diatur, dan sumber kredensial di atas seperti token bearer, kunci API, `apiKeyHelper`, dan profil tidak digunakan.

232 244 

233Jika [pengaturan terkelola](/docs/id/managed-settings) mesin Anda menetapkan [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) ke `"gateway"` atau menetapkan [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), dan Anda tidak memilih penyedia cloud melalui variabel seperti `CLAUDE_CODE_USE_BEDROCK` atau `CLAUDE_CODE_USE_VERTEX`, sesi Anda hanya menggunakan sign-in gateway. Claude Code melewati sumber kredensial lainnya dan meminta Anda untuk masuk dengan `/login`. Lihat [Administrator policy requires a Cloud gateway sign-in](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in) untuk apa yang Anda lihat dengan setiap kredensial sisa. Sebelum v2.1.261, atau sebelum v2.1.265 pada mesin yang hanya menetapkan `forceLoginGatewayUrl`, Claude Code menggunakan login yang disimpan sisa pada mesin ini sampai Anda masuk ke gateway.245Jika [pengaturan terkelola](/docs/id/managed-settings) mesin Anda menetapkan [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) ke `"gateway"` atau menetapkan [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), dan Anda tidak memilih penyedia cloud melalui variabel seperti `CLAUDE_CODE_USE_BEDROCK` atau `CLAUDE_CODE_USE_VERTEX`, sesi Anda hanya menggunakan sign-in gateway. Claude Code melewati sumber kredensial lainnya dan meminta Anda untuk masuk dengan `/login`. Lihat [Administrator policy requires a Cloud gateway sign-in](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in) untuk apa yang Anda lihat dengan setiap kredensial sisa. Memerlukan Claude Code v2.1.261 atau lebih baru, atau v2.1.265 atau lebih baru pada mesin yang hanya menetapkan `forceLoginGatewayUrl`.

234 246 

235Jika Anda memiliki langganan Claude aktif tetapi juga memiliki `ANTHROPIC_API_KEY` diatur di lingkungan Anda, Claude Code menggunakan kunci API setelah Anda menyetujuinya. Ini dapat menyebabkan kegagalan autentikasi jika kunci milik organisasi yang dinonaktifkan atau kedaluwarsa.247Jika Anda memiliki langganan Claude aktif tetapi juga memiliki `ANTHROPIC_API_KEY` diatur di lingkungan Anda, Claude Code menggunakan kunci API setelah Anda menyetujuinya. Ini dapat menyebabkan kegagalan autentikasi jika kunci milik organisasi yang dinonaktifkan atau kedaluwarsa.

236 248 


254| Variabel federasi | `ANTHROPIC_FEDERATION_RULE_ID` dan `ANTHROPIC_ORGANIZATION_ID`, keduanya diatur | Di atas |266| Variabel federasi | `ANTHROPIC_FEDERATION_RULE_ID` dan `ANTHROPIC_ORGANIZATION_ID`, keduanya diatur | Di atas |

255| Profil aktif | File [`active_config`](https://platform.claude.com/docs/en/manage-claude/wif-reference#active-profile) di direktori konfigurasi Anda, atau profil bernama `default` | Di atas ketika mode auth-nya adalah `oidc_federation`; di bawah kredensial `/login` yang berfungsi ketika mode auth-nya adalah `user_oauth` |267| Profil aktif | File [`active_config`](https://platform.claude.com/docs/en/manage-claude/wif-reference#active-profile) di direktori konfigurasi Anda, atau profil bernama `default` | Di atas ketika mode auth-nya adalah `oidc_federation`; di bawah kredensial `/login` yang berfungsi ketika mode auth-nya adalah `user_oauth` |

256 268 

257Aturan `user_oauth` menjaga profil `ant auth login` yang tersisa dari memindahkan permintaan Anda dari akun yang Anda masuki dengan `/login`. Untuk variabel federasi, Claude Code juga membaca variabel lain dalam [referensi WIF](https://platform.claude.com/docs/en/manage-claude/wif-reference#environment-variables), seperti `ANTHROPIC_IDENTITY_TOKEN_FILE`, ketika menukar token identitas Anda. Untuk format file profil, lihat [referensi WIF](https://platform.claude.com/docs/en/manage-claude/wif-reference#profile-configuration-file).269Untuk variabel federasi, Claude Code juga membaca variabel lain dalam [referensi WIF](https://platform.claude.com/docs/en/manage-claude/wif-reference#environment-variables), seperti `ANTHROPIC_IDENTITY_TOKEN_FILE`, ketika menukar token identitas Anda. Untuk format file profil, lihat [referensi WIF](https://platform.claude.com/docs/en/manage-claude/wif-reference#profile-configuration-file).

258 270 

259Untuk mengonfirmasi sumber mana yang dipilih Claude Code, jalankan `/status`. Baris `Profile` menamai sumber sebagai pengganti baris `Login method`. Ketika profil adalah kredensial yang sedang digunakan, baris `Organization` dan `Email` menunjukkan akunnya.271Untuk mengonfirmasi sumber mana yang dipilih Claude Code, jalankan `/status`. Baris `Profile` menamai sumber sebagai pengganti baris `Login method`. Ketika profil adalah kredensial yang sedang digunakan, baris `Organization` dan `Email` menunjukkan akunnya.

260 272 

261Jika Anda memulai Claude Code dengan `--debug`, itu juga menulis baris `Using Anthropic profile auth` dengan nama sumber ke log debug di `~/.claude/debug/<session-id>.txt`. Ketika Claude Code melewati profil aktif `user_oauth` karena Anda memiliki kredensial `/login` yang berfungsi, itu menulis peringatan ke log debug mengatakan itu menggunakan login claude.ai sebagai gantinya.

262 

263Ketika login profil `user_oauth` telah kedaluwarsa dan Claude Code tidak dapat memperbarui, permintaan gagal dengan [Anthropic profile login expired](/docs/id/errors#anthropic-profile-login-expired).273Ketika login profil `user_oauth` telah kedaluwarsa dan Claude Code tidak dapat memperbarui, permintaan gagal dengan [Anthropic profile login expired](/docs/id/errors#anthropic-profile-login-expired).

264 274 

265Fitur yang memerlukan login claude.ai Anda, seperti [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) dan [`/schedule`](/docs/id/routines), tidak tersedia saat salah satu sumber ini dipilih. Untuk menghentikan Claude Code dari memilih sumber:275Fitur yang memerlukan login claude.ai Anda, seperti [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) dan [`/schedule`](/docs/id/routines), tidak tersedia saat salah satu sumber ini dipilih. Untuk menghentikan Claude Code dari memilih sumber:


279 289 

280Perintah membuka alur otorisasi browser yang sama seperti `/login`, dan token dicetak ke terminal setelah Anda menyetujui akses di browser. Itu tidak menyimpan token di mana pun; salin dan atur sebagai variabel lingkungan `CLAUDE_CODE_OAUTH_TOKEN` di mana pun Anda ingin melakukan autentikasi:290Perintah membuka alur otorisasi browser yang sama seperti `/login`, dan token dicetak ke terminal setelah Anda menyetujui akses di browser. Itu tidak menyimpan token di mana pun; salin dan atur sebagai variabel lingkungan `CLAUDE_CODE_OAUTH_TOKEN` di mana pun Anda ingin melakukan autentikasi:

281 291 

282```bash theme={null}292<Tabs>

283export CLAUDE_CODE_OAUTH_TOKEN=your-token293 <Tab title="macOS, Linux, WSL">

284```294 ```bash theme={null}

295 export CLAUDE_CODE_OAUTH_TOKEN=your-token

296 ```

297 </Tab>

298 

299 <Tab title="Windows PowerShell">

300 ```powershell theme={null}

301 $env:CLAUDE_CODE_OAUTH_TOKEN = "your-token"

302 ```

303 </Tab>

304 

305 <Tab title="Windows CMD">

306 ```batch theme={null}

307 set CLAUDE_CODE_OAUTH_TOKEN=your-token

308 ```

309 </Tab>

310</Tabs>

285 311 

286Token ini melakukan autentikasi dengan langganan Claude Anda dan memerlukan paket Pro, Max, Team, atau Enterprise. Itu hanya dapat membuat permintaan model, jadi itu tidak dapat membuat sesi [Remote Control](/docs/id/remote-control) atau mengambil [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai). Server MCP yang Anda konfigurasi secara lokal masih berfungsi.312Token ini melakukan autentikasi dengan langganan Claude Anda dan memerlukan paket Pro, Max, Team, atau Enterprise. Itu hanya dapat membuat permintaan model, jadi itu tidak dapat membuat sesi [Remote Control](/docs/id/remote-control) atau mengambil [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai). Server MCP yang Anda konfigurasi secara lokal masih berfungsi.

287 313 

Details

9[Mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) memungkinkan Claude Code berjalan tanpa permintaan izin rutin dengan merutekan panggilan alat melalui pengklasifikasi yang memblokir apa pun yang tidak dapat dibalikkan, merusak, atau ditujukan di luar lingkungan Anda. Aturan penolakan dan permintaan eksplisit dievaluasi sebelum pengklasifikasi dan masih memblokir atau meminta. Gunakan blok pengaturan `autoMode` untuk memberi tahu pengklasifikasi tersebut repositori, bucket, dan domain mana yang dipercaya organisasi Anda, sehingga berhenti memblokir operasi internal rutin.9[Mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) memungkinkan Claude Code berjalan tanpa permintaan izin rutin dengan merutekan panggilan alat melalui pengklasifikasi yang memblokir apa pun yang tidak dapat dibalikkan, merusak, atau ditujukan di luar lingkungan Anda. Aturan penolakan dan permintaan eksplisit dievaluasi sebelum pengklasifikasi dan masih memblokir atau meminta. Gunakan blok pengaturan `autoMode` untuk memberi tahu pengklasifikasi tersebut repositori, bucket, dan domain mana yang dipercaya organisasi Anda, sehingga berhenti memblokir operasi internal rutin.

10 10 

11<Note>11<Note>

12 Mode otomatis tersedia untuk semua pengguna di setiap penyedia, termasuk Anthropic API, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk. Jika Claude Code melaporkan mode otomatis tidak tersedia untuk akun Anda, periksa [persyaratan lengkap](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), yang juga mencakup model yang didukung dan kontrol tingkat organisasi pada paket Tim dan Enterprise. Dalam v2.1.158 hingga v2.1.206, mode otomatis di Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi gateway aplikasi Claude memerlukan pengaturan `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 menghapus persyaratan.12 Halaman ini adalah referensi konfigurasi. Mengaktifkan dan menonaktifkan mode otomatis tercakup di halaman Permission modes:

13 

14 * **Beralih ke mode otomatis di tengah sesi, atau keluar darinya**: lihat [Switch permission modes](/docs/id/permission-modes#switch-permission-modes)

15 * **Mulai sesi dalam mode otomatis**: lihat [Start in a different permission mode](/docs/id/permission-modes#start-in-a-different-mode)

13</Note>16</Note>

14 17 

15Secara default, pengklasifikasi hanya mempercayai direktori kerja dan remote yang dikonfigurasi dari repositori saat ini. Tindakan seperti mendorong ke organisasi kontrol sumber perusahaan Anda atau menulis ke bucket cloud tim diblokir sampai Anda menambahkannya ke `autoMode.environment`.18Mode otomatis tersedia untuk semua pengguna di setiap penyedia, termasuk Anthropic API, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk. Jika Claude Code melaporkan mode otomatis tidak tersedia untuk akun Anda, periksa [persyaratan lengkap](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), yang juga mencakup model yang didukung dan kontrol tingkat organisasi pada paket Tim dan Enterprise.

16 19 

17Untuk cara sesi berakhir dalam mode otomatis dan apa yang diblokir pengklasifikasi secara default, lihat [mode otomatis di halaman Permission modes](/docs/id/permission-modes#eliminate-prompts-with-auto-mode). Halaman ini adalah referensi konfigurasi.20Secara default, pengklasifikasi hanya mempercayai direktori kerja dan remote yang dikonfigurasi dari repositori saat ini. Tindakan seperti mendorong ke organisasi kontrol sumber perusahaan Anda atau menulis ke bucket cloud tim diblokir sampai Anda menambahkannya ke `autoMode.environment`.

18 21 

19Halaman ini mencakup cara:22Halaman ini mencakup cara:

20 23 

21* [Tambahkan checkpoint manusia](#add-a-human-checkpoint) untuk push dan pull request dengan `permissions.ask`24* [Tambahkan checkpoint manusia](#add-a-human-checkpoint) untuk push dan pull request dengan `permissions.ask`

22* [Pilih tempat untuk menetapkan aturan](#where-the-classifier-reads-configuration) di seluruh CLAUDE.md, pengaturan pengguna, dan pengaturan terkelola

23* [Tentukan infrastruktur terpercaya](#define-trusted-infrastructure) dengan `autoMode.environment`25* [Tentukan infrastruktur terpercaya](#define-trusted-infrastructure) dengan `autoMode.environment`

24* [Hasilkan entri lingkungan](#generate-environment-entries) dengan `/auto-mode-setup`26* [Hasilkan entri lingkungan](#generate-environment-entries) dengan `/auto-mode-setup`

25* [Ganti aturan blokir dan izin](#override-the-block-and-allow-rules) ketika default tidak sesuai dengan pipeline Anda

26* [Edit aturan dari `/permissions`](#edit-rules-from-permissions) tanpa membuka file pengaturan

27* [Rutekan semua perintah shell melalui pengklasifikasi](#route-all-shell-commands-through-the-classifier) dengan `autoMode.classifyAllShell`

28* [Periksa konfigurasi efektif Anda](#inspect-the-defaults-and-your-effective-config) dengan subperintah `claude auto-mode`

29* [Tinjau penolakan](#review-denials) sehingga Anda tahu apa yang harus ditambahkan selanjutnya27* [Tinjau penolakan](#review-denials) sehingga Anda tahu apa yang harus ditambahkan selanjutnya

30 28 

31<h2 id="common-boundaries">29<h2 id="common-boundaries">


34 32 

35Mode otomatis memungkinkan push ke cabang mana pun dari repositori yang Anda kerjakan, termasuk cabang default, dan pembuatan pull request secara default. Cabang non-default yang namanya menandainya sebagai target deploy atau publikasi, seperti `production`, `release`, atau `gh-pages`, tidak tercakup oleh default tersebut: pengklasifikasi menilai push di sana berdasarkan syarat-syaratnya sendiri, termasuk sebagai deploy produksi. Konten push juga masih diperiksa, jadi force push, rahasia yang memasuki commit, atau perubahan yang akan mengirim rahasia di luar repositori ketika CI atau pipeline deploy menjalankannya tetap diblokir.33Mode otomatis memungkinkan push ke cabang mana pun dari repositori yang Anda kerjakan, termasuk cabang default, dan pembuatan pull request secara default. Cabang non-default yang namanya menandainya sebagai target deploy atau publikasi, seperti `production`, `release`, atau `gh-pages`, tidak tercakup oleh default tersebut: pengklasifikasi menilai push di sana berdasarkan syarat-syaratnya sendiri, termasuk sebagai deploy produksi. Konten push juga masih diperiksa, jadi force push, rahasia yang memasuki commit, atau perubahan yang akan mengirim rahasia di luar repositori ketika CI atau pipeline deploy menjalankannya tetap diblokir.

36 34 

37<Info>Sebelum v2.1.211, pengklasifikasi hanya memungkinkan push ke cabang kerja Anda, cabang yang dibuat Claude, dan push rutin ke cabang default.</Info>

38 

39Jika Anda ingin checkpoint manusia sebelum perintah push dan pull request Claude, tambahkan aturan izin: [resep di bawah](#add-a-human-checkpoint) menjaga mode otomatis tetap aktif untuk segalanya.35Jika Anda ingin checkpoint manusia sebelum perintah push dan pull request Claude, tambahkan aturan izin: [resep di bawah](#add-a-human-checkpoint) menjaga mode otomatis tetap aktif untuk segalanya.

40 36 

41<h3 id="add-a-human-checkpoint">37<h3 id="add-a-human-checkpoint">


79| Di seluruh organisasi | [Pengaturan terkelola](/docs/id/server-managed-settings) | Infrastruktur terpercaya yang didistribusikan ke semua pengembang |75| Di seluruh organisasi | [Pengaturan terkelola](/docs/id/server-managed-settings) | Infrastruktur terpercaya yang didistribusikan ke semua pengembang |

80| Bendera `--settings` atau Agent SDK | JSON inline | Penggantian per-invokasi untuk otomasi |76| Bendera `--settings` atau Agent SDK | JSON inline | Penggantian per-invokasi untuk otomasi |

81 77 

82Pengklasifikasi tidak membaca `autoMode` dari pengaturan proyek di `.claude/settings.json` atau `.claude/settings.local.json`. Kedua file berada di direktori repo, jadi repo yang diperiksa atau langkah build dapat sebaliknya menyuntikkan aturan izinnya sendiri. Sebelum v2.1.207, pengklasifikasi juga membaca `.claude/settings.local.json`; pindahkan blok `autoMode` apa pun di file tersebut ke `~/.claude/settings.json`. Mengecualikan `.claude/settings.local.json` juga menutup kasus di mana repositori melakukan commit file atau alat lokal atau langkah build menulisnya.78Pengklasifikasi tidak membaca `autoMode` dari pengaturan proyek di `.claude/settings.json` atau `.claude/settings.local.json`. Kedua file berada di direktori repo, jadi repo yang diperiksa atau langkah build dapat sebaliknya menyuntikkan aturan izinnya sendiri. Pindahkan blok `autoMode` apa pun di `.claude/settings.local.json` ke `~/.claude/settings.json`.

83 79 

84Entri dari setiap cakupan digabungkan. Pengembang dapat memperluas `environment`, `allow`, `soft_deny`, dan `hard_deny` dengan entri pribadi tetapi tidak dapat menghapus entri yang disediakan pengaturan terkelola. Karena aturan izin bertindak sebagai pengecualian untuk aturan blok lunak di dalam pengklasifikasi, entri `allow` yang ditambahkan pengembang dapat mengganti entri `soft_deny` organisasi: kombinasinya bersifat aditif, bukan batas kebijakan keras.80Entri dari setiap cakupan digabungkan. Pengembang dapat memperluas `environment`, `allow`, `soft_deny`, dan `hard_deny` dengan entri pribadi tetapi tidak dapat menghapus entri yang disediakan pengaturan terkelola. Karena aturan izin bertindak sebagai pengecualian untuk aturan blok lunak di dalam pengklasifikasi, entri `allow` yang ditambahkan pengembang dapat mengganti entri `soft_deny` organisasi: kombinasinya bersifat aditif, bukan batas kebijakan keras.

85 81 


93 89 

94Untuk sebagian besar organisasi, `autoMode.environment` adalah satu-satunya bidang yang perlu Anda atur. Ini memberitahu pengklasifikasi repositori, bucket, dan domain mana yang terpercaya: pengklasifikasi menggunakannya untuk memutuskan apa arti "eksternal", jadi tujuan apa pun yang tidak tercantum adalah target potensi exfiltration.90Untuk sebagian besar organisasi, `autoMode.environment` adalah satu-satunya bidang yang perlu Anda atur. Ini memberitahu pengklasifikasi repositori, bucket, dan domain mana yang terpercaya: pengklasifikasi menggunakannya untuk memutuskan apa arti "eksternal", jadi tujuan apa pun yang tidak tercantum adalah target potensi exfiltration.

95 91 

96Mulai dari Claude Code v2.1.198, `claude auto-mode defaults` mencetak tiga jenis entri lingkungan. Versi sebelum v2.1.195 hanya mencetak lima slot kepercayaan pertama.92`claude auto-mode defaults` mencetak tiga jenis entri lingkungan.

97 93 

98* **Context slots**: mendeskripsikan organisasi, stack, dan postur keamanan Anda sehingga pengklasifikasi membaca aturan lain dalam konteks Anda. Masing-masing default ke `None configured` atau ke asumsi konservatif yang dinamai di sebelahnya:94* **Context slots**: mendeskripsikan organisasi, stack, dan postur keamanan Anda sehingga pengklasifikasi membaca aturan lain dalam konteks Anda. Masing-masing default ke `None configured` atau ke asumsi konservatif yang dinamai di sebelahnya:

99 * **Organization**95 * **Organization**


101 * **Cloud provider(s)**97 * **Cloud provider(s)**

102 * **Repository visibility**: sebuah repositori diasumsikan private kecuali host remote dan namanya menunjukkan sebaliknya, atau pengklasifikasi membaca pemeriksaan visibilitas lebih awal dalam percakapan yang menunjukkan bahwa itu public.98 * **Repository visibility**: sebuah repositori diasumsikan private kecuali host remote dan namanya menunjukkan sebaliknya, atau pengklasifikasi membaca pemeriksaan visibilitas lebih awal dalam percakapan yang menunjukkan bahwa itu public.

103 99 

104 Dalam permintaan pengklasifikasi yang dikirim oleh Claude Code itu sendiri, pengklasifikasi membaca pesan Anda dan perintah yang dijalankan Claude, bukan output mereka. Bukti harus berupa sesuatu yang dapat dibaca pengklasifikasi, seperti pesan Anda sendiri yang menyebutkan repositori sebagai public; output dari `gh repo view` saja tidak mencapainya. Pemeriksaan bukti transkrip memerlukan Claude Code v2.1.200 atau lebih baru100 Dalam permintaan pengklasifikasi yang dikirim oleh Claude Code itu sendiri, pengklasifikasi membaca pesan Anda dan perintah yang dijalankan Claude, bukan output mereka. Bukti harus berupa sesuatu yang dapat dibaca pengklasifikasi, seperti pesan Anda sendiri yang menyebutkan repositori sebagai public; output dari `gh repo view` saja tidak mencapainya.

105 * **Internal sharing / snippet hosting**: layanan paste dan gist publik diperlakukan sebagai di luar batas kepercayaan sampai Anda menyebutkan satu101 * **Internal sharing / snippet hosting**: layanan paste dan gist publik diperlakukan sebagai di luar batas kepercayaan sampai Anda menyebutkan satu

106 * **Org-specific CLIs**102 * **Org-specific CLIs**

107 * **Secrets management**103 * **Secrets management**


110 * **Host containment**: default ke mesin developer biasa atau CI runner dengan internet terbuka. Jika Claude Code berjalan dalam container, VM, atau pod dengan daftar allow-list egress atau tetangga yang tidak boleh disentuh, sebutkan host yang diizinkan, apakah endpoint metadata cloud harus dapat dijangkau, dan proyek cloud, cluster, atau registry mana yang digunakan tugas dan di bawah identitas apa. Sampai entri ini menyebutkan identitas itu, pengklasifikasi [memblokir](/docs/id/permission-modes#what-the-classifier-blocks-by-default) permintaan untuk kredensial host itu sendiri. Memerlukan Claude Code v2.1.257 atau lebih baru106 * **Host containment**: default ke mesin developer biasa atau CI runner dengan internet terbuka. Jika Claude Code berjalan dalam container, VM, atau pod dengan daftar allow-list egress atau tetangga yang tidak boleh disentuh, sebutkan host yang diizinkan, apakah endpoint metadata cloud harus dapat dijangkau, dan proyek cloud, cluster, atau registry mana yang digunakan tugas dan di bawah identitas apa. Sampai entri ini menyebutkan identitas itu, pengklasifikasi [memblokir](/docs/id/permission-modes#what-the-classifier-blocks-by-default) permintaan untuk kredensial host itu sendiri. Memerlukan Claude Code v2.1.257 atau lebih baru

111 * **Protected deployment namespaces / environments**: kembali ke heuristik Sensitive remote targets sampai Anda menyebutkannya107 * **Protected deployment namespaces / environments**: kembali ke heuristik Sensitive remote targets sampai Anda menyebutkannya

112 * **Data retention / declassification**108 * **Data retention / declassification**

113* **Trust slots**: sebutkan apa yang diperlakukan pengklasifikasi sebagai dalam batas Anda. Slot adalah Trusted repo, Source control, Trusted internal domains, Trusted cloud buckets, Key internal services, dan Internal package registry. Entri repo dan source-control default ke repositori kerja dan remote yang dikonfigurasinya. Setiap slot kepercayaan lainnya default ke `None configured`, jadi tidak ada yang lain terpercaya sampai Anda menambahkannya. Visibilitas repositori hanya mencakup materi rahasia: repositori private adalah tujuan yang dapat diterima untuk materi rahasia, tetapi membuat repositori private tidak pernah menghapus rahasia atau data pribadi atau terpercaya ke dalamnya, dan pengklasifikasi memperlakukan konten yang diport, diarahkan ulang, atau pertama kali dibaca dari luar repositori kerja sebagai bukan pekerjaan repositori itu sendiri. Scoping ini memerlukan Claude Code v2.1.203 atau lebih baru.109* **Trust slots**: sebutkan apa yang diperlakukan pengklasifikasi sebagai dalam batas Anda. Slot adalah Trusted repo, Source control, Trusted internal domains, Trusted cloud buckets, Key internal services, dan Internal package registry. Entri repo dan source-control default ke repositori kerja dan remote yang dikonfigurasinya. Setiap slot kepercayaan lainnya default ke `None configured`, jadi tidak ada yang lain terpercaya sampai Anda menambahkannya. Visibilitas repositori hanya mencakup materi rahasia: repositori private adalah tujuan yang dapat diterima untuk materi rahasia, tetapi membuat repositori private tidak pernah menghapus rahasia atau data pribadi atau terpercaya ke dalamnya, dan pengklasifikasi memperlakukan konten yang diport, diarahkan ulang, atau pertama kali dibaca dari luar repositori kerja sebagai bukan pekerjaan repositori itu sendiri.

114* **Sensitivity slots**: sebutkan apa yang diperlakukan aturan perlindungan sebagai berisiko tinggi. Slot adalah Sensitive data locations & audiences, Sensitive remote targets, dan Protected IaC scopes. Masing-masing default ke heuristik yang luas, seperti memperlakukan host atau namespace apa pun yang namanya membawa `prod` atau `production` sebagai target remote sensitif, jadi aturan perlindungan aktif sebelum Anda mengonfigurasi apa pun. Menyebutkan target konkret dalam slot sensitivitas membuat aturan tersebut berlaku untuk target yang disebutkan alih-alih heuristik.110* **Sensitivity slots**: sebutkan apa yang diperlakukan aturan perlindungan sebagai berisiko tinggi. Slot adalah Sensitive data locations & audiences, Sensitive remote targets, dan Protected IaC scopes. Masing-masing default ke heuristik yang luas, seperti memperlakukan host atau namespace apa pun yang namanya membawa `prod` atau `production` sebagai target remote sensitif, jadi aturan perlindungan aktif sebelum Anda mengonfigurasi apa pun. Menyebutkan target konkret dalam slot sensitivitas membuat aturan tersebut berlaku untuk target yang disebutkan alih-alih heuristik.

115 111 

116<Info>Sebelum v2.1.211, context slots juga menyertakan entri Default / protected branches yang memperlakukan `main` dan `master` sebagai protected sampai Anda menyebutkan yang lain. v2.1.211 menghapusnya: [push ke cabang apa pun dari repositori yang Anda kerjakan](#common-boundaries) diizinkan secara default, jadi tidak ada default protected-branch untuk dikonfigurasi.</Info>

117 

118Untuk menambahkan entri Anda sendiri bersama default, sertakan string literal `"$defaults"` dalam array. Entri default disambung pada posisi itu, jadi entri kustom Anda dapat berada sebelum atau sesudahnya.112Untuk menambahkan entri Anda sendiri bersama default, sertakan string literal `"$defaults"` dalam array. Entri default disambung pada posisi itu, jadi entri kustom Anda dapat berada sebelum atau sesudahnya.

119 113 

120Contoh berikut mempertahankan entri default dan menambahkan repo, bucket, domain, dan layanan organisasi.114Contoh berikut mempertahankan entri default dan menambahkan repo, bucket, domain, dan layanan organisasi.


143* **Trusted internal domains**: hostname untuk API, dashboard, dan layanan di dalam jaringan Anda, seperti `*.internal.example.com`137* **Trusted internal domains**: hostname untuk API, dashboard, dan layanan di dalam jaringan Anda, seperti `*.internal.example.com`

144* **Key internal services**: CI, artifact registries, internal package indexes, incident tooling138* **Key internal services**: CI, artifact registries, internal package indexes, incident tooling

145* **Internal package registry**: npm pribadi, PyPI, atau registry lain yang harus dirutekan install, jadi install yang melewatinya untuk registry publik mendapat blokir139* **Internal package registry**: npm pribadi, PyPI, atau registry lain yang harus dirutekan install, jadi install yang melewatinya untuk registry publik mendapat blokir

146* **Sensitive data locations & audiences**: bucket, database, atau path yang menyimpan data pribadi, data bisnis rahasia, kredensial, data yang diatur, atau materi sensitif serupa, dan audiens yang data di setiap lokasi dapat dibagikan, jadi pengklasifikasi melindungi lokasi tersebut alih-alih menebak dari konten. Claude Code v2.1.195 melalui v2.1.197 menyebutkan entri ini PII / regulated-data locations dan hanya mencakup lokasi yang menyimpan data pribadi atau yang diatur, tanpa dimensi audiens140* **Sensitive data locations & audiences**: bucket, database, atau path yang menyimpan data pribadi, data bisnis rahasia, kredensial, data yang diatur, atau materi sensitif serupa, dan audiens yang data di setiap lokasi dapat dibagikan, jadi pengklasifikasi melindungi lokasi tersebut alih-alih menebak dari konten.

147* **Sensitive remote targets**: namespace, host, atau container yang dihitung sebagai production, jadi remote shell dan port-forward ke dalamnya memerlukan persetujuan eksplisit Anda141* **Sensitive remote targets**: namespace, host, atau container yang dihitung sebagai production, jadi remote shell dan port-forward ke dalamnya memerlukan persetujuan eksplisit Anda

148* **Protected IaC scopes**: resource infrastruktur yang apply atau destroy harus selalu memerlukan Anda untuk menyebutkan perubahan142* **Protected IaC scopes**: resource infrastruktur yang apply atau destroy harus selalu memerlukan Anda untuk menyebutkan perubahan

149* **Additional context**: batasan industri yang diatur, infrastruktur multi-tenant, atau persyaratan kepatuhan yang mempengaruhi apa yang harus diperlakukan pengklasifikasi sebagai berisiko143* **Additional context**: batasan industri yang diatur, infrastruktur multi-tenant, atau persyaratan kepatuhan yang mempengaruhi apa yang harus diperlakukan pengklasifikasi sebagai berisiko

150 144 

151Entri Internal package registry, Sensitive data locations & audiences, Sensitive remote targets, dan Protected IaC scopes memerlukan Claude Code v2.1.195 atau lebih baru. Versi sebelumnya masih membacanya sebagai konteks biasa tetapi tidak memiliki aturan built-in yang menargetkannya.

152 

153Template awal yang berguna: isi bidang dalam kurung dan hapus baris apa pun yang tidak berlaku.145Template awal yang berguna: isi bidang dalam kurung dan hapus baris apa pun yang tidak berlaku.

154 146 

155```json theme={null}147```json theme={null}


169}161}

170```162```

171 163 

172Semakin spesifik konteks yang Anda berikan, semakin baik pengklasifikasi dapat membedakan operasi internal rutin dari upaya exfiltration.

173 

174Anda tidak perlu mengisi semuanya sekaligus. Rollout yang masuk akal: mulai dengan default dan tambahkan org source control dan layanan internal kunci Anda, yang menyelesaikan false positive paling umum seperti push ke repo Anda sendiri. Tambahkan domain terpercaya dan cloud bucket berikutnya. Isi sisanya saat blok muncul.164Anda tidak perlu mengisi semuanya sekaligus. Rollout yang masuk akal: mulai dengan default dan tambahkan org source control dan layanan internal kunci Anda, yang menyelesaikan false positive paling umum seperti push ke repo Anda sendiri. Tambahkan domain terpercaya dan cloud bucket berikutnya. Isi sisanya saat blok muncul.

175 165 

176<h2 id="generate-environment-entries">166<h2 id="generate-environment-entries">


309 299 

310Secara default, aturan Bash dan PowerShell yang sempit seperti `Bash(npm test)` tetap berlaku dalam mode otomatis. Claude Code menyelesaikannya sebelum pengklasifikasi berjalan, kecuali perintah membawa [domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode). Claude Code menangguhkan hanya aturan luas yang memberikan eksekusi kode arbitrer, seperti `Bash(*)` atau interpreter dengan wildcard, bersama dengan setiap aturan yang menyebutkan [`Monitor`](/docs/id/tools-reference#monitor-tool), karena perintah Monitor berjalan melalui shell. Ini berarti aturan yang sempit masih dapat membiarkan argumen yang merusak melewati tanpa pengklasifikasi melihatnya, misalnya jalur skrip atau flag yang tidak diantisipasi oleh awalan aturan.300Secara default, aturan Bash dan PowerShell yang sempit seperti `Bash(npm test)` tetap berlaku dalam mode otomatis. Claude Code menyelesaikannya sebelum pengklasifikasi berjalan, kecuali perintah membawa [domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode). Claude Code menangguhkan hanya aturan luas yang memberikan eksekusi kode arbitrer, seperti `Bash(*)` atau interpreter dengan wildcard, bersama dengan setiap aturan yang menyebutkan [`Monitor`](/docs/id/tools-reference#monitor-tool), karena perintah Monitor berjalan melalui shell. Ini berarti aturan yang sempit masih dapat membiarkan argumen yang merusak melewati tanpa pengklasifikasi melihatnya, misalnya jalur skrip atau flag yang tidak diantisipasi oleh awalan aturan.

311 301 

312Atur `autoMode.classifyAllShell` ke `true` untuk menangguhkan setiap aturan izin Bash dan PowerShell saat mode otomatis aktif, sehingga pengklasifikasi mengevaluasi setiap perintah shell terlepas dari daftar izin Anda.302Atur `autoMode.classifyAllShell` ke `true` untuk menangguhkan setiap aturan izin Bash dan PowerShell saat mode otomatis aktif, sehingga pengklasifikasi mengevaluasi setiap perintah shell terlepas dari daftar izin Anda, kecuali [penghapusan jalur kritis](/docs/id/permission-modes#critical-paths).

313 303 

314```json theme={null}304```json theme={null}

315{305{


323 313 

324Pengaturan hanya berlaku saat mode otomatis aktif, dan aturan izin Anda berperilaku normal dalam mode izin lainnya.314Pengaturan hanya berlaku saat mode otomatis aktif, dan aturan izin Anda berperilaku normal dalam mode izin lainnya.

325 315 

326<Note>

327 `autoMode.classifyAllShell` memerlukan Claude Code v2.1.193 atau lebih baru. Versi sebelumnya mengabaikan kunci dan terus membawa aturan izin shell yang sempit ke dalam mode otomatis.

328</Note>

329 

330<h2 id="inspect-the-defaults-and-your-effective-config">316<h2 id="inspect-the-defaults-and-your-effective-config">

331 Periksa default dan konfigurasi efektif Anda317 Periksa default dan konfigurasi efektif Anda

332</h2>318</h2>


357 ...343 ...

358 ],344 ],

359 "soft_deny": [345 "soft_deny": [

360 "Git Destructive [named+specifics — **must name:** the destructive operation and its target]: Force pushing (`git push --force`), menghapus cabang jarak jauh, tag, atau rilis, atau menulis ulang riwayat jarak jauh. Juga `git commit --amend` ketika komit yang ditulis ulang bukan pekerjaan yang belum didorong agen: baik tidak ada `git commit` sebelumnya yang terlihat (HEAD mendahului sesi), atau `git push` dari cabang saat ini terlihat setelah komit terbaru (telah didorong). Dihapus ketika pengguna meminta untuk mengubah/mengubah kata-kata/memperbaiki, atau ketika itu adalah pengubahan kata-kata pesan saja (`--amend -m …`, tidak ada yang baru dipentaskan) dari komit yang agen buat secara terlihat sesi ini.",346 "Git Destructive [named+specifics — **must name:** the destructive operation and its target]: Force pushing (`git push --force`), menghapus cabang jarak jauh, tag, atau rilis, atau menulis ulang riwayat jarak jauh. Juga `git commit --amend` ketika komit yang ditulis ulang bukan pekerjaan yang belum didorong agen: baik tidak ada `git commit` sebelumnya yang terlihat (HEAD mendahului sesi), atau `git push` dari cabang saat ini terlihat setelah komit terbaru (telah didorong). Dihapus ketika pengguna meminta untuk mengubah/mengubah kata/memperbaiki, atau ketika itu adalah pengubahan kata pesan saja (`--amend -m …`, tidak ada yang baru dipentaskan) dari komit yang terlihat dibuat agen sesi ini.",

361 ...347 ...

362 ],348 ],

363 "hard_deny": [...],349 "hard_deny": [...],

364 "environment": [350 "environment": [

365 ...351 ...

366 "**Trusted repo**: Repositori git tempat agen dimulai (direktori kerjanya) dan remote(s) yang dikonfigurasinya. Ketika visibilitas publik/pribadi repo diberikan — oleh entri Repository visibility atau pesan pengguna sendiri — gunakan untuk menentukan ruang lingkup apa yang OK untuk dilakukan atau didorong di sana: materi rahasia baik-baik saja di repo pribadi; di repo publik, hanya pekerjaan repo itu sendiri — dan konten yang diportasi, ditunjuk kembali, atau pertama kali dibaca dari luar repo sesi ini bukan pekerjaan miliknya, siapa pun yang mengarahkan port. Visibilitas menentukan ruang lingkup materi rahasia saja: rahasia dan data sensitif (pribadi & dipercaya) tidak pernah dihapus ke repo apa pun oleh visibilitasnya (lihat Definitions).",352 "**Trusted repo**: Repositori git tempat agen dimulai (direktori kerjanya) dan remote(s) yang dikonfigurasinya. Ketika visibilitas publik/pribadi repo diberikan — oleh entri Repository visibility atau pesan pengguna sendiri — gunakan untuk menentukan ruang lingkup apa yang OK untuk dikomit atau didorong di sana: materi rahasia baik-baik saja di repo pribadi; di repo publik, hanya pekerjaan repo itu sendiri — dan konten yang diportasi, ditunjuk ulang, atau pertama kali dibaca dari luar repo sesi ini bukan pekerjaan miliknya, siapa pun yang mengarahkan port. Visibilitas menentukan ruang lingkup materi rahasia saja: rahasia dan data sensitif (pribadi & terpercaya) tidak pernah disetujui ke dalam repo apa pun oleh visibilitasnya (lihat Definitions).",

367 ...353 ...

368 ]354 ]

369}355}


375claude auto-mode critique361claude auto-mode critique

376```362```

377 363 

378Jalankan `claude auto-mode config` setelah menyimpan pengaturan Anda untuk mengonfirmasi bahwa aturan efektif adalah apa yang Anda harapkan, dengan `"$defaults"` diperluas di tempat. Jika Anda telah menulis aturan kustom, `claude auto-mode critique` meninjau mereka dan menandai entri yang ambigu, berlebihan, atau kemungkinan menyebabkan positif palsu.364Jika Anda telah menulis aturan kustom, `claude auto-mode critique` meninjau mereka dan menandai entri yang ambigu, berlebihan, atau kemungkinan menyebabkan positif palsu.

379 365 

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

381 367 


409 395 

410Anda dapat menambahkan entri lingkungan atau aturan `allow` dari tab [**Auto mode**](#edit-rules-from-permissions) dialog `/permissions`.396Anda dapat menambahkan entri lingkungan atau aturan `allow` dari tab [**Auto mode**](#edit-rules-from-permissions) dialog `/permissions`.

411 397 

412Dalam sebagian besar sesi nama alasan menyebutkan aturan yang cocok dengan pengklasifikasi, dalam tanda kurung siku, seperti `[Data Exfiltration]` atau `[Production Deploy]`, dan beberapa sesi menjalankan model pengklasifikasi yang menambahkan penjelasan singkat. Claude Code memilih model pengklasifikasi, jadi bentuk mana yang Anda lihat bukan sesuatu yang Anda konfigurasi.398Teks dalam tanda kurung siku, seperti `[Data Exfiltration]`, adalah nama aturan yang cocok dengan pengklasifikasi. Untuk membaca kata-kata lengkap aturan tersebut, lihat [Inspeksi default dan konfigurasi efektif Anda](#inspect-the-defaults-and-your-effective-config).

413 399 

414<h3 id="fix-repeated-denials">400<h3 id="fix-repeated-denials">

415 Perbaiki penolakan berulang401 Perbaiki penolakan berulang


417 403 

418Penolakan berulang untuk tujuan yang sama biasanya berarti pengklasifikasi kehilangan konteks. Tambahkan tujuan itu ke `autoMode.environment`, atau [jalankan `/auto-mode-setup`](#generate-environment-entries) untuk membuat Claude Code membuat draf entri, kemudian jalankan `claude auto-mode config` untuk mengonfirmasi perubahan telah diterapkan.404Penolakan berulang untuk tujuan yang sama biasanya berarti pengklasifikasi kehilangan konteks. Tambahkan tujuan itu ke `autoMode.environment`, atau [jalankan `/auto-mode-setup`](#generate-environment-entries) untuk membuat Claude Code membuat draf entri, kemudian jalankan `claude auto-mode config` untuk mengonfirmasi perubahan telah diterapkan.

419 405 

420Untuk bereaksi terhadap penolakan secara terprogram, gunakan [`PermissionDenied` hook](/docs/id/hooks#permissiondenied).

421 

422<h2 id="see-also">406<h2 id="see-also">

423 Lihat juga407 Lihat juga

424</h2>408</h2>

Details

46 46 

47* **Dalam satu prompt**: minta Claude menjalankan pemeriksaan dan melakukan iterasi dalam pesan yang sama, seperti dalam tabel di atas.47* **Dalam satu prompt**: minta Claude menjalankan pemeriksaan dan melakukan iterasi dalam pesan yang sama, seperti dalam tabel di atas.

48* **Sepanjang sesi**: atur pemeriksaan sebagai [kondisi `/goal`](/docs/id/goal). Evaluator terpisah memeriksa ulang setelah setiap giliran dan Claude terus bekerja sampai goal terpenuhi. Jika Claude terhenti, Claude Code pada akhirnya menghentikan run dengan goal masih ditetapkan — lihat [bagaimana evaluasi /goal bekerja](/docs/id/goal#how-evaluation-works).48* **Sepanjang sesi**: atur pemeriksaan sebagai [kondisi `/goal`](/docs/id/goal). Evaluator terpisah memeriksa ulang setelah setiap giliran dan Claude terus bekerja sampai goal terpenuhi. Jika Claude terhenti, Claude Code pada akhirnya menghentikan run dengan goal masih ditetapkan — lihat [bagaimana evaluasi /goal bekerja](/docs/id/goal#how-evaluation-works).

49* **Sebagai gerbang deterministik**: [hook Stop](/docs/id/hooks#stop) menjalankan pemeriksaan Anda sebagai skrip dan memblokir giliran dari berakhir sampai lulus. Claude Code menimpa hook dan mengakhiri giliran setelah 8 blok berturut-turut.49* **Sebagai gerbang deterministik**: [hook Stop](/docs/id/hooks#stop) menjalankan pemeriksaan Anda sebagai skrip dan memblokir giliran dari berakhir sampai lulus. [Stop input](/docs/id/hooks#stop-input) mencakup batas pada blok berturut-turut.

50* **Dengan pendapat kedua**: [subagent verifikasi](/docs/id/sub-agents) atau [alur kerja dinamis](/docs/id/workflows) yang memeriksa temuannya sendiri memiliki model segar yang mencoba menyangkal hasil, sehingga agen yang melakukan pekerjaan bukan yang menilainya.50* **Dengan pendapat kedua**: [subagent verifikasi](/docs/id/sub-agents) atau [alur kerja dinamis](/docs/id/workflows) yang memeriksa temuannya sendiri memiliki model segar yang mencoba menyangkal hasil, sehingga agen yang melakukan pekerjaan bukan yang menilainya.

51 51 

52Setiap langkah menukar setup untuk perhatian. Versi prompt berfungsi pada tugas apa pun hari ini. Versi `/goal` dan Stop hook adalah yang memungkinkan run tanpa pengawasan selesai dengan benar tanpa Anda.52Setiap langkah menukar setup untuk perhatian. Versi prompt berfungsi pada tugas apa pun hari ini. Versi `/goal` dan Stop hook adalah yang memungkinkan run tanpa pengawasan selesai dengan benar tanpa Anda.


209 Untuk mendapatkan lebih sedikit prompt tanpa mengorbankan kontrol, pra-setujui alat yang Anda percayai dengan `/permissions` dan biarkan perintah sandboxed berjalan tanpa bertanya dengan `/sandbox`. Beralih ke mode Manual ketika Anda ingin menyetujui pengeditan dan perintah sendiri.209 Untuk mendapatkan lebih sedikit prompt tanpa mengorbankan kontrol, pra-setujui alat yang Anda percayai dengan `/permissions` dan biarkan perintah sandboxed berjalan tanpa bertanya dengan `/sandbox`. Beralih ke mode Manual ketika Anda ingin menyetujui pengeditan dan perintah sendiri.

210</Tip>210</Tip>

211 211 

212Di paket Pro, Max, dan Team, auto mode adalah [mode izin awal bawaan](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk sesi terminal interaktif dan VS Code: model classifier terpisah meninjau sebagian besar tindakan alih-alih Anda dan hanya memblokir apa yang terlihat berisiko, seperti eskalasi cakupan, infrastruktur yang tidak dikenal, atau tindakan yang didorong konten bermusuhan.212Dengan Claude Code v2.1.283 atau lebih baru, auto mode adalah [mode izin awal bawaan](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk sesi terminal interaktif dan VS Code: model classifier terpisah meninjau sebagian besar tindakan alih-alih Anda dan hanya memblokir apa yang terlihat berisiko, seperti eskalasi cakupan, infrastruktur yang tidak dikenal, atau tindakan yang didorong konten bermusuhan. Pada versi sebelumnya, auto mode adalah mode izin awal bawaan hanya pada paket Pro, Max, dan Team.

213 213 

214Dalam mode Manual, mode izin awal bawaan di paket lain, Claude Code meminta sebelum tindakan yang mungkin memodifikasi sistem Anda: penulisan file, perintah Bash, alat MCP. Itu aman tetapi membosankan. Setelah persetujuan kesepuluh Anda mengklik saja daripada meninjau. Dua alat mengurangi gangguan tersebut dalam mode Manual dan berlaku dalam mode auto juga:214Dalam mode Manual, Claude Code meminta sebelum tindakan yang mungkin memodifikasi sistem Anda: penulisan file, perintah Bash, alat MCP. Itu aman tetapi membosankan. Setelah persetujuan kesepuluh Anda mengklik saja daripada meninjau. Dua alat mengurangi gangguan tersebut dalam mode Manual dan berlaku dalam mode auto juga:

215 215 

216* **Allowlist izin**: izinkan alat spesifik yang Anda tahu aman, seperti `npm run lint` atau `git commit`216* **Allowlist izin**: izinkan alat spesifik yang Anda tahu aman, seperti `npm run lint` atau `git commit`

217* **Sandboxing**: aktifkan isolasi tingkat OS yang membatasi akses sistem file dan jaringan, memungkinkan Claude bekerja lebih bebas dalam batas yang ditentukan217* **Sandboxing**: aktifkan isolasi tingkat OS yang membatasi akses sistem file dan jaringan, memungkinkan Claude bekerja lebih bebas dalam batas yang ditentukan

channels.md +1 −1

Details

359 359 

360Selama pratinjau, `--channels` hanya menerima plugin dari daftar penyetujuan yang dipertahankan Anthropic, atau dari daftar penyetujuan organisasi Anda jika admin telah mengatur [`allowedChannelPlugins`](#restrict-which-channel-plugins-can-run). Plugin channel di [claude-plugins-official](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) adalah set yang disetujui secara default. Jika Anda melewatkan sesuatu yang tidak ada di daftar penyetujuan yang efektif, Claude Code dimulai secara normal tetapi channel tidak mendaftar, dan pemberitahuan startup memberi tahu Anda mengapa.360Selama pratinjau, `--channels` hanya menerima plugin dari daftar penyetujuan yang dipertahankan Anthropic, atau dari daftar penyetujuan organisasi Anda jika admin telah mengatur [`allowedChannelPlugins`](#restrict-which-channel-plugins-can-run). Plugin channel di [claude-plugins-official](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) adalah set yang disetujui secara default. Jika Anda melewatkan sesuatu yang tidak ada di daftar penyetujuan yang efektif, Claude Code dimulai secara normal tetapi channel tidak mendaftar, dan pemberitahuan startup memberi tahu Anda mengapa.

361 361 

362Untuk menguji channel yang Anda bangun, gunakan `--dangerously-load-development-channels`. Lihat [Test during the research preview](/docs/id/channels-reference#test-during-the-research-preview) untuk informasi tentang menguji channels khusus yang Anda bangun.362Untuk menguji channel yang Anda bangun, teruskan ke `--dangerously-load-development-channels` dalam bentuk `plugin:<name>@<marketplace>` atau `server:<name>`. Lihat [Test during the research preview](/docs/id/channels-reference#test-during-the-research-preview) untuk informasi tentang menguji channels khusus yang Anda bangun.

363 363 

364Laporkan masalah atau umpan balik di [repositori GitHub Claude Code](https://github.com/anthropics/claude-code/issues).364Laporkan masalah atau umpan balik di [repositori GitHub Claude Code](https://github.com/anthropics/claude-code/issues).

365 365 

Details

804 804 

805Untuk membuat channel Anda dapat diinstal dan dibagikan, bungkus dalam [plugin](/docs/id/plugins/overview) dan publikasikan ke [marketplace](/docs/id/plugins/overview). Pengguna menginstalnya dengan `/plugin install`, kemudian mengaktifkannya per sesi dengan `--channels plugin:<name>@<marketplace>`.805Untuk membuat channel Anda dapat diinstal dan dibagikan, bungkus dalam [plugin](/docs/id/plugins/overview) dan publikasikan ke [marketplace](/docs/id/plugins/overview). Pengguna menginstalnya dengan `/plugin install`, kemudian mengaktifkannya per sesi dengan `--channels plugin:<name>@<marketplace>`.

806 806 

807Channel yang dipublikasikan ke marketplace Anda sendiri masih memerlukan `--dangerously-load-development-channels` untuk berjalan, karena tidak ada di [approved allowlist](/docs/id/channels#supported-channels). Allowlist default adalah plugin channel di `claude-plugins-official`. [Formulir pengajuan in-app](/docs/id/plugins/publish#submit-to-the-community-marketplace) menambahkan plugin ke community marketplace, yang tidak ada di allowlist channel.807Channel yang dipublikasikan ke marketplace Anda sendiri masih memerlukan `--dangerously-load-development-channels` untuk berjalan, karena tidak ada di [approved allowlist](/docs/id/channels#supported-channels). Allowlist default adalah plugin channel di `claude-plugins-official`. Community marketplace tidak ada di allowlist channel.

808 808 

809Jika Anda bekerja dengan kontak partner Anthropic, hubungi mereka untuk mengoordinasikan listing official-marketplace. Pada rencana Team dan Enterprise, admin dapat sebagai gantinya menyertakan plugin Anda dalam daftar [`allowedChannelPlugins`](/docs/id/channels#restrict-which-channel-plugins-can-run) organisasi, yang menggantikan allowlist Anthropic default.809Jika Anda bekerja dengan kontak partner Anthropic, hubungi mereka untuk mengoordinasikan listing official-marketplace. Pada rencana Team dan Enterprise, admin dapat sebagai gantinya menyertakan plugin Anda dalam daftar [`allowedChannelPlugins`](/docs/id/channels#restrict-which-channel-plugins-can-run) organisasi, yang menggantikan allowlist Anthropic default.

810 810 

Details

114 Pesan yang dikirim di tengah giliran tidak di-checkpoint114 Pesan yang dikirim di tengah giliran tidak di-checkpoint

115</h3>115</h3>

116 116 

117Ketika pesan yang Anda [antri saat Claude bekerja](/docs/id/interactive-mode#queue-messages-while-claude-works) mencapai Claude dalam giliran yang sedang berjalan, pesan tersebut bergabung dengan giliran itu alih-alih memulai yang baru. Pesan muncul dalam percakapan, tetapi Claude Code tidak membuat checkpoint untuknya, dan menu rewind tidak mencantumnya. Pesan antri yang Claude Code kirim sebagai gilirannya sendiri mendapatkan checkpoint seperti biasa.117Ketika pesan yang Anda [antri saat Claude bekerja](/docs/id/interactive-mode#queue-messages-while-claude-works) mencapai Claude dalam giliran yang sedang berjalan, pesan tersebut bergabung dengan giliran itu alih-alih memulai yang baru. Pesan muncul dalam percakapan, tetapi Claude Code tidak membuat checkpoint untuknya, dan menu rewind tidak mencantumnya. Pesan antri yang Claude Code kirim sebagai bagian dari giliran baru mendapatkan checkpoint seperti biasa, termasuk ketika beberapa pesan antri [berbagi giliran itu](/docs/id/interactive-mode#when-claude-code-sends-what-you-queued).

118 118 

119Untuk menghapus pesan seperti itu, atau membatalkan edit yang Claude buat setelahnya, rewind ke prompt yang memulai giliran. Itu melakukan rewind seluruh giliran, termasuk pekerjaan yang Claude lakukan sebelum pesan Anda tiba.119Untuk menghapus pesan seperti itu, atau membatalkan edit yang Claude buat setelahnya, rewind ke prompt yang memulai giliran. Itu melakukan rewind seluruh giliran, termasuk pekerjaan yang Claude lakukan sebelum pesan Anda tiba.

120 120 

Details

490 * Dalam sesi tertanam yang [diluncurkan Claude Desktop](#connect-claude-desktop), CLI mengirimkan ekspor ke `OTEL_EXPORTER_OTLP_ENDPOINT` yang dikonfigurasi. CLI melampirkan token sesi gateway ke ekspor tersebut hanya ketika titik akhir itu menunjuk ke gateway itu sendiri.490 * Dalam sesi tertanam yang [diluncurkan Claude Desktop](#connect-claude-desktop), CLI mengirimkan ekspor ke `OTEL_EXPORTER_OTLP_ENDPOINT` yang dikonfigurasi. CLI melampirkan token sesi gateway ke ekspor tersebut hanya ketika titik akhir itu menunjuk ke gateway itu sendiri.

491 * Tanpa tujuan yang dikonfigurasi untuk sinyal, gateway menerima dan membuangnya.491 * Tanpa tujuan yang dikonfigurasi untuk sinyal, gateway menerima dan membuangnya.

492 * Jika Anda sudah mengumpulkan telemetri Claude Code secara langsung, tambahkan kolektor Anda sebagai tujuan `forward_to`, atau namakannya dalam kebijakan untuk melewati relay.492 * Jika Anda sudah mengumpulkan telemetri Claude Code secara langsung, tambahkan kolektor Anda sebagai tujuan `forward_to`, atau namakannya dalam kebijakan untuk melewati relay.

493* **Kredensial**: token gateway adalah satu-satunya kredensial sesi. [Profil Anthropic](/docs/id/authentication#anthropic-profiles-and-federation-credentials) dan masuk claude.ai sebelumnya diabaikan saat masuk, jadi pengembang tidak perlu keluar dari claude.ai terlebih dahulu. Untuk kredensial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` yang dikonfigurasi, lihat [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in).493* **Kredensial**: token gateway adalah satu-satunya kredensial sesi. [Profil Anthropic](/docs/id/authentication#anthropic-profiles-and-federation-credentials) dan masuk claude.ai sebelumnya diabaikan saat masuk, jadi pengembang tidak perlu keluar dari claude.ai terlebih dahulu. Untuk kredensial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` yang dikonfigurasi, atau kunci API yang disimpan oleh masuk Claude Console sebelumnya, lihat [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in).

494* **Pengaturan yang dikelola**: kunci yang dikunci tidak dapat ditimpa secara lokal. CLI menerapkan kebijakan saat startup dan menerapkan perubahan pada setiap polling per jam, terlepas dari [perubahan yang hanya berlaku pada peluncuran berikutnya](/docs/id/server-managed-settings#fetch-and-caching-behavior).494* **Pengaturan yang dikelola**: kunci yang dikunci tidak dapat ditimpa secara lokal. CLI menerapkan kebijakan saat startup dan menerapkan perubahan pada setiap polling per jam, terlepas dari [perubahan yang hanya berlaku pada peluncuran berikutnya](/docs/id/server-managed-settings#fetch-and-caching-behavior).

495* **Startup dengan gateway tidak dapat dijangkau**: sesi yang masuk keluar saat startup dengan kesalahan setelah sekitar 10 detik daripada memulai tanpa pengaturan mereka.495* **Startup dengan gateway tidak dapat dijangkau**: sesi yang masuk keluar saat startup dengan kesalahan setelah sekitar 10 detik daripada memulai tanpa pengaturan mereka.

496* **Startup setelah gateway mengakhiri sesi**: lihat [Tegakkan startup yang gagal-tertutup](/docs/id/server-managed-settings#enforce-fail-closed-startup) untuk peluncuran yang membuka keluar dari gateway dan yang keluar ketika gateway menjawab dengan `401`.496* **Startup setelah gateway mengakhiri sesi**: lihat [Tegakkan startup yang gagal-tertutup](/docs/id/server-managed-settings#enforce-fail-closed-startup) untuk peluncuran yang membuka keluar dari gateway dan yang keluar ketika gateway menjawab dengan `401`.

Details

170| `password` | Tidak | Database credential. Atur di sini daripada di `postgres_url` jadi credential tetap keluar dari URL. Menerima karakter apa pun dan mengambil precedence atas URL credentials. |170| `password` | Tidak | Database credential. Atur di sini daripada di `postgres_url` jadi credential tetap keluar dari URL. Menerima karakter apa pun dan mengambil precedence atas URL credentials. |

171| `max_connections` | Tidak | Postgres connection-pool size per replica. Default `5`, yang konservatif dan ramah ke shared databases. Dengan [spend limits](#admin) diaktifkan, hot path melakukan beberapa operasi per inference request, jadi naikkan untuk dedicated database di bawah load, dan simpan replicas × ini di bawah database's `max_connections`. |171| `max_connections` | Tidak | Postgres connection-pool size per replica. Default `5`, yang konservatif dan ramah ke shared databases. Dengan [spend limits](#admin) diaktifkan, hot path melakukan beberapa operasi per inference request, jadi naikkan untuk dedicated database di bawah load, dan simpan replicas × ini di bawah database's `max_connections`. |

172| `connect_timeout_seconds` | Tidak | Detik gateway menunggu ketika membuka koneksi Postgres. Seluruh number dari `1` hingga `60`, default `5`. Naikkan jika upaya koneksi timeout ketika instance gateway baru dimulai. Memerlukan Claude Code v2.1.274 atau lebih baru di server gateway. Versi sebelumnya menolak untuk memulai ketika key diatur. |172| `connect_timeout_seconds` | Tidak | Detik gateway menunggu ketika membuka koneksi Postgres. Seluruh number dari `1` hingga `60`, default `5`. Naikkan jika upaya koneksi timeout ketika instance gateway baru dimulai. Memerlukan Claude Code v2.1.274 atau lebih baru di server gateway. Versi sebelumnya menolak untuk memulai ketika key diatur. |

173| `readiness_grace_seconds` | Tidak | Berapa banyak detik `/readyz` terus melaporkan ready setelah Postgres berhenti menjawab. Seluruh number dari `0` hingga `3600`, default `0`. Lihat [Outage behavior](/docs/id/claude-apps-gateway-deploy#outage-behavior) untuk cara memilih value. Memerlukan Claude Code v2.1.282 atau lebih baru di server gateway. Versi sebelumnya menolak untuk memulai ketika key diatur. |

173 174 

174Untuk local development, arahkan `postgres_url` ke throwaway Postgres container, misalnya `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.175Untuk local development, arahkan `postgres_url` ke throwaway Postgres container, misalnya `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.

175 176 


947* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`948* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

948* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`949* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`

949 950 

951Ketika Anda [menambahkan label Anda sendiri](#add-your-own-labels), gateway juga mendorong `OTEL_RESOURCE_ATTRIBUTES`.

952 

950Sebelum Claude Code v2.1.265 di server gateway, gateway mendorong ketiga selector exporter sebagai `otlp`, termasuk untuk signal yang tidak ada tujuan yang opt into.953Sebelum Claude Code v2.1.265 di server gateway, gateway mendorong ketiga selector exporter sebagai `otlp`, termasuk untuk signal yang tidak ada tujuan yang opt into.

951 954 

952Endpoint yang didorong dibangun dari URL publik, jadi metrik dan log tidak memerlukan konfigurasi OTEL dari developer atau kebijakan.955Endpoint yang didorong dibangun dari URL publik, jadi metrik dan log tidak memerlukan konfigurasi OTEL dari developer atau kebijakan.


964 967 

965Kedua encoding OTLP protobuf dan JSON direlai, dan backend apa pun yang kompatibel dengan OpenTelemetry bekerja sebagai tujuan.968Kedua encoding OTLP protobuf dan JSON direlai, dan backend apa pun yang kompatibel dengan OpenTelemetry bekerja sebagai tujuan.

966 969 

970<h4 id="add-your-own-labels">

971 Add your own labels

972</h4>

973 

974Untuk menempatkan label tetap seperti `service.namespace` atau `deployment.environment.name` pada telemetry sesi yang masuk melalui gateway, atur `telemetry.resource_attributes`. Setiap label adalah atribut resource OpenTelemetry, dan setiap tujuan menerima label yang sama.

975 

976Sesi mendapat label hanya ketika Anda juga mengatur `telemetry.forward_to` dan `listen.public_url`. Contoh ini menambahkan dua label:

977 

978```yaml theme={null}

979telemetry:

980 forward_to:

981 - url: https://otel-collector.internal.example.com

982 resource_attributes:

983 service.namespace: claude

984 deployment.environment.name: prod

985```

986 

987Gateway menolak untuk memulai ketika label melanggar salah satu aturan ini, dan error startup menamai label:

988 

989* Nama menggunakan hanya huruf, digit, `.`, `_`, dan `-`

990* Nama tidak dicadangkan. Dibandingkan dalam huruf apa pun, nama yang dicadangkan adalah semua yang dimulai dengan `user.`, `enduser.`, atau `identity.`, ditambah `service.name`, `service.version`, `claude.deployment_mode`, `host.arch`, `os.type`, `os.version`, dan `wsl.version`

991* Nilai adalah printable ASCII non-kosong tanpa spasi dan tidak ada `, ; = \ " %`

992* Nilai paling banyak 255 karakter seperti yang dihitung gateway setelah percent-encoding, jadi `/`, `:`, dan `@` masing-masing dihitung sebagai tiga

993* Nilai adalah teks, jadi kutip angka, `true`, atau `false`

994 

995Anda memerlukan Claude Code v2.1.281 atau lebih baru di server gateway untuk mengatur `telemetry.resource_attributes`. Gateway sebelumnya menolak untuk memulai ketika menemukan kunci. Upgrade setiap replika sebelum Anda menambahkan kunci, dan hapus kunci sebelum Anda rollback ke versi sebelumnya.

996 

997Sesi terminal yang masuk melalui `/login` menerima label sebagai `OTEL_RESOURCE_ATTRIBUTES`, didorong dengan [variabel telemetry](#telemetry) lainnya. Jika Anda mengatur `OTEL_RESOURCE_ATTRIBUTES` dalam blok `env` kebijakan, sesi terminal yang cocok dengan kebijakan itu mendapat nilai itu alih-alih label. Claude Desktop menerima label dari gateway bersama `user.email` dan atribut identitas lainnya.

998 

999Claude Code juga menyalin setiap label ke setiap data point metrik, jadi Anda dapat memfilter metrik berdasarkannya dalam backend yang tidak mengindeks atribut resource. Untuk mematikan salinan itu, lihat [Metrics cardinality control](/docs/id/monitoring-usage#metrics-cardinality-control).

1000 

967<h4 id="export-directly-to-your-collector">1001<h4 id="export-directly-to-your-collector">

968 Export directly to your collector1002 Export directly to your collector

969</h4>1003</h4>


1034 1068 

1035Blok `load_test_mode` memungkinkan Anda load test gateway tanpa memanggil penyedia model. Saat diaktifkan, gateway membangun dan menandatangani setiap permintaan penyedia seperti biasa, membuangnya alih-alih mengirimkannya, dan streaming respons kaleng kembali melalui jalur respons normalnya. Respons adalah teks pengisi yang dimulai dengan kalimat mengatakan itu kaleng.1069Blok `load_test_mode` memungkinkan Anda load test gateway tanpa memanggil penyedia model. Saat diaktifkan, gateway membangun dan menandatangani setiap permintaan penyedia seperti biasa, membuangnya alih-alih mengirimkannya, dan streaming respons kaleng kembali melalui jalur respons normalnya. Respons adalah teks pengisi yang dimulai dengan kalimat mengatakan itu kaleng.

1036 1070 

1037Memerlukan v2.1.283 atau lebih baru. Versi sebelumnya menolak untuk memulai ketika kunci diatur, jadi upgrade setiap replika sebelum Anda menambahkan blok dan hapus sebelum Anda rollback.1071Memerlukan Claude Code v2.1.282 atau lebih baru di server gateway. Versi sebelumnya menolak untuk memulai ketika menemukan kunci. Upgrade setiap replika sebelum Anda menambahkan blok, dan hapus blok sebelum Anda rollback.

1038 1072 

1039Contoh di bawah mengaktifkan mode dengan default, respons 750 token output yang di-stream selama sekitar 10 detik:1073Contoh di bawah mengaktifkan mode dengan default, respons kira-kira 750 token teks yang di-stream selama sekitar 10 detik:

1040 1074 

1041```yaml theme={null}1075```yaml theme={null}

1042load_test_mode:1076load_test_mode:


1053 1087 

1054Load test dalam mode ini mencakup gateway, Postgres Anda, dan segalanya di depan gateway. Ini tidak mencakup batas, kecepatan, atau jalur jaringan penyedia.1088Load test dalam mode ini mencakup gateway, Postgres Anda, dan segalanya di depan gateway. Ini tidak mencakup batas, kecepatan, atau jalur jaringan penyedia.

1055 1089 

1056Saat mode diaktifkan, permintaan dapat membawa header `x-load-test-user` yang menyimpan angka bulat hingga tujuh digit, dan gateway menghitung setiap angka sebagai developer terpisah dengan email dan grup developer yang token-nya datang dengan permintaan. Berikan deployment load-test database kosong sendiri, karena gateway menolak untuk memulai dengan mode diaktifkan terhadap database di mana developer apa pun sudah menghabiskan apa pun.1090Tidak ada permintaan model yang dikirim ke penyedia, jadi CPU replika per permintaan adalah estimasi dan membaca lebih rendah dari produksi, yang juga mengenkripsi traffic-nya ke penyedia. Konfirmasi jumlah replika dengan pilot kecil terhadap penyedia nyata. Sebelum v2.1.283, estimasi membaca jauh lebih rendah.

1091 

1092Saat mode diaktifkan, permintaan dapat membawa header `x-load-test-user` yang menyimpan angka bulat hingga tujuh digit. Gateway menghitung setiap angka sebagai developer terpisah, dengan email dan grup developer yang token-nya datang dengan permintaan.

1093 

1094Berikan deployment load-test database kosong sendiri, karena gateway menolak untuk memulai dengan mode diaktifkan terhadap database di mana developer apa pun sudah menghabiskan apa pun.

1057 1095 

1058<Warning>1096<Warning>

1059 Jangan pernah mengaktifkan ini untuk gateway yang developer gunakan. Setiap permintaan mendapat respons kaleng dan tidak ada model yang dipanggil. Gateway mencatat peringatan `load_test_mode is on` saat boot dan menandai setiap event audit [`inference`](/docs/id/claude-apps-gateway-deploy#logs) dengan `load_test: true` saat mode diaktifkan.1097 Jangan pernah mengaktifkan ini untuk gateway yang developer gunakan. Setiap permintaan mendapat respons kaleng dan tidak ada model yang dipanggil. Gateway mencatat peringatan `load_test_mode is on` saat boot dan menandai setiap event audit [`inference`](/docs/id/claude-apps-gateway-deploy#logs) dengan `load_test: true` saat mode diaktifkan.


1111 postgres_url: ${GATEWAY_POSTGRES_URL}1149 postgres_url: ${GATEWAY_POSTGRES_URL}

1112 # max_connections: 51150 # max_connections: 5

1113 # connect_timeout_seconds: 51151 # connect_timeout_seconds: 5

1152 # readiness_grace_seconds: 300 # keep passing the readiness check through a database failover

1114 1153 

1115# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)1154# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)

1116# and per-developer spend enforcement on /v1/messages. Omit to disable.1155# and per-developer spend enforcement on /v1/messages. Omit to disable.


1238 1277 

1239Untuk Claude Desktop, atur key `bootstrapUrl` dalam [managed configuration](https://claude.com/docs/third-party/claude-desktop/configuration) Claude Desktop sendiri ke `<listen.public_url>/user/bootstrap`. Sign-in flow dan per-group policy kemudian cocok dengan CLI's setelah policy opt-in server-side dengan key `desktop`; tanpa opt-in, `/user/bootstrap` mengembalikan 404. Lihat [Claude Desktop overlay](#claude-desktop-overlay) untuk bagian server-side.1278Untuk Claude Desktop, atur key `bootstrapUrl` dalam [managed configuration](https://claude.com/docs/third-party/claude-desktop/configuration) Claude Desktop sendiri ke `<listen.public_url>/user/bootstrap`. Sign-in flow dan per-group policy kemudian cocok dengan CLI's setelah policy opt-in server-side dengan key `desktop`; tanpa opt-in, `/user/bootstrap` mengembalikan 404. Lihat [Claude Desktop overlay](#claude-desktop-overlay) untuk bagian server-side.

1240 1279 

1241Claude Code menghormati [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/id/settings-reference#gatewayinternalnetworks), dan nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) hanya dari managed source di mesin: `managed-settings.json`, plist macOS atau Windows HKLM registry, atau policy helper. Developer menetapkannya dalam `~/.claude/settings.json` mereka sendiri tidak memiliki efek, dan begitu juga menetapkannya dalam gateway payload.1280Claude Code menghormati [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl), [`gatewayInternalNetworks`](/docs/id/settings-reference#gatewayinternalnetworks), dan nilai `"gateway"` dari [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) hanya dari managed source di mesin: `managed-settings.json`, plist macOS atau Windows HKLM registry, atau policy helper. Menetapkannya dalam `~/.claude/settings.json` developer sendiri atau dalam gateway payload tidak mengonfigurasi gateway sign-in.

1281 

1282Tinggalkan `forceLoginMethod` dan `forceLoginOrgUUID` di luar payload. Claude Code masih membaca kedua keys dari payload untuk startup credential check-nya, jadi developer yang menyimpan credential yang dikeluarkan Anthropic di mesin mendapatkan startup exit yang dijelaskan di bawah [Administrator policy requires a Cloud gateway sign-in](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in) bahkan setelah mereka sign in.

1242 1283 

1243<h2 id="related">1284<h2 id="related">

1244 Terkait1285 Terkait

Details

181 Kesehatan181 Kesehatan

182</h3>182</h3>

183 183 

184Gateway melayani `GET /healthz` sebagai probe liveness dan `GET /readyz` sebagai probe kesiapan; `/readyz` memverifikasi toko dapat dijangkau. Keduanya dikecualikan dari `access_control.allow_cidrs`, jadi probe terus bekerja pada pendengar yang terkunci.184Gateway melayani `GET /healthz` sebagai probe liveness dan `GET /readyz` sebagai probe kesiapan. `/readyz` memverifikasi toko dapat dijangkau. Jika Anda menetapkan [`store.readiness_grace_seconds`](/docs/id/claude-apps-gateway-config#store), `/readyz` terus melaporkan siap selama hingga banyak detik setelah toko berhenti menjawab.

185 

186Kedua endpoint dikecualikan dari `access_control.allow_cidrs`, jadi probe terus bekerja pada pendengar yang terkunci.

185 187 

186Dokumen penemuan OAuth di `/.well-known/oauth-authorization-server` juga mengembalikan `200` hanya setelah pemuatan konfigurasi, penemuan OIDC, konstruksi klien upstream, dan migrasi Postgres semua berhasil, jadi berfungsi ganda sebagai pemeriksaan boot end-to-end.188Dokumen penemuan OAuth di `/.well-known/oauth-authorization-server` juga mengembalikan `200` hanya setelah pemuatan konfigurasi, penemuan OIDC, konstruksi klien upstream, dan migrasi Postgres semua berhasil, jadi berfungsi ganda sebagai pemeriksaan boot end-to-end.

187 189 


217* **Sesi yang ada**: token pembawa memvalidasi secara lokal dengan rahasia JWT, penyegaran sesi tidak menyentuh toko, dan proses gateway masih dapat melayani inferensi219* **Sesi yang ada**: token pembawa memvalidasi secara lokal dengan rahasia JWT, penyegaran sesi tidak menyentuh toko, dan proses gateway masih dapat melayani inferensi

218* **Masuk baru**: gagal sampai Postgres pulih, karena aliran perangkat dan penghitung batas lajunya tinggal di Postgres220* **Masuk baru**: gagal sampai Postgres pulih, karena aliran perangkat dan penghitung batas lajunya tinggal di Postgres

219* **[Penegakan batas pengeluaran](/docs/id/claude-apps-gateway-spend-limits#postgres-availability)**: gagal terbuka secara default selama pemadaman, jadi inferensi masih mengalir; balikkan ke gagal tertutup jika Anda lebih suka memblokir daripada menjalankan tanpa meter221* **[Penegakan batas pengeluaran](/docs/id/claude-apps-gateway-spend-limits#postgres-availability)**: gagal terbuka secara default selama pemadaman, jadi inferensi masih mengalir; balikkan ke gagal tertutup jika Anda lebih suka memblokir daripada menjalankan tanpa meter

220* **Kesiapan**: `/readyz` melaporkan tidak siap selama pemadaman, jadi orchestrator yang gating lalu lintas pada kesiapan menghapus setiap replika dari rotasi sekaligus. Dalam topologi itu semua lalu lintas, termasuk inferensi yang dapat masih dilayani gateway, gagal di penyeimbang beban sampai Postgres pulih. Probe liveness di `/healthz` terus lulus, jadi replika tidak dimulai ulang. Arahkan probe kesiapan ke `/healthz` sebagai gantinya jika Anda lebih suka pengembang yang masuk terus bekerja melalui pemadaman toko; biayanya adalah masuk baru gagal terhadap replika yang masih melaporkan siap.222* **Kesiapan**: secara default `/readyz` melaporkan tidak siap segera setelah Postgres tidak dapat dijangkau, jadi setiap replika gagal pemeriksaan kesiapannya sekaligus. Di mana lalu lintas hanya mencapai replika yang lulus pemeriksaan, semua lalu lintas, termasuk inferensi yang masih dapat dilayani gateway, gagal sampai Postgres pulih. Probe liveness di `/healthz` terus lulus sepanjang waktu.

223 

224Jika IdP Anda turun, sesi yang ada bekerja sampai `ttl_hours` dan masuk baru gagal. Penyegaran sesi mendapat jawaban coba-lagi dan berjalan setelah IdP kembali. Atur `ttl_hours` yang lebih lama jika IdP Anda memiliki jendela pemeliharaan yang sering.

225 

226<h4 id="readiness-grace-period">

227 Periode grace kesiapan

228</h4>

229 

230Untuk menjaga pengembang yang masuk tetap bekerja melalui pemadaman Postgres yang singkat seperti failover database, atur [`store.readiness_grace_seconds`](/docs/id/claude-apps-gateway-config#store) lebih lama dari waktu yang diperlukan failover, misalnya `300`. Dengan batas pengeluaran aktif dan perilaku gagal-terbuka default, permintaan melalui replika yang tetap siap tidak diukur sampai Postgres pulih, jadi simpan nilai serendah yang mencakup failover Anda. Jika Anda menetapkan [`enforcement.fail_closed_on_error: true`](/docs/id/claude-apps-gateway-config#enforcement), gateway menolak inferensi pengembang yang masuk dengan pesan `429` `spend limit unavailable` sampai Postgres pulih, bahkan sementara replika masih lulus pemeriksaan kesiapan mereka.

231 

232Pengaturan memerlukan Claude Code v2.1.282 atau lebih baru pada server gateway. Gateway yang lebih awal menolak untuk memulai ketika menemukan kunci, jadi upgrade setiap replika sebelum Anda menambahkannya. [Upgrade](#upgrades) mencakup rollback.

221 233 

222Jika IdP Anda turun, sesi yang ada bekerja sampai `ttl_hours`, login baru gagal, dan penyegaran sesi mendapat jawaban coba-lagi dan berjalan setelah IdP kembali. Atur `ttl_hours` yang lebih lama jika IdP Anda memiliki jendela pemeliharaan yang sering.234Jika Anda menunjukkan probe kesiapan ke `/healthz` sebagai gantinya, replika juga terus lulus melalui pemadaman, tetapi `/healthz` tidak pernah melaporkan tidak siap, jadi replika yang koneksi Postgres-nya tidak pulih terus lulus juga.

223 235 

224<h3 id="jwt-secret-rotation">236<h3 id="jwt-secret-rotation">

225 Rotasi rahasia JWT237 Rotasi rahasia JWT


357| Permintaan pengembang gagal dengan `Not signed in to the Cloud gateway — run /login.` | Pengaturan terkelola mesin menetapkan `forceLoginMethod: "gateway"` atau `forceLoginGatewayUrl`, dan sesi tidak memiliki masuk gateway. Login claude.ai yang tersisa tidak memenuhi persyaratan. | Minta pengembang menjalankan `/login` dan menyelesaikan masuk gateway. Lihat juga [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |369| Permintaan pengembang gagal dengan `Not signed in to the Cloud gateway — run /login.` | Pengaturan terkelola mesin menetapkan `forceLoginMethod: "gateway"` atau `forceLoginGatewayUrl`, dan sesi tidak memiliki masuk gateway. Login claude.ai yang tersisa tidak memenuhi persyaratan. | Minta pengembang menjalankan `/login` dan menyelesaikan masuk gateway. Lihat juga [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

358| Claude Desktop melaporkan bahwa konfigurasi bootstrap-nya tidak dapat diambil | `/user/bootstrap` mengembalikan 404: kebijakan yang cocok dengan pengguna tidak membawa kunci `desktop`, atau tidak ada kebijakan yang cocok. Log audit gateway mencatat setiap penolakan sebagai `desktop_bootstrap.denied` dengan alasannya. | Tambahkan blok `desktop` ke kebijakan yang cocok dengan pengguna, atau ke lapisan dasar `match: {}`; `desktop: {}` kosong sudah cukup. Lihat [overlay Claude Desktop](/docs/id/claude-apps-gateway-config#claude-desktop-overlay). |370| Claude Desktop melaporkan bahwa konfigurasi bootstrap-nya tidak dapat diambil | `/user/bootstrap` mengembalikan 404: kebijakan yang cocok dengan pengguna tidak membawa kunci `desktop`, atau tidak ada kebijakan yang cocok. Log audit gateway mencatat setiap penolakan sebagai `desktop_bootstrap.denied` dengan alasannya. | Tambahkan blok `desktop` ke kebijakan yang cocok dengan pengguna, atau ke lapisan dasar `match: {}`; `desktop: {}` kosong sudah cukup. Lihat [overlay Claude Desktop](/docs/id/claude-apps-gateway-config#claude-desktop-overlay). |

359| Startup menampilkan `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | Build Claude Code yang diinstal mendahului dukungan gateway | Minta pengembang memperbarui Claude Code ke rilis yang mencakup dukungan Cloud gateway |371| Startup menampilkan `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | Build Claude Code yang diinstal mendahului dukungan gateway | Minta pengembang memperbarui Claude Code ke rilis yang mencakup dukungan Cloud gateway |

360| Startup keluar dengan `Administrator policy requires a Cloud gateway sign-in on this machine` | Lingkungan pengembang menetapkan `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN`, pengaturan mereka mengonfigurasi [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper), atau kunci API dari login Claude Console sebelumnya masih tersimpan | Minta pengembang menghapus masing-masing yang berlaku: batalkan pengaturan variabel, hapus entri `apiKeyHelper`, atau jalankan `claude auth logout` untuk menghapus kunci yang tersimpan. Kemudian minta mereka memulai `claude` dan masuk dengan `/login`. Lihat juga [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |372| Startup keluar dengan `Administrator policy requires a Cloud gateway sign-in on this machine` | Lingkungan pengembang menetapkan `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN`, pengaturan mereka mengonfigurasi [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper), atau kunci API dari login Claude Console sebelumnya masih tersimpan | Minta pengembang menghapus masing-masing yang berlaku: batalkan pengaturan variabel, hapus entri `apiKeyHelper`, atau jalankan `claude auth logout` untuk menghapus kunci yang tersimpan. Sesi yang memilih penyedia cloud dengan `CLAUDE_CODE_USE_*` kemudian dimulai tanpa masuk; untuk setiap sesi lainnya, minta mereka memulai `claude` dan masuk dengan `/login`. Lihat juga [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

361| Startup atau `/login` melaporkan `Claude Code may not be enabled for your organization` setelah 403 pada beban pengaturan terkelola | Gateway, atau sesuatu di depannya, menjawab permintaan `/managed/settings` dengan 403. Rute pengaturan gateway sendiri tidak pernah menjawab 403. Status berasal dari pemeriksaan IP [`access_control`](/docs/id/claude-apps-gateway-config#http-tuning) atau dari proxy atau WAF di depan gateway. Log audit mencatat penolakan pemeriksaan IP sebagai `access.denied` dengan alasannya. Pengembang tetap masuk. | Periksa log audit untuk `access.denied` pada waktu kegagalan dan perbaiki daftar `access_control` atau front end, lalu minta pengembang memulai `claude` lagi |373| Startup atau `/login` melaporkan `Claude Code may not be enabled for your organization` setelah 403 pada beban pengaturan terkelola | Gateway, atau sesuatu di depannya, menjawab permintaan `/managed/settings` dengan 403. Rute pengaturan gateway sendiri tidak pernah menjawab 403. Status berasal dari pemeriksaan IP [`access_control`](/docs/id/claude-apps-gateway-config#http-tuning) atau dari proxy atau WAF di depan gateway. Log audit mencatat penolakan pemeriksaan IP sebagai `access.denied` dengan alasannya. Pengembang tetap masuk. | Periksa log audit untuk `access.denied` pada waktu kegagalan dan perbaiki daftar `access_control` atau front end, lalu minta pengembang memulai `claude` lagi |

362| CLI `/login`: `The gateway is limiting sign-in attempts right now`, atau `Request failed with status code 429` pada versi yang lebih lama. Halaman `/device` mungkin menampilkan `Too many attempts` kepada pengembang yang belum pernah mencoba sebelumnya | Batas laju masuk per-IP tercapai. Baik `listen.trusted_proxies` tidak mencakup penyeimbang beban, jadi setiap pengembang berbagi alamatnya, atau banyak pengembang berbagi alamat keluar NAT atau VPN. Acara audit dengan `result: rate_limited` menunjukkan satu atau beberapa nilai `client_ip` yang sama. | Atur `listen.trusted_proxies` ke rentang sumber penyeimbang beban terlebih dahulu, lalu naikkan `rate_limits` jika pengembang masih berbagi alamat. Lihat [Peluncuran besar-besaran](#large-rollouts). |374| CLI `/login`: `The gateway is limiting sign-in attempts right now`, atau `Request failed with status code 429` pada versi yang lebih lama. Halaman `/device` mungkin menampilkan `Too many attempts` kepada pengembang yang belum pernah mencoba sebelumnya | Batas laju masuk per-IP tercapai. Baik `listen.trusted_proxies` tidak mencakup penyeimbang beban, jadi setiap pengembang berbagi alamatnya, atau banyak pengembang berbagi alamat keluar NAT atau VPN. Acara audit dengan `result: rate_limited` menunjukkan satu atau beberapa nilai `client_ip` yang sama. | Atur `listen.trusted_proxies` ke rentang sumber penyeimbang beban terlebih dahulu, lalu naikkan `rate_limits` jika pengembang masih berbagi alamat. Lihat [Peluncuran besar-besaran](#large-rollouts). |

363| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Nama host gateway diselesaikan ke setidaknya satu alamat IP publik. Claude Code memeriksa setiap alamat yang diselesaikan dan memerlukan setiap satu menjadi pribadi. Penyebab umum adalah nama dual-stack di mana satu keluarga diselesaikan ke alamat publik, termasuk penyeimbang beban dual-stack internal AWS, yang mengembalikan alamat AAAA rentang publik. | Minta nama gateway hanya diselesaikan ke alamat pribadi pada mesin pengembang. Untuk nama dual-stack, lepaskan catatan rentang publik atau layani nama DNS internal saja. Lihat [prasyarat jaringan pribadi](/docs/id/claude-apps-gateway#prerequisites). Jika alamat adalah ruang publik yang dimiliki dan digunakan organisasi Anda secara internal, [deklarasikan blok itu](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) sebagai gantinya. |375| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Nama host gateway diselesaikan ke setidaknya satu alamat IP publik. Claude Code memeriksa setiap alamat yang diselesaikan dan memerlukan setiap satu menjadi pribadi. Penyebab umum adalah nama dual-stack di mana satu keluarga diselesaikan ke alamat publik, termasuk penyeimbang beban dual-stack internal AWS, yang mengembalikan alamat AAAA rentang publik. | Minta nama gateway hanya diselesaikan ke alamat pribadi pada mesin pengembang. Untuk nama dual-stack, lepaskan catatan rentang publik atau layani nama DNS internal saja. Lihat [prasyarat jaringan pribadi](/docs/id/claude-apps-gateway#prerequisites). Jika alamat adalah ruang publik yang dimiliki dan digunakan organisasi Anda secara internal, [deklarasikan blok itu](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) sebagai gantinya. |

Details

255 255 

256 store:256 store:

257 postgres_url: ${GATEWAY_POSTGRES_URL} # EKS: ${file:/secrets/postgres-url}257 postgres_url: ${GATEWAY_POSTGRES_URL} # EKS: ${file:/secrets/postgres-url}

258 # readiness_grace_seconds: 300 # keep passing the health check

259 # through an RDS failover

258 260 

259 upstreams:261 upstreams:

260 - provider: bedrock262 - provider: bedrock


423 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"425 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"

424 ```426 ```

425 427 

426 Periode ketenangan 60 detik memberi tugas dingin waktu untuk menarik gambar, terhubung ke toko, dan menjawab pemeriksaan kesehatan pertamanya sebelum ECS mulai menghitung kegagalan terhadap deployment. Pemeriksaan kesehatan grup target di `GET /readyz` memverifikasi toko dapat dijangkau, jadi tugas yang tidak dapat mencapai Postgres tidak pernah memasuki rotasi; lihat [Perilaku Pemadaman](/docs/id/claude-apps-gateway-deploy#outage-behavior) untuk tradeoff dan alternatif `/healthz`.428 Periode ketenangan 60 detik memberi tugas dingin waktu untuk menarik gambar, terhubung ke toko, dan menjawab pemeriksaan kesehatan pertamanya sebelum ECS mulai menghitung kegagalan terhadap deployment.

429 

430 Pemeriksaan kesehatan grup target di `GET /readyz` memverifikasi toko dapat dijangkau, jadi tugas yang tidak dapat mencapai Postgres tidak pernah memasuki rotasi. Untuk menjaga tugas melewati pemeriksaan melalui pemadaman database singkat seperti failover RDS, atur `store.readiness_grace_seconds` seperti yang dijelaskan dalam [Perilaku Pemadaman](/docs/id/claude-apps-gateway-deploy#outage-behavior), yang juga mencakup alternatif `/healthz`.

427 431 

428 Tugas berjalan di subnet pribadi tanpa IP publik, jadi semua egress (ke Bedrock, IdP Anda, Secrets Manager, ECR, dan CloudWatch Logs) melalui gateway NAT. Untuk menjaga lalu lintas Bedrock dari jalur publik, buat endpoint VPC antarmuka `bedrock-runtime` dan arahkan `base_url` upstream ke sana, seperti yang ditunjukkan dalam [referensi upstream Bedrock](/docs/id/claude-apps-gateway-config#amazon-bedrock); IdP masih memerlukan egress internet.432 Tugas berjalan di subnet pribadi tanpa IP publik, jadi semua egress (ke Bedrock, IdP Anda, Secrets Manager, ECR, dan CloudWatch Logs) melalui gateway NAT. Untuk menjaga lalu lintas Bedrock dari jalur publik, buat endpoint VPC antarmuka `bedrock-runtime` dan arahkan `base_url` upstream ke sana, seperti yang ditunjukkan dalam [referensi upstream Bedrock](/docs/id/claude-apps-gateway-config#amazon-bedrock); IdP masih memerlukan egress internet.

429 433 

Details

86 86 

87Kueri pra-pemeriksaan Postgres dengan batas waktu dua detik. Jika toko tidak dapat dijangkau atau waktu habis, penegakan gagal terbuka secara default: permintaan dilanjutkan, gateway mencatat peringatan, dan respons tidak membawa header `anthropic-ratelimit-unified-*`. Atur [`enforcement.fail_closed_on_error: true`](/docs/id/claude-apps-gateway-config#enforcement) untuk gagal tertutup sebagai gantinya, yang mengembalikan `429 billing_error` yang sama tetapi dengan pesan `spend limit unavailable` dan tanpa periode, waktu reset, atau header `retry-after`. Gagal-terbuka menjaga pemadaman toko agar tidak menjadi pemadaman inferensi; gagal-tertutup menjamin tidak ada pengeluaran yang tidak diukur.87Kueri pra-pemeriksaan Postgres dengan batas waktu dua detik. Jika toko tidak dapat dijangkau atau waktu habis, penegakan gagal terbuka secara default: permintaan dilanjutkan, gateway mencatat peringatan, dan respons tidak membawa header `anthropic-ratelimit-unified-*`. Atur [`enforcement.fail_closed_on_error: true`](/docs/id/claude-apps-gateway-config#enforcement) untuk gagal tertutup sebagai gantinya, yang mengembalikan `429 billing_error` yang sama tetapi dengan pesan `spend limit unavailable` dan tanpa periode, waktu reset, atau header `retry-after`. Gagal-terbuka menjaga pemadaman toko agar tidak menjadi pemadaman inferensi; gagal-tertutup menjamin tidak ada pengeluaran yang tidak diukur.

88 88 

89Gagal-terbuka hanya membantu saat penyeimbang beban atau orchestrator Anda masih merutekan lalu lintas ke gateway. Lihat [Perilaku pemadaman](/docs/id/claude-apps-gateway-deploy#outage-behavior) untuk `store.readiness_grace_seconds`, yang menjaga replika melewati pemeriksaan kesiapan mereka melalui pemadaman singkat.

90 

89<h3 id="usage-warnings-in-claude-code">91<h3 id="usage-warnings-in-claude-code">

90 Peringatan penggunaan di Claude Code92 Peringatan penggunaan di Claude Code

91</h3>93</h3>

Details

4 4 

5# Gunakan Claude Code di cloud5# Gunakan Claude Code di cloud

6 6 

7> Jalankan sesi Claude Code di cloud dari browser, ponsel, aplikasi desktop, atau terminal Anda, pindahkan dengan --cloud dan --teleport, dan auto-fix pull request.7> Jalankan sesi Claude Code di cloud dari browser, ponsel, aplikasi desktop, atau terminal Anda, pindahkan dengan `--cloud` dan `--teleport`, dan auto-fix pull request.

8 8 

9<Note>9<Note>

10 Sesi cloud tersedia pada paket Pro, Max, dan Team, serta untuk pengguna Enterprise dengan kursi premium atau kursi Chat + Claude Code.10 Sesi cloud tersedia pada paket Pro, Max, dan Team, serta untuk pengguna Enterprise dengan kursi premium atau kursi Chat + Claude Code.


61 61 

62Thread dalam [project](/docs/id/claude-projects) memerlukan Claude GitHub App diinstal di setiap repositori yang mereka kloning, metode mana pun yang Anda gunakan untuk terhubung. Lihat [Set up GitHub access](/docs/id/claude-projects#set-up-github-access).62Thread dalam [project](/docs/id/claude-projects) memerlukan Claude GitHub App diinstal di setiap repositori yang mereka kloning, metode mana pun yang Anda gunakan untuk terhubung. Lihat [Set up GitHub access](/docs/id/claude-projects#set-up-github-access).

63 63 

64Dalam lingkungan yang dihosting Anthropic, kredensial GitHub Anda tetap terenkripsi di server Anthropic dan tidak pernah masuk ke VM sesi. Operasi GitHub dari VM melewati [GitHub proxy](/docs/id/cloud-environments#github-proxy), yang melampirkan kredensial di sisi server.

65 

64Untuk cara `/schedule` memeriksa akses repositori sebelum membuat routine, lihat [Repositories and branch permissions](/docs/id/routines#repositories-and-branch-permissions). Lihat [Connect from your terminal](/docs/id/web-quickstart#connect-from-your-terminal) untuk panduan `/web-setup`, termasuk apa yang disimpan `/web-setup` dan cara menghapusnya.66Untuk cara `/schedule` memeriksa akses repositori sebelum membuat routine, lihat [Repositories and branch permissions](/docs/id/routines#repositories-and-branch-permissions). Lihat [Connect from your terminal](/docs/id/web-quickstart#connect-from-your-terminal) untuk panduan `/web-setup`, termasuk apa yang disimpan `/web-setup` dan cara menghapusnya.

65 67 

66Quick web setup adalah pengaturan organisasi yang memungkinkan anggota menghubungkan GitHub dengan `/web-setup`, melewati prompt instalasi Claude GitHub App selama onboarding browser, dan membuat onboarding browser membuat lingkungan [**Default**](/docs/id/cloud-environments#the-default-environment) untuk mereka alih-alih menampilkan formulir lingkungan. Pada paket Team dan Enterprise, ini dimatikan secara default, yang menyembunyikan `/web-setup`. [Owner](/docs/id/server-managed-settings#access-control) mengaktifkannya dengan toggle **Quick web setup** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code).68Quick web setup adalah pengaturan organisasi yang memungkinkan anggota menghubungkan GitHub dengan `/web-setup`, melewati prompt instalasi Claude GitHub App selama onboarding browser, dan membuat onboarding browser membuat lingkungan [**Default**](/docs/id/cloud-environments#the-default-environment) untuk mereka alih-alih menampilkan formulir lingkungan. Pada paket Team dan Enterprise, ini dimatikan secara default, yang menyembunyikan `/web-setup`. [Owner](/docs/id/server-managed-settings#access-control) mengaktifkannya dengan toggle **Quick web setup** di [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code).


135 137 

136Ketika Anda menjalankan `claude --cloud` dari repositori yang tidak memiliki remote git, atau dari repositori github.com yang Claude GitHub App tidak diinstal, Claude Code membundel repositori lokal Anda dan mengunggahnya langsung ke sesi cloud. Ini berlaku bahkan jika Anda menghubungkan GitHub dengan `/web-setup`. Bundle mencakup riwayat repositori lengkap Anda di semua cabang, ditambah perubahan yang tidak dicommit ke file yang dilacak.138Ketika Anda menjalankan `claude --cloud` dari repositori yang tidak memiliki remote git, atau dari repositori github.com yang Claude GitHub App tidak diinstal, Claude Code membundel repositori lokal Anda dan mengunggahnya langsung ke sesi cloud. Ini berlaku bahkan jika Anda menghubungkan GitHub dengan `/web-setup`. Bundle mencakup riwayat repositori lengkap Anda di semua cabang, ditambah perubahan yang tidak dicommit ke file yang dilacak.

137 139 

138Di macOS, Linux, dan WSL, Claude Code meninggalkan perubahan yang tidak dicommit ke file bernama seperti kredensial atau kunci dari unggahan dan memberi nama file yang ditinggalkannya. Ini mencakup file `.env`, file Terraform `*.tfvars`, dan file kunci seperti `id_rsa` dan `*.pem`. Sesi dimulai dengan versi yang dicommit dari masing-masing, atau tanpa file jika tidak ada yang dicommit. Dalam worktree tertaut, submodul, atau tata letak serupa, Claude Code mengunggah perubahan ini dengan sisanya dan memberi nama file yang diunggahnya.140Di macOS, Linux, dan WSL, Claude Code meninggalkan perubahan yang tidak dicommit ke file bernama seperti kredensial atau kunci dari unggahan dan memberi nama file yang ditinggalkannya. Ini mencakup file `.env`, file Terraform `*.tfvars`, dan file kunci seperti `id_rsa` dan `*.pem`. Sesi dimulai dengan versi yang dicommit dari masing-masing, atau tanpa file jika tidak ada yang dicommit.

139 141 

140Untuk mengunggah bundle bahkan ketika Claude Code akan mengkloning dari remote, atur `CCR_FORCE_BUNDLE=1`:142Untuk mengunggah bundle bahkan ketika Claude Code akan mengkloning dari remote, atur `CCR_FORCE_BUNDLE=1`:

141 143 


429Sebelum mengandalkan sesi cloud untuk alur kerja, pertimbangkan batasan ini:431Sebelum mengandalkan sesi cloud untuk alur kerja, pertimbangkan batasan ini:

430 432 

431* **Batas laju**: sesi cloud berbagi batas laju dengan semua penggunaan Claude dan Claude Code lainnya dalam akun Anda. Menjalankan beberapa tugas secara paralel mengonsumsi lebih banyak batas laju secara proporsional. Tidak ada biaya komputasi terpisah untuk VM cloud.433* **Batas laju**: sesi cloud berbagi batas laju dengan semua penggunaan Claude dan Claude Code lainnya dalam akun Anda. Menjalankan beberapa tugas secara paralel mengonsumsi lebih banyak batas laju secara proporsional. Tidak ada biaya komputasi terpisah untuk VM cloud.

434* **Batas waktu**: perintah yang dijalankan Claude dan hook SessionStart memiliki batas waktu default yang dapat Anda ubah, dan skrip setup disimpan dalam cache hanya ketika selesai dalam waktu kurang lebih lima menit. Lihat [Batas waktu](/docs/id/cloud-environments#time-limits)

432* **Autentikasi repositori**: Anda hanya dapat menarik sesi cloud ke terminal Anda saat Anda diautentikasi ke akun yang sama435* **Autentikasi repositori**: Anda hanya dapat menarik sesi cloud ke terminal Anda saat Anda diautentikasi ke akun yang sama

433* **Pembatasan platform**: kloning repositori dan pembuatan pull request memerlukan GitHub. Instans [GitHub Enterprise Server](/docs/id/github-enterprise-server) self-hosted didukung untuk paket Team dan Enterprise. Anda dapat mengirim repositori GitLab, Bitbucket, atau non-GitHub lainnya ke sesi cloud sebagai [bundle lokal](#send-local-repositories-without-github) dengan menetapkan `CCR_FORCE_BUNDLE=1`, tetapi sesi tidak dapat mendorong hasil kembali ke remote tersebut436* **Pembatasan platform**: kloning repositori dan pembuatan pull request memerlukan GitHub. Instans [GitHub Enterprise Server](/docs/id/github-enterprise-server) self-hosted didukung untuk paket Team dan Enterprise. Anda dapat mengirim repositori GitLab, Bitbucket, atau non-GitHub lainnya ke sesi cloud sebagai [bundle lokal](#send-local-repositories-without-github) dengan menetapkan `CCR_FORCE_BUNDLE=1`, tetapi sesi tidak dapat mendorong hasil kembali ke remote tersebut

434* **Daftar putih IP organisasi**: sesi cloud memanggil API Anthropic dari infrastruktur yang dikelola Anthropic, bukan jaringan Anda, sementara sesi di [lingkungan self-hosted](/docs/id/self-hosted-environments) memanggilnya dari jaringan Anda sendiri. Jika organisasi Anda memiliki [IP allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) yang diaktifkan, setiap sesi cloud yang dihosting Anthropic gagal dengan kesalahan autentikasi. Hal yang sama berlaku untuk [Code Review](/docs/id/code-review) dan untuk [routines](/docs/id/routines) yang berjalan pada lingkungan yang dihosting Anthropic; routine yang dialihkan ke lingkungan self-hosted memanggil API dari jaringan Anda sendiri. Hubungi [dukungan Anthropic](https://support.claude.com/) untuk mengecualikan layanan yang dihosting Anthropic dari daftar putih IP organisasi Anda.437* **Daftar putih IP organisasi**: sesi cloud memanggil API Anthropic dari infrastruktur yang dikelola Anthropic, bukan jaringan Anda, sementara sesi di [lingkungan self-hosted](/docs/id/self-hosted-environments) memanggilnya dari jaringan Anda sendiri. Jika organisasi Anda memiliki [IP allowlisting](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting) yang diaktifkan, setiap sesi cloud yang dihosting Anthropic gagal dengan kesalahan autentikasi. Hal yang sama berlaku untuk [Code Review](/docs/id/code-review) dan untuk [routines](/docs/id/routines) yang berjalan pada lingkungan yang dihosting Anthropic; routine yang dialihkan ke lingkungan self-hosted memanggil API dari jaringan Anda sendiri. Hubungi [dukungan Anthropic](https://support.claude.com/) untuk mengecualikan layanan yang dihosting Anthropic dari daftar putih IP organisasi Anda.

Details

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

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

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

1557| `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, dan salinan ukuran penuh [gambar yang alat MCP kembalikan](/docs/id/mcp#images-in-tool-results) |

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

1559| `plans/` | File rencana yang ditulis selama [plan mode](/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) |

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


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

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

1584 1584 

1585<h3 id="session-scratchpad-directory">

1586 Direktori scratchpad sesi

1587</h3>

1588 

1589Scratchpad adalah direktori per-sesi yang Claude Code berikan kepada Claude untuk file sementara: hasil antara, skrip pembantu, dan draft yang tidak termasuk dalam proyek Anda. Saat Claude mengatakan itu menyimpan sesuatu "ke scratchpad", file ada di sana. Claude menggunakannya alih-alih `/tmp`, dan dapat membuat, mengedit, dan membaca file di dalamnya tanpa prompt izin.

1590 

1591Scratchpad berada di bawah direktori temp Claude Code daripada `~/.claude`. Temukan jalur sesi saat ini untuk platform Anda:

1592 

1593* **macOS**: `/private/tmp/claude-<uid>/<project>/<session-id>/scratchpad/`

1594* **Linux**: `/tmp/claude-<uid>/<project>/<session-id>/scratchpad/`, atau bentuk yang sama di bawah `$TMPDIR` saat sistem Anda menetapkan satu

1595* **Windows**: `%TEMP%\claude\<project>\<session-id>\scratchpad\`

1596 

1597`<project>` adalah jalur direktori kerja Anda dengan setiap karakter selain huruf dan angka diganti dengan `-`, seperti `-Users-you-my-project`. Jika Anda menetapkan [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars), pohon bergerak di bawah direktori itu sebagai gantinya. Hooks menerima jalur sesi saat ini sebagai [`scratchpad_dir`](/docs/id/hooks#common-input-fields).

1598 

1599File scratchpad bertahan selama transkrip sesi: [sweep retensi](#cleaned-up-automatically) menghapus direktori saat menghapus transkrip, dan [`claude project purge`](#clear-local-data) tidak menyentuh direktori temp. Karena direktori berada di bawah lokasi temp sistem, sistem operasi Anda juga dapat menghapusnya, seperti saat restart. Untuk menyimpan sesuatu yang Claude tulis di sana, minta Claude untuk memindahkannya ke proyek Anda.

1600 

1601Sesi memiliki scratchpad hanya saat semua ini berlaku:

1602 

1603* Anda masuk dengan akun claude.ai daripada kunci API

1604* Sesi menggunakan API Anthropic, bukan Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry

1605* [`enableArtifact`](/docs/id/settings-reference#enableartifact) tidak diatur ke `false`

1606 

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

1586 Disimpan sampai Anda menghapusnya1608 Disimpan sampai Anda menghapusnya

1587</h3>1609</h3>


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

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

1628 1650 

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`.1651Gambar yang Anda tempel atau lampirkan dalam sesi proyek dan [scratchpad](#session-scratchpad-directory) setiap sesi disimpan di bawah direktori temp Claude Code daripada `~/.claude`, jadi purge tidak menghapusnya. [Sweep retensi](#cleaned-up-automatically) masih menghapus gambar setelah mereka lebih tua dari `cleanupPeriodDays`; scratchpad sesi yang dimurnikan tetap ada sampai Anda menghapusnya atau sistem operasi Anda menghapus direktori temp.

1630 1652 

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

1632 1654 

Details

12 12 

13Sebuah project adalah satu percakapan berkelanjutan di mana Claude mengoordinasikan aliran pekerjaan terkait untuk Anda. Anda memberi tahu apa yang perlu dilakukan dan ia memulai thread untuk setiap tugas.13Sebuah project adalah satu percakapan berkelanjutan di mana Claude mengoordinasikan aliran pekerjaan terkait untuk Anda. Anda memberi tahu apa yang perlu dilakukan dan ia memulai thread untuk setiap tugas.

14 14 

15Setiap thread biasanya adalah [sesi cloud](/docs/id/claude-code-on-the-web): Claude Code berjalan di cloud daripada di mesin Anda. Ketika sebuah tugas membutuhkan sesuatu yang hanya dimiliki komputer Anda, Anda dapat meminta Claude untuk menjalankan thread itu di komputer Anda sebagai gantinya melalui [Remote Control](/docs/id/remote-control). Thread berjalan secara paralel dan Anda dapat memeriksanya dan mengarahkannya dari ponsel Anda. Thread cloud terus berjalan setelah Anda menutup laptop.15Setiap thread biasanya adalah [sesi cloud](/docs/id/claude-code-on-the-web): Claude Code berjalan di cloud daripada di mesin Anda. Ketika sebuah tugas membutuhkan sesuatu yang hanya dimiliki komputer Anda, Anda dapat meminta Claude untuk [menjalankan thread itu di komputer Anda](#run-a-thread-on-your-own-computer) sebagai gantinya melalui [Remote Control](/docs/id/remote-control). Thread berjalan secara paralel, dan Anda dapat memeriksanya dan mengarahkannya dari ponsel Anda. Thread cloud terus berjalan setelah Anda menutup laptop, sementara thread di komputer Anda hanya berjalan ketika komputer itu sedang aktif.

16 16 

17Tanpa project, menjalankan beberapa sesi berarti melakukan koordinasi sendiri: Anda memutuskan apa yang dikerjakan masing-masing, mengulangi latar belakang yang sama di awal masing-masing, dan memeriksa kembali untuk melihat mana yang selesai atau membutuhkan jawaban. Dengan project, Anda malah:17Tanpa project, menjalankan beberapa sesi berarti melakukan koordinasi sendiri: Anda memutuskan apa yang dikerjakan masing-masing, mengulangi latar belakang yang sama di awal masing-masing, dan memeriksa kembali untuk melihat mana yang selesai atau membutuhkan jawaban. Dengan project, Anda malah:

18 18 


30 30 

31* **Satu tujuan di banyak repositori**: "Bawa setiap layanan ke konfigurasi lint baru." Claude dapat menjalankan thread per repositori, masing-masing dengan pull request sendiri, dan pane [**Overview**](#see-what-needs-you-in-overview) menunjukkan mana yang siap untuk ditinjau.31* **Satu tujuan di banyak repositori**: "Bawa setiap layanan ke konfigurasi lint baru." Claude dapat menjalankan thread per repositori, masing-masing dengan pull request sendiri, dan pane [**Overview**](#see-what-needs-you-in-overview) menunjukkan mana yang siap untuk ditinjau.

32* **Area yang terus Anda isi**: bug, stack trace, dan permintaan review untuk satu layanan, ditempel ke dalam percakapan saat sampai ke Anda. Jebakan yang Anda beri tahu Claude untuk diingat setelah satu perbaikan ada di [project memory](#give-a-project-standing-context) untuk yang berikutnya.32* **Area yang terus Anda isi**: bug, stack trace, dan permintaan review untuk satu layanan, ditempel ke dalam percakapan saat sampai ke Anda. Jebakan yang Anda beri tahu Claude untuk diingat setelah satu perbaikan ada di [project memory](#give-a-project-standing-context) untuk yang berikutnya.

33* **Build atau migrasi yang lebih besar dari satu sesi**: "Bangun apa yang dijelaskan `docs/spec.md`" atau "Pindahkan aplikasi dari ORM yang sudah usang." Pekerjaan terbagi menjadi thread yang masing-masing mengambil bagian, keputusan yang Anda minta Claude untuk diingat di awal mencapai thread yang lebih baru, dan spec berubah serta bug yang Anda temukan selama build masuk ke percakapan yang sama.33* **Build atau migrasi yang lebih besar dari satu sesi**: "Bangun apa yang dijelaskan `docs/spec.md`" atau "Pindahkan aplikasi dari ORM yang sudah usang." Pekerjaan terbagi menjadi thread yang masing-masing mengambil bagian, keputusan yang Anda minta Claude untuk diingat di awal mencapai thread cloud yang lebih baru, dan spec berubah serta bug yang Anda temukan selama build masuk ke percakapan yang sama.

34* **Pekerjaan yang bukan kode**: folder kontrak atau ekspor tiket dukungan yang terus Anda kembali dengan pertanyaan baru, seperti "temukan sepuluh kesalahan integrasi paling umum di tiket ini." Unggah dokumen alih-alih menambahkan repositori, dan thread memberikan setiap laporan sebagai file di tab [**Library**](#see-what-needs-you-in-overview) project.34* **Pekerjaan yang bukan kode**: folder kontrak atau ekspor tiket dukungan yang terus Anda kembali dengan pertanyaan baru, seperti "temukan sepuluh kesalahan integrasi paling umum di tiket ini." Unggah dokumen alih-alih menambahkan repositori, dan thread memberikan setiap laporan sebagai file di tab [**Library**](#see-what-needs-you-in-overview) project.

35 35 

36Di salah satu dari mereka Anda dapat mengirim batch tugas, beri tahu Claude untuk memulai tanpa meminta Anda mengonfirmasi, pergi, dan temukan thread yang membutuhkan Anda di bawah [**Waiting on you**](#see-what-needs-you-in-overview) ketika Anda kembali, atau minta Claude untuk menjadwalkan bagian pekerjaan sebagai [routine](/docs/id/routines). Jika salah satu ini adalah situasi Anda, [buat project](#create-a-project).36Di salah satu dari mereka Anda dapat mengirim batch tugas, beri tahu Claude untuk memulai tanpa meminta Anda mengonfirmasi, pergi, dan temukan thread yang membutuhkan Anda di bawah [**Waiting on you**](#see-what-needs-you-in-overview) ketika Anda kembali, atau minta Claude untuk menjadwalkan bagian pekerjaan sebagai [routine](/docs/id/routines). Jika salah satu ini adalah situasi Anda, [buat project](#create-a-project).


39 Kapan sesuatu yang lain lebih cocok39 Kapan sesuatu yang lain lebih cocok

40</h3>40</h3>

41 41 

42Thread bekerja pada repositori GitHub dan pada file, folder, dan folder Google Drive yang Anda unggah ke project, bukan pada file atau alat yang hanya ada di mesin Anda. Jika tugas memerlukan mesin Anda, minta Claude untuk menjalankan threadnya di sana melalui [Remote Control](/docs/id/remote-control). [Limitations](#limitations) mencantumkan apa yang diperlukan. Sesuatu yang lain lebih cocok dalam kasus ini:42Project masih cocok ketika hanya beberapa tugas yang memerlukan mesin Anda. Thread cloud bekerja pada repositori GitHub dan pada file, folder, dan folder Google Drive yang Anda unggah ke project, dan untuk tugas sesekali yang memerlukan database lokal atau alat di komputer Anda, Anda dapat meminta Claude untuk [menjalankan thread tugas itu di komputer Anda](#run-a-thread-on-your-own-computer). Sesuatu yang lain lebih cocok dalam kasus ini:

43 43 

44* **Satu tugas yang cocok dalam satu sesi**: "Perbaiki tes login yang tidak stabil." Mulai [sesi cloud](/docs/id/claude-code-on-the-web) sendiri.44* **Satu tugas yang cocok dalam satu sesi**: "Perbaiki tes login yang tidak stabil." Mulai [sesi cloud](/docs/id/claude-code-on-the-web) sendiri.

45* **Pekerjaan di mana setiap tugas memerlukan mesin Anda**: database lokal, emulator perangkat, atau API di belakang VPN Anda. Gunakan sesi lokal, atau [agent view](/docs/id/agent-view) untuk menjalankan beberapa sekaligus. Jika pekerjaan hanya memerlukan file lokal, unggah ke project.45* **Pekerjaan di mana setiap tugas memerlukan mesin Anda**: database lokal, emulator perangkat, atau API di belakang VPN Anda. Gunakan sesi lokal, atau [agent view](/docs/id/agent-view) untuk menjalankan beberapa sekaligus. Jika pekerjaan hanya memerlukan file lokal, unggah ke project.


277 277 

278Setiap persetujuan mencakup prompt itu, atau sisa thread itu jika Anda memilih opsi yang lebih luas. Untuk membiarkan setiap thread menjalankan perintah tertentu tanpa bertanya, atau untuk memblokir beberapa, tambahkan [permission rules](/docs/id/permissions) ke `.claude/settings.json` repositori. Thread menerapkannya hanya dalam project dengan satu repositori; lihat [Apa yang diambil thread dari repositori Anda](#what-threads-pick-up-from-your-repositories).278Setiap persetujuan mencakup prompt itu, atau sisa thread itu jika Anda memilih opsi yang lebih luas. Untuk membiarkan setiap thread menjalankan perintah tertentu tanpa bertanya, atau untuk memblokir beberapa, tambahkan [permission rules](/docs/id/permissions) ke `.claude/settings.json` repositori. Thread menerapkannya hanya dalam project dengan satu repositori; lihat [Apa yang diambil thread dari repositori Anda](#what-threads-pick-up-from-your-repositories).

279 279 

280<h3 id="run-a-thread-on-your-own-computer">

281 Jalankan thread di komputer Anda sendiri

282</h3>

283 

284Ketika tugas membutuhkan sesuatu yang hanya dimiliki komputer Anda, seperti database lokal, emulator perangkat, atau API di belakang VPN Anda, minta Claude untuk menjalankan thread untuk tugas itu di komputer Anda alih-alih di cloud. Ketika Anda meminta dalam percakapan project, thread adalah sesi Claude Code di folder di mesin Anda, terhubung melalui [Remote Control](/docs/id/remote-control). Thread project lainnya terus berjalan di cloud. Dibandingkan dengan thread cloud, thread di komputer Anda:

285 

286* Bekerja dengan file, alat, server MCP, dan pengaturan Claude Code di mesin itu alih-alih lingkungan cloud project

287* Dimulai dengan instruksi project, tetapi tidak dengan file memori yang dimuat

288* Berjalan hanya saat komputer itu terjaga dengan Remote Control diaktifkan

289 

290<Steps>

291 <Step title="Hubungkan folder">

292 Di komputer yang memiliki folder yang dibutuhkan tugas, buatnya tersedia melalui Remote Control dengan salah satu dari dua cara. Keduanya memerlukan Claude Code v2.1.280 atau lebih baru di komputer itu.

293 

294 * **Di aplikasi desktop Claude**: buka **Settings > Claude Code**, aktifkan **Use this computer from your phone and claude.ai**, dan tambahkan folder ke daftar di bawah switch itu. Thread dapat berjalan di komputer ini saat aplikasi terbuka.

295 * **Di terminal**: jalankan `claude remote-control` di folder dan biarkan berjalan.

296 </Step>

297 

298 <Step title="Minta tugas dengan Work locally">

299 Dalam percakapan project, pilih **Work locally** dari menu **+** di samping kotak pesan, yang menandai pesan Anda **Local**, dan tulis apa yang ingin Anda lakukan. Mengatakan dalam pesan bahwa tugas harus berjalan di komputer Anda juga berfungsi.

300 </Step>

301 

302 <Step title="Izinkan di kartu">

303 Claude menjawab dengan kartu **Allow Claude to work in a folder on your device**. Pilih folder jika Anda menghubungkan beberapa. Kemudian klik **Allow once**.

304 </Step>

305</Steps>

306 

307Thread berjalan dalam [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), jadi Claude menjalankan perintah dan mengedit file di folder itu tanpa meminta Anda setiap kali. Jika auto mode tidak tersedia atau dimatikan di Claude Code komputer itu, thread berjalan tanpanya, dan prompt izin apa pun yang dimunculkannya menunggu jawaban Anda di thread, seperti yang dijelaskan [Buka blokir thread yang menunggu persetujuan](#unblock-a-thread-waiting-on-approval).

308 

309Saat thread berjalan, ikon laptop di headernya menunjukkan apakah komputer Anda terhubung. Klik untuk melihat folder mana yang digunakan thread atau untuk mematikan koneksi. Thread dijeda saat komputer itu tidur, dan berhenti jika aplikasi desktop atau `claude remote-control` berhenti. [Kehilangan kontak dengan folder Anda](#lost-contact-with-your-folder) mencakup membuatnya berjalan lagi. Di aplikasi desktop, aktifkan **Keep this computer awake for Remote Control** di bawah **Settings > Claude Code** untuk mencegah komputer tidur dengan sendirinya.

310 

311Project tidak dapat menjalankan thread di komputer Anda saat [**Require trusted devices**](/docs/id/remote-control#trusted-devices) aktif untuk akun Anda.

312 

280<h2 id="give-a-project-standing-context">313<h2 id="give-a-project-standing-context">

281 Berikan project konteks berdiri314 Berikan project konteks berdiri

282</h2>315</h2>


441* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) adalah Claude di saluran Slack tim Anda, di paket Team dan Enterprise. Siapa pun di saluran dapat memberikan pekerjaan, semua orang di saluran melihat dan mengarahkannya, dan itu menggunakan koneksi yang disiapkan admin untuk saluran itu. Project adalah milik Anda sendiri: Anda satu-satunya yang mengirim pekerjaan atau melihat thread-nya, itu menggunakan akses GitHub dan connectors Anda sendiri, dan itu di Pro dan Max. [Bagaimana Claude Tag berbeda dari Cowork dan Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) memiliki perbandingan berdampingan.474* **Claude Tag**: [Claude Tag](https://claude.com/docs/claude-tag/overview) adalah Claude di saluran Slack tim Anda, di paket Team dan Enterprise. Siapa pun di saluran dapat memberikan pekerjaan, semua orang di saluran melihat dan mengarahkannya, dan itu menggunakan koneksi yang disiapkan admin untuk saluran itu. Project adalah milik Anda sendiri: Anda satu-satunya yang mengirim pekerjaan atau melihat thread-nya, itu menggunakan akses GitHub dan connectors Anda sendiri, dan itu di Pro dan Max. [Bagaimana Claude Tag berbeda dari Cowork dan Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) memiliki perbandingan berdampingan.

442* **Cloud sessions**: setiap thread adalah [sesi cloud](/docs/id/claude-code-on-the-web) kecuali Anda meminta Claude untuk menjalankannya di mesin Anda. Bagaimanapun, Claude memulai dan melacaknya alih-alih Anda. Sesi cloud yang Anda mulai sendiri dapat menjadi project atau memberi makan satu melalui [**Continue as a project** atau **Move to project**](#start-from-an-existing-cloud-session).475* **Cloud sessions**: setiap thread adalah [sesi cloud](/docs/id/claude-code-on-the-web) kecuali Anda meminta Claude untuk menjalankannya di mesin Anda. Bagaimanapun, Claude memulai dan melacaknya alih-alih Anda. Sesi cloud yang Anda mulai sendiri dapat menjadi project atau memberi makan satu melalui [**Continue as a project** atau **Move to project**](#start-from-an-existing-cloud-session).

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

444* **Local sessions dan agent view**: sesi yang Anda mulai sendiri di terminal, IDE, atau environment lokal aplikasi desktop tidak dapat ditambahkan ke project. Project menjangkau mesin Anda hanya dengan menjalankan thread di sana melalui [Remote Control](/docs/id/remote-control). [Agent view](/docs/id/agent-view) adalah layar untuk melacak beberapa sesi lokal yang Anda mulai sendiri; itu tidak memiliki koordinator.477* **Remote Control**: [Remote Control](/docs/id/remote-control) menghubungkan claude.ai ke sesi Claude Code yang berjalan di mesin Anda. Ketika Anda meminta Claude dalam project untuk menjalankan thread di komputer Anda, project [menggunakan Remote Control untuk melakukannya](#run-a-thread-on-your-own-computer).

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

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

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

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


454 488 

455* Project tersedia di claude.ai/code, di aplikasi desktop, dan di aplikasi mobile Claude, bukan di CLI terminal atau melalui Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry. Perintah [`claude project`](/docs/id/cli-reference) CLI, yang mengelola keadaan Claude Code lokal untuk direktori, tidak terkait.489* Project tersedia di claude.ai/code, di aplikasi desktop, dan di aplikasi mobile Claude, bukan di CLI terminal atau melalui Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry. Perintah [`claude project`](/docs/id/cli-reference) CLI, yang mengelola keadaan Claude Code lokal untuk direktori, tidak terkait.

456* Thread project adalah [sesi cloud](/docs/id/claude-code-on-the-web), atau sesi di mesin Anda sendiri melalui [Remote Control](/docs/id/remote-control), dengan Anthropic sebagai penyedia model di kedua kasus. [Security](/docs/id/security) dan [Data usage](/docs/id/data-usage) mencakup bagaimana sesi cloud diisolasi dan apa yang disimpan, dan [Connection and security](/docs/id/remote-control#connection-and-security) mencakup bagaimana thread di mesin Anda terhubung dan apa yang disimpan.490* Thread project adalah [sesi cloud](/docs/id/claude-code-on-the-web), atau sesi di mesin Anda sendiri melalui [Remote Control](/docs/id/remote-control), dengan Anthropic sebagai penyedia model di kedua kasus. [Security](/docs/id/security) dan [Data usage](/docs/id/data-usage) mencakup bagaimana sesi cloud diisolasi dan apa yang disimpan, dan [Connection and security](/docs/id/remote-control#connection-and-security) mencakup bagaimana thread di mesin Anda terhubung dan apa yang disimpan.

457* Anda tidak dapat menambahkan sesi yang Anda mulai sendiri di mesin Anda ke project. Untuk membiarkan project menjalankan thread di mesin Anda, hubungkan folder tempat project harus bekerja melalui [Remote Control](/docs/id/remote-control#requirements): aktifkan Remote Control di bawah **Settings > Claude Code** di aplikasi desktop Claude, atau jalankan `claude remote-control` di folder dan biarkan berjalan. Mesin tersebut memerlukan Claude Code v2.1.280 atau lebih baru. Project juga tidak dapat menjalankan thread di mesin Anda saat **Require trusted devices** aktif di pengaturan claude.ai Anda.491* Anda tidak dapat menambahkan sesi yang Anda mulai sendiri di mesin Anda ke project. Project mencapai mesin Anda hanya dengan [menjalankan thread di sana melalui Remote Control](#run-a-thread-on-your-own-computer), dan bagian itu mencantumkan apa yang dibutuhkannya.

458* Sandbox thread cloud dijeda antara giliran dan dilanjutkan ketika thread berlanjut. Jika sandbox tidak dapat dilanjutkan, thread berlanjut dari klon segar, jadi perubahan yang tidak dicommit dapat hilang. Pada tugas panjang, minta Claude untuk commit dan push pekerjaan yang sedang berlangsung.492* Sandbox thread cloud dijeda antara giliran dan dilanjutkan ketika thread berlanjut. Jika sandbox tidak dapat dilanjutkan, thread berlanjut dari klon segar, jadi perubahan yang tidak dicommit dapat hilang. Pada tugas panjang, minta Claude untuk commit dan push pekerjaan yang sedang berlangsung.

459* Project milik satu pengguna. Anda tidak dapat berbagi project atau thread-nya dengan pengguna lain, dan transkrip thread tidak memiliki opsi berbagi yang dimiliki sesi cloud lain. Tidak ada kontrol tingkat organisasi untuk project selama beta.493* Project milik satu pengguna. Anda tidak dapat berbagi project atau thread-nya dengan pengguna lain, dan transkrip thread tidak memiliki opsi berbagi yang dimiliki sesi cloud lain. Tidak ada kontrol tingkat organisasi untuk project selama beta.

460* Thread milik satu project yang memulainya. Anda tidak dapat memindahkan atau menyalin thread ke project lain, atau memindahkannya keluar untuk berdiri sendiri. [**Move to project**](#start-from-an-existing-cloud-session) hanya berjalan dengan cara lain: itu membawa pekerjaan sesi cloud ke project.494* Thread milik satu project yang memulainya. Anda tidak dapat memindahkan atau menyalin thread ke project lain, atau memindahkannya keluar untuk berdiri sendiri. [**Move to project**](#start-from-an-existing-cloud-session) hanya berjalan dengan cara lain: itu membawa pekerjaan sesi cloud ke project.


513 547 

514Thread atau percakapan project membuat permintaan yang hanya dicakup paket Anda dengan kredit penggunaan, seperti satu ke model atau ukuran konteks yang tidak disertakan paket Anda, dan kredit penggunaan tidak diaktifkan untuk akun Anda. [Tambahkan kredit penggunaan ke langganan Anda](/docs/id/costs#add-usage-credits-to-your-subscription) mencakup siapa yang dapat mengaktifkannya atau membelinya di setiap paket. Setelah kredit tersedia, kirim pesan lain untuk mencoba lagi.548Thread atau percakapan project membuat permintaan yang hanya dicakup paket Anda dengan kredit penggunaan, seperti satu ke model atau ukuran konteks yang tidak disertakan paket Anda, dan kredit penggunaan tidak diaktifkan untuk akun Anda. [Tambahkan kredit penggunaan ke langganan Anda](/docs/id/costs#add-usage-credits-to-your-subscription) mencakup siapa yang dapat mengaktifkannya atau membelinya di setiap paket. Setelah kredit tersedia, kirim pesan lain untuk mencoba lagi.

515 549 

550<h3 id="lost-contact-with-your-folder">

551 Kehilangan kontak dengan folder Anda

552</h3>

553 

554Thread yang berjalan di komputer Anda menunjukkan ini ketika sesi Claude Code di sana berhenti merespons, biasanya karena komputer tidur atau aplikasi desktop atau `claude remote-control` berhenti. Bangunkan komputer, dan jika aplikasi desktop atau `claude remote-control` tidak lagi berjalan di sana, mulai lagi: buka kembali aplikasi dan konfirmasi **Use this computer from your phone and claude.ai** masih aktif di bawah **Settings > Claude Code**, atau jalankan `claude remote-control` lagi di folder yang sama.

555 

516<h3 id="context-limit">556<h3 id="context-limit">

517 Pesan lainnya557 Pesan lainnya

518</h3>558</h3>


527| "The project's environment was removed" | Pilih environment berbeda di **Project settings > Environment**; perubahan berlaku untuk thread baru |567| "The project's environment was removed" | Pilih environment berbeda di **Project settings > Environment**; perubahan berlaku untuk thread baru |

528| "Setup script failed" | Klik **Edit setup script** pada kesalahan, perbaiki skrip di environment, lalu kirim pesan lain. [Setup script failed](/docs/id/web-quickstart#setup-script-failed) mencantumkan penyebab umum |568| "Setup script failed" | Klik **Edit setup script** pada kesalahan, perbaiki skrip di environment, lalu kirim pesan lain. [Setup script failed](/docs/id/web-quickstart#setup-script-failed) mencantumkan penyebab umum |

529| "Claude ran out of context on this turn" | Thread mengisi jendela konteksnya. Jika pesan mengatakan thread berlanjut dalam sesi segar, itu berlanjut sendiri; jika tidak, minta Claude dalam percakapan project untuk memulai thread baru untuk pekerjaan yang tersisa |569| "Claude ran out of context on this turn" | Thread mengisi jendela konteksnya. Jika pesan mengatakan thread berlanjut dalam sesi segar, itu berlanjut sendiri; jika tidak, minta Claude dalam percakapan project untuk memulai thread baru untuk pekerjaan yang tersisa |

570| "Couldn't start in" diikuti dengan nama folder Anda | Anda mengizinkan thread untuk berjalan di komputer Anda, tetapi sesi tidak dapat dimulai di sana. Ketika baris di bawah pesan memberikan alasan, perbaiki itu, lalu minta Claude untuk menjalankan tugas lagi |

571| "Claude is out of date on your device" | Komputer yang Anda pilih untuk menjalankan thread memiliki versi Claude Code yang lebih lama dari v2.1.280. Perbarui Claude Code di sana, atau perbarui aplikasi desktop jika itu yang menghubungkan folder, lalu minta Claude untuk menjalankan tugas lagi |

530| "Reached the turn limit" | Thread mencapai batas pada langkah agentic yang [`CLAUDE_CODE_MAX_TURNS`](/docs/id/env-vars) tetapkan. Kirim pesan lain untuk melanjutkan, atau naikkan atau hapus variabel itu di mana pun variabel itu ditetapkan |572| "Reached the turn limit" | Thread mencapai batas pada langkah agentic yang [`CLAUDE_CODE_MAX_TURNS`](/docs/id/env-vars) tetapkan. Kirim pesan lain untuk melanjutkan, atau naikkan atau hapus variabel itu di mana pun variabel itu ditetapkan |

531 573 

532<h2 id="related-resources">574<h2 id="related-resources">

Details

26| `claude install [version]` | Instal atau instal ulang binary asli. Menerima versi seperti `2.1.118`, atau `stable` atau `latest`. Lihat [Instal versi tertentu](/docs/id/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | Instal atau instal ulang binary asli. Menerima versi seperti `2.1.118`, atau `stable` atau `latest`. Lihat [Instal versi tertentu](/docs/id/setup#install-a-specific-version) | `claude install stable` |

27| `claude auth login` | Masuk ke akun Anthropic Anda. Gunakan `--email` untuk mengisi email Anda sebelumnya, `--sso` untuk memaksa autentikasi SSO, dan `--console` untuk masuk dengan Anthropic Console untuk penagihan penggunaan API alih-alih langganan Claude | `claude auth login --console` |27| `claude auth login` | Masuk ke akun Anthropic Anda. Gunakan `--email` untuk mengisi email Anda sebelumnya, `--sso` untuk memaksa autentikasi SSO, dan `--console` untuk masuk dengan Anthropic Console untuk penagihan penggunaan API alih-alih langganan Claude | `claude auth login --console` |

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

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

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

31| `claude attach <id>` | Lampirkan ke [sesi latar belakang](/docs/id/agent-view#manage-sessions-from-the-shell) di terminal ini | `claude attach 7c5dcf5d` |31| `claude attach <id>` | Lampirkan ke [sesi latar belakang](/docs/id/agent-view#manage-sessions-from-the-shell) di terminal ini | `claude attach 7c5dcf5d` |

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


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

67| `--agents` | Tentukan subagen khusus secara dinamis melalui JSON. Menerima [bidang yang tercantum untuk subagen yang ditentukan CLI](/docs/id/sub-agents#choose-the-subagent-scope). Claude Code memvalidasi JSON saat startup dan keluar pada nilai yang tidak valid; lihat [`Konfigurasi --agents tidak valid`](/docs/id/errors#invalid-agents-configuration) untuk pesan dan untuk bendera dan variabel lingkungan yang melewati validasi. Validasi memerlukan Claude Code v2.1.242 atau lebih baru | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |67| `--agents` | Tentukan subagen khusus secara dinamis melalui JSON. Menerima [bidang yang tercantum untuk subagen yang ditentukan CLI](/docs/id/sub-agents#choose-the-subagent-scope). Dengan `--print`, nilainya dapat berupa jalur ke file JSON yang menyimpan objek; bentuk file memerlukan Claude Code v2.1.281 atau lebih baru. Claude Code memvalidasi nilai saat startup dan keluar pada nilai yang tidak valid; lihat [`Konfigurasi --agents tidak valid`](/docs/id/errors#invalid-agents-configuration) untuk pesan dan untuk bendera dan variabel lingkungan yang melewati validasi. Validasi memerlukan Claude Code v2.1.242 atau lebih baru | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

68| `--allow-dangerously-skip-permissions` | Tambahkan `bypassPermissions` ke siklus mode `Shift+Tab` tanpa memulai di dalamnya. Memungkinkan Anda memulai dalam mode berbeda seperti `plan` dan beralih ke `bypassPermissions` nanti. Lihat [mode izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |68| `--allow-dangerously-skip-permissions` | Tambahkan `bypassPermissions` ke siklus mode `Shift+Tab` tanpa memulai di dalamnya. Memungkinkan Anda memulai dalam mode berbeda seperti `plan` dan beralih ke `bypassPermissions` nanti. Lihat [mode izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

69| `--allowedTools`, `--allowed-tools` | Alat yang dijalankan tanpa meminta izin. Lihat [sintaks aturan izin](/docs/id/settings-reference#permission-rule-syntax) untuk pencocokan pola. Untuk membatasi alat mana yang tersedia, gunakan `--tools` sebagai gantinya. Jika Anda menamai salah satu [alat pelacakan tugas](/docs/id/tools-reference#task-tool-availability) di sini, Claude Code juga memilih sesi masuk | `"Bash(git log *)" "Bash(git diff *)" "Read"` |69| `--allowedTools`, `--allowed-tools` | Alat yang dijalankan tanpa meminta izin. Lihat [sintaks aturan izin](/docs/id/settings-reference#permission-rule-syntax) untuk pencocokan pola. Untuk membatasi alat mana yang tersedia, gunakan `--tools` sebagai gantinya. Jika Anda menamai salah satu [alat pelacakan tugas](/docs/id/tools-reference#task-tool-availability) di sini, Claude Code juga memilih sesi masuk | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

70| `--append-subagent-system-prompt` | Tambahkan teks khusus ke akhir prompt sistem setiap [subagen](/docs/id/sub-agents), termasuk subagen bersarang, terlepas dari [subagen yang bercabang](/docs/id/sub-agents#fork-the-current-conversation), yang menggunakan kembali prompt percakapan sendiri. Hanya berlaku dalam mode non-interaktif dengan `-p`. Memerlukan Claude Code v2.1.205 atau lebih baru | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |70| `--append-subagent-system-prompt` | Tambahkan teks khusus ke akhir prompt sistem setiap [subagen](/docs/id/sub-agents), termasuk subagen bersarang, terlepas dari [subagen yang bercabang](/docs/id/sub-agents#fork-the-current-conversation), yang menggunakan kembali prompt percakapan sendiri. Hanya berlaku dalam mode non-interaktif dengan `-p`. Memerlukan Claude Code v2.1.205 atau lebih baru | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |


75| `--ax-screen-reader` | Render output yang ramah pembaca layar: teks datar tanpa batas dekoratif atau animasi. Memaksa renderer klasik, jadi pengaturan [`tui`](/docs/id/settings-reference#tui) tidak berpengaruh; [sesi latar belakang](/docs/id/agent-view) yang terlampir masih render layar penuh. Mengambil alih [`CLAUDE_AX_SCREEN_READER`](/docs/id/env-vars) dan pengaturan [`axScreenReader`](/docs/id/settings-reference#axscreenreader). Memerlukan Claude Code v2.1.181 atau lebih baru | `claude --ax-screen-reader` |75| `--ax-screen-reader` | Render output yang ramah pembaca layar: teks datar tanpa batas dekoratif atau animasi. Memaksa renderer klasik, jadi pengaturan [`tui`](/docs/id/settings-reference#tui) tidak berpengaruh; [sesi latar belakang](/docs/id/agent-view) yang terlampir masih render layar penuh. Mengambil alih [`CLAUDE_AX_SCREEN_READER`](/docs/id/env-vars) dan pengaturan [`axScreenReader`](/docs/id/settings-reference#axscreenreader). Memerlukan Claude Code v2.1.181 atau lebih baru | `claude --ax-screen-reader` |

76| `--bare` | Mode minimal: lewati penemuan otomatis hooks, skills, perintah khusus, subagen, plugin, server MCP, memori otomatis, dan CLAUDE.md sehingga panggilan skrip dimulai lebih cepat. Skills dalam direktori yang Anda lewatkan dengan `--add-dir` masih dimuat. Claude memiliki akses ke alat Bash, pembacaan file, dan pengeditan file. Menetapkan [`CLAUDE_CODE_SIMPLE`](/docs/id/env-vars). Lihat [mode bare](/docs/id/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |76| `--bare` | Mode minimal: lewati penemuan otomatis hooks, skills, perintah khusus, subagen, plugin, server MCP, memori otomatis, dan CLAUDE.md sehingga panggilan skrip dimulai lebih cepat. Skills dalam direktori yang Anda lewatkan dengan `--add-dir` masih dimuat. Claude memiliki akses ke alat Bash, pembacaan file, dan pengeditan file. Menetapkan [`CLAUDE_CODE_SIMPLE`](/docs/id/env-vars). Lihat [mode bare](/docs/id/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |

77| `--betas` | Header beta untuk disertakan dalam permintaan API (hanya pengguna kunci API) | `claude --betas interleaved-thinking` |77| `--betas` | Header beta untuk disertakan dalam permintaan API (hanya pengguna kunci API) | `claude --betas interleaved-thinking` |

78| `--bg`, `--background` | Mulai sesi sebagai [agen latar belakang](/docs/id/agent-view) dan kembali segera. Mencetak ID sesi dan perintah manajemen. Gabungkan dengan `--exec` untuk menjalankan perintah shell sebagai pekerjaan latar belakang yang didukung PTY alih-alih memulai sesi Claude, atau dengan `--agent` untuk menjalankan subagen tertentu. Tidak dapat digabungkan dengan `-p`/`--print`; lihat [referensi kesalahan](/docs/id/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |78| `--bg`, `--background` | Mulai sesi sebagai [agen latar belakang](/docs/id/agent-view) dan kembali segera. Mencetak ID sesi dan perintah manajemen. Gabungkan dengan `--exec` untuk menjalankan perintah shell sebagai pekerjaan latar belakang yang didukung PTY alih-alih memulai sesi Claude, atau dengan `--agent` untuk menjalankan subagen tertentu. Memeriksa [kepercayaan ruang kerja](/docs/id/permissions#project-allow-rules-and-workspace-trust) untuk direktori sebelum dimulai. Tidak dapat digabungkan dengan `-p`/`--print`; lihat [referensi kesalahan](/docs/id/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

79| `--channels` | (Pratinjau penelitian) Server MCP yang [notifikasi saluran](/docs/id/channels) Claude harus mendengarkan dalam sesi ini. Daftar yang dipisahkan spasi dari entri `plugin:<name>@<marketplace>`. Memerlukan autentikasi Anthropic melalui claude.ai atau kunci API Console | `claude --channels plugin:my-notifier@my-marketplace` |79| `--channels` | (Pratinjau penelitian) Server MCP yang [notifikasi saluran](/docs/id/channels) Claude harus mendengarkan dalam sesi ini. Daftar yang dipisahkan spasi dari entri `plugin:<name>@<marketplace>`. Memerlukan autentikasi Anthropic melalui claude.ai atau kunci API Console | `claude --channels plugin:my-notifier@my-marketplace` |

80| `--chrome` | Aktifkan [integrasi browser Chrome](/docs/id/chrome) untuk otomasi web dan pengujian | `claude --chrome` |80| `--chrome` | Aktifkan [integrasi browser Chrome](/docs/id/chrome) untuk otomasi web dan pengujian | `claude --chrome` |

81| `--cloud` | Dengan deskripsi tugas, buat [sesi cloud](/docs/id/claude-code-on-the-web) baru. Dengan ID sesi (`session_...` atau `cse_...`) atau URL claude.ai/code, antrekan pesan ke sesi yang ada sebagai gantinya, dengan `-p`. Lihat [kirim pesan lanjutan](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |81| `--cloud` | Dengan deskripsi tugas, buat [sesi cloud](/docs/id/claude-code-on-the-web) baru. Dengan ID sesi (`session_...` atau `cse_...`) atau URL claude.ai/code, antrekan pesan ke sesi yang ada sebagai gantinya, dengan `-p`. Lihat [kirim pesan lanjutan](/docs/id/claude-code-on-the-web#send-follow-ups-from-the-cli). | `claude --cloud "Fix the login bug"` |


89| `--effort` | Atur [tingkat upaya](/docs/id/model-config#adjust-effort-level) untuk sesi saat ini. Opsi: `low`, `medium`, `high`, `xhigh`, `max`, atau `ultracode`. Tingkat yang tersedia tergantung pada model. `ultracode` meminta upaya `xhigh` dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) diaktifkan, dan memerlukan Claude Code v2.1.203 atau lebih baru. Menimpa pengaturan [`modelSettings`](/docs/id/settings-reference#modelsettings) dan [`effortLevel`](/docs/id/settings-reference#effortlevel) untuk sesi ini dan tidak bertahan | `claude --effort high` |89| `--effort` | Atur [tingkat upaya](/docs/id/model-config#adjust-effort-level) untuk sesi saat ini. Opsi: `low`, `medium`, `high`, `xhigh`, `max`, atau `ultracode`. Tingkat yang tersedia tergantung pada model. `ultracode` meminta upaya `xhigh` dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) diaktifkan, dan memerlukan Claude Code v2.1.203 atau lebih baru. Menimpa pengaturan [`modelSettings`](/docs/id/settings-reference#modelsettings) dan [`effortLevel`](/docs/id/settings-reference#effortlevel) untuk sesi ini dan tidak bertahan | `claude --effort high` |

90| `--enable-auto-mode` | Dihapus di v2.1.111. Mode otomatis sekarang dalam siklus `Shift+Tab` secara default; gunakan `--permission-mode auto` untuk memulai di dalamnya | `claude --permission-mode auto` |90| `--enable-auto-mode` | Dihapus di v2.1.111. Mode otomatis sekarang dalam siklus `Shift+Tab` secara default; gunakan `--permission-mode auto` untuk memulai di dalamnya | `claude --permission-mode auto` |

91| `--environment <environment-id>` | Buat sesi cloud baru yang berjalan di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments) dengan ID yang diberikan. ID lingkungan dimulai dengan `ccpool_`. Lihat [perilaku pengiriman `--environment`](/docs/id/self-hosted-environments-testing#environment-dispatch-behavior) untuk perilaku pengiriman dan kombinasi bendera yang ditolaknya. Memerlukan Claude Code v2.1.224 atau lebih baru | `claude -p "Fix the login bug" --environment ccpool_abc123` |91| `--environment <environment-id>` | Buat sesi cloud baru yang berjalan di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments) dengan ID yang diberikan. ID lingkungan dimulai dengan `ccpool_`. Lihat [perilaku pengiriman `--environment`](/docs/id/self-hosted-environments-testing#environment-dispatch-behavior) untuk perilaku pengiriman dan kombinasi bendera yang ditolaknya. Memerlukan Claude Code v2.1.224 atau lebih baru | `claude -p "Fix the login bug" --environment ccpool_abc123` |

92| `--exclude-dynamic-system-prompt-sections` | Pindahkan bagian per-mesin dari prompt sistem (direktori kerja, info lingkungan, jalur memori, bendera git-repo) ke pesan pengguna pertama. Meningkatkan penggunaan kembali cache prompt di berbagai pengguna dan mesin yang menjalankan tugas yang sama. Hanya berlaku dengan prompt sistem default; diabaikan ketika `--system-prompt` atau `--system-prompt-file` diatur. Gunakan dengan `-p` untuk beban kerja multi-pengguna yang ditulis skrip | `claude -p --exclude-dynamic-system-prompt-sections "query"` |92| `--exclude-dynamic-system-prompt-sections` | Pindahkan konteks per-pengguna, seperti lokasi memori otomatis, keluar dari prompt sistem dan ke pesan pengguna pertama. Meningkatkan penggunaan kembali cache prompt di berbagai pengguna dan mesin yang menjalankan tugas yang sama. Hanya berlaku dengan prompt sistem default; diabaikan ketika `--system-prompt` atau `--system-prompt-file` diatur. Gunakan dengan `-p` untuk beban kerja multi-pengguna yang ditulis skrip | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

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


127| `--resume`, `-r` | Lanjutkan sesi tertentu berdasarkan ID atau nama, atau tampilkan pemilih interaktif untuk memilih sesi. Sebagai pengganti ID, Anda dapat melewatkan jalur absolut ke file [transkrip](/docs/id/sessions#where-transcripts-are-stored) `.jsonl` sesi. Pemilih dan pencarian nama mencakup sesi yang menambahkan direktori ini dengan `/add-dir`. Ketika Anda melewatkan ID sesi, Claude Code mencari direktori proyek saat ini dan git worktrees-nya, kemudian setiap proyek lain di mesin ini. Sebelum v2.1.223, pencarian ID hanya mencakup direktori proyek saat ini dan git worktrees-nya. [Sesi latar belakang](/docs/id/agent-view) muncul di pemilih yang ditandai dengan `bg` | `claude --resume auth-refactor` |127| `--resume`, `-r` | Lanjutkan sesi tertentu berdasarkan ID atau nama, atau tampilkan pemilih interaktif untuk memilih sesi. Sebagai pengganti ID, Anda dapat melewatkan jalur absolut ke file [transkrip](/docs/id/sessions#where-transcripts-are-stored) `.jsonl` sesi. Pemilih dan pencarian nama mencakup sesi yang menambahkan direktori ini dengan `/add-dir`. Ketika Anda melewatkan ID sesi, Claude Code mencari direktori proyek saat ini dan git worktrees-nya, kemudian setiap proyek lain di mesin ini. Sebelum v2.1.223, pencarian ID hanya mencakup direktori proyek saat ini dan git worktrees-nya. [Sesi latar belakang](/docs/id/agent-view) muncul di pemilih yang ditandai dengan `bg` | `claude --resume auth-refactor` |

128| `--safe-mode` | Mulai dengan semua kustomisasi dinonaktifkan untuk memecahkan masalah konfigurasi yang rusak: CLAUDE.md, skills, plugins, hooks, server MCP, perintah dan agen khusus, gaya output, alur kerja, tema khusus, pintasan keyboard khusus, perintah baris status dan saran file, server LSP, dan memori otomatis tidak dimuat. Autentikasi, pemilihan model, alat bawaan, dan izin bekerja secara normal, yang berbeda dari [`--bare`](/docs/id/headless#start-faster-with-bare-mode). Kebijakan pengaturan terkelola masih berlaku, termasuk hook yang dikonfigurasi kebijakan, baris status, dan perintah saran file; plugin terkelola, skills terkelola, CLAUDE.md terkelola, dan server MCP yang dikonfigurasi kebijakan tidak. Berguna untuk memeriksa apakah kustomisasi adalah apa yang memicu [fallback model otomatis](/docs/id/model-config#automatic-model-fallback). Menetapkan [`CLAUDE_CODE_SAFE_MODE`](/docs/id/env-vars) | `claude --safe-mode` |128| `--safe-mode` | Mulai dengan semua kustomisasi dinonaktifkan untuk memecahkan masalah konfigurasi yang rusak: CLAUDE.md, skills, plugins, hooks, server MCP, perintah dan agen khusus, gaya output, alur kerja, tema khusus, pintasan keyboard khusus, perintah baris status dan saran file, server LSP, dan memori otomatis tidak dimuat. Autentikasi, pemilihan model, alat bawaan, dan izin bekerja secara normal, yang berbeda dari [`--bare`](/docs/id/headless#start-faster-with-bare-mode). Kebijakan pengaturan terkelola masih berlaku, termasuk hook yang dikonfigurasi kebijakan, baris status, dan perintah saran file; plugin terkelola, skills terkelola, CLAUDE.md terkelola, dan server MCP yang dikonfigurasi kebijakan tidak. Berguna untuk memeriksa apakah kustomisasi adalah apa yang memicu [fallback model otomatis](/docs/id/model-config#automatic-model-fallback). Menetapkan [`CLAUDE_CODE_SAFE_MODE`](/docs/id/env-vars) | `claude --safe-mode` |

129| `--session-id` | Gunakan ID sesi tertentu untuk percakapan (harus UUID yang valid) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |129| `--session-id` | Gunakan ID sesi tertentu untuk percakapan (harus UUID yang valid) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

130| `--setting-sources` | Daftar sumber pengaturan yang dipisahkan koma untuk dimuat (`user`, `project`, `local`) | `claude --setting-sources user,project` |130| `--setting-sources` | Daftar sumber pengaturan yang dipisahkan koma untuk dimuat (`user`, `project`, `local`). Lihat [tampilan agen](/docs/id/agent-view#what-carries-over-when-you-background) dan [tim agen](/docs/id/agent-teams#context-and-communication) untuk sesi yang Anda mulai dari sesi ini yang mewarisi daftar | `claude --setting-sources user,project` |

131| `--settings` | Jalur ke file JSON pengaturan atau string JSON inline. Nilai yang Anda atur di sini menimpa kunci yang sama dalam file `settings.json` Anda untuk sesi ini. Kunci yang Anda lewatkan menyimpan nilai berbasis file mereka. File harus berupa file biasa tidak lebih besar dari 2 MiB. Lihat [preseden pengaturan](/docs/id/settings#settings-precedence) | `claude --settings ./settings.json` |131| `--settings` | Jalur ke file JSON pengaturan atau string JSON inline. Nilai yang Anda atur di sini menimpa kunci yang sama dalam file `settings.json` Anda untuk sesi ini. Kunci yang Anda lewatkan menyimpan nilai berbasis file mereka. File harus berupa file biasa tidak lebih besar dari 2 MiB. Lihat [preseden pengaturan](/docs/id/settings#settings-precedence) | `claude --settings ./settings.json` |

132| `--strict-mcp-config` | Hanya gunakan server MCP dari `--mcp-config`, abaikan semua konfigurasi MCP lainnya. Lihat [Kontrol eksklusif dengan managed-mcp.json](/docs/id/managed-mcp#exclusive-control-with-managed-mcp-json) untuk apa yang dilakukan bendera di bawah file MCP terkelola | `claude --strict-mcp-config --mcp-config ./mcp.json` |132| `--strict-mcp-config` | Hanya gunakan server MCP dari `--mcp-config`, abaikan semua konfigurasi MCP lainnya. Lihat [Kontrol eksklusif dengan managed-mcp.json](/docs/id/managed-mcp#exclusive-control-with-managed-mcp-json) untuk apa yang dilakukan bendera di bawah file MCP terkelola | `claude --strict-mcp-config --mcp-config ./mcp.json` |

133| `--system-prompt` | Ganti seluruh prompt sistem dengan teks khusus | `claude --system-prompt "You are a Python expert"` |133| `--system-prompt` | Ganti seluruh prompt sistem dengan teks khusus | `claude --system-prompt "You are a Python expert"` |

Details

78DATABASE_URL=postgres://localhost:5432/myapp78DATABASE_URL=postgres://localhost:5432/myapp

79```79```

80 80 

81Setiap sesi menyalin nilai lingkungan sekali, saat startup, ke dalam variabel lingkungan biasa yang dapat dibaca oleh perintah apa pun yang dijalankan Claude. Karena sesi yang berjalan tidak membaca ulang konfigurasi, mengedit atau menambahkan variabel mempengaruhi sesi yang Anda mulai setelahnya; sesi yang sudah berjalan menyimpan nilai yang mereka mulai.81Setiap sesi menyalin nilai lingkungan sekali, saat startup, ke dalam variabel lingkungan biasa yang dapat dibaca oleh perintah apa pun yang dijalankan Claude, kecuali variabel `OTEL_*`. Claude Code menggunakan variabel tersebut untuk [ekspor telemetri](/docs/id/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) miliknya sendiri dan tidak meneruskannya ke perintah yang dijalankannya. Karena sesi yang berjalan tidak membaca ulang konfigurasi, mengedit atau menambahkan variabel mempengaruhi sesi yang Anda mulai setelahnya; sesi yang sudah berjalan menyimpan nilai yang mereka mulai.

82 82 

83Sesi cloud juga menetapkan beberapa variabel sendiri ketika memulai. Untuk [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/id/claude-code-on-the-web#manage-context), nilai yang ditetapkan sesi menimpa nilai yang Anda tambahkan di sini, jadi menambahkan kunci itu di sini tidak berpengaruh.83Sesi cloud juga menetapkan beberapa variabel sendiri ketika memulai. Untuk [`CLAUDE_AUTOCOMPACT_PCT_OVERRIDE`](/docs/id/claude-code-on-the-web#manage-context), nilai yang ditetapkan sesi menimpa nilai yang Anda tambahkan di sini, jadi menambahkan kunci itu di sini tidak berpengaruh.

84 84 


149* **GitHub**: [proxy GitHub](#github-proxy) mengautentikasi permintaan ke GitHub sebagai gantinya, jadi Anda tidak memerlukan kredensial API untuk itu149* **GitHub**: [proxy GitHub](#github-proxy) mengautentikasi permintaan ke GitHub sebagai gantinya, jadi Anda tidak memerlukan kredensial API untuk itu

150* **API Anthropic dan registri paket publik**: `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io`, dan `proxy.golang.org`150* **API Anthropic dan registri paket publik**: `api.anthropic.com`, `registry.npmjs.org`, `jsr.io`, `npm.jsr.io`, `pypi.org`, `files.pythonhosted.org`, `index.crates.io`, dan `proxy.golang.org`

151* **Permintaan skrip setup**: Claude Code terhubung ke proxy agen ketika diluncurkan, setelah [skrip setup](#setup-scripts) telah berjalan151* **Permintaan skrip setup**: Claude Code terhubung ke proxy agen ketika diluncurkan, setelah [skrip setup](#setup-scripts) telah berjalan

152* **Ekspor telemetri Claude Code**: Claude Code mengirim [ekspor telemetri](/docs/id/monitoring-usage#telemetry-from-cloud-sessions-and-claude-tag) miliknya sendiri daripada melalui perintah yang dijalankannya, dan permintaan itu tidak melewati proxy agen

152 153 

153<h3 id="select-an-environment-from-the-cli">154<h3 id="select-an-environment-from-the-cli">

154 Pilih lingkungan dari CLI155 Pilih lingkungan dari CLI


250* **Sesi di lingkungan ini membuka artifact publik organisasi lain**: Claude Code mengambil yang dari host secara langsung, jadi tambahkan ke daftar ini.251* **Sesi di lingkungan ini membuka artifact publik organisasi lain**: Claude Code mengambil yang dari host secara langsung, jadi tambahkan ke daftar ini.

251* **Anda mengonfigurasi CLI lokal atau runner yang di-host sendiri**: pertahankan host dalam allowlist itu. Lihat [persyaratan akses jaringan](/docs/id/network-config#network-access-requirements) dan [persyaratan jaringan](/docs/id/self-hosted-environments-deploy#network-requirements) yang di-host sendiri.252* **Anda mengonfigurasi CLI lokal atau runner yang di-host sendiri**: pertahankan host dalam allowlist itu. Lihat [persyaratan akses jaringan](/docs/id/network-config#network-access-requirements) dan [persyaratan jaringan](/docs/id/self-hosted-environments-deploy#network-requirements) yang di-host sendiri.

252 253 

253Setiap lingkungan memiliki daftar domain yang diizinkan sendiri; tidak ada allowlist tingkat organisasi yang dapat didorong admin ke lingkungan setiap anggota. [Pengaturan yang dikelola server](/docs/id/server-managed-settings) masih berlaku di dalam sesi cloud, tetapi tidak ada yang menambahkan domain ke allowlist jaringan lingkungan. Untuk memberikan tim satu daftar standar, Owner dapat membuat [lingkungan bersama organisasi](#organization-shared-environments) dengan akses jaringan **Custom** dan daftar itu.254Setiap lingkungan memiliki daftar domain yang diizinkan sendiri; tidak ada allowlist tingkat organisasi yang dapat didorong admin ke lingkungan setiap anggota. [Pengaturan yang dikelola server](/docs/id/server-managed-settings) tidak menambahkan domain ke allowlist jaringan lingkungan. Untuk memberikan tim satu daftar standar, Owner dapat membuat [lingkungan bersama organisasi](#organization-shared-environments) dengan akses jaringan **Custom** dan daftar itu.

254 255 

255<h3 id="github-proxy">256<h3 id="github-proxy">

256 Proxy GitHub257 Proxy GitHub


281 Apa yang tersedia di sesi cloud282 Apa yang tersedia di sesi cloud

282</h2>283</h2>

283 284 

284Di lingkungan yang di-host Anthropic, setiap sesi mendapat mesin virtual (VM) segar yang menjalankan Ubuntu 24.04 pada x86\_64, terlepas dari sistem operasi dan arsitektur CPU Anda sendiri, dengan repositori Anda yang dikloning dan toolchain umum yang sudah diinstal sebelumnya. Ketika dependensi menyediakan binari yang sudah dikompilasi, seperti gem Ruby dengan ekstensi asli atau wheel Python yang sudah dibangun, gunakan build Linux x86\_64 untuk mencocokkan VM. Bagian ini mencakup default yang di-host Anthropic, alat GitHub bawaan, cara [menjalankan tes dan layanan](#run-tests-start-services-and-add-packages), dan [batas sumber daya](#resource-limits) yang diterima setiap VM.285Di lingkungan yang di-host Anthropic, setiap sesi mendapat mesin virtual (VM) segar yang menjalankan Ubuntu 24.04 pada x86\_64, terlepas dari sistem operasi dan arsitektur CPU Anda sendiri, dengan repositori Anda yang dikloning dan toolchain umum yang sudah diinstal sebelumnya. Ketika dependensi menyediakan binari yang sudah dikompilasi, seperti gem Ruby dengan ekstensi asli atau wheel Python yang sudah dibangun, gunakan build Linux x86\_64 untuk mencocokkan VM. Bagian ini mencakup default yang di-host Anthropic, alat GitHub bawaan, cara [menjalankan tes dan layanan](#run-tests-start-services-and-add-packages), [batas sumber daya](#resource-limits) yang diterima setiap VM, dan [batas waktu](#time-limits) pada pekerjaan yang berjalan lama.

285 286 

286<Note>287<Note>

287 Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan di runner Anda sendiri sebagai gantinya, dengan alat yang disediakan gambar runner Anda.288 Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan di runner Anda sendiri sebagai gantinya, dengan alat yang disediakan gambar runner Anda.


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

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

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

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| [Pengaturan yang dikelola server](/docs/id/server-managed-settings) organisasi Anda | Ya, kecuali dalam sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) | 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 |306| `~/.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 |307| `~/.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` di mesin Anda |308| Plugin yang hanya diaktifkan di pengaturan pengguna Anda | Tidak | `enabledPlugins` yang dibatasi pengguna hidup di `~/.claude/settings.json` di mesin Anda |


421 422 

422VM mungkin menghentikan tugas yang memerlukan memori jauh lebih banyak, seperti pekerjaan build besar atau tes yang memakan memori. Untuk beban kerja di luar batas ini, gunakan [Remote Control](/docs/id/remote-control) untuk menjalankan Claude Code di perangkat keras Anda sendiri, atau jalankan sesi cloud di [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) pada komputasi yang dioperasikan organisasi Anda.423VM mungkin menghentikan tugas yang memerlukan memori jauh lebih banyak, seperti pekerjaan build besar atau tes yang memakan memori. Untuk beban kerja di luar batas ini, gunakan [Remote Control](/docs/id/remote-control) untuk menjalankan Claude Code di perangkat keras Anda sendiri, atau jalankan sesi cloud di [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) pada komputasi yang dioperasikan organisasi Anda.

423 424 

425<h3 id="time-limits">

426 Batas waktu

427</h3>

428 

429Di lingkungan yang di-host Anthropic, batas waktu ini berlaku untuk pekerjaan yang berjalan lama di sesi cloud, seperti build, install, atau test run. Setiap entri menautkan ke bagian yang mendefinisikan batas.

430 

431* **Perintah yang dijalankan Claude**: lingkungan cloud tidak menetapkan timeout perintahnya sendiri, jadi default alat Bash berlaku. Claude menunggu 2 menit untuk perintah secara default dan dapat meminta hingga 10 menit. Ketika perintah mencapai [timeout](/docs/id/tools-reference#timeout-and-output-limits)-nya, Claude Code [memindahkannya ke latar belakang](/docs/id/tools-reference#background-commands) alih-alih menghentikannya, kecuali perintah dimulai dengan `sleep`.

432* **Hook SessionStart**: Claude Code membatalkan hook `command` setelah 600 detik kecuali Anda menetapkan [`timeout`](/docs/id/hooks#common-fields), dalam detik, pada entri hook. Claude Code tidak memberlakukan timeout pada hook yang Anda jalankan dengan [`async: true`](/docs/id/hooks#run-hooks-in-the-background).

433* **Skrip setup**: skrip yang memakan waktu lebih lama dari kira-kira lima menit tidak di-cache. [Script requirements](#script-requirements) mencakup cara tetap di bawah itu.

434* **Sesi idle**: sesi berhenti setelah periode inaktivitas dan VM-nya diambil kembali. [Environment expired](/docs/id/claude-code-on-the-web#environment-expired) mencakup apa yang dihitung sebagai tidak aktif dan cara membuka kembali sesi.

435 

436Untuk menaikkan timeout perintah untuk sesi lingkungan, tambahkan [`BASH_DEFAULT_TIMEOUT_MS` dan `BASH_MAX_TIMEOUT_MS`](/docs/id/env-vars#variables) ke [variabel lingkungannya](#set-environment-variables). Keduanya mengambil milidetik. Misalnya, `BASH_DEFAULT_TIMEOUT_MS=600000` membuat 10 menit menjadi default.

437 

424<h2 id="setup-scripts">438<h2 id="setup-scripts">

425 Skrip setup439 Skrip setup

426</h2>440</h2>


445Skrip setup memiliki tiga batasan untuk ditulis:459Skrip setup memiliki tiga batasan untuk ditulis:

446 460 

447* **Exit zero**: jika skrip keluar non-zero, sesi gagal dimulai. Tambahkan `|| true` ke perintah non-kritis sehingga kegagalan instalasi sesekali tidak memblokir sesi.461* **Exit zero**: jika skrip keluar non-zero, sesi gagal dimulai. Tambahkan `|| true` ke perintah non-kritis sehingga kegagalan instalasi sesekali tidak memblokir sesi.

448* **Selesai dalam lima menit**: jaga runtime total skrip di bawah kira-kira lima menit sehingga [cache lingkungan](#environment-caching) dapat dibangun. Jalankan instalasi independen secara paralel dengan `&` dan `wait`, dan pindahkan unduhan tunggal apa pun yang tidak cocok ke [hook SessionStart](#setup-scripts-vs-sessionstart-hooks) yang meluncurkannya di latar belakang.462* **Selesai dalam lima menit**: jaga runtime total skrip di bawah kira-kira lima menit sehingga [cache lingkungan](#environment-caching) dapat dibangun. Ketika setup memakan waktu lebih lama dari itu, lingkungan tidak di-cache. Jalankan instalasi independen secara paralel dengan `&` dan `wait`, dan pindahkan unduhan tunggal apa pun yang tidak cocok ke [hook SessionStart](#setup-scripts-vs-sessionstart-hooks) yang meluncurkannya di latar belakang. Jika sesi baru macet atau gagal selama setup, lihat [New sessions hang or time out during setup](/docs/id/web-quickstart#new-sessions-hang-or-time-out-during-setup).

449* **Akses jaringan untuk instalasi**: instalasi paket perlu menjangkau registri. Tingkat **Trusted** default mencakup [registri paket umum](#default-allowed-domains) termasuk npm, PyPI, RubyGems, dan crates.io; dengan akses jaringan **None**, instalasi gagal.463* **Akses jaringan untuk instalasi**: instalasi paket perlu menjangkau registri. Tingkat **Trusted** default mencakup [registri paket umum](#default-allowed-domains) termasuk npm, PyPI, RubyGems, dan crates.io; dengan akses jaringan **None**, instalasi gagal.

450 464 

451<h3 id="environment-caching">465<h3 id="environment-caching">

452 Caching lingkungan466 Caching lingkungan

453</h3>467</h3>

454 468 

455Skrip setup berjalan pertama kali Anda memulai sesi di lingkungan. Setelah selesai, Anthropic membuat snapshot sistem file dan menggunakan kembali snapshot itu sebagai titik awal untuk sesi nanti. Sesi baru dimulai dengan dependensi, alat, dan gambar Docker Anda sudah di disk, dan melewati langkah skrip setup. Ini menjaga startup cepat bahkan ketika skrip menginstal toolchain besar atau menarik gambar kontainer.469Skrip setup berjalan pertama kali Anda memulai sesi di lingkungan. Ketika setup selesai dalam [kira-kira lima menit](#script-requirements), Anthropic membuat snapshot sistem file dan menggunakan kembali snapshot itu sebagai titik awal untuk sesi nanti. Sesi baru dimulai dengan dependensi, alat, dan gambar Docker Anda sudah di disk, dan melewati langkah skrip setup. Ini menjaga startup cepat bahkan ketika skrip menginstal toolchain besar atau menarik gambar kontainer. Jika setup memakan waktu lebih lama dari kira-kira lima menit, lingkungan tidak di-cache.

456 470 

457Cache adalah snapshot sistem file, jadi menyimpan apa yang ditulis skrip setup ke disk dan kehilangan apa pun yang hanya berjalan. Paket yang Anda instal, gambar Docker yang Anda tarik, dan file yang Anda tulis semuanya terbawa. Database yang dimulai skrip, tumpukan `docker compose up`, atau proses latar belakang lainnya tidak; mulai mereka per sesi dengan meminta Claude atau dengan [hook SessionStart](#setup-scripts-vs-sessionstart-hooks).471Cache adalah snapshot sistem file, jadi menyimpan apa yang ditulis skrip setup ke disk dan kehilangan apa pun yang hanya berjalan. Paket yang Anda instal, gambar Docker yang Anda tarik, dan file yang Anda tulis semuanya terbawa. Database yang dimulai skrip, tumpukan `docker compose up`, atau proses latar belakang lainnya tidak; mulai mereka per sesi dengan meminta Claude atau dengan [hook SessionStart](#setup-scripts-vs-sessionstart-hooks).

458 472 


476 490 

477Jika Anda memiliki hook SessionStart di `~/.claude/settings.json` tingkat pengguna, jangan harapkan mereka di cloud. Pengaturan tingkat pengguna tetap di mesin Anda. Hook mana yang berjalan tergantung di mana sesi berjalan:491Jika Anda memiliki hook SessionStart di `~/.claude/settings.json` tingkat pengguna, jangan harapkan mereka di cloud. Pengaturan tingkat pengguna tetap di mesin Anda. Hook mana yang berjalan tergantung di mana sesi berjalan:

478 492 

479* **Lingkungan yang dihosting Anthropic**: Claude Code menjalankan hook dari repositori dan dari [pengaturan yang dikelola server](/docs/id/server-managed-settings) organisasi Anda.493* **Lingkungan yang dihosting Anthropic**: Claude Code menjalankan hook dari repositori dan dari [pengaturan yang dikelola server](/docs/id/server-managed-settings) organisasi Anda. Sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) tidak menerima pengaturan yang dikelola server, jadi hook dari pengaturan yang dikelola server tidak berjalan di sana.

480* **[Lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments-configuration#permissions-and-tool-approval)**: Claude Code juga menjalankan hook yang ditanam operator dari `~/.claude/` host runner, dan hook dalam file pengaturan yang dikelola gambar runner ketika file itu adalah salah satu dari [sumber yang dikelola Claude Code terapkan](/docs/id/managed-settings#how-claude-code-combines-managed-sources).494* **[Lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments-configuration#permissions-and-tool-approval)**: Claude Code juga menjalankan hook yang ditanam operator dari `~/.claude/` host runner, dan hook dalam file pengaturan yang dikelola gambar runner ketika file itu adalah salah satu dari [sumber yang dikelola Claude Code terapkan](/docs/id/managed-settings#how-claude-code-combines-managed-sources).

481 495 

482<h3 id="install-dependencies-with-a-sessionstart-hook">496<h3 id="install-dependencies-with-a-sessionstart-hook">


802</h2>816</h2>

803 817 

804* [Referensi sesi cloud](/docs/id/claude-code-on-the-web): mulai, kelola, dan bagikan sesi cloud818* [Referensi sesi cloud](/docs/id/claude-code-on-the-web): mulai, kelola, dan bagikan sesi cloud

805* [Quickstart sesi cloud](/docs/id/web-quickstart): hubungkan GitHub dan mulai sesi cloud pertama Anda819* [Panduan cepat sesi cloud](/docs/id/web-quickstart): hubungkan GitHub dan mulai sesi cloud pertama Anda

806* [Claude Tag](https://claude.com/docs/claude-tag/overview): sesi yang dimulai Claude dari Slack berjalan di lingkungan yang sama820* [Claude Tag](https://claude.com/docs/claude-tag/overview): sesi yang dimulai Claude dari Slack berjalan di lingkungan yang sama

807* [Routines](/docs/id/routines): jalankan terjadwal menggunakan lingkungan dan tingkat akses jaringan yang sama821* [Routines](/docs/id/routines): jalankan terjadwal menggunakan lingkungan yang sama dan tingkat akses jaringan yang sama

808* [Remote Control](/docs/id/remote-control): jalankan sesi di jaringan dan file mesin Anda sendiri sebagai gantinya822* [Remote Control](/docs/id/remote-control): jalankan sesi di jaringan dan file mesin Anda sendiri sebagai gantinya

809* [Lingkungan yang di-host sendiri](/docs/id/self-hosted-environments): jalankan sesi cloud di infrastruktur organisasi Anda sendiri823* [Lingkungan yang di-host sendiri](/docs/id/self-hosted-environments): jalankan sesi cloud di infrastruktur organisasi Anda sendiri

810* [Hook SessionStart](/docs/id/hooks#sessionstart): setup yang berkomitmen repo yang berjalan di sesi lokal dan cloud824* [Hook SessionStart](/docs/id/hooks#sessionstart): pengaturan yang berkomitmen pada repo yang berjalan di sesi lokal dan cloud

811* [Pengaturan yang dikelola server](/docs/id/server-managed-settings): kebijakan organisasi yang menjangkau sesi cloud825* [Pengaturan yang dikelola server](/docs/id/server-managed-settings): kebijakan organisasi yang disampaikan dari konsol admin

code-review.md +3 −3

Details

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

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

50 50 

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

52 52 

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

54 Menilai dan membalas temuan54 Menilai dan membalas temuan


298 Pemecahan masalah298 Pemecahan masalah

299</h2>299</h2>

300 300 

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

302 302 

303<h3 id="retrigger-a-failed-or-timed-out-review">303<h3 id="retrigger-a-failed-or-timed-out-review">

304 Picu ulang ulasan yang gagal atau habis waktu304 Picu ulang ulasan yang gagal atau habis waktu

305</h3>305</h3>

306 306 

307Ketika infrastruktur ulasan mengalami kesalahan internal atau melampaui batas waktu, jalankan pemeriksaan selesai dengan judul **Code review encountered an error** atau **Code review timed out**. Kesimpulannya masih netral, jadi tidak ada yang memblokir penggabungan Anda, tetapi tidak ada temuan yang diposting.307Ketika ulasan gagal atau melampaui batas waktu, jalankan pemeriksaan selesai dengan judul seperti **Code review failed** atau **Code review timed out**. Kesimpulannya masih netral, jadi tidak ada yang memblokir penggabungan Anda. Kecuali ringkasan jalankan pemeriksaan mengatakan ulasan baru dari komit telah antri secara otomatis, jalankan ulasan lagi sendiri.

308 308 

309Untuk menjalankan ulasan lagi, komentari `@claude review` pada PR. Ini memulai ulasan segar tanpa berlangganan PR ke push masa depan. Jika PR tidak [dari fork](#review-pull-requests-from-forks), Anda dapat mengklik **Re-run** pada pemeriksaan **Claude Code Review** di tab Checks GitHub. Jalankan ulang juga memulai ulasan segar tanpa berlangganan PR.309Untuk menjalankan ulasan lagi, komentari `@claude review` pada PR. Ini memulai ulasan segar tanpa berlangganan PR ke push masa depan. Jika PR tidak [dari fork](#review-pull-requests-from-forks), Anda dapat mengklik **Re-run** pada pemeriksaan **Claude Code Review** di tab Checks GitHub. Jalankan ulang juga memulai ulasan segar tanpa berlangganan PR.

310 310 

commands.md +4 −3

Details

79| `/dataviz [request]` | **[Skill](/docs/id/skills#bundled-skills).** Panduan desain untuk bagan, grafik, dan dasbor. Claude memilih bentuk bagan untuk data, menetapkan warna berdasarkan peran, memvalidasi palet untuk keamanan buta warna dan kontras dengan skrip bundel, dan menerapkan aturan tanda, interaksi, dan aksesibilitas. Menggunakan palet placeholder netral merek yang Anda ganti dengan milik Anda sendiri. Memerlukan Claude Code v2.1.198 atau lebih baru |79| `/dataviz [request]` | **[Skill](/docs/id/skills#bundled-skills).** Panduan desain untuk bagan, grafik, dan dasbor. Claude memilih bentuk bagan untuk data, menetapkan warna berdasarkan peran, memvalidasi palet untuk keamanan buta warna dan kontras dengan skrip bundel, dan menerapkan aturan tanda, interaksi, dan aksesibilitas. Menggunakan palet placeholder netral merek yang Anda ganti dengan milik Anda sendiri. Memerlukan Claude Code v2.1.198 atau lebih baru |

80| `/debug [description]` | **[Skill](/docs/id/skills#bundled-skills).** Aktifkan pencatatan debug untuk sesi saat ini dan selesaikan masalah dengan membaca log debug sesi. Pencatatan debug dimatikan secara default kecuali Anda memulai dengan `claude --debug`, jadi menjalankan `/debug` di tengah sesi mulai menangkap log dari titik itu maju. Secara opsional jelaskan masalah untuk fokus analisis |80| `/debug [description]` | **[Skill](/docs/id/skills#bundled-skills).** Aktifkan pencatatan debug untuk sesi saat ini dan selesaikan masalah dengan membaca log debug sesi. Pencatatan debug dimatikan secara default kecuali Anda memulai dengan `claude --debug`, jadi menjalankan `/debug` di tengah sesi mulai menangkap log dari titik itu maju. Secara opsional jelaskan masalah untuk fokus analisis |

81| `/deep-research <question>` | **[Workflow](/docs/id/workflows#bundled-workflows).** Kipas pencarian web pada pertanyaan, ambil dan silang-periksa sumber, dan sintetis laporan yang dikutip |81| `/deep-research <question>` | **[Workflow](/docs/id/workflows#bundled-workflows).** Kipas pencarian web pada pertanyaan, ambil dan silang-periksa sumber, dan sintetis laporan yang dikutip |

82| `/design [brief]` | **[Skill](/docs/id/skills#bundled-skills).** Buat draf mockup UI, alur layar, halaman pendaratan, atau poster sebagai artboard di satu kanvas, dipublikasikan sebagai [artifact](/docs/id/artifacts#draft-a-design-canvas) Design, misalnya `/design a settings screen for a mobile banking app`. Anda mengedit artboard di browser desktop, dan edit Anda menyimpan secara otomatis. Anda dapat mengekspor setiap artboard sebagai PNG atau PDF. Memerlukan sesi di mana [artifact tersedia](/docs/id/artifacts#availability) dan Claude Code v2.1.265 atau lebih baru. Tersedia di Anthropic API. Di Amazon Bedrock, Platform Agent Google Cloud, Microsoft Foundry, dan Claude Platform di AWS, artifact tidak tersedia, jadi perintah tidak tersedia di sana |82| `/design [brief]` | **[Skill](/docs/id/skills#bundled-skills).** Buat draf mockup UI, alur layar, halaman pendaratan, atau poster sebagai artboard di satu kanvas, dipublikasikan sebagai [artifact](/docs/id/artifacts#draft-a-design-canvas) Design Claude, misalnya `/design a settings screen for a mobile banking app`. Anda mengedit artboard di browser desktop, dan edit Anda menyimpan secara otomatis. Anda dapat mengekspor setiap artboard sebagai PNG atau PDF. Memerlukan Claude Code v2.1.265 atau lebih baru, sesi di mana [artifact tersedia](/docs/id/artifacts#availability), dan akun di mana [template Design tersedia](/docs/id/artifacts#start-from-a-slides-design-or-docs-template); jika organisasi Anda telah mematikan template itu, `/design` tidak membuat desain. Tersedia di Anthropic API. Di Amazon Bedrock, Platform Agent Google Cloud, Microsoft Foundry, dan Claude Platform di AWS, artifact tidak tersedia, jadi perintah tidak tersedia di sana |

83| `/design-login` | Otorisasi akses sistem desain untuk `/design-sync` dengan akun claude.ai Anda |83| `/design-login` | Otorisasi akses sistem desain untuk `/design-sync` dengan akun claude.ai Anda |

84| `/design-sync [hint]` | **[Skill](/docs/id/skills#bundled-skills).** Konversi sistem desain React repo Anda dan unggah ke [Claude Design](https://claude.ai/design), sehingga desain yang dihasilkannya menggunakan komponen nyata Anda. Secara opsional beri nama sistem desain, misalnya `/design-sync Acme DS`. Sinkronisasi pertama kali memverifikasi setiap komponen dan dapat memakan waktu beberapa jam di repo besar. Tersedia di Anthropic API. Memerlukan claude.ai, yang CLI tidak hubungi di Amazon Bedrock, Platform Agent Google Cloud, Microsoft Foundry, atau Claude Platform di AWS, atau melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway#availability-and-limitations), jadi perintah tidak tersedia di sana |84| `/design-sync [hint]` | **[Skill](/docs/id/skills#bundled-skills).** Konversi sistem desain React repo Anda dan unggah ke [Claude Design](https://claude.ai/design), sehingga desain yang dihasilkannya menggunakan komponen nyata Anda. Secara opsional beri nama sistem desain, misalnya `/design-sync Acme DS`. Sinkronisasi pertama kali memverifikasi setiap komponen dan dapat memakan waktu beberapa jam di repo besar. Tersedia di Anthropic API. Memerlukan claude.ai, yang CLI tidak hubungi di Amazon Bedrock, Platform Agent Google Cloud, Microsoft Foundry, atau Claude Platform di AWS, atau melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway#availability-and-limitations), jadi perintah tidak tersedia di sana |

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 [prompt-audit [path]]` | **[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`. Jalankan `/doctor prompt-audit` untuk memiliki Claude [audit file `CLAUDE.md`, skill, dan konfigurasi lainnya](/docs/id/memory#write-effective-instructions) untuk instruksi yang ketinggalan zaman atau bertentangan alih-alih menjalankan pemeriksaan. Subperintah `prompt-audit` memerlukan Claude Code v2.1.283 atau lebih baru. 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` |88| `/effort [level\|auto\|status\|ultracode [on\|off]]` | Atur [tingkat upaya](/docs/id/model-config#adjust-effort-level): `low` hingga `xhigh`, `max`, atau `auto`; `status` mencetaknya. `ultracode` atau `ultracode on` mengaktifkan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) untuk sesi pada tingkat saat ini, dan `ultracode off` mematikannya; kunci [`ultracode`](/docs/id/settings-reference#ultracode) bertahan. `max` hanya sesi. Argumen `on` dan `off` serta mempertahankan tingkat saat ini memerlukan Claude Code v2.1.284 atau lebih baru. Sebelum v2.1.284, `/effort ultracode` menetapkan sesi ke `xhigh`, dan `/effort ultracode off` gagal dengan `Invalid argument`. 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 |


143| `/simplify [target]` | **[Skill](/docs/id/skills#bundled-skills).** Tinjau kode yang diubah untuk peluang pembersihan dan terapkan perbaikan. Empat [agen](/docs/id/sub-agents) ulasan berjalan secara paralel, mencakup penggunaan kembali pembantu yang ada, penyederhanaan, efisiensi, dan apakah perubahan berada pada tingkat abstraksi yang tepat. Ulasan tidak mencari bug kebenaran. Gunakan `/code-review` untuk menemukan bug. Berikan jalur atau referensi PR untuk meninjau target tertentu |143| `/simplify [target]` | **[Skill](/docs/id/skills#bundled-skills).** Tinjau kode yang diubah untuk peluang pembersihan dan terapkan perbaikan. Empat [agen](/docs/id/sub-agents) ulasan berjalan secara paralel, mencakup penggunaan kembali pembantu yang ada, penyederhanaan, efisiensi, dan apakah perubahan berada pada tingkat abstraksi yang tepat. Ulasan tidak mencari bug kebenaran. Gunakan `/code-review` untuk menemukan bug. Berikan jalur atau referensi PR untuk meninjau target tertentu |

144| `/skill-doctor` | Tampilkan apa yang setiap [skill](/docs/id/skills) Anda biaya dalam konteks dan seberapa sering digunakan, sehingga Anda dapat [menemukan skill untuk dimatikan](/docs/id/skills#find-unused-skills). Memerlukan Claude Code v2.1.252 atau lebih baru dan [pengambilan bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching) |144| `/skill-doctor` | Tampilkan apa yang setiap [skill](/docs/id/skills) Anda biaya dalam konteks dan seberapa sering digunakan, sehingga Anda dapat [menemukan skill untuk dimatikan](/docs/id/skills#find-unused-skills). Memerlukan Claude Code v2.1.252 atau lebih baru dan [pengambilan bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching) |

145| `/skills` | Daftar [skill](/docs/id/skills) yang tersedia. Ketik untuk memfilter daftar berdasarkan nama, deskripsi, atau sumber. Tekan `t` untuk mengurutkan berdasarkan jumlah token, `Space` atau `Enter` untuk [siklus visibilitas skill ke Claude dan menu `/`](/docs/id/skills#override-skill-visibility-from-settings), dan `Esc` untuk menyimpan dan menutup. Anda tidak dapat mengulangi skill plugin, skill yang frontmatter menetapkan `disable-model-invocation: true`, atau skill dengan entri `skillOverrides` dalam pengaturan terkelola atau bendera `--settings` |145| `/skills` | Daftar [skill](/docs/id/skills) yang tersedia. Ketik untuk memfilter daftar berdasarkan nama, deskripsi, atau sumber. Tekan `t` untuk mengurutkan berdasarkan jumlah token, `Space` atau `Enter` untuk [siklus visibilitas skill ke Claude dan menu `/`](/docs/id/skills#override-skill-visibility-from-settings), dan `Esc` untuk menyimpan dan menutup. Anda tidak dapat mengulangi skill plugin, skill yang frontmatter menetapkan `disable-model-invocation: true`, atau skill dengan entri `skillOverrides` dalam pengaturan terkelola atau bendera `--settings` |

146| `/slides [brief]` | **[Skill](/docs/id/skills#bundled-skills).** Buat presentasi baru sebagai [artifact](/docs/id/artifacts#make-a-slide-deck) Claude Slides yang diisi dari ringkasan Anda, misalnya `/slides a quarterly review of the platform team`. Memerlukan Claude Code v2.1.265 atau lebih baru, sesi di mana [artifact tersedia](/docs/id/artifacts#availability), dan akun di mana [template Slides tersedia](/docs/id/artifacts#start-from-a-slides-design-or-docs-template); jika tidak, perintah tidak muncul. Tersedia di Anthropic API. Di Amazon Bedrock, Platform Agent Google Cloud, Microsoft Foundry, dan Claude Platform di AWS, artifact tidak tersedia, jadi perintah tidak tersedia di sana |

146| `/stats` | Alias untuk `/usage`. Membuka di tab Stats |147| `/stats` | Alias untuk `/usage`. Membuka di tab Stats |

147| `/status` | Buka antarmuka Settings di tab Status, menampilkan versi, model, akun, dan konektivitas. Baris `Session kind` membaca `background job · attached` atau `background job · unattended` dalam [sesi latar belakang](/docs/id/agent-view), tergantung pada apakah terminal terlampir, dan `interactive` dalam sesi lainnya. Sebelum v2.1.221, `/status` tidak menampilkan baris ini. Bekerja saat Claude merespons |148| `/status` | Buka antarmuka Settings di tab Status, menampilkan versi, model, akun, dan konektivitas. Baris `Session kind` membaca `background job · attached` atau `background job · unattended` dalam [sesi latar belakang](/docs/id/agent-view), tergantung pada apakah terminal terlampir, dan `interactive` dalam sesi lainnya. Sebelum v2.1.221, `/status` tidak menampilkan baris ini. Bekerja saat Claude merespons |

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

Details

16 Komunikasi peluncuran16 Komunikasi peluncuran

17</h2>17</h2>

18 18 

19Satu pengumuman dalam dua format, ditambah dua varian opsional. Pilih yang paling sesuai dengan peluncuran Anda dan tulis ulang dari sana.19Satu pengumuman dalam dua format, ditambah dua varian opsional. Pilih mana pun yang sesuai dengan peluncuran Anda dan tulis ulang dari sana.

20 20 

21<h3 id="before-you-send">21<h3 id="before-you-send">

22 Sebelum Anda mengirim22 Sebelum Anda mengirim


24 24 

25Kerjakan daftar periksa ini sebelum pengumuman dikirim. Setiap item menutup celah yang sebaliknya berubah menjadi utas dukungan hari peluncuran.25Kerjakan daftar periksa ini sebelum pengumuman dikirim. Setiap item menutup celah yang sebaliknya berubah menjadi utas dukungan hari peluncuran.

26 26 

27| Item | Mengapa penting |27| Item | Mengapa hal ini penting |

28| - | - |28| - | - |

29| Saluran `#claude-code` dibuat dan ditautkan dalam pesan | Memberikan pertanyaan satu tempat untuk mendarat |29| Saluran `#claude-code` dibuat dan ditautkan dalam pesan | Memberikan pertanyaan satu tempat untuk mendarat |

30| Perintah instalasi diuji pada setidaknya satu mesin di lingkungan Anda | Menangkap masalah proxy atau firewall sebelum semua orang mengalaminya sekaligus |30| Perintah instalasi diuji pada setidaknya satu mesin di lingkungan Anda | Menangkap masalah proxy atau firewall sebelum semua orang mengalaminya sekaligus |

31| Tautan keamanan dan penanganan data siap ([Penggunaan data](/docs/id/data-usage) atau setara internal Anda) | "Ke mana kode saya pergi?" akan menjadi balasan pertama |31| Tautan keamanan dan penanganan data siap ([Penggunaan data](/docs/id/data-usage) atau setara internal Anda) | "Ke mana kode saya pergi?" akan menjadi balasan pertama |

32| Satu tugas pertama konkret dipilih, bug nyata atau file di basis kode Anda | Contoh generik tidak mengkonversi; "perbaiki tes yang tidak stabil di `auth_test.go`" melakukannya |32| Satu tugas pertama konkret dipilih, bug nyata atau file dalam basis kode Anda | Contoh generik tidak mengkonversi; "perbaiki tes yang tidak stabil di `auth_test.go`" melakukannya |

33| Pemilik bernama untuk saluran selama 48 jam pertama | Pertanyaan hari peluncuran yang tidak terjawab membunuh momentum |33| Pemilik bernama untuk saluran selama 48 jam pertama | Pertanyaan hari peluncuran yang tidak terjawab membunuh momentum |

34| Sponsor C-suite yang siap mengirim atau menandatangani pengumuman | Peluncuran yang dikirim dengan nama eksekutif secara konsisten melihat adopsi minggu pertama yang lebih tinggi daripada yang dikirim oleh admin atau tim tooling |34| Sponsor C-suite yang siap mengirim atau menandatangani bersama pengumuman | Peluncuran yang dikirim oleh eksekutif secara konsisten melihat adopsi minggu pertama yang lebih tinggi daripada yang dikirim oleh admin |

35 35 

36<h3 id="the-announcement">36<h3 id="the-announcement">

37 Pengumuman37 Pengumuman

38</h3>38</h3>

39 39 

40Gunakan ini sebagai pesan peluncuran organisasi luas standar Anda. Ini mencakup apa itu Claude Code, memberikan jalur instalasi dua menit, memberikan pembaca satu tugas konkret untuk dicoba, dan menjawab "ke mana kode saya pergi?" sebelum siapa pun harus bertanya.40Gunakan ini sebagai pesan peluncuran organisasi standar Anda. Ini mencakup apa itu Claude Code, memberikan jalur instalasi dua menit, memberikan pembaca satu tugas konkret untuk dicoba, dan menjawab "ke mana kode saya pergi?" sebelum ada yang harus bertanya.

41 41 

42<Tabs>42<Tabs>

43 <Tab title="Email">43 <Tab title="Email">


49 Mulai hari ini Anda memiliki akses ke Claude Code, agen pengkodean AI yang berjalan di49 Mulai hari ini Anda memiliki akses ke Claude Code, agen pengkodean AI yang berjalan di

50 terminal Anda, membaca basis kode aktual Anda, dan menyelesaikan tugas nyata dari awal hingga akhir:50 terminal Anda, membaca basis kode aktual Anda, dan menyelesaikan tugas nyata dari awal hingga akhir:

51 debugging, refactor, tes, PR. Ini bukan autocomplete dan bukan jendela chat. Ini mengedit file,51 debugging, refactor, tes, PR. Ini bukan autocomplete dan bukan jendela chat. Ini mengedit file,

52 menjalankan perintah Anda, dan meminta izin sebelum apa pun yang berisiko.52 menjalankan perintah Anda, dan meminta izin sebelum melakukan apa pun yang berisiko.

53 53 

54 Mulai berjalan dalam dua menit:54 Mulai berjalan dalam dua menit:

55 55 

56 curl -fsSL https://claude.ai/install.sh | bash56 curl -fsSL https://claude.ai/install.sh | bash

57 cd <repo-Anda>57 cd <your-repo>

58 claude58 claude

59 59 

60 Kemudian jalankan /init sekali. Claude membaca proyek Anda dan menulis CLAUDE.md dengan60 Kemudian jalankan /init sekali. Claude membaca proyek Anda dan menulis CLAUDE.md dengan


63 Kemudian coba salah satu dari ini di repo yang sudah Anda gunakan:63 Kemudian coba salah satu dari ini di repo yang sudah Anda gunakan:

64 64 

65 - "Tes di [file] tidak stabil. Cari tahu mengapa dan perbaiki"65 - "Tes di [file] tidak stabil. Cari tahu mengapa dan perbaiki"

66 - "Jelaskan kepada saya bagaimana [modul] menangani [X]"66 - "Jelaskan kepada saya bagaimana [module] menangani [X]"

67 - "Lihat diff kerja saya dan beri tahu saya apa yang berisiko sebelum saya push"67 - "Lihat diff kerja saya dan beri tahu saya apa yang berisiko sebelum saya push"

68 68 

69 Ke mana kode Anda pergi: Claude Code berjalan di terminal Anda dan berbicara langsung69 Ke mana kode Anda pergi: Claude Code berjalan di terminal Anda dan berbicara langsung

70 ke API Anthropic, tanpa server pihak ketiga dalam loop. Ini meminta sebelum70 ke API Anthropic, tanpa server pihak ketiga dalam loop. Ini meminta sebelum

71 mengedit file atau menjalankan perintah. Di bawah perjanjian Enterprise kami, Anthropic71 mengedit file atau menjalankan perintah. Pada paket Team atau Enterprise kami, Anthropic

72 tidak menggunakan kode atau prompt Anda untuk melatih modelnya.72 tidak menggunakan kode atau prompt Anda untuk melatih modelnya.

73 Detail: https://code.claude.com/docs/en/data-usage73 Detail: https://code.claude.com/docs/en/data-usage

74 https://code.claude.com/docs/en/security74 https://code.claude.com/docs/en/security

75 75 

76 Di mana harus pergi dengan pertanyaan: #claude-code. [Nama pemilik] mengawasi76 Ke mana harus pergi dengan pertanyaan: #claude-code. [Nama pemilik] mengawasi

77 minggu ini.77 minggu ini.

78 78 

79 - [Nama]79 - [Nama]


90 Agen pengkodean AI, berjalan di terminal Anda, membaca repo Anda, melakukan pekerjaan nyata:90 Agen pengkodean AI, berjalan di terminal Anda, membaca repo Anda, melakukan pekerjaan nyata:

91 bug, refactor, tes, PR. Meminta sebelum menyentuh apa pun.91 bug, refactor, tes, PR. Meminta sebelum menyentuh apa pun.

92 92 

93 `curl -fsSL https://claude.ai/install.sh | bash` → `cd repo-Anda` → `claude`93 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` → `claude`

94 94 

95 *Hal pertama untuk dicoba* → jalankan `/init`, kemudian: "tes di [file] tidak stabil,95 *Hal pertama yang harus dicoba* → jalankan `/init`, kemudian: "tes di [file] tidak stabil,

96 cari tahu mengapa dan perbaiki."96 cari tahu mengapa dan perbaiki."

97 97 

98 🔒 Berjalan di terminal Anda, berbicara hanya ke API Anthropic. Di bawah paket98 🔒 Berjalan di terminal Anda, berbicara hanya ke API Anthropic. Pada paket Team atau

99 Enterprise kami, kode dan prompt Anda tidak digunakan untuk melatih model.99 Enterprise kami, kode dan prompt Anda tidak digunakan untuk melatih model.

100 Penggunaan data → https://code.claude.com/docs/en/data-usage100 Penggunaan data → https://code.claude.com/docs/en/data-usage

101 101 


113 Varian sponsor eksekutif113 Varian sponsor eksekutif

114</h3>114</h3>

115 115 

116Kirim ini dari eksekutif sponsor Anda, seperti CTO, CIO, atau SVP Engineering, dengan nama mereka dan dari akun mereka. Peluncuran yang dikirim dengan nama eksekutif secara konsisten melihat tingkat pembukaan yang lebih tinggi dan aktivasi minggu pertama yang lebih cepat daripada pesan yang sama dari admin atau tim tooling. Ini menandakan prioritas perusahaan daripada eksperimen opsional.116Kirim ini dari eksekutif sponsor Anda, seperti CTO, CIO, atau SVP Engineering, atas nama mereka dan dari akun mereka. Peluncuran yang dikirim atas nama eksekutif secara konsisten melihat tingkat pembukaan yang lebih tinggi dan aktivasi minggu pertama yang lebih cepat daripada pesan yang sama dari admin atau tim tooling. Ini menandakan prioritas perusahaan daripada eksperimen opsional.

117 117 

118Versi ini sengaja dikurangi menjadi satu permintaan: instal dan jalankan pada satu tugas nyata. Pekerjaan eksekutif adalah membuat permintaan mendarat; pengumuman standar dan `#claude-code` menangani caranya.118Versi ini sengaja dikurangi menjadi satu permintaan: instal dan jalankan pada satu tugas nyata. Pekerjaan eksekutif adalah membuat permintaan mendarat; pengumuman standar dan `#claude-code` menangani caranya.

119 119 

120<Tabs>120<Tabs>

121 <Tab title="Email">121 <Tab title="Email">

122 ```text theme={null}122 ```text theme={null}

123 Subject: Satu hal yang ingin saya coba setiap insinyur minggu ini123 Subject: Satu hal yang ingin saya coba oleh setiap engineer minggu ini

124 124 

125 Tim,125 Tim,

126 126 

127 Kami telah mengaktifkan Claude Code untuk semua teknik. Ini adalah agen AI127 Kami telah mengaktifkan Claude Code untuk semua engineering. Ini adalah agen AI

128 yang bekerja langsung di terminal Anda, pada basis kode aktual Anda, dan128 yang bekerja langsung di terminal Anda, pada basis kode aktual Anda, dan hasil awal dari

129 hasil awal dari tim yang sudah menggunakannya cukup kuat sehingga saya ingin129 tim yang sudah menggunakannya cukup kuat sehingga saya ingin semua orang menggunakannya minggu ini.

130 semua orang menggunakannya minggu ini.

131 130 

132 Saya meminta sepuluh menit:131 Saya meminta sepuluh menit:

133 132 

134 curl -fsSL https://claude.ai/install.sh | bash133 curl -fsSL https://claude.ai/install.sh | bash

135 cd <repo-Anda>134 cd <your-repo>

136 claude135 claude

137 136 

138 Kemudian berikan satu tugas nyata: bug yang telah Anda tunda, atau "jelaskan137 Kemudian berikan satu tugas nyata: bug yang telah Anda tunda, atau "jelaskan kepada saya

139 kepada saya bagaimana [modul] bekerja."138 bagaimana [module] bekerja."

140 139 

141 Itu saja permintaannya. [Nama pemilik] dan tim ada di #claude-code untuk140 Itu adalah seluruh permintaan. [Nama pemilik] dan tim ada di #claude-code untuk

142 apa pun yang Anda alami.141 apa pun yang Anda alami di sepanjang jalan.

143 142 

144 - [Nama Eksekutif]143 - [Nama Eksekutif]

145 [Judul]144 [Judul]


150 ```markdown theme={null}149 ```markdown theme={null}

151 📣 *Dari [Nama Eksekutif]: satu hal untuk dicoba minggu ini*150 📣 *Dari [Nama Eksekutif]: satu hal untuk dicoba minggu ini*

152 151 

153 Kami telah mengaktifkan *Claude Code* untuk semua teknik. Hasil awal cukup152 Kami telah mengaktifkan *Claude Code* untuk semua engineering. Hasil awal cukup

154 kuat sehingga saya meminta semua orang untuk memberikan sepuluh menit pada153 kuat sehingga saya meminta semua orang untuk memberikan sepuluh menit pada pekerjaan nyata minggu ini.

155 pekerjaan nyata minggu ini.

156 154 

157 `curl -fsSL https://claude.ai/install.sh | bash` → `cd repo-Anda` →155 `curl -fsSL https://claude.ai/install.sh | bash` → `cd your-repo` →

158 `claude` → berikan satu tugas nyata.156 `claude` → berikan satu tugas nyata.

159 157 

160 Itu saja. Pertanyaan → #claude-code.158 Itu saja. Pertanyaan → #claude-code.


169Gunakan untuk peluncuran bertahap. Kirim hanya ke kohort pilot.167Gunakan untuk peluncuran bertahap. Kirim hanya ke kohort pilot.

170 168 

171```text theme={null}169```text theme={null}

172Subject: Anda dalam pilot Claude Code170Subject: Anda berada di pilot Claude Code

173 171 

174[Nama / tim],172[Nama / tim],

175 173 

176Anda berada dalam gelombang pertama Claude Code di [perusahaan]. Kami memilih grup ini174Anda berada di gelombang pertama Claude Code di [perusahaan]. Kami memilih grup ini

177karena Anda akan menggunakannya pada masalah nyata dan memberi tahu kami kebenaran tentangnya.175karena Anda akan menempatkannya pada masalah nyata dan memberi tahu kami kebenaran tentangnya.

178 176 

179Permintaan: gunakan pada setidaknya satu tugas nyata minggu ini, kemudian tulis catatan di177Permintaan: gunakan pada setidaknya satu tugas nyata minggu ini, kemudian tulis catatan di

180#claude-code-pilot yang mencakup apa yang berhasil, apa yang mengganggu, dan apa yang178#claude-code-pilot yang mencakup apa yang berhasil, apa yang mengganggu, dan apa yang

181mengejutkan Anda. Umpan balik itu menentukan bagaimana kami meluncurkannya ke semua orang.179mengejutkan Anda. Umpan balik itu menentukan cara kami meluncurkannya ke semua orang.

182 180 

183[Lanjutkan dengan "Mulai berjalan dalam dua menit" dari pengumuman standar]181[Lanjutkan dengan "Mulai berjalan dalam dua menit" dari pengumuman standar]

184 182 

185Satu hal ekstra untuk pilot: pada perubahan multi-file pertama Anda, tekan Shift+Tab183Satu hal ekstra untuk pilot: pada perubahan multi-file pertama Anda, tekan Shift+Tab

186sampai Anda melihat "plan". Claude akan meletakkan persis apa yang dimaksudkan untuk dilakukan184sampai Anda melihat "plan". Claude akan meletakkan dengan tepat apa yang dimaksudkan untuk dilakukan

187sebelum menyentuh file. Ini adalah cara tercepat untuk mengkalibrasi berapa banyak yang harus185sebelum menyentuh file. Ini adalah cara tercepat untuk mengkalibrasi berapa banyak yang harus dipercayai.

188dipercayai.

189```186```

190 187 

191<h3 id="champion-recruitment-dm">188<h3 id="champion-recruitment-dm">


228yang berisiko tinggi. Turun ke *Haiku* untuk pertanyaan cepat, pemformatan, dan edit mekanis225yang 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 dan226di 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 konten227paling lama; itu bukan default, jadi pilih dengan `/model fable`, dan perhatikan bahwa konten

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, kecuali228cybersecurity dan biology kembali ke Opus secara otomatis. Opus 5.5, Sonnet 5.5, dan

232konten biology yang ditandai pada Opus 5 ditolak.229Opus 5 menjalankan pemeriksaannya sendiri juga: konten yang ditandai beralih ke model sebelumnya

230dalam keluarga yang sama, kecuali konten biology yang ditandai pada Opus 5 atau Sonnet

2315.5 ditolak.

233 232 

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

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


241| - | - |240| - | - |

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) |241| 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.5 dan Opus 5, konten cybersecurity atau biology memicu [fallback model otomatis atau penolakan](/docs/id/model-config#automatic-model-fallback) |242| 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. |243| Sonnet | Pekerjaan fitur sehari-hari, perbaikan bug, tes, dokumentasi, review kode. Default yang direkomendasikan. Pada Sonnet 5.5, konten cybersecurity atau biology memicu [fallback model otomatis atau penolakan](/docs/id/model-config#automatic-model-fallback) |

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

246 245 

247**Kemenangan cepat untuk dicoba terlebih dahulu**246**Kemenangan cepat untuk dicoba terlebih dahulu**


486Izin-pertama dengan desain. Setiap edit file, perintah shell, dan panggilan eksternal485Izin-pertama dengan desain. Setiap edit file, perintah shell, dan panggilan eksternal

487dijaga oleh persetujuan Anda. CLI berjalan di terminal Anda dan berbicara langsung486dijaga oleh persetujuan Anda. CLI berjalan di terminal Anda dan berbicara langsung

488ke API Anthropic, tanpa server pihak ketiga, dan mendukung sandboxing tingkat OS opsional487ke API Anthropic, tanpa server pihak ketiga, dan mendukung sandboxing tingkat OS opsional

489untuk perintah shell. Di bawah paket Enterprise kami, Anthropic tidak menggunakan kode488untuk perintah shell. Di bawah paket Team atau Enterprise, Anthropic tidak menggunakan kode

490atau prompt Anda untuk melatih modelnya.489atau prompt Anda untuk melatih modelnya.

491 490 

492*Coba sekarang:* simpan dua tautan ini untuk lain kali pertanyaan muncul.491*Coba sekarang:* simpan dua tautan ini untuk lain kali pertanyaan muncul.


530| - | - |529| - | - |

531| "Apakah itu bekerja di VS Code?" | Ya. Ada ekstensi VS Code dan plugin JetBrains dengan fitur yang sama, tertanam di editor Anda. [VS Code →](/docs/id/vs-code) |530| "Apakah itu bekerja di VS Code?" | Ya. Ada ekstensi VS Code dan plugin JetBrains dengan fitur yang sama, tertanam di editor Anda. [VS Code →](/docs/id/vs-code) |

532| "Apakah saya harus mengonfigurasi apa pun terlebih dahulu?" | Tidak. Instal, kemudian jalankan `claude` di repo apa pun. Jalankan `/init` sekali dan Anda siap. [Quickstart →](/docs/id/quickstart) |531| "Apakah saya harus mengonfigurasi apa pun terlebih dahulu?" | Tidak. Instal, kemudian jalankan `claude` di repo apa pun. Jalankan `/init` sekali dan Anda siap. [Quickstart →](/docs/id/quickstart) |

533| "Di mana kode saya pergi?" | CLI berjalan di terminal Anda dan mengirim konteks ke API Anthropic untuk inferensi, tanpa server pihak ketiga. Di bawah paket Enterprise Anda, kode dan prompt Anda tidak digunakan untuk melatih model. [Penggunaan data →](/docs/id/data-usage) |532| "Di mana kode saya pergi?" | CLI berjalan di terminal Anda dan mengirim konteks ke API Anthropic untuk inferensi, tanpa server pihak ketiga. Di bawah paket Team atau Enterprise, kode dan prompt Anda tidak digunakan untuk melatih model. [Penggunaan data →](/docs/id/data-usage) |

534| "Bisakah itu melihat seluruh repo saya?" | Itu membaca apa yang Anda berikan akses. Pembacaan file di dalam direktori kerja Anda tidak meminta; prompt izin menjaga edit, perintah shell non-read-only, dan pembacaan file-tool di luar direktori itu. Serangkaian perintah shell read-only bawaan seperti `ls` dan `cat` berjalan tanpa meminta; batasi dengan [aturan sandbox `denyRead`](/docs/id/sandboxing#filesystem-isolation). [Izin →](/docs/id/permissions) |533| "Bisakah itu melihat seluruh repo saya?" | Itu membaca apa yang Anda berikan akses. Pembacaan file di dalam direktori kerja Anda tidak meminta; prompt izin menjaga edit, perintah shell non-read-only, dan pembacaan file-tool di luar direktori itu. Serangkaian perintah shell read-only bawaan seperti `ls` dan `cat` berjalan tanpa meminta; batasi dengan [aturan sandbox `denyRead`](/docs/id/sandboxing#filesystem-isolation). [Izin →](/docs/id/permissions) |

535| "Bagaimana ini berbeda dari Copilot?" | Copilot melengkapi baris. Claude Code adalah agen yang membaca file, menjalankan perintah, dan membuat edit multi-file. [Ikhtisar →](/docs/id/overview) |534| "Bagaimana ini berbeda dari Copilot?" | Copilot melengkapi baris. Claude Code adalah agen yang membaca file, menjalankan perintah, dan membuat edit multi-file. [Ikhtisar →](/docs/id/overview) |

536| "Apa yang harus saya coba terlebih dahulu?" | Bug yang telah Anda tunda karena membosankan. "Tes di \[file] tidak stabil, cari tahu mengapa." [Quickstart →](/docs/id/quickstart) |535| "Apa yang harus saya coba terlebih dahulu?" | Bug yang telah Anda tunda karena membosankan. "Tes di \[file] tidak stabil, cari tahu mengapa." [Quickstart →](/docs/id/quickstart) |

Details

1632* **Bersihkan antar tugas**: jalankan `/clear` saat beralih ke pekerjaan yang tidak terkait. Percakapan lama mengalahkan file yang Anda butuhkan selanjutnya dan menghabiskan token pada setiap pesan.1632* **Bersihkan antar tugas**: jalankan `/clear` saat beralih ke pekerjaan yang tidak terkait. Percakapan lama mengalahkan file yang Anda butuhkan selanjutnya dan menghabiskan token pada setiap pesan.

1633* **Delegasikan pembacaan besar**: kirim penelitian ke [subagent](/docs/id/sub-agents) sehingga konten file tetap berada di jendela konteksnya, bukan milik Anda.1633* **Delegasikan pembacaan besar**: kirim penelitian ke [subagent](/docs/id/sub-agents) sehingga konten file tetap berada di jendela konteksnya, bukan milik Anda.

1634 1634 

1635Jika Anda membutuhkan jendela yang lebih besar daripada percakapan yang lebih kecil, model Fable, Sonnet 5, Opus 4.6 dan yang lebih baru, dan Sonnet 4.6 mendukung jendela konteks 1 juta token. Lihat [Extended context](/docs/id/model-config#extended-context) untuk ketersediaan menurut paket dan cara memilih varian model `[1m]`. Pemadatan bekerja dengan cara yang sama pada batas yang lebih besar.1635Jika Anda membutuhkan jendela yang lebih besar daripada percakapan yang lebih kecil, model Fable, Sonnet 5 dan yang lebih baru, Opus 4.6 dan yang lebih baru, dan Sonnet 4.6 mendukung jendela konteks 1 juta token. Lihat [Extended context](/docs/id/model-config#extended-context) untuk ketersediaan menurut paket dan cara memilih varian model `[1m]`. Pemadatan bekerja dengan cara yang sama pada batas yang lebih besar.

1636 1636 

1637Sonnet 5 berjalan dengan jendela konteks 1M dan tidak memiliki varian `[1m]` untuk dipilih. Lihat [Sonnet 5 context window](/docs/id/model-config#sonnet-5-context-window) untuk ambang batas auto-compaction-nya dan pengecualian gateway LLM.1637Sonnet 5.5 dan Sonnet 5 berjalan dengan jendela konteks 1M dan tidak memiliki varian `[1m]` untuk dipilih. Lihat [Sonnet 5.5 and Sonnet 5 context window](/docs/id/model-config#sonnet-5-5-and-sonnet-5-context-window) untuk ambang batas auto-compaction-nya dan pengecualian gateway LLM.

1638 1638 

1639Titik di mana pemadatan otomatis berjalan tergantung pada model dan konfigurasi Anda. Lihat [Default auto-compact thresholds](/docs/id/model-config#default-auto-compact-thresholds) untuk batas per model, dan [Correct the window for a gateway or custom model ID](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) jika Claude Code mengasumsikan jendela yang salah untuk ID model Anda, seperti alias [LLM gateway](/docs/id/llm-gateway).1639Titik di mana pemadatan otomatis berjalan tergantung pada model dan konfigurasi Anda. Lihat [Default auto-compact thresholds](/docs/id/model-config#default-auto-compact-thresholds) untuk batas per model, dan [Correct the window for a gateway or custom model ID](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) jika Claude Code mengasumsikan jendela yang salah untuk ID model Anda, seperti alias [LLM gateway](/docs/id/llm-gateway).

1640 1640 

costs.md +4 −1

Details

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 Opus 5.5 atau 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, Sonnet 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 


369 369 

370Menjalankan tes, mengambil dokumentasi, atau memproses file log dapat mengonsumsi konteks yang signifikan. Delegasikan ini ke [subagents](/docs/id/sub-agents#isolate-high-volume-operations) sehingga output verbose tetap dalam konteks subagent sementara hanya ringkasan yang kembali ke percakapan utama Anda.370Menjalankan tes, mengambil dokumentasi, atau memproses file log dapat mengonsumsi konteks yang signifikan. Delegasikan ini ke [subagents](/docs/id/sub-agents#isolate-high-volume-operations) sehingga output verbose tetap dalam konteks subagent sementara hanya ringkasan yang kembali ke percakapan utama Anda.

371 371 

372Permintaan subagent sendiri masih menarik penggunaan Anda. Untuk menghabiskan lebih sedikit pada mereka, [pilih model yang lebih kecil untuk subagent](/docs/id/sub-agents#choose-a-model) atau [jalankan setiap subagent pada satu model](/docs/id/sub-agents#run-every-subagent-on-one-model).

373 

372<h3 id="manage-agent-team-costs">374<h3 id="manage-agent-team-costs">

373 Kelola biaya tim agen375 Kelola biaya tim agen

374</h3>376</h3>


416* **Tugas terjadwal**: [tugas terjadwal](/docs/id/scheduled-tasks) dijalankan pada intervalnya bahkan saat sesi idle, mengirimkan konteks lengkap Anda setiap kali418* **Tugas terjadwal**: [tugas terjadwal](/docs/id/scheduled-tasks) dijalankan pada intervalnya bahkan saat sesi idle, mengirimkan konteks lengkap Anda setiap kali

417* **Pesan lintas sesi**: Claude Code mengirimkan [pesan dari salah satu sesi Anda yang lain](/docs/id/cross-session-messaging) sebagai giliran baru ketika sesi ini idle, mengirimkan konteks lengkap Anda setiap kali. Untuk menahan pesan masuk alih-alih mengirimkannya, atur [`crossSessionInbound`](/docs/id/settings-reference#crosssessioninbound) ke `hold`419* **Pesan lintas sesi**: Claude Code mengirimkan [pesan dari salah satu sesi Anda yang lain](/docs/id/cross-session-messaging) sebagai giliran baru ketika sesi ini idle, mengirimkan konteks lengkap Anda setiap kali. Untuk menahan pesan masuk alih-alih mengirimkannya, atur [`crossSessionInbound`](/docs/id/settings-reference#crosssessioninbound) ke `hold`

418* **Pemeriksaan tujuan**: sementara pekerjaan latar belakang membuat [tujuan](/docs/id/goal) aktif menunggu, Claude Code [meminta Claude untuk memeriksa pekerjaan tersebut](/docs/id/goal#background-work-defers-evaluation) bahkan ketika sesi idle, memulai giliran baru yang mengirimkan konteks lengkap Anda. Claude Code memulai paling banyak tiga pemeriksaan idle per tujuan di antara prompt Anda. Sebelum v2.1.246, pemeriksaan idle tidak terbatas. Untuk mematikan pemeriksaan, atur [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/id/env-vars) ke `0`. Pemeriksaan idle memerlukan Claude Code v2.1.236 atau lebih baru420* **Pemeriksaan tujuan**: sementara pekerjaan latar belakang membuat [tujuan](/docs/id/goal) aktif menunggu, Claude Code [meminta Claude untuk memeriksa pekerjaan tersebut](/docs/id/goal#background-work-defers-evaluation) bahkan ketika sesi idle, memulai giliran baru yang mengirimkan konteks lengkap Anda. Claude Code memulai paling banyak tiga pemeriksaan idle per tujuan di antara prompt Anda. Sebelum v2.1.246, pemeriksaan idle tidak terbatas. Untuk mematikan pemeriksaan, atur [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/id/env-vars) ke `0`. Pemeriksaan idle memerlukan Claude Code v2.1.236 atau lebih baru

421* **Subagen dan alur kerja**: setiap subagen, dan setiap agen yang [alur kerja dinamis](/docs/id/workflows#cost) hasilkan, mengirimkan permintaannya sendiri di atas percakapan utama. [Rincian atribusi](#plan-usage-breakdown) menunjukkan bagian subagen

419* **Rekan tim agen**: setiap [rekan tim](#agent-team-token-costs) aktif terus mengonsumsi token sampai keluar422* **Rekan tim agen**: setiap [rekan tim](#agent-team-token-costs) aktif terus mengonsumsi token sampai keluar

420* **Pemadatan**: `/compact` membaca percakapan yang diringkasnya, jadi [memadatkan konteks besar](/docs/id/prompt-caching#compacting-the-conversation) adalah permintaan besar itu sendiri. Ketika Anda menginginkan awal yang segar alih-alih kontinuitas, `/clear` tidak memerlukan biaya apa pun423* **Pemadatan**: `/compact` membaca percakapan yang diringkasnya, jadi [memadatkan konteks besar](/docs/id/prompt-caching#compacting-the-conversation) adalah permintaan besar itu sendiri. Ketika Anda menginginkan awal yang segar alih-alih kontinuitas, `/clear` tidak memerlukan biaya apa pun

421 424 

Details

14 14 

15Pesan adalah sepotong teks yang ditulis satu Claude ke Claude lainnya, tidak pernah riwayat percakapan atau file pengirim. Untuk memindahkan seluruh percakapan atau konteksnya, [lanjutkan sesi](/docs/id/sessions#resume-a-session) sebagai gantinya.15Pesan adalah sepotong teks yang ditulis satu Claude ke Claude lainnya, tidak pernah riwayat percakapan atau file pengirim. Untuk memindahkan seluruh percakapan atau konteksnya, [lanjutkan sesi](/docs/id/sessions#resume-a-session) sebagai gantinya.

16 16 

17Claude menggunakan dua alat untuk ini: `ListAgents` untuk menemukan agen mana yang dapat dijangkaunya, dan `SendMessage` untuk mengirimkan pesan ke salah satunya berdasarkan nama. Dengan alat `SendMessage` yang sama, Claude juga dapat mengirim pesan ke [subagen](/docs/id/sub-agents#resume-subagents) dan rekan tim [tim agen](/docs/id/agent-teams) dalam satu sesi atau tim. Halaman ini mencakup pesan antara sesi independen Anda.

18 

19<h2 id="when-to-use-cross-session-messaging">17<h2 id="when-to-use-cross-session-messaging">

20 Kapan menggunakan cross-session messaging18 Kapan menggunakan cross-session messaging

21</h2>19</h2>


27* **Dapatkan status dari pekerjaan yang berjalan lama**: buat migrasi atau pengujian melaporkan kembali ke sesi yang Anda tonton, atau minta sendiri dari sana. Jika sesi itu ada di mesin ini, Claude juga dapat [memintanya untuk satu pemberitahuan ketika sesi berikutnya idle atau keluar](#get-a-notice-when-another-session-goes-idle).25* **Dapatkan status dari pekerjaan yang berjalan lama**: buat migrasi atau pengujian melaporkan kembali ke sesi yang Anda tonton, atau minta sendiri dari sana. Jika sesi itu ada di mesin ini, Claude juga dapat [memintanya untuk satu pemberitahuan ketika sesi berikutnya idle atau keluar](#get-a-notice-when-another-session-goes-idle).

28* **Kirim pesan lintas mesin**: jangkau salah satu sesi Anda di mesin lain atau di web.26* **Kirim pesan lintas mesin**: jangkau salah satu sesi Anda di mesin lain atau di web.

29 27 

30Gunakan messaging antara sesi independen yang Anda mulai dan arahkan sendiri. Claude Code memiliki fitur khusus untuk setiap cara lain menjalankan atau menjangkau beberapa sesi, jadi gunakan yang dibangun untuk apa yang Anda lakukan:

31 

32* Untuk melanjutkan satu percakapan di terminal lain, atau berbagi konteksnya dengan sesi baru, [lanjutkan sesi](/docs/id/sessions#resume-a-session)

33* Untuk tim sesi terkoordinasi yang Claude spawn dan supervisi, gunakan [agent teams](/docs/id/agent-teams)

34* Untuk menonton dan mengarahkan banyak sesi dari satu tempat, gunakan [agent view](/docs/id/agent-view)

35* Untuk mengarahkan sesi sendiri dari ponsel atau perangkat lain, daripada membuat sesi saling mengirim pesan, gunakan [Remote Control](/docs/id/remote-control)

36* Untuk mendorong peristiwa eksternal, seperti hasil CI atau pesan chat, ke dalam sesi, gunakan [channels](/docs/id/channels)

37 

38<h2 id="message-another-session">28<h2 id="message-another-session">

39 Kirim pesan ke sesi lain29 Mengirim pesan ke sesi lain

40</h2>30</h2>

41 31 

42Ketika salah satu sesi Anda mempelajari sesuatu yang dibutuhkan sesi lain, seperti temuan, status, atau keputusan, Claude meneruskannya alih-alih Anda menyalin-menempel antar terminal. Claude menemukan target dengan `ListAgents` dan mengirim dengan `SendMessage`, jadi Anda tidak pernah memanggil tool apa pun sendiri. Claude dapat memutuskan untuk mengirimkan pesan tanpa diminta, dan Anda juga dapat meminta satu.32Ketika salah satu sesi Anda mempelajari sesuatu yang sesi lain butuhkan, seperti temuan, status, atau keputusan, Claude meneruskannya alih-alih Anda menyalin-menempel antar terminal. Claude menemukan target dengan `ListAgents` dan mengirim dengan `SendMessage`, jadi Anda tidak pernah memanggil salah satu alat tersebut sendiri. Claude dapat memutuskan untuk mengirim pesan tanpa diminta, dan Anda juga dapat meminta satu.

43 33 

44Untuk meminta satu sendiri, beri tahu Claude apa yang ingin Anda ketahui atau lakukan sesi lain. Contoh ini adalah prompt yang Anda ketik, bukan pesan yang Claude kirim:34Untuk meminta satu sendiri, beri tahu Claude apa yang ingin Anda ketahui atau lakukan oleh sesi lain. Contoh ini adalah prompt yang Anda ketik, bukan pesan yang Claude kirim:

45 35 

46```text wrap theme={null}36```text wrap theme={null}

47Tanyakan ke sesi yang berjalan di terminal lain saya apakah migrasi selesai37Tanyakan ke sesi yang berjalan di terminal lain saya apakah migrasi selesai

48```38```

49 39 

50Claude menulis pesan aktual sendiri, jadi prompt Anda dapat meninggalkan konten kepada Claude. Prompt ini meminta ringkasan tanpa mendikte kata-katanya, dan apa yang Claude kirim bervariasi:40Claude menulis pesan aktual itu sendiri, jadi prompt Anda dapat membiarkan konten kepada Claude. Prompt ini meminta ringkasan tanpa mendikte kata-katanya, dan apa yang Claude kirim bervariasi:

51 41 

52```text wrap theme={null}42```text wrap theme={null}

53Jelaskan apa yang baru saja kami lakukan ke sesi yang bekerja pada API pembayaran43Jelaskan apa yang baru saja kita lakukan ke sesi yang mengerjakan API pembayaran

54```44```

55 45 

56Untuk menamai target sendiri, sebutkan sesi dalam prompt Anda: ketik `@` diikuti oleh huruf pertama nama sesi dan pilih sesi dari typeahead, dengan cara yang sama Anda [@-mention subagent](/docs/id/sub-agents#invoke-subagents-explicitly). Memerlukan Claude Code v2.1.232 atau lebih baru. Claude Code menyisipkan penyebutan, seperti `@api-worker`, dan memberi tahu Claude sesi mana yang dinamainya, jadi Claude dapat mengirim pesan ke sesi itu tanpa membuat daftar sesi Anda terlebih dahulu. Prompt ini menamai target dengan penyebutan:46Untuk menamai target sendiri, sebutkan sesi dalam prompt Anda: ketik `@` diikuti oleh huruf pertama nama sesi dan pilih sesi dari typeahead, dengan cara yang sama Anda [@-mention subagent](/docs/id/sub-agents#invoke-subagents-explicitly). Memerlukan Claude Code v2.1.232 atau lebih baru. Claude Code menyisipkan penyebutan, seperti `@api-worker`, dan memberi tahu Claude sesi mana yang dinamai, sehingga Claude dapat mengirim pesan ke sesi itu tanpa membuat daftar sesi Anda terlebih dahulu. Prompt ini menamai target dengan penyebutan:

57 47 

58```text wrap theme={null}48```text wrap theme={null}

59Biarkan @api-worker tahu migrasi skema selesai49Beri tahu @api-worker bahwa migrasi skema selesai

60```50```

61 51 

62Typeahead mencantumkan sesi live lain Anda di mesin ini. Dua kasus memerlukan lebih dari huruf pertama nama:52Typeahead mencantumkan sesi hidup lainnya Anda di mesin ini. Dua kasus memerlukan lebih dari huruf pertama nama:

63 53 

64* **Sesi di luar mesin ini**: sesi cloud atau Remote Control muncul di typeahead hanya setelah Claude telah membuat daftar atau mengirim pesan ke sesi Anda di luar mesin ini, jadi minta Claude untuk membuat daftar mereka terlebih dahulu.54* **Sesi di luar mesin ini**: sesi cloud atau Remote Control muncul di typeahead hanya setelah Claude telah membuat daftar atau mengirim pesan ke sesi Anda di luar mesin ini, jadi minta Claude untuk membuat daftar mereka terlebih dahulu.

65* **Nama dengan spasi atau karakter lain di luar huruf, digit, tanda hubung, dan garis bawah**: ketiknya dalam tanda kutip ganda, seperti `@"release notes"`. Ketika Anda memilih sesi dari typeahead, Claude Code menyisipkan tanda kutip untuk Anda.55* **Nama dengan spasi atau karakter lain di luar huruf, digit, tanda hubung, dan garis bawah**: ketikkan dalam tanda kutip ganda, seperti `@"release notes"`. Ketika Anda memilih sesi dari typeahead, Claude Code menyisipkan tanda kutip untuk Anda.

66 56 

67Anda juga dapat mengetik penyebutan tanpa pemilih. Ketika lebih dari satu sesi live menjawab nama yang disebutkan, Claude meminta Anda sesi mana yang Anda maksud sebelum mengirim.57Anda juga dapat mengetik penyebutan tanpa pemilih. Ketika lebih dari satu sesi hidup menjawab nama yang disebutkan, Claude meminta Anda sesi mana yang Anda maksud sebelum mengirim.

68 58 

69Untuk apa pesan yang Claude tulis terlihat seperti ketika tiba, termasuk contoh satu, lihat [apa pesan terlihat seperti](#what-a-message-looks-like).59Untuk apa pesan yang Claude tulis terlihat seperti ketika tiba, termasuk contoh satu, lihat [apa pesan terlihat seperti](#what-a-message-looks-like).

70 60 


72 Pengiriman pesan62 Pengiriman pesan

73</h3>63</h3>

74 64 

75Claude penerima membaca pesan antara pemanggilan tools selama giliran aktif, jadi tools yang berjalan tidak pernah terputus. Ketika sesi penerima idle, Claude Code memulai giliran baru dengan pesan.65Claude penerima membaca pesan di antara panggilan alat selama giliran aktif, jadi alat yang berjalan tidak pernah terganggu. Ketika sesi penerima menganggur, Claude Code memulai giliran baru dengan pesan.

76 66 

77Pesan dari sesi lain tiba sebagai teks biasa. Jika menyebutkan file atau [MCP resource](/docs/id/mcp#use-mcp-resources) dengan `@`, Claude melihat penyebutan seperti yang ditulis dan Claude Code tidak melampirkan apa pun, apakah pesan memulai giliran baru atau tiba selama satu. Claude masih dapat membuka jalur yang disebutkan di mesin penerima dengan tools-nya sendiri, tunduk pada izin sesi itu. Sebelum v2.1.251, penyebutan `@` dalam pesan yang memulai giliran baru melampirkan file atau MCP resource di sisi penerima.67Pesan dari sesi lain tiba sebagai teks biasa. Jika menyebutkan file atau [sumber daya MCP](/docs/id/mcp#use-mcp-resources) dengan `@`, Claude melihat penyebutan seperti yang ditulis dan Claude Code tidak melampirkan apa pun, apakah pesan memulai giliran baru atau tiba selama satu. Claude masih dapat membuka jalur yang disebutkan di mesin penerima dengan alatnya sendiri, tunduk pada izin sesi itu.

78 68 

79Claude Code menolak pesan dalam kasus berikut:69Claude Code menolak pesan dalam kasus berikut:

80 70 

81* Pesan [melebihi batas ukuran](#limitations). Claude Code menolaknya di sesi pengirim, sebelum meninggalkan.71* Pesan [melebihi batas ukuran](#limitations). Claude Code menolaknya dalam sesi pengiriman, sebelum meninggalkan.

82* Ledakan cepat ke sesi di mesin ini telah mencapai [apa yang diterima inbox sesi itu](#limitations). Claude Code menolak pesan lebih lanjut ke sesi itu.72* Ledakan cepat ke sesi di mesin ini telah mencapai [apa yang diterima kotak masuk sesi itu](#limitations). Claude Code menolak pesan lebih lanjut ke sesi itu.

83* Target balasan di mesin ini gagal pemeriksaan keamanan, seperti target yang disimbolkan atau endpoint yang bukan proses yang diharapkan. [Menolak mengirim pesan cross-session](/docs/id/errors#refusing-to-send-a-cross-session-message) mencantumkan pemeriksaan ini.73* Target balasan di mesin ini gagal pemeriksaan keamanan, seperti target yang ditautkan secara simbolis. [Menolak untuk mengirim pesan lintas-sesi](/docs/id/errors#refusing-to-send-a-cross-session-message) mencantumkan pemeriksaan ini.

84* Claude mengatasi pesan ke nama sesi ini sendiri, seperti dijelaskan di bawah [Lihat sesi mana yang dapat dijangkau Claude](#see-which-sessions-claude-can-reach).

85 74 

86Sesi penerima memeriksa setiap pesan yang tiba terhadap [kontrol inbound](#control-inbound-messages) miliknya sendiri, dan pemeriksaan berakhir dalam salah satu dari tiga hasil:75Sesi penerima memeriksa setiap pesan yang tiba terhadap [kontrol inboundnya sendiri](#control-inbound-messages), dan pemeriksaan berakhir dalam salah satu dari tiga hasil:

87 76 

88* **Delivered**: Claude Code meneruskan pesan ke Claude penerima.77* **Dikirim**: Claude Code meneruskan pesan ke Claude penerima.

89* **Held**: Claude Code menyisihkan pesan tanpa dikirim. Pesan yang ditahan mencapai Claude hanya ketika Anda menyetujuinya atau perubahan mode atau pengaturan yang lebih baru memungkinkannya.78* **Ditahan**: Claude Code menyisihkan pesan tanpa dikirim. Pesan yang ditahan mencapai Claude hanya ketika Anda menyetujuinya atau perubahan mode atau pengaturan yang lebih baru memungkinkannya.

90* **Refused**: Claude Code menjatuhkan pesan tanpa mengirimkannya.79* **Ditolak**: Claude Code menghapus pesan tanpa mengirimkannya.

91 80 

92Setelah dikirim, pesan dihitung terhadap [usage](/docs/id/costs) seperti prompt yang Anda ketik, dan Claude penerima dapat membalas ke pengirim dengan cara yang sama, kecuali dalam [kasus cross-machine satu arah](#message-sessions-on-other-machines).81Setelah dikirim, pesan dihitung terhadap [penggunaan](/docs/id/costs) seperti prompt yang Anda ketik, dan Claude penerima dapat membalas ke pengirim dengan cara yang sama, kecuali dalam [kasus lintas-mesin satu arah](#message-sessions-on-other-machines).

93 82 

94Batas izin tetap per-sesi. Claude diinstruksikan untuk tidak pernah meminta sesi lain untuk tindakan yang ditolak atau diblokir di sesi miliknya sendiri, atau yang akan diblokir pengaturan izin miliknya sendiri, dan untuk mengarahkan pekerjaan itu kembali ke Anda. Di sisi penerima, [prompt izin sesi penerima sendiri dan aturan masih berlaku](#how-a-session-treats-an-incoming-message) untuk apa pun yang diminta pesan.83Batas izin tetap per-sesi. Claude diinstruksikan untuk tidak pernah meminta sesi lain untuk tindakan yang ditolak atau diblokir di sesi miliknya sendiri, atau yang pengaturan izin miliknya sendiri akan blokir, dan untuk mengarahkan pekerjaan itu kembali ke Anda. Di sisi penerima, [prompt izin sesi penerima sendiri dan aturan masih berlaku](#how-a-session-treats-an-incoming-message) untuk apa pun yang diminta pesan.

95 84 

96<h3 id="get-a-notice-when-another-session-goes-idle">85<h3 id="get-a-notice-when-another-session-goes-idle">

97 Dapatkan pemberitahuan ketika sesi lain idle86 Dapatkan pemberitahuan ketika sesi lain menganggur

98</h3>87</h3>

99 88 

100Claude dapat meminta salah satu sesi Anda di mesin ini untuk mengirimkan kembali satu pemberitahuan ketika sesi itu berikutnya idle atau keluar. Idle di sini berarti sesi menyelesaikan giliran tanpa apa pun dalam antrian. Gunakan ketika Anda menunggu tugas panjang di sesi lain dan ingin mendengar ketika selesai alih-alih memeriksa. Memerlukan Claude Code v2.1.236 atau lebih baru di kedua sesi.89Claude dapat meminta salah satu sesi Anda di mesin ini untuk mengirim kembali satu pemberitahuan ketika sesi itu berikutnya menganggur atau keluar. Menganggur di sini berarti sesi menyelesaikan giliran tanpa apa pun dalam antrian. Gunakan ketika Anda menunggu tugas panjang di sesi lain dan ingin mendengar kapan selesai alih-alih memeriksa. Memerlukan Claude Code v2.1.236 atau lebih baru di kedua sesi.

101 90 

102<h4 id="ask-for-a-notice">91<h4 id="ask-for-a-notice">

103 Minta pemberitahuan92 Minta pemberitahuan


106Beri tahu Claude apa yang Anda tunggu. Prompt ini meminta pemberitahuan dari sesi migrasi:95Beri tahu Claude apa yang Anda tunggu. Prompt ini meminta pemberitahuan dari sesi migrasi:

107 96 

108```text wrap theme={null}97```text wrap theme={null}

109Beri tahu saya ketika sesi migrasi selesai dengan apa yang sedang dikerjakan98Beri tahu saya ketika sesi migrasi menyelesaikan apa yang sedang dikerjakan

110```99```

111 100 

112Claude berlangganan dengan input `notify_when_idle` tools `SendMessage`, baik dilampirkan ke pesan yang sedang dikirimnya atau sendiri. Sendiri, Claude Code berlangganan tanpa memulai giliran atau menghabiskan token di sesi yang ditonton, dan mengirimkan pemberitahuan segera jika sesi itu sudah idle. Dilampirkan ke pesan, Claude Code mengirimkan pesan terlebih dahulu dan mengirimkan pemberitahuan nanti.101Claude berlangganan dengan input `notify_when_idle` alat `SendMessage`, baik dilampirkan ke pesan yang sedang dikirimnya atau sendiri. Sendiri, Claude Code berlangganan tanpa memulai giliran atau menghabiskan token di sesi yang ditonton, dan mengirim pemberitahuan segera jika sesi itu sudah menganggur. Dilampirkan ke pesan, Claude Code mengirim pesan terlebih dahulu dan mengirim pemberitahuan nanti.

113 102 

114<h4 id="what-each-session-shows">103<h4 id="what-each-session-shows">

115 Apa yang ditunjukkan setiap sesi104 Apa yang ditampilkan setiap sesi

116</h4>105</h4>

117 106 

118Sesi yang ditonton menunjukkan baris yang mengatakan proses lain meminta untuk diberitahu ketika sesi berikutnya idle. Sesi yang bertanya menunjukkan pemberitahuan sebagai baris yang menamai sesi yang ditonton. Baris dapat mencakup waktu giliran sesi itu selesai dan status satu baris dari giliran itu. Jika sesi yang bertanya idle, Claude Code memulai giliran baru dengan pemberitahuan.107Sesi yang ditonton menampilkan baris yang mengatakan proses lain meminta untuk diberitahu ketika sesi berikutnya menganggur. Sesi yang bertanya menampilkan pemberitahuan sebagai baris yang menamai sesi yang ditonton. Baris dapat mencakup waktu giliran sesi itu selesai dan status satu baris dari giliran itu. Jika sesi yang bertanya menganggur, Claude Code memulai giliran baru dengan pemberitahuan.

119 108 

120<h4 id="limits">109<h4 id="limits">

121 Batas110 Batas

122</h4>111</h4>

123 112 

124Pemberitahuan adalah satu kali: Claude Code mengirimnya sekali dari sesi yang ditonton, dan tidak ada sesi yang menanyakan yang lain. Jika tidak ada pemberitahuan yang tiba dalam 12 jam, Claude Code menjatuhkan langganan dan memberi tahu Claude, jadi tidak terus menunggu.113Jika tidak ada pemberitahuan yang tiba dalam 12 jam, Claude Code menghapus langganan dan memberi tahu Claude, jadi tidak terus menunggu.

125 114 

126[Kontrol inbound](#control-inbound-messages) setiap sisi berlaku untuk pemberitahuan seperti pesan:115[Kontrol inbound](#control-inbound-messages) setiap sisi berlaku untuk pemberitahuan seperti pesan:

127 116 

128* **`refuse` di kedua sisi**: tidak ada yang tiba. Sesi yang ditonton menjatuhkan permintaan tanpa merekam atau menjawabnya, jadi langganan berakhir tanpa jawaban setelah 12 jam, dan sesi yang bertanya dengan `refuse` tidak pernah berlangganan.117* **`refuse` di kedua sisi**: tidak ada yang tiba. Sesi yang ditonton menghapus permintaan tanpa merekam atau menjawabnya, jadi langganan berakhir tanpa jawaban setelah 12 jam, dan sesi yang bertanya dengan `refuse` tidak pernah berlangganan.

129* **`hold` di kedua sisi**: pemberitahuan tiba dengan lebih sedikit. Sesi yang ditonton meninggalkan status satu baris, dan sesi yang bertanya menunjukkan pemberitahuan dalam transkrip Anda tanpa mengirimkannya ke Claude.118* **`hold` di kedua sisi**: pemberitahuan tiba dengan lebih sedikit. Sesi yang ditonton menghilangkan status satu baris, dan sesi yang bertanya menampilkan pemberitahuan dalam transkrip Anda tanpa mengirimkannya ke Claude.

130 119 

131Hanya Claude dalam percakapan utama Anda yang dapat berlangganan, dan hanya ke sesi Anda di mesin ini. Ketika subagent atau rekan kerja agent team menetapkan `notify_when_idle`, Claude Code tidak membuat langganan dan memberi tahu demikian. Ketika Claude meminta pemberitahuan dari agen lain apa pun, seperti rekan kerja, subagent, atau sesi di luar mesin ini, Claude Code menolak seluruh panggilan, termasuk pesan apa pun yang dilampirkan padanya, dan melaporkan penolakan ke Claude sehingga dapat mengirim ulang pesan tanpa permintaan.120Hanya Claude dalam percakapan utama Anda yang dapat berlangganan, dan hanya ke sesi Anda di mesin ini. Ketika Claude meminta pemberitahuan dari target lain apa pun, seperti rekan kerja, subagent, atau sesi di luar mesin ini, Claude Code menolak seluruh panggilan, termasuk pesan apa pun yang dilampirkan padanya.

132 121 

133<h3 id="see-which-sessions-claude-can-reach">122<h3 id="see-which-sessions-claude-can-reach">

134 Lihat sesi mana yang dapat dijangkau Claude123 Lihat sesi mana yang dapat dijangkau Claude

135</h3>124</h3>

136 125 

137Claude menemukan target pesan sendiri, jadi Anda tidak perlu menjalankan apa pun sebelum memintanya mengirim. Untuk melihat sendiri sesi mana yang dapat dijangkau Claude, jalankan perintah `/list-agents`. Baris pertama, ketika ada, adalah nama sesi ini sendiri, yang digunakan sesi lain Anda untuk mengirim pesan padanya. Baris di bawahnya adalah sesi yang dapat dijangkau Claude:126Claude menemukan target pesan sendiri, jadi Anda tidak perlu menjalankan apa pun sebelum memintanya untuk mengirim. Untuk melihat sendiri sesi mana yang dapat dijangkau Claude, jalankan perintah `/list-agents`. Baris pertama, jika ada, adalah nama sesi ini sendiri, yang digunakan sesi lain Anda untuk mengirim pesannya. Baris di bawahnya adalah sesi yang dapat dijangkau Claude:

138 127 

139* **Subagents**: agen yang berjalan di dalam sesi saat ini.128* **Subagents**: agen yang berjalan di dalam sesi saat ini.

140* **Teammates**: rekan kerja [agent team](/docs/id/agent-teams) sesi ini sendiri. Sebelum v2.1.239, rekan kerja tidak muncul dalam daftar, meskipun Claude sudah dapat mengirim pesan kepada mereka berdasarkan nama.129* **Rekan kerja**: rekan kerja [tim agen](/docs/id/agent-teams) sesi ini sendiri.

141* **Sesi lokal Anda yang lain**: sesi Claude Code yang berjalan di mesin yang sama, termasuk [background sessions](/docs/id/agent-view). Sesi muncul hanya ketika mengikat [inbox socket](#the-sessions-inbox-socket).130* **Sesi lokal Anda yang lain**: sesi Claude Code yang berjalan di mesin yang sama, termasuk [sesi latar belakang](/docs/id/agent-view). Sesi muncul hanya ketika mengikat [soket kotak masuk](#the-sessions-inbox-socket).

142* **Sesi cloud Anda**: sesi [Claude Code on the web](/docs/id/claude-code-on-the-web) Anda, ditampilkan saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control). Claude Code memberi label `cloud` pada mereka dalam daftar.131* **[Sesi cloud](/docs/id/claude-code-on-the-web) Anda**: ditampilkan saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control).

143* **Sesi Remote Control Anda di mesin lain**: ditampilkan saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control), dan diberi label `Remote Control`. Claude Code menunjukkan `offline` sebagai status sesi yang koneksi Remote Control-nya telah putus.132* **Sesi Remote Control Anda di mesin lain**: ditampilkan saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control), dan diberi label `Remote Control`. Claude Code menampilkan `offline` sebagai status sesi yang koneksi Remote Control-nya telah putus.

144 

145Sesi ini bukan salah satu baris. Jika Claude mengatasi pesan ke nama sesi ini sendiri, Claude Code menolaknya dan memberi tahu Claude target adalah sesi saat ini. Sebelum v2.1.239, daftar tidak menunjukkan nama sesi ini, dan Claude Code melaporkan pesan yang dikirim padanya sebagai agen yang tidak dapat ditemukannya.

146 133 

147Saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control), Claude Code menahan beberapa detail sesi lokal Anda dari output `/list-agents`, tanpa mengubah apa yang Claude sendiri lihat ketika mencari sesi untuk mengirim pesan:134Saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control), Claude Code menahan beberapa detail sesi lokal Anda dari output `/list-agents`, tanpa mengubah apa yang Claude sendiri lihat ketika mencari sesi untuk dikirim pesan:

148 135 

149* **Direktori kerja**: meninggalkan direktori kerja setiap sesi lokal.136* **Direktori kerja**: menghilangkan direktori kerja setiap sesi lokal.

150* **Nama sesi**: meninggalkan nama sesi apa pun yang tidak dapat diatribusikan ke orang, jadi baris yang tersisa tanpa nama berbunyi `(unnamed session)`.137* **Nama sesi**: menghilangkan nama sesi apa pun yang tidak dapat diatribusikan ke orang, jadi baris yang tersisa tanpa nama berbunyi `(unnamed session)`.

151* **Baris pertama**: meninggalkan baris dengan nama sesi ini sendiri kecuali Anda mengetik nama itu di terminal ini, dengan `--name` atau dengan `/rename` dan nama, sejak Anda meluncurkan atau terakhir melanjutkan sesi.138* **Baris pertama**: menghilangkan baris dengan nama sesi ini sendiri kecuali Anda mengetik nama itu di terminal ini, dengan `--name` atau dengan `/rename` dan nama, sejak Anda meluncurkan atau terakhir melanjutkan sesi.

152 139 

153Ketika output mencantumkan apa pun, itu berakhir dengan catatan yang mengatakan detail ditahan. Menjalankan `/rename` diikuti dengan nama yang tidak digunakan di keyboard sesi sendiri memberikan sesi itu nama yang muncul dalam output.140Ketika output mencantumkan apa pun, itu berakhir dengan catatan yang mengatakan detail ditahan. Menjalankan `/rename` diikuti dengan nama yang tidak digunakan di keyboard sesi sendiri memberikan sesi itu nama yang muncul dalam output.

154 141 

155Claude Code membaca daftar sesi cloud dan Remote Control Anda terbaru terlebih dahulu dan berhenti setelah jumlah halaman terbatas untuk masing-masing. Jika akun Anda memiliki lebih banyak sesi itu daripada yang cocok, Claude Code tidak membuat daftar yang lebih lama, dan Claude tidak dapat mengirim pesan kepada mereka berdasarkan nama. Ketika ini terjadi, Claude Code mengatakan demikian dalam daftar, dan Claude melihat catatan yang sama ketika mengirim pesan.

156 

157Claude mengatasi sesi di luar mesin ini berdasarkan nama, sama seperti sesi lokal. Lihat [Message sessions on other machines](#message-sessions-on-other-machines) untuk bagaimana pesan itu bepergian.

158 

159Sesi menjawab nama yang Anda tetapkan dengan perintah [`/rename`](/docs/id/commands) atau bendera [`--name`](/docs/id/cli-reference#cli-flags). Ketika Anda tidak menetapkan satu, Claude Code memberi nama sesi itu sendiri. Untuk sesi interaktif, itu adalah nama yang ditampilkan dalam [daftar sesi yang berjalan](/docs/id/sessions#name-your-sessions).142Sesi menjawab nama yang Anda tetapkan dengan perintah [`/rename`](/docs/id/commands) atau bendera [`--name`](/docs/id/cli-reference#cli-flags). Ketika Anda tidak menetapkan satu, Claude Code memberi nama sesi itu sendiri. Untuk sesi interaktif, itu adalah nama yang ditampilkan dalam [daftar sesi yang berjalan](/docs/id/sessions#name-your-sessions).

160 143 

161Ketika Anda mengganti nama sesi, Claude Code juga memperbarui catatan bersama yang digunakan sesi lain Anda untuk mencari nama sesi. Jika tidak dapat memperbarui catatan itu, itu memperingatkan Anda dalam output `/rename` bahwa sesi lain mungkin masih menunjukkan nama lama. Jalankan sesi dengan [`--debug`](/docs/id/cli-reference#cli-flags), dan Claude Code mencatat penyebab pembaruan yang gagal.144Ketika Anda mengganti nama sesi, atau memulai atau melanjutkan sesi interaktif, dengan nama yang sesi hidup lain di mesin ini sudah gunakan, Claude Code meninggalkan nama dengan sesi yang sudah memilikinya dan [mengganti nama Anda menjadi varian](/docs/id/sessions#name-your-sessions). Sesi masih dapat berbagi nama, misalnya ketika salah satu dari mereka menjalankan versi Claude Code yang lebih awal atau nama bersama adalah nama yang dihasilkan Claude Code. Kecuali sesi ini terhubung ke Remote Control, Claude Code menampilkan direktori kerja setiap sesi lokal dalam output `/list-agents`, jadi Anda dapat membedakan sesi dengan nama yang sama ketika berjalan di direktori berbeda. Claude mengatasi pesan dalam salah satu dari dua cara, tergantung pada berapa banyak sesi hidup yang menjawab nama:

162 145 

163Ketika Anda mengganti nama sesi, atau memulai atau melanjutkan sesi interaktif, dengan nama yang sudah digunakan sesi live lain di mesin ini, Claude Code meninggalkan nama dengan sesi yang sudah memilikinya dan [mengganti nama Anda menjadi varian](/docs/id/sessions#name-your-sessions). Sesi masih dapat berbagi nama, misalnya ketika salah satunya menjalankan versi Claude Code yang lebih awal atau nama bersama adalah yang dihasilkan Claude Code. Kecuali sesi ini terhubung ke Remote Control, Claude Code menunjukkan direktori kerja setiap sesi lokal dalam output `/list-agents`, jadi Anda dapat membedakan sesi dengan nama yang sama ketika berjalan di direktori berbeda. Claude mengatasi pesan dalam salah satu dari dua cara, tergantung pada berapa banyak sesi live yang menjawab nama:146* **Satu sesi menjawab nama**: Claude Code mengirim pesan hanya pada nama.

164 

165* **Satu sesi menjawab nama**: Claude Code mengirimkan pesan hanya pada nama.

166* **Beberapa sesi berbagi nama, atau Claude Code tidak dapat memeriksa di mana pun sesi Anda berjalan**: Claude menambahkan pengidentifikasi pendek ke setiap baris daftarnya dan menggunakan pengidentifikasi dalam alamat.147* **Beberapa sesi berbagi nama, atau Claude Code tidak dapat memeriksa di mana pun sesi Anda berjalan**: Claude menambahkan pengidentifikasi pendek ke setiap baris daftarnya dan menggunakan pengidentifikasi dalam alamat.

167 148 

168<h3 id="message-sessions-on-other-machines">149<h3 id="message-sessions-on-other-machines">

169 Kirim pesan ke sesi di mesin lain150 Mengirim pesan ke sesi di mesin lain

170</h3>151</h3>

171 152 

172Bagaimana pesan bepergian, dan apakah melewati server Anthropic, tergantung di mana sesi target berjalan:153Bagaimana pesan bepergian, dan apakah melewati server Anthropic, tergantung pada tempat sesi target berjalan:

173 154 

174| Di mana sesi lain berjalan | Bagaimana pesan bepergian |155| Tempat sesi lain berjalan | Bagaimana pesan bepergian |

175| :- | :- |156| :- | :- |

176| Di mesin ini | Melalui soket per-sesi di macOS dan Linux, atau pipa bernama per-sesi di Windows native, tidak pernah melalui server Anthropic |157| Di mesin ini | Melalui soket per-sesi di macOS dan Linux, atau pipa bernama per-sesi di Windows asli, tidak pernah melalui server Anthropic |

177| Di mesin lain Anda | Melalui server Anthropic, tiba melalui koneksi [Remote Control](/docs/id/remote-control) mesin itu |158| Di mesin lain Anda | Melalui server Anthropic, tiba melalui koneksi [Remote Control](/docs/id/remote-control) mesin itu |

178| Di [Claude Code on the web](/docs/id/claude-code-on-the-web) | Melalui server Anthropic, langsung ke sesi cloud |159| Di [cloud](/docs/id/claude-code-on-the-web) | Melalui server Anthropic, langsung ke sesi cloud |

179 

180Memulai percakapan dengan sesi di mesin lain Anda memerlukan Claude Code v2.1.225 atau lebih baru dan target yang [muncul dalam daftar](#see-which-sessions-claude-can-reach). Sebelum v2.1.225, Claude hanya dapat membalas pesan yang tiba dari satu.

181 160 

182Anda dapat mengirim pesan ke sesi yang ditampilkan sebagai `offline` dalam [daftar](#see-which-sessions-claude-can-reach), sesi yang koneksi Remote Control-nya telah putus. Pengiriman melewati, tetapi pesan tiba hanya setelah mesin sesi itu terhubung kembali. Claude diberitahu demikian ketika mengirim.161Memulai percakapan dengan sesi di mesin lain Anda memerlukan Claude Code v2.1.225 atau lebih baru dan target yang [muncul dalam daftar](#see-which-sessions-claude-can-reach).

183 162 

184Pengiriman mesin yang sama bekerja di mana pun fitur diaktifkan. Setiap sesi mendaftarkan dirinya dalam file di disk. Ketika Claude membuat daftar atau mengirim pesan ke sesi lokal Anda, Claude Code membaca file itu untuk menemukan sesi, jadi dua sesi dapat menjangkau satu sama lain hanya ketika dapat melihat file yang sama.163Anda dapat mengirim pesan ke sesi yang ditampilkan sebagai `offline` dalam [daftar](#see-which-sessions-claude-can-reach), satu yang koneksi Remote Control-nya telah putus. Pengiriman melewati, tetapi pesan tiba hanya setelah mesin sesi itu terhubung kembali.

185 164 

186Kontainer memiliki sistem file sendiri, jadi sesi di dalamnya dan sesi di host tidak dapat menjangkau satu sama lain. Dua sesi di dalam kontainer yang sama masih dapat mengirim pesan satu sama lain, termasuk di [self-hosted runner](/docs/id/self-hosted-environments). Sesi di dalam WSL 2 dan sesi Windows native di komputer yang sama juga tidak dapat menjangkau satu sama lain, karena mendaftarkan di bawah direktori home berbeda dan mendengarkan pada jenis soket berbeda.165Sesi di dalam kontainer dan sesi di host tidak dapat menjangkau satu sama lain. Dua sesi di dalam kontainer yang sama masih dapat mengirim pesan satu sama lain, termasuk di [runner yang di-host sendiri](/docs/id/self-hosted-environments). Sesi di dalam WSL 2 dan sesi Windows asli di komputer yang sama juga tidak dapat menjangkau satu sama lain.

187 166 

188Saat sesi ini terhubung ke Remote Control, ketika Anda mengirim pesan ke sesi di mesin lain Anda, Claude Code menunjukkan pesan dalam percakapan sesi itu di bawah nama Remote Control sesi ini. Claude di mesin itu dapat membalas nama itu. Misalnya, ketika sesi ini terhubung ke Remote Control sebagai `laptop-graceful-unicorn` dan Anda mengirim pesan ke desktop Anda, Anda melihat pesan di sesi desktop di bawah `laptop-graceful-unicorn`.167Jika sesi ini tidak terhubung ke Remote Control ketika Claude mengirim ke sesi di luar mesin ini, pesan masih melewati, tetapi tanpa [alamat balasan](#what-a-message-looks-like), jadi Claude penerima tidak dapat menjawabnya.

189 

190Jika sesi ini tidak terhubung ke Remote Control ketika Claude mengirim ke sesi di luar mesin ini, pesan masih melewati, tetapi tanpa [alamat balasan](#what-a-message-looks-like), jadi Claude penerima tidak dapat menjawabnya. Claude diberitahu demikian ketika mengirim.

191 168 

192Untuk memerlukan persetujuan Anda sebelum pesan apa pun melampaui mesin ini, atur [`isolatePeerMachines`](#require-approval-for-cross-machine-messages).169Untuk memerlukan persetujuan Anda sebelum pesan apa pun melampaui mesin ini, atur [`isolatePeerMachines`](#require-approval-for-cross-machine-messages).

193 170 


206 Apa pesan terlihat seperti183 Apa pesan terlihat seperti

207</h3>184</h3>

208 185 

209Ketika pesan tiba, Claude Code menunjukkannya dalam percakapan sebagai pratinjau satu baris yang redup, dan baris pratinjau tetap dalam percakapan sesudahnya. Pratinjau membawa nama pengirim dan baris pertama pesan, dipotong dengan `…` ketika panjang, seperti `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`. Sebelum v2.1.247, Claude Code menunjukkan pesan yang tiba secara penuh alih-alih pratinjau.186Ketika pesan tiba, Claude Code menunjukkannya dalam percakapan sebagai pratinjau satu baris yang redup, dan baris pratinjau tetap dalam percakapan sesudahnya. Pratinjau membawa nama pengirim dan baris pertama pesan, dipotong dengan `…` ketika panjang, seperti `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`.

210 187 

211Salah satu dari ini menunjukkan Anda teks lengkap:188Salah satu dari ini menunjukkan Anda teks lengkap:

212 189 


215 192 

216Pratinjau mempersingkat hanya apa yang Anda lihat. Apakah Anda memperluas atau tidak, Claude membaca pesan lengkap.193Pratinjau mempersingkat hanya apa yang Anda lihat. Apakah Anda memperluas atau tidak, Claude membaca pesan lengkap.

217 194 

218Claude menerima pesan dengan nama pengirim dan alamat balasan, kecuali untuk [pesan cross-machine satu arah](#message-sessions-on-other-machines), yang tidak membawa alamat balasan. Di luar nama dan alamat balasan, Claude penerima mendapatkan teks pesan, tidak pernah riwayat percakapan atau file pengirim. [Message delivery](#message-delivery) mencakup penyebutan `@` dalam teks.195Claude menerima pesan dengan nama pengirim dan alamat balasan, kecuali untuk [pesan cross-machine satu arah](#message-sessions-on-other-machines), yang tidak membawa alamat balasan.

219 

220Pesan yang ditulis [subagent](/docs/id/sub-agents) tiba di bawah nama sesi pengirim, dengan subagent diidentifikasi dalam teks pesan. Balasan padanya mencapai percakapan utama sesi itu, bukan subagent.

221 196 

222Contoh ini adalah pesan yang ditulis satu Claude ke Claude lain, seperti teks lengkapnya dibaca ketika Anda memperluas:197Contoh ini adalah pesan yang ditulis satu Claude ke Claude lain, seperti teks lengkapnya dibaca ketika Anda memperluas:

223 198 


254* Ketika dialog tetap tanpa jawaban melewati batas waktu [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry), Claude Code menutupnya dan menjatuhkan pesan. Batas waktu default ke lima menit.229* Ketika dialog tetap tanpa jawaban melewati batas waktu [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry), Claude Code menutupnya dan menjatuhkan pesan. Batas waktu default ke lima menit.

255* Saat tidak ada terminal yang terpasang ke [background session](/docs/id/agent-view), Claude Code meninggalkan dialog terbuka melewati batas waktu. Setelah Anda melampirkan, jika dialog tetap tanpa jawaban untuk periode batas waktu penuh, Claude Code menutupnya dan menjatuhkan pesan.230* Saat tidak ada terminal yang terpasang ke [background session](/docs/id/agent-view), Claude Code meninggalkan dialog terbuka melewati batas waktu. Setelah Anda melampirkan, jika dialog tetap tanpa jawaban untuk periode batas waktu penuh, Claude Code menutupnya dan menjatuhkan pesan.

256* Jika kelas mode izin sesi ini berubah saat pesan ditahan, Claude Code menerapkan kembali aturan inbound, mengirimkan pesan yang sekarang diterima, dan menunjukkan pemberitahuan.231* Jika kelas mode izin sesi ini berubah saat pesan ditahan, Claude Code menerapkan kembali aturan inbound, mengirimkan pesan yang sekarang diterima, dan menunjukkan pemberitahuan.

257* Jika perubahan pengaturan membuat `refuse` berlaku saat pesan ditahan, Claude Code menjatuhkan setiap pesan yang ditahan dan melaporkan penolakan ke setiap pengirim yang dapat dijangkaunya.

258 

259Ketika pengirim adalah sesi di mesin yang sama, Claude Code mengirimkan pemberitahuan kembali ke sana ketika penerima menahan pesan, dan tindak lanjut ketika penerima kemudian mengirimkan, menolak, atau kedaluwarsa. Pemberitahuan mencapai Claude pengirim, jadi tahu tidak perlu terus menunggu pesan yang sesi lain belum baca.

260 

261Dalam sesi pengirim interaktif, pemberitahuan muncul dalam transkrip. Pengirim [`claude -p`](/docs/id/headless) menerima dalam [streamed output](/docs/id/headless#stream-responses) sebagai [informational `system` message](/docs/id/agent-sdk/typescript#sdkinformationalmessage). Pemberitahuan ke pengirim `claude -p` memerlukan Claude Code v2.1.271 atau lebih baru.

262 232 

263Jika penerima menolak pesan, pemberitahuan pengirim mengatakan penerima tidak menerima pesan cross-session dan memberi tahu Claude pengirim untuk tidak menunggu atau mengirim ulang.233Claude Code menahan paling banyak 100 pesan, dan melampaui itu menjatuhkan yang tertua.

264 

265Claude Code menahan paling banyak 100 pesan, terpisah dari antrian pengiriman, dan melampaui itu menjatuhkan yang tertua.

266 234 

267<h3 id="non-interactive-sessions">235<h3 id="non-interactive-sessions">

268 Sesi non-interaktif236 Sesi non-interaktif


277 245 

278Atur `dialogExpiry` ke `"never"` untuk menyimpan pesan default-held sampai sesi berakhir. Pesan yang ditahan oleh pengaturan `hold` eksplisit tidak kedaluwarsa; Claude Code mengirimkannya hanya ketika `accept` kemudian berlaku.246Atur `dialogExpiry` ke `"never"` untuk menyimpan pesan default-held sampai sesi berakhir. Pesan yang ditahan oleh pengaturan `hold` eksplisit tidak kedaluwarsa; Claude Code mengirimkannya hanya ketika `accept` kemudian berlaku.

279 247 

280Ketika sesi berakhir dengan pesan masih ditahan, Claude Code melaporkannya sebagai kedaluwarsa ke setiap pengirim yang dapat dijangkaunya. Sebelum v2.1.225, tidak ada batas waktu yang berlaku dalam sesi `-p`: pesan yang ditahan tetap ditahan kecuali perubahan mode izin selama jalankan mengirimkannya, dan sesi yang berakhir dengan pesan yang ditahan melaporkan tidak ada kepada pengirim mereka.

281 

282Untuk membiarkan pekerja `-p` mengambil pesan tanpa pengawasan, mulai dengan `crossSessionInbound` diatur ke `accept` dalam nilai `--settings` miliknya. `accept` dalam pengaturan pengguna Anda juga bekerja tetapi berlaku untuk setiap sesi yang Anda jalankan.248Untuk membiarkan pekerja `-p` mengambil pesan tanpa pengawasan, mulai dengan `crossSessionInbound` diatur ke `accept` dalam nilai `--settings` miliknya. `accept` dalam pengaturan pengguna Anda juga bekerja tetapi berlaku untuk setiap sesi yang Anda jalankan.

283 249 

284<h3 id="the-sessions-inbox-socket">250<h3 id="the-sessions-inbox-socket">


294* `/status` menunjukkannya dalam baris `Peer address`. Jalur diawali dengan `uds:`.260* `/status` menunjukkannya dalam baris `Peer address`. Jalur diawali dengan `uds:`.

295* Claude Code mengekspornya ke [hooks](/docs/id/hooks) dan perintah Bash sebagai variabel lingkungan [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/id/env-vars#variables):261* Claude Code mengekspornya ke [hooks](/docs/id/hooks) dan perintah Bash sebagai variabel lingkungan [`CLAUDE_CODE_MESSAGING_SOCKET`](/docs/id/env-vars#variables):

296 * Dalam sesi yang dimulai dengan messaging aktif, Claude Code mengekspor variabel sebelum hook apa pun berjalan, termasuk `SessionStart`.262 * Dalam sesi yang dimulai dengan messaging aktif, Claude Code mengekspor variabel sebelum hook apa pun berjalan, termasuk `SessionStart`.

297 * Setiap sesi mengekspor soketnya sendiri, tidak pernah yang diwarisi dari sesi induk.

298 263 

299Di macOS dan Linux, Claude Code membatasi soket ke pengguna sistem operasi Anda. Di Windows native, itu malah memerlukan setiap koneksi untuk mengautentikasi terlebih dahulu dengan kunci yang hanya dapat dibaca pengguna sistem operasi Anda. Bagaimanapun, di mesin bersama sesi pengguna lain tidak dapat mengirimkan ke soket itu.264Di macOS dan Linux, Claude Code membatasi soket ke pengguna sistem operasi Anda. Di Windows native, itu malah memerlukan setiap koneksi untuk mengautentikasi terlebih dahulu dengan kunci yang hanya dapat dibaca pengguna sistem operasi Anda. Bagaimanapun, di mesin bersama sesi pengguna lain tidak dapat mengirimkan ke soket itu.

300 265 


307 272 

308Buka koneksi hanya ketika pesan yang Anda posting siap. Claude Code menutup koneksi yang belum mengirimkan baris lengkap dalam 30 detik, jadi tangkap output perintah lambat terlebih dahulu dan kemudian buka koneksi untuk mengirimkannya.273Buka koneksi hanya ketika pesan yang Anda posting siap. Claude Code menutup koneksi yang belum mengirimkan baris lengkap dalam 30 detik, jadi tangkap output perintah lambat terlebih dahulu dan kemudian buka koneksi untuk mengirimkannya.

309 274 

310[Aturan own-child](#own-child-messages) di bawah mengatakan kapan Claude Code berkonsultasi dengan token dan bagaimana memperlakukan pesan yang tidak dapat diverifikasi.

311 

312<span id="own-child-messages" />Claude Code menjalankan pesan yang tiba di soket melalui [kontrol inbound](#control-inbound-messages) yang sama seperti pesan peer apa pun, dengan satu pengecualian dan satu prasyarat:275<span id="own-child-messages" />Claude Code menjalankan pesan yang tiba di soket melalui [kontrol inbound](#control-inbound-messages) yang sama seperti pesan peer apa pun, dengan satu pengecualian dan satu prasyarat:

313 276 

314* **Pesan own-child**: ketika tidak ada nilai `crossSessionInbound` yang berlaku, Claude Code mengirimkan pesan yang diverifikasi berasal dari proses anak sesi itu sendiri, seperti hook atau perintah Bash memposting kembali ke soket sesinya sendiri.277* **Pesan own-child**: ketika tidak ada nilai `crossSessionInbound` yang berlaku, Claude Code mengirimkan pesan yang diverifikasi berasal dari proses anak sesi itu sendiri, seperti hook atau perintah Bash memposting kembali ke soket sesinya sendiri.


382 * **Sesi cloud hilang**: sesi cloud muncul hanya saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control).345 * **Sesi cloud hilang**: sesi cloud muncul hanya saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control).

383 * **Sesi mesin lain hilang**: sesi di mesin lain Anda muncul hanya ketika berjalan dengan [Remote Control](/docs/id/remote-control) dan sesi ini juga terhubung.346 * **Sesi mesin lain hilang**: sesi di mesin lain Anda muncul hanya ketika berjalan dengan [Remote Control](/docs/id/remote-control) dan sesi ini juga terhubung.

384 * **Sesi mesin lain `offline`**: pesan ke sesi yang terdaftar sebagai `offline` akan diteruskan, tetapi [tiba hanya setelah mesin sesi itu terhubung kembali](#message-sessions-on-other-machines).347 * **Sesi mesin lain `offline`**: pesan ke sesi yang terdaftar sebagai `offline` akan diteruskan, tetapi [tiba hanya setelah mesin sesi itu terhubung kembali](#message-sessions-on-other-machines).

385 * **Sesi cloud atau mesin lain yang lebih lama hilang**: Claude Code [membaca daftar sesi itu terbaru terlebih dahulu dan berhenti setelah jumlah halaman terbatas](#see-which-sessions-claude-can-reach), jadi Claude tidak dapat mengirim pesan ke sesi yang jatuh melewati mereka berdasarkan nama.348 * **Sesi cloud atau mesin lain yang lebih lama hilang**: Claude Code membaca daftar sesi itu terbaru terlebih dahulu dan berhenti setelah jumlah halaman terbatas, jadi Claude tidak dapat mengirim pesan ke sesi yang jatuh melewati mereka berdasarkan nama.

386 * **Memulai percakapan**: [Message sessions on other machines](#message-sessions-on-other-machines) mencakup memulai percakapan dengan sesi di luar mesin ini.

387 349 

388Dalam sesi dengan messaging, `/status` juga menunjukkan baris `Peer address` dengan alamat inbox sesi itu sendiri, atau `unavailable` dan alasan ketika Claude Code [tidak dapat mengatur inbox](#the-sessions-inbox-socket).350Dalam sesi dengan messaging, `/status` juga menunjukkan baris `Peer address` dengan alamat inbox sesi itu sendiri, atau `unavailable` dan alasan ketika Claude Code [tidak dapat mengatur inbox](#the-sessions-inbox-socket).

389 351 


395 357 

396* **Teks biasa saja**: Claude mengirimkan hanya teks biasa lintas sesi. Pesan protokol [agent team](/docs/id/agent-teams) terstruktur tetap dalam tim.358* **Teks biasa saja**: Claude mengirimkan hanya teks biasa lintas sesi. Pesan protokol [agent team](/docs/id/agent-teams) terstruktur tetap dalam tim.

397* **Ukuran pesan mesin yang sama dibatasi**: Claude Code menolak pesan ke sesi di mesin ini setelah bentuk serialnya melewati sekitar satu juta karakter. Penolakan [menamai ukuran yang tepat](/docs/id/errors#message-too-large-for-cross-session-delivery). Tidak ada yang mencapai sesi penerima.359* **Ukuran pesan mesin yang sama dibatasi**: Claude Code menolak pesan ke sesi di mesin ini setelah bentuk serialnya melewati sekitar satu juta karakter. Penolakan [menamai ukuran yang tepat](/docs/id/errors#message-too-large-for-cross-session-delivery). Tidak ada yang mencapai sesi penerima.

398* **Ledakan cepat ke satu sesi ditolak di pengirim**: setelah ledakan cepat pesan ke sesi di mesin ini mencapai apa yang diterima inbox sesi itu, Claude Code menolak pengiriman lebih lanjut dalam sesi pengirim. [Penolakan menamai ledakan](/docs/id/errors#too-many-messages-to-this-session-just-now) dan memberi tahu Claude untuk mengelompokkan sisanya menjadi satu pesan atau menunggu. Sebelum v2.1.236, Claude Code melaporkan pengiriman itu sebagai dikirim sementara sesi penerima menjatuhkannya.360* **Ledakan cepat ke satu sesi ditolak di pengirim**: setelah ledakan cepat pesan ke sesi di mesin ini mencapai apa yang diterima inbox sesi itu, Claude Code menolak pengiriman lebih lanjut dalam sesi pengirim. [Penolakan menamai ledakan](/docs/id/errors#too-many-messages-to-this-session-just-now) dan memberi tahu Claude untuk mengelompokkan sisanya menjadi satu pesan atau menunggu.

399* **Loop pesan dibatasi**: dalam sesi penerima, Claude Code membatasi laju pesan berulang per pengirim, menjatuhkan pengulangan identik yang tiba dalam jendela pendek, dan antrian paling banyak 50 pesan yang diterima untuk dibaca Claude. Loop pesan antara dua sesi karena itu berhenti sendiri. Ketika batas laju, pemeriksaan pengulangan, atau batas antrian menjatuhkan pesan dari sesi interaktif di mesin ini, Claude Code memberi tahu sesi itu mana yang menjatuhkannya dan memberi tahu Claude-nya untuk tidak mengirim ulang segera.361* **Loop pesan dibatasi**: dalam sesi penerima, Claude Code membatasi laju pesan berulang per pengirim, menjatuhkan pengulangan identik yang tiba dalam jendela pendek, dan antrian paling banyak 50 pesan yang diterima untuk dibaca Claude. Loop pesan antara dua sesi karena itu berhenti sendiri.

400 362 

401<h2 id="related-resources">363<h2 id="related-resources">

402 Sumber daya terkait364 Sumber daya terkait


405* [Subagents](/docs/id/sub-agents#resume-subagents) dan [agent teams](/docs/id/agent-teams#messages-between-agents): messaging dalam satu sesi atau tim367* [Subagents](/docs/id/sub-agents#resume-subagents) dan [agent teams](/docs/id/agent-teams#messages-between-agents): messaging dalam satu sesi atau tim

406* [Background agents](/docs/id/agent-view): dispatch dan monitor sesi paralel yang mungkin Anda kirim pesan368* [Background agents](/docs/id/agent-view): dispatch dan monitor sesi paralel yang mungkin Anda kirim pesan

407* [Remote Control](/docs/id/remote-control): hubungkan sesi ini untuk menjangkau sesi Anda di mesin lain369* [Remote Control](/docs/id/remote-control): hubungkan sesi ini untuk menjangkau sesi Anda di mesin lain

370* [Channels](/docs/id/channels): push acara eksternal, seperti hasil CI atau pesan chat, ke dalam sesi

408* [Settings](/docs/id/settings-reference#all-settings): `crossSessionInbound`, `isolatePeerMachines`, dan `dialogExpiry`371* [Settings](/docs/id/settings-reference#all-settings): `crossSessionInbound`, `isolatePeerMachines`, dan `dialogExpiry`

409* [Permission modes](/docs/id/permission-modes): mode di balik default inbound dua kelas372* [Permission modes](/docs/id/permission-modes): mode di balik default inbound dua kelas

410* [Tools reference](/docs/id/tools-reference): baris `ListAgents` dan `SendMessage` dalam tabel tools373* [Tools reference](/docs/id/tools-reference): baris `ListAgents` dan `SendMessage` dalam tabel tools

data-usage.md +3 −3

Details

110 110 

111[Sesi cloud](/docs/id/claude-code-on-the-web) berjalan di mesin virtual yang dikelola Anthropic secara default alih-alih secara lokal. Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan pada infrastruktur yang Anda kontrol; untuk apa yang tetap berada di mesin Anda dan apa yang masih pergi ke Anthropic, lihat [Apa yang tetap berada di infrastruktur Anda](/docs/id/self-hosted-environments#what-stays-on-your-infrastructure). Dalam sesi cloud yang di-host Anthropic:111[Sesi cloud](/docs/id/claude-code-on-the-web) berjalan di mesin virtual yang dikelola Anthropic secara default alih-alih secara lokal. Sesi yang organisasi Anda arahkan ke [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) berjalan pada infrastruktur yang Anda kontrol; untuk apa yang tetap berada di mesin Anda dan apa yang masih pergi ke Anthropic, lihat [Apa yang tetap berada di infrastruktur Anda](/docs/id/self-hosted-environments#what-stays-on-your-infrastructure). Dalam sesi cloud yang di-host Anthropic:

112 112 

113* **Penyimpanan kode dan data:** Repositori Anda diklon ke VM terisolasi. Kode dan data sesi tunduk pada kebijakan retensi dan penggunaan untuk jenis akun Anda (lihat bagian Retensi data di atas)113* **Penyimpanan kode dan data:** Repositori Anda diklon ke VM terisolasi sesi. Anthropic menyimpan transkrip sesi sehingga Anda dapat kembali ke sesi nanti. Kode dan data sesi tunduk pada [kebijakan retensi dan penggunaan](#data-retention) untuk jenis akun Anda

114* **Kredensial:** Autentikasi GitHub ditangani melalui proxy aman; kredensial GitHub Anda tidak pernah memasuki sandbox114* **Kredensial:** Kredensial GitHub disimpan terenkripsi di server Anthropic dan tidak pernah memasuki VM. Lalu lintas GitHub dari VM melewati proxy Anthropic yang melampirkannya di sisi server

115* **Lalu lintas jaringan:** Semua lalu lintas keluar melewati proxy keamanan untuk logging audit dan pencegahan penyalahgunaan115* **Lalu lintas jaringan:** Semua lalu lintas keluar melewati proxy keamanan untuk logging audit dan pencegahan penyalahgunaan

116* **Data sesi:** Prompt, perubahan kode, dan output mengikuti kebijakan data yang sama dengan penggunaan Claude Code lokal116* **Data sesi:** Prompt, perubahan kode, dan output mengikuti kebijakan data yang sama dengan penggunaan Claude Code lokal

117 117 


121 Layanan telemetri121 Layanan telemetri

122</h2>122</h2>

123 123 

124Claude Code mengirimkan dua jenis telemetri operasional: metrik penggunaan dan laporan kesalahan. Anda dapat mematikan masing-masing secara individual dengan variabel lingkungan di bawah ini, atau menonaktifkan semua lalu lintas non-esensial sekaligus dengan menetapkan `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Menetapkan `DISABLE_TELEMETRY` atau `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` juga menonaktifkan evaluasi feature-flag yang [Remote Control](/docs/id/remote-control#requirements) bergantung padanya; `DISABLE_ERROR_REPORTING` tidak.124Claude Code mengirimkan dua jenis telemetri operasional: metrik penggunaan dan laporan kesalahan. Anda dapat mematikan masing-masing secara individual dengan variabel lingkungan di bawah ini, atau menonaktifkan semua lalu lintas non-esensial sekaligus dengan menetapkan `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Menetapkan `DISABLE_TELEMETRY` atau `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` juga menonaktifkan evaluasi feature-flag, yang dapat membuat [Remote Control](/docs/id/remote-control#requirements) tidak tersedia; `DISABLE_ERROR_REPORTING` tidak.

125 125 

126**Metrik**: latensi, keandalan, dan pola penggunaan, dikirim ke Anthropic dan ke infrastruktur logging pihak ketiga melalui TLS. Metrik tidak pernah mencakup kode, prompt, atau jalur file Anda. Atur `DISABLE_TELEMETRY=1` untuk menolak.126**Metrik**: latensi, keandalan, dan pola penggunaan, dikirim ke Anthropic dan ke infrastruktur logging pihak ketiga melalui TLS. Metrik tidak pernah mencakup kode, prompt, atau jalur file Anda. Atur `DISABLE_TELEMETRY=1` untuk menolak.

127 127 

Details

110| Hook tidak pernah aktif | `matcher` menggunakan `,` sebagai pemisah pada versi sebelum v2.1.191 | Claude Code v2.1.191 atau lebih baru memperlakukan `,` sebagai pemisah daftar seperti `\|`. Versi sebelumnya mengevaluasi koma sebagai karakter literal, jadi `"Edit,Write"` tidak cocok dengan apa pun. Gunakan `\|` sebagai gantinya, atau tingkatkan Claude Code. |110| Hook tidak pernah aktif | `matcher` menggunakan `,` sebagai pemisah pada versi sebelum v2.1.191 | Claude Code v2.1.191 atau lebih baru memperlakukan `,` sebagai pemisah daftar seperti `\|`. Versi sebelumnya mengevaluasi koma sebagai karakter literal, jadi `"Edit,Write"` tidak cocok dengan apa pun. Gunakan `\|` sebagai gantinya, atau tingkatkan Claude Code. |

111| Hook tidak pernah aktif | Nilai `matcher` adalah huruf kecil, misalnya `"bash"` | Pencocokan peka huruf besar-kecil. Nama alat dikapitalisasi: `Bash`, `Edit`, `Write`, `Read`. |111| Hook tidak pernah aktif | Nilai `matcher` adalah huruf kecil, misalnya `"bash"` | Pencocokan peka huruf besar-kecil. Nama alat dikapitalisasi: `Bash`, `Edit`, `Write`, `Read`. |

112| Hook tidak pernah aktif | Hook berada dalam file standalone bukan `settings.json` | Tidak ada file hooks standalone untuk konfigurasi proyek atau pengguna. Tentukan hooks di bawah kunci `"hooks"` di `settings.json`. Hanya [plugins](/docs/id/plugins/components#hooks) yang memuat `hooks/hooks.json` terpisah. Lihat [konfigurasi hook](/docs/id/hooks). |112| Hook tidak pernah aktif | Hook berada dalam file standalone bukan `settings.json` | Tidak ada file hooks standalone untuk konfigurasi proyek atau pengguna. Tentukan hooks di bawah kunci `"hooks"` di `settings.json`. Hanya [plugins](/docs/id/plugins/components#hooks) yang memuat `hooks/hooks.json` terpisah. Lihat [konfigurasi hook](/docs/id/hooks). |

113| Permissions, hooks, atau env yang diatur secara global diabaikan | Konfigurasi ditambahkan ke `~/.claude.json` | `~/.claude.json` menyimpan status aplikasi dan toggle UI. `permissions`, `hooks`, dan `env` termasuk dalam `~/.claude/settings.json`. Ini adalah dua file berbeda. |113| Permissions atau hooks yang diatur secara global diabaikan | Konfigurasi ditambahkan ke `~/.claude.json` | `~/.claude.json` menyimpan status aplikasi dan toggle UI. `permissions`, `hooks`, dan `env` termasuk dalam `~/.claude/settings.json`. Ini adalah dua file berbeda. |

114| Nilai `settings.json` tampak diabaikan | Kunci yang sama diatur di `settings.local.json` | `settings.local.json` menggantikan `settings.json`, dan keduanya menggantikan `~/.claude/settings.json`. Lihat [preseden pengaturan](/docs/id/settings#settings-precedence). |114| Nilai `settings.json` tampak diabaikan | Kunci yang sama diatur di `settings.local.json` | `settings.local.json` menggantikan `settings.json`, dan keduanya menggantikan `~/.claude/settings.json`. Lihat [preseden pengaturan](/docs/id/settings#settings-precedence). |

115| Skill tidak muncul di `/skills` | File skill berada di `.claude/skills/name.md` bukan dalam folder | Gunakan folder dengan `SKILL.md` di dalamnya: `.claude/skills/name/SKILL.md`. |115| Skill tidak muncul di `/skills` | File skill berada di `.claude/skills/name.md` bukan dalam folder | Gunakan folder dengan `SKILL.md` di dalamnya: `.claude/skills/name/SKILL.md`. |

116| Skill muncul di `/skills` tetapi Claude tidak pernah menginvokasinya | Skill memiliki `disable-model-invocation: true` di frontmatter-nya, atau deskripsinya tidak cocok dengan cara Anda merumuskan permintaan | Periksa lencana di `/skills`: label "user-only" berarti Claude tidak akan memicunya sendiri. Lihat [skill invocation](/docs/id/skills). |116| Skill muncul di `/skills` tetapi Claude tidak pernah menginvokasinya | Skill memiliki `disable-model-invocation: true` di frontmatter-nya, atau deskripsinya tidak cocok dengan cara Anda merumuskan permintaan | Periksa lencana di `/skills`: label "user-only" berarti Claude tidak akan memicunya sendiri. Lihat [skill invocation](/docs/id/skills). |

desktop.md +12 −4

Details

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 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.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, Sonnet 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 yang lebih baru, serta Opus 4.7 dan yang lebih baru selalu menggunakan adaptive reasoning dan tidak memiliki mode anggaran tetap.

741 741 

742<h4 id="local-sessions-on-managed-devices">742<h4 id="local-sessions-on-managed-devices">

743 Local sessions on managed devices743 Local sessions on managed devices


932 Autentikasi dan SSO932 Autentikasi dan SSO

933</h3>933</h3>

934 934 

935Organisasi enterprise dapat memerlukan SSO untuk semua pengguna. Lihat [authentication](/docs/id/authentication) untuk detail tingkat rencana dan [Setting up SSO](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso) untuk konfigurasi SAML; setup OIDC tercakup dalam [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide).935Organisasi Team dan Enterprise dapat memerlukan SSO untuk semua pengguna. Lihat [authentication](/docs/id/authentication) untuk detail tingkat rencana dan [Setting up SSO](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso) untuk konfigurasi SAML; setup OIDC tercakup dalam [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide).

936 936 

937<h3 id="data-handling">937<h3 id="data-handling">

938 Penanganan data938 Penanganan data


961 961 

962Untuk memindahkan sesi CLI ke Desktop, jalankan `/desktop` di terminal. Claude menyimpan sesi Anda dan membukanya di aplikasi desktop, kemudian keluar dari CLI. Perintah ini tersedia di macOS dan Windows x64 ketika Anda masuk dengan langganan Claude. Perintah ini tidak tersedia dengan autentikasi kunci API atau di Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.962Untuk memindahkan sesi CLI ke Desktop, jalankan `/desktop` di terminal. Claude menyimpan sesi Anda dan membukanya di aplikasi desktop, kemudian keluar dari CLI. Perintah ini tersedia di macOS dan Windows x64 ketika Anda masuk dengan langganan Claude. Perintah ini tidak tersedia dengan autentikasi kunci API atau di Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.

963 963 

964Untuk mengambil sesi CLI dari dalam Desktop, ketik `/resume` di kotak prompt. Desktop menampilkan daftar sesi yang Anda mulai dari CLI, dan Anda dapat mencarinya berdasarkan judul, folder, atau cabang serta melihat pratinjau di mana masing-masing sesi berhenti. Pilih sesi dan sesi akan berlanjut di aplikasi dengan percakapan dan konteks lengkapnya.964Anda juga dapat mengambil sesi CLI dari dalam Desktop dengan `/resume`. Perintah ini tersedia di sesi lokal, bukan di SSH, WSL, atau sesi cloud.

965 

966Untuk melanjutkan sesi terminal di Desktop:

967 

9681. Tutup sesi di terminal.

9692. Di kotak prompt Desktop, ketik `/resume`. Desktop menampilkan daftar sesi yang Anda mulai dari CLI di komputer ini. Cari berdasarkan judul, folder, atau cabang, dan pratinjau di mana masing-masing sesi berhenti.

9703. Pilih sesi. Sesi akan berlanjut di aplikasi dengan percakapan dan konteks lengkapnya.

971 

972Desktop melanjutkan sesi yang sama daripada salinan, jadi `claude --resume` di terminal masih menemukannya setelahnya.

965 973 

966<Tip>974<Tip>

967 Kapan menggunakan Desktop vs CLI: gunakan Desktop ketika Anda ingin mengelola sesi paralel di satu jendela, mengatur pane berdampingan, atau meninjau perubahan secara visual. Gunakan CLI ketika Anda memerlukan scripting, otomasi, atau lebih suka alur kerja terminal.975 Kapan menggunakan Desktop vs CLI: gunakan Desktop ketika Anda ingin mengelola sesi paralel di satu jendela, mengatur pane berdampingan, atau meninjau perubahan secara visual. Gunakan CLI ketika Anda memerlukan scripting, otomasi, atau lebih suka alur kerja terminal.

Details

23* Claude Desktop v1.24012.0 atau lebih baru23* Claude Desktop v1.24012.0 atau lebih baru

24* Mac, karena Apple iOS Simulator hanya berjalan di macOS24* Mac, karena Apple iOS Simulator hanya berjalan di macOS

25* [Xcode](https://developer.apple.com/xcode/) dengan platform iOS terinstal, yang menyediakan perangkat simulator. Jika Xcode belum menampilkan simulator, lihat [Pane simulator mengatakan tidak ada simulator yang ditemukan](#the-simulator-pane-says-no-simulators-were-found)25* [Xcode](https://developer.apple.com/xcode/) dengan platform iOS terinstal, yang menyediakan perangkat simulator. Jika Xcode belum menampilkan simulator, lihat [Pane simulator mengatakan tidak ada simulator yang ditemukan](#the-simulator-pane-says-no-simulators-were-found)

26 * Gunakan Xcode 26.x. Pane belum bekerja dengan Xcode 27, yang menggantikan aplikasi Simulator dengan Device Hub. Jika `xcode-select` menunjuk ke Xcode 27 di Mac Anda, lihat [Pane simulator gagal dengan Xcode 27](#the-simulator-pane-fails-with-xcode-27)26 * Xcode 26.x atau Xcode 27 direkomendasikan, dan pane bekerja dengan keduanya. Jika Anda memiliki lebih dari satu Xcode terinstal, lihat [Pilih Xcode mana yang digunakan pane simulator](#choose-which-xcode-the-simulator-pane-uses)

27 27 

28<Note>28<Note>

29 Di halaman ini, "perangkat" mengacu pada iPhone atau iPad yang disimulasikan, salah satu dari perangkat simulator yang sama yang Anda kelola di Xcode di bawah **Window → Devices and Simulators**, bukan perangkat keras fisik.29 Di halaman ini, "perangkat" mengacu pada iPhone atau iPad yang disimulasikan, salah satu dari perangkat simulator yang sama yang Anda kelola di Xcode di bawah **Window → Devices and Simulators**, bukan perangkat keras fisik.


31 31 

32Pane simulator tersedia hanya dalam sesi lokal. Dalam sesi [cloud](/docs/id/desktop#run-long-running-tasks-in-the-cloud) dan [SSH](/docs/id/desktop#ssh-sessions), Claude berjalan di mesin yang tidak dapat menjangkau simulator di Mac Anda.32Pane simulator tersedia hanya dalam sesi lokal. Dalam sesi [cloud](/docs/id/desktop#run-long-running-tasks-in-the-cloud) dan [SSH](/docs/id/desktop#ssh-sessions), Claude berjalan di mesin yang tidak dapat menjangkau simulator di Mac Anda.

33 33 

34<h3 id="choose-which-xcode-the-simulator-pane-uses">

35 Pilih Xcode mana yang digunakan pane simulator

36</h3>

37 

38Jika Anda memiliki lebih dari satu Xcode terinstal, seperti Xcode 26.x bersama Xcode 27, pane menggunakan yang mana pun yang ditunjuk oleh `xcode-select`. Untuk menggunakan instalasi yang berbeda, pilih berdasarkan jalurnya.

39 

40Misalnya, jika Xcode yang Anda inginkan terinstal sebagai `/Applications/Xcode-26.4.app`, jalankan ini di Terminal:

41 

42```bash theme={null}

43sudo xcode-select -s /Applications/Xcode-26.4.app

44```

45 

46Kemudian tutup dan buka kembali Claude Desktop sehingga pane menggunakan Xcode yang baru dipilih.

47 

48Untuk memeriksa instalasi mana yang dipilih, jalankan `xcode-select -p`. Ini mencetak folder Developer instalasi yang dipilih, seperti `/Applications/Xcode-26.4.app/Contents/Developer`.

49 

34<h2 id="run-your-app-in-the-simulator">50<h2 id="run-your-app-in-the-simulator">

35 Jalankan aplikasi Anda di simulator51 Jalankan aplikasi Anda di simulator

36</h2>52</h2>


59 75 

60Pane simulator menampilkan perangkat mana pun tempat aplikasi benar-benar diluncurkan. Untuk menguji pada perangkat tertentu, sebutkan perangkat itu dalam permintaan Anda, misalnya "jalankan di simulator iPhone SE", dan Claude menargetkan perangkat itu ketika membangun dan meluncurkan.76Pane simulator menampilkan perangkat mana pun tempat aplikasi benar-benar diluncurkan. Untuk menguji pada perangkat tertentu, sebutkan perangkat itu dalam permintaan Anda, misalnya "jalankan di simulator iPhone SE", dan Claude menargetkan perangkat itu ketika membangun dan meluncurkan.

61 77 

62Perangkat yang Claude boot juga muncul di aplikasi Simulator Apple, dan Claude dapat memasang aplikasi di perangkat yang sudah Anda boot.78Perangkat yang Claude boot juga muncul di aplikasi Simulator Apple, atau di Device Hub pada Xcode 27. Claude dapat memasang aplikasi di perangkat yang sudah Anda boot.

63 79 

64Anda juga dapat membuka pane simulator sendiri. Setelah sesi memiliki simulator yang terpasang atau telah mengedit file Swift, menu **Views** di toolbar sesi menampilkan entri **iOS Simulator**. Jika pane belum menampilkan perangkat, klik **Attach simulator**, atau pilih perangkat tertentu dari menu perangkat di sebelahnya; memilih perangkat yang dalam keadaan mati akan mem-boot-nya. Jika Xcode atau simulator-nya hilang, pane menampilkan langkah-langkah setup sebagai gantinya dan mencentangnya saat Anda menyelesaikannya.80Anda juga dapat membuka pane simulator sendiri. Setelah sesi memiliki simulator yang terpasang atau telah mengedit file Swift, menu **Views** di toolbar sesi menampilkan entri **iOS Simulator**. Jika pane belum menampilkan perangkat, klik **Attach simulator**, atau pilih perangkat tertentu dari menu perangkat di sebelahnya; memilih perangkat yang dalam keadaan mati akan mem-boot-nya. Jika Xcode atau simulator-nya hilang, pane menampilkan langkah-langkah setup sebagai gantinya dan mencentangnya saat Anda menyelesaikannya.

65 81 


86 102 

87Setiap perangkat milik sesi yang meluncurkannya, jadi [parallel sessions](/docs/id/desktop#work-in-parallel-with-sessions) tidak berbagi perangkat: apa yang Anda lihat di pane sesi satu mencerminkan pekerjaan sesi itu, bukan sesi lain. Beralih sesi di sidebar beralih tampilan simulator bersama percakapan, dan beralih kembali melanjutkan perangkat yang sama di mana ia tertinggal. Jika Claude bekerja dengan lebih dari satu perangkat, masing-masing membuka pane-nya sendiri, hingga 4 per sesi.103Setiap perangkat milik sesi yang meluncurkannya, jadi [parallel sessions](/docs/id/desktop#work-in-parallel-with-sessions) tidak berbagi perangkat: apa yang Anda lihat di pane sesi satu mencerminkan pekerjaan sesi itu, bukan sesi lain. Beralih sesi di sidebar beralih tampilan simulator bersama percakapan, dan beralih kembali melanjutkan perangkat yang sama di mana ia tertinggal. Jika Claude bekerja dengan lebih dari satu perangkat, masing-masing membuka pane-nya sendiri, hingga 4 per sesi.

88 104 

89Claude Code Desktop mematikan simulator yang di-boot-nya sendiri setelah tidak lagi digunakan: ketika Anda keluar dari aplikasi, ketika Anda mengarsipkan sesi, atau 10 menit setelah Anda melepas perangkat dari pane-nya. Perangkat yang Anda boot sendiri, baik dari pane atau di aplikasi Simulator Apple, tidak pernah dimatikan secara otomatis. Untuk mematikan perangkat yang terpasang segera, gunakan tombol shutdown di pane.105Claude Code Desktop mematikan simulator yang di-boot-nya sendiri setelah tidak lagi digunakan: ketika Anda keluar dari aplikasi, ketika Anda mengarsipkan sesi, atau 10 menit setelah Anda melepas perangkat dari pane-nya. Perangkat yang Anda boot di luar Claude Code Desktop, seperti di aplikasi Simulator Apple atau di Device Hub, tidak pernah dimatikan secara otomatis. Untuk mematikan perangkat yang terpasang segera, gunakan tombol shutdown di pane.

90 106 

91<h2 id="grant-claude-access-to-a-device">107<h2 id="grant-claude-access-to-a-device">

92 Berikan Claude akses ke perangkat108 Berikan Claude akses ke perangkat


141Claude mungkin tidak mengenali bahwa Anda ingin menjalankan atau menguji aplikasi, atau alat simulator mungkin hilang. Periksa hal berikut:157Claude mungkin tidak mengenali bahwa Anda ingin menjalankan atau menguji aplikasi, atau alat simulator mungkin hilang. Periksa hal berikut:

142 158 

143* Nyatakan tujuan secara eksplisit, misalnya "jalankan aplikasi di iOS Simulator dan ketuk melalui alur pendaftaran".159* Nyatakan tujuan secara eksplisit, misalnya "jalankan aplikasi di iOS Simulator dan ketuk melalui alur pendaftaran".

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

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

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

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


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

151</h3>167</h3>

152 168 

153Jika `xcode-select` menunjuk ke Xcode 27, pane dapat melaporkan tidak ada simulator bahkan meskipun perangkat ada; lihat [Pane simulator gagal dengan Xcode 27](#the-simulator-pane-fails-with-xcode-27). Jika tidak, Xcode terinstal tetapi tidak memiliki simulator iOS untuk dicantumkan. Pane simulator menampilkan langkah-langkah setup untuk diikuti dan mencentangnya saat masing-masing selesai. Untuk memasang bagian yang hilang secara manual, unduh runtime simulator iOS dari pengaturan Xcode, atau jalankan `xcodebuild -downloadPlatform iOS`.169Xcode terinstal tetapi tidak memiliki simulator iOS untuk dicantumkan. Pane simulator menampilkan langkah-langkah setup untuk diikuti dan mencentangnya saat masing-masing selesai. Untuk memasang bagian yang hilang secara manual, unduh runtime simulator iOS dari pengaturan Xcode, atau jalankan `xcodebuild -downloadPlatform iOS`.

154 

155<h3 id="the-simulator-pane-fails-with-xcode-27">

156 Pane simulator gagal dengan Xcode 27

157</h3>

158 

159Pane belum bekerja dengan Xcode 27, yang menggantikan aplikasi Simulator dengan Device Hub. Dengan Xcode 27 dipilih, melampirkan perangkat gagal, atau pane melaporkan bahwa tidak ada simulator yang ditemukan meskipun perangkat ada.

160 

161Pane menggunakan Xcode apa pun yang `xcode-select` tunjuk. Jika Xcode 27 adalah satu-satunya instalasi Anda, instal Xcode 26.x bersama terlebih dahulu. Kemudian pilih instalasi 26.x berdasarkan jalurnya. Misalnya, jika diinstal sebagai `/Applications/Xcode-26.4.app`:

162 

163```bash theme={null}

164sudo xcode-select -s /Applications/Xcode-26.4.app

165```

166 

167Jalankan `xcode-select -p` untuk memeriksa instalasi mana yang dipilih.

168 170 

169<h2 id="see-also">171<h2 id="see-also">

170 Lihat juga172 Lihat juga

Details

158* Semua dependensi yang hilang menampilkan `not installable` dengan akhiran `:amd64` atau `:arm64`: Anda mengunduh `.deb` untuk arsitektur yang berbeda dari mesin Anda. Jalankan `dpkg --print-architecture` dan unduh `.deb` yang cocok, atau [install dari repositori apt](#install), yang memilih paket untuk arsitektur Anda.158* Semua dependensi yang hilang menampilkan `not installable` dengan akhiran `:amd64` atau `:arm64`: Anda mengunduh `.deb` untuk arsitektur yang berbeda dari mesin Anda. Jalankan `dpkg --print-architecture` dan unduh `.deb` yang cocok, atau [install dari repositori apt](#install), yang memilih paket untuk arsitektur Anda.

159 159 

160<h3 id="running-as-root-without-no-sandbox-is-not-supported">160<h3 id="running-as-root-without-no-sandbox-is-not-supported">

161 Menjalankan sebagai root tanpa --no-sandbox tidak didukung161 Menjalankan sebagai root tanpa `--no-sandbox` tidak didukung

162</h3>162</h3>

163 163 

164Jika `claude-desktop` keluar dengan pesan ini, Anda meluncurkannya sebagai root. Masuk sebagai pengguna biasa dan luncurkan dari sana.164Jika `claude-desktop` keluar dengan pesan ini, Anda meluncurkannya sebagai root. Masuk sebagai pengguna biasa dan luncurkan dari sana.

Details

4 4 

5# Memulai dengan aplikasi desktop5# Memulai dengan aplikasi desktop

6 6 

7> Instal Claude Code di desktop dan mulai sesi coding pertama Anda7> Instal aplikasi desktop Claude, buka tab Code, dan mulai sesi Claude Code pertama Anda di folder proyek di komputer Anda.

8 8 

9Aplikasi desktop memberi Anda Claude Code dengan antarmuka grafis yang dirancang untuk menjalankan beberapa sesi berdampingan: sidebar untuk mengelola pekerjaan paralel, tata letak drag-and-drop dengan terminal terintegrasi dan editor file, tinjauan diff visual, pratinjau aplikasi langsung, pemantauan GitHub PR dengan penggabungan otomatis, dan tugas terjadwal. Tidak perlu terminal.9Aplikasi desktop memberi Anda Claude Code dengan antarmuka grafis, sehingga Anda dapat meminta Claude untuk bekerja pada kode di folder di komputer Anda dan meninjau perubahannya tanpa menggunakan terminal. Halaman ini memandu Anda melalui instalasi aplikasi dan memulai sesi pertama Anda di tab **Code**. Claude Code memerlukan [langganan Pro, Max, Team, atau Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).

10 10 

11<CardGroup cols={3}>11<CardGroup cols={3}>

12 <Card title="Unduh untuk macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="Unduh untuk macOS" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">


25Untuk Windows ARM64, unduh [penginstal ARM64](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). Di Linux, instal dengan apt; lihat [Claude Desktop di Linux](/docs/id/desktop-linux).25Untuk Windows ARM64, unduh [penginstal ARM64](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). Di Linux, instal dengan apt; lihat [Claude Desktop di Linux](/docs/id/desktop-linux).

26 26 

27<Note>27<Note>

28 Claude Code memerlukan [langganan Pro, Max, Team, atau Enterprise](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing).28 Kasus-kasus ini tercakup di halaman lain:

29</Note>

30 29 

31Halaman ini memandu Anda melalui instalasi aplikasi dan memulai sesi pertama Anda. Jika Anda sudah siap, lihat [Gunakan Claude Code Desktop](/docs/id/desktop) untuk referensi lengkap.30 * **Sudah siap**: lihat [Gunakan Claude Code Desktop](/docs/id/desktop) untuk semua yang dapat dilakukan tab Code

31 * **Ingin `claude` di terminal Anda**: [instal CLI](/docs/id/quickstart) secara terpisah

32</Note>

32 33 

33Aplikasi desktop memiliki tiga tab:34Aplikasi desktop memiliki tiga tab:

34 35 

35* **Chat**: Percakapan umum tanpa akses file, mirip dengan claude.ai.36* **Chat**: Percakapan umum tanpa akses file, mirip dengan claude.ai.

36* **Cowork**: Agen latar belakang otonom yang bekerja pada tugas di mesin virtual bersandbox dengan lingkungannya sendiri, berjalan secara independen saat Anda melakukan pekerjaan lain. Sesi Cowork on-device menjalankan VM di komputer Anda; sesi Cowork jarak jauh berjalan di VM yang dikelola Anthropic sebagai gantinya.37* **Cowork**: Agen latar belakang otonom yang bekerja pada tugas secara independen saat Anda melakukan pekerjaan lain.

37* **Code**: Asisten coding interaktif dengan akses langsung ke file lokal Anda. Tergantung pada mode izin, Anda menyetujui setiap perubahan saat Claude mengusulkannya atau meninjau perubahan setelah Claude membuatnya.38* **Code**: Asisten coding interaktif dengan akses langsung ke file lokal Anda. Tergantung pada mode izin, Anda menyetujui setiap perubahan saat Claude mengusulkannya atau meninjau perubahan setelah Claude membuatnya.

38 39 

39Chat dan Cowork tercakup dalam [Claude Help Center](https://support.claude.com/); menginstal dan menerapkan aplikasi desktop tercakup dalam [artikel dukungan Claude Desktop](https://support.claude.com/en/collections/16163169-claude-desktop). Halaman ini berfokus pada tab **Code**.40Chat dan Cowork tercakup dalam [Claude Help Center](https://support.claude.com/); menginstal dan menerapkan aplikasi desktop tercakup dalam [artikel dukungan Claude Desktop](https://support.claude.com/en/collections/16163169-claude-desktop). Halaman ini berfokus pada tab **Code**.


52 </Step>53 </Step>

53</Steps>54</Steps>

54 55 

55Aplikasi desktop menyertakan Claude Code. Anda tidak perlu menginstal Node.js atau CLI secara terpisah. Untuk menggunakan `claude` dari terminal, instal CLI secara terpisah. Lihat [Memulai dengan CLI](/docs/id/quickstart).56Aplikasi desktop menyertakan Claude Code, jadi Anda tidak perlu menginstal Node.js atau CLI untuk menggunakan tab Code.

56 57 

57<h2 id="start-your-first-session">58<h2 id="start-your-first-session">

58 Mulai sesi pertama Anda59 Mulai sesi pertama Anda

Details

61 61 

62* **Manual**: tidak ada jadwal, hanya berjalan saat Anda mengklik **Run now**. Berguna untuk menyimpan prompt yang Anda picu sesuai permintaan62* **Manual**: tidak ada jadwal, hanya berjalan saat Anda mengklik **Run now**. Berguna untuk menyimpan prompt yang Anda picu sesuai permintaan

63* **Hourly**: berjalan setiap jam63* **Hourly**: berjalan setiap jam

64* **Daily**: menampilkan pemilih waktu, default ke 9:00 AM waktu lokal64* **Daily**: berjalan setiap hari pada waktu lokal yang Anda pilih

65* **Weekdays**: sama dengan Daily tetapi melewati Sabtu dan Minggu65* **Weekdays**: sama dengan Daily tetapi melewati Sabtu dan Minggu

66* **Weekly**: menampilkan pemilih waktu dan pemilih hari66* **Weekly**: menampilkan pemilih waktu dan pemilih hari

67 67 

env-vars.md +29 −25

Details

114 114 

115Dalam file pengaturan Anda dapat mengatur variabel tetapi Anda tidak dapat menghapusnya. Untuk mengganti variabel yang tidak dapat Anda batalkan, seperti `CLAUDE_CODE_USE_VERTEX` yang sudah usang yang diekspor oleh profil shell yang tidak Anda kontrol, atur ke string kosong dalam blok `env`: `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code memperlakukan nilai kosong sebagai tidak diatur untuk pemilihan penyedia. Subproses masih mewarisi nilai kosong.115Dalam file pengaturan Anda dapat mengatur variabel tetapi Anda tidak dapat menghapusnya. Untuk mengganti variabel yang tidak dapat Anda batalkan, seperti `CLAUDE_CODE_USE_VERTEX` yang sudah usang yang diekspor oleh profil shell yang tidak Anda kontrol, atur ke string kosong dalam blok `env`: `"CLAUDE_CODE_USE_VERTEX": ""`. Claude Code memperlakukan nilai kosong sebagai tidak diatur untuk pemilihan penyedia. Subproses masih mewarisi nilai kosong.

116 116 

117Antara file pengaturan, nilai `env` mengikuti [urutan prioritas pengaturan](/docs/id/settings#settings-precedence), jadi entri pengaturan yang dikelola mengganti variabel yang sama dalam pengaturan pengguna atau proyek.117Antara file pengaturan, nilai `env` mengikuti [urutan prioritas pengaturan](/docs/id/settings#settings-precedence), jadi entri pengaturan yang dikelola mengganti variabel yang sama dalam pengaturan pengguna atau proyek. Pengaturan proyek dan lokal tidak dapat mengatur beberapa variabel, seperti `CLAUDE_CONFIG_DIR` dan variabel pengekspor OpenTelemetry. [Variabel yang Claude Code abaikan dalam `env`](/docs/id/settings-reference#variables-claude-code-ignores-in-env) mencantumnya, bersama dengan nilai off OpenTelemetry yang masih berlaku.

118 118 

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

120 120 


237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Dihapus di v2.1.186 dan sekarang tidak beroperasi. Sebelumnya menetapkan timeout terpisah untuk fase koneksi, TLS, dan header respons dari permintaan API streaming. Gunakan `API_TIMEOUT_MS` untuk timeout per-permintaan. Untuk fase header respons dari permintaan streaming, lihat `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |237| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Dihapus di v2.1.186 dan sekarang tidak beroperasi. Sebelumnya menetapkan timeout terpisah untuk fase koneksi, TLS, dan header respons dari permintaan API streaming. Gunakan `API_TIMEOUT_MS` untuk timeout per-permintaan. Untuk fase header respons dari permintaan streaming, lihat `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

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

239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Tingkat log minimum yang ditulis ke file log debug. Nilai: `verbose`, `debug` (default), `info`, `warn`, `error`. Atur ke `verbose` untuk menyertakan diagnostik volume tinggi seperti output perintah status line penuh, atau naikkan ke `error` untuk mengurangi kebisingan |239| `CLAUDE_CODE_DEBUG_LOG_LEVEL` | Tingkat log minimum yang ditulis ke file log debug. Nilai: `verbose`, `debug` (default), `info`, `warn`, `error`. Atur ke `verbose` untuk menyertakan diagnostik volume tinggi seperti output perintah status line penuh, atau naikkan ke `error` untuk mengurangi kebisingan |

240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Atur ke `1` untuk menonaktifkan dukungan [jendela konteks 1M](/docs/id/model-config#extended-context). Ketika diatur, varian model 1M tidak tersedia di pemilih model, dan Claude Code menahan sesi di model dengan jendela 1M asli, seperti [Sonnet 5](/docs/id/model-config#sonnet-5-context-window) dan model Fable, ke jendela 200K; lihat [Konteks Diperpanjang](/docs/id/model-config#extended-context) untuk cara tahan ditegakkan. Berguna untuk lingkungan perusahaan dengan persyaratan kepatuhan. Untuk perannya dalam mengoreksi jendela untuk ID model `[1m]` yang tidak dikenali, lihat [Koreksi jendela untuk ID model gateway atau khusus](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |240| `CLAUDE_CODE_DISABLE_1M_CONTEXT` | Atur ke `1` untuk menonaktifkan dukungan [jendela konteks 1M](/docs/id/model-config#extended-context). Ketika diatur, varian model 1M tidak tersedia di pemilih model, dan Claude Code menahan sesi di model dengan jendela 1M asli, seperti [Sonnet 5.5](/docs/id/model-config#sonnet-5-5-and-sonnet-5-context-window) dan model Fable, ke jendela 200K; lihat [Konteks Diperpanjang](/docs/id/model-config#extended-context) untuk cara tahan ditegakkan. Berguna untuk lingkungan perusahaan dengan persyaratan kepatuhan. Untuk perannya dalam mengoreksi jendela untuk ID model `[1m]` yang tidak dikenali, lihat [Koreksi jendela untuk ID model gateway atau khusus](/docs/id/model-config#correct-the-window-for-a-gateway-or-custom-model-id) |

241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Atur ke `1` untuk menonaktifkan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) di Opus 4.6 dan Sonnet 4.6 dan kembali ke anggaran pemikiran tetap yang dikendalikan oleh `MAX_THINKING_TOKENS`. Tidak berpengaruh pada [model Fable](/docs/id/model-config#extended-thinking), Sonnet 5, atau Opus 4.7 dan lebih baru, yang selalu menggunakan penalaran adaptif |241| `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` | Atur ke `1` untuk menonaktifkan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) di Opus 4.6 dan Sonnet 4.6 dan kembali ke anggaran pemikiran tetap yang dikendalikan oleh `MAX_THINKING_TOKENS`. Tidak berpengaruh pada [model Fable](/docs/id/model-config#extended-thinking), Sonnet 5 dan lebih baru, atau Opus 4.7 dan lebih baru, yang selalu menggunakan penalaran adaptif |

242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Atur ke `1` untuk menghentikan Claude Code dari penggabungan blok `env` [pengaturan yang dikelola](/docs/id/managed-settings#precedence-within-the-managed-tier) per kunci di seluruh sumber admin, jadi hanya blok `env` sumber prioritas tertinggi yang berlaku, seperti sebelum v2.1.223. Atur di lingkungan yang meluncurkan Claude Code, karena Claude Code mengabaikan salinan yang dikirim melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.223 atau lebih baru |242| `CLAUDE_CODE_DISABLE_ADMIN_ENV_UNION` | Atur ke `1` untuk menghentikan Claude Code dari penggabungan blok `env` [pengaturan yang dikelola](/docs/id/managed-settings#precedence-within-the-managed-tier) per kunci di seluruh sumber admin, jadi hanya blok `env` sumber prioritas tertinggi yang berlaku, seperti sebelum v2.1.223. Atur di lingkungan yang meluncurkan Claude Code, karena Claude Code mengabaikan salinan yang dikirim melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.223 atau lebih baru |

243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Atur ke `1` untuk menonaktifkan [alat penasihat](/docs/id/advisor). Perintah `/advisor` menjadi tidak tersedia, `advisorModel` yang dikonfigurasi apa pun diabaikan, dan flag `--advisor` diterima tetapi tidak berpengaruh, jadi skrip yang ada yang meneruskannya terus bekerja tanpa kesalahan |243| `CLAUDE_CODE_DISABLE_ADVISOR_TOOL` | Atur ke `1` untuk menonaktifkan [alat penasihat](/docs/id/advisor). Perintah `/advisor` menjadi tidak tersedia, `advisorModel` yang dikonfigurasi apa pun diabaikan, dan flag `--advisor` diterima tetapi tidak berpengaruh, jadi skrip yang ada yang meneruskannya terus bekerja tanpa kesalahan |

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


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

256| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Atur ke `1` untuk mencegah memuat file memori CLAUDE.md apa pun ke dalam konteks, termasuk file memori pengguna, proyek, dan otomatis |256| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | Atur ke `1` untuk mencegah memuat file memori CLAUDE.md apa pun ke dalam konteks, termasuk file memori pengguna, proyek, dan otomatis |

257| `CLAUDE_CODE_DISABLE_CRON` | Atur ke `1` untuk menonaktifkan [tugas terjadwal](/docs/id/scheduled-tasks). Skill `/loop` dan alat cron menjadi tidak tersedia dan tugas yang sudah dijadwalkan apa pun berhenti diaktifkan, termasuk tugas yang sudah berjalan di tengah sesi |257| `CLAUDE_CODE_DISABLE_CRON` | Atur ke `1` untuk menonaktifkan [tugas terjadwal](/docs/id/scheduled-tasks). Skill `/loop` dan alat cron menjadi tidak tersedia dan tugas yang sudah dijadwalkan apa pun berhenti diaktifkan, termasuk tugas yang sudah berjalan di tengah sesi |

258| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | Atur ke `1` untuk menonaktifkan batas waktu pada prompt [penghapusan jalur kritis](/docs/id/permission-modes#critical-paths). Dalam mode `auto` Claude Code kemudian mengirim penghapusan ini ke pengklasifikasi sebagai gantinya, dan dalam mode `bypassPermissions` prompt menunggu jawaban Anda. Atur di lingkungan yang meluncurkan Claude Code, karena Claude Code mengabaikan salinan yang dikirim melalui blok `env` pengaturan. Memerlukan Claude Code v2.1.281 atau lebih baru |

258| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Atur ke `1` untuk menghapus header permintaan `anthropic-beta` spesifik Anthropic dan bidang skema alat beta (seperti `defer_loading` dan `eager_input_streaming`) dari permintaan API. Gunakan ini ketika gateway proxy menolak permintaan dengan kesalahan seperti "Unexpected value(s) for the `anthropic-beta` header" atau "Extra inputs are not permitted". Bidang standar (`name`, `description`, `input_schema`, `cache_control`) dipertahankan. [Pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search) dinonaktifkan dan semua alat MCP dimuat di muka, bahkan ketika Anda menetapkan `ENABLE_TOOL_SEARCH`. Di Claude Code v2.1.227 atau lebih baru, [pengaturan yang dikelola](/docs/id/managed-settings) dapat menjaga pencarian alat tetap aktif. [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencakup tempat penggantian berlaku |259| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | Atur ke `1` untuk menghapus header permintaan `anthropic-beta` spesifik Anthropic dan bidang skema alat beta (seperti `defer_loading` dan `eager_input_streaming`) dari permintaan API. Gunakan ini ketika gateway proxy menolak permintaan dengan kesalahan seperti "Unexpected value(s) for the `anthropic-beta` header" atau "Extra inputs are not permitted". Bidang standar (`name`, `description`, `input_schema`, `cache_control`) dipertahankan. [Pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search) dinonaktifkan dan semua alat MCP dimuat di muka, bahkan ketika Anda menetapkan `ENABLE_TOOL_SEARCH`. Di Claude Code v2.1.227 atau lebih baru, [pengaturan yang dikelola](/docs/id/managed-settings) dapat menjaga pencarian alat tetap aktif. [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencakup tempat penggantian berlaku |

259| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Atur ke `1` untuk menonaktifkan [subagent Explore dan Plan](/docs/id/sub-agents#built-in-subagents) bawaan. Claude mengeksplorasi dengan alat pencarian atau subagent tujuan umum sebagai gantinya, dan [mode rencana](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) membaca file secara langsung daripada meluncurkan agen Explore dan Plan. Subagent khusus bernama `Explore` atau `Plan` tidak terpengaruh. Untuk menghapus setiap jenis subagent bawaan di Agent SDK atau mode non-interaktif, gunakan `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` sebagai gantinya. Memerlukan Claude Code v2.1.198 atau lebih baru |260| `CLAUDE_CODE_DISABLE_EXPLORE_PLAN_AGENTS` | Atur ke `1` untuk menonaktifkan [subagent Explore dan Plan](/docs/id/sub-agents#built-in-subagents) bawaan. Claude mengeksplorasi dengan alat pencarian atau subagent tujuan umum sebagai gantinya, dan [mode rencana](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) membaca file secara langsung daripada meluncurkan agen Explore dan Plan. Subagent khusus bernama `Explore` atau `Plan` tidak terpengaruh. Untuk menghapus setiap jenis subagent bawaan di Agent SDK atau mode non-interaktif, gunakan `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS` sebagai gantinya. Memerlukan Claude Code v2.1.198 atau lebih baru |

260| `CLAUDE_CODE_DISABLE_FAST_MODE` | Atur ke `1` untuk menonaktifkan [mode cepat](/docs/id/fast-mode) |261| `CLAUDE_CODE_DISABLE_FAST_MODE` | Atur ke `1` untuk menonaktifkan [mode cepat](/docs/id/fast-mode) |


265| `CLAUDE_CODE_DISABLE_MOUSE` | Atur ke `1` untuk menonaktifkan pelacakan mouse dalam [rendering fullscreen](/docs/id/fullscreen). Pengguliran keyboard dengan `PgUp` dan `PgDn` masih bekerja. Gunakan ini untuk menjaga perilaku salinan-pada-pilih asli terminal Anda |266| `CLAUDE_CODE_DISABLE_MOUSE` | Atur ke `1` untuk menonaktifkan pelacakan mouse dalam [rendering fullscreen](/docs/id/fullscreen). Pengguliran keyboard dengan `PgUp` dan `PgDn` masih bekerja. Gunakan ini untuk menjaga perilaku salinan-pada-pilih asli terminal Anda |

266| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Atur ke `1` untuk menonaktifkan penanganan klik, seret, dan hover dalam [rendering fullscreen](/docs/id/fullscreen) sambil menjaga pengguliran roda mouse. Gunakan ini ketika Anda ingin pengguliran roda bekerja di dalam Claude Code tetapi tidak ingin klik memposisikan kursor, memperluas output alat, atau membuka tautan. `CLAUDE_CODE_DISABLE_MOUSE` mengambil prioritas ketika keduanya diatur. Memerlukan Claude Code v2.1.195 atau lebih baru |267| `CLAUDE_CODE_DISABLE_MOUSE_CLICKS` | Atur ke `1` untuk menonaktifkan penanganan klik, seret, dan hover dalam [rendering fullscreen](/docs/id/fullscreen) sambil menjaga pengguliran roda mouse. Gunakan ini ketika Anda ingin pengguliran roda bekerja di dalam Claude Code tetapi tidak ingin klik memposisikan kursor, memperluas output alat, atau membuka tautan. `CLAUDE_CODE_DISABLE_MOUSE` mengambil prioritas ketika keduanya diatur. Memerlukan Claude Code v2.1.195 atau lebih baru |

267| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Atur ke `1` untuk menghentikan Claude Code dari membaca ulang [sertifikat klien mTLS dan kunci](/docs/id/network-config#mtls-authentication) ketika permintaan API gagal dengan kesalahan tingkat koneksi, seperti pengaturan ulang koneksi atau kesalahan jabat tangan TLS. Dengan reload dinonaktifkan, Claude Code memuat file yang diputar hanya ketika berikutnya menerapkan pengaturan atau pada startup berikutnya. Memerlukan Claude Code v2.1.232 atau lebih baru |268| `CLAUDE_CODE_DISABLE_MTLS_RELOAD_ON_STALE_CONNECTION` | Atur ke `1` untuk menghentikan Claude Code dari membaca ulang [sertifikat klien mTLS dan kunci](/docs/id/network-config#mtls-authentication) ketika permintaan API gagal dengan kesalahan tingkat koneksi, seperti pengaturan ulang koneksi atau kesalahan jabat tangan TLS. Dengan reload dinonaktifkan, Claude Code memuat file yang diputar hanya ketika berikutnya menerapkan pengaturan atau pada startup berikutnya. Memerlukan Claude Code v2.1.232 atau lebih baru |

268| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk menonaktifkan lalu lintas jaringan yang tidak penting: pembaruan otomatis, telemetri, pelaporan kesalahan, perintah `/feedback`, [umpan balik yang ditulis Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), catatan rilis, pemeriksaan [lencana status PR dan MR](/docs/id/interactive-mode#pr-review-status), dan pemeriksaan ketersediaan seperti pemeriksaan [mode cepat](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Ini juga menghentikan [jalankan latar belakang dari sumber `command` plugin](/docs/id/plugin-marketplaces#when-claude-code-re-runs-the-command), yang merupakan perintah lokal daripada lalu lintas jaringan, karena mereka dapat memicu instalasi ketergantungan. **Menetapkannya ke `0` atau `false` masih menonaktifkan lalu lintas ini**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk mengizinkannya lagi. Juga menonaktifkan pengambilan flag fitur, yang membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Instalasi otomatis marketplace plugin resmi tidak tercakup; nonaktifkan dengan `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Tidak mempengaruhi [penemuan model gateway](/docs/id/llm-gateway-connect#add-gateway-models-to-the-model-picker), yang memiliki opt-in sendiri |269| `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk menonaktifkan lalu lintas jaringan yang tidak penting: pembaruan otomatis, telemetri, pelaporan kesalahan, perintah `/feedback`, [umpan balik yang ditulis Claude](/docs/id/tools-reference#sendfeedback-tool-behavior), catatan rilis, pemeriksaan [lencana status PR dan MR](/docs/id/interactive-mode#pr-review-status), dan pemeriksaan ketersediaan seperti pemeriksaan [mode cepat](/docs/id/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways). Ini juga menghentikan [jalankan latar belakang dari sumber `command` plugin](/docs/id/plugins/loading#when-a-command-source-re-runs), yang merupakan perintah lokal daripada lalu lintas jaringan, karena mereka dapat memicu instalasi ketergantungan. **Menetapkannya ke `0` atau `false` masih menonaktifkan lalu lintas ini**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk mengizinkannya lagi. Juga menonaktifkan pengambilan flag fitur, yang membuat [Remote Control](/docs/id/remote-control#requirements) dan [fitur lain yang memerlukan pengambilan flag fitur](#features-that-need-feature-flag-fetching) tidak tersedia. Instalasi otomatis marketplace plugin resmi tidak tercakup; nonaktifkan dengan `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL`. Tidak mempengaruhi [penemuan model gateway](/docs/id/llm-gateway-connect#add-gateway-models-to-the-model-picker), yang memiliki opt-in sendiri |

269| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Atur ke `1` untuk menonaktifkan fallback non-streaming ketika permintaan streaming gagal di tengah-tengah. Kesalahan streaming menyebar ke lapisan percobaan ulang sebagai gantinya. Berguna ketika proxy atau gateway menyebabkan fallback menghasilkan eksekusi alat duplikat |270| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | Atur ke `1` untuk menonaktifkan fallback non-streaming ketika permintaan streaming gagal di tengah-tengah. Kesalahan streaming menyebar ke lapisan percobaan ulang sebagai gantinya. Berguna ketika proxy atau gateway menyebabkan fallback menghasilkan eksekusi alat duplikat |

270| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Atur ke `1` untuk mengirim pemberitahuan desktop alat `PushNotification` bahkan saat Anda mengetik atau fokus pada terminal. Secara default alat melewati pemberitahuan desktop dan [push mobile](/docs/id/remote-control#mobile-push-notifications) ketika mendeteksi aktivitas keyboard atau fokus terminal baru-baru ini. Variabel ini hanya menonaktifkan pemeriksaan lokal itu, jadi server masih dapat menekan push mobile ketika mendeteksi bahwa Anda aktif. Memerlukan Claude Code v2.1.193 atau lebih baru |271| `CLAUDE_CODE_DISABLE_NOTIFICATION_PRESENCE_CHECK` | Atur ke `1` untuk mengirim pemberitahuan desktop alat `PushNotification` bahkan saat Anda mengetik atau fokus pada terminal. Secara default alat melewati pemberitahuan desktop dan [push mobile](/docs/id/remote-control#mobile-push-notifications) ketika mendeteksi aktivitas keyboard atau fokus terminal baru-baru ini. Variabel ini hanya menonaktifkan pemeriksaan lokal itu, jadi server masih dapat menekan push mobile ketika mendeteksi bahwa Anda aktif. Memerlukan Claude Code v2.1.193 atau lebih baru |

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_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 |273| `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 |274| `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 |

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

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

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) |277| `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 Opus 5.5 atau 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 |278| `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 Opus 5.5, Sonnet 5.5, atau 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 |279| `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 |280| `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 |

278| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Atur ke `1` untuk memulai perintah [alat PowerShell](/docs/id/tools-reference#powershell-tool) di Windows secara langsung daripada melalui peluncur `cmd.exe`. Secara default, peluncur memungkinkan perintah PowerShell [berjalan di latar belakang](/docs/id/tools-reference#background-commands) [membawa ke proses sesi berikutnya](/docs/id/agent-view#the-supervisor-process), seperti ketika Anda [menempatkan sesi di latar belakang](/docs/id/agent-view#from-inside-a-session). Jika Anda menetapkan variabel, perintah PowerShell yang dilatarbelakangkan berhenti ketika proses sesi keluar. Perintah Bash tidak terpengaruh. Memerlukan Claude Code v2.1.269 atau lebih baru |281| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Atur ke `1` untuk memulai perintah [alat PowerShell](/docs/id/tools-reference#powershell-tool) di Windows secara langsung daripada melalui peluncur `cmd.exe`. Secara default, peluncur memungkinkan perintah PowerShell [berjalan di latar belakang](/docs/id/tools-reference#background-commands) [membawa ke proses sesi berikutnya](/docs/id/agent-view#the-supervisor-process), seperti ketika Anda [menempatkan sesi di latar belakang](/docs/id/agent-view#from-inside-a-session). Jika Anda menetapkan variabel, perintah PowerShell yang dilatarbelakangkan berhenti ketika proses sesi keluar. Perintah Bash tidak terpengaruh. Memerlukan Claude Code v2.1.269 atau lebih baru |


287| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Dihapus di v2.1.142, ketika default [mode cepat](/docs/id/fast-mode) pindah dari Opus 4.6 ke Opus 4.7 |290| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | Dihapus di v2.1.142, ketika default [mode cepat](/docs/id/fast-mode) pindah dari Opus 4.6 ke Opus 4.7 |

288| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Atur ke `false` untuk menonaktifkan saran prompt, prediksi abu-abu yang muncul di input prompt Anda. Mengambil prioritas di atas pengaturan [`promptSuggestionEnabled`](/docs/id/settings-reference#promptsuggestionenabled), yang merupakan apa yang toggle **Saran prompt** di `/config` tulis. Claude Code juga [menjeda saran saat akun Anda mendekati atau mencapai batas penggunaan](/docs/id/interactive-mode#when-claude-code-skips-suggestions). Atur ke `true` untuk menyimpannya aktif sampai Anda mencapai batas. Memerlukan Claude Code v2.1.238 atau lebih baru. Lihat [Saran prompt](/docs/id/interactive-mode#prompt-suggestions) |291| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Atur ke `false` untuk menonaktifkan saran prompt, prediksi abu-abu yang muncul di input prompt Anda. Mengambil prioritas di atas pengaturan [`promptSuggestionEnabled`](/docs/id/settings-reference#promptsuggestionenabled), yang merupakan apa yang toggle **Saran prompt** di `/config` tulis. Claude Code juga [menjeda saran saat akun Anda mendekati atau mencapai batas penggunaan](/docs/id/interactive-mode#when-claude-code-skips-suggestions). Atur ke `true` untuk menyimpannya aktif sampai Anda mencapai batas. Memerlukan Claude Code v2.1.238 atau lebih baru. Lihat [Saran prompt](/docs/id/interactive-mode#prompt-suggestions) |

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

290| `CLAUDE_CODE_ENABLE_TELEMETRY` | Atur ke `1` untuk mengaktifkan pengumpulan data OpenTelemetry untuk metrik dan logging. Diperlukan sebelum mengonfigurasi pengekspor OTel. Lihat [Monitoring](/docs/id/monitoring-usage) |293| `CLAUDE_CODE_ENABLE_TELEMETRY` | Atur ke `1` untuk mengaktifkan pengumpulan data OpenTelemetry untuk metrik dan logging. Diperlukan sebelum mengonfigurasi pengekspor OTel. 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) |

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

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

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


341| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Atur ke `1` untuk membiarkan Claude Code menjalankan perintah upgrade manajer paket Anda di latar belakang ketika versi baru tersedia. Berlaku untuk instalasi Homebrew dan WinGet. Manajer paket lain terus menampilkan perintah upgrade tanpa menjalankannya. Lihat [Pembaruan otomatis](/docs/id/setup#auto-updates) |344| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | Atur ke `1` untuk membiarkan Claude Code menjalankan perintah upgrade manajer paket Anda di latar belakang ketika versi baru tersedia. Berlaku untuk instalasi Homebrew dan WinGet. Manajer paket lain terus menampilkan perintah upgrade tanpa menjalankannya. Lihat [Pembaruan otomatis](/docs/id/setup#auto-updates) |

342| `CLAUDE_CODE_PERFORCE_MODE` | Atur ke `1` untuk mengaktifkan perlindungan penulisan yang menyadari Perforce. Ketika diatur, Edit, Write, dan NotebookEdit gagal dengan petunjuk `p4 edit <file>` jika file target tidak memiliki bit pemilik-tulis, yang Perforce hapus pada file yang disinkronkan sampai `p4 edit` membukanya. Ini mencegah Claude Code dari melewati pelacakan perubahan Perforce |345| `CLAUDE_CODE_PERFORCE_MODE` | Atur ke `1` untuk mengaktifkan perlindungan penulisan yang menyadari Perforce. Ketika diatur, Edit, Write, dan NotebookEdit gagal dengan petunjuk `p4 edit <file>` jika file target tidak memiliki bit pemilik-tulis, yang Perforce hapus pada file yang disinkronkan sampai `p4 edit` membukanya. Ini mencegah Claude Code dari melewati pelacakan perubahan Perforce |

343| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Ganti direktori root plugin. Meskipun namanya, ini menetapkan direktori induk, bukan cache itu sendiri: marketplace dan cache plugin hidup di subdirektori di bawah path ini. Default ke `~/.claude/plugins` |346| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Ganti direktori root plugin. Meskipun namanya, ini menetapkan direktori induk, bukan cache itu sendiri: marketplace dan cache plugin hidup di subdirektori di bawah path ini. Default ke `~/.claude/plugins` |

344| `CLAUDE_CODE_PLUGIN_DIRS` | Direktori plugin untuk dimuat untuk sesi, masing-masing dimuat dengan cara flag [`--plugin-dir`](/docs/id/plugins#test-your-plugins-locally) memuat. Pisahkan beberapa path dengan `:` di Unix atau `;` di Windows. Berikan setiap path sebagai path absolut atau mulai dengan `~`, karena Claude Code melewati path relatif. Memerlukan Claude Code v2.1.280 atau lebih baru |347| `CLAUDE_CODE_PLUGIN_DIRS` | Direktori plugin untuk dimuat untuk sesi, masing-masing dimuat dengan cara flag [`--plugin-dir`](/docs/id/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) memuat. Pisahkan beberapa path dengan `:` di Unix atau `;` di Windows. Berikan setiap path sebagai path absolut atau mulai dengan `~`, karena Claude Code melewati path relatif. Memerlukan Claude Code v2.1.280 atau lebih baru. Lihat [Muat plugin untuk satu sesi](/docs/id/plugins/create#load-a-directory-or-archive-for-one-session) |

345| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout dalam milidetik untuk operasi git saat memasang atau memperbarui plugin (default: 120000). Naikkan nilai ini untuk repositori besar atau koneksi jaringan lambat. Lihat [Operasi Git timeout](/docs/id/plugin-marketplaces#git-operations-time-out) |348| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout dalam milidetik untuk kloning atau penyegaran marketplace plugin (default: 120000). Naikkan nilai ini untuk repositori besar atau koneksi jaringan lambat. Lihat [Git clone timed out](/docs/id/plugins/troubleshooting#git-clone-timed-out-after-120s) |

346| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Atur ke `1` untuk melewati upaya re-clone dan terus menggunakan checkout marketplace yang ada ketika penyegaran marketplace tidak dapat menjangkau atau mengautentikasi ke remote. Berguna di lingkungan offline atau airgapped di mana re-cloning akan gagal dengan cara yang sama. Lihat [Pembaruan Marketplace gagal di lingkungan offline](/docs/id/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |349| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Atur ke `1` untuk melewati upaya re-clone dan terus menggunakan checkout marketplace yang ada ketika penyegaran marketplace tidak dapat menjangkau atau mengautentikasi ke remote. Berguna di lingkungan offline atau airgapped di mana re-cloning akan gagal dengan cara yang sama. Lihat [Pembaruan Marketplace gagal di lingkungan offline](/docs/id/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

347| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Atur ke `1` untuk mengkloning shorthand sumber GitHub `owner/repo` melalui HTTPS daripada SSH. Berlaku untuk instalasi plugin dan update, dan untuk `/plugin marketplace add` dan `update`. Berguna di runner CI, container, atau lingkungan apa pun tanpa kunci SSH yang dikonfigurasi untuk `github.com` |350| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Atur ke `1` untuk mengkloning shorthand sumber GitHub `owner/repo` melalui HTTPS daripada SSH. Berlaku untuk instalasi plugin dan update, dan untuk `/plugin marketplace add` dan `update`. Berguna di runner CI, container, atau lingkungan apa pun tanpa kunci SSH yang dikonfigurasi untuk `github.com` |

348| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Path ke satu atau lebih direktori seed plugin baca-saja, dipisahkan oleh `:` di Unix atau `;` di Windows. Gunakan ini untuk membundel direktori plugin yang sudah diisi sebelumnya ke dalam gambar container. Claude Code mendaftarkan marketplace dari direktori ini saat startup dan menggunakan plugin yang di-cache sebelumnya tanpa re-cloning. Lihat [Pre-populate plugins untuk container](/docs/id/plugin-marketplaces#pre-populate-plugins-for-containers) |351| `CLAUDE_CODE_PLUGIN_SEED_DIR` | Path ke satu atau lebih direktori seed plugin baca-saja, dipisahkan oleh `:` di Unix atau `;` di Windows. Gunakan ini untuk membundel direktori plugin yang sudah diisi sebelumnya ke dalam gambar container. Claude Code mendaftarkan marketplace dari direktori ini saat startup dan menggunakan plugin yang di-cache sebelumnya tanpa re-cloning. Lihat [Pre-populate plugins untuk container](/docs/id/plugins/org#seed-containers-and-ci) |

349| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Atur ke `1` untuk menghentikan Claude Code dari meneruskan `-ExecutionPolicy Bypass` saat memunculkan PowerShell untuk panggilan alat, hook, dan perintah status line, dan menghormati kebijakan eksekusi efektif mesin sebagai gantinya. Secara default Claude Code melewati kebijakan eksekusi di ruang lingkup proses sehingga skrip `.ps1` dan impor modul bekerja pada instalasi Windows default-Restricted. Bypass ruang lingkup proses tidak pernah mengganti Kebijakan Grup `MachinePolicy` atau `UserPolicy` terlepas dari pengaturan ini |352| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Atur ke `1` untuk menghentikan Claude Code dari meneruskan `-ExecutionPolicy Bypass` saat memunculkan PowerShell untuk panggilan alat, hook, dan perintah status line, dan menghormati kebijakan eksekusi efektif mesin sebagai gantinya. Secara default Claude Code melewati kebijakan eksekusi di ruang lingkup proses sehingga skrip `.ps1` dan impor modul bekerja pada instalasi Windows default-Restricted. Bypass ruang lingkup proses tidak pernah mengganti Kebijakan Grup `MachinePolicy` atau `UserPolicy` terlepas dari pengaturan ini |

350| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Batas dalam milidetik pada menunggu idle untuk subagent latar belakang dan alur kerja setelah giliran terakhir dalam [mode non-interaktif](/docs/id/headless#background-tasks-at-exit) dengan flag `-p`. Menunggu idle dimulai lagi setiap kali Claude mengambil giliran untuk menangani hasil latar belakang. Default: `600000`, atau 10 menit. Ketika menunggu idle mencapai batas, Claude Code berhenti menunggu tugas latar belakang yang tersisa dan keluar. Atur ke `0` untuk menunggu tanpa batas. Batas ini terpisah dari periode grace lima detik yang berlaku untuk shell latar belakang biasa. Memerlukan Claude Code v2.1.182 atau lebih baru |353| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Batas dalam milidetik pada menunggu idle untuk subagent latar belakang dan alur kerja setelah giliran terakhir dalam [mode non-interaktif](/docs/id/headless#background-tasks-at-exit) dengan flag `-p`. Menunggu idle dimulai lagi setiap kali Claude mengambil giliran untuk menangani hasil latar belakang. Default: `600000`, atau 10 menit. Ketika menunggu idle mencapai batas, Claude Code berhenti menunggu tugas latar belakang yang tersisa dan keluar. Atur ke `0` untuk menunggu tanpa batas. Batas ini terpisah dari periode grace lima detik yang berlaku untuk shell latar belakang biasa. Memerlukan Claude Code v2.1.182 atau lebih baru |

351| `CLAUDE_CODE_PROCESS_WRAPPER` | Luncurkan proses yang Claude Code mulai dari binernya sendiri, seperti layanan latar belakang yang menampilkan sesi [tampilan agent](/docs/id/agent-view), melalui peluncur perusahaan yang diberikan sebagai awalan argv seperti `/opt/corp/launcher`. Atur di blok `env` pengaturan pengguna atau [yang dikelola](/docs/id/managed-settings), bukan sebagai ekspor shell, jadi layanan latar belakang yang terpisah mewarisnya; pengaturan proyek dan lokal tidak dapat menetapkannya. Setara dengan pengaturan [`processWrapper`](/docs/id/settings-reference#processwrapper), yang memerlukan Claude Code v2.1.210 atau lebih baru; variabel ini mengambil prioritas ketika keduanya diatur. Ekstensi VS Code mengonfigurasi peluncur sendiri secara terpisah melalui pengaturan `claudeProcessWrapper`. Diabaikan di Windows. Lihat [Jalankan Claude Code di balik peluncur perusahaan](/docs/id/corporate-launcher) untuk format nilai, apa yang dicakup peluncur, dan kontrak yang harus dipenuhi peluncur. Memerlukan Claude Code v2.1.208 atau lebih baru |354| `CLAUDE_CODE_PROCESS_WRAPPER` | Luncurkan proses yang Claude Code mulai dari binernya sendiri, seperti layanan latar belakang yang menampilkan sesi [tampilan agent](/docs/id/agent-view), melalui peluncur perusahaan yang diberikan sebagai awalan argv seperti `/opt/corp/launcher`. Atur di blok `env` pengaturan pengguna atau [yang dikelola](/docs/id/managed-settings), bukan sebagai ekspor shell, jadi layanan latar belakang yang terpisah mewarisnya; pengaturan proyek dan lokal tidak dapat menetapkannya. Setara dengan pengaturan [`processWrapper`](/docs/id/settings-reference#processwrapper), yang memerlukan Claude Code v2.1.210 atau lebih baru; variabel ini mengambil prioritas ketika keduanya diatur. Ekstensi VS Code mengonfigurasi peluncur sendiri secara terpisah melalui pengaturan `claudeProcessWrapper`. Diabaikan di Windows. Lihat [Jalankan Claude Code di balik peluncur perusahaan](/docs/id/corporate-launcher) untuk format nilai, apa yang dicakup peluncur, dan kontrak yang harus dipenuhi peluncur. Memerlukan Claude Code v2.1.208 atau lebih baru |


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

360| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Atur ke `1` untuk secara otomatis melanjutkan jika sesi sebelumnya berakhir di tengah-giliran. Digunakan dalam mode SDK sehingga model melanjutkan tanpa memerlukan SDK untuk mengirim ulang prompt. Untuk menonaktifkan ini, batalkan penetapan variabel atau atur ke `0`. Sebelum v2.1.221, Claude Code mengabaikan `0` dan nilai falsy lainnya, jadi menetapkan `0` masih memicu resume dalam mode non-interaktif dan membatalkan penetapan variabel adalah satu-satunya cara untuk menonaktifkannya |363| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Atur ke `1` untuk secara otomatis melanjutkan jika sesi sebelumnya berakhir di tengah-giliran. Digunakan dalam mode SDK sehingga model melanjutkan tanpa memerlukan SDK untuk mengirim ulang prompt. Untuk menonaktifkan ini, batalkan penetapan variabel atau atur ke `0`. Sebelum v2.1.221, Claude Code mengabaikan `0` dan nilai falsy lainnya, jadi menetapkan `0` masih memicu resume dalam mode non-interaktif dan membatalkan penetapan variabel adalah satu-satunya cara untuk menonaktifkannya |

361| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Usia maksimum dalam milidetik dari pesan transkrip terakhir untuk sesi yang berakhir di tengah-giliran untuk melanjutkan secara otomatis pada resume. Ketika pesan terakhir lebih lama dari batas ini, Claude Code melewati resume otomatis `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` dan pesan lanjutan `CLAUDE_CODE_RESUME_PROMPT` yang disuntikkan, dan sesi dimulai idle sehingga Anda melanjutkan secara eksplisit. Tidak diatur atau `0` berarti tidak ada batas, kecuali bahwa giliran yang permintaan terakhirnya gagal dengan kesalahan API melanjutkan hanya saat kesalahan itu kurang dari enam jam. Nilai positif mengikat setiap giliran, termasuk yang; nilai negatif atau non-numerik menerapkan batas satu jam. Skrip spawn untuk agent yang berjalan lama dapat menetapkan ini sehingga restart terhadap transkrip lama tidak menjalankan kembali prompt basi. Claude Code menetapkan batas satu jam sendiri ketika memulai ulang sesi [tampilan agent](/docs/id/agent-view) yang mogok yang mewarisi percakapannya dari sesi interaktif. Memerlukan Claude Code v2.1.211 atau lebih baru |364| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Usia maksimum dalam milidetik dari pesan transkrip terakhir untuk sesi yang berakhir di tengah-giliran untuk melanjutkan secara otomatis pada resume. Ketika pesan terakhir lebih lama dari batas ini, Claude Code melewati resume otomatis `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` dan pesan lanjutan `CLAUDE_CODE_RESUME_PROMPT` yang disuntikkan, dan sesi dimulai idle sehingga Anda melanjutkan secara eksplisit. Tidak diatur atau `0` berarti tidak ada batas, kecuali bahwa giliran yang permintaan terakhirnya gagal dengan kesalahan API melanjutkan hanya saat kesalahan itu kurang dari enam jam. Nilai positif mengikat setiap giliran, termasuk yang; nilai negatif atau non-numerik menerapkan batas satu jam. Skrip spawn untuk agent yang berjalan lama dapat menetapkan ini sehingga restart terhadap transkrip lama tidak menjalankan kembali prompt basi. Claude Code menetapkan batas satu jam sendiri ketika memulai ulang sesi [tampilan agent](/docs/id/agent-view) yang mogok yang mewarisi percakapannya dari sesi interaktif. Memerlukan Claude Code v2.1.211 atau lebih baru |

362| `CLAUDE_CODE_RESUME_PROMPT` | Ganti pesan lanjutan yang disuntikkan saat melanjutkan sesi yang berakhir di tengah-giliran. Default ke `Continue from where you left off.`. Skrip spawn untuk agent yang berjalan lama dapat menetapkan ini ke pesan boot yang lebih direktif. String kosong menggunakan default |365| `CLAUDE_CODE_RESUME_PROMPT` | Ganti pesan lanjutan yang disuntikkan saat melanjutkan sesi yang berakhir di tengah-giliran atau saat Anda melanjutkan [panggilan alat yang ditunda](/docs/id/hooks#defer-a-tool-call-for-later) dengan `-p`. Default ke `Continue from where you left off.`. String kosong menggunakan default |

363| `CLAUDE_CODE_RETRY_WATCHDOG` | Atur ke `1` untuk sesi tanpa pengawasan seperti harness eval, pekerjaan CI, atau pekerja jarak jauh. Percobaan ulang `429` dan `529` kesalahan kapasitas tanpa batas daripada gagal setelah upaya `CLAUDE_CODE_MAX_RETRIES`. Claude Code gagal sekaligus ketika permintaan kecepatan standar mendapat `429` yang melaporkan batas pengeluaran atau kredit penggunaan yang habis, bahkan satu dari [batas pengeluaran gateway](/docs/id/errors#spend-limit-reached) yang direset sesuai jadwal. Sebelum v2.1.239, watchdog mencoba ulang ini tanpa batas. Untuk permintaan mode cepat, lihat [Tangani batas laju](/docs/id/fast-mode#handle-rate-limits). Watchdog mundur hingga 5 menit antara upaya, atau sampai batas direset ketika respons membawa waktu reset batas laju, jadi sesi yang mencapai batas penggunaan menunggu jendela yang tersisa. Di v2.1.199 atau lebih baru itu juga menaikkan jumlah percobaan ulang default untuk kesalahan transien lainnya, seperti kesalahan server, timeout, dan koneksi yang dijatuhkan, ke 300, kira-kira tiga jam mundur, dan menghapus batas 15 pada `CLAUDE_CODE_MAX_RETRIES` jika Anda menetapkan variabel itu secara eksplisit. Memerlukan Claude Code v2.1.186 atau lebih baru |366| `CLAUDE_CODE_RETRY_WATCHDOG` | Atur ke `1` untuk sesi tanpa pengawasan seperti harness eval, pekerjaan CI, atau pekerja jarak jauh. Percobaan ulang `429` dan `529` kesalahan kapasitas tanpa batas daripada gagal setelah upaya `CLAUDE_CODE_MAX_RETRIES`. Claude Code gagal sekaligus ketika permintaan kecepatan standar mendapat `429` yang melaporkan batas pengeluaran atau kredit penggunaan yang habis, bahkan satu dari [batas pengeluaran gateway](/docs/id/errors#spend-limit-reached) yang direset sesuai jadwal. Sebelum v2.1.239, watchdog mencoba ulang ini tanpa batas. Untuk permintaan mode cepat, lihat [Tangani batas laju](/docs/id/fast-mode#handle-rate-limits). Watchdog mundur hingga 5 menit antara upaya, atau sampai batas direset ketika respons membawa waktu reset batas laju, jadi sesi yang mencapai batas penggunaan menunggu jendela yang tersisa. Di v2.1.199 atau lebih baru itu juga menaikkan jumlah percobaan ulang default untuk kesalahan transien lainnya, seperti kesalahan server, timeout, dan koneksi yang dijatuhkan, ke 300, kira-kira tiga jam mundur, dan menghapus batas 15 pada `CLAUDE_CODE_MAX_RETRIES` jika Anda menetapkan variabel itu secara eksplisit. Memerlukan Claude Code v2.1.186 atau lebih baru |

364| `CLAUDE_CODE_SAFE_MODE` | Atur ke `1` untuk memulai dalam mode aman: CLAUDE.md, skills, plugin, hook, server MCP, perintah khusus dan agent, gaya output, alur kerja, tema khusus, pintasan keyboard khusus, perintah status line dan saran file, server LSP, dan memori otomatis tidak dimuat, untuk pemecahan masalah konfigurasi yang rusak. Kebijakan pengaturan yang dikelola masih berlaku, termasuk hook, status line, dan perintah saran file yang dikonfigurasi kebijakan; plugin yang dikelola, skills yang dikelola, CLAUDE.md yang dikelola, dan server MCP yang dikonfigurasi kebijakan tidak. Setara dengan meneruskan [`--safe-mode`](/docs/id/cli-reference#cli-flags). Proses anak yang diluncurkan secara langsung mewarisi variabel |367| `CLAUDE_CODE_SAFE_MODE` | Atur ke `1` untuk memulai dalam mode aman: CLAUDE.md, skills, plugin, hook, server MCP, perintah khusus dan agent, gaya output, alur kerja, tema khusus, pintasan keyboard khusus, perintah status line dan saran file, server LSP, dan memori otomatis tidak dimuat, untuk pemecahan masalah konfigurasi yang rusak. Kebijakan pengaturan yang dikelola masih berlaku, termasuk hook, status line, dan perintah saran file yang dikonfigurasi kebijakan; plugin yang dikelola, skills yang dikelola, CLAUDE.md yang dikelola, dan server MCP yang dikonfigurasi kebijakan tidak. Setara dengan meneruskan [`--safe-mode`](/docs/id/cli-reference#cli-flags). Proses anak yang diluncurkan secara langsung mewarisi variabel |

365| `CLAUDE_CODE_SCRIPT_CAPS` | Objek JSON yang membatasi berapa kali skrip spesifik dapat dipanggil per sesi ketika `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` diatur. Kunci adalah substring yang cocok dengan teks perintah; nilai adalah batas panggilan bilangan bulat. Misalnya, `{"deploy.sh": 2}` memungkinkan `deploy.sh` dipanggil paling banyak dua kali. Pencocokan berbasis substring jadi trik ekspansi shell seperti `./scripts/deploy.sh $(evil)` masih dihitung terhadap batas. Fan-out runtime melalui `xargs` atau `find -exec` tidak terdeteksi; ini adalah kontrol pertahanan mendalam |368| `CLAUDE_CODE_SCRIPT_CAPS` | Objek JSON yang membatasi berapa kali skrip spesifik dapat dipanggil per sesi ketika `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` diatur. Kunci adalah substring yang cocok dengan teks perintah; nilai adalah batas panggilan bilangan bulat. Misalnya, `{"deploy.sh": 2}` memungkinkan `deploy.sh` dipanggil paling banyak dua kali. Pencocokan berbasis substring jadi trik ekspansi shell seperti `./scripts/deploy.sh $(evil)` masih dihitung terhadap batas. Fan-out runtime melalui `xargs` atau `find -exec` tidak terdeteksi; ini adalah kontrol pertahanan mendalam |


412| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Batas atas dalam milidetik tentang berapa lama agen [alur kerja](/docs/id/workflows) menunggu respons pertama sibling yang sama-awalan sebelum mengirim permintaan pertamanya sendiri. Ketika fan-out memulai beberapa agen yang berbagi [awalan cache prompt](/docs/id/workflows#prompt-caching-in-a-fan-out), Claude Code menahan semua kecuali agen pertama untuk waktu yang lama sehingga sisanya membaca awalan yang di-cache daripada masing-masing memprosesnya tanpa cache. Default `5000`. Atur ke `0` untuk menonaktifkan tunggu. Ketika `DISABLE_PROMPT_CACHING` diatur, agen tidak pernah menunggu. Memerlukan Claude Code v2.1.229 atau lebih baru |415| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Batas atas dalam milidetik tentang berapa lama agen [alur kerja](/docs/id/workflows) menunggu respons pertama sibling yang sama-awalan sebelum mengirim permintaan pertamanya sendiri. Ketika fan-out memulai beberapa agen yang berbagi [awalan cache prompt](/docs/id/workflows#prompt-caching-in-a-fan-out), Claude Code menahan semua kecuali agen pertama untuk waktu yang lama sehingga sisanya membaca awalan yang di-cache daripada masing-masing memprosesnya tanpa cache. Default `5000`. Atur ke `0` untuk menonaktifkan tunggu. Ketika `DISABLE_PROMPT_CACHING` diatur, agen tidak pernah menunggu. Memerlukan Claude Code v2.1.229 atau lebih baru |

413| `CLAUDE_CONFIG_DIR` | Ganti direktori konfigurasi (default: `~/.claude`). Semua pengaturan, riwayat sesi, dan plugin disimpan di bawah path ini. Untuk kredensial, lihat [di mana Claude Code menyimpan kredensial](/docs/id/authentication#credential-management). Berguna untuk menjalankan beberapa akun berdampingan: misalnya, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. 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) |416| `CLAUDE_CONFIG_DIR` | Ganti direktori konfigurasi (default: `~/.claude`). Semua pengaturan, riwayat sesi, dan plugin disimpan di bawah path ini. Untuk kredensial, lihat [di mana Claude Code menyimpan kredensial](/docs/id/authentication#credential-management). Berguna untuk menjalankan beberapa akun berdampingan: misalnya, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. 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) |

414| `CLAUDE_DISABLE_ADOPT` | Atur ke `1` untuk menghentikan pekerjaan latar belakang dalam penerbangan daripada membawanya saat Anda menempatkan sesi di latar belakang dengan menekan `←` atau dengan [`/background`](/docs/id/agent-view#from-inside-a-session). Claude Code meminta Anda untuk mengonfirmasi sebelum backgrounding, kemudian menghentikan tugas yang sebaliknya akan dibawa. Memerlukan Claude Code v2.1.195 atau lebih baru |417| `CLAUDE_DISABLE_ADOPT` | Atur ke `1` untuk menghentikan pekerjaan latar belakang dalam penerbangan daripada membawanya saat Anda menempatkan sesi di latar belakang dengan menekan `←` atau dengan [`/background`](/docs/id/agent-view#from-inside-a-session). Claude Code meminta Anda untuk mengonfirmasi sebelum backgrounding, kemudian menghentikan tugas yang sebaliknya akan dibawa. Memerlukan Claude Code v2.1.195 atau lebih baru |

415| `CLAUDE_EFFORT` | Atur secara otomatis di subproses alat Bash dan perintah hook ke [tingkat effort](/docs/id/model-config#adjust-effort-level) yang berlaku ketika subproses dimulai: `low`, `medium`, `high`, `xhigh`, atau `max`. Ultracode bukan tingkat yang berbeda dan melaporkan sebagai `xhigh`. Cocok dengan bidang `effort.level` yang diteruskan ke [hook](/docs/id/hooks). Hanya diatur ketika model saat ini mendukung parameter effort |418| `CLAUDE_EFFORT` | Atur secara otomatis di subproses alat Bash dan perintah hook ke [tingkat effort](/docs/id/model-config#adjust-effort-level) yang berlaku ketika subproses dimulai: `low`, `medium`, `high`, `xhigh`, atau `max`. Cocok dengan bidang `effort.level` yang diteruskan ke [hook](/docs/id/hooks). Hanya diatur ketika model saat ini mendukung parameter effort |

416| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Atur ke `1` untuk memaksa-mengaktifkan watchdog idle streaming tingkat byte, atau atur ke `0` untuk memaksa-menonaktifkannya. `0` juga menonaktifkan [tenggat waktu byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada koneksi di mana tenggat waktu itu berjalan. Ketika tidak diatur, watchdog diaktifkan secara default untuk koneksi API Anthropic langsung dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan untuk respons streaming di koneksi [gateway](/docs/id/gateways) yang dicapai melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`; sebelum v2.1.222 itu tidak berjalan di koneksi gateway itu, jadi watchdog tingkat acara dapat melaporkan stall di sana bahkan saat ping keep-alive tiba. Untuk timeout dan cara timer berinteraksi, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |419| `CLAUDE_ENABLE_BYTE_WATCHDOG` | Atur ke `1` untuk memaksa-mengaktifkan watchdog idle streaming tingkat byte, atau atur ke `0` untuk memaksa-menonaktifkannya. `0` juga menonaktifkan [tenggat waktu byte pertama](/docs/id/network-config#streaming-idle-watchdogs) pada koneksi di mana tenggat waktu itu berjalan. Ketika tidak diatur, watchdog diaktifkan secara default untuk koneksi API Anthropic langsung dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan untuk respons streaming di koneksi [gateway](/docs/id/gateways) yang dicapai melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`; sebelum v2.1.222 itu tidak berjalan di koneksi gateway itu, jadi watchdog tingkat acara dapat melaporkan stall di sana bahkan saat ping keep-alive tiba. Untuk timeout dan cara timer berinteraksi, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |

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

418| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Atur ke `0` untuk memaksa-menonaktifkan watchdog idle streaming tingkat acara, atau atur ke `1` untuk memaksa-mengaktifkannya. Ketika tidak diatur, watchdog aktif secara default untuk semua penyedia. Sebelum v2.1.196, default yang tidak diatur dikendalikan server di API Anthropic langsung dan dimatikan di penyedia lain. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; untuk timer stall lainnya yang berjalan bersama ini, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |421| `CLAUDE_ENABLE_STREAM_WATCHDOG` | Atur ke `0` untuk memaksa-menonaktifkan watchdog idle streaming tingkat acara, atau atur ke `1` untuk memaksa-mengaktifkannya. Ketika tidak diatur, watchdog aktif secara default untuk semua penyedia. Sebelum v2.1.196, default yang tidak diatur dikendalikan server di API Anthropic langsung dan dimatikan di penyedia lain. Konfigurasikan timeout dengan `CLAUDE_STREAM_IDLE_TIMEOUT_MS`; untuk timer stall lainnya yang berjalan bersama ini, lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs) |


458| `FORCE_PROMPT_CACHING_5M` | Atur ke `1` untuk memaksa TTL cache prompt 5 menit bahkan ketika TTL 1 jam akan berlaku sebaliknya. Mengganti `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, dan pengaturan `promptCacheTtl` dan `subagentPromptCacheTtl` |461| `FORCE_PROMPT_CACHING_5M` | Atur ke `1` untuk memaksa TTL cache prompt 5 menit bahkan ketika TTL 1 jam akan berlaku sebaliknya. Mengganti `CLAUDE_CODE_PROMPT_CACHE_TTL`, `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`, `ENABLE_PROMPT_CACHING_1H`, dan pengaturan `promptCacheTtl` dan `subagentPromptCacheTtl` |

459| `HTTP_PROXY` | Tentukan server proxy HTTP untuk koneksi jaringan |462| `HTTP_PROXY` | Tentukan server proxy HTTP untuk koneksi jaringan |

460| `HTTPS_PROXY` | Tentukan server proxy HTTPS untuk koneksi jaringan |463| `HTTPS_PROXY` | Tentukan server proxy HTTPS untuk koneksi jaringan |

461| `IS_DEMO` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk mengaktifkan mode demo: menyembunyikan email dan nama organisasi Anda dari header dan output `/status`, dan melewati onboarding. **Menetapkannya ke `0` atau `false` masih mengaktifkan mode demo**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk menonaktifkannya. Berguna saat streaming atau merekam sesi |464| `IS_DEMO` | Atur ke nilai apa pun yang tidak kosong, seperti `1`, untuk mengaktifkan mode demo: menyembunyikan email dan nama organisasi Anda dari header dan output `/status`, dan melewati onboarding. **Menetap kannya ke `0` atau `false` masih mengaktifkan mode demo**, tidak seperti sebagian besar variabel aktif/mati; batalkan penetapan variabel untuk menonaktifkannya. Berguna saat streaming atau merekam sesi |

462| `MAX_MCP_OUTPUT_TOKENS` | Jumlah maksimum token yang diizinkan dalam respons alat MCP. Claude Code menampilkan peringatan ketika output melebihi 10.000 token. Alat yang mendeklarasikan [`anthropic/maxResultSizeChars`](/docs/id/mcp#raise-the-limit-for-a-specific-tool) menggunakan batas karakter itu untuk konten teks sebagai gantinya, tetapi konten gambar dari alat itu masih tunduk pada variabel ini (default: 25000) |465| `MAX_MCP_OUTPUT_TOKENS` | Jumlah maksimum token yang diizinkan dalam respons alat MCP. Claude Code menampilkan peringatan ketika output melebihi 10.000 token. Alat yang mendeklarasikan [`anthropic/maxResultSizeChars`](/docs/id/mcp#raise-the-limit-for-a-specific-tool) menggunakan batas karakter itu untuk konten teks sebagai gantinya, tetapi konten gambar dari alat itu masih tunduk pada variabel ini (default: 25000) |

463| `MAX_STRUCTURED_OUTPUT_RETRIES` | Jumlah upaya yang Claude Code izinkan ketika respons model gagal validasi terhadap [`--json-schema`](/docs/id/cli-reference#cli-flags) dalam mode non-interaktif dengan flag `-p`; setelah banyak upaya gagal tanpa output yang valid, jalankan gagal. Batas yang sama berlaku ketika output terstruktur subagent [alur kerja](/docs/id/workflows) gagal validasi. Default ke 5, upaya pertama ditambah empat percobaan ulang |466| `MAX_STRUCTURED_OUTPUT_RETRIES` | Jumlah upaya yang Claude Code izinkan ketika respons model gagal validasi terhadap [`--json-schema`](/docs/id/cli-reference#cli-flags) dalam mode non-interaktif dengan flag `-p`; setelah banyak upaya gagal tanpa output yang valid, jalankan gagal. Batas yang sama berlaku ketika output terstruktur subagent [alur kerja](/docs/id/workflows) gagal validasi. Default ke 5, upaya pertama ditambah empat percobaan ulang |

464| `MAX_THINKING_TOKENS` | Anggaran token tetap untuk [pemikiran yang diperpanjang](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code membatasinya pada satu token di bawah token output maksimum permintaan dan tidak pernah di bawah 1.024. Lihat `CLAUDE_CODE_MAX_OUTPUT_TOKENS` untuk cara batas itu ditetapkan. Ketika tidak diatur dan pemikiran diaktifkan, model dengan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) memilih kedalaman pemikiran mereka sendiri, dan model lain menggunakan batas. Atur ke `0` untuk menonaktifkan pemikiran di API Anthropic, kecuali di Opus 5.5 dan model Fable, yang tidak dapat memiliki pemikiran dinonaktifkan. Di [penyedia pihak ketiga](/docs/id/third-party-integrations), `0` menghilangkan parameter `thinking` sebagai gantinya. Dengan pemikiran dinonaktifkan di API Anthropic, Claude Code mengirim effort `high` daripada level yang lebih tinggi ke model yang diketahuinya [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5. Claude Code mengabaikan nilai nonzero di model penalaran adaptif, kecuali di model di mana `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` menonaktifkan penalaran adaptif |467| `MAX_THINKING_TOKENS` | Anggaran token tetap untuk [pemikiran yang diperpanjang](https://platform.claude.com/docs/en/build-with-claude/extended-thinking). Claude Code membatasinya pada satu token di bawah token output maksimum permintaan dan tidak pernah di bawah 1.024. Lihat `CLAUDE_CODE_MAX_OUTPUT_TOKENS` untuk cara batas itu ditetapkan. Ketika tidak diatur dan pemikiran diaktifkan, model dengan [penalaran adaptif](/docs/id/model-config#adjust-effort-level) memilih kedalaman pemikiran mereka sendiri, dan model lain menggunakan batas. Atur ke `0` untuk menonaktifkan pemikiran di API Anthropic, kecuali di Opus 5.5, Sonnet 5.5, dan model Fable, yang tidak dapat memiliki pemikiran dinonaktifkan. Di [penyedia pihak ketiga](/docs/id/third-party-integrations), `0` menghilangkan parameter `thinking` sebagai gantinya. Dengan pemikiran dinonaktifkan di API Anthropic, Claude Code mengirim effort `high` daripada level yang lebih tinggi ke model yang diketahuinya [tidak menerima kombinasi itu](/docs/id/errors#effort-isnt-available-with-thinking-turned-off), seperti Opus 5. Claude Code mengabaikan nilai nonzero di model penalaran adaptif, kecuali di model di mana `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` menonaktifkan penalaran adaptif |

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

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

467| `MCP_CONNECT_TIMEOUT_MS` | Berapa lama startup MCP yang memblokir menunggu, dalam milidetik, untuk batch koneksi sebelum mengambil snapshot daftar alat (default: 5000). Berlaku ketika `MCP_CONNECTION_NONBLOCKING=0` atau untuk server yang ditandai [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral). Server yang masih tertunda pada tenggat waktu terus terhubung di latar belakang. Berbeda dari `MCP_TIMEOUT`, yang mengikat upaya koneksi server individual |470| `MCP_CONNECT_TIMEOUT_MS` | Berapa lama startup MCP yang memblokir menunggu, dalam milidetik, untuk batch koneksi sebelum mengambil snapshot daftar alat (default: 5000). Berlaku ketika `MCP_CONNECTION_NONBLOCKING=0` atau untuk server yang ditandai [`alwaysLoad: true`](/docs/id/mcp#exempt-a-server-from-deferral). Server yang masih tertunda pada tenggat waktu terus terhubung di latar belakang. Berbeda dari `MCP_TIMEOUT`, yang mengikat upaya koneksi server individual |

468| `MCP_DISCOVERY_CACHE` | Mengaktifkan atau menonaktifkan [cache penemuan MCP](/docs/id/mcp#server-status-detail). Dengan cache aktif, server HTTP atau SSE jarak jauh yang pernah Anda gunakan sebelumnya dapat menampilkan [status `cached`](/docs/id/mcp#server-status-detail), dan Claude Code menghubungkannya pada panggilan alat pertama daripada saat startup. Cache dimatikan secara default kecuali rollout bertahap telah mengaktifkannya untuk akun Anda. Atur ke `1` untuk mengaktifkannya, atau `0` untuk menyimpannya dimatikan bahkan ketika rollout telah mengaktifkannya. Sebelum v2.1.238, cache aktif secara default. Status `cached` memerlukan Claude Code v2.1.221 atau lebih baru |471| `MCP_DISCOVERY_CACHE` | Mengaktifkan atau menonaktifkan [cache penemuan MCP](/docs/id/mcp#server-status-detail). Dengan cache aktif, server HTTP atau SSE jarak jauh yang pernah Anda gunakan sebelumnya dapat menampilkan [status `cached`](/docs/id/mcp#server-status-detail), dan Claude Code menghubungkannya pada panggilan alat pertama daripada saat startup. Cache dimatikan secara default kecuali rollout bertahap telah mengaktifkannya untuk akun Anda. Atur ke `1` untuk mengaktifkannya, atau `0` untuk menyimpannya dimatikan bahkan ketika rollout telah mengaktifkannya. Status `cached` memerlukan Claude Code v2.1.221 atau lebih baru |

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

470| `MCP_DISCOVERY_CACHE_STRIKES` | Pada startup di mana entri [cache penemuan](/docs/id/mcp#server-status-detail) lebih lama dari `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code menyegarkannya di latar belakang. Variabel ini menetapkan berapa banyak penyegaran berturut-turut yang dapat gagal sebelum Claude Code membuang entri dan menghubungkan server pada startup berikutnya sebagai gantinya (default: 1). Naikkan jika koneksi jaringan Anda sesekali putus, jadi satu penyegaran yang gagal tidak membuang entri. Memerlukan Claude Code v2.1.238 atau lebih baru |473| `MCP_DISCOVERY_CACHE_STRIKES` | Pada startup di mana entri [cache penemuan](/docs/id/mcp#server-status-detail) lebih lama dari `MCP_DISCOVERY_CACHE_TTL_S`, Claude Code menyegarkannya di latar belakang. Variabel ini menetapkan berapa banyak penyegaran berturut-turut yang dapat gagal sebelum Claude Code membuang entri dan menghubungkan server pada startup berikutnya sebagai gantinya (default: 1). Naikkan jika koneksi jaringan Anda sesekali putus, jadi satu penyegaran yang gagal tidak membuang entri. Memerlukan Claude Code v2.1.238 atau lebih baru |

471| `MCP_DISCOVERY_CACHE_TTL_S` | Detik di mana Claude Code menggunakan entri [cache penemuan](/docs/id/mcp#server-status-detail) tanpa menyegarkannya (default: 900). Pada startup di mana entri lebih lama dari itu, Claude Code masih menggunakannya tetapi menyegarkannya di latar belakang. Setelah entri lebih lama dari `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code membuangnya sebagai gantinya. Claude Code membatasi nilai pada `MCP_DISCOVERY_CACHE_MAX_STALE_S`, yang default 4 jam. Sebelum v2.1.238, Claude Code tidak membatasi nilai |474| `MCP_DISCOVERY_CACHE_TTL_S` | Detik di mana Claude Code menggunakan entri [cache penemuan](/docs/id/mcp#server-status-detail) tanpa menyegarkannya (default: 900). Pada startup di mana entri lebih lama dari itu, Claude Code masih menggunakannya tetapi menyegarkannya di latar belakang. Setelah entri lebih lama dari `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code membuangnya sebagai gantinya. Claude Code membatasi nilai pada `MCP_DISCOVERY_CACHE_MAX_STALE_S`, yang default 4 jam. Sebelum v2.1.238, Claude Code tidak membatasi nilai |


478| `MCP_TOOL_TIMEOUT` | Timeout dalam milidetik untuk eksekusi alat MCP (default: 100000000, sekitar 28 jam). Untuk server HTTP, SSE, atau konektor claude.ai, setiap permintaan juga timeout setelah 60 detik secara default; atur variabel ini, atau `timeout` per-server, di atas 60000 untuk menaikkan batas per-permintaan itu. Nilai yang lebih rendah masih mempersingkat timeout eksekusi alat keseluruhan tetapi meninggalkan batas per-permintaan pada 60 detik. Server stdio dan WebSocket tidak memiliki timer per-permintaan. Bidang `timeout` per-server di `.mcp.json` mengganti ini untuk server itu. Bidang `timeout` per-server setidaknya 1000 juga menetapkan jendela idle minimum untuk panggilan alat server itu, jadi `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` tidak pernah menghentikan mereka lebih awal; lantai ini memerlukan Claude Code v2.1.203 atau lebih baru. Untuk variabel env, nilai di bawah 1000 didasarkan ke satu detik; untuk bidang per-server, nilai di bawah 1000 diabaikan |481| `MCP_TOOL_TIMEOUT` | Timeout dalam milidetik untuk eksekusi alat MCP (default: 100000000, sekitar 28 jam). Untuk server HTTP, SSE, atau konektor claude.ai, setiap permintaan juga timeout setelah 60 detik secara default; atur variabel ini, atau `timeout` per-server, di atas 60000 untuk menaikkan batas per-permintaan itu. Nilai yang lebih rendah masih mempersingkat timeout eksekusi alat keseluruhan tetapi meninggalkan batas per-permintaan pada 60 detik. Server stdio dan WebSocket tidak memiliki timer per-permintaan. Bidang `timeout` per-server di `.mcp.json` mengganti ini untuk server itu. Bidang `timeout` per-server setidaknya 1000 juga menetapkan jendela idle minimum untuk panggilan alat server itu, jadi `CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT` tidak pernah menghentikan mereka lebih awal; lantai ini memerlukan Claude Code v2.1.203 atau lebih baru. Untuk variabel env, nilai di bawah 1000 didasarkan ke satu detik; untuk bidang per-server, nilai di bawah 1000 diabaikan |

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

480| `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) |483| `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) |

481| `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) |484| `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. 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), terlepas dari nilai off yang bagian itu jelaskan. Memerlukan Claude Code v2.1.193 atau lebih baru. Lihat [Monitoring](/docs/id/monitoring-usage#assistant-response-event) |

482| `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) |485| `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) |

483| `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) |486| `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) |

484| `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) |487| `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. 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), terlepas dari nilai off yang bagian itu jelaskan. Lihat [Monitoring](/docs/id/monitoring-usage#tool-output-span-event) |

485| `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) |488| `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. 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), terlepas dari nilai off yang bagian itu jelaskan. Lihat [Monitoring](/docs/id/monitoring-usage) |

486| `OTEL_LOG_USER_PROMPTS` | Atur ke `1` untuk menyertakan teks prompt pengguna dalam jejak dan log OpenTelemetry. Dinonaktifkan secara default (prompt diredaksi). Lihat [Monitoring](/docs/id/monitoring-usage) |489| `OTEL_LOG_USER_PROMPTS` | Atur ke `1` untuk menyertakan teks prompt pengguna dalam jejak dan log OpenTelemetry. Dinonaktifkan secara default (prompt diredaksi). 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), terlepas dari nilai off yang bagian itu jelaskan. Lihat [Monitoring](/docs/id/monitoring-usage) |

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

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

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


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

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

508| `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 |511| `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 |

512| `VERTEX_REGION_CLAUDE_5_5_SONNET` | Ganti wilayah untuk Claude Sonnet 5.5 saat menggunakan Google Cloud's Agent Platform. Ditambahkan di v2.1.284 |

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

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

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


514 518 

515Variabel pengekspor OpenTelemetry standar (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES`, dan varian spesifik sinyal) juga didukung. Lihat [Monitoring](/docs/id/monitoring-usage) untuk detail konfigurasi.519Variabel pengekspor OpenTelemetry standar (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, `OTEL_EXPORTER_OTLP_ENDPOINT`, `OTEL_EXPORTER_OTLP_PROTOCOL`, `OTEL_EXPORTER_OTLP_HEADERS`, `OTEL_METRIC_EXPORT_INTERVAL`, `OTEL_RESOURCE_ATTRIBUTES`, dan varian spesifik sinyal) juga didukung. Lihat [Monitoring](/docs/id/monitoring-usage) untuk detail konfigurasi.

516 520 

521Atur `CLAUDE_CODE_ENABLE_TELEMETRY` dan variabel OpenTelemetry yang mengaktifkan ekspor, memilih tujuannya, atau menangkap konten di shell, pengaturan pengguna, atau pengaturan yang dikelola. Claude Code [mengabaikannya di pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env), terlepas dari nilai off yang bagian itu jelaskan. `OTEL_RESOURCE_ATTRIBUTES` dan variabel interval ekspor, timeout, dan kompresi, seperti `OTEL_METRIC_EXPORT_INTERVAL`, masih berlaku dari pengaturan proyek dan lokal.

522 

517<h2 id="features-that-need-feature-flag-fetching">523<h2 id="features-that-need-feature-flag-fetching">

518 Fitur yang memerlukan pengambilan feature-flag524 Fitur yang memerlukan pengambilan feature-flag

519</h2>525</h2>


526 532 

527Dengan pengambilan dimatikan, Anda tidak dapat:533Dengan pengambilan dimatikan, Anda tidak dapat:

528 534 

529* [Memulai sesi dalam mode auto secara default](/docs/id/permission-modes#which-mode-a-session-starts-in) pada paket Pro, Max, dan Team

530* Memiliki ekstensi VS Code [membaca file pengaturan untuk mode izin awal](/docs/id/permission-modes#switch-permission-modes)

531* Menjalankan [`/auto-mode-setup`](/docs/id/auto-mode-config#generate-environment-entries) untuk membuat draf entri `autoMode.environment`535* Menjalankan [`/auto-mode-setup`](/docs/id/auto-mode-config#generate-environment-entries) untuk membuat draf entri `autoMode.environment`

532* Menggunakan [Remote Control](/docs/id/remote-control#requirements)536* Menggunakan [Remote Control](/docs/id/remote-control) dengan `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` atau `DISABLE_GROWTHBOOK` yang ditetapkan. Untuk `DISABLE_TELEMETRY` dan `DO_NOT_TRACK`, lihat [persyaratan Remote Control](/docs/id/remote-control#requirements)

533* [Mengirim pesan sesi di luar mesin ini](/docs/id/cross-session-messaging#message-sessions-on-other-machines); pesan antar sesi di mesin ini berfungsi dengan pengambilan dimatikan537* [Mengirim pesan sesi di luar mesin ini](/docs/id/cross-session-messaging#message-sessions-on-other-machines) ketika [Remote Control](/docs/id/remote-control#requirements) tidak tersedia. Pesan antar sesi di mesin ini berfungsi dengan pengambilan dimatikan

534* Menjalankan [`claude import` atau perintah `/import`](/docs/id/cli-reference#cli-commands)538* Menjalankan [`claude import` atau perintah `/import`](/docs/id/cli-reference#cli-commands)

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

536* Mensinkronkan [skills](/docs/id/skills#where-synced-skills-load) dan [plugins](/docs/id/plugins-reference#synced-plugins) yang diaktifkan untuk akun claude.ai Anda ke dalam sesi terminal Anda540* Mensinkronkan [skills](/docs/id/skills#where-synced-skills-load) dan [plugins](/docs/id/plugins/loading#synced-plugins) yang diaktifkan untuk akun claude.ai Anda ke dalam sesi terminal Anda

537* Menggunakan [alat penasihat](/docs/id/advisor#requirements)541* Menggunakan [alat penasihat](/docs/id/advisor#requirements)

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

539* 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`543* 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`


546 Sesi pertama setelah instalasi atau upgrade550 Sesi pertama setelah instalasi atau upgrade

547</h3>551</h3>

548 552 

549Dalam sesi pertama Anda setelah Anda menginstal Claude Code, atau upgrade ke versi yang menambahkan fitur, [fitur yang gated-flag](#features-that-need-feature-flag-fetching) dapat hilang, dan sesi dapat dimulai dalam mode Manual pada paket yang sebaliknya dimulai dalam mode auto. Claude Code mengambil flag selama sesi itu, jadi keduanya ada di sesi berikutnya Anda.553Dalam sesi pertama Anda setelah Anda menginstal Claude Code, atau upgrade ke versi yang menambahkan fitur, [fitur yang gated-flag](#features-that-need-feature-flag-fetching) dapat hilang. Sesi itu juga dapat dimulai dalam [mode izin](/docs/id/permission-modes#which-mode-a-session-starts-in) yang berbeda daripada sesi-sesi Anda yang kemudian. Claude Code mengambil flag selama sesi itu, jadi sesi berikutnya Anda memiliki fitur dan mode izin awal yang biasa.

550 554 

551Setelah instalasi segar, dalam sesi non-interaktif seperti `claude -p`, Agent SDK, atau ekstensi VS Code, Claude Code masih dapat mengambil flag sebelum ia [memilih mode izin awal](/docs/id/permission-modes#which-mode-a-session-starts-in).555Setelah instalasi segar, dalam sesi non-interaktif seperti `claude -p`, Agent SDK, atau ekstensi VS Code, Claude Code masih dapat mengambil flag sebelum ia [memilih mode izin awal](/docs/id/permission-modes#which-mode-a-session-starts-in).

552 556 

errors.md +813 −429

Details

24| :- | :- |24| :- | :- |

25| `API Error: 500 Internal server error` | [Server errors](#api-error-500-internal-server-error) |25| `API Error: 500 Internal server error` | [Server errors](#api-error-500-internal-server-error) |

26| `API Error: Repeated 529 Overloaded errors` | [Server errors](#api-error-repeated-529-overloaded-errors) |26| `API Error: Repeated 529 Overloaded errors` | [Server errors](#api-error-repeated-529-overloaded-errors) |

27| `Opus is experiencing high load` / `Fable is experiencing high load` | [Server errors](#api-error-repeated-529-overloaded-errors) |

27| `Request timed out` | [Server errors](#request-timed-out), atau [Network](#unable-to-connect-to-api) jika pesan menyebutkan koneksi internet Anda |28| `Request timed out` | [Server errors](#request-timed-out), atau [Network](#unable-to-connect-to-api) jika pesan menyebutkan koneksi internet Anda |

28| `API Error: No response from API` | [Server errors](#no-response-from-api) |29| `API Error: No response from API` | [Server errors](#no-response-from-api) |

29| `Server error mid-response. The response above may be incomplete.` | [Server errors](#the-response-above-may-be-incomplete) |30| `Server error mid-response. The response above may be incomplete.` | [Server errors](#the-response-above-may-be-incomplete) |

30| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Server errors](#the-response-above-may-be-incomplete) |31| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Server errors](#the-response-above-may-be-incomplete) |

31| `Connection closed mid-response` / `Response stalled mid-stream` | [Server errors](#the-response-above-may-be-incomplete) |32| `Connection closed mid-response` / `Response stalled mid-stream` | [Server errors](#the-response-above-may-be-incomplete) |

33| `Part of the response never arrived` / `The response stream was malformed` | [Server errors](#the-response-above-may-be-incomplete) |

34| `API Error: Content block not found` / `API Error: Content block already closed` / `API Error: Stream event unreadable` | [Server errors](#the-response-above-may-be-incomplete) |

32| `Connection lost before a response was produced` / `Your computer went to sleep before a response was produced` / `The response stalled before a response was produced` | [Automatic retries](#automatic-retries) |35| `Connection lost before a response was produced` / `Your computer went to sleep before a response was produced` / `The response stalled before a response was produced` | [Automatic retries](#automatic-retries) |

33| `Connection closed while thinking` / `Response stalled while thinking` | [Automatic retries](#automatic-retries) |36| `Connection closed while thinking` / `Response stalled while thinking` | [Automatic retries](#automatic-retries) |

34| `Connection lost while your computer was asleep` | [Automatic retries](#automatic-retries) |37| `Connection lost while your computer was asleep` | [Automatic retries](#automatic-retries) |


49| `Could not update your spend limit` | [Usage limits](#could-not-update-your-spend-limit) |52| `Could not update your spend limit` | [Usage limits](#could-not-update-your-spend-limit) |

50| `spend limit reached` / `spend limit unavailable` | [Usage limits](#spend-limit-reached) |53| `spend limit reached` / `spend limit unavailable` | [Usage limits](#spend-limit-reached) |

51| `Not logged in · Please run /login` | [Authentication](#not-logged-in) |54| `Not logged in · Please run /login` | [Authentication](#not-logged-in) |

55| `Couldn't save your login` | [Authentication](#couldnt-save-your-login) |

56| `Authentication required · Sign in again to continue` | [Authentication](#not-logged-in) |

52| `Could not resolve authentication method` | [Authentication](#could-not-resolve-authentication-method) |57| `Could not resolve authentication method` | [Authentication](#could-not-resolve-authentication-method) |

53| `Invalid API key` | [Authentication](#invalid-api-key) |58| `Invalid API key` | [Authentication](#invalid-api-key) |

54| `Your apiKeyHelper script is failing` | [Authentication](#your-apikeyhelper-script-is-failing) |59| `Your apiKeyHelper script is failing` | [Authentication](#your-apikeyhelper-script-is-failing) |


69| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) |74| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) |

70| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |75| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

71| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |76| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

77| `Couldn't verify your organization's policy for remote control` | [Troubleshoot Remote Control](/docs/id/remote-control#couldnt-verify-your-organizations-policy-for-remote-control) |

72| `OAuth token revoked` / `OAuth token has expired` | [Authentication](#oauth-token-revoked-or-expired) |78| `OAuth token revoked` / `OAuth token has expired` | [Authentication](#oauth-token-revoked-or-expired) |

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

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

81| `Failed to start OAuth callback server` | [Authentication](#failed-to-start-oauth-callback-server) |

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

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

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

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

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

87| `Could not refresh your login because another Claude Code process is refreshing it` | [Authentication](#could-not-refresh-your-login) |

88| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [Authentication](#could-not-refresh-your-login) |

80| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |89| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |

81| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |90| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) |

82| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |91| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) |


120| `Couldn't reconnect to your Remote Control session` | [Network](#couldnt-reconnect-to-your-remote-control-session) |129| `Couldn't reconnect to your Remote Control session` | [Network](#couldnt-reconnect-to-your-remote-control-session) |

121| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Network](#sessions-ended-while-this-machine-was-offline) |130| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Network](#sessions-ended-while-this-machine-was-offline) |

122| `Couldn't share the transcript.` | [Network](#couldnt-share-the-transcript) |131| `Couldn't share the transcript.` | [Network](#couldnt-share-the-transcript) |

132| `Couldn't send feedback` | [Network](#couldnt-send-feedback) |

123| `Prompt is too long` / `Input is too long for requested model` | [Request errors](#prompt-is-too-long) |133| `Prompt is too long` / `Input is too long for requested model` | [Request errors](#prompt-is-too-long) |

124| `Prompt is too long · automatic compaction failed:` | [Request errors](#prompt-is-too-long) |134| `Prompt is too long · automatic compaction failed:` | [Request errors](#prompt-is-too-long) |

125| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Request errors](#prompt-is-too-long) |135| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Request errors](#prompt-is-too-long) |


131| `all upstreams failed (N attempted)` pada sesi gateway aplikasi Claude | [Upstream error messages](/docs/id/claude-apps-gateway-config#upstream-error-messages) |141| `all upstreams failed (N attempted)` pada sesi gateway aplikasi Claude | [Upstream error messages](/docs/id/claude-apps-gateway-config#upstream-error-messages) |

132| `Claude Code may not be enabled for your organization` setelah login gateway aplikasi Claude | [Claude apps gateway troubleshooting](/docs/id/claude-apps-gateway-deploy#troubleshooting) |142| `Claude Code may not be enabled for your organization` setelah login gateway aplikasi Claude | [Claude apps gateway troubleshooting](/docs/id/claude-apps-gateway-deploy#troubleshooting) |

133| `Context exceeds the ...-token limit by ... tokens` dalam output `/context` | [Request errors](#context-exceeds-the-token-limit) |143| `Context exceeds the ...-token limit by ... tokens` dalam output `/context` | [Request errors](#context-exceeds-the-token-limit) |

134| `Error during compaction: Conversation too long` | [Request errors](#error-during-compaction-conversation-too-long) |

135| `Request too large` | [Request errors](#request-too-large) |144| `Request too large` | [Request errors](#request-too-large) |

136| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) |145| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) |

137| `Image was too large` | [Request errors](#image-was-too-large) |146| `Image was too large` | [Request errors](#image-was-too-large) |

138| `Unable to resize image` | [Request errors](#unable-to-resize-image) |147| `Unable to resize image` | [Request errors](#unable-to-resize-image) |

139| `PDF too large` / `PDF is password protected` | [Request errors](#pdf-errors) |148| `PDF too large` / `PDF is password protected` / `pdftoppm is not installed` | [Request errors](#pdf-errors) |

140| `Extra inputs are not permitted` | [Request errors](#extra-inputs-are-not-permitted) |149| `Extra inputs are not permitted` | [Request errors](#extra-inputs-are-not-permitted) |

141| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Request errors](#tool-input-schema-is-invalid) |150| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Request errors](#tool-input-schema-is-invalid) |

151| `tool_use.name: String should have at most 200 characters` | [Request errors](#tool-use-name-over-200-characters) |

142| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |152| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) |

143| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |153| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) |

144| `Model ... not found` | [Request errors](#model-not-found) |154| `Model ... not found` | [Request errors](#model-not-found) |

155| `API error: ... · model not changed` | [Request errors](#api-error-model-not-changed) |

145| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) |156| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) |

146| `Claude Code ... does not support this model; version ... or newer is required` | [Request errors](#claude-code-does-not-support-this-model) |157| `Claude Code ... does not support this model; version ... or newer is required` | [Request errors](#claude-code-does-not-support-this-model) |

147| `Claude Code ... is older than the minimum version required by your organization's policy` | [Request errors](#claude-code-does-not-support-this-model) |158| `Claude Code ... is older than the minimum version required by your organization's policy` | [Request errors](#claude-code-does-not-support-this-model) |

148| `Model ... is restricted by your organization's settings` | [Request errors](#model-is-restricted-by-your-organizations-settings) |159| `Model ... is restricted by your organization's settings` | [Request errors](#model-is-restricted-by-your-organizations-settings) |

160| `Model ... is not available. Your organization restricts model selection.` | [Request errors](#model-is-restricted-by-your-organizations-settings) |

149| `Model switch ... blocked by a PreModelSwitch hook` | [Request errors](#model-switch-was-blocked-by-a-premodelswitch-hook) |161| `Model switch ... blocked by a PreModelSwitch hook` | [Request errors](#model-switch-was-blocked-by-a-premodelswitch-hook) |

150| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Request errors](#couldnt-save-it-as-your-default) |162| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Request errors](#couldnt-save-it-as-your-default) |

151| `thinking.type.enabled is not supported for this model` | [Request errors](#thinking-type-enabled-is-not-supported-for-this-model) |163| `thinking.type.enabled is not supported for this model` | [Request errors](#thinking-type-enabled-is-not-supported-for-this-model) |


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

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

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

170| `Invalid data in redacted_thinking block` | [Request errors](#invalid-data-in-redacted-thinking-block) |

158| `[Unsupported tool content removed]` | [Request errors](#unsupported-tool-content-removed) |171| `[Unsupported tool content removed]` | [Request errors](#unsupported-tool-content-removed) |

159| `role 'system' must precede an 'assistant' message` | [Request errors](#role-system-must-precede-an-assistant-message) |172| `role 'system' must precede an 'assistant' message` | [Request errors](#role-system-must-precede-an-assistant-message) |

160| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [Request errors](#invalid-encrypted-content-in-search-result-block) |173| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [Request errors](#invalid-encrypted-content-in-search-result-block) |

174| `Invalid encrypted_stdout in encrypted_code_execution_result block` | [Request errors](#invalid-encrypted-content-in-search-result-block) |

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

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

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

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

165| `Opus 5.5's safeguards flagged this session` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |179| `<model>'s safeguards flagged this session` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) |

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

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

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

169| `Download timed out: exceeded the total deadline` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |183| `Download timed out: exceeded the total deadline` | [Installation errors](#the-connection-dropped-while-downloading-the-update) |

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

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

172| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |186| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |

173| `Couldn't verify your organization's policy for cloud sessions` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |187| `Couldn't verify your organization's policy for cloud sessions` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |

174| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#command-line-errors) |188| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#the-json-schema-value-is-not-a-valid-json-schema) |

175| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |189| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |

190| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Command-line errors](#invalid-agents-configuration) |

191| `Error: --agents file not found` | [Command-line errors](#invalid-agents-configuration) |

176| `Error: Settings file exceeds the 2MiB limit` | [Command-line errors](#settings-file-exceeds-the-2mib-limit) |192| `Error: Settings file exceeds the 2MiB limit` | [Command-line errors](#settings-file-exceeds-the-2mib-limit) |

177| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) |193| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) |

178| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |194| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [Command-line errors](#temp-directory-refused-or-cannot-be-created) |


207| `Single sign-on authorization needed` | [Command-line errors](#single-sign-on-authorization-needed) |223| `Single sign-on authorization needed` | [Command-line errors](#single-sign-on-authorization-needed) |

208| `Failed to resume the conversation` | [Command-line errors](#failed-to-resume-the-conversation) |224| `Failed to resume the conversation` | [Command-line errors](#failed-to-resume-the-conversation) |

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

226| `Windows reported an error (EBADF) when Claude Code read this session's transcript file` | [Command-line errors](#windows-reported-an-error-ebadf) |

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

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

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


218| `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) |235| `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) |

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

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

238| `Claude Code refuses the marketplace name "<name>"` | [Plugin errors](#claude-code-refuses-the-marketplace-name) |

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

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

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

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


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

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

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

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

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

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

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

257| `cannot contain null bytes (\0)` | [Tool errors](#path-cannot-contain-null-bytes) |

258| `Path contains null bytes` | [Tool errors](#path-cannot-contain-null-bytes) |

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

237| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Tool errors](#memory-index-is-over-its-read-limit) |260| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Tool errors](#memory-index-is-over-its-read-limit) |

238| `pkill: refusing to run` | [Tool errors](#pkill-pattern-matches-the-claude-code-process) |261| `pkill: refusing to run` | [Tool errors](#pkill-pattern-matches-the-claude-code-process) |


241| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [Tool errors](#teammate-agent-definition-not-restored) |264| `Its agent definition was not restored: the folder its definition file came from is not trusted` | [Tool errors](#teammate-agent-definition-not-restored) |

242| `Message too large for cross-session delivery` | [Tool errors](#message-too-large-for-cross-session-delivery) |265| `Message too large for cross-session delivery` | [Tool errors](#message-too-large-for-cross-session-delivery) |

243| `Too many messages to this session just now` | [Tool errors](#too-many-messages-to-this-session-just-now) |266| `Too many messages to this session just now` | [Tool errors](#too-many-messages-to-this-session-just-now) |

267| `Cross-session message was dropped at the recipient session's inbox` | [Tool errors](#cross-session-message-dropped-at-the-inbox) |

244| `Refusing to send: reply target is a symlink` / `Refusing to send: cannot vet reply target` | [Tool errors](#refusing-to-send-a-cross-session-message) |268| `Refusing to send: reply target is a symlink` / `Refusing to send: cannot vet reply target` | [Tool errors](#refusing-to-send-a-cross-session-message) |

245| `Refusing to send: connected endpoint is not the expected process` / `Refusing to send: connected endpoint identity could not be read` | [Tool errors](#refusing-to-send-a-cross-session-message) |

246| `Refusing to send: connected endpoint is not owned by this user` / `Refusing to send: connected endpoint owner could not be read` | [Tool errors](#refusing-to-send-a-cross-session-message) |

247| `Refusing to send: connected endpoint is a different process with the expected pid` | [Tool errors](#refusing-to-send-a-cross-session-message) |

248| `Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>)` / `Refusing to search <path>: its symlink resolution changed after permission was checked` | [Tool errors](#refusing-after-a-symlink-changed) |269| `Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>)` / `Refusing to search <path>: its symlink resolution changed after permission was checked` | [Tool errors](#refusing-after-a-symlink-changed) |

249| `Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked` / `Refusing to write <path>: it is a symbolic link. Write to the link's target path instead` | [Tool errors](#refusing-after-a-symlink-changed) |270| `Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked` / `Refusing to write <path>: it is a symbolic link. Write to the link's target path instead` | [Tool errors](#refusing-after-a-symlink-changed) |

250| `Refusing to write through symlink: <path>` / `Refusing to write into symlinked directory: <path>` | [Tool errors](#refusing-after-a-symlink-changed) |271| `Refusing to write through symlink: <path>` / `Refusing to write into symlinked directory: <path>` | [Tool errors](#refusing-after-a-symlink-changed) |

272| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [Tool errors](#refusing-after-a-symlink-changed) |

251| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Tool errors](#refusing-after-a-symlink-changed) |273| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [Tool errors](#refusing-after-a-symlink-changed) |

252| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Tool errors](#refusing-after-a-symlink-changed) |274| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Tool errors](#refusing-after-a-symlink-changed) |

253| `task output swap refused (tasks dir moved or linked)` | [Tool errors](#task-output-swap-refused) |275| `task output swap refused (tasks dir moved or linked)` | [Tool errors](#task-output-swap-refused) |

254| `Command killed: its output file was replaced or could no longer be verified` | [Tool errors](#task-output-swap-refused) |276| `Command killed: its output file was replaced or could no longer be verified` | [Tool errors](#task-output-swap-refused) |

277| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |

278| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |

279| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [Tool errors](#disk-quota-or-temp-filesystem-is-full) |

255| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |280| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |

256| `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |281| `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) |

257| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [Tool errors](#reading-a-local-file-from-outside-the-connected-folders) |282| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [Tool errors](#reading-a-local-file-from-outside-the-connected-folders) |


279| `EACCES: permission denied, posix_spawn` | [Background session errors](#eacces-when-starting-a-background-session) |304| `EACCES: permission denied, posix_spawn` | [Background session errors](#eacces-when-starting-a-background-session) |

280| `exited before it became reachable` | [Background session errors](#background-service-exited-before-it-became-reachable) |305| `exited before it became reachable` | [Background session errors](#background-service-exited-before-it-became-reachable) |

281| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Background session errors](#working-directory-no-longer-exists-when-starting-a-background-session) |306| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Background session errors](#working-directory-no-longer-exists-when-starting-a-background-session) |

307| `Workspace not trusted.` saat memulai atau memulai ulang sesi latar belakang | [Background session errors](#workspace-not-trusted-when-dispatching-a-background-session) |

282| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Background session errors](#eacces-when-starting-a-background-session) |308| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Background session errors](#eacces-when-starting-a-background-session) |

283| `Claude Code process exited with code N` | [Wrapper and IDE errors](#claude-code-process-exited-with-code-n) |309| `Claude Code process exited with code N` | [Wrapper and IDE errors](#claude-code-process-exited-with-code-n) |

284| `The connection to Claude Code ended before this message completed` | [Wrapper and IDE errors](#the-connection-to-claude-code-ended-before-this-message-completed) |310| `The connection to Claude Code ended before this message completed` | [Wrapper and IDE errors](#the-connection-to-claude-code-ended-before-this-message-completed) |


291| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Configuration warnings](#fullscreen-failed-start-notice) |317| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Configuration warnings](#fullscreen-failed-start-notice) |

292| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) |318| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) |

293| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) |319| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) |

320| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [Configuration warnings](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |

294| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) |321| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) |

295| `is a network path, which cannot be added as a working directory` | [Configuration warnings](#working-directory-is-a-network-path) |322| `is a network path, which cannot be added as a working directory` | [Configuration warnings](#working-directory-is-a-network-path) |

296| `Remote managed settings failed to load (<cause>)` | [Configuration warnings](#remote-managed-settings-failed-to-load) |323| `Remote managed settings failed to load (<cause>)` | [Configuration warnings](#remote-managed-settings-failed-to-load) |

297| `Managed settings were not approved; exiting without applying them.` | [Configuration warnings](#managed-settings-were-not-approved) |324| `Managed settings were not approved; exiting without applying them.` | [Configuration warnings](#managed-settings-were-not-approved) |

325| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [Configuration warnings](#managed-settings-block-the-default-model) |

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

299| `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) |327| `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) |

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


313 Pengulangan otomatis341 Pengulangan otomatis

314</h2>342</h2>

315 343 

316Claude Code mengulangi kegagalan transien hingga 10 kali dengan exponential backoff sebelum menampilkan kesalahan kepada Anda. Tidak selalu mengulangi kegagalan yang tiba di tengah respons Claude. Ketika Anda melihat salah satu kesalahan di halaman ini, Claude Code telah membuat pengulangan apa pun yang berlaku untuk kegagalan tersebut; daftar di bawah mengatakan kegagalan mana yang mendapat anggaran penuh, mana yang mendapat anggaran lebih kecil, dan mana yang tidak mendapat apa pun.344Claude Code mengulangi kegagalan transien hingga 10 kali dengan exponential backoff sebelum menampilkan kesalahan kepada Anda. Tidak selalu mengulangi kegagalan yang tiba di tengah respons Claude. Ketika Anda melihat salah satu kesalahan di halaman ini, Claude Code telah membuat pengulangan apa pun yang berlaku untuk kegagalan tersebut.

317 345 

318Claude Code mengulangi kegagalan ini:346Claude Code mengulangi kegagalan ini:

319 347 


392 420 

393Ini menunjukkan kegagalan yang tidak terduga di dalam API. Ini tidak disebabkan oleh prompt, pengaturan, atau akun Anda.421Ini menunjukkan kegagalan yang tidak terduga di dalam API. Ini tidak disebabkan oleh prompt, pengaturan, atau akun Anda.

394 422 

423Ketika proxy, load balancer, atau gateway menjawab dengan halaman kesalahan HTML, pesan menampilkan kode status dan judul halaman, seperti `API Error: 502 Bad Gateway`. Untuk halaman tanpa judul, pesan menampilkan kode status dan nama standarnya. Sebelum v2.1.281, kode status dijatuhkan ketika halaman memiliki judul, dan markup mentah halaman dicetak ketika tidak ada.

424 

395**Yang harus dilakukan:**425**Yang harus dilakukan:**

396 426 

397* Periksa [status.claude.com](https://status.claude.com), atau halaman status penyedia yang disebutkan dalam pesan, untuk insiden aktif427* Periksa [status.claude.com](https://status.claude.com), atau halaman status penyedia yang disebutkan dalam pesan, untuk insiden aktif


416 446 

417* Periksa [status.claude.com](https://status.claude.com), atau halaman status penyedia yang disebutkan dalam pesan, untuk pemberitahuan kapasitas447* Periksa [status.claude.com](https://status.claude.com), atau halaman status penyedia yang disebutkan dalam pesan, untuk pemberitahuan kapasitas

418* Coba lagi dalam beberapa menit448* Coba lagi dalam beberapa menit

419* Jalankan `/model` dan beralih ke model yang berbeda untuk terus bekerja, karena kapasitas dilacak per model. Claude Code meminta Anda untuk melakukan ini ketika satu model mengalami beban yang sangat tinggi, misalnya `Opus is experiencing high load, please use /model to switch to Sonnet`.449* Jalankan `/model` dan beralih ke model yang berbeda untuk terus bekerja, karena kapasitas dilacak per model. Claude Code meminta Anda untuk melakukan ini ketika satu model mengalami beban yang sangat tinggi, misalnya `Opus is experiencing high load, please use /model to switch to Sonnet`. Pada model Fable pesan menyebutkan Fable.

450 

451 Dalam sesi yang dijalankan aplikasi Claude Desktop, seperti tab Code atau Cowork, pesan berbunyi `Opus is experiencing high load. Switch to Sonnet.` dan Anda beralih model dengan pemilih model aplikasi.

420 452 

421<h3 id="request-timed-out">453<h3 id="request-timed-out">

422 Request timed out454 Request timed out


433**Yang harus dilakukan:**465**Yang harus dilakukan:**

434 466 

435* Coba lagi permintaan467* Coba lagi permintaan

436* Untuk tugas yang berjalan lama, pecah pekerjaan menjadi prompt yang lebih kecil

437* Jika penyebabnya adalah jaringan lambat atau proxy, naikkan `API_TIMEOUT_MS` seperti yang dijelaskan dalam [Automatic retries](#automatic-retries)468* Jika penyebabnya adalah jaringan lambat atau proxy, naikkan `API_TIMEOUT_MS` seperti yang dijelaskan dalam [Automatic retries](#automatic-retries)

438* Jika waktu tunggu sering terjadi dan jaringan Anda sehat, lihat [Network and connection errors](#network-and-connection-errors) di bawah469* Jika waktu tunggu sering terjadi dan jaringan Anda sehat, lihat [Network and connection errors](#network-and-connection-errors) di bawah

439 470 


457**Yang harus dilakukan:**488**Yang harus dilakukan:**

458 489 

459* Kirim pesan Anda lagi. Pesan asli Anda masih ada dalam percakapan, jadi untuk prompt yang panjang Anda dapat mengetik `try again` alih-alih menempel seluruh hal.490* Kirim pesan Anda lagi. Pesan asli Anda masih ada dalam percakapan, jadi untuk prompt yang panjang Anda dapat mengetik `try again` alih-alih menempel seluruh hal.

460* Jika terulang, perlakukan sebagai [network or proxy problem](#unable-to-connect-to-api). Proxy yang menerima koneksi dan tidak pernah meneruskan permintaan menghasilkan kesalahan ini pada setiap upaya.491* Jika terulang, perlakukan sebagai [network or proxy problem](#unable-to-connect-to-api).

461* Jika proxy atau gateway di jaringan Anda menahan respons hingga selesai, naikkan `API_TIMEOUT_MS` sehingga percobaan ulang menunggu lebih lama. Di Amazon Bedrock, naikkan `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` juga.492* Jika proxy atau gateway di jaringan Anda menahan respons hingga selesai, naikkan `API_TIMEOUT_MS` sehingga percobaan ulang menunggu lebih lama. Di Amazon Bedrock, naikkan `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` juga.

462* Jika upaya pertama terus habis waktu dan percobaan ulang kemudian berhasil, naikkan `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` sehingga upaya pertama juga menunggu cukup lama.493* Jika upaya pertama terus habis waktu dan percobaan ulang kemudian berhasil, naikkan `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` sehingga upaya pertama juga menunggu cukup lama.

463 494 


474API Error: Connection lost mid-response. The response above may be incomplete.505API Error: Connection lost mid-response. The response above may be incomplete.

475API Error: Your computer went to sleep mid-response. The response above may be incomplete.506API Error: Your computer went to sleep mid-response. The response above may be incomplete.

476API Error: The response stopped arriving. The response above may be incomplete.507API Error: The response stopped arriving. The response above may be incomplete.

508API Error: Part of the response never arrived. The response above may be incomplete.

509API Error: The response stream was malformed. The response above may be incomplete.

477```510```

478 511 

479* `Server error mid-response`: kesalahan server overloaded atau 5xx mid-stream. Varian ini memerlukan Claude Code v2.1.199 atau lebih baru; sebelumnya kasus itu membuang output parsial dan melaporkan seluruh giliran sebagai kesalahan.512* `Server error mid-response`: kesalahan server overloaded atau 5xx mid-stream. Varian ini memerlukan Claude Code v2.1.199 atau lebih baru; sebelumnya kasus itu membuang output parsial dan melaporkan seluruh giliran sebagai kesalahan.

480* `Connection lost mid-response`: koneksi putus.513* `Connection lost mid-response`: koneksi putus. Anda juga melihat varian ini ketika proxy atau gateway mengakhiri badan respons dengan bersih sebelum respons selesai.

481* `Your computer went to sleep mid-response`: Claude Code mendeteksi bahwa komputer Anda tertidur saat respons streaming. Setelah komputer Anda bangun, Claude Code memperlakukan koneksi sebagai rusak dan berhenti membacanya.514* `Your computer went to sleep mid-response`: Claude Code mendeteksi bahwa komputer Anda tertidur saat respons streaming. Setelah komputer Anda bangun, Claude Code memperlakukan koneksi sebagai rusak dan berhenti membacanya.

515* `Part of the response never arrived`: peristiwa aliran dijatuhkan antara API dan Claude Code, jadi peristiwa yang lebih baru mereferensikan konten yang tidak pernah tiba. Sebelum v2.1.281, kasus ini mengakhiri giliran dengan `API Error: Content block not found`.

516* `The response stream was malformed`: peristiwa tiba untuk blok konten yang sudah selesai, atau peristiwa tiba rusak. Peristiwa yang rusak adalah peristiwa yang datanya bukan JSON yang valid, yang kontennya hilang, atau yang kontennya tidak cocok dengan jenis peristiwa. Sebelum v2.1.284, kesalahan parser mentah, seperti yang dimulai dengan `API Error: JSON Parse error`, muncul sebagai gantinya ketika peristiwa dengan JSON yang tidak valid tiba setelah Claude menyelesaikan pemikirannya, blok teks, atau panggilan alat.

482* `The response stopped arriving`: koneksi tetap terbuka tetapi berhenti mengirimkan data, jadi watchdog streaming idle membatalkannya. Sebelum v2.1.222, Claude Code juga dapat melaporkan kegagalan ini pada koneksi [gateway](/docs/id/gateways) yang dicapai melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL` sementara ping keep-alive server masih tiba, karena hanya menghitung peristiwa respons yang diurai di sana; upgrade menghentikan waktu tunggu palsu itu di rute tersebut. Gateway yang dicapai melalui URL dasar penyedia seperti `ANTHROPIC_BEDROCK_BASE_URL` tidak dibungkus oleh watchdog byte; lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs).517* `The response stopped arriving`: koneksi tetap terbuka tetapi berhenti mengirimkan data, jadi watchdog streaming idle membatalkannya. Sebelum v2.1.222, Claude Code juga dapat melaporkan kegagalan ini pada koneksi [gateway](/docs/id/gateways) yang dicapai melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL` sementara ping keep-alive server masih tiba, karena hanya menghitung peristiwa respons yang diurai di sana; upgrade menghentikan waktu tunggu palsu itu di rute tersebut. Gateway yang dicapai melalui URL dasar penyedia seperti `ANTHROPIC_BEDROCK_BASE_URL` tidak dibungkus oleh watchdog byte; lihat [Streaming idle watchdogs](/docs/id/network-config#streaming-idle-watchdogs).

483 518 

484Sebelum v2.1.227, `Connection lost mid-response` membaca `Connection closed mid-response` dan `The response stopped arriving` membaca `Response stalled mid-stream`.519Sebelum v2.1.227, `Connection lost mid-response` membaca `Connection closed mid-response` dan `The response stopped arriving` membaca `Response stalled mid-stream`.

485 520 

521Ketika peristiwa aliran yang dijatuhkan, diduplikasi, atau rusak tiba sebelum Claude memulai teks atau panggilan alat apa pun, Anda tidak melihat pemberitahuan ini:

522 

523* Jika Claude hanya menyelesaikan pemikirannya, Claude Code mengeluarkan kembali permintaan. Ketika aliran yang diterbitkan kembali putus dengan cara yang sama, giliran berakhir dengan `Part of the response never arrived and no response was produced. Try again.` atau `The response stream was malformed and no response was produced. Try again.`

524* Jika tidak ada yang selesai, Claude Code mengirim ulang permintaan tanpa streaming. Jika Anda mematikan fallback itu dengan [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK`](/docs/id/env-vars), giliran berakhir dengan `API Error: Content block not found` untuk peristiwa yang dijatuhkan atau `API Error: Content block already closed` untuk peristiwa yang diduplikasi. Untuk peristiwa yang rusak dengan fallback dimatikan, giliran berakhir dengan `API Error: Stream event unreadable` atau kesalahan parser mentah.

525 

486Dalam empat kasus, Claude Code menangani kegagalan tanpa menampilkan pemberitahuan ini segera:526Dalam empat kasus, Claude Code menangani kegagalan tanpa menampilkan pemberitahuan ini segera:

487 527 

488* Sebelumnya dalam respons, Claude Code baik mencoba ulang kegagalan atau mengakhiri giliran dengan kesalahan yang berbeda. Lihat [Automatic retries](#automatic-retries).528* Sebelumnya dalam respons, Claude Code baik mencoba ulang kegagalan atau mengakhiri giliran dengan kesalahan yang berbeda. Lihat [Automatic retries](#automatic-retries).


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

513```553```

514 554 

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

516 556 

517Ketika tidak ada kategori yang cocok, pesan muncul tanpa kategori dalam tanda kurung; lebih dari satu kegagalan menghasilkan bentuk itu. Di [Amazon Bedrock](/docs/id/amazon-bedrock), termasuk [Mantle endpoint](/docs/id/amazon-bedrock#use-the-mantle-endpoint), itu juga muncul ketika akun AWS Anda tidak dapat memanggil model yang disebutkan dalam pesan, dan kegagalan itu terulang pada setiap percobaan ulang sampai akun Anda diberi akses ke model.557Ketika tidak ada kategori yang cocok, pesan muncul tanpa kategori dalam tanda kurung; lebih dari satu kegagalan menghasilkan bentuk itu. Di [Amazon Bedrock](/docs/id/amazon-bedrock), termasuk [Mantle endpoint](/docs/id/amazon-bedrock#use-the-mantle-endpoint), itu juga muncul ketika akun AWS Anda tidak dapat memanggil model yang disebutkan dalam pesan, dan kegagalan itu terulang pada setiap percobaan ulang sampai akun Anda diberi akses ke model.

518 558 


533**Yang harus dilakukan:**573**Yang harus dilakukan:**

534 574 

535* Coba lagi tindakan; ini biasanya berhasil pada upaya berikutnya575* Coba lagi tindakan; ini biasanya berhasil pada upaya berikutnya

536* Jalankan `claude --debug` dan ulangi tindakan untuk melihat respons pengklasifikasi yang mendasar dalam log debug576* Jalankan `claude --debug` dan ulangi tindakan untuk detail dalam log debug

537 577 

538Ketika pemeriksaan keamanan API terpisah memblokir permintaan pengklasifikasi karena konten percakapan sebelumnya:578Ketika pemeriksaan keamanan API terpisah memblokir permintaan pengklasifikasi karena konten percakapan sebelumnya:

539 579 


641You've hit your Sonnet limit · resets 3:45pm681You've hit your Sonnet limit · resets 3:45pm

642```682```

643 683 

644Blok Claude Code memblokir permintaan lebih lanjut hingga waktu reset yang ditunjukkan dalam pesan. Batas sesi dan mingguan dibagikan di semua model, jadi beralih model tidak mengembalikan akses. Batas Opus dan Sonnet masing-masing hanya berlaku untuk permintaan ke keluarga model tersebut, jadi beralih ke model di luar keluarga dengan `/model` membuat Anda tetap bekerja.684Claude Code memblokir permintaan lebih lanjut hingga waktu reset yang ditunjukkan dalam pesan. Batas sesi dan mingguan dibagikan di semua model, jadi beralih model tidak mengembalikan akses. Batas Opus dan Sonnet masing-masing hanya berlaku untuk permintaan ke keluarga model tersebut, jadi beralih ke model di luar keluarga dengan `/model` membuat Anda tetap bekerja.

645 685 

646Dalam sesi interaktif yang masuk dengan langganan claude.ai, Claude Code juga dapat menunggu di sesi terbuka dan melanjutkan tugas yang terputus segera setelah reset. Saat menunggu, baris di bagian bawah sesi berbunyi `Usage limit reached · continuing automatically at 3:45pm · esc to cancel`. Tekan `Esc` pada prompt kosong untuk membatalkan penantian. Lihat [Wait for a usage limit to reset](/docs/id/interactive-mode#wait-for-a-usage-limit-to-reset) untuk melihat apa yang Anda lihat, cara memulai atau membatalkan penantian, dan cara mematikan lanjutan otomatis. Sebelum v2.1.234, Claude Code tidak menawarkan penantian ini.686Dalam sesi interaktif yang masuk dengan langganan claude.ai, Claude Code juga dapat menunggu di sesi terbuka dan melanjutkan tugas yang terputus segera setelah reset. Saat menunggu, baris di bagian bawah sesi berbunyi `Usage limit reached · continuing automatically at 3:45pm · esc to cancel`. Tekan `Esc` pada prompt kosong untuk membatalkan penantian. Lihat [Wait for a usage limit to reset](/docs/id/interactive-mode#wait-for-a-usage-limit-to-reset) untuk melihat apa yang Anda lihat, cara memulai atau membatalkan penantian, dan cara mematikan lanjutan otomatis. Sebelum v2.1.234, Claude Code tidak menawarkan penantian ini.

647 687 


668API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context708API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context

669```709```

670 710 

671Ini adalah pemeriksaan hak akses, bukan kehabisan kuota. Ini muncul bahkan ketika tunjangan sesi dan mingguan Anda memiliki kapasitas yang tersisa. Lihat [Extended context](/docs/id/model-config#extended-context) untuk paket mana yang mencakup konteks 1M secara langsung dan mana yang memerlukan usage credits. Claude Code menjalankan pemeriksaan ini ketika Anda memilih model dengan `/model`, dan hanya pada koneksi langsung ke API Anthropic; jika Anda menunjuk `ANTHROPIC_BASE_URL` ke [LLM gateway](/docs/id/llm-gateway), `/model` memungkinkan pemilihan `[1m]` dan gateway memutuskan apakah permintaan berhasil.711Dalam sesi yang dijalankan aplikasi Claude Desktop, petunjuk tidak menyebutkan perintah apa pun: petunjuk menunjuk ke halaman pengaturan penggunaan claude.ai, atau pada paket Team dan Enterprise mengatakan untuk mengaktifkan usage credits di claude.ai/admin-settings/usage atau untuk meminta admin Anda.

712 

713Ini adalah pemeriksaan hak akses, bukan kehabisan kuota. Ini muncul bahkan ketika tunjangan sesi dan mingguan Anda memiliki kapasitas yang tersisa. Lihat [Extended context](/docs/id/model-config#extended-context) untuk paket mana yang mencakup konteks 1M secara langsung dan mana yang memerlukan usage credits.

672 714 

673Ketika kesalahan ini muncul di tengah percakapan karena konteks tumbuh melampaui 200K token, Claude Code secara otomatis mengompres percakapan kembali di bawah batas konteks standar dan menjaga sesi pada batas itu sesudahnya, jadi tidak ada tindakan yang diperlukan. Pada versi sebelum v2.1.172, kesalahan berulang pada setiap permintaan berikutnya termasuk `/compact`; jalankan `/clear` pada versi tersebut untuk pulih. Langkah-langkah di bawah berlaku ketika Anda secara eksplisit memilih model `[1m]`.715Ketika kesalahan ini muncul di tengah percakapan karena konteks tumbuh melampaui 200K token, Claude Code secara otomatis mengompres percakapan kembali di bawah batas konteks standar dan menjaga sesi pada batas itu sesudahnya, jadi tidak ada tindakan yang diperlukan. Pada versi sebelum v2.1.172, kesalahan berulang pada setiap permintaan berikutnya termasuk `/compact`; jalankan `/clear` pada versi tersebut untuk pulih. Langkah-langkah di bawah berlaku ketika Anda secara eksplisit memilih model `[1m]`.

674 716 


733 775 

734Kalimat di akhir menyebutkan di mana memeriksa kesehatan layanan dan bervariasi menurut penyedia. Konfigurasi Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry menyebutkan status layanan penyedia itu sebagai gantinya dari halaman status Anthropic. `ANTHROPIC_BASE_URL` kustom menyebutkan host gateway.776Kalimat di akhir menyebutkan di mana memeriksa kesehatan layanan dan bervariasi menurut penyedia. Konfigurasi Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry menyebutkan status layanan penyedia itu sebagai gantinya dari halaman status Anthropic. `ANTHROPIC_BASE_URL` kustom menyebutkan host gateway.

735 777 

778Ketika proxy, load balancer, atau gateway antara Claude Code dan API menjawab dengan halaman HTML 429-nya sendiri, teks setelah `·` adalah judul halaman itu ketika memiliki satu, seperti `Too Many Requests`. Sebelum v2.1.281, markup halaman lengkap dicetak setelah `·`.

779 

736**Yang harus dilakukan:**780**Yang harus dilakukan:**

737 781 

738* Jalankan `/status` dan konfirmasi kredensial aktif adalah yang Anda harapkan. `ANTHROPIC_API_KEY` yang tersesat di lingkungan Anda dapat merutekan permintaan melalui kunci tingkat rendah daripada langganan Anda.782* Jalankan `/status` dan konfirmasi kredensial aktif adalah yang Anda harapkan. `ANTHROPIC_API_KEY` yang tersesat di lingkungan Anda dapat merutekan permintaan melalui kunci tingkat rendah daripada langganan Anda.


839Not logged in · Please run /login883Not logged in · Please run /login

840```884```

841 885 

886Dalam sesi yang dijalankan aplikasi Claude Desktop, seperti tab Code atau Cowork, pesan berbunyi `Authentication required · Sign in again to continue`, dan Anda masuk lagi dari aplikasi.

887 

842**Yang harus dilakukan:**888**Yang harus dilakukan:**

843 889 

844* Jalankan `/login` untuk autentikasi dengan langganan Claude Anda atau akun Console890* Jalankan `/login` untuk autentikasi dengan langganan Claude atau akun Console Anda

845* Jika Anda mengharapkan variabel lingkungan untuk mengautentikasi Anda, konfirmasi bahwa `ANTHROPIC_API_KEY` diatur dan diekspor di shell tempat Anda meluncurkan `claude`891* Jika Anda mengharapkan variabel lingkungan untuk mengautentikasi Anda, konfirmasi bahwa `ANTHROPIC_API_KEY` diatur dan diekspor di shell tempat Anda meluncurkan `claude`

846* Untuk CI atau otomasi di mana login interaktif tidak mungkin, konfigurasikan skrip [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) yang mengambil kunci saat startup892* Untuk CI atau otomasi di mana login interaktif tidak mungkin, konfigurasikan skrip [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) yang mengambil kunci saat startup

847* Lihat [Prioritas autentikasi](/docs/id/authentication#authentication-precedence) untuk memahami kredensial mana yang digunakan Claude Code ketika beberapa ada893* Lihat [Urutan prioritas autentikasi](/docs/id/authentication#authentication-precedence) untuk memahami kredensial mana yang digunakan Claude Code ketika beberapa tersedia

848 894 

849Jika Anda diminta untuk masuk berulang kali, lihat [Belum masuk atau token kedaluwarsa](/docs/id/troubleshoot-install#not-logged-in-or-token-expired) untuk pemeriksaan jam sistem dan langkah pemulihan penyimpanan kredensial macOS.895Jika Anda diminta untuk masuk berulang kali, lihat [Belum masuk atau token kedaluwarsa](/docs/id/troubleshoot-install#not-logged-in-or-token-expired) untuk pemeriksaan jam sistem dan langkah pemulihan penyimpanan kredensial macOS.

850 896 


852 Tidak dapat menyelesaikan metode autentikasi898 Tidak dapat menyelesaikan metode autentikasi

853</h3>899</h3>

854 900 

855Sesi mencapai klien API tanpa kredensial apa pun. [Sesi latar belakang](/docs/id/agent-view) dan sesi cloud menampilkan pesan ini ketika pekerja dimulai tanpa kredensial. Jalankan interaktif, `-p`, dan Agent SDK melaporkan kondisi yang sama seperti [Belum masuk](#not-logged-in) dan menulis string ini hanya ke log debug mereka, jadi jika Anda menemukannya di sana, ikuti entri itu sebagai gantinya.901Sesi mencapai klien API tanpa kredensial apa pun. [Sesi latar belakang](/docs/id/agent-view) dan sesi cloud menampilkan pesan ini ketika worker dimulai tanpa kredensial. Jalankan interaktif, `-p`, dan Agent SDK melaporkan kondisi yang sama seperti [Belum masuk](#not-logged-in) dan menulis string ini hanya ke log debug mereka, jadi jika Anda menemukannya di sana, ikuti entri itu sebagai gantinya.

856 902 

857```text theme={null}903```text theme={null}

858Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted904Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

859```905```

860 906 

861Pada versi saat ini, kesalahan berarti tidak ada kredensial yang tersedia untuk proses pekerja. Sebelum v2.1.174, sesi latar belakang yang ditugaskan ke pekerja pra-inisialisasi yang menganggur dapat gagal dengan cara ini bahkan ketika kredensial yang valid dikonfigurasi. Sebelum v2.1.176, sesi cloud yang menganggur sebelum diklaim juga dapat. Tingkatkan untuk memulihkan.907Pada versi saat ini, kesalahan berarti tidak ada kredensial yang tersedia untuk proses worker. Sebelum v2.1.174, sesi latar belakang yang ditugaskan ke worker yang sudah diinisialisasi dan menganggur dapat gagal dengan cara ini bahkan ketika kredensial yang valid dikonfigurasi. Sebelum v2.1.176, sesi cloud yang menganggur sebelum diklaim juga dapat. Tingkatkan untuk memulihkan.

862 908 

863**Yang harus dilakukan:**909**Yang harus dilakukan:**

864 910 

865* Tingkatkan ke v2.1.176 atau lebih baru jika ini muncul dalam sesi latar belakang atau cloud dan kredensial Anda sudah dikonfigurasi911* Tingkatkan ke v2.1.176 atau lebih baru jika ini muncul dalam sesi latar belakang atau cloud dan kredensial Anda sudah dikonfigurasi

866* Konfirmasi bahwa `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN`, atau kredensial penyedia cloud Anda diatur di lingkungan yang meluncurkan pekerja, bukan hanya di shell interaktif Anda912* Konfirmasi bahwa `ANTHROPIC_API_KEY`, `CLAUDE_CODE_OAUTH_TOKEN`, atau kredensial penyedia cloud Anda diatur di lingkungan yang meluncurkan worker, bukan hanya di shell interaktif Anda

867* Untuk Agent SDK, lihat [pengaturan autentikasi dalam panduan cepat](/docs/id/agent-sdk/quickstart#setup)913* Untuk Agent SDK, lihat [pengaturan autentikasi dalam quickstart](/docs/id/agent-sdk/quickstart#setup)

868* Jalankan `/status` dalam sesi interaktif di lingkungan yang sama untuk mengonfirmasi sumber kredensial mana yang diselesaikan914* Jalankan `/status` dalam sesi interaktif di lingkungan yang sama untuk mengonfirmasi sumber kredensial mana yang diselesaikan

869 915 

870<h3 id="invalid-api-key">916<h3 id="invalid-api-key">


877Invalid API key · Fix external API key923Invalid API key · Fix external API key

878```924```

879 925 

880Ketika pesan berlanjut melampaui `Fix external API key` dengan deskripsi seperti `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`, API tidak pernah melihat kunci. Claude Code menemukan karakter yang tidak dapat dibawa oleh header HTTP dan menghentikan permintaan sebelum mengirimnya. Lihat [Nilai header permintaan tidak valid](#invalid-request-header-value) untuk cara membaca deskripsi dan memperbaiki nilai.926Ketika pesan berlanjut melampaui `Fix external API key` dengan deskripsi seperti `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`, API tidak pernah melihat kunci. Claude Code menemukan karakter yang tidak dapat dibawa header HTTP dan menghentikan permintaan sebelum mengirimnya. Lihat [Nilai header permintaan tidak valid](#invalid-request-header-value) untuk cara membaca deskripsi dan memperbaiki nilai.

881 927 

882**Yang harus dilakukan:**928**Yang harus dilakukan:**

883 929 


893 939 

894Claude Code menjalankan perintah dalam pengaturan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) Anda dan tidak mendapatkan kunci kembali. Tanpa satu, permintaan mencapai API dengan kredensial placeholder, dan API menolaknya dengan `401`. Panel `Authentication` di terminal menunjukkan mana dari ini yang terjadi:940Claude Code menjalankan perintah dalam pengaturan [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) Anda dan tidak mendapatkan kunci kembali. Tanpa satu, permintaan mencapai API dengan kredensial placeholder, dan API menolaknya dengan `401`. Panel `Authentication` di terminal menunjukkan mana dari ini yang terjadi:

895 941 

896* Perintah keluar dengan kesalahan atau waktu habis942* Perintah keluar dengan kesalahan atau habis waktu

897* Perintah tidak mencetak apa pun ke stdout943* Perintah tidak mencetak apa pun ke stdout

898* Perintah mencetak sesuatu selain kunci, seperti spanduk login atau baris log. Panel menunjukkan `returned output that cannot be used as an API key` dan mengatakan apa yang salah, tanpa mengulangi output. Sebelum v2.1.227, Claude Code mengirim apa pun yang dicetak perintah, setelah memangkas spasi putih di sekitarnya.944* Perintah mencetak sesuatu selain kunci, seperti banner login atau baris log. Panel menampilkan `returned output that cannot be used as an API key` dan mengatakan apa yang salah, tanpa mengulangi output. Sebelum v2.1.227, Claude Code mengirim apa pun yang dicetak perintah, setelah memangkas spasi putih di sekitarnya.

899 945 

900```text theme={null}946```text theme={null}

901Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output947Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output


905 951 

906Claude Code menjalankan kembali skrip dan mencoba kembali permintaan hingga dua kali lagi sebelum menampilkan pesan ini, jadi kegagalan muncul dalam tiga upaya. Sebelum v2.1.208, Claude Code menghabiskan [anggaran percobaan ulang](#automatic-retries) penuh mengirim ulang permintaan dengan kredensial placeholder dan kemudian melaporkan kesalahan autentikasi `401` generik sebagai gantinya dari kegagalan skrip.952Claude Code menjalankan kembali skrip dan mencoba kembali permintaan hingga dua kali lagi sebelum menampilkan pesan ini, jadi kegagalan muncul dalam tiga upaya. Sebelum v2.1.208, Claude Code menghabiskan [anggaran percobaan ulang](#automatic-retries) penuh mengirim ulang permintaan dengan kredensial placeholder dan kemudian melaporkan kesalahan autentikasi `401` generik sebagai gantinya dari kegagalan skrip.

907 953 

908Menjalankan `/login` tidak membantu di sini: output pembantu [mengambil prioritas](/docs/id/authentication#authentication-precedence) atas login yang disimpan selama pengaturan ada.954Menjalankan `/login` tidak membantu di sini: output helper [mengambil prioritas](/docs/id/authentication#authentication-precedence) atas login yang disimpan selama pengaturan ada.

909 955 

910**Yang harus dilakukan:**956**Yang harus dilakukan:**

911 957 

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

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

914* 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.960* Perbaiki perintah sehingga hanya mencetak kunci ke stdout, sebagai token tunggal ASCII yang dapat dicetak 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.

915* 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.961* Jalankan `/status` untuk melihat kegagalan dan konfirmasi bahwa `apiKeyHelper` adalah sumber kredensial aktif. Baris `apiKeyHelper` menampilkan `Failing` dengan detail kegagalan terakhir, seperti kode keluar dan output kesalahan perintah, dan hilang setelah jalankan berhasil berikutnya. Sebelum v2.1.274, `/status` hanya menampilkan sumber kredensial, bukan kegagalan.

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

917 963 

918<h3 id="invalid-request-header-value">964<h3 id="invalid-request-header-value">

919 Nilai header permintaan tidak valid965 Nilai header permintaan tidak valid

920</h3>966</h3>

921 967 

922Nilai yang Claude Code akan kirim sebagai header permintaan berisi karakter yang tidak dapat dibawa oleh header HTTP: jeda baris, byte NUL, atau karakter di atas `U+00FF`, seperti tanda kutip melengkung atau spasi lebar nol. Claude Code menghentikan permintaan sebelum apa pun dikirim dan menamai variabel atau pengaturan untuk diperbaiki. Penyebab umum adalah kredensial yang ditempel dari dokumen atau obrolan yang membawa karakter tak terlihat atau jeda baris yang tersesat.968Nilai yang akan dikirim Claude Code sebagai header permintaan berisi karakter yang tidak dapat dibawa header HTTP: jeda baris, byte NUL, atau karakter di atas `U+00FF`, seperti tanda kutip melengkung atau spasi lebar nol. Claude Code menghentikan permintaan sebelum apa pun dikirim dan menamai variabel atau pengaturan untuk diperbaiki. Penyebab biasanya adalah kredensial yang ditempel dari dokumen atau obrolan yang membawa karakter tak terlihat atau jeda baris yang tersesat.

923 969 

924Claude Code menjalankan pemeriksaan ini ketika mengirim permintaan ke Claude API secara langsung atau melalui [gateway LLM](/docs/id/llm-gateway). Pada penyedia cloud pihak ketiga seperti [Amazon Bedrock](/docs/id/amazon-bedrock), Claude Code tidak menjalankannya sebelum mengirim.970Claude Code menjalankan pemeriksaan ini ketika mengirim permintaan ke Claude API secara langsung atau melalui [gateway LLM](/docs/id/llm-gateway). Pada penyedia cloud pihak ketiga seperti [Amazon Bedrock](/docs/id/amazon-bedrock), Claude Code tidak menjalankannya sebelum mengirim.

925 971 


929Invalid request header from the environment · Fix the environment variable975Invalid request header from the environment · Fix the environment variable

930```976```

931 977 

932Bagian pertama dari pesan tergantung pada tempat nilai buruk berasal:978Bagian pertama pesan tergantung pada tempat nilai buruk berasal:

933 979 

934* `Invalid auth token`: token pembawa dari [`ANTHROPIC_AUTH_TOKEN`](/docs/id/env-vars) atau [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/env-vars)980* `Invalid auth token`: token pembawa dari [`ANTHROPIC_AUTH_TOKEN`](/docs/id/env-vars) atau [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/env-vars)

935* `Invalid ANTHROPIC_CUSTOM_HEADERS`: nama header atau nilai yang Anda atur dalam [`ANTHROPIC_CUSTOM_HEADERS`](/docs/id/env-vars). Deskripsi menghitung pasangan `Name: Value` mana yang bersalah, seperti `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`, tanpa mengulangi nama atau nilai, karena Anda memilih keduanya.981* `Invalid ANTHROPIC_CUSTOM_HEADERS`: nama header atau nilai yang Anda atur dalam [`ANTHROPIC_CUSTOM_HEADERS`](/docs/id/env-vars). Deskripsi menghitung pasangan `Name: Value` mana yang bersalah, seperti `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`, tanpa mengulangi nama atau nilai, karena Anda memilih keduanya.


943Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).989Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).

944```990```

945 991 

946Posisi menghitung karakter mulai dari satu. Deskripsi dibangun dari frasa tetap dan hitungan karakter, jadi tidak pernah menyertakan nilai itu sendiri. Ini menamai karakter yang menyinggung hanya ketika itu adalah karakter tak terlihat atau tipografi yang terkenal, seperti tanda urutan byte, spasi lebar nol, atau tanda kutip melengkung, dan melaporkan apa pun yang lain sebagai `a non-ASCII character`.992Posisi menghitung karakter mulai dari satu. Deskripsi dibangun dari frasa tetap dan penghitungan karakter, jadi tidak pernah menyertakan nilai itu sendiri. Ini menamai karakter yang menyinggung hanya ketika itu adalah karakter tak terlihat atau tipografi yang terkenal, seperti tanda urutan byte, spasi lebar nol, atau tanda kutip melengkung, dan melaporkan apa pun yang lain sebagai `a non-ASCII character`.

947 993 

948**Yang harus dilakukan:**994**Yang harus dilakukan:**

949 995 


972* Batalkan pengaturan `ANTHROPIC_API_KEY` di shell saat ini dan hapus dari profil shell Anda, kemudian luncurkan ulang `claude`1018* Batalkan pengaturan `ANTHROPIC_API_KEY` di shell saat ini dan hapus dari profil shell Anda, kemudian luncurkan ulang `claude`

973* Jika pesan mengatakan `Update or unset`, Anda tidak memiliki login yang disimpan untuk kembali. Batalkan pengaturan kunci dan jalankan `/login`, atau ganti kunci dengan yang dari organisasi Console aktif.1019* Jika pesan mengatakan `Update or unset`, Anda tidak memiliki login yang disimpan untuk kembali. Batalkan pengaturan kunci dan jalankan `/login`, atau ganti kunci dengan yang dari organisasi Console aktif.

974* Jalankan `/status` setelahnya untuk mengonfirmasi kredensial aktif adalah langganan Anda1020* Jalankan `/status` setelahnya untuk mengonfirmasi kredensial aktif adalah langganan Anda

975* Jika tidak ada variabel lingkungan yang diatur dan kesalahan berlanjut, organisasi yang dinonaktifkan adalah yang terikat pada `/login` Anda. Hubungi dukungan atau masuk dengan akun berbeda.1021* Jika tidak ada variabel lingkungan yang diatur dan kesalahan berlanjut, hubungi dukungan atau masuk dengan akun berbeda.

976 1022 

977<h3 id="your-organization-has-disabled-api-key-authentication">1023<h3 id="your-organization-has-disabled-api-key-authentication">

978 Organisasi Anda telah menonaktifkan autentikasi kunci API1024 Organisasi Anda telah menonaktifkan autentikasi kunci API


985Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead1031Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead

986Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account1032Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account

987Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account1033Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account

1034Your organization has disabled API key authentication · Sign in again with your claude.ai account

988```1035```

989 1036 

990Variabel lingkungan dan `apiKeyHelper` mengambil prioritas atas `/login`, jadi menjalankan `/login` saja tidak membantu sementara salah satu masih memasok kunci. Lihat [Prioritas autentikasi](/docs/id/authentication#authentication-precedence).1037Bentuk terakhir muncul dalam sesi yang dijalankan aplikasi Claude Desktop, seperti tab Code atau Cowork, di mana Anda masuk lagi dari aplikasi.

1038 

1039Variabel lingkungan dan `apiKeyHelper` mengambil prioritas atas `/login`, jadi menjalankan `/login` saja tidak membantu sementara salah satu masih memasok kunci. Lihat [Urutan prioritas autentikasi](/docs/id/authentication#authentication-precedence).

991 1040 

992**Yang harus dilakukan:**1041**Yang harus dilakukan:**

993 1042 


1007Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access1056Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

1008```1057```

1009 1058 

1010Ini adalah pengaturan organisasi sisi server, jadi tidak dapat ditimpa dari pengaturan lokal, variabel lingkungan, atau bendera CLI.1059Ini adalah pengaturan organisasi sisi server, jadi tidak dapat ditimpa dari pengaturan lokal, variabel lingkungan, atau flag CLI.

1011 1060 

1012Agent SDK dan mode non-interaktif `-p` menampilkan ini sebagai kode kesalahan `oauth_org_not_allowed`.1061Agent SDK dan mode non-interaktif `-p` menampilkan ini sebagai kode kesalahan `oauth_org_not_allowed`.

1013 1062 


1021 Rutinitas dinonaktifkan oleh kebijakan organisasi Anda1070 Rutinitas dinonaktifkan oleh kebijakan organisasi Anda

1022</h3>1071</h3>

1023 1072 

1024Pemilik dalam organisasi Tim atau Enterprise Anda telah mematikan rutinitas di tingkat organisasi. Kesalahan muncul ketika Anda mencoba membuat atau menjalankan rutinitas, misalnya dari UI [Rutinitas](/docs/id/routines) di claude.ai/code. Pada Claude Code v2.1.227 atau lebih baru, pengaturan yang sama juga [menyembunyikan `/schedule`](/docs/id/routines#troubleshooting) di CLI.1073An Owner dalam organisasi Tim atau Enterprise Anda telah mematikan rutinitas di tingkat organisasi. Kesalahan muncul ketika Anda mencoba membuat atau menjalankan rutinitas, misalnya dari UI [Rutinitas](/docs/id/routines) di claude.ai/code. Pada Claude Code v2.1.227 atau lebih baru, pengaturan yang sama juga [menyembunyikan `/schedule`](/docs/id/routines#troubleshooting) di CLI.

1025 1074 

1026```text theme={null}1075```text theme={null}

1027Routines are disabled by your organization's policy.1076Routines are disabled by your organization's policy.

1028```1077```

1029 1078 

1030Ini adalah pengaturan sisi server, jadi tidak dapat ditimpa dari pengaturan lokal, variabel lingkungan, atau bendera CLI.1079Ini adalah pengaturan sisi server, jadi tidak dapat ditimpa dari pengaturan lokal, variabel lingkungan, atau flag CLI.

1031 1080 

1032**Yang harus dilakukan:**1081**Yang harus dilakukan:**

1033 1082 


1038 Remote Control memerlukan Anthropic API1087 Remote Control memerlukan Anthropic API

1039</h3>1088</h3>

1040 1089 

1041Sesi tidak berbicara langsung dengan Anthropic API, jadi tidak ada backend claude.ai untuk [Remote Control](/docs/id/remote-control) untuk dipasangkan.1090Sesi tidak berbicara langsung ke Anthropic API, yang [Remote Control](/docs/id/remote-control) memerlukan.

1042 1091 

1043```text theme={null}1092```text theme={null}

1044Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.1093Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.


1049* Variabel penyedia `CLAUDE_CODE_USE_*`, seperti `CLAUDE_CODE_USE_BEDROCK` untuk [Amazon Bedrock](/docs/id/amazon-bedrock) atau `CLAUDE_CODE_USE_VERTEX` untuk [Platform Agen Google Cloud](/docs/id/google-vertex-ai)1098* Variabel penyedia `CLAUDE_CODE_USE_*`, seperti `CLAUDE_CODE_USE_BEDROCK` untuk [Amazon Bedrock](/docs/id/amazon-bedrock) atau `CLAUDE_CODE_USE_VERTEX` untuk [Platform Agen Google Cloud](/docs/id/google-vertex-ai)

1050* [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) menunjuk ke host selain `api.anthropic.com`, seperti [gateway LLM](/docs/id/llm-gateway) atau proxy, bahkan ketika Anda masuk dengan claude.ai; sebelum v2.1.196, URL dasar khusus tidak memblokir Remote Control1099* [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) menunjuk ke host selain `api.anthropic.com`, seperti [gateway LLM](/docs/id/llm-gateway) atau proxy, bahkan ketika Anda masuk dengan claude.ai; sebelum v2.1.196, URL dasar khusus tidak memblokir Remote Control

1051* `ANTHROPIC_UNIX_SOCKET` diatur, jadi sesi mengirim permintaannya melalui soket lokal daripada ke `api.anthropic.com`1100* `ANTHROPIC_UNIX_SOCKET` diatur, jadi sesi mengirim permintaannya melalui soket lokal daripada ke `api.anthropic.com`

1052* Masuk [gateway cloud](/docs/id/claude-apps-gateway) perusahaan melalui `/login`, yang tidak mendukung Remote Control dan tidak memiliki variabel untuk dibatalkan pengaturannya1101* Masuk [gateway cloud](/docs/id/claude-apps-gateway) perusahaan yang dibuat melalui `/login`, yang tidak mendukung Remote Control dan tidak memiliki variabel untuk dibatalkan pengaturannya

1053 1102 

1054**Yang harus dilakukan:**1103**Yang harus dilakukan:**

1055 1104 

1056* Batalkan pengaturan variabel yang dinamai pesan, seperti `CLAUDE_CODE_USE_BEDROCK` atau `ANTHROPIC_BASE_URL`, dan mulai ulang sesi, atau mulai Remote Control dari sesi yang berbicara langsung dengan Anthropic API1105* Batalkan pengaturan variabel yang dinamai pesan, seperti `CLAUDE_CODE_USE_BEDROCK` atau `ANTHROPIC_BASE_URL`, dan mulai ulang sesi, atau mulai Remote Control dari sesi yang berbicara langsung ke Anthropic API

1057* Jika variabel tidak diatur di shell Anda, periksa kunci `env` dalam [file pengaturan](/docs/id/settings#where-settings-live) Anda, yang menerapkan variabel lingkungan ke setiap sesi1106* Jika variabel tidak diatur di shell Anda, periksa kunci `env` dalam [file pengaturan](/docs/id/settings#where-settings-live) Anda, yang menerapkan variabel lingkungan ke setiap sesi

1058* Untuk pesan startup Remote Control ini dan lainnya, lihat [Troubleshoot Remote Control](/docs/id/remote-control#troubleshooting)1107* Untuk pesan startup Remote Control ini dan lainnya, lihat [Troubleshoot Remote Control](/docs/id/remote-control#troubleshooting)

1059 1108 


1083* ` OAuth token unavailable`: Claude Code tidak memiliki token login yang disimpan ketika kredensial koneksi jatuh tempo untuk pembaruan1132* ` OAuth token unavailable`: Claude Code tidak memiliki token login yang disimpan ketika kredensial koneksi jatuh tempo untuk pembaruan

1084* `OAuth token refresh failed`: claude.ai menolak token login yang disimpan Anda saat Claude Code terhubung kembali, dan menyegarkan token tidak menghasilkan yang baru1133* `OAuth token refresh failed`: claude.ai menolak token login yang disimpan Anda saat Claude Code terhubung kembali, dan menyegarkan token tidak menghasilkan yang baru

1085* `JWT refresh failed: no OAuth token`: Claude Code tidak menemukan token login yang disimpan untuk diperbarui1134* `JWT refresh failed: no OAuth token`: Claude Code tidak menemukan token login yang disimpan untuk diperbarui

1086* ` Signed out of Claude`: Anda keluar di mesin ini, misalnya dengan menjalankan `/logout` di terminal lain, jadi Claude Code tidak memiliki login yang disimpan untuk memperbarui koneksi1135* ` Signed out of Claude`: Anda keluar di mesin ini, misalnya dengan menjalankan `/logout` di terminal lain, jadi Claude Code tidak memiliki login yang disimpan lagi untuk memperbarui koneksi

1087 1136 

1088**Yang harus dilakukan:**1137**Yang harus dilakukan:**

1089 1138 

1090* Jalankan `/login` untuk masuk lagi1139* Jalankan `/login` untuk masuk lagi

1091* Jalankan `/remote-control` untuk menghubungkan kembali sesi. Pesan yang berakhir `run /login to restore Remote Control` tidak memerlukan langkah ini: Claude Code terhubung kembali dengan sendirinya setelah Anda masuk.1140* Jalankan `/remote-control` untuk menghubungkan kembali sesi. Pesan yang berakhir `run /login to restore Remote Control` tidak memerlukan langkah ini: Claude Code terhubung kembali dengan sendirinya setelah Anda masuk.

1092 1141 

1093Sebelum v2.1.224, `OAuth token refresh failed — run /login to re-authenticate` membaca `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`, dan `JWT refresh failed: no OAuth token — run /login` membaca `no OAuth token available for recovery (code <N>)`. Pesan `Claude.ai login expired`, `Claude.ai login was rejected`, dan `OAuth token unavailable` ditambahkan dalam v2.1.225.1142Sebelum v2.1.224, `OAuth token refresh failed — run /login to re-authenticate` berbunyi `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`, dan `JWT refresh failed: no OAuth token — run /login` berbunyi `no OAuth token available for recovery (code <N>)`. Pesan `Claude.ai login expired`, `Claude.ai login was rejected`, dan `OAuth token unavailable` ditambahkan dalam v2.1.225.

1094 1143 

1095Sebelum v2.1.238, Claude Code melaporkan kasus yang sekarang mengatakan `Signed out of Claude` sebagai `JWT refresh failed: no OAuth token — run /login`, dan menghentikan Remote Control dengan `Claude.ai login expired — run /login to restore Remote Control` segera setelah satu penyegaran login tidak mendapat jawaban.1144Sebelum v2.1.238, Claude Code melaporkan kasus yang sekarang mengatakan `Signed out of Claude` sebagai `JWT refresh failed: no OAuth token — run /login`, dan menghentikan Remote Control dengan `Claude.ai login expired — run /login to restore Remote Control` segera setelah satu penyegaran login tidak mendapat jawaban.

1096 1145 


1098 Remote Control berhenti karena akun yang masuk berubah1147 Remote Control berhenti karena akun yang masuk berubah

1099</h3>1148</h3>

1100 1149 

1101Claude Code menampilkan baris ini selama sesi [Remote Control](/docs/id/remote-control) ketika Anda masuk ke akun claude.ai atau organisasi berbeda di mesin ini. Anda membuat sakelar di luar sesi Claude Code, misalnya dengan menjalankan `/login` di terminal lain.1150Claude Code menampilkan baris ini selama sesi [Remote Control](/docs/id/remote-control) ketika Anda masuk ke akun claude.ai atau organisasi berbeda di mesin ini. Anda membuat switch di luar sesi Claude Code, misalnya dengan menjalankan `/login` di terminal lain.

1102 1151 

1103Sesi Remote Control yang Anda mulai saat masuk melalui `/login` milik akun claude.ai dan organisasi yang masuk pada saat itu.1152Sesi Remote Control yang Anda mulai saat masuk melalui `/login` milik akun claude.ai dan organisasi yang masuk pada saat itu.

1104 1153 


1113* Jalankan `/remote-control` untuk memulai sesi Remote Control baru di bawah akun atau organisasi saat ini1162* Jalankan `/remote-control` untuk memulai sesi Remote Control baru di bawah akun atau organisasi saat ini

1114* Untuk beralih kembali, jalankan `/login` dan masuk ke akun atau organisasi sebelumnya lagi. Kemudian jalankan `/remote-control`.1163* Untuk beralih kembali, jalankan `/login` dan masuk ke akun atau organisasi sebelumnya lagi. Kemudian jalankan `/remote-control`.

1115 1164 

1116Sebelum v2.1.234, Claude Code tidak memperhatikan ketika Anda beralih ke akun atau organisasi berbeda di luar sesi Claude Code. Claude Code membuat sesi Remote Control tetap terhubung sampai permintaan nanti ke server Remote Control gagal dengan `Remote Control server rejected the request (HTTP 404)`. Kegagalan itu bisa datang berjam-jam setelah sakelar.1165Sebelum v2.1.234, Claude Code tidak memperhatikan ketika Anda beralih ke akun atau organisasi berbeda di luar sesi Claude Code. Claude Code membuat sesi Remote Control tetap terhubung sampai permintaan nanti ke server Remote Control gagal dengan `Remote Control server rejected the request (HTTP 404)`. Kegagalan itu bisa datang berjam-jam setelah switch.

1117 1166 

1118<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">1167<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">

1119 Remote Control berhenti karena aplikasi yang menjalankan sesi keluar atau beralih akun1168 Remote Control berhenti karena aplikasi yang menjalankan sesi keluar atau beralih akun


1151**Yang harus dilakukan:**1200**Yang harus dilakukan:**

1152 1201 

1153* Jalankan `/login` untuk masuk lagi1202* Jalankan `/login` untuk masuk lagi

1154* Jika kesalahan kembali dalam sesi yang sama setelah autentikasi ulang, jalankan `/logout` terlebih dahulu untuk sepenuhnya menghapus token yang disimpan, kemudian `/login`1203* Jika Anda autentikasi dengan variabel lingkungan `CLAUDE_CODE_OAUTH_TOKEN`, Claude Code terus mengirim nilai yang Anda atur setelah permintaan gagal dengan 401, daripada beralih ke token login yang disimpan. [`/status`](/docs/id/commands) menampilkan kredensial ini sebagai baris `Auth token` membaca `CLAUDE_CODE_OAUTH_TOKEN`. Hasilkan token baru dengan [`claude setup-token`](/docs/id/authentication#generate-a-long-lived-token) dan mulai ulang dengannya, atau batalkan pengaturan variabel dan jalankan `/login`. Sebelum v2.1.225, Claude Code dapat mengganti nilai variabel di tengah sesi dengan token akses berumur pendek dari login yang disimpan, dan sesi gagal dengan kesalahan 401 lagi setelah token itu kedaluwarsa.

1155* Jika Anda autentikasi dengan variabel lingkungan `CLAUDE_CODE_OAUTH_TOKEN`, Claude Code terus mengirim nilai yang Anda atur setelah permintaan gagal dengan 401, daripada beralih ke token login yang disimpan. [`/status`](/docs/id/commands) menunjukkan kredensial ini sebagai baris `Auth token` membaca `CLAUDE_CODE_OAUTH_TOKEN`. Hasilkan token segar dengan [`claude setup-token`](/docs/id/authentication#generate-a-long-lived-token) dan mulai ulang dengannya, atau batalkan pengaturan variabel dan jalankan `/login`. Sebelum v2.1.225, Claude Code dapat mengganti nilai variabel di tengah sesi dengan token akses berumur pendek dari login yang disimpan, dan sesi gagal dengan kesalahan 401 lagi setelah token itu kedaluwarsa.

1156* Untuk prompt berulang untuk masuk di seluruh peluncuran, lihat pemeriksaan jam sistem dan langkah pemulihan penyimpanan kredensial macOS dalam [Troubleshooting](/docs/id/troubleshoot-install#not-logged-in-or-token-expired)1204* Untuk prompt berulang untuk masuk di seluruh peluncuran, lihat pemeriksaan jam sistem dan langkah pemulihan penyimpanan kredensial macOS dalam [Troubleshooting](/docs/id/troubleshoot-install#not-logged-in-or-token-expired)

1157* Untuk kegagalan lainnya termasuk `403 Forbidden` dan masalah browser OAuth, lihat [Login dan autentikasi](/docs/id/troubleshoot-install#login-and-authentication)1205* Untuk kegagalan lainnya termasuk `403 Forbidden` dan masalah browser OAuth, lihat [Login dan autentikasi](/docs/id/troubleshoot-install#login-and-authentication)

1158 1206 


1168 1216 

1169**Yang harus dilakukan:**1217**Yang harus dilakukan:**

1170 1218 

1171* Jika `/status` menunjukkan baris `API key` yang tidak ditandai sebagai tidak digunakan, `ANTHROPIC_API_KEY` yang disetujui [`ANTHROPIC_API_KEY`](/docs/id/authentication#authentication-precedence) adalah kredensial aktif dan mengambil prioritas atas login Anda, jadi `/login` tidak menggantinya. Putar kunci di Claude Console, atau kembali ke langganan Anda dengan menjalankan `unset ANTHROPIC_API_KEY`, atau di PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`.1219* Jika `/status` menampilkan baris `API key` yang tidak ditandai sebagai tidak digunakan, `ANTHROPIC_API_KEY` yang disetujui]\(/id/authentication#authentication-precedence) adalah kredensial aktif dan mengambil prioritas atas login Anda, jadi `/login` tidak menggantinya. Putar kunci di Claude Console, atau kembali ke langganan Anda dengan menjalankan `unset ANTHROPIC_API_KEY`, atau di PowerShell `Remove-Item Env:ANTHROPIC_API_KEY`.

1172* Jika `/status` hanya menunjukkan login Anda, jalankan `/login` sekali. Jika kredensial dicabut, login segar menggantinya.1220* Jika `/status` hanya menampilkan login Anda, jalankan `/login` sekali. Jika kredensial dicabut, login baru menggantinya.

1173* Jika pesan yang sama kembali untuk akun login yang sama, akun atau organisasi tidak lagi aktif. Periksa akun dan organisasi yang dilaporkan `/status`, dan minta admin organisasi Anda untuk memulihkan akses.1221* Jika pesan yang sama kembali untuk akun login yang sama, akun atau organisasi tidak lagi aktif. Periksa akun dan organisasi yang dilaporkan `/status`, dan minta admin organisasi Anda untuk memulihkan akses.

1174* Jika [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) menunjuk ke [gateway LLM](/docs/id/llm-gateway), teks setelah `401` adalah pesan gateway Anda daripada Anthropic, dan `/login` tidak mengubahnya. Perbaiki kredensial yang diharapkan gateway Anda sebagai gantinya.1222* Jika [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) menunjuk ke [gateway LLM](/docs/id/llm-gateway), teks setelah `401` adalah pesan gateway Anda daripada Anthropic, dan `/login` tidak mengubahnya. Perbaiki kredensial yang diharapkan gateway Anda sebagai gantinya.

1175 1223 


1191Failed to authenticate: OAuth session expired and could not be refreshed1239Failed to authenticate: OAuth session expired and could not be refreshed

1192```1240```

1193 1241 

1194Ini bukan keadaan yang sama seperti [Token OAuth dicabut atau kedaluwarsa](#oauth-token-revoked-or-expired). Pesan-pesan itu melaporkan penolakan yang dikembalikan API. Claude Code sendiri menghasilkan `Login expired` untuk login yang sudah gagal diperbarui, jadi tidak mengirim permintaan. Ketika pembaruan gagal karena akun itu sendiri ditangguhkan daripada login yang sudah usang, Claude Code menunjukkan [Akun Anda ditahan](#your-account-is-on-hold) sebagai gantinya.1242Ini bukan keadaan yang sama seperti [Token OAuth dicabut atau kedaluwarsa](#oauth-token-revoked-or-expired). Pesan-pesan itu melaporkan penolakan yang dikembalikan API. Claude Code itu sendiri menghasilkan `Login expired` untuk login yang sudah gagal diperbarui, jadi tidak mengirim permintaan. Ketika pembaruan gagal karena akun itu sendiri ditangguhkan daripada login yang sudah lama, Claude Code menampilkan [Akun Anda ditahan](#your-account-is-on-hold) sebagai gantinya.

1195 1243 

1196Sesi yang diautentikasi dengan kunci API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/env-vars), atau penyedia pihak ketiga tidak menggunakan login yang disimpan dan tidak pernah melihat pesan ini.1244Sesi yang diautentikasi dengan kunci API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/env-vars), atau penyedia pihak ketiga tidak menggunakan login yang disimpan dan tidak pernah melihat pesan ini.

1197 1245 

1198Anda dapat memeriksa keadaan ini sebelum permintaan gagal: [`/status`](/docs/id/commands) menunjukkan baris `Login` membaca `Expired — log in again`, ditambah organisasi dan email yang disimpannya untuk login yang kedaluwarsa. Baris muncul hanya ketika login yang disimpan adalah kredensial aktif Anda dan tidak dapat lagi disegarkan. Sesi yang diautentikasi dengan cara lain tidak menunjukkan baris, bahkan jika login yang kedaluwarsa tetap disimpan. Sebelum v2.1.210, `/status` tidak memberikan indikasi dalam keadaan ini bahwa login pernah ada, karena kredensial yang dihapus meninggalkannya tidak ada untuk dilaporkan.1246Anda dapat memeriksa keadaan ini sebelum permintaan gagal: [`/status`](/docs/id/commands) menampilkan baris `Login` membaca `Expired — log in again`, ditambah organisasi dan email yang disimpannya untuk login yang kedaluwarsa. Baris muncul hanya ketika login yang disimpan adalah kredensial aktif Anda dan tidak dapat lagi disegarkan. Sesi yang diautentikasi dengan cara lain tidak menampilkan baris, bahkan jika login yang kedaluwarsa tetap disimpan. Sebelum v2.1.210, `/status` tidak memberikan indikasi dalam keadaan ini bahwa login pernah ada, karena kredensial yang dihapus meninggalkannya tidak ada untuk dilaporkan.

1199 1247 

1200**Yang harus dilakukan:**1248**Yang harus dilakukan:**

1201 1249 

1202* Jalankan `/login` untuk masuk lagi. Mencoba lagi tanpa masuk menunjukkan pesan yang sama pada setiap permintaan.1250* Jalankan `/login` untuk masuk lagi. Mencoba lagi tanpa masuk menampilkan pesan yang sama pada setiap permintaan.

1203* Dalam mode non-interaktif, jalankan `claude` di lingkungan yang sama, selesaikan `/login`, kemudian jalankan kembali perintah Anda. Untuk otomasi yang tidak dapat masuk secara interaktif, autentikasi dengan `ANTHROPIC_API_KEY` atau [hasilkan token berumur panjang dengan `claude setup-token`](/docs/id/authentication#generate-a-long-lived-token).1251* Dalam mode non-interaktif, jalankan `claude` di lingkungan yang sama, selesaikan `/login`, kemudian jalankan kembali perintah Anda. Untuk otomasi yang tidak dapat masuk secara interaktif, autentikasi dengan `ANTHROPIC_API_KEY` atau [hasilkan token berumur panjang dengan `claude setup-token`](/docs/id/authentication#generate-a-long-lived-token).

1204* Jika masuk terus gagal, lihat [Login dan autentikasi](/docs/id/troubleshoot-install#login-and-authentication)1252* Jika masuk terus gagal, lihat [Login dan autentikasi](/docs/id/troubleshoot-install#login-and-authentication)

1205 1253 

1254<h3 id="could-not-refresh-your-login">

1255 Tidak dapat menyegarkan login Anda karena proses Claude Code lain menyegarkannya

1256</h3>

1257 

1258Pesan ini tidak berarti login Anda ditolak. Login claude.ai yang disimpan kedaluwarsa dan perlu diperbarui. Proses Claude Code lain di mesin yang sama menahan kunci penyegaran bersama, atau keluar dan meninggalkannya, dan penyegaran tidak membuat kemajuan saat sesi ini menunggu. Claude Code menghentikan permintaan sebelum mengirimnya:

1259 

1260```text theme={null}

1261Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login

1262```

1263 

1264Dalam [mode non-interaktif](/docs/id/headless) (`-p`) dan [Agent SDK](/docs/id/agent-sdk/overview), pesan berbunyi sebagai berikut, dan kode kesalahan terstruktur adalah `server_error`:

1265 

1266```text theme={null}

1267Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1268```

1269 

1270Sesi yang diautentikasi dengan kunci API, [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/env-vars), atau penyedia pihak ketiga tidak menggunakan login yang disimpan dan tidak pernah melihat pesan ini.

1271 

1272**Yang harus dilakukan:**

1273 

1274* Coba lagi dalam satu menit. Jika proses lain menyelesaikan penyegaran terlebih dahulu, sesi ini menggunakan login yang diperbarui.

1275* Jika pesan terus kembali, tutup jendela dan proses Claude Code lainnya, kemudian coba lagi.

1276* Jika kembali tanpa proses Claude Code lain yang berjalan, jalankan `/login`. Masuk lagi tidak menunggu kunci penyegaran.

1277 

1278<h3 id="couldnt-save-your-login">

1279 Tidak dapat menyimpan login Anda

1280</h3>

1281 

1282Anda masuk dengan claude.ai, tetapi Claude Code tidak dapat menyimpan login ke penyimpanan kredensialnya, jadi login tidak selesai. Di macOS ini dapat terjadi ketika keychain login terkunci, misalnya saat tidur atau menganggur, setelah Claude Code sudah membaca atau menyimpan kredensial di dalamnya selama sesi yang sama.

1283 

1284```text theme={null}

1285Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.

1286Couldn't save your login. Try logging in again.

1287```

1288 

1289Bentuk pertama muncul di macOS dan yang kedua di mana-mana. Kegagalan penyimpanan kredensial sementara, seperti timeout atau penyimpanan yang tidak dapat dibaca, menghasilkan pesan yang sama.

1290 

1291**Yang harus dilakukan:**

1292 

1293* Di macOS, buka kunci keychain login, kemudian jalankan `/login` lagi

1294* Di platform lain, jalankan `/login` lagi

1295* Jika login masih tidak menyimpan, lihat [Belum masuk atau token kedaluwarsa](/docs/id/troubleshoot-install#not-logged-in-or-token-expired) untuk perintah buka kunci keychain dan langkah pemulihan penyimpanan kredensial lainnya

1296 

1297<h3 id="failed-to-start-oauth-callback-server">

1298 Gagal memulai server callback OAuth

1299</h3>

1300 

1301Ketika `/login`, `claude auth login`, atau `claude setup-token` menandatangani Anda melalui browser, Claude Code membuka port mendengarkan pada `127.0.0.1` sehingga browser Anda dapat mengembalikan hasil masuk ke sana. Pesan ini berarti Claude Code tidak dapat membuka port itu, dan masuk berhenti sebelum jendela browser atau URL login muncul:

1302 

1303```text theme={null}

1304Failed to start OAuth callback server: Failed to start server. Is port 0 in use?

1305```

1306 

1307Jika pesan Anda berakhir dengan `Is port 0 in use?`, upaya untuk mendengarkan pada alamat loopback IPv4 `127.0.0.1` gagal total. Karena kegagalan terjadi sebelum URL login ada, alur `Paste code here if prompted` tidak tersedia sebagai solusi.

1308 

1309**Yang harus dilakukan:**

1310 

1311* Untuk masuk sekarang tanpa pendengar lokal: jika Anda menggunakan langganan claude.ai, jalankan [`claude setup-token`](/docs/id/authentication#generate-a-long-lived-token) di mesin tempat masuk berfungsi dan atur token yang dicetak sebagai `CLAUDE_CODE_OAUTH_TOKEN` di mesin ini. Jika tidak, atur `ANTHROPIC_API_KEY` ke kunci dari [Claude Console](https://platform.claude.com/settings/keys). [Urutan prioritas autentikasi](/docs/id/authentication#authentication-precedence) menjelaskan bagaimana Claude Code memilih antara kredensial.

1312* Untuk menggunakan masuk browser di mesin ini sebagai gantinya, Claude Code harus dapat mendengarkan pada `127.0.0.1`. Jika berjalan di dalam sandbox, periksa bahwa kebijakan sandbox memungkinkan mendengarkan pada port lokal, kemudian jalankan `/login` lagi. Jika seharusnya dapat dan masih gagal, jalankan `/feedback` sehingga laporan mencakup detail lingkungan Anda.

1313 

1206<h3 id="claude-login-not-accepted">1314<h3 id="claude-login-not-accepted">

1207 Login Claude tidak diterima1315 Login Claude tidak diterima

1208</h3>1316</h3>


1223 Artefak memerlukan login claude.ai1331 Artefak memerlukan login claude.ai

1224</h3>1332</h3>

1225 1333 

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

1227 1335 

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

1229 1337 


1237* 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`1345* 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`

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

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

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

1241 1349 

1242<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1350<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1243 Kebijakan administrator memerlukan masuk Cloud gateway1351 Kebijakan administrator memerlukan masuk Cloud gateway

1244</h3>1352</h3>

1245 1353 

1246Pengaturan [terkelola](/docs/id/managed-settings) administrator di mesin ini menetapkan [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) ke `"gateway"` atau menetapkan [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl). Kecuali Anda memilih penyedia cloud melalui variabel seperti `CLAUDE_CODE_USE_BEDROCK`, Claude Code kemudian hanya menerima masuk [gateway aplikasi Claude](/docs/id/claude-apps-gateway). Anda melihat salah satu dari dua pesan:1354Pengaturan [managed settings](/docs/id/managed-settings) administrator di mesin ini menetapkan [`forceLoginMethod`](/docs/id/settings-reference#forceloginmethod) ke `"gateway"` atau menetapkan [`forceLoginGatewayUrl`](/docs/id/settings-reference#forcelogingatewayurl). Kecuali Anda memilih penyedia cloud melalui variabel seperti `CLAUDE_CODE_USE_BEDROCK`, Claude Code kemudian hanya menerima masuk [gateway aplikasi Claude](/docs/id/claude-apps-gateway). Anda melihat salah satu dari dua pesan:

1247 1355 

1248```text theme={null}1356```text theme={null}

1249Not signed in to the Cloud gateway — run /login.1357Not signed in to the Cloud gateway — run /login.


1251 1359 

1252Permintaan model gagal dengan pesan ini ketika sesi tidak memiliki masuk gateway, misalnya karena Anda belum menjalankan `/login` sejak kebijakan mencapai mesin.1360Permintaan model gagal dengan pesan ini ketika sesi tidak memiliki masuk gateway, misalnya karena Anda belum menjalankan `/login` sejak kebijakan mencapai mesin.

1253 1361 

1254Jika Anda juga memiliki kredensial `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` yang dikonfigurasi dan pengaturan terkelola menetapkan `forceLoginMethod`, Claude Code keluar saat startup sebagai gantinya dengan pesan yang dimulai:1362Jika mesin juga menyimpan kredensial yang diterbitkan Anthropic dan pengaturan yang dikelola menetapkan `forceLoginMethod` atau `forceLoginOrgUUID`, Claude Code keluar saat startup sebagai gantinya. Kredensial itu dapat berupa variabel `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN`, pengaturan `apiKeyHelper`, atau kunci API yang disimpan oleh login Claude Console sebelumnya. Pesan dimulai:

1255 1363 

1256```text theme={null}1364```text theme={null}

1257Administrator policy requires a Cloud gateway sign-in on this machine; the1365Administrator policy requires a Cloud gateway sign-in on this machine; the


1262**Yang harus dilakukan:**1370**Yang harus dilakukan:**

1263 1371 

1264* Jalankan `/login` dan selesaikan masuk di layar **Cloud gateway**1372* Jalankan `/login` dan selesaikan masuk di layar **Cloud gateway**

1265* Untuk pesan startup, hapus pengaturan `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` yang Anda konfigurasi, kemudian mulai `claude` dan jalankan `/login`1373* Untuk pesan startup, hapus `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau pengaturan `apiKeyHelper` yang Anda konfigurasikan. Untuk menghapus kunci API Console yang disimpan, jalankan `claude auth logout`, yang juga menghapus login claude.ai yang disimpan. Jika Anda memilih penyedia cloud dengan `CLAUDE_CODE_USE_*`, sesi kemudian dimulai tanpa masuk. Jika tidak, mulai `claude` dan jalankan `/login`

1266* Jika Anda percaya mesin tidak boleh memerlukan gateway, minta administrator yang mengelolanya untuk menghapus `forceLoginMethod` dan `forceLoginGatewayUrl` dari pengaturan terkelolanya1374* Jika Anda percaya mesin tidak boleh memerlukan gateway, minta administrator yang mengelolanya untuk menghapus `forceLoginMethod` dan `forceLoginGatewayUrl` dari pengaturan yang dikelolanya

1267 1375 

1268Pada v2.1.265, regresi juga menunjukkan pesan pertama dalam beberapa konfigurasi gateway LLM dan proxy yang autentikasi dengan kunci API, `apiKeyHelper`, atau header khusus, bahkan tanpa persyaratan administrator di mesin. Perbarui ke v2.1.266 atau lebih baru. Anda tidak perlu mengubah konfigurasi Anda.1376Pada v2.1.265, regresi juga menampilkan pesan pertama dalam beberapa konfigurasi gateway LLM dan proxy yang autentikasi dengan kunci API, `apiKeyHelper`, atau header khusus, bahkan tanpa persyaratan administrator di mesin. Perbarui ke v2.1.266 atau lebih baru. Anda tidak perlu mengubah konfigurasi Anda.

1269 1377 

1270Sebelum v2.1.261, pada mesin yang menetapkan `forceLoginMethod` ke `"gateway"`, Claude Code menggunakan login yang disimpan sisa daripada gagal permintaan model, dan melaporkan kredensial lingkungan yang dikonfigurasi dengan `This machine's managed settings require a first-party login` daripada pesan startup. Sebelum v2.1.265, mesin yang pengaturan terkelolanya hanya menetapkan `forceLoginGatewayUrl` tidak memerlukan masuk gateway, dan Claude Code menggunakan kredensial sisa di sana.1378Sebelum v2.1.261, pada mesin yang menetapkan `forceLoginMethod` ke `"gateway"`, Claude Code menggunakan login yang disimpan sisa daripada gagal permintaan model, dan melaporkan kredensial lingkungan yang dikonfigurasi dengan `This machine's managed settings require a first-party login` daripada pesan startup. Sebelum v2.1.265, mesin yang pengaturan yang dikelolanya hanya menetapkan `forceLoginGatewayUrl` tidak memerlukan masuk gateway, dan Claude Code menggunakan kredensial sisa di sana.

1271 1379 

1272<h3 id="your-account-is-on-hold">1380<h3 id="your-account-is-on-hold">

1273 Akun Anda ditahan1381 Akun Anda ditahan

1274</h3>1382</h3>

1275 1383 

1276Akun Claude di balik login Anda telah ditangguhkan. Claude Code menunjukkan pesan pertama ketika mencoba memperbarui login yang disimpan dan mempelajari tentang penahan, dan yang kedua ketika masuk yang Anda selesaikan di browser melaporkannya:1384Akun Claude di balik login Anda telah ditangguhkan. Claude Code menampilkan pesan pertama ketika mencoba memperbarui login yang disimpan dan mempelajari tentang penahan, dan yang kedua ketika masuk yang Anda selesaikan di browser melaporkannya:

1277 1385 

1278```text theme={null}1386```text theme={null}

1279Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted1387Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted

1280Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted1388Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted

1281```1389```

1282 1390 

1283Masuk lagi dengan akun yang sama tidak menghapus pesan, karena penahan ada di akun daripada login. Dalam [mode non-interaktif](/docs/id/headless) (`-p`) dan [Agent SDK](/docs/id/agent-sdk/overview), kode kesalahan terstruktur adalah `account_on_hold`. Sebelum v2.1.235, Claude Code melaporkan akun yang ditahan sebagai [Login kedaluwarsa · Silakan jalankan /login](#login-expired), yang langkah pemulihan tidak dapat menghapus penahan.1391Masuk lagi dengan akun yang sama tidak menghapus pesan, karena penahan ada di akun daripada login. Dalam [mode non-interaktif](/docs/id/headless) (`-p`) dan [Agent SDK](/docs/id/agent-sdk/overview), kode kesalahan terstruktur adalah `account_on_hold`. Sebelum v2.1.235, Claude Code melaporkan akun yang ditahan sebagai [Login kedaluwarsa · Jalankan /login](#login-expired), yang langkah pemulihannya tidak dapat menghapus penahan.

1284 1392 

1285**Yang harus dilakukan:**1393**Yang harus dilakukan:**

1286 1394 


1291 Login profil Anthropic kedaluwarsa1399 Login profil Anthropic kedaluwarsa

1292</h3>1400</h3>

1293 1401 

1294Claude Code mengautentikasi melalui profil kredensial Anthropic yang kredensial login yang disimpan telah kedaluwarsa, dan profil tidak menyimpan kredensial penyegaran yang dapat digunakan Claude Code untuk memperbarui. Claude Code menghentikan setiap permintaan secara lokal tanpa mencoba lagi, karena percobaan lagi akan membaca kredensial yang sama yang kedaluwarsa.1402Claude Code autentikasi melalui profil kredensial Anthropic yang kredensial login yang disimpannya kedaluwarsa, dan profil tidak menyimpan kredensial penyegaran yang dapat digunakan Claude Code untuk memperbarui. Claude Code menghentikan setiap permintaan secara lokal tanpa mencoba ulang, karena percobaan ulang akan membaca kredensial yang sama yang kedaluwarsa.

1295 1403 

1296```text theme={null}1404```text theme={null}

1297Anthropic profile login expired · Re-authenticate your Anthropic profile1405Anthropic profile login expired · Re-authenticate your Anthropic profile


1300 1408 

1301Ini muncul hanya ketika kredensial aktif berasal dari profil kredensial Anthropic, yang Anda pilih dengan variabel lingkungan `ANTHROPIC_PROFILE`, yang Claude Code temukan sebagai profil aktif di direktori konfigurasi Anthropic Anda, atau yang Claude Code tulis ketika Anda [masuk tanpa kunci API](/docs/id/authentication#sign-in-without-an-api-key). Sesi yang autentikasi dengan opsi claude.ai `/login`, kunci API, token pembawa seperti `ANTHROPIC_AUTH_TOKEN`, atau penyedia pihak ketiga tidak pernah melihat pesan ini.1409Ini muncul hanya ketika kredensial aktif berasal dari profil kredensial Anthropic, yang Anda pilih dengan variabel lingkungan `ANTHROPIC_PROFILE`, yang Claude Code temukan sebagai profil aktif di direktori konfigurasi Anthropic Anda, atau yang Claude Code tulis ketika Anda [masuk tanpa kunci API](/docs/id/authentication#sign-in-without-an-api-key). Sesi yang autentikasi dengan opsi claude.ai `/login`, kunci API, token pembawa seperti `ANTHROPIC_AUTH_TOKEN`, atau penyedia pihak ketiga tidak pernah melihat pesan ini.

1302 1410 

1303Pada mesin yang [menawarkan masuk tanpa kunci](/docs/id/authentication#sign-in-without-an-api-key), jalankan `/login`, pilih akun Anthropic Console, dan masuk lagi untuk memperbarui profil yang ditulis oleh masuk Console tanpa kunci atau CLI Platform Claude `ant auth login`. Claude Code mengganti kredensial yang kedaluwarsa dalam profil itu. Untuk profil federasi atau yang dibuat alat lain, `/login` tidak memperbarui kredensial. Bentuk mana yang Anda lihat tergantung pada apakah Anda memilih profil atau Claude Code menemukannya:1411Di mesin yang [menawarkan masuk tanpa kunci](/docs/id/authentication#sign-in-without-an-api-key), jalankan `/login`, pilih akun Anthropic Console, dan masuk lagi untuk memperbarui profil yang ditulis oleh masuk Console tanpa kunci atau CLI Platform Claude `ant auth login`. Claude Code mengganti kredensial yang kedaluwarsa dalam profil itu. Untuk profil federasi atau yang dibuat alat lain, `/login` tidak memperbarui kredensial. Bentuk mana yang Anda lihat tergantung pada apakah Anda memilih profil atau Claude Code menemukannya:

1304 1412 

1305* Ketika Anda menetapkan `ANTHROPIC_PROFILE` secara eksplisit, pesan berakhir dengan `Re-authenticate your Anthropic profile`.1413* Ketika Anda menetapkan `ANTHROPIC_PROFILE` secara eksplisit, pesan berakhir dengan `Re-authenticate your Anthropic profile`.

1306* Ketika Claude Code menemukan profil dari direktori konfigurasi Anda, pesan menawarkan `/login`, karena Claude Code memberikan prioritas `/login` yang berfungsi atas profil yang ditemukan dan kemudian autentikasi dengan akun claude.ai atau Console Anda sebagai gantinya. Sebelum v2.1.234, Claude Code menunjukkan bentuk `Re-authenticate your Anthropic profile` dalam kasus ini juga.1414* Ketika Claude Code menemukan profil dari direktori konfigurasi Anda, pesan menawarkan `/login`, karena Claude Code memberikan prioritas `/login` yang berfungsi atas profil yang ditemukan dan kemudian autentikasi dengan akun claude.ai atau Console Anda sebagai gantinya. Sebelum v2.1.234, Claude Code menampilkan bentuk `Re-authenticate your Anthropic profile` dalam kasus ini juga.

1307 1415 

1308**Yang harus dilakukan:**1416**Yang harus dilakukan:**

1309 1417 

1310* Masuk ke profil lagi, kemudian coba lagi: pada mesin yang [menawarkan masuk tanpa kunci](/docs/id/authentication#sign-in-without-an-api-key), jalankan `/login` dan pilih akun Anthropic Console untuk profil yang ditulis oleh masuk Console tanpa kunci atau CLI Platform Claude `ant auth login`; untuk profil lain, gunakan alat yang membuatnya1418* Masuk ke profil lagi, kemudian coba ulang: di mesin yang [menawarkan masuk tanpa kunci](/docs/id/authentication#sign-in-without-an-api-key), jalankan `/login` dan pilih akun Anthropic Console untuk profil yang ditulis oleh masuk Console tanpa kunci atau CLI Platform Claude `ant auth login`; untuk profil lain, gunakan alat yang membuatnya

1311* Jika administrator menyediakan kredensial profil, minta mereka untuk mengeluarkan yang baru1419* Jika administrator memprovisikan kredensial profil, minta mereka untuk mengeluarkan yang baru

1312* Jalankan `/status` untuk mengonfirmasi sumber kredensial aktif dan nama profil1420* Jalankan `/status` untuk mengonfirmasi sumber kredensial aktif dan nama profil

1313* Untuk berhenti menggunakan profil, batalkan pengaturan `ANTHROPIC_PROFILE` jika Anda menetapkannya, kemudian autentikasi dengan cara lain, seperti `/login` atau `ANTHROPIC_API_KEY`1421* Untuk berhenti menggunakan profil, batalkan pengaturan `ANTHROPIC_PROFILE` jika Anda menetapkannya, kemudian autentikasi dengan cara lain, seperti `/login` atau `ANTHROPIC_API_KEY`

1314 1422 


1316 Persyaratan cakupan OAuth1424 Persyaratan cakupan OAuth

1317</h3>1425</h3>

1318 1426 

1319Token yang disimpan mendahului cakupan izin yang dibutuhkan fitur yang lebih baru. Anda melihat ini paling sering dari `/usage` dan indikator penggunaan baris status:1427Token yang disimpan mendahului cakupan izin yang diperlukan fitur yang lebih baru:

1320 1428 

1321```text theme={null}1429```text theme={null}

1322OAuth token does not meet scope requirement: user:profile1430OAuth token does not meet scope requirement: user:profile


1330 claude.ai menolak token sesi1438 claude.ai menolak token sesi

1331</h3>1439</h3>

1332 1440 

1333Permintaan [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) gagal karena claude.ai menolak token dari login Claude Code Anda, biasanya login yang kedaluwarsa dan tidak dapat disegarkan. Token yang ditolak adalah login Anda, bukan otorisasi konektor sendiri di claude.ai, jadi mengotorisasi konektor lagi tidak menyelesaikannya. Dalam `/mcp`, konektor menunjukkan sebagai `connected · session token rejected` dan tampilan detailnya berbunyi:1441Permintaan [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) gagal karena claude.ai menolak token dari login Claude Code Anda. Token yang ditolak adalah login Anda, bukan otorisasi konektor sendiri di claude.ai, jadi mengotorisasi konektor lagi tidak menyelesaikannya. Dalam `/mcp`, konektor menampilkan sebagai `session token rejected` dan tampilan detailnya berbunyi:

1334 1442 

1335```text theme={null}1443```text theme={null}

1336claude.ai rejected the session token. Run /login, then reconnect.1444claude.ai rejected the session token. Run /login, then reconnect.


1347 Server MCP memerlukan Anda untuk masuk lagi1455 Server MCP memerlukan Anda untuk masuk lagi

1348</h3>1456</h3>

1349 1457 

1350Server [MCP](/docs/id/mcp) jarak jauh menolak kredensial pada panggilan alat di tengah sesi, biasanya karena masuk atau token kedaluwarsa atau karena token kekurangan izin yang dibutuhkan alat. Panggilan alat gagal, dan `/mcp` menandai server sebagai [memerlukan autentikasi](/docs/id/mcp#authenticate-with-remote-mcp-servers).1458Server [MCP](/docs/id/mcp) jarak jauh menolak kredensial pada panggilan alat di tengah sesi, biasanya karena masuk atau token kedaluwarsa atau karena token kekurangan izin yang diperlukan alat. Panggilan alat gagal, dan `/mcp` menandai server sebagai [memerlukan autentikasi](/docs/id/mcp#authenticate-with-remote-mcp-servers).

1351 1459 

1352Untuk server yang Anda masuki dari Claude Code, termasuk konektor claude.ai, masuk kedaluwarsa atau dicabut:1460Untuk server yang Anda masuki dari Claude Code, termasuk konektor claude.ai, masuk kedaluwarsa atau dicabut:

1353 1461 


1357 1465 

1358Jalankan `/mcp`, pilih server, dan masuk lagi dari menunya.1466Jalankan `/mcp`, pilih server, dan masuk lagi dari menunya.

1359 1467 

1360Untuk server yang dikonfigurasi dengan skrip [`headersHelper`](/docs/id/mcp#use-dynamic-headers-for-custom-authentication), Claude Code sudah menjalankan kembali pembantu dan mencoba lagi panggilan sekali sebelum menunjukkan ini:1468Untuk server yang dikonfigurasi dengan skrip [`headersHelper`](/docs/id/mcp#use-dynamic-headers-for-custom-authentication), Claude Code sudah menjalankan kembali helper dan mencoba ulang panggilan sekali sebelum menampilkan ini:

1361 1469 

1362```text theme={null}1470```text theme={null}

1363MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)1471MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)

1364```1472```

1365 1473 

1366Periksa bahwa pembantu mengembalikan kredensial yang diterima server, kemudian hubungkan kembali dari `/mcp`, yang menjalankan pembantu lagi.1474Periksa bahwa helper mengembalikan kredensial yang diterima server, kemudian hubungkan kembali dari `/mcp`, yang menjalankan helper lagi.

1367 1475 

1368Untuk server dengan header `Authorization` statis dalam konfigurasinya:1476Untuk server dengan header `Authorization` statis dalam konfigurasinya:

1369 1477 


1373 1481 

1374Perbarui nilai header tempat server dikonfigurasi, kemudian hubungkan kembali dari `/mcp`.1482Perbarui nilai header tempat server dikonfigurasi, kemudian hubungkan kembali dari `/mcp`.

1375 1483 

1376Sebelum v2.1.273, kasus masuk yang kedaluwarsa, `headersHelper`, dan header `Authorization` semuanya menunjukkan `MCP server "<name>" requires re-authorization (token expired)`.1484Sebelum v2.1.273, kasus masuk yang kedaluwarsa, `headersHelper`, dan header `Authorization` semuanya menampilkan `MCP server "<name>" requires re-authorization (token expired)`.

1377 1485 

1378Server juga dapat menolak panggilan alat dengan HTTP 403 `insufficient_scope` untuk meminta Anda mengotorisasi cakupan, kadang-kadang yang sudah tercantum dalam token Anda. Pesan menamai cakupan itu:1486Server juga dapat menolak panggilan alat dengan HTTP 403 `insufficient_scope` untuk meminta Anda mengotorisasi cakupan, kadang-kadang yang sudah tercantum dalam token Anda. Pesan menamai cakupan itu:

1379 1487 


1385 1493 

1386Ketika konfigurasi server tidak menetapkan [`oauth.scopes`](/docs/id/mcp#restrict-oauth-scopes) atau [`authServerMetadataUrl`](/docs/id/mcp#override-oauth-metadata-discovery), Claude Code meminta cakupan yang dinamai server. Dengan pengaturan apa pun, Claude Code meminta cakupan pengaturan itu sebagai gantinya. Jika Anda menyematkan `oauth.scopes`, tambahkan cakupan yang hilang ke daftar itu sebelum Anda autentikasi lagi.1494Ketika konfigurasi server tidak menetapkan [`oauth.scopes`](/docs/id/mcp#restrict-oauth-scopes) atau [`authServerMetadataUrl`](/docs/id/mcp#override-oauth-metadata-discovery), Claude Code meminta cakupan yang dinamai server. Dengan pengaturan apa pun, Claude Code meminta cakupan pengaturan itu sebagai gantinya. Jika Anda menyematkan `oauth.scopes`, tambahkan cakupan yang hilang ke daftar itu sebelum Anda autentikasi lagi.

1387 1495 

1388Sebelum v2.1.274, kasus ini menunjukkan pesan `needs you to sign in again`, dan sebelum v2.1.273 itu menunjukkan `requires re-authorization (token expired)` seperti kasus lainnya.1496Sebelum v2.1.274, kasus ini menampilkan pesan `needs you to sign in again`, dan sebelum v2.1.273 itu menampilkan `requires re-authorization (token expired)` seperti kasus lainnya.

1389 1497 

1390<h3 id="issuer-mismatch-in-authorization-response">1498<h3 id="issuer-mismatch-in-authorization-response">

1391 Ketidakcocokan penerbit dalam respons otorisasi1499 Ketidaksesuaian penerbit dalam respons otorisasi

1392</h3>1500</h3>

1393 1501 

1394Selama [masuk OAuth MCP](/docs/id/mcp#authenticate-with-remote-mcp-servers), server otorisasi dialihkan kembali ke Claude Code dengan parameter `iss` yang tidak menamai penerbit yang diharapkan Claude Code dari metadata OAuth server. Penerbit yang salah pada langkah ini adalah bagaimana serangan pencampuran server otorisasi terlihat, jadi Claude Code gagal masuk daripada menukar kode otorisasi. Claude Code menunjukkan kesalahan dalam menu server `/mcp` setelah masuk browser:1502Selama [masuk OAuth MCP](/docs/id/mcp#authenticate-with-remote-mcp-servers), server otorisasi dialihkan kembali ke Claude Code dengan parameter `iss` yang tidak menamai penerbit yang diharapkan Claude Code dari metadata OAuth server. Penerbit yang salah pada langkah ini adalah bagaimana serangan pencampuran server otorisasi terlihat, jadi Claude Code gagal masuk daripada menukar kode otorisasi. Claude Code menampilkan kesalahan dalam menu server `/mcp` setelah masuk browser:

1395 1503 

1396```text theme={null}1504```text theme={null}

1397Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"1505Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"


1423 1531 

1424**Yang harus dilakukan:**1532**Yang harus dilakukan:**

1425 1533 

1426* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda1534* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba ulang, atau hubungi administrator Anda

1427* Jika [`awsAuthRefresh`](/docs/id/amazon-bedrock#advanced-credential-configuration) diatur, jalankan perintah yang dinamai dalam pesan, seperti `aws sso login --profile myprofile`, di terminal lain dan selesaikan masuk browser, kemudian coba lagi. Jika tidak, segarkan kredensial AWS yang Anda gunakan sendiri: masuk SSO, kunci akses, kunci API, atau token proxy Anda1535* Jika [`awsAuthRefresh`](/docs/id/amazon-bedrock#advanced-credential-configuration) diatur, jalankan perintah yang dinamai dalam pesan, seperti `aws sso login --profile myprofile`, di terminal lain dan selesaikan masuk browser, kemudian coba ulang. Jika tidak, segarkan kredensial AWS yang Anda gunakan sendiri: masuk SSO, kunci akses, kunci API, atau token proxy Anda

1428* Dengan `awsAuthRefresh` diatur dalam sesi interaktif, Anda dapat menjalankan `/login`, pilih **3rd-party platform**, kemudian pilih **Claude Platform on AWS · refresh credentials** di bawah **Using 3rd-party platforms** untuk menjalankan perintah yang sama tanpa memulai ulang Claude Code. Lihat [Konfigurasi kredensial AWS](/docs/id/claude-platform-on-aws#1-configure-aws-credentials)1536* Dengan `awsAuthRefresh` diatur dalam sesi interaktif, Anda dapat menjalankan `/login`, pilih **3rd-party platform**, kemudian pilih **Claude Platform on AWS · refresh credentials** di bawah **Using 3rd-party platforms** untuk menjalankan perintah yang sama tanpa memulai ulang Claude Code. Lihat [Konfigurasi kredensial AWS](/docs/id/claude-platform-on-aws#1-configure-aws-credentials)

1429* Jika kesalahan berulang setelah perintah penyegaran berhasil, konfirmasi identitas valid di luar Claude Code dengan `aws sts get-caller-identity` di shell dan profil yang sama1537* Jika kesalahan berulang setelah perintah penyegaran berhasil, konfirmasi identitas valid di luar Claude Code dengan `aws sts get-caller-identity` di shell dan profil yang sama

1430 1538 


1438 1546 

1439401 dari Amazon Bedrock juga mendarat di sini daripada di bawah [Kredensial AWS kedaluwarsa atau tidak valid](#aws-credentials-expired-or-invalid), karena Amazon Bedrock tidak melaporkan token yang kedaluwarsa sebagai 401. 401 dari titik akhir itu biasanya berasal dari sesuatu yang lain dalam jalur permintaan, seperti proxy perusahaan.1547401 dari Amazon Bedrock juga mendarat di sini daripada di bawah [Kredensial AWS kedaluwarsa atau tidak valid](#aws-credentials-expired-or-invalid), karena Amazon Bedrock tidak melaporkan token yang kedaluwarsa sebagai 401. 401 dari titik akhir itu biasanya berasal dari sesuatu yang lain dalam jalur permintaan, seperti proxy perusahaan.

1440 1548 

1441Penyegaran kredensial memperbaiki token yang kedaluwarsa dan tidak dapat memperbaiki penyebab lain, jadi pesan menawarkan keduanya:1549Penyegaran kredensial memperbaiki token yang kedaluwarsa dan tidak dapat memperbaiki penyebab lainnya, jadi pesan menawarkan keduanya:

1442 1550 

1443```text theme={null}1551```text theme={null}

1444AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...1552AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...


1452 1560 

1453**Yang harus dilakukan:**1561**Yang harus dilakukan:**

1454 1562 

1455* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda1563* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba ulang, atau hubungi administrator Anda

1456* Segarkan kredensial AWS Anda jika kredensial yang kedaluwarsa adalah penyebabnya: jalankan perintah [`awsAuthRefresh`](/docs/id/amazon-bedrock#advanced-credential-configuration) yang dinamai dalam pesan ketika satu diatur, atau segarkan masuk SSO, kunci akses, kunci API, atau token proxy Anda sendiri1564* Segarkan kredensial AWS Anda jika kredensial yang kedaluwarsa mungkin menjadi penyebabnya: jalankan perintah [`awsAuthRefresh`](/docs/id/amazon-bedrock#advanced-credential-configuration) yang dinamai dalam pesan ketika satu diatur, atau segarkan masuk SSO, kunci akses, kunci API, atau token proxy Anda sendiri

1457* Jika kredensial Anda saat ini, konfirmasi izin IAM dalam [Konfigurasi IAM](/docs/id/amazon-bedrock#iam-configuration) dilampirkan ke identitas yang Anda gunakan dan model yang dipilih diaktifkan untuk akun dan wilayah Anda1565* Jika kredensial Anda saat ini, konfirmkan izin IAM dalam [Konfigurasi IAM](/docs/id/amazon-bedrock#iam-configuration) dilampirkan ke identitas yang Anda gunakan dan model yang dipilih diaktifkan untuk akun dan wilayah Anda

1458* Jalankan `aws sts get-caller-identity` untuk mengonfirmasi identitas mana yang digunakan permintaan Anda; profil `AWS_PROFILE` yang sudah usang atau profil default adalah penyebab umum ketidakcocokan izin1566* Jalankan `aws sts get-caller-identity` untuk mengonfirmasi identitas mana yang digunakan permintaan Anda

1459 1567 

1460<h3 id="google-cloud-credentials-expired-or-invalid">1568<h3 id="google-cloud-credentials-expired-or-invalid">

1461 Kredensial Google Cloud kedaluwarsa atau tidak valid1569 Kredensial Google Cloud kedaluwarsa atau tidak valid


1471 1579 

1472**Yang harus dilakukan:**1580**Yang harus dilakukan:**

1473 1581 

1474* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda1582* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba ulang, atau hubungi administrator Anda

1475* Jika Anda autentikasi dengan kredensial default aplikasi, jalankan perintah [`gcpAuthRefresh`](/docs/id/google-vertex-ai#advanced-credential-configuration) yang dinamai dalam pesan, atau `gcloud auth application-default login`, dan selesaikan masuk, kemudian coba lagi1583* Jika Anda autentikasi dengan kredensial default aplikasi, jalankan perintah [`gcpAuthRefresh`](/docs/id/google-vertex-ai#advanced-credential-configuration) yang dinamai dalam pesan, atau `gcloud auth application-default login`, dan selesaikan masuk, kemudian coba ulang

1476* Jika Anda merutekan melalui [gateway LLM](/docs/id/llm-gateway) dengan `CLAUDE_CODE_SKIP_VERTEX_AUTH` diatur, segarkan token gateway dalam `ANTHROPIC_AUTH_TOKEN` atau `ANTHROPIC_CUSTOM_HEADERS`, kemudian coba lagi1584* Jika Anda merutekan melalui [gateway LLM](/docs/id/llm-gateway) dengan `CLAUDE_CODE_SKIP_VERTEX_AUTH` diatur, segarkan token gateway dalam `ANTHROPIC_AUTH_TOKEN` atau `ANTHROPIC_CUSTOM_HEADERS`, kemudian coba ulang

1477* Jika Anda autentikasi dengan file kunci akun layanan, konfirmasi `GOOGLE_APPLICATION_CREDENTIALS` menunjuk ke kunci yang valid. Lihat [Konfigurasi kredensial GCP](/docs/id/google-vertex-ai#3-configure-gcp-credentials)1585* Jika Anda autentikasi dengan file kunci akun layanan, konfirmkan `GOOGLE_APPLICATION_CREDENTIALS` menunjuk ke kunci yang valid. Lihat [Konfigurasi kredensial GCP](/docs/id/google-vertex-ai#3-configure-gcp-credentials)

1478* Jika kesalahan berulang setelah penyegaran, konfirmasi identitas bekerja di luar Claude Code dengan `gcloud auth application-default print-access-token` di shell yang sama1586* Jika kesalahan berulang setelah penyegaran, konfirmkan identitas bekerja di luar Claude Code dengan `gcloud auth application-default print-access-token` di shell yang sama

1479 1587 

1480Sebelum v2.1.273, 401 dari Platform Agen menunjukkan pesan `Please run /login` atau `Failed to authenticate` generik sebagai gantinya, yang tidak dapat menyegarkan kredensial Google Cloud.1588Sebelum v2.1.273, 401 dari Platform Agen menampilkan pesan `Please run /login` atau `Failed to authenticate` generik sebagai gantinya, yang tidak dapat menyegarkan kredensial Google Cloud.

1481 1589 

1482<h3 id="google-cloud-authentication-failed">1590<h3 id="google-cloud-authentication-failed">

1483 Autentikasi Google Cloud gagal1591 Autentikasi Google Cloud gagal


1493 1601 

1494**Yang harus dilakukan:**1602**Yang harus dilakukan:**

1495 1603 

1496* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda1604* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba ulang, atau hubungi administrator Anda

1497* Konfirmkan peran dalam [Konfigurasi IAM](/docs/id/google-vertex-ai#iam-configuration) diberikan kepada identitas yang Anda autentikasi dengan1605* Konfirmkan peran dalam [Konfigurasi IAM](/docs/id/google-vertex-ai#iam-configuration) diberikan kepada identitas yang Anda autentikasi dengan

1498* Konfirmkan model diaktifkan untuk proyek Anda. Lihat [Minta akses model](/docs/id/google-vertex-ai#2-request-model-access)1606* Konfirmkan model diaktifkan untuk proyek Anda. Lihat [Minta akses model](/docs/id/google-vertex-ai#2-request-model-access)

1499 1607 

1500Sebelum v2.1.273, 403 dari Platform Agen menunjukkan pesan `Please run /login` atau `Failed to authenticate` generik sebagai gantinya, yang tidak dapat menyegarkan kredensial Google Cloud.1608Sebelum v2.1.273, 403 dari Platform Agen menampilkan pesan `Please run /login` atau `Failed to authenticate` generik sebagai gantinya, yang tidak dapat menyegarkan kredensial Google Cloud.

1501 1609 

1502<h3 id="microsoft-foundry-authentication-failed">1610<h3 id="microsoft-foundry-authentication-failed">

1503 Autentikasi Microsoft Foundry gagal1611 Autentikasi Microsoft Foundry gagal

1504</h3>1612</h3>

1505 1613 

1506[Microsoft Foundry](/docs/id/microsoft-foundry) mengembalikan 401 atau 403: kredensial Azure pada permintaan ditolak, atau identitas di baliknya tidak memiliki akses ke sumber daya Foundry. `/login` tidak dapat membuat kredensial Azure. Petunjuk tindakan di tengah bervariasi dengan pengaturan Anda. Bagian yang stabil adalah `Microsoft Foundry authentication failed` terkemuka:1614[Microsoft Foundry](/docs/id/microsoft-foundry) mengembalikan 401 atau 403: kredensial Azure pada permintaan ditolak, atau identitas di baliknya tidak memiliki akses ke sumber daya Foundry. `/login` tidak dapat mencetak kredensial Azure. Petunjuk tindakan di tengah bervariasi dengan pengaturan Anda. Bagian yang stabil adalah `Microsoft Foundry authentication failed` terkemuka:

1507 1615 

1508```text theme={null}1616```text theme={null}

1509Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...1617Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...


1511 1619 

1512**Yang harus dilakukan:**1620**Yang harus dilakukan:**

1513 1621 

1514* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba lagi, atau hubungi administrator Anda1622* Jika petunjuk mengatakan kredensial dikelola oleh lingkungan ini, aplikasi yang meluncurkan Claude Code memiliki kredensial dan langkah lain di sini tidak berlaku: coba ulang, atau hubungi administrator Anda

1515* Segarkan kredensial yang Anda konfigurasi dalam [Konfigurasi kredensial Azure](/docs/id/microsoft-foundry#2-configure-azure-credentials): putar `ANTHROPIC_FOUNDRY_API_KEY`, buat `ANTHROPIC_FOUNDRY_AUTH_TOKEN` segar, atau jalankan `az login` sehingga rantai kredensial Microsoft Entra default dapat masuk lagi1623* Segarkan kredensial yang Anda konfigurasikan dalam [Konfigurasi kredensial Azure](/docs/id/microsoft-foundry#2-configure-azure-credentials): putar `ANTHROPIC_FOUNDRY_API_KEY`, cetak `ANTHROPIC_FOUNDRY_AUTH_TOKEN` baru, atau jalankan `az login` sehingga rantai kredensial Microsoft Entra default dapat masuk lagi

1516* Jika kredensial saat ini, konfirmkan identitas memiliki akses ke sumber daya Foundry. Lihat [Konfigurasi RBAC Azure](/docs/id/microsoft-foundry#azure-rbac-configuration)1624* Jika kredensial saat ini, konfirmkan identitas memiliki akses ke sumber daya Foundry. Lihat [Konfigurasi Azure RBAC](/docs/id/microsoft-foundry#azure-rbac-configuration)

1517 1625 

1518Sebelum v2.1.273, 401 atau 403 dari Microsoft Foundry menunjukkan pesan `Please run /login` atau `Failed to authenticate` generik sebagai gantinya, yang tidak dapat menyegarkan kredensial Azure.1626Sebelum v2.1.273, 401 atau 403 dari Microsoft Foundry menampilkan pesan `Please run /login` atau `Failed to authenticate` generik sebagai gantinya, yang tidak dapat menyegarkan kredensial Azure.

1519 1627 

1520<h3 id="could-not-load-aws-or-google-cloud-credentials">1628<h3 id="could-not-load-aws-or-google-cloud-credentials">

1521 Tidak dapat memuat kredensial AWS atau Google Cloud1629 Tidak dapat memuat kredensial AWS atau Google Cloud

1522</h3>1630</h3>

1523 1631 

1524Claude Code tidak dapat memperoleh kredensial yang dapat digunakan dari rantai penyedia kredensial AWS atau dari kredensial default aplikasi Google Anda di mesin tempat itu berjalan, jadi tidak ada permintaan yang mencapai penyedia cloud Anda. Claude Code menghapus kredensial yang disimpan dalam cache dan mencoba lagi dua kali sebelum menunjukkan pesan ini. Detail setelah `·` menamai penyebab spesifik, seperti sesi SSO yang kedaluwarsa, kredensial default aplikasi yang hilang dilaporkan sebagai `Could not load the default credentials`, atau masuk yang dicabut dilaporkan sebagai `invalid_grant`:1632Claude Code tidak dapat memperoleh kredensial yang dapat digunakan dari rantai penyedia kredensial AWS atau dari kredensial default aplikasi Google Anda di mesin tempat itu berjalan, jadi tidak ada permintaan yang mencapai penyedia cloud Anda. Claude Code menghapus kredensial yang disimpan dalam cache dan mencoba ulang dua kali sebelum menampilkan pesan ini. Detail setelah `·` menamai penyebab spesifik, seperti sesi SSO yang kedaluwarsa, kredensial default aplikasi yang hilang dilaporkan sebagai `Could not load the default credentials`, atau masuk yang dicabut dilaporkan sebagai `invalid_grant`:

1525 1633 

1526```text theme={null}1634```text theme={null}

1527API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.1635API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.

1528API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.1636API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.

1529```1637```

1530 1638 

1531Dalam [mode non-interaktif](/docs/id/headless) dengan `-p` dan dalam [Agent SDK](/docs/id/agent-sdk/overview), kode kesalahan terstruktur adalah `cloud_credential_error`. Sebelum v2.1.267, pesan hanya menunjukkan teks detail setelah `API Error:`, dan kode terstruktur adalah `server_error` atau `unknown`.1639Dalam [mode non-interaktif](/docs/id/headless) dengan `-p` dan dalam [Agent SDK](/docs/id/agent-sdk/overview), kode kesalahan terstruktur adalah `cloud_credential_error`. Sebelum v2.1.267, pesan hanya menampilkan teks detail setelah `API Error:`, dan kode terstruktur adalah `server_error` atau `unknown`.

1532 1640 

1533**Yang harus dilakukan:**1641**Yang harus dilakukan:**

1534 1642 

1535* Jalankan perintah masuk penyedia Anda, seperti `aws sso login --profile myprofile` atau `gcloud auth application-default login`, kemudian coba lagi. [Kredensial Bedrock, Platform Agen, atau Foundry tidak memuat](/docs/id/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) menunjukkan cara mengonfirmasi kredensial di luar Claude Code1643* Jalankan perintah masuk penyedia Anda, seperti `aws sso login --profile myprofile` atau `gcloud auth application-default login`, kemudian coba ulang. [Kredensial Bedrock, Platform Agen, atau Foundry tidak memuat](/docs/id/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading) menunjukkan cara mengonfirmasi kredensial di luar Claude Code

1536* Jika detail membaca `AWS default-chain credential resolve timed out`, rantai tergantung daripada gagal, jadi ikuti [Resolusi kredensial rantai default AWS habis waktu](#aws-default-chain-credential-resolve-timed-out) sebagai gantinya1644* Jika detail membaca `AWS default-chain credential resolve timed out`, rantai tergantung daripada gagal, jadi ikuti [Resolusi kredensial rantai default AWS habis waktu](#aws-default-chain-credential-resolve-timed-out) sebagai gantinya

1537 1645 

1538<h3 id="aws-default-chain-credential-resolve-timed-out">1646<h3 id="aws-default-chain-credential-resolve-timed-out">

1539 Resolusi kredensial rantai default AWS habis waktu1647 Resolusi kredensial rantai default AWS habis waktu

1540</h3>1648</h3>

1541 1649 

1542Rantai penyedia kredensial default AWS tidak menghasilkan kredensial dalam 60 detik, jadi Claude Code menghentikan resolusi dan gagal permintaan. Waktu habis ini adalah satu penyebab [Tidak dapat memuat kredensial AWS atau Google Cloud](#could-not-load-aws-or-google-cloud-credentials). Kegagalan adalah resolusi kredensial lokal: permintaan tidak pernah mencapai [Amazon Bedrock](/docs/id/amazon-bedrock), [Claude Platform di AWS](/docs/id/claude-platform-on-aws), atau [titik akhir Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint). Claude Code menghapus [cache kredensial](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout) dan mencoba lagi sebelum kesalahan ini muncul, jadi pada saat Anda melihatnya rantai telah macet pada upaya berulang.1650Rantai penyedia kredensial default AWS tidak menghasilkan kredensial dalam 60 detik, jadi Claude Code menghentikan resolusi dan gagal permintaan. Timeout ini adalah satu penyebab [Tidak dapat memuat kredensial AWS atau Google Cloud](#could-not-load-aws-or-google-cloud-credentials). Kegagalan adalah resolusi kredensial lokal: permintaan tidak pernah mencapai [Amazon Bedrock](/docs/id/amazon-bedrock), [Claude Platform di AWS](/docs/id/claude-platform-on-aws), atau [titik akhir Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint). Claude Code menghapus [cache kredensial](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout) dan mencoba ulang sebelum kesalahan ini muncul, jadi pada saat Anda melihatnya rantai telah macet pada upaya berulang.

1543 1651 

1544```text theme={null}1652```text theme={null}

1545API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.1653API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.

1546```1654```

1547 1655 

1548Penyebab umum adalah perintah `credential_process` dalam profil AWS Anda yang menunggu input yang tidak dapat diterima, dan kontainer atau VM yang layanan metadata instans (IMDS) tidak pernah menjawab probe rantai.1656Penyebab umum adalah perintah `credential_process` dalam profil AWS Anda yang menunggu input yang tidak dapat diterima, dan kontainer atau VM yang instance metadata service (IMDS)-nya tidak pernah menjawab probe rantai.

1549 1657 

1550Sebelum v2.1.267, pesan membaca `API Error: AWS default-chain credential resolve timed out`.1658Sebelum v2.1.267, pesan berbunyi `API Error: AWS default-chain credential resolve timed out`.

1551Sebelum v2.1.207, rantai yang macet meninggalkan permintaan menunggu tanpa batas daripada gagal.1659Sebelum v2.1.207, rantai yang macet meninggalkan permintaan menunggu tanpa batas waktu daripada gagal.

1552 1660 

1553**Yang harus dilakukan:**1661**Yang harus dilakukan:**

1554 1662 


1568 1676 

1569Angka mencerminkan batas Anda: 60 detik secara default, atau nilai yang Anda atur dalam [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/id/env-vars).1677Angka mencerminkan batas Anda: 60 detik secara default, atau nilai yang Anda atur dalam [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/id/env-vars).

1570 1678 

1571Penyebab umum adalah jaringan atau proxy yang macet permintaan ke AWS, termasuk penyegaran token SSO, dan pembantu kredensial masih menunggu input yang tidak dapat Anda lihat. Naikkan batas hanya ketika pembantu secara sah memerlukan lebih banyak waktu.1679Penyebab umum adalah jaringan atau proxy yang macet permintaan ke AWS, termasuk penyegaran token SSO, dan helper kredensial masih menunggu input yang tidak dapat Anda lihat. Naikkan batas hanya ketika helper secara sah memerlukan lebih banyak waktu.

1572 1680 

1573Permintaan tunggal yang macet ke AWS juga dapat gagal pada waktu habis per-permintaan sendiri, yang menunjukkan pesan yang lebih pendek pada langkah yang sama:1681Permintaan tunggal yang macet ke AWS juga dapat gagal pada timeout per-permintaan-nya sendiri, yang menampilkan pesan yang lebih pendek pada langkah yang sama:

1574 1682 

1575```text theme={null}1683```text theme={null}

1576A request to AWS timed out. Check your network and proxy settings, then try again.1684A request to AWS timed out. Check your network and proxy settings, then try again.

1577```1685```

1578 1686 

1579Ketika waktu habis yang sama terjadi pada langkah pin model, wizard menandai model sebagai `unreachable` daripada menunjukkan pesan apa pun.1687Ketika timeout yang sama terjadi pada langkah pin model, wizard menandai model sebagai `unreachable` daripada menampilkan pesan apa pun.

1580 1688 

1581**Yang harus dilakukan:**1689**Yang harus dilakukan:**

1582 1690 

1583* Jalankan `aws sts get-caller-identity` di shell yang sama. Jika juga tergantung, macet ada di luar Claude Code, di jaringan Anda, proxy Anda, atau pembantu kredensial dalam profil AWS Anda; perbaiki itu terlebih dahulu.1691* Jalankan `aws sts get-caller-identity` di shell yang sama. Jika juga tergantung, macet ada di luar Claude Code, di jaringan Anda, proxy Anda, atau helper kredensial dalam profil AWS Anda; perbaiki itu terlebih dahulu.

1584* Selesaikan masuk interaktif apa pun sebelum membuka wizard, misalnya `aws sso login --profile myprofile`1692* Selesaikan masuk interaktif apa pun sebelum membuka wizard, misalnya `aws sso login --profile myprofile`

1585* Jika pembantu kredensial dalam profil AWS Anda secara sah memerlukan lebih lama dari 60 detik untuk meminta Anda, naikkan batas dalam milidetik dengan [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/id/env-vars)1693* Jika helper kredensial dalam profil AWS Anda secara sah memerlukan lebih lama dari 60 detik untuk meminta Anda, naikkan batas dalam milidetik dengan [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/id/env-vars)

1586 1694 

1587<h3 id="cloud-gateway-session-expired">1695<h3 id="cloud-gateway-session-expired">

1588 Sesi gateway cloud kedaluwarsa1696 Sesi gateway cloud kedaluwarsa

1589</h3>1697</h3>

1590 1698 

1591Anda masuk melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway), dan sesi gateway yang disimpan di mesin ini telah kedaluwarsa dan tidak dapat diperbarui, atau gateway tidak lagi menerimanya, misalnya setelah [rahasia JWT gateway diganti](/docs/id/claude-apps-gateway-deploy#jwt-secret-rotation). Jika Anda melihat baris ini ketika memulai `claude` secara interaktif, sesi telah dibuka keluar dari gateway:1699Anda masuk melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway), dan sesi gateway yang disimpan di mesin ini kedaluwarsa dan tidak dapat diperbarui, atau gateway tidak lagi menerimanya, misalnya setelah [rahasia JWT gateway diganti](/docs/id/claude-apps-gateway-deploy#jwt-secret-rotation). Jika Anda melihat baris ini ketika memulai `claude` secara interaktif, sesi telah dibuka tanpa masuk ke gateway:

1592 1700 

1593```text theme={null}1701```text theme={null}

1594Cloud gateway session expired — run /login to reconnect.1702Cloud gateway session expired — run /login to reconnect.


1596 1704 

1597Baris yang sama dapat muncul di tengah sesi ketika kredensial gateway kedaluwarsa dan Claude Code tidak dapat memperbarui.1705Baris yang sama dapat muncul di tengah sesi ketika kredensial gateway kedaluwarsa dan Claude Code tidak dapat memperbarui.

1598 1706 

1599Dalam jalankan [non-interaktif](/docs/id/headless), sesi latar belakang atau sesi yang tidak diawasi lainnya, atau subperintah `claude` selain `claude auth`, Claude Code keluar dengan pesan ini sebagai gantinya ketika gateway tidak lagi menerima sesi:1707Dalam jalankan [non-interaktif](/docs/id/headless), sesi latar belakang atau sesi lain yang tidak diawasi, atau subperintah `claude` selain `claude auth`, Claude Code keluar dengan pesan ini sebagai gantinya ketika gateway tidak lagi menerima sesi:

1600 1708 

1601```text theme={null}1709```text theme={null}

1602Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.1710Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.


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

1609 1717 

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

1611 Masuk tidak diterima ke Cloud gateway1719 Masuk habis waktu saat menunggu Anda untuk melanjutkan

1612</h3>1720</h3>

1613 1721 

1614Anda 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.1722Selama masuk [gateway aplikasi Claude](/docs/id/claude-apps-gateway), gateway menamai akun yang masuk, dan Claude Code meminta Anda untuk mengonfirmasinya sebelum menyimpan kredensial. Anda meninggalkan konfirmasi terbuka melampaui kedaluwarsa masuk itu sendiri, dan gateway tidak mengeluarkan token penyegaran yang dapat memperbarui, jadi Claude Code tidak menyimpan apa pun ketika Anda melanjutkan:

1615 

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

1617 1723 

1618```text theme={null}1724```text theme={null}

1619Claude login not accepted · Run /login, then try again1725Sign-in timed out while waiting for you to continue. Try again.

1620```1726```

1621 1727 

1622**Yang harus dilakukan:**1728**Yang harus dilakukan:**

1623 1729 

1624* Jalankan `/login`, selesaikan masuk, kemudian mulai sesi lagi1730* Jalankan `/login` lagi dan konfirmkan akun sebelum masuk kedaluwarsa

1625 1731 

1626<h3 id="gateway-refused-the-request">1732<h3 id="gateway-refused-the-request">

1627 Gateway menolak permintaan1733 Gateway menolak permintaan


1638* Minta administrator gateway Anda untuk mencari permintaan. Ekor `API Error:` membawa penolakan yang dikembalikan gateway1744* Minta administrator gateway Anda untuk mencari permintaan. Ekor `API Error:` membawa penolakan yang dikembalikan gateway

1639* Untuk administrator: aturan [kontrol akses](/docs/id/claude-apps-gateway-config#http-tuning) pada gateway mengembalikan 403 yang dicatat [log audit](/docs/id/claude-apps-gateway-deploy#logs) dengan alasannya, dan penolakan otorisasi upstream melewati per [Pesan kesalahan Upstream](/docs/id/claude-apps-gateway-config#upstream-error-messages)1745* Untuk administrator: aturan [kontrol akses](/docs/id/claude-apps-gateway-config#http-tuning) pada gateway mengembalikan 403 yang dicatat [log audit](/docs/id/claude-apps-gateway-deploy#logs) dengan alasannya, dan penolakan otorisasi upstream melewati per [Pesan kesalahan Upstream](/docs/id/claude-apps-gateway-config#upstream-error-messages)

1640 1746 

1641Sebelum v2.1.273, 403 pada sesi gateway menunjukkan pesan `Please run /login` atau `Failed to authenticate` generik sebagai gantinya, dan masuk lagi tidak menghapus penolakan.1747Sebelum v2.1.273, 403 pada sesi gateway menampilkan pesan `Please run /login` atau `Failed to authenticate` generik sebagai gantinya, dan masuk lagi tidak menghapus penolakan.

1642 1748 

1643<h2 id="network-and-connection-errors">1749<h2 id="network-and-connection-errors">

1644 Kesalahan jaringan dan koneksi1750 Kesalahan jaringan dan koneksi


1659No internet route — check your connection or VPN (EHOSTUNREACH)1765No internet route — check your connection or VPN (EHOSTUNREACH)

1660Couldn't connect through your proxy (ERR_PROXY_TUNNEL) — the proxy refused the tunnel: check its credentials and that it allows this host1766Couldn't connect through your proxy (ERR_PROXY_TUNNEL) — the proxy refused the tunnel: check its credentials and that it allows this host

1661Connection dropped (ECONNRESET)1767Connection dropped (ECONNRESET)

1662fetch failed

1663Request timed out. Check your internet connection and proxy settings1768Request timed out. Check your internet connection and proxy settings

1664```1769```

1665 1770 


1679 1784 

1680Jika `curl` berhasil tetapi Claude Code masih gagal, penyebabnya biasanya sesuatu antara runtime dan jaringan daripada jaringan itu sendiri:1785Jika `curl` berhasil tetapi Claude Code masih gagal, penyebabnya biasanya sesuatu antara runtime dan jaringan daripada jaringan itu sendiri:

1681 1786 

1787* Periksa apakah `ANTHROPIC_BASE_URL` diatur dengan menjalankan `echo $ANTHROPIC_BASE_URL`, atau `echo $env:ANTHROPIC_BASE_URL` di PowerShell, dan cari di blok `env` dari [file pengaturan](/docs/id/settings) Anda. Ketika diatur, Claude Code mengirim permintaan model ke alamat itu daripada `api.anthropic.com`, jadi nilai sisa yang menunjuk ke proxy lokal atau gateway yang tidak lagi berjalan menghasilkan `Connection refused` meskipun `curl` menjangkau API. Hapus dari profil shell atau pengaturan Anda dan mulai Claude Code dari terminal baru.

1682* Di Linux dan WSL, periksa `/etc/resolv.conf` untuk nameserver yang tidak dapat dijangkau. WSL khususnya dapat mewarisi resolver yang rusak dari host.1788* Di Linux dan WSL, periksa `/etc/resolv.conf` untuk nameserver yang tidak dapat dijangkau. WSL khususnya dapat mewarisi resolver yang rusak dari host.

1683* Di macOS, klien VPN yang terputus atau dihapus dapat meninggalkan antarmuka terowongan atau aturan perutean. Periksa `ifconfig` untuk antarmuka `utun` yang basi dan hapus ekstensi jaringan VPN di Pengaturan Sistem.1789* Di macOS, klien VPN yang terputus atau dihapus dapat meninggalkan antarmuka terowongan atau aturan perutean. Periksa `ifconfig` untuk antarmuka `utun` yang basi dan hapus ekstensi jaringan VPN di Pengaturan Sistem.

1684* Docker Desktop dan runtime kontainer serupa dapat mencegat lalu lintas keluar. Keluar dari mereka dan coba lagi untuk mengesampingkan ini.1790* Docker Desktop dan runtime kontainer serupa dapat mencegat lalu lintas keluar. Keluar dari mereka dan coba lagi untuk mengesampingkan ini.


1704 1810 

1705* Jika pesan menamai variabel proxy, periksa bahwa nilainya menunjuk ke proxy yang tepat dan minta tim jaringan Anda untuk memungkinkan koneksi HTTPS melaluinya ke host dalam pesan. Lihat [Konfigurasi jaringan](/docs/id/network-config).1811* Jika pesan menamai variabel proxy, periksa bahwa nilainya menunjuk ke proxy yang tepat dan minta tim jaringan Anda untuk memungkinkan koneksi HTTPS melaluinya ke host dalam pesan. Lihat [Konfigurasi jaringan](/docs/id/network-config).

1706* Kerjakan pemeriksaan dalam [Unable to connect to API](#unable-to-connect-to-api). Tes `curl` dan panduan firewall di sana berlaku untuk pemeriksaan ini juga.1812* Kerjakan pemeriksaan dalam [Unable to connect to API](#unable-to-connect-to-api). Tes `curl` dan panduan firewall di sana berlaku untuk pemeriksaan ini juga.

1707* Jika organisasi Anda masuk melalui [cloud gateway](/docs/id/claude-apps-gateway) dan kesalahan ini muncul pada run pertama, perbarui ke Claude Code v2.1.247 atau lebih baru.

1708* Jika jaringan Anda terbuka dan kegagalan berlanjut, Claude Code mungkin tidak [tersedia di negara Anda](https://www.anthropic.com/supported-countries)1813* Jika jaringan Anda terbuka dan kegagalan berlanjut, Claude Code mungkin tidak [tersedia di negara Anda](https://www.anthropic.com/supported-countries)

1709 1814 

1710<h3 id="socket-is-closed">1815<h3 id="socket-is-closed">


1746* Baca klausa `Response:` untuk melihat sistem mana yang menjawab. Isi HTML, tidak ada id permintaan Anthropic, atau server bernama seperti `nginx` atau `cloudflare` berarti sesuatu antara Claude Code dan API menjawab di tempatnya1851* Baca klausa `Response:` untuk melihat sistem mana yang menjawab. Isi HTML, tidak ada id permintaan Anthropic, atau server bernama seperti `nginx` atau `cloudflare` berarti sesuatu antara Claude Code dan API menjawab di tempatnya

1747* Jika Anda merutekan melalui [gateway LLM](/docs/id/llm-gateway-connect#troubleshoot-gateway-errors), uji rute dengan permintaan langsung dan perbaiki hop yang mengembalikan respons non-API1852* Jika Anda merutekan melalui [gateway LLM](/docs/id/llm-gateway-connect#troubleshoot-gateway-errors), uji rute dengan permintaan langsung dan perbaiki hop yang mengembalikan respons non-API

1748* Di jaringan dengan halaman masuk, seperti Wi-Fi tamu, selesaikan masuk di browser, kemudian coba lagi1853* Di jaringan dengan halaman masuk, seperti Wi-Fi tamu, selesaikan masuk di browser, kemudian coba lagi

1749* Jika hanya rute non-streaming melalui gateway Anda yang rusak, atur [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/id/env-vars#variables) sehingga permintaan yang gagal di tengah aliran masuk ke jalur pengulangan normal daripada fallback ini, kecuali ketika titik akhir streaming itu sendiri mengembalikan `404`, di mana Claude Code masih jatuh kembali1854* Jika hanya rute non-streaming melalui gateway Anda yang rusak, atur [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/id/env-vars#variables) untuk mematikan fallback ini, kecuali ketika titik akhir streaming itu sendiri mengembalikan `404`, di mana Claude Code masih jatuh kembali

1750 1855 

1751<h3 id="streaming-response-ended-before-any-complete-data-was-received">1856<h3 id="streaming-response-ended-before-any-complete-data-was-received">

1752 Streaming response ended before any complete data was received1857 Streaming response ended before any complete data was received


1899* Mulai sesi baru dengan `claude --remote-control` untuk membuat sesi Remote Control baru2004* Mulai sesi baru dengan `claude --remote-control` untuk membuat sesi Remote Control baru

1900* Untuk pesan startup Remote Control lainnya, lihat [Troubleshoot Remote Control](/docs/id/remote-control#troubleshooting)2005* Untuk pesan startup Remote Control lainnya, lihat [Troubleshoot Remote Control](/docs/id/remote-control#troubleshooting)

1901 2006 

1902Jika server melaporkan sebaliknya bahwa sesi sebelumnya hilang, Anda tidak melihat pesan ini. Claude Code memulai sesi baru di tempatnya atau menampilkan [`Previous session is unavailable — run /remote-control to start a new one`](/docs/id/remote-control#previous-session-is-unavailable), tergantung pada [catatan koneksi kembali percakapan](/docs/id/remote-control#resume-outcomes). Dari v2.1.227 hingga v2.1.231, Claude Code menampilkan pesan yang dimulai dengan `Remote Control could not resume the previous session under the current login` sebagai gantinya, dan [versi sebelumnya berperilaku berbeda lagi](/docs/id/remote-control#reconnect-history).2007Jika server melaporkan sebaliknya bahwa sesi sebelumnya hilang, Anda tidak melihat pesan ini. Claude Code memulai sesi baru di tempatnya atau menampilkan [`Previous session is unavailable — run /remote-control to start a new one`](/docs/id/remote-control#previous-session-is-unavailable).

1903 2008 

1904<h3 id="sessions-ended-while-this-machine-was-offline">2009<h3 id="sessions-ended-while-this-machine-was-offline">

1905 Sessions ended while this machine was offline2010 Sessions ended while this machine was offline


1933* Jalankan `/feedback` untuk mengirim transkrip dengan deskripsi apa yang terjadi. Lihat [Report an error](#report-an-error) jika `/feedback` tidak tersedia di lingkungan Anda2038* Jalankan `/feedback` untuk mengirim transkrip dengan deskripsi apa yang terjadi. Lihat [Report an error](#report-an-error) jika `/feedback` tidak tersedia di lingkungan Anda

1934* Jika permintaan lain juga gagal, periksa koneksi jaringan Anda dan lihat [Unable to connect to API](#unable-to-connect-to-api)2039* Jika permintaan lain juga gagal, periksa koneksi jaringan Anda dan lihat [Unable to connect to API](#unable-to-connect-to-api)

1935 2040 

2041<h3 id="couldnt-send-feedback">

2042 Couldn't send feedback

2043</h3>

2044 

2045Anda mengirim laporan dari dialog [`/feedback`, `/bug`, atau `/share`](/docs/id/commands#all-commands) dan unggahan ke Anthropic gagal. Dialog menyimpan teks Anda sehingga Anda dapat mencoba lagi.

2046 

2047```text theme={null}

2048Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.

2049```

2050 

2051Teks setelah awalan menamai apa yang gagal:

2052 

2053* **`: not signed in. Run /login, then retry.`**: dialog mengunggah hanya ketika Claude Code menemukan kredensial Anthropic saat dibuka, dan tidak ada yang dapat digunakan pada saat Anda mengirim. Misalnya, Anda keluar di mesin ini sementara itu, atau login Anda tidak lagi dapat disegarkan.

2054* **Tanda kurung**: `(server returned <status>)` adalah kode respons layanan; `(request timed out)` dan `(couldn't reach the service)` adalah kegagalan jaringan. Ketika Claude Code tidak dapat menamai alasan, tanda kurung tidak ada.

2055 

2056Dalam [antrian draf umpan balik](/docs/id/tools-reference#sendfeedback-tool-behavior), kegagalan yang sama berakhir dengan `The draft is still queued. Try again later.` sebagai gantinya, dan draf tetap dalam antrian untuk upaya lain.

2057 

2058**Yang harus dilakukan:**

2059 

2060* Untuk wording tidak-masuk, jalankan `/login` dan kirim lagi

2061* Jika tidak, kirim lagi; jika permintaan lain juga gagal, periksa koneksi jaringan Anda dan lihat [Unable to connect to API](#unable-to-connect-to-api)

2062* Jika terus gagal, ajukan laporan di [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues), seperti yang dikatakan pesan

2063 

2064Sebelum v2.1.281, setiap pengiriman gagal dengan pesan ini sekali Remote Control **Stop** atau pesan lintas-sesi mendesak telah tiba saat dialog terbuka. Di versi tersebut, tutup dialog, buka kembali, dan kirim lagi.

2065 

1936<h2 id="request-errors">2066<h2 id="request-errors">

1937 Kesalahan permintaan2067 Kesalahan permintaan

1938</h2>2068</h2>


1957 2087 

1958Baris hanya menyebutkan `/clear` ketika [`DISABLE_COMPACT`](/docs/id/env-vars) diatur. Bentuk kesalahan yang lebih panjang, seperti bentuk kegagalan pemadatan di bawah, tetap mempertahankan pesan `Prompt is too long ·`. Dalam output `-p` dan transkrip, teksnya tetap `Prompt is too long`.2088Baris hanya menyebutkan `/clear` ketika [`DISABLE_COMPACT`](/docs/id/env-vars) diatur. Bentuk kesalahan yang lebih panjang, seperti bentuk kegagalan pemadatan di bawah, tetap mempertahankan pesan `Prompt is too long ·`. Dalam output `-p` dan transkrip, teksnya tetap `Prompt is too long`.

1959 2089 

1960Ketika Anda mematikan auto-compact di [pengaturan pengguna](/docs/id/settings-reference#autocompactenabled) Anda, baris juga mengatakan demikian:2090Ketika Anda mematikan auto-compact di [pengaturan pengguna](/docs/id/settings-reference#autocompactenabled), baris juga mengatakan demikian:

1961 2091 

1962```text theme={null}2092```text theme={null}

1963Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on2093Context limit reached · /compact or /clear to continue · auto-compact is off · /config to turn it on


1982* Ketika tidak dapat merangkum seluruh pertukaran, Claude Code menyimpan prompt terbaru Anda kata demi kata dan merangkum semuanya sebelumnya.2112* Ketika tidak dapat merangkum seluruh pertukaran, Claude Code menyimpan prompt terbaru Anda kata demi kata dan merangkum semuanya sebelumnya.

1983* Dalam hal itu, ketika percakapan tidak berakhir dengan prompt Anda, Claude Code merangkum seluruh percakapan sebagai gantinya.2113* Dalam hal itu, ketika percakapan tidak berakhir dengan prompt Anda, Claude Code merangkum seluruh percakapan sebagai gantinya.

1984 2114 

1985Claude Code melewati pemulihan ini ketika konten yang akan dibawanya tidak menyimpan balasan model dan kurang dari sekitar 1.000 token teks Anda sendiri, seperti pengiriman ulang singkat setelah tempel berukuran besar. Jalankan `/clear` untuk memulai segar. Sebelum v2.1.269, pemadatan gagal setiap kali tidak dapat merangkum seluruh pertukaran, jadi sesi dalam keadaan itu mencapai kesalahan ini lagi pada setiap giliran.2115Claude Code melewati pemulihan ini ketika konten yang akan dibawanya tidak menyimpan balasan model dan kurang dari sekitar 1.000 token teks Anda sendiri, seperti pengiriman ulang singkat setelah tempel berukuran besar. Jalankan `/clear` untuk memulai segar. Sebelum v2.1.269, pemadatan gagal setiap kali tidak dapat merangkum seluruh pertukaran, jadi sesi dalam keadaan itu mengalami kesalahan ini lagi di setiap giliran.

1986 2116 

1987Percakapan pertukaran tunggal tidak memiliki giliran sebelumnya untuk dirangkum. Ketika pemadatan otomatis akan berjalan pada satu, Claude Code melewati upaya dan menjelaskan apa yang mengisi permintaan sebagai gantinya. Ketika API tidak melaporkan jumlah token dalam kesalahannya, pesan berbunyi:2117Percakapan pertukaran tunggal tidak memiliki giliran sebelumnya untuk dirangkum. Ketika pemadatan otomatis akan berjalan pada satu, Claude Code melewati upaya dan menjelaskan apa yang mengisi permintaan sebagai gantinya. Ketika API tidak melaporkan jumlah token dalam kesalahannya, pesan berbunyi:

1988 2118 


1990Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments.2120Prompt is too long · this conversation is a single exchange and cannot be compacted — the request size comes mostly from system prompt, tool definitions, or attachments.

1991```2121```

1992 2122 

1993Ketika API melaporkan jumlah token dalam kesalahannya, Claude Code membandingkannya dengan estimasi sendiri tentang ukuran percakapan untuk mengetahui mana yang paling banyak dari permintaan: konten percakapan sendiri, atau prompt sistem, definisi alat, dan konten lampiran yang Claude Code kirim dengannya. Ketika konten percakapan sendiri paling banyak dari permintaan, pesan berbunyi:2123Ketika API melaporkan jumlah token dalam kesalahannya, Claude Code membandingkannya dengan estimasi ukuran percakapannya sendiri untuk mengetahui mana yang paling banyak dari permintaan: konten percakapan itu sendiri, atau prompt sistem, definisi alat, dan konten lampiran yang Claude Code kirim dengannya. Ketika konten percakapan itu sendiri paling banyak dari permintaan, pesan berbunyi:

1994 2124 

1995```text theme={null}2125```text theme={null}

1996Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).2126Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) and this conversation's own content is most of it. A single-exchange conversation cannot be compacted; start with less content (smaller files or pasted text).


2002Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) but this conversation is only ~<conversation tokens> tokens — the rest is system prompt, tool definitions, and attachment content. A single-exchange conversation cannot be compacted; reduce attached files/tools or start with less context.2132Prompt is too long · the request is ~<request tokens> tokens (limit <limit>) but this conversation is only ~<conversation tokens> tokens — the rest is system prompt, tool definitions, and attachment content. A single-exchange conversation cannot be compacted; reduce attached files/tools or start with less context.

2003```2133```

2004 2134 

2005Sebelum v2.1.162, Claude Code mencoba pemadatan bagaimanapun dan menampilkan `Prompt is too long` telanjang ketika gagal.2135Sebelum v2.1.162, Claude Code mencoba pemadatan bagaimanapun dan menampilkan `Prompt is too long` biasa ketika gagal.

2006 2136 

2007**Yang harus dilakukan:**2137**Yang harus dilakukan:**

2008 2138 

2009* Jalankan `/compact` untuk merangkum giliran sebelumnya dan membebaskan ruang, atau `/clear` untuk memulai segar. Jika `/compact` menjawab `Not enough messages to compact.`, percakapan adalah pertukaran tunggal tanpa apa pun sebelumnya untuk dirangkum, jadi ruang diambil oleh prompt itu dan apa yang Claude Code kirim dengan setiap permintaan: jalankan `/clear` dan kirim ulang dengan teks tempel lebih sedikit atau lampiran lebih kecil, atau kurangi definisi alat dan file memori menggunakan langkah-langkah di bawah2139* Jalankan `/compact` untuk merangkum giliran sebelumnya dan membebaskan ruang, atau `/clear` untuk memulai segar. Jika `/compact` menjawab `Not enough messages to compact.`, percakapan adalah pertukaran tunggal tanpa apa pun sebelumnya untuk dirangkum, jadi ruang diambil oleh satu prompt itu dan apa yang Claude Code kirim dengan setiap permintaan: jalankan `/clear` dan kirim ulang dengan teks tempel lebih sedikit atau lampiran lebih kecil, atau kurangi definisi alat dan file memori menggunakan langkah-langkah di bawah

2010* Jalankan `/context` untuk melihat rincian apa yang mengonsumsi jendela: prompt sistem, alat, file memori, dan pesan2140* Jalankan `/context` untuk melihat rincian apa yang mengonsumsi jendela: prompt sistem, alat, file memori, dan pesan

2011* Nonaktifkan server MCP yang tidak Anda gunakan dengan `/mcp disable <name>` untuk menghapus definisi alat mereka dari konteks2141* Nonaktifkan server MCP yang tidak Anda gunakan dengan `/mcp disable <name>` untuk menghapus definisi alat mereka dari konteks

2012* Pangkas file memori `CLAUDE.md` besar, atau pindahkan instruksi ke [aturan bersifat jalur](/docs/id/memory#path-specific-rules) yang dimuat hanya ketika relevan2142* Pangkas file memori `CLAUDE.md` besar, atau pindahkan instruksi ke [aturan bersifat jalur](/docs/id/memory#path-specific-rules) yang dimuat hanya ketika relevan

2013* Subagen mewarisi setiap definisi alat MCP dari sesi induk, yang dapat mengisi jendela konteks mereka sebelum giliran pertama. Nonaktifkan server MCP yang tidak Anda gunakan sebelum menelurkan subagen.

2014* Auto-compact aktif secara default dan biasanya mencegah kesalahan ini. Jika Anda mematikannya di `/config` atau dengan [`DISABLE_AUTO_COMPACT`](/docs/id/env-vars), aktifkan kembali. Jika Anda tetap mematikannya, jalankan `/compact` sendiri sebelum jendela penuh.2143* Auto-compact aktif secara default dan biasanya mencegah kesalahan ini. Jika Anda mematikannya di `/config` atau dengan [`DISABLE_AUTO_COMPACT`](/docs/id/env-vars), aktifkan kembali. Jika Anda tetap mematikannya, jalankan `/compact` sendiri sebelum jendela penuh.

2015 2144 

2016Lihat [Jelajahi jendela konteks](/docs/id/context-window) untuk tampilan interaktif tentang bagaimana konteks terisi.2145Lihat [Jelajahi jendela konteks](/docs/id/context-window) untuk tampilan interaktif tentang bagaimana konteks terisi.


2025Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2154Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.

2026```2155```

2027 2156 

2028Ketika batas yang Anda lampaui adalah jendela pemadatan, seperti batas 200K pada model konteks 1M, peringatan berbunyi berbeda. Jendela pemadatan dapat duduk di bawah jendela konteks model, jadi permintaan melewatinya masih dapat berhasil.2157Ketika batas yang Anda lampaui adalah jendela pemadatan, seperti batas 200K pada model konteks 1M, peringatan berbunyi berbeda. Jendela pemadatan dapat berada di bawah jendela konteks model, jadi permintaan melampaui itu masih dapat berhasil.

2029 2158 

2030```text theme={null}2159```text theme={null}

2031Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.2160Context is 94k tokens past the 200k-token compaction window — run /compact to reduce usage.


2036**Yang harus dilakukan:**2165**Yang harus dilakukan:**

2037 2166 

2038* Dalam percakapan multi-giliran, jalankan `/compact` untuk merangkum giliran sebelumnya dan membebaskan ruang. Untuk memulai segar sebagai gantinya, jalankan `/clear`2167* Dalam percakapan multi-giliran, jalankan `/compact` untuk merangkum giliran sebelumnya dan membebaskan ruang. Untuk memulai segar sebagai gantinya, jalankan `/clear`

2039* Untuk lebih banyak cara mengurangi penggunaan, lihat [Prompt is too long](#prompt-is-too-long)2168* Untuk cara lebih banyak mengurangi penggunaan, lihat [Prompt terlalu panjang](#prompt-is-too-long)

2040 2169 

2041Sebelum v2.1.216, `/context` menampilkan penggunaan di atas 100% tanpa baris peringatan yang menjelaskan apa artinya atau cara pulih.2170Sebelum v2.1.216, `/context` menampilkan penggunaan di atas 100% tanpa baris peringatan yang menjelaskan apa artinya atau cara pulih.

2042 2171 

2043<h3 id="error-during-compaction-conversation-too-long">

2044 Kesalahan selama pemadatan: Percakapan terlalu panjang

2045</h3>

2046 

2047`/compact` sendiri gagal karena tidak ada cukup konteks bebas untuk menampung ringkasan yang dihasilkannya.

2048 

2049```text theme={null}

2050Error during compaction: Conversation too long. Press esc twice to go up a few messages and try again.

2051```

2052 

2053Ini dapat terjadi ketika jendela sudah penuh pada saat auto-compact dipicu, atau ketika Anda menjalankan `/compact` setelah melihat [`Prompt is too long`](#prompt-is-too-long). Dalam sesi interaktif, kesalahan itu adalah baris `Context limit reached`.

2054 

2055**Yang harus dilakukan:**

2056 

2057* Tekan Esc dua kali untuk membuka daftar pesan dan mundur beberapa giliran. Ini menghilangkan pesan terbaru dari konteks. Kemudian jalankan `/compact` lagi.

2058* Jika mundur tidak membebaskan cukup ruang, jalankan `/clear` untuk memulai sesi segar. Percakapan sebelumnya Anda disimpan dan dapat dibuka kembali dengan `/resume`.

2059 

2060Pesan ini dan kegagalan `/compact` lainnya ditampilkan dalam gaya kesalahan. Sebelum v2.1.216, mereka dirender dalam gaya redup yang sama dengan output perintah yang berhasil, jadi Anda dapat membaca pemadatan yang gagal sebagai kesuksesan.

2061 

2062<h3 id="request-too-large">2172<h3 id="request-too-large">

2063 Permintaan terlalu besar2173 Permintaan terlalu besar

2064</h3>2174</h3>


2069Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments.2179Request too large (max 32MB). Accumulated images and attachments in the conversation pushed the request over the limit. Run /compact, or double press esc to go back and remove attachments.

2070```2180```

2071 2181 

2072Ketika permintaan langsung ke API Claude dan API sendiri menolaknya, Claude Code mengukur percakapan dan merumuskan pesan berdasarkan apakah pemulihan dapat bekerja. Melalui proxy, gateway, atau penyedia cloud Anda mendapatkan pesan umum. Bentuk yang diukur:2182Ketika permintaan langsung ke API Claude dan API itu sendiri menolaknya, Claude Code mengukur percakapan dan merumuskan pesan berdasarkan apakah pemulihan dapat bekerja. Melalui proxy, gateway, atau penyedia cloud Anda mendapatkan pesan umum. Bentuk yang diukur:

2073 2183 

2074* `Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).`: gambar atau dokumen mendorong permintaan melampaui batas. Claude Code mencoba ulang dengan mereka dihilangkan.2184* `Request too large (max 32MB; 20.1MB of about 33.4MB is images or documents).`: gambar atau dokumen mendorong permintaan melampaui batas. Claude Code mencoba ulang dengan mereka dihapus.

2075* `Request too large for the API's 32MB request limit`: pesan saja sudah melampaui batas, jadi pesan mengatakan `compacting cannot make it fit` dan Claude Code tidak mencoba ulang. Dalam [mode non-interaktif](/docs/id/headless), pesan memberi tahu Anda untuk mengurangi input atau memulai sesi baru sebagai gantinya.2185* `Request too large for the API's 32MB request limit`: pesan saja sudah melampaui batas, jadi pesan mengatakan `compacting cannot make it fit` dan Claude Code tidak mencoba ulang. Dalam [mode non-interaktif](/docs/id/headless), pesan memberi tahu Anda untuk mengurangi input atau memulai sesi baru sebagai gantinya.

2076 2186 

2077Sebelum v2.1.212, percakapan dengan cukup gambar terakumulasi gagal pada setiap giliran dengan `Request too large (max 32MB). Double press esc to go back and try with a smaller file.` Sebelum v2.1.229, Claude Code menampilkan saran lampiran untuk setiap penolakan, bahkan ketika pemadatan tidak dapat membantu.2187Sebelum v2.1.212, percakapan dengan cukup banyak gambar terakumulasi gagal di setiap giliran dengan `Request too large (max 32MB). Double press esc to go back and try with a smaller file.` Sebelum v2.1.229, Claude Code menampilkan saran lampiran untuk setiap penolakan, bahkan ketika pemadatan tidak dapat membantu.

2078 2188 

2079**Yang harus dilakukan:**2189**Yang harus dilakukan:**

2080 2190 

2081* Jika pesan mengatakan `compacting cannot make it fit`, tekan Esc dua kali untuk mundur melampaui giliran yang menambahkan konten besar, atau jalankan `/clear` untuk memulai segar2191* Jika pesan mengatakan `compacting cannot make it fit`, tekan Esc dua kali untuk mundur melampaui giliran yang menambahkan konten besar, atau jalankan `/clear` untuk memulai segar

2082* Jika tidak, jalankan `/compact`, yang menghilangkan gambar dan lampiran terakumulasi2192* Jika tidak, jalankan `/compact`, yang menghapus gambar dan lampiran terakumulasi

2083* Referensikan file besar berdasarkan jalur bukan menempel konten mereka, jadi Claude dapat membacanya dalam potongan2193* Referensikan file besar berdasarkan jalur bukan menempel konten mereka, jadi Claude dapat membacanya dalam potongan

2084* Untuk gambar, lihat [Image was too large](#image-was-too-large) di bawah2194* Untuk gambar, lihat [Gambar terlalu besar](#image-was-too-large) di bawah

2085 2195 

2086<h3 id="image-was-too-large">2196<h3 id="image-was-too-large">

2087 Gambar terlalu besar2197 Gambar terlalu besar


2094API Error: 400 ... image dimensions exceed max allowed size2204API Error: 400 ... image dimensions exceed max allowed size

2095```2205```

2096 2206 

2097Claude Code mengganti gambar yang tidak dapat diproses dengan placeholder teks dan mencoba ulang, jadi pesan berikutnya berhasil. Pada versi sebelum 2.1.142, gambar yang ditempel dapat tetap berada dalam percakapan dan mengulangi kesalahan yang sama pada setiap pesan berikutnya. Untuk pulih pada versi tersebut, tekan Esc dua kali dan mundur melampaui giliran tempat gambar ditambahkan.2207Claude Code mengganti gambar yang tidak dapat diproses dengan placeholder teks dan mencoba ulang, jadi pesan berikutnya berhasil. Pada versi sebelum 2.1.142, gambar yang ditempel dapat tetap berada dalam percakapan dan mengulangi kesalahan yang sama di setiap pesan berikutnya. Untuk pulih pada versi tersebut, tekan Esc dua kali dan mundur melampaui giliran tempat gambar ditambahkan.

2098 2208 

2099**Yang harus dilakukan:**2209**Yang harus dilakukan:**

2100 2210 


2105 Tidak dapat mengubah ukuran gambar2215 Tidak dapat mengubah ukuran gambar

2106</h3>2216</h3>

2107 2217 

2108Claude Code tidak dapat mengurangi skala gambar yang dilampirkan sebelum mengirimnya ke API.2218Claude Code tidak dapat memperkecil gambar yang dilampirkan sebelum mengirimnya ke API.

2109 2219 

2110```text theme={null}2220```text theme={null}

2111Unable to resize image — image processing is unavailable and dimensions could not be read from the file header. Please convert the image to PNG, JPEG, GIF, or WebP.2221Unable to resize image — image processing is unavailable and dimensions could not be read from the file header. Please convert the image to PNG, JPEG, GIF, or WebP.


2140**Yang harus dilakukan:**2250**Yang harus dilakukan:**

2141 2251 

2142* Untuk PDF berukuran besar, minta Claude membaca rentang halaman dengan alat Read bukan melampirkan seluruh file, atau ekstrak teks dengan alat seperti `pdftotext` dan referensikan file output berdasarkan jalur2252* Untuk PDF berukuran besar, minta Claude membaca rentang halaman dengan alat Read bukan melampirkan seluruh file, atau ekstrak teks dengan alat seperti `pdftotext` dan referensikan file output berdasarkan jalur

2143* Untuk PDF yang dilindungi atau tidak valid, hapus kata sandi atau ekspor ulang file dari aplikasi sumbernya, kemudian coba lagi2253* Untuk PDF yang dilindungi atau tidak valid, hapus kata sandi atau ekspor ulang file dari aplikasi sumbernya, lalu coba lagi

2254 

2255Ketika Claude membaca rentang halaman dari PDF dengan alat Read, pembacaan dapat gagal dengan pesan berbeda:

2256 

2257```text theme={null}

2258pdftoppm is not installed. Install poppler-utils (e.g. `brew install poppler` or `apt-get install poppler-utils`) to enable PDF page rendering.

2259```

2260 

2261Pembacaan rentang halaman merender halaman dengan `pdftoppm`. Instal poppler-utils dengan perintah yang diberikan pesan, atau pada platform lain build poppler yang menempatkan `pdftoppm` di `PATH` Anda. Lihat [Perilaku alat Read](/docs/id/tools-reference#read-tool-behavior) untuk PDF mana yang dibaca berdasarkan rentang halaman.

2144 2262 

2145<h3 id="extra-inputs-are-not-permitted">2263<h3 id="extra-inputs-are-not-permitted">

2146 Input tambahan tidak diizinkan2264 Input tambahan tidak diizinkan

2147</h3>2265</h3>

2148 2266 

2149Proxy atau gateway LLM antara Claude Code dan API menghilangkan header permintaan `anthropic-beta`, jadi API menolak bidang yang bergantung padanya.2267Proxy atau gateway LLM antara Claude Code dan API menghapus header permintaan `anthropic-beta`, jadi API menolak bidang yang bergantung padanya.

2150 2268 

2151```text theme={null}2269```text theme={null}

2152API Error: 400 ... Extra inputs are not permitted ... context_management2270API Error: 400 ... Extra inputs are not permitted ... context_management

2153API Error: 400 ... Unexpected value(s) for the `anthropic-beta` header

2154```2271```

2155 2272 

2156Claude Code mengirim bidang khusus beta seperti `context_management` dan `effort` bersama header `anthropic-beta` yang mengaktifkannya. Ketika gateway meneruskan badan tetapi menghilangkan header, API melihat bidang yang tidak dikenalinya.2273Claude Code mengirim bidang khusus beta seperti `context_management` dan `effort` bersama header `anthropic-beta` yang mengaktifkannya. Ketika gateway meneruskan badan tetapi menghapus header, API melihat bidang yang tidak dikenalinya.

2157 2274 

2158**Yang harus dilakukan:**2275**Yang harus dilakukan:**

2159 2276 

2160* Konfigurasikan gateway Anda untuk meneruskan header `anthropic-beta`. Lihat [feature pass-through](/docs/id/llm-gateway-protocol#feature-pass-through) untuk apa yang harus diteruskan gateway.2277* Konfigurasikan gateway Anda untuk meneruskan header `anthropic-beta`. Lihat [feature pass-through](/docs/id/llm-gateway-protocol#feature-pass-through) untuk apa yang harus diteruskan gateway.

2161* Sebagai fallback, atur [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/id/env-vars) sebelum meluncurkan. [Disable pre-release capabilities](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencakup cakupan yang tepat.2278* Sebagai fallback, atur [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/id/env-vars) sebelum meluncurkan. [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) mencakup cakupan yang tepat.

2162 2279 

2163<h3 id="tool-input-schema-is-invalid">2280<h3 id="tool-input-schema-is-invalid">

2164 Skema input alat tidak valid2281 Skema input alat tidak valid


2173 2290 

2174Bentuk pertama berarti skema bukan JSON Schema draft 2020-12 yang valid. Bentuk kedua berarti nama properti tingkat atas tidak cocok dengan pola yang dikutip pesan.2291Bentuk pertama berarti skema bukan JSON Schema draft 2020-12 yang valid. Bentuk kedua berarti nama properti tingkat atas tidak cocok dengan pola yang dikutip pesan.

2175 2292 

2176Claude Code [mengecualikan alat MCP yang skema input-nya akan gagal validasi ini](/docs/id/mcp#tools-with-invalid-input-schemas) ketika memuat alat server, jadi permintaan biasanya tidak pernah menyertakan satu.2293Claude Code [mengecualikan alat MCP yang skema inputnya akan gagal validasi ini](/docs/id/mcp#tools-with-invalid-input-schemas) ketika memuat alat server, jadi permintaan biasanya tidak pernah menyertakan satu.

2177 2294 

2178Pada [deployment di mana pengambilan flag dimatikan](/docs/id/env-vars#features-that-need-feature-flag-fetching), atau pada mesin yang flagnya tidak pernah tiba, Claude Code mencatat dalam log server alat mana yang akan ditolak tetapi mengirimnya bagaimanapun, jadi kesalahan ini masih dapat terjadi.2295Pada [deployment tempat pengambilan flag dimatikan](/docs/id/env-vars#features-that-need-feature-flag-fetching), atau pada mesin yang flagnya tidak pernah tiba, Claude Code mencatat dalam log server alat mana yang akan ditolak tetapi mengirimnya bagaimanapun, jadi kesalahan ini masih dapat terjadi.

2179 2296 

2180Kesalahan juga dapat terjadi untuk alat yang skemanya mendeklarasikan dialek JSON Schema selain draft 2020-12 di `$schema`. Claude Code tidak memeriksa skema tersebut terhadap meta-skema JSON Schema, meskipun pemeriksaan nama properti tingkat atas masih berlaku.2297Kesalahan juga dapat terjadi untuk alat yang skemanya mendeklarasikan dialek JSON Schema selain draft 2020-12 di `$schema`. Claude Code tidak memeriksa skema tersebut terhadap meta-skema JSON Schema, meskipun pemeriksaan nama properti tingkat atas masih berlaku.

2181 2298 


2184**Yang harus dilakukan:**2301**Yang harus dilakukan:**

2185 2302 

2186* Jika versi Claude Code Anda lebih awal dari v2.1.216, jalankan `claude update`.2303* Jika versi Claude Code Anda lebih awal dari v2.1.216, jalankan `claude update`.

2187* Hapus atau [nonaktifkan](/docs/id/mcp#disable-a-server-without-removing-it) server MCP yang mendeklarasikan skema tidak valid. Kesalahan hanya menyebutkan alat berdasarkan posisi. Pada v2.1.216 atau lebih baru, periksa log setiap server untuk baris yang menyebutkan alat yang skema input-nya akan ditolak. Jika tidak ada log yang menyebutkan satu, nonaktifkan server satu per satu.2304* Hapus atau [nonaktifkan](/docs/id/mcp#disable-a-server-without-removing-it) server MCP yang mendeklarasikan skema tidak valid. Kesalahan hanya menyebutkan alat berdasarkan posisi. Pada v2.1.216 atau lebih baru, periksa log setiap server untuk baris yang menyebutkan alat yang skema inputnya akan ditolak. Jika tidak ada log yang menyebutkan satu, nonaktifkan server satu per satu.

2188* Jika Anda memelihara server, perbaiki `input_schema` alat. Skema harus berupa JSON Schema yang valid, dan nama properti tingkat atas harus 1 hingga 64 karakter panjang dan hanya menggunakan huruf ASCII dan digit, `_`, `.`, dan `-`. Lihat [Tools with invalid input schemas](/docs/id/mcp#tools-with-invalid-input-schemas).2305* Jika Anda memelihara server, perbaiki `input_schema` alat. Skema harus JSON Schema yang valid, dan nama properti tingkat atas harus 1 hingga 64 karakter panjang dan hanya menggunakan huruf ASCII dan digit, `_`, `.`, dan `-`. Lihat [Alat dengan skema input tidak valid](/docs/id/mcp#tools-with-invalid-input-schemas).

2306 

2307<h3 id="tool-use-name-over-200-characters">

2308 tool\_use.name lebih dari 200 karakter

2309</h3>

2310 

2311Panggilan alat dalam riwayat percakapan membawa nama lebih panjang dari 200 karakter yang diterima API dalam permintaan:

2312 

2313```text theme={null}

2314API Error: 400 ... tool_use.name: String should have at most 200 characters

2315```

2316 

2317Claude Code memotong nama seperti itu menjadi 200 karakter ketika respons tiba dan ketika memuat percakapan yang disimpan, jadi panggilan gagal dengan kesalahan alat biasa `No such tool available` dan percakapan berlanjut tanpa kesalahan API ini.

2318 

2319**Yang harus dilakukan:**

2320 

2321* Jalankan `claude update`, lalu lanjutkan percakapan. Versi yang diperbarui memperbaiki nama yang terlalu panjang ketika memuat transkrip, jadi percakapan yang terjebak bekerja lagi.

2322 

2323Sebelum v2.1.281, nama yang terlalu panjang tetap berada dalam riwayat dan API menolak setiap permintaan yang mengirim ulang percakapan, termasuk `/compact` dan `--resume`, jadi kesalahan ini berulang dan percakapan terjebak.

2189 2324 

2190<h3 id="theres-an-issue-with-the-selected-model">2325<h3 id="theres-an-issue-with-the-selected-model">

2191 Ada masalah dengan model yang dipilih2326 Ada masalah dengan model yang dipilih


2199 2334 

2200**Yang harus dilakukan:**2335**Yang harus dilakukan:**

2201 2336 

2202* **CLI Interaktif**: jalankan `/model` untuk memilih dari model yang tersedia untuk akun Anda.2337* **CLI interaktif**: jalankan `/model` untuk memilih dari model yang tersedia untuk akun Anda.

2203* **Mode non-interaktif (`-p`)**: teruskan `--model` dengan alias atau ID yang valid, atau atur [`ANTHROPIC_MODEL`](/docs/id/env-vars). Teks kesalahan menampilkan `Run --model` di permukaan ini.2338* **Mode non-interaktif (`-p`)**: teruskan `--model` dengan alias atau ID yang valid, atau atur [`ANTHROPIC_MODEL`](/docs/id/env-vars). Teks kesalahan menampilkan `Run --model` di permukaan ini.

2204* **Agent SDK**: teks kesalahan menghilangkan petunjuk karena model diatur secara terprogram. Atur [`model` pada `Options`](/docs/id/agent-sdk/typescript#options) di TypeScript atau [`ClaudeAgentOptions(model=...)`](/docs/id/agent-sdk/python#claudeagentoptions) di Python, dan tangani kesalahan terstruktur `model_not_found` untuk menampilkan pemilih ulang atau pemilih model Anda sendiri.2339* **Agent SDK**: teks kesalahan menghilangkan petunjuk karena model diatur secara terprogram. Atur [`model` pada `Options`](/docs/id/agent-sdk/typescript#options) di TypeScript atau [`ClaudeAgentOptions(model=...)`](/docs/id/agent-sdk/python#claudeagentoptions) di Python, dan tangani kesalahan terstruktur `model_not_found` untuk menampilkan pemilih ulang atau model Anda sendiri.

2205* Gunakan alias seperti `sonnet` atau `opus` bukan ID versi lengkap. Alias menyelesaikan ke default yang dipertahankan sehingga tidak menjadi usang. Lihat [Model configuration](/docs/id/model-config).2340* Gunakan alias seperti `sonnet` atau `opus` bukan ID versi lengkap. Alias menyelesaikan ke default yang dipertahankan sehingga tidak menjadi usang. Lihat [Konfigurasi model](/docs/id/model-config).

2206* Jika model yang salah terus kembali di CLI, ID usang diatur di suatu tempat. Periksa tempat Anda dapat mengatur model dalam [urutan prioritas](/docs/id/model-config#setting-your-model) dan hapus nilai usang.2341* Jika model yang salah terus kembali di CLI, ID usang diatur di suatu tempat. Periksa tempat Anda dapat mengatur model dalam [urutan prioritas](/docs/id/model-config#setting-your-model) dan hapus nilai usang.

2207* Model yang baru diluncurkan dapat tersedia di API Anthropic sebelum Amazon Bedrock, Platform Agent Google Cloud, atau Foundry Microsoft menawarkannya. Jika Anda menyematkan ID model baru pada salah satu penyedia tersebut dan melihat kesalahan ini, periksa katalog model penyedia Anda untuk ketersediaan di wilayah Anda, dan pertahankan versi sebelumnya yang disematkan sampai yang baru muncul di sana.2342* Claude Code melaporkan login claude.ai yang kedaluwarsa sebagai [Login kedaluwarsa](#login-expired), bukan sebagai kesalahan ini. Sebelum v2.1.206, login kedaluwarsa yang tidak lagi dapat disegarkan gagal di setiap model dengan kesalahan ini; jalankan `/login` jika Anda melihat itu pada versi yang lebih lama.

2208* Claude Code melaporkan login claude.ai yang kedaluwarsa sebagai [Login expired](#login-expired), bukan sebagai kesalahan ini. Sebelum v2.1.206, login yang kedaluwarsa yang tidak lagi dapat disegarkan gagal di setiap model dengan kesalahan ini; jalankan `/login` jika Anda melihat itu pada versi yang lebih lama.2343* Untuk deployment Google Cloud's Agent Platform, lihat [Pemecahan masalah Google Cloud's Agent Platform](/docs/id/google-vertex-ai#troubleshooting).

2209* Untuk deployment Platform Agent Google Cloud, lihat [Troubleshooting Platform Agent Google Cloud](/docs/id/google-vertex-ai#troubleshooting).

2210 2344 

2211<h3 id="model-is-not-a-recognized-model-id">2345<h3 id="model-is-not-a-recognized-model-id">

2212 Model bukan ID model yang dikenali2346 Model bukan ID model yang dikenali

2213</h3>2347</h3>

2214 2348 

2215String model yang Anda teruskan ke sakelar model bukan alias model, ID model yang diketahui versi Claude Code ini, atau ID yang dimulai dengan `claude-`. Penyebab biasanya adalah kesalahan ketik di ID, nama tampilan seperti `Sonnet 5` di mana ID `claude-sonnet-5` diharapkan, atau alias yang hanya dikenali versi Claude Code yang lebih baru. Claude Code menolak sakelar segera. Sebelum v2.1.200, Claude Code menyimpan string dan gagal pada permintaan berikutnya dengan [Ada masalah dengan model yang dipilih](#theres-an-issue-with-the-selected-model).2349String model yang Anda teruskan ke sakelar model bukan alias model, ID model yang diketahui versi Claude Code ini, atau ID yang dimulai dengan `claude-`. Penyebab biasanya adalah kesalahan ketik dalam ID, nama tampilan seperti `Sonnet 5` di mana ID `claude-sonnet-5` diharapkan, atau alias yang hanya dikenali versi Claude Code yang lebih baru. Claude Code menolak sakelar segera. Sebelum v2.1.200, Claude Code menyimpan string dan gagal pada permintaan berikutnya dengan [Ada masalah dengan model yang dipilih](#theres-an-issue-with-the-selected-model).

2216 2350 

2217```text theme={null}2351```text theme={null}

2218Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2352Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

2219```2353```

2220 2354 

2221Petunjuk trailing menyebutkan alias atau ID model yang paling cocok. Ketika tidak ada yang cukup dekat, itu berbunyi `Run /model to see available models.` sebagai gantinya.2355Petunjuk trailing menyebutkan alias atau ID model yang paling cocok. Ketika tidak ada yang cukup dekat, itu berbunyi `Run /model to see available models.` sebagai gantinya. Dalam sesi yang dimulai [Desktop app](/docs/id/desktop) untuk Anda, petunjuk no-match berbunyi `Switch to a different model.`

2222 2356 

2223Claude Code menghasilkan kesalahan ini secara lokal pada saat sakelar diminta, sebelum permintaan API apa pun dibuat. Ini berlaku ketika model diatur melalui metode [Agent SDK](/docs/id/agent-sdk/typescript) `setModel()`, oleh aplikasi seperti [Desktop app](/docs/id/desktop) yang menjalankan CLI Claude Code untuk Anda, atau ketika Anda memilih model dari perangkat yang terhubung melalui [Remote Control](/docs/id/remote-control). Sebelum v2.1.260, pemeriksaan tidak mencakup pilihan Remote Control, jadi Claude Code menerapkan pilihan dan permintaan berikutnya gagal dengan [Ada masalah dengan model yang dipilih](#theres-an-issue-with-the-selected-model).2357Claude Code menghasilkan kesalahan ini secara lokal pada saat sakelar diminta, sebelum permintaan API apa pun dibuat. Ini berlaku ketika model diatur melalui metode [Agent SDK](/docs/id/agent-sdk/typescript) `setModel()`, oleh aplikasi seperti [Desktop app](/docs/id/desktop) yang menjalankan CLI Claude Code untuk Anda, atau ketika Anda memilih model dari perangkat yang terhubung melalui [Remote Control](/docs/id/remote-control). Sebelum v2.1.260, pemeriksaan tidak mencakup pilihan Remote Control, jadi Claude Code menerapkan pilihan dan permintaan berikutnya gagal dengan [Ada masalah dengan model yang dipilih](#theres-an-issue-with-the-selected-model).

2224 2358 

2225**Yang harus dilakukan:**2359**Yang harus dilakukan:**

2226 2360 

2227* Jalankan `/model` tanpa argumen untuk membuka pemilih dan pilih dari model yang tersedia untuk akun Anda, kemudian teruskan alias atau ID yang ditampilkan di sana2361* Jalankan `/model` tanpa argumen untuk membuka pemilih dan pilih dari model yang tersedia untuk akun Anda, lalu teruskan alias atau ID yang ditampilkan di sana

2228* Jika Anda menggunakan alias yang didukung versi Claude Code yang lebih baru, jalankan `claude update`. ID lengkap yang dimulai dengan `claude-` melewati pemeriksaan lokal ini bahkan ketika model lebih baru dari versi Claude Code Anda. Server masih dapat memerlukan versi minimum untuk model itu; lihat [Claude Code does not support this model](#claude-code-does-not-support-this-model).2362* Jika Anda menggunakan alias yang didukung versi Claude Code yang lebih baru, jalankan `claude update`. ID lengkap yang dimulai dengan `claude-` melewati pemeriksaan lokal ini bahkan ketika model lebih baru dari versi Claude Code Anda. Server masih dapat memerlukan versi minimum untuk model itu; lihat [Claude Code tidak mendukung model ini](#claude-code-does-not-support-this-model).

2229* Model yang disimpan sebelum v2.1.200 tidak diperbaiki oleh pemeriksaan ini. Jika nilai usang terus kembali, hapus dari lokasi yang tercantum di bawah [Setting your model](/docs/id/model-config#setting-your-model).2363* Model yang disimpan sebelum v2.1.200 tidak diperbaiki oleh pemeriksaan ini. Jika nilai usang terus kembali, hapus dari lokasi yang tercantum di bawah [Mengatur model Anda](/docs/id/model-config#setting-your-model).

2230* Pemeriksaan hanya berjalan di API Anthropic. Pada penyedia atau gateway lain apa pun, termasuk `ANTHROPIC_BASE_URL` kustom, penyedia menentukan nama model, jadi Claude Code menerima string apa pun dan meneruskannya. Claude Code masih dapat menulis [baris diagnostik model yang tidak dikenali](#unrecognized-model-id-on-a-request) pada waktu permintaan, di setiap penyedia.2364* Pemeriksaan hanya berjalan pada API Anthropic. Pada penyedia atau gateway lain apa pun, termasuk `ANTHROPIC_BASE_URL` kustom, penyedia menentukan nama model, jadi Claude Code menerima string apa pun dan meneruskannya. Claude Code masih dapat menulis [baris diagnostik model tidak dikenali](#unrecognized-model-id-on-a-request) pada waktu permintaan, pada setiap penyedia.

2231 2365 

2232<h3 id="model-not-found">2366<h3 id="model-not-found">

2233 Model tidak ditemukan2367 Model tidak ditemukan

2234</h3>2368</h3>

2235 2369 

2236Anda memilih model dengan `/model <name>` dan Claude Code tidak dapat mengkonfirmasi bahwa model dengan nama itu ada. Ketika nama bukan [alias model](/docs/id/model-config#model-aliases) atau ejaan lain yang Claude Code terima secara lokal, `/model` memverifikasinya dengan permintaan API minimal, dan kesalahan ini biasanya adalah jawaban endpoint API Anda. Nama yang tidak dapat menjadi ID model sama sekali, seperti yang berisi spasi, mendapatkan pesan yang sama.2370Anda memilih model dengan `/model <name>` dan Claude Code tidak dapat mengkonfirmasi bahwa model dengan nama itu ada. Ketika nama bukan [alias model](/docs/id/model-config#model-aliases) atau ejaan lain yang diterima Claude Code secara lokal, `/model` memverifikasinya dengan permintaan API minimal, dan kesalahan ini biasanya adalah jawaban endpoint API Anda. Nama yang tidak dapat menjadi ID model sama sekali, seperti yang berisi spasi, mendapatkan pesan yang sama.

2237 2371 

2238```text theme={null}2372```text theme={null}

2239Model 'claude-opus-9' not found2373Model 'claude-opus-9' not found


2244**Yang harus dilakukan:**2378**Yang harus dilakukan:**

2245 2379 

2246* Jalankan `/model` tanpa argumen dan pilih dari model yang tersedia untuk akun Anda, atau gunakan [alias model](/docs/id/model-config#model-aliases) seperti `sonnet`, yang menyelesaikan ke default yang dipertahankan2380* Jalankan `/model` tanpa argumen dan pilih dari model yang tersedia untuk akun Anda, atau gunakan [alias model](/docs/id/model-config#model-aliases) seperti `sonnet`, yang menyelesaikan ke default yang dipertahankan

2247* Jika Anda mengetik ID lengkap, periksa terhadap katalog model penyedia Anda. Model yang baru diluncurkan dapat tersedia di API Anthropic sebelum penyedia atau wilayah Anda menawarkannya.2381* Jika Anda mengetik ID lengkap, periksakan terhadap katalog model penyedia Anda. Model yang baru diluncurkan dapat tersedia di API Anthropic sebelum penyedia atau wilayah Anda menawarkannya.

2248* Sebelum v2.1.265, `/model` juga menolak ejaan alias `opusplan[1m]` dengan kesalahan ini. Pada versi tersebut, perbarui Claude Code, atau atur model di [settings](/docs/id/model-config#setting-your-model) atau dengan `--model` sebagai gantinya.2382* Sebelum v2.1.265, `/model` juga menolak ejaan alias `opusplan[1m]` dengan kesalahan ini. Pada versi tersebut, perbarui Claude Code, atau atur model dalam [pengaturan](/docs/id/model-config#setting-your-model) atau dengan `--model` sebagai gantinya.

2383 

2384<h3 id="api-error-model-not-changed">

2385 Kesalahan API saat memeriksa model yang dipilih

2386</h3>

2387 

2388Anda memilih model dengan `/model <name>`, atau aplikasi yang terhubung ke sesi meminta sakelar. API menolak permintaan minimal yang Claude Code kirim untuk memverifikasi model, karena alasan yang tidak memiliki entri sendiri, seperti batas laju atau kesalahan server. Sesi menyimpan model saat ini, dan pesan berakhir dengan mengatakan demikian:

2389 

2390```text theme={null}

2391API error: 429 <the server's explanation> · model not changed

2392```

2393 

2394Bagian tengah pesan adalah status HTTP dan penjelasan server sendiri.

2395 

2396**Yang harus dilakukan:**

2397 

2398* Bertindak atas penjelasan server; untuk batas laju atau status 5xx, tunggu dan pilih model lagi

2399* Penolakan dengan pesan mereka sendiri dicakup oleh entri sekitarnya, seperti [Model tidak ditemukan](#model-not-found) dan [Model dibatasi oleh pengaturan organisasi Anda](#model-is-restricted-by-your-organizations-settings)

2249 2400 

2250<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">2401<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

2251 Claude Opus tidak tersedia dengan paket Claude Pro2402 Claude Opus tidak tersedia dengan paket Claude Pro


2257Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.2408Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.

2258```2409```

2259 2410 

2411Dalam sesi yang dijalankan Claude Desktop app, pesan mengatakan untuk `sign out and sign in again` bukan menyebutkan perintah.

2412 

2260**Yang harus dilakukan:**2413**Yang harus dilakukan:**

2261 2414 

2262* Jalankan `/model` dan pilih model yang disertakan paket Anda2415* Jalankan `/model` dan pilih model yang disertakan paket Anda

2263* Jika Anda baru-baru ini meningkatkan paket dan masih melihat ini, jalankan `/logout` kemudian `/login`. Token yang disimpan mencerminkan paket Anda pada saat Anda masuk, jadi meningkatkan di claude.ai tidak berlaku dalam sesi yang ada sampai Anda autentikasi ulang.2416* Jika Anda baru-baru ini meningkatkan paket dan masih melihat ini, jalankan `/logout` lalu `/login`. Token yang disimpan mencerminkan paket Anda pada saat Anda masuk, jadi meningkatkan di claude.ai tidak berlaku dalam sesi yang ada sampai Anda mengotentikasi ulang.

2264* Lihat [claude.com/pricing](https://claude.com/pricing) untuk model mana yang disertakan setiap paket2417* Lihat [claude.com/pricing](https://claude.com/pricing) untuk model mana yang disertakan setiap paket

2265 2418 

2266<h3 id="claude-code-does-not-support-this-model">2419<h3 id="claude-code-does-not-support-this-model">


2281 2434 

2282**Yang harus dilakukan:**2435**Yang harus dilakukan:**

2283 2436 

2284* Jalankan `claude update`, atau perbarui aplikasi desktop Claude, kemudian mulai sesi baru2437* Jalankan `claude update`, atau perbarui Claude desktop app, lalu mulai sesi baru

2285* Untuk pesan per-model, Anda dapat terus bekerja dalam sesi saat ini dengan beralih ke model lain dengan `/model`2438* Untuk pesan per-model, Anda dapat terus bekerja dalam sesi saat ini dengan beralih ke model lain dengan `/model`

2286* Untuk pesan kebijakan organisasi, perbarui sebelum Anda melanjutkan2439* Untuk pesan kebijakan organisasi, perbarui sebelum Anda melanjutkan

2287 2440 


2289 Model dibatasi oleh pengaturan organisasi Anda2442 Model dibatasi oleh pengaturan organisasi Anda

2290</h3>2443</h3>

2291 2444 

2292Admin organisasi Anda telah menonaktifkan model ini di konsol admin claude.ai, atau dikecualikan oleh daftar izin [`availableModels`](/docs/id/model-config#restrict-model-selection) dalam pengaturan terkelola. Ketika model yang dibatasi diatur dengan `--model`, `ANTHROPIC_MODEL`, atau pengaturan `model`, Claude Code mengganti model yang diizinkan dan melanjutkan. Mengetik `/model <name>` untuk model yang dibatasi ditolak dengan `Run /model to choose a different model.` dan sesi menyimpan model saat ini. Pemberitahuan substitusi juga dapat muncul di tengah sesi setelah admin menonaktifkan model yang sedang dijalankan sesi di konsol admin claude.ai.2445Admin organisasi Anda telah menonaktifkan model ini di konsol admin claude.ai, atau pengaturan terkelola mengecualikannya melalui daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) atau daftar [`deniedModels`](/docs/id/model-config#block-specific-models-or-versions). Pemberitahuan muncul saat startup ketika `--model`, `ANTHROPIC_MODEL`, atau pengaturan `model` menyebutkan model yang dibatasi, dan itu menyebutkan model yang digunakan sesi sebagai gantinya. Jika pengaturan terkelola tidak meninggalkan model yang diizinkan untuk digunakan sesi, lihat [Pengaturan terkelola memblokir model default](#managed-settings-block-the-default-model). Pemberitahuan substitusi juga dapat muncul di tengah sesi setelah admin menonaktifkan model yang dijalankan sesi di konsol admin claude.ai.

2293 2446 

2294```text theme={null}2447```text theme={null}

2295Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.2448Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.

2296```2449```

2297 2450 

2298Pemberitahuan dengan awalan nama agen, skill, atau perintah berarti pembatasan diterapkan pada [model yang diminta subagen](/docs/id/sub-agents#choose-a-model): subagen berjalan pada model yang diganti dan model sesi Anda tidak berubah. Sebelum v2.1.223, Claude Code menampilkan pemberitahuan hanya untuk subagen yang diluncurkan dengan alat Agent.2451Mengetik `/model <name>` untuk model yang dibatasi ditolak dan sesi menyimpan model saat ini. Untuk model yang dinonaktifkan di konsol admin, penolakan berbunyi `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` Untuk model yang dikecualikan pengaturan terkelola, itu berbunyi `Model '<name>' is not available. Your organization restricts model selection.`

2299 2452 

2300Claude Code memperlakukan alias keluarga model, salah satu dari `opus`, `sonnet`, `haiku`, atau `fable`, sebagai permintaan untuk keluarga itu bukan untuk versi terbarunya. Di API Anthropic dan di [Claude Platform on AWS](/docs/id/claude-platform-on-aws), alias keluarga yang dibatasi menyelesaikan ke versi terbaru keluarga yang diizinkan organisasi Anda dan daftar izin `availableModels`, dan pemberitahuan substitusi menyebutkan versi itu. Claude Code menolak `/model <alias>` hanya ketika setiap versi keluarga dibatasi. Sebelum v2.1.205, alias keluarga diganti atau ditolak berdasarkan versi terbarunya saja, bahkan ketika versi yang lebih lama dari keluarga yang sama diizinkan.2453Pemberitahuan dengan awalan nama agen, skill, atau perintah berarti pembatasan diterapkan pada [model yang diminta subagent](/docs/id/sub-agents#choose-a-model): subagent berjalan pada model yang disubstitusi dan model sesi Anda tidak berubah. Sebelum v2.1.223, Claude Code menampilkan pemberitahuan hanya untuk subagent yang diluncurkan dengan alat Agent.

2454 

2455Claude Code memperlakukan alias keluarga model, salah satu dari `opus`, `sonnet`, `haiku`, atau `fable`, sebagai permintaan untuk keluarga itu bukan untuk versi terbarunya. Pada API Anthropic dan di [Claude Platform on AWS](/docs/id/claude-platform-on-aws), alias keluarga yang dibatasi menyelesaikan ke versi terbaru keluarga yang diizinkan pengaturan organisasi Anda, dan pemberitahuan substitusi menyebutkan versi itu. Claude Code menolak `/model <alias>` hanya ketika setiap versi keluarga dibatasi. Sebelum v2.1.205, alias keluarga disubstitusi atau ditolak berdasarkan versi terbarunya saja, bahkan ketika versi yang lebih lama dari keluarga yang sama diizinkan.

2301 2456 

2302**Yang harus dilakukan:**2457**Yang harus dilakukan:**

2303 2458 

2304* Jalankan `/model` untuk memilih dari model yang diizinkan organisasi Anda. Model yang dibatasi disembunyikan dari pemilih.2459* Jalankan `/model` untuk memilih dari model yang diizinkan organisasi Anda. Model yang dibatasi disembunyikan dari pemilih.

2305* Jika model yang dibatasi diatur di `--model`, `ANTHROPIC_MODEL`, bidang `model` file pengaturan, atau frontmatter `model` dari [subagen](/docs/id/sub-agents#choose-a-model), skill, atau perintah, hapus atau perbarui nilai itu sehingga pemberitahuan tidak berulang2460* Jika model yang dibatasi diatur dalam `--model`, `ANTHROPIC_MODEL`, bidang `model` file pengaturan, atau frontmatter `model` dari [subagent](/docs/id/sub-agents#choose-a-model), skill, atau perintah, hapus atau perbarui nilai itu sehingga pemberitahuan tidak berulang

2306* Jika Anda memerlukan akses ke model yang dibatasi, minta admin organisasi Anda untuk mengaktifkannya. Lihat [Organization model restrictions](/docs/id/model-config#organization-model-restrictions).2461* Jika Anda memerlukan akses ke model yang dibatasi, minta admin organisasi Anda untuk mengaktifkannya. Lihat [Pembatasan model organisasi](/docs/id/model-config#organization-model-restrictions).

2307 2462 

2308<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">2463<h3 id="model-switch-was-blocked-by-a-premodelswitch-hook">

2309 Sakelar model diblokir oleh hook PreModelSwitch2464 Sakelar model diblokir oleh hook PreModelSwitch


2318Alasan setelah titik dua mengatakan apa yang menolak sakelar:2473Alasan setelah titik dua mengatakan apa yang menolak sakelar:

2319 2474 

2320* **Alasan yang ditulis hook**: hook PreModelSwitch menyediakan alasan itu ketika [menolak sakelar atau meminta konfirmasi](/docs/id/hooks#premodelswitch-decision-control). Tangani apa yang dimintanya, atau pilih model yang diizinkan hook Anda.2475* **Alasan yang ditulis hook**: hook PreModelSwitch menyediakan alasan itu ketika [menolak sakelar atau meminta konfirmasi](/docs/id/hooks#premodelswitch-decision-control). Tangani apa yang dimintanya, atau pilih model yang diizinkan hook Anda.

2321* **`PreModelSwitch hook <name> did not respond before its timeout`**: hook yang tidak menjawab sebelum [timeout](/docs/id/hooks#timeouts)-nya memblokir sakelar. Perbaiki perintah yang menggantung atau naikkan `timeout` hook itu, kemudian sakelar lagi.2476* **`PreModelSwitch hook <name> did not respond before its timeout`**: hook yang tidak menjawab sebelum [timeout](/docs/id/hooks#timeouts) memblokir sakelar. Perbaiki perintah yang menggantung atau naikkan `timeout` hook itu, lalu sakelar lagi.

2322* **`confirmation required, and this session cannot ask`**: hook menjawab `ask` tanpa alasan, dan permintaan kontrol tidak memiliki cara untuk menampilkan prompt konfirmasi. Perintah `/model` dalam run [`-p`](/docs/id/headless) melaporkan kondisi yang sama dengan `(run /model interactively to confirm)` setelah alasan. Buat sakelar dari sesi interaktif, atau ubah keputusan hook untuk model ini.2477* **`confirmation required, and this session cannot ask`**: hook menjawab `ask` tanpa alasan, dan permintaan kontrol tidak memiliki cara untuk menampilkan prompt konfirmasi. Sesi [`-p` run](/docs/id/headless) melaporkan kondisi yang sama dengan `(run /model interactively to confirm)` setelah alasan. Buat sakelar dari sesi interaktif, atau ubah keputusan hook untuk model ini.

2323* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code tidak dapat mengetahui hook PreModelSwitch mana yang [plugin terkelola](/docs/id/settings-reference#enabledplugins) organisasi Anda berikan, misalnya karena plugin terkelola gagal dimuat. Salah satu hook itu mungkin memblokir sakelar, jadi Claude Code menolak bukan menerapkan sakelar yang tidak diperiksa. Awal alasan menyebutkan apa yang gagal. Claude Code memeriksa ulang pada setiap upaya sakelar, jadi kegagalan yang sejak itu telah dihapus berhenti memblokir; jika terus gagal, jalankan `claude --debug` dan sakelar lagi untuk menangkap detail, kemudian perbaiki plugin atau minta admin Anda memperbaikinya.2478* **`so organization-managed PreModelSwitch hooks could not be checked`**: Claude Code tidak dapat mengetahui hook PreModelSwitch mana yang [plugin terkelola](/docs/id/settings-reference#enabledplugins) organisasi Anda berikan, misalnya karena plugin terkelola gagal dimuat. Salah satu hook itu mungkin memblokir sakelar, jadi Claude Code menolak bukan menerapkan sakelar yang tidak diperiksa. Awal alasan menyebutkan apa yang gagal. Claude Code memeriksa ulang di setiap upaya sakelar, jadi kegagalan yang telah dihapus berhenti memblokir; jika terus gagal, jalankan `claude --debug` dan sakelar lagi untuk menangkap detail, lalu perbaiki plugin atau minta admin Anda memperbaikinya.

2324* **`a PreModelSwitch hook failed before answering`** atau **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: jalankan hook berakhir tanpa putusan, dan Claude Code tidak memperlakukan itu sebagai persetujuan. Jalankan `claude --debug` untuk melihat apa yang gagal, kemudian sakelar lagi.2479* **`a PreModelSwitch hook failed before answering`** atau **`PreModelSwitch hooks were cancelled (the control stream closed) before answering`**: jalankan hook berakhir tanpa putusan, dan Claude Code tidak memperlakukan itu sebagai persetujuan. Jalankan `claude --debug` untuk melihat apa yang gagal, lalu sakelar lagi.

2325 2480 

2326Sebelum v2.1.260, penolakan plugin terkelola berbunyi `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code mencoba ulang pemuatan plugin sekali kemudian menolak sakelar kemudian dalam sesi, bahkan ketika organisasi Anda tidak mengelola plugin apa pun. Mulai ulang sesi untuk menjalankan pemuatan plugin lagi pada versi tersebut.2481Sebelum v2.1.260, penolakan plugin terkelola berbunyi `plugin hooks could not be loaded, so PreModelSwitch hooks could not be checked; see the debug log`. Claude Code mencoba ulang pemuatan plugin sekali lalu menolak sakelar kemudian dalam sesi, bahkan ketika organisasi Anda tidak mengelola plugin apa pun. Mulai ulang sesi untuk menjalankan pemuatan plugin lagi pada versi tersebut.

2327 2482 

2328<h3 id="couldnt-save-it-as-your-default">2483<h3 id="couldnt-save-it-as-your-default">

2329 Tidak dapat menyimpannya sebagai default Anda2484 Tidak dapat menyimpannya sebagai default Anda


2337 2492 

2338Alasan setelah jalur file mengatakan apa yang gagal:2493Alasan setelah jalur file mengatakan apa yang gagal:

2339 2494 

2340* **`can't be written (<code>)`**: penulisan gagal dengan kode kesalahan sistem operasi dalam tanda kurung, seperti `EROFS` ketika file, atau file yang ditautkannya, duduk di sistem file yang menolak penulisan. Buat file dapat ditulis dan sakelar lagi. Jika alat lain menghasilkan file, atur kunci `model` di alat itu sebagai gantinya; lihat [A change you made in Claude Code is lost in new sessions](/docs/id/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).2495* **`can't be written (<code>)`**: penulisan gagal dengan kode kesalahan sistem operasi dalam tanda kurung, seperti `EROFS` ketika file, atau file yang ditautkannya, berada di sistem file yang menolak penulisan. Buat file dapat ditulis dan sakelar lagi. Jika alat lain menghasilkan file, atur kunci `model` dalam alat itu sebagai gantinya; lihat [Perubahan yang Anda buat di Claude Code hilang di sesi baru](/docs/id/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions).

2341* **`isn't valid JSON`**: file di disk tidak diurai, dan Claude Code meninggalkannya tidak tersentuh bukan menimpa konten yang tidak dapat dibaca kembali. Perbaiki kesalahan sintaks, kemudian sakelar lagi; lihat [Fix a broken settings file](/docs/id/settings#fix-a-broken-settings-file).2496* **`isn't valid JSON`**: file di disk tidak diurai, dan Claude Code meninggalkannya tidak tersentuh bukan menimpa konten yang tidak dapat dibaca kembali. Perbaiki kesalahan sintaks, lalu sakelar lagi; lihat [Perbaiki file pengaturan yang rusak](/docs/id/settings#fix-a-broken-settings-file).

2342 2497 

2343Pemberitahuan yang berakhir `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)` berarti penulisan belum selesai setelah tiga detik. Ini berlanjut di latar belakang, jadi default mungkin masih disimpan; periksa model mana yang dimulai sesi berikutnya Anda, atau jalankan `/model <name>` lagi.2498Pemberitahuan berakhir `couldn't confirm it was saved as your default (~/.claude/settings.json is still being written)` berarti penulisan belum selesai setelah tiga detik. Itu berlanjut di latar belakang, jadi default mungkin masih disimpan; periksa model mana yang dimulai sesi berikutnya Anda, atau jalankan `/model <name>` lagi.

2344 2499 

2345Sebelum v2.1.265, pemberitahuan mengatakan model itu `saved as your default for new sessions` bahkan ketika penulisan gagal.2500Sebelum v2.1.265, pemberitahuan mengatakan model itu `saved as your default for new sessions` bahkan ketika penulisan gagal.

2346 2501 


2356 2511 

2357**Yang harus dilakukan:**2512**Yang harus dilakukan:**

2358 2513 

2359* 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 baru2514* 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. Sonnet 5.5 memerlukan v2.1.284 atau lebih baru

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

2361* 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 baru2516* Jika Anda mengalami 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. Sonnet 5.5 memerlukan TypeScript SDK v0.3.284 atau lebih baru

2362 2517 

2363<h3 id="effort-isnt-available-with-thinking-turned-off">2518<h3 id="effort-isnt-available-with-thinking-turned-off">

2364 Effort tidak tersedia dengan pemikiran dimatikan2519 Effort tidak tersedia dengan pemikiran dimatikan

2365</h3>2520</h3>

2366 2521 

2367Anda mematikan [extended thinking](/docs/id/model-config#extended-thinking) dan menjalankan pada [effort level](/docs/id/model-config#adjust-effort-level) di atas `high`. Model tidak menerima kombinasi itu, jadi API menolak permintaan.2522Anda mematikan [extended thinking](/docs/id/model-config#extended-thinking) dan menjalankan pada [level effort](/docs/id/model-config#adjust-effort-level) di atas `high`. Model tidak menerima kombinasi itu, jadi API menolak permintaan.

2368 2523 

2369```text theme={null}2524```text theme={null}

2370API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)2525API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)

2371```2526```

2372 2527 

2528Petunjuk setelah `·` bervariasi menurut sesi: dalam sesi non-interaktif itu berbunyi `use --effort high (or the effortLevel setting)`, dan dalam sesi yang dijalankan Claude Desktop app itu berbunyi `you can lower effort to High`.

2529 

2373**Yang harus dilakukan:**2530**Yang harus dilakukan:**

2374 2531 

2375* [Turunkan effort level](/docs/id/model-config#set-the-effort-level) ke `high` atau di bawahnya.2532* [Turunkan level effort](/docs/id/model-config#set-the-effort-level) ke `high` atau di bawah.

2376* Nyalakan pemikiran kembali, misalnya dengan membatalkan [`MAX_THINKING_TOKENS`](/docs/id/env-vars) atau menghapus [`"alwaysThinkingEnabled": false`](/docs/id/settings-reference#alwaysthinkingenabled) dari pengaturan Anda.2533* Aktifkan pemikiran kembali, misalnya dengan membatalkan [`MAX_THINKING_TOKENS`](/docs/id/env-vars) atau menghapus [`"alwaysThinkingEnabled": false`](/docs/id/settings-reference#alwaysthinkingenabled) dari pengaturan Anda.

2377 2534 

2378Sebelum v2.1.242, Claude Code menampilkan pesan API sendiri: `API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.` Sebelum v2.1.251, Claude Code mengirim permintaan pada effort level yang Anda atur, jadi Opus 5 menolak setiap permintaan di atas `high` dengan pemikiran dimatikan. Claude Code sekarang mengirim effort `high` sebagai gantinya ke model yang diketahuinya menolak kombinasi, seperti Opus 5, jadi pada v2.1.251 atau lebih baru kesalahan ini mencapai Anda hanya dari model yang Claude Code tidak tahu menolaknya.2535Sebelum v2.1.242, Claude Code menampilkan pesan API sendiri: `API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.` Sebelum v2.1.251, Claude Code mengirim permintaan pada level effort yang Anda atur, jadi Opus 5 menolak setiap permintaan di atas `high` dengan pemikiran dimatikan. Claude Code sekarang mengirim effort `high` sebagai gantinya ke model yang diketahuinya menolak kombinasi, seperti Opus 5.

2379 2536 

2380<h3 id="thinking-budget-exceeds-output-limit">2537<h3 id="thinking-budget-exceeds-output-limit">

2381 Anggaran pemikiran melebihi batas output2538 Anggaran pemikiran melebihi batas output


2387API Error: 400 ... max_tokens must be greater than thinking.budget_tokens2544API Error: 400 ... max_tokens must be greater than thinking.budget_tokens

2388```2545```

2389 2546 

2390Claude Code menyesuaikan nilai-nilai ini secara otomatis di API Anthropic. Anda biasanya melihat kesalahan ini di Amazon Bedrock atau Platform Agent Google Cloud ketika [`MAX_THINKING_TOKENS`](/docs/id/env-vars) diatur lebih tinggi dari batas output penyedia, atau ketika mode rencana menaikkan anggaran pemikiran.

2391 

2392**Yang harus dilakukan:**2547**Yang harus dilakukan:**

2393 2548 

2394* Turunkan `MAX_THINKING_TOKENS`, atau naikkan [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/id/env-vars) di atas anggaran pemikiran2549* Naikkan [`CLAUDE_CODE_MAX_OUTPUT_TOKENS`](/docs/id/env-vars) di atas anggaran pemikiran

2395* Lihat [Extended thinking](/docs/id/model-config#extended-thinking) untuk bagaimana anggaran berinteraksi dengan panjang output2550* Lihat [Extended thinking](/docs/id/model-config#extended-thinking) untuk bagaimana anggaran berinteraksi dengan panjang output

2396 2551 

2397<h3 id="tool-use-or-thinking-block-mismatch">2552<h3 id="tool-use-or-thinking-block-mismatch">

2398 Ketidakcocokan blok penggunaan alat atau pemikiran2553 Ketidakcocokan blok penggunaan alat atau pemikiran

2399</h3>2554</h3>

2400 2555 

2401Riwayat percakapan mencapai API dalam keadaan tidak konsisten, biasanya setelah panggilan alat dihentikan atau giliran diedit di tengah aliran.2556Riwayat percakapan mencapai API dalam keadaan tidak konsisten.

2402 2557 

2403```text theme={null}2558```text theme={null}

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


2415* Jika Anda menggunakan Opus 4.7 atau Opus 4.8, jalankan `claude update` terlebih dahulu. Versi sebelum v2.1.156 dapat memicu kesalahan ini selama penggunaan alat normal, dan `/rewind` tidak menghapusnya.2570* Jika Anda menggunakan Opus 4.7 atau Opus 4.8, jalankan `claude update` terlebih dahulu. Versi sebelum v2.1.156 dapat memicu kesalahan ini selama penggunaan alat normal, dan `/rewind` tidak menghapusnya.

2416* Jalankan `/rewind`, atau tekan Esc dua kali, untuk mundur ke checkpoint sebelum giliran yang rusak dan lanjutkan dari sana. Lihat [Checkpointing](/docs/id/checkpointing) untuk bagaimana checkpoint dibuat dan dipulihkan.2571* Jalankan `/rewind`, atau tekan Esc dua kali, untuk mundur ke checkpoint sebelum giliran yang rusak dan lanjutkan dari sana. Lihat [Checkpointing](/docs/id/checkpointing) untuk bagaimana checkpoint dibuat dan dipulihkan.

2417 2572 

2573<h3 id="invalid-data-in-redacted-thinking-block">

2574 Data tidak valid dalam blok redacted\_thinking

2575</h3>

2576 

2577API menolak permintaan dengan 400 karena tidak dapat menerima blok `redacted_thinking` yang dibawa giliran sebelumnya dalam riwayat percakapan.

2578 

2579```text theme={null}

2580API Error: 400 ... Invalid `data` in `redacted_thinking` block

2581```

2582 

2583Claude Code mengeluarkan pemikiran percakapan sebelumnya dari permintaan dan mencoba ulang sekali, jadi sesi berlanjut tanpa menampilkan kesalahan. Sebelum v2.1.282, Claude Code menyimpan blok yang ditolak, dan setiap giliran kemudian gagal dengan kesalahan yang sama.

2584 

2585**Yang harus dilakukan:**

2586 

2587* Jika Anda berada di v2.1.281 atau lebih awal dan setiap giliran gagal dengan kesalahan ini, jalankan `claude update` dan lanjutkan sesi

2588* Jika kesalahan berlanjut, jalankan `/clear` untuk memulai percakapan yang tidak membawa blok

2589 

2418<h3 id="unsupported-tool-content-removed">2590<h3 id="unsupported-tool-content-removed">

2419 Konten alat yang tidak didukung dihapus2591 Konten alat yang tidak didukung dihapus

2420</h3>2592</h3>

2421 2593 

2422Ketika Claude Code terhubung langsung ke API Anthropic dan memuat atau melihat pratinjau sesi yang disimpan, ia menghapus konten alat yang API Anthropic tidak terima dan meninggalkan baris ini di mana konten yang dihapus duduk di antara dua blok pemikiran:2594Ketika Claude Code terhubung langsung ke API Anthropic dan memuat atau melihat pratinjau sesi yang disimpan, itu menghapus konten alat yang API Anthropic tidak terima dan meninggalkan baris ini di mana konten yang dihapus duduk di antara dua blok pemikiran:

2423 2595 

2424```text theme={null}2596```text theme={null}

2425[Unsupported tool content removed]2597[Unsupported tool content removed]

2426```2598```

2427 2599 

2428Konten seperti itu mencapai file sesi ketika sesuatu selain API Anthropic menjawab dalam format API, biasanya proxy pihak ketiga yang diatur melalui [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) yang menerjemahkan panggilan alat penyedia lain. Claude Code menghapusnya hanya ketika sesi terhubung langsung ke API Anthropic, dan memuat riwayat yang disimpan seperti adanya ketika sesi berjalan melalui proxy atau di penyedia lain. Sebelum v2.1.246, Claude Code mengirim penggunaan alat dan hasilnya kembali ke API, dan setiap giliran sesi yang dilanjutkan gagal dengan kesalahan 400 seperti `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...`.2600Konten seperti itu mencapai file sesi ketika sesuatu selain API Anthropic menjawab dalam format API, biasanya proxy pihak ketiga yang diatur melalui [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) yang menerjemahkan panggilan alat penyedia lain. Claude Code menghapusnya hanya ketika sesi terhubung langsung ke API Anthropic, dan memuat riwayat yang disimpan seperti adanya ketika sesi berjalan melalui proxy atau pada penyedia lain. Sebelum v2.1.246, Claude Code mengirim penggunaan alat dan hasilnya kembali ke API, dan setiap giliran sesi yang dilanjutkan gagal dengan kesalahan 400 seperti `messages.1.content.0.server_tool_use.name: Input should be 'web_search', 'web_fetch', ...`.

2429 2601 

2430**Yang harus dilakukan:**2602**Yang harus dilakukan:**

2431 2603 


2444 2616 

2445Claude Code mengirim beberapa teks pengingat dan lampiran sebagai pesan sistem di dalam percakapan. Ketika API menolak posisi satu, Claude Code mencoba ulang permintaan sekali dengan teks itu dikirim sebagai pesan pengguna biasa sebagai gantinya. Pesan penempatan saudara API, seperti `use the top-level 'system' parameter for the initial system prompt`, mendapatkan pemulihan yang sama.2617Claude Code mengirim beberapa teks pengingat dan lampiran sebagai pesan sistem di dalam percakapan. Ketika API menolak posisi satu, Claude Code mencoba ulang permintaan sekali dengan teks itu dikirim sebagai pesan pengguna biasa sebagai gantinya. Pesan penempatan saudara API, seperti `use the top-level 'system' parameter for the initial system prompt`, mendapatkan pemulihan yang sama.

2446 2618 

2447Ketika kesalahan muncul, pesan sistem yang ditolak bukan yang dapat dihapus Claude Code. Itu biasanya berarti proxy atau [gateway LLM](/docs/id/llm-gateway) antara Claude Code dan API menambahkan pesan sistem mereka sendiri atau mengurutkan ulang percakapan.2619Ketika kesalahan muncul, pesan sistem yang ditolak bukan yang dapat dihapus Claude Code. Itu biasanya berarti proxy atau [gateway LLM](/docs/id/llm-gateway) antara Claude Code dan API menambahkan pesan sistem mereka sendiri.

2448 2620 

2449**Yang harus dilakukan:**2621**Yang harus dilakukan:**

2450 2622 

2451* Jalankan `/clear` untuk memulai percakapan segar. Jika kesalahan kembali di sana juga, penyebabnya ada di jalur permintaan, bukan di percakapan yang disimpan.2623* Jika kesalahan berulang di setiap giliran di balik proxy atau gateway yang dikonfigurasi melalui [`ANTHROPIC_BASE_URL`](/docs/id/env-vars), terhubung tanpa proxy untuk mengkonfirmasi sumber, dan laporkan kesalahan ke siapa pun yang mengoperasikannya

2452* Jika kesalahan berulang pada setiap giliran di belakang proxy atau gateway yang dikonfigurasi melalui [`ANTHROPIC_BASE_URL`](/docs/id/env-vars), terhubung tanpa proxy untuk mengkonfirmasi sumber, dan laporkan kesalahan ke siapa pun yang mengoperasikannya2624* Jalankan `/clear` untuk memulai percakapan segar. Jika kesalahan kembali di sana juga, penyebabnya ada di jalur permintaan, bukan dalam percakapan yang disimpan.

2453 2625 

2454Sebelum v2.1.280, Claude Code tidak mengenali pesan ini, jadi kesalahan juga muncul ketika pesan sistem yang ditolak adalah yang dikirim Claude Code sendiri, dan setiap giliran percakapan kemudian gagal dengan cara yang sama.2626Sebelum v2.1.280, Claude Code tidak mengenali pesan ini, jadi kesalahan juga muncul ketika pesan sistem yang ditolak adalah yang dikirim Claude Code itu sendiri, dan setiap giliran kemudian dari percakapan gagal dengan cara yang sama.

2455 2627 

2456<h3 id="invalid-encrypted-content-in-search-result-block">2628<h3 id="invalid-encrypted-content-in-search-result-block">

2457 Encrypted\_content tidak valid dalam blok search\_result2629 encrypted\_content tidak valid dalam blok search\_result

2458</h3>2630</h3>

2459 2631 

2460API menolak permintaan dengan 400 karena riwayat percakapan menyimpan konten pencarian web yang dihosting yang tidak dapat didekripsi. Pesan menyebutkan bidang yang tidak dapat dibacanya:2632API menolak permintaan dengan 400 karena riwayat percakapan menyimpan konten pencarian web yang dihosting yang tidak dapat didekripsi. Pesan menyebutkan bidang yang tidak dapat dibacanya:

2461 2633 

2462```text theme={null}2634```text theme={null}

2463API Error: 400 messages.21.content.0: Invalid `encrypted_content` in `search_result` block2635API Error: 400 ... Invalid `encrypted_content` in `search_result` block

2464API Error: 400 messages.21.content.3.citations.0: Invalid `encrypted_index` in `text` block2636API Error: 400 ... Invalid `encrypted_index` in `text` block

2465API Error: 400 Failed to decrypt web search result content2637API Error: 400 ... Failed to decrypt web search result content

2638API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block

2466```2639```

2467 2640 

2468Hasil dari [alat pencarian web](/docs/id/tools-reference#websearch-tool-behavior) yang dihosting API membawa bidang terenkripsi yang hanya dapat dibaca API. API menolak permintaan yang memutar ulang konten yang tidak dapat didekripsi, seperti konten yang diproduksi untuk organisasi berbeda.2641Hasil dari [alat pencarian web yang dihosting](/docs/id/tools-reference#websearch-tool-behavior) API membawa bidang terenkripsi yang hanya dapat dibaca API. Pesan `encrypted_stdout` menyebutkan output program eksekusi kode yang dihosting yang membaca hasil seperti itu, yang juga dienkripsi API. API menolak permintaan yang memutar ulang konten yang tidak dapat didekripsi, seperti konten yang diproduksi untuk organisasi berbeda.

2469 2642 

2470Alat [WebSearch](/docs/id/tools-reference#websearch-tool-behavior) Claude Code sendiri mencatat hasil pencarian sebagai teks biasa, jadi blok ini biasanya mencapai percakapan melalui proxy atau [gateway LLM](/docs/id/llm-gateway) yang menjalankan pencarian web yang dihosting itu sendiri.2643Alat [WebSearch](/docs/id/tools-reference#websearch-tool-behavior) Claude Code sendiri mencatat hasil pencarian sebagai teks biasa, jadi blok ini biasanya mencapai percakapan melalui proxy atau [gateway LLM](/docs/id/llm-gateway) yang menjalankan pencarian web yang dihosting itu sendiri.

2471 2644 

2472Blok yang ditolak tetap berada dalam riwayat percakapan, jadi setiap giliran kemudian dan `/compact` gagal dengan cara yang sama.2645Untuk tiga pesan pencarian web, Claude Code mengeluarkan panggilan pencarian, hasil, dan kutipan dari apa yang dikirimnya dan mencoba ulang permintaan sekali, jadi sesi berlanjut tanpa menampilkan kesalahan. Pesan `encrypted_stdout` tidak memiliki pemulihan seperti itu, jadi pesan itu masih mencapai Anda. Sebelum v2.1.282, Claude Code juga menyimpan blok pencarian web yang ditolak, dan setiap giliran kemudian dan `/compact` gagal dengan cara yang sama.

2473 2646 

2474**Yang harus dilakukan:**2647**Yang harus dilakukan:**

2475 2648 

2476* Jalankan `/clear` atau mulai sesi baru; percakapan baru tidak membawa blok yang ditolak2649* Jika Anda berada di v2.1.281 atau lebih awal dan setiap giliran gagal dengan salah satu pesan pencarian web, jalankan `claude update` dan lanjutkan sesi

2477* Jika Anda menjalankan Claude Code di belakang proxy atau gateway, laporkan kesalahan ke siapa pun yang mengoperasikannya2650* Jika kesalahan berlanjut, atau pesan menyebutkan `encrypted_stdout`, jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang menambahkan konten, atau jalankan `/clear` untuk memulai percakapan yang tidak membawanya

2651* Jika Anda menjalankan Claude Code di balik proxy atau gateway, laporkan kesalahan ke siapa pun yang mengoperasikannya

2478 2652 

2479<h3 id="usage-policy-refusal">2653<h3 id="usage-policy-refusal">

2480 Penolakan Kebijakan Penggunaan2654 Penolakan Kebijakan Penggunaan

2481</h3>2655</h3>

2482 2656 

2483API menolak untuk merespons karena konten dalam percakapan memicu pemeriksaan [Kebijakan Penggunaan](https://www.anthropic.com/legal/aup). Pesan menyertakan ID Permintaan yang dapat Anda kutip untuk mendukung jika Anda percaya penolakan tidak benar.2657API menolak untuk merespons karena konten dalam percakapan memicu pemeriksaan [Kebijakan Penggunaan](https://www.anthropic.com/legal/aup).

2658 

2659Pesan menyertakan ID Permintaan dan ID Pesan yang dapat Anda kutip untuk mendukung jika Anda percaya penolakan tidak benar.

2484 2660 

2485```text theme={null}2661```text theme={null}

2486API Error: Opus 4.6 can't help with this. Start a new session to continue.2662API Error: Opus 4.6 can't help with this. Start a new session to continue.


2490 2666 

2491Pesan menyebutkan model yang menolak, atau `Claude` ketika tidak ada model yang dicatat.2667Pesan menyebutkan model yang menolak, atau `Claude` ketika tidak ada model yang dicatat.

2492 2668 

2493Pemeriksaan mengevaluasi seluruh percakapan, bukan hanya prompt terbaru Anda, jadi mengirim pesan baru dalam sesi yang sama biasanya memicu ulang penolakan yang sama. Hal yang sama berlaku setelah keluar dan membuka kembali sesi dengan `--continue` atau `--resume`, karena transkrip di disk masih berisi konten pemicu. Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Platform Agent Google Cloud](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), pesan ini juga mencakup permintaan yang langkah-langkah keselamatan model tandai sebagai topik keamanan siber. Lihat [Safety measures flagged a cybersecurity topic](#safety-measures-flagged-a-cybersecurity-topic).2669Pemeriksaan mengevaluasi seluruh percakapan, bukan hanya prompt terbaru Anda, jadi mengirim pesan baru dalam sesi yang sama biasanya memicu ulang penolakan yang sama. Hal yang sama berlaku setelah keluar dan membuka kembali sesi dengan `--continue` atau `--resume`, karena transkrip di disk masih berisi konten yang memicu. Pada [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/docs/id/google-vertex-ai), dan [Microsoft Foundry](/docs/id/microsoft-foundry), pesan ini juga mencakup permintaan yang ditandai oleh langkah-langkah keselamatan model sebagai topik keamanan siber. Lihat [Langkah-langkah keselamatan menandai topik keamanan siber](#safety-measures-flagged-a-cybersecurity-topic).

2494 2670 

2495Sebelum v2.1.219, pesan berbunyi `Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`2671Sebelum v2.1.219, pesan berbunyi `Claude Code is unable to respond to this request, which appears to violate our Usage Policy (https://www.anthropic.com/legal/aup). Please double press esc to edit your last message or start a new session for Claude Code to assist with a different task.`

2496 2672 

2497**Yang harus dilakukan:**2673**Yang harus dilakukan:**

2498 2674 

2499* Tekan Esc dua kali atau jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang memicu penolakan, kemudian rephrase atau ambil pendekatan berbeda. Lihat [Checkpointing](/docs/id/checkpointing).2675* Tekan Esc dua kali atau jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang memicu penolakan, lalu rephrase atau ambil pendekatan berbeda. Lihat [Checkpointing](/docs/id/checkpointing).

2500* Jika Anda tidak dapat mengidentifikasi giliran mana yang menyebabkannya, jalankan `/clear` untuk memulai percakapan segar dalam proyek yang sama. Percakapan sebelumnya Anda disimpan di disk dan tetap tersedia di `/resume`.2676* Jika Anda tidak dapat mengidentifikasi giliran mana yang menyebabkannya, jalankan `/clear` untuk memulai percakapan segar dalam proyek yang sama. Percakapan sebelumnya Anda disimpan di disk dan tetap tersedia di `/resume`.

2501* Dalam [mode non-interaktif](/docs/id/headless) (`-p`), di mana rewind tidak tersedia, coba ulang dengan prompt yang diucapkan ulang dalam sesi baru tanpa `--continue`. Pemeriksaan kebijakan bervariasi menurut model, jadi beralih ke model berbeda dengan `--model` juga dapat menyelesaikan penolakan dalam beberapa kasus.2677* Dalam [mode non-interaktif](/docs/id/headless) (`-p`), di mana rewind tidak tersedia, coba ulang dengan prompt yang dirumuskan ulang dalam sesi baru tanpa `--continue`. Pemeriksaan kebijakan bervariasi menurut model, jadi beralih ke model berbeda dengan `--model` juga dapat menyelesaikan penolakan dalam beberapa kasus.

2502 2678 

2503<h3 id="safety-measures-flagged-a-cybersecurity-topic">2679<h3 id="safety-measures-flagged-a-cybersecurity-topic">

2504 Langkah-langkah keselamatan menandai topik keamanan siber2680 Langkah-langkah keselamatan menandai topik keamanan siber


2510API 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-claude2686API 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

2511```2687```

2512 2688 

2513Pesan 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.2689Pesan 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. Pada Opus 5.5 dan Sonnet 5.5, pesan dibuka dengan `<model>'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.

2514 2690 

2515Di [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.2691Pada [Amazon Bedrock](/docs/id/amazon-bedrock), [Google Cloud's Agent Platform](/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.

2516 2692 

2517Penjaga itu sendiri adalah server-side dan mendahului v2.1.203; rilis klien sejak itu hanya mengubah pesan wording.2693Pengaman itu sendiri adalah server-side dan mendahului v2.1.203; rilis klien sejak itu hanya mengubah pesan pesan.

2518Dari v2.1.203 melalui v2.1.218, pesan berbunyi `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` diikuti oleh tautan pusat bantuan yang sama, dan sesi interaktif ditambahkan `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`2694Dari v2.1.203 melalui v2.1.218, pesan berbunyi `<model> has safety measures that flagged this message for a cybersecurity topic. To learn about the Cyber Verification Program and apply for access, visit our help center:` diikuti oleh tautan pusat bantuan yang sama, dan sesi interaktif menambahkan `If you were not engaging in a cybersecurity topic, please send feedback via /feedback.`

2519Sebelum v2.1.203, itu berbunyi `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` diikuti oleh tautan formulir pengecualian.2695Sebelum v2.1.203, itu berbunyi `<model>'s safeguards flagged this message for a cybersecurity topic. If your work requires this access, you can apply for an exemption:` diikuti oleh tautan formulir pengecualian.

2520 2696 

2521**Yang harus dilakukan:**2697**Yang harus dilakukan:**

2522 2698 

2523* Jika pekerjaan Anda memerlukan konten ini, ajukan permohonan akses melalui [Program Verifikasi Siber](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)2699* Jika pekerjaan Anda memerlukan konten ini, ajukan permohonan akses melalui [Program Verifikasi Siber](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude)

2524* Jika permintaan Anda bukan tentang topik keamanan siber, jalankan `/feedback` untuk melaporkan positif palsu2700* Jika permintaan Anda bukan tentang topik keamanan siber, jalankan `/feedback` untuk melaporkan positif palsu

2525* Untuk terus bekerja dalam sesi yang sama, tekan Esc dua kali atau jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang memicu bendera, kemudian ambil pendekatan berbeda. Lihat [Checkpointing](/docs/id/checkpointing).2701* Untuk terus bekerja dalam sesi yang sama, tekan Esc dua kali atau jalankan `/rewind` untuk mundur ke checkpoint sebelum giliran yang memicu bendera, lalu ambil pendekatan berbeda. Lihat [Checkpointing](/docs/id/checkpointing).

2526 2702 

2527<h2 id="installation-errors">2703<h2 id="installation-errors">

2528 Kesalahan instalasi2704 Kesalahan instalasi


2552 The connection dropped while downloading the update2728 The connection dropped while downloading the update

2553</h3>2729</h3>

2554 2730 

2555Koneksi ke server unduhan ditutup saat `claude install`, `claude update`, atau [automatic updater](/docs/id/setup#auto-updates) mengambil biner Claude Code, dan pengulangan tidak berhasil. Claude Code mencoba ulang unduhan ketika koneksi putus, transfer macet, atau file yang diunduh gagal checksumnya, hingga tiga percobaan total. Kesalahan HTTP yang selesai, seperti 404, tidak dicoba ulang karena server sudah menjawab. Sebelum v2.1.202, koneksi yang putus tunggal gagal mengunduh segera dengan kesalahan kosong `aborted` alih-alih mencoba ulang.2731Koneksi ke server unduhan ditutup saat `claude install` atau `claude update` mengambil biner Claude Code, dan pengulangan tidak berhasil. Claude Code mencoba ulang unduhan ketika koneksi putus, transfer macet, atau file yang diunduh gagal checksumnya, hingga tiga percobaan total. Kesalahan HTTP yang selesai, seperti 404, tidak dicoba ulang karena server sudah menjawab. Sebelum v2.1.202, koneksi yang putus tunggal gagal mengunduh segera dengan kesalahan kosong `aborted` alih-alih mencoba ulang.

2556 2732 

2557```text theme={null}2733```text theme={null}

2558The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.2734The connection dropped while downloading the update (attempt 3/3: aborted). Check your network — proxies sometimes cut off large downloads.


2562 2738 

2563Unduhan yang tetap terhubung tetapi tidak selesai dalam 10 menit gagal dengan `Download timed out: exceeded the total deadline` sebagai gantinya. Claude Code tidak mencoba ulang unduhan yang habis waktu, karena koneksi yang terlalu lambat untuk selesai dalam batas waktu tidak akan selesai pada pengulangan segera. Langkah-langkah di bawah berlaku untuk kedua pesan.2739Unduhan yang tetap terhubung tetapi tidak selesai dalam 10 menit gagal dengan `Download timed out: exceeded the total deadline` sebagai gantinya. Claude Code tidak mencoba ulang unduhan yang habis waktu, karena koneksi yang terlalu lambat untuk selesai dalam batas waktu tidak akan selesai pada pengulangan segera. Langkah-langkah di bawah berlaku untuk kedua pesan.

2564 2740 

2565Penyebab umum adalah proxy atau gateway yang menutup transfer panjang sebelum selesai. Biner Claude Code adalah unduhan besar, jadi batas koneksi proxy yang tidak pernah mempengaruhi lalu lintas API normal masih dapat mengganggu.2741Proxy atau gateway dapat menutup transfer panjang sebelum selesai, dan biner Claude Code adalah unduhan besar.

2566 2742 

2567**Yang harus dilakukan:**2743**Yang harus dilakukan:**

2568 2744 


2572* Jalankan `claude doctor` dari shell Anda untuk diagnostik instalasi2748* Jalankan `claude doctor` dari shell Anda untuk diagnostik instalasi

2573 2749 

2574<h2 id="command-line-errors">2750<h2 id="command-line-errors">

2575 Kesalahan baris perintah2751 Kesalahan command-line

2576</h2>2752</h2>

2577 2753 

2578Kesalahan ini berasal dari perintah `claude` dan subperintahnya, dari nama perintah yang Anda kirimkan di prompt, dan dari perintah seperti `/security-review` yang mengumpulkan konteks dengan menjalankan perintah shell sebelum prompt mereka berjalan. Mereka juga berasal dari `/tui`, yang meluncurkan kembali CLI.2754Kesalahan ini berasal dari command line `claude` dan subcommand-nya, dari nama command yang Anda kirimkan di prompt, dan dari command seperti `/security-review` yang mengumpulkan konteks dengan menjalankan shell command sebelum prompt mereka berjalan. Mereka juga berasal dari `/tui`, yang meluncurkan kembali CLI.

2579 2755 

2580<h3 id="conflict-between-bg-and-print">2756<h3 id="conflict-between-bg-and-print">

2581 Konflik antara --bg dan --print2757 Konflik antara `--bg` dan `--print`

2582</h3>2758</h3>

2583 2759 

2584Pesan ini memerlukan Claude Code v2.1.198 atau lebih baru. Anda menggabungkan `--bg` dengan `-p` atau `--print` dalam invokasi `claude` yang sama. `--bg` memulai [sesi latar belakang](/docs/id/agent-view#from-your-shell) yang kemudian Anda lampirkan dengan `claude agents`, sementara `--print` berjalan [non-interaktif](/docs/id/headless) dan tidak pernah memulai sesi interaktif yang `claude agents` lampirkan. Sebelum v2.1.198, kombinasi ini secara diam-diam membuat pekerjaan latar belakang yang tidak pernah bisa dilampirkan.2760Pesan ini memerlukan Claude Code v2.1.198 atau lebih baru. Anda menggabungkan `--bg` dengan `-p` atau `--print` dalam invokasi `claude` yang sama. `--bg` memulai [sesi background](/docs/id/agent-view#from-your-shell) yang kemudian Anda lampirkan dengan `claude agents`, sementara `--print` berjalan [non-interaktif](/docs/id/headless) dan tidak pernah memulai sesi interaktif yang `claude agents` lampirkan. Sebelum v2.1.198, kombinasi ini secara diam-diam membuat pekerjaan background yang tidak pernah bisa dilampirkan.

2585 2761 

2586```text theme={null}2762```text theme={null}

2763--bg dan --print berkonflik: --print tidak pernah memulai sesi interaktif yang `claude agents` lampirkan, jadi pekerjaan tidak akan dapat dilampirkan. Prompt adalah positional — hilangkan --print: `claude --bg '<task>'`.

2587```2764```

2588 2765 

2589**Yang harus dilakukan:**2766**Yang harus dilakukan:**

2590 2767 

2591* Lepaskan `-p` atau `--print`. `--bg` mengambil prompt sebagai argumen posisionalnya, jadi `claude --bg "<task>"` adalah perintah lengkapnya. Lihat [Dispatch new agents from your shell](/docs/id/agent-view#from-your-shell).2768* Hilangkan `-p` atau `--print`. `--bg` mengambil prompt sebagai argumen positional-nya, jadi `claude --bg "<task>"` adalah command lengkapnya. Lihat [Dispatch new agents from your shell](/docs/id/agent-view#from-your-shell).

2592* Untuk menjalankan prompt secara non-interaktif dan mencetak hasilnya alih-alih membuat sesi latar belakang, lepaskan `--bg` dan jalankan `claude -p "<task>"`2769* Untuk menjalankan prompt non-interaktif dan mencetak hasilnya alih-alih membuat sesi background, hilangkan `--bg` dan jalankan `claude -p "<task>"`

2593 2770 

2594<h3 id="invalid-agents-configuration">2771<h3 id="invalid-agents-configuration">

2595 Konfigurasi --agents tidak valid2772 Konfigurasi `--agents` tidak valid

2596</h3>2773</h3>

2597 2774 

2598Nilai yang Anda berikan ke `--agents` tidak valid, jadi `claude` keluar dengan kode 1 alih-alih memulai sesi. Ketika Anda melewatkan `--safe-mode`, `--resume`, atau `--continue`, atau mengatur [`CLAUDE_CODE_SAFE_MODE`](/docs/id/env-vars#variables), Claude Code tidak memeriksa nilainya dan memulai sesi. Sebelum v2.1.242, Claude Code memulai sesi bagaimanapun dan menghilangkan definisi yang tidak bisa dimuat.2775Nilai yang Anda berikan ke `--agents` tidak valid, jadi `claude` keluar dengan kode 1 alih-alih memulai sesi. Ketika Anda memberikan `--safe-mode` atau mengatur [`CLAUDE_CODE_SAFE_MODE`](/docs/id/env-vars#variables), Claude Code mengabaikan `--agents` sepenuhnya. Dengan `--resume` atau `--continue`, nilai JSON inline tidak diperiksa dan sesi dimulai; nilai yang dibaca dari file diperiksa pada setiap peluncuran. Sebelum v2.1.242, Claude Code memulai sesi bagaimanapun.

2599 2776 

2600```text theme={null}2777```text theme={null}

2601Error: Invalid --agents configuration:2778Error: Invalid --agents configuration:

2602<what failed>2779<what failed>

2603```2780```

2604 2781 

2605Apa yang mengikuti baris pertama tergantung pada bagaimana nilainya gagal. Claude Code menjalankan pemeriksaan ini secara berurutan dan berhenti di yang pertama gagal. Jika nilai Anda memiliki dua jenis masalah, Anda hanya melihat yang kedua setelah Anda memperbaiki yang pertama:2782Apa yang mengikuti baris pertama tergantung pada bagaimana nilai gagal. Claude Code menjalankan pemeriksaan ini secara berurutan dan berhenti di yang pertama gagal. Jika nilai Anda memiliki dua jenis masalah, Anda hanya melihat yang kedua setelah Anda memperbaiki yang pertama:

2606 2783 

26071. Ketika nilai tidak diuraikan sebagai JSON, Claude Code mencetak satu baris `invalid JSON:` yang membawa pesan parser JSON sendiri27841. Ketika nilai dimulai dengan `{` tetapi tidak diuraikan sebagai JSON, atau isi file `--agents` tidak diuraikan, Claude Code mencetak satu baris `invalid JSON:` yang membawa pesan parser JSON sendiri

26082. Ketika diuraikan tetapi definisi agen tidak cocok dengan skema untuk [subagen yang ditentukan CLI](/docs/id/sub-agents#choose-the-subagent-scope), Claude Code mencetak satu baris per masalah27852. Ketika diuraikan tetapi definisi agent tidak cocok dengan skema untuk [subagent yang ditentukan CLI](/docs/id/sub-agents#choose-the-subagent-scope), Claude Code mencetak satu baris per masalah

26093. Ketika nama agen dimulai dengan `-`, Claude Code mencetak `<name>: agent names must not start with '-'`27863. Ketika nama agent dimulai dengan `-`, Claude Code mencetak `<name>: agent names must not start with '-'`

2610 2787 

2611Ketika ada lebih dari 20 baris masalah, Claude Code mencetak 20 yang pertama dan mengganti sisanya dengan `…and N more`.2788Ketika ada lebih dari 20 baris masalah, Claude Code mencetak 20 yang pertama dan mengganti sisanya dengan `…and N more`.

2612 2789 

2790Dengan `--print`, `--agents` juga menerima [path ke file JSON](/docs/id/sub-agents#choose-the-subagent-scope) sebagai pengganti objek inline. Sebelum v2.1.281, `--agents` hanya menerima JSON inline dan memperlakukan path file sebagai JSON tidak valid. Bentuk file memiliki penolakan sendiri, dicetak sebagai pengganti pesan ini, termasuk yang berikut:

2791 

2792* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**: Claude Code membaca nilai sebagai path file dalam sesi interaktif. Berikan definisi sebagai JSON inline, atau tambahkan `-p` untuk membacanya dari file.

2793* **`Error: --agents file not found: <path>`**: tidak ada file yang ada di path tersebut. Nilai yang tidak dimulai dengan `{` dan bukan JSON valid dibaca sebagai path, jadi JSON inline yang shell Anda rusak dapat gagal dengan cara ini juga. Periksa path atau kutipan dan jalankan command lagi.

2794 

2613**Yang harus dilakukan:**2795**Yang harus dilakukan:**

2614 2796 

2615* Perbaiki setiap masalah yang daftar pesan, kemudian jalankan perintah lagi. Lihat [bidang yang diambil subagen yang ditentukan CLI](/docs/id/sub-agents#choose-the-subagent-scope).2797* Perbaiki setiap masalah yang pesan daftarkan, kemudian jalankan command lagi. Lihat [field yang diambil subagent yang ditentukan CLI](/docs/id/sub-agents#choose-the-subagent-scope).

2616 2798 

2617<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">2799<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">

2618 Sesi cloud tidak dapat dibuat dari sesi --restricted2800 Sesi cloud tidak dapat dibuat dari sesi `--restricted`

2619</h3>2801</h3>

2620 2802 

2621Ketika Anda memulai sesi dengan [`--restricted`](/docs/id/cli-reference#cli-flags), Claude Code menolak untuk membuat [sesi cloud](/docs/id/claude-code-on-the-web#from-terminal-to-cloud) darinya, karena sesi baru akan berjalan di luar proses terbatas dan tidak akan memberlakukan mode terbatas. Claude Code menolak di klien, sebelum menghubungi server, jadi tidak ada sesi cloud yang dibuat:2803Ketika Anda memulai sesi dengan [`--restricted`](/docs/id/cli-reference#cli-flags), Claude Code menolak untuk membuat [sesi cloud](/docs/id/claude-code-on-the-web#from-terminal-to-cloud) darinya, karena sesi baru akan berjalan di luar proses terbatas dan tidak akan memberlakukan mode terbatas. Claude Code menolak di klien, sebelum menghubungi server, jadi tidak ada sesi cloud yang dibuat:


2630* Jalankan tugas secara lokal dalam sesi terbatas2811* Jalankan tugas secara lokal dalam sesi terbatas

2631* Jika Anda mengontrol bagaimana sesi diluncurkan, mulai sesi `claude` baru tanpa `--restricted` dan buat sesi cloud dari sana2812* Jika Anda mengontrol bagaimana sesi diluncurkan, mulai sesi `claude` baru tanpa `--restricted` dan buat sesi cloud dari sana

2632 2813 

2633Sebelum v2.1.248, Claude Code tidak memiliki flag `--restricted`; versi sebelumnya menolak flag itu sendiri dengan kesalahan opsi yang tidak dikenal.2814Sebelum v2.1.248, Claude Code tidak memiliki flag `--restricted`; versi sebelumnya menolak flag itu sendiri dengan kesalahan unknown-option.

2634 2815 

2635<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">2816<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">

2636 Sesi cloud dinonaktifkan oleh kebijakan organisasi Anda2817 Sesi cloud dinonaktifkan oleh kebijakan organisasi Anda

2637</h3>2818</h3>

2638 2819 

2639Kebijakan `allow_remote_sessions` organisasi Anda mati, jadi [sesi cloud](/docs/id/claude-code-on-the-web) dan perintah yang menggunakannya tidak tersedia:2820Kebijakan `allow_remote_sessions` organisasi Anda mati, jadi [sesi cloud](/docs/id/claude-code-on-the-web) dan command yang menggunakannya tidak tersedia:

2640 2821 

2641```text theme={null}2822```text theme={null}

2642Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.2823Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

2643```2824```

2644 2825 

2645Pesan muncul ketika Anda [membuat sesi cloud dari terminal](/docs/id/claude-code-on-the-web#from-terminal-to-cloud) dan ketika Anda mengirimkan perintah yang memerlukan sesi cloud, seperti `/teleport`, `/remote-env`, atau `/web-setup`. Sebelum v2.1.268, mengirimkan salah satu perintah itu mengembalikan [`Unknown command`](#unknown-command) sebagai gantinya.2826Pesan muncul ketika Anda [membuat sesi cloud dari terminal](/docs/id/claude-code-on-the-web#from-terminal-to-cloud) dan ketika Anda mengirimkan command yang memerlukan sesi cloud, seperti `/teleport`, `/remote-env`, atau `/web-setup`. Sebelum v2.1.268, mengirimkan salah satu command tersebut mengembalikan [`Unknown command`](#unknown-command) sebagai gantinya.

2646 2827 

2647Ini adalah kebijakan organisasi sisi server, jadi tidak dapat ditimpa dari pengaturan lokal, variabel lingkungan, atau flag CLI.2828Ini adalah kebijakan organisasi sisi server, jadi tidak dapat ditimpa dari pengaturan lokal, variabel lingkungan, atau flag CLI.

2648 2829 

2649Jika Claude Code belum memuat kebijakan organisasi Anda atau tidak dapat mengambilnya, perintah itu menjawab `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` sebagai gantinya.2830Jika Claude Code belum memuat kebijakan organisasi Anda atau tidak dapat mengambilnya, command tersebut menjawab `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.` sebagai gantinya.

2650 2831 

2651**Yang harus dilakukan:**2832**Yang harus dilakukan:**

2652 2833 

2653* Minta [Owner](/docs/id/server-managed-settings#access-control) di organisasi Anda untuk mengaktifkan sesi cloud di pengaturan admin Claude Code di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)2834* Minta [Owner](/docs/id/server-managed-settings#access-control) di organisasi Anda untuk mengaktifkan sesi cloud dalam pengaturan admin Claude Code di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code)

2654* Jika pesan mengatakan tidak dapat memverifikasi kebijakan, periksa koneksi jaringan Anda, kemudian mulai ulang Claude Code dan coba lagi2835* Jika pesan mengatakan tidak dapat memverifikasi kebijakan, periksa koneksi jaringan Anda, kemudian restart Claude Code dan coba lagi

2655 2836 

2656<h3 id="the-json-schema-value-is-not-a-valid-json-schema">2837<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

2657 Nilai --json-schema bukan JSON Schema yang valid2838 Nilai `--json-schema` bukan JSON Schema yang valid

2658</h3>2839</h3>

2659 2840 

2660Skema yang Anda berikan ke [`--json-schema`](/docs/id/cli-reference#cli-flags) dalam [mode non-interaktif](/docs/id/headless#get-structured-output) gagal kompilasi JSON Schema, jadi `claude` keluar dengan kode 1 alih-alih menjalankan prompt. Sebelum v2.1.205, skema yang tidak valid menghasilkan output tidak terstruktur tanpa kesalahan, dan skema apa pun yang menggunakan kata kunci `format` diperlakukan sebagai tidak valid.2841Skema yang Anda berikan ke [`--json-schema`](/docs/id/cli-reference#cli-flags) dalam [mode non-interaktif](/docs/id/headless#get-structured-output) gagal kompilasi JSON Schema, jadi `claude` keluar dengan kode 1 alih-alih menjalankan prompt. Sebelum v2.1.205, skema tidak valid menghasilkan output tidak terstruktur tanpa kesalahan, dan skema apa pun yang menggunakan keyword `format` diperlakukan sebagai tidak valid.

2661 2842 

2662```text theme={null}2843```text theme={null}

2663Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values2844Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values

2664```2845```

2665 2846 

2666Teks setelah titik dua kedua adalah diagnostik validator dan menyebutkan kata kunci atau lokasi yang gagal. Skema yang menggunakan kata kunci `format`, seperti `"format": "email"`, valid: Claude Code menerima `format` sebagai anotasi dan tidak memberlakukannya.2847Teks setelah titik dua kedua adalah diagnostik validator dan menamai keyword atau lokasi yang gagal. Skema yang menggunakan keyword `format`, seperti `"format": "email"`, valid: Claude Code menerima `format` sebagai anotasi dan tidak memberlakukannya.

2667 2848 

2668Claude Code menjalankan dua pemeriksaan sebelum kompilasi skema: menolak nilai yang tidak dapat diuraikan JSON dengan `Error: --json-schema is not valid JSON`, dan JSON yang valid tetapi bukan objek dengan `Error: --json-schema must be a JSON object`.2849Claude Code menjalankan dua pemeriksaan sebelum kompilasi skema: menolak nilai yang tidak dapat diuraikan JSON dengan `Error: --json-schema is not valid JSON`, dan JSON valid yang bukan objek dengan `Error: --json-schema must be a JSON object`.

2669 2850 

2670**Yang harus dilakukan:**2851**Yang harus dilakukan:**

2671 2852 

2672* Perbaiki bagian skema yang diagnostik sebutkan, kemudian jalankan kembali perintah2853* Perbaiki bagian skema yang diagnostik namakan, kemudian jalankan kembali command

2673* Jika diagnostik adalah `schema too large`, kurangi nesting skema dan penggunaan kembali `$ref`2854* Lihat [Get structured output](/docs/id/headless#get-structured-output) untuk skema kerja dan command

2674* Lihat [Get structured output](/docs/id/headless#get-structured-output) untuk skema kerja dan perintah

2675 2855 

2676<h3 id="settings-file-exceeds-the-2mib-limit">2856<h3 id="settings-file-exceeds-the-2mib-limit">

2677 File pengaturan melebihi batas 2MiB2857 File pengaturan melebihi batas 2MiB

2678</h3>2858</h3>

2679 2859 

2680File yang Anda berikan ke [`--settings`](/docs/id/cli-reference#cli-flags) lebih besar dari 2 MiB, jadi `claude` keluar dengan kode 1 saat startup alih-alih memuatnya. File pengaturan adalah dokumen JSON kecil, jadi file sebesar ini biasanya berarti jalur menunjuk ke file yang salah. Sebelum v2.1.214, Claude Code membaca file tanpa pemeriksaan ukuran, dan file multi-gigabyte atau file perangkat seperti `/dev/zero` menumbuhkan memori tanpa batas.2860File yang Anda berikan ke [`--settings`](/docs/id/cli-reference#cli-flags) lebih besar dari 2 MiB, jadi `claude` keluar dengan kode 1 saat startup alih-alih memuatnya. Sebelum v2.1.214, Claude Code membaca file tanpa pemeriksaan ukuran, dan file multi-gigabyte atau file perangkat seperti `/dev/zero` menumbuhkan memori tanpa batas.

2681 2861 

2682```text theme={null}2862```text theme={null}

2683Error: Settings file exceeds the 2MiB limit: /path/to/settings.json2863Error: Settings file exceeds the 2MiB limit: /path/to/settings.json

2684```2864```

2685 2865 

2686Claude Code menolak jalur `--settings` yang bukan file biasa dengan cara yang sama: perangkat, FIFO, atau soket melaporkan `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` diikuti oleh jalur, dan direktori melaporkan alasan `EISDIR`.2866Claude Code menolak path `--settings` yang bukan file reguler dengan cara yang sama: perangkat, FIFO, atau socket melaporkan `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))` diikuti oleh path, dan direktori melaporkan alasan `EISDIR`.

2687 2867 

2688**Yang harus dilakukan:**2868**Yang harus dilakukan:**

2689 2869 

2690* Arahkan `--settings` ke file pengaturan JSON biasa di bawah 2 MiB. Lihat [Settings](/docs/id/settings) untuk formatnya.2870* Arahkan `--settings` ke file pengaturan JSON reguler di bawah 2 MiB. Lihat [Settings](/docs/id/settings) untuk formatnya.

2691 2871 

2692<h3 id="the-current-directory-no-longer-exists">2872<h3 id="the-current-directory-no-longer-exists">

2693 Direktori saat ini tidak lagi ada2873 Direktori saat ini tidak lagi ada

2694</h3>2874</h3>

2695 2875 

2696Anda memulai `claude` dari direktori yang dihapus atau dipindahkan setelah shell Anda memasukkannya, misalnya worktree atau direktori temp yang shell lain hapus. Claude Code tidak dapat membaca direktori kerjanya, jadi keluar dengan kode 1 sebelum memulai sesi, dalam mode interaktif dan [non-interaktif](/docs/id/headless) sama-sama. Sebelum v2.1.239, Claude Code mogok dengan sumber bundle minified dan stack `ENOENT ... uv_cwd` mentah di stderr alih-alih pesan ini.2876Anda memulai `claude` dari direktori yang dihapus atau dipindahkan setelah shell Anda memasukkannya, misalnya worktree atau direktori temp yang shell lain hapus. Claude Code tidak dapat membaca direktori kerjanya, jadi keluar dengan kode 1 sebelum memulai sesi, dalam mode interaktif dan [non-interaktif](/docs/id/headless) sama-sama. Sebelum v2.1.239, Claude Code mogok dengan sumber bundle minified dan `ENOENT ... uv_cwd` stack mentah di stderr alih-alih pesan ini.

2697 2877 

2698```text theme={null}2878```text theme={null}

2699The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.2879The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.


2702 2882 

2703Penyebab dan perbaikannya sama untuk kedua bentuk.2883Penyebab dan perbaikannya sama untuk kedua bentuk.

2704 2884 

2705Ketika Claude Code tidak dapat membaca direktori kerja karena alasan lain, seperti perubahan izin, pesan menyebutkan kode kesalahan sebagai gantinya: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`2885Ketika Claude Code tidak dapat membaca direktori kerja karena alasan berbeda, seperti perubahan izin, pesan menamai kode kesalahan sebagai gantinya: `Can't read the current directory (EACCES). Start Claude Code from a different directory.`

2706 2886 

2707Di macOS, `EPERM` untuk direktori di `~/Desktop`, `~/Documents`, `~/Downloads`, atau iCloud Drive biasanya berarti macOS memblokir aplikasi terminal Anda dari folder itu. Perintah lain yang membaca folder itu gagal dengan cara yang sama: `ls` di sana melaporkan `Operation not permitted`, bahkan dengan `sudo`.2887Di macOS, `EPERM` untuk direktori di `~/Desktop`, `~/Documents`, `~/Downloads`, atau iCloud Drive biasanya berarti macOS memblokir aplikasi terminal Anda dari folder tersebut. Command lain yang membaca folder itu gagal dengan cara yang sama: `ls` di sana melaporkan `Operation not permitted`, bahkan dengan `sudo`.

2708 2888 

2709**Yang harus dilakukan:**2889**Yang harus dilakukan:**

2710 2890 

2711* Ubah ke direktori yang ada, seperti direktori home atau proyek Anda, kemudian jalankan `claude` lagi2891* Ubah ke direktori yang ada, seperti direktori home atau project Anda, kemudian jalankan `claude` lagi

2712* Jika direktori dibuat kembali di jalur yang sama, shell Anda masih memegang yang dihapus. Jalankan `cd "$PWD"` atau tinggalkan dan masuki kembali direktori, kemudian jalankan `claude` lagi2892* Jika direktori dibuat kembali di path yang sama, shell Anda masih memegang yang dihapus. Jalankan `cd "$PWD"` atau tinggalkan dan masuki kembali direktori, kemudian jalankan `claude` lagi

2713* Untuk `EPERM` di macOS, keluar dari aplikasi terminal Anda dengan Cmd+Q, buka lagi, kembali ke folder itu, dan jalankan `claude`. Jika `ls` di folder itu masih gagal, buka **System Settings > Privacy & Security > Files and Folders**, aktifkan folder untuk aplikasi terminal Anda, kemudian buka kembali terminal2893* Untuk `EPERM` di macOS, keluar dari aplikasi terminal Anda dengan Cmd+Q, buka lagi, kembali ke folder itu, dan jalankan `claude`. Jika `ls` di folder itu masih gagal, buka **System Settings > Privacy & Security > Files and Folders**, aktifkan folder untuk aplikasi terminal Anda, kemudian buka kembali terminal

2714 2894 

2715<h3 id="temp-directory-refused-or-cannot-be-created">2895<h3 id="temp-directory-refused-or-cannot-be-created">

2716 Direktori temp ditolak atau tidak dapat dibuat2896 Direktori temp ditolak atau tidak dapat dibuat

2717</h3>2897</h3>

2718 2898 

2719Di macOS dan Linux, Claude Code membuat direktori temp pribadi saat startup, `claude-<uid>` di bawah direktori temp sistem atau override [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars). Ketika direktori tidak dapat dibuat, atau entri yang sudah ada di jalur itu gagal pemeriksaan keamanan, Claude Code mencetak kegagalan ke stderr dan keluar dengan kode 1 daripada memulai sesi:2899Di macOS dan Linux, Claude Code membuat direktori temp pribadi saat startup, `claude-<uid>` di bawah direktori temp sistem atau override [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars). Ketika direktori tidak dapat dibuat, atau entri yang sudah ada di path itu gagal pemeriksaan keamanan, Claude Code mencetak kegagalan ke stderr dan keluar dengan kode 1 alih-alih memulai sesi:

2720 2900 

2721```text wrap theme={null}2901```text wrap theme={null}

2722ENOSPC: no space left on device, mkdir '/tmp/claude-501'2902ENOSPC: no space left on device, mkdir '/tmp/claude-501'


2731**Yang harus dilakukan:**2911**Yang harus dilakukan:**

2732 2912 

2733* Untuk `ENOSPC`, bebaskan ruang disk di volume yang menyimpan direktori temp2913* Untuk `ENOSPC`, bebaskan ruang disk di volume yang menyimpan direktori temp

2734* Untuk bentuk `Refusing to use it`, hapus entri yang disebutkan itu sendiri, bukan apa yang ditunjuk link, dan mulai Claude Code lagi; untuk bentuk `owned by uid`, hanya administrator atau pengguna itu yang dapat menghapusnya2914* Untuk bentuk `Refusing to use it`, hapus entri bernama itu sendiri, bukan apa yang link tunjuk, dan mulai Claude Code lagi; untuk bentuk `owned by uid`, hanya administrator atau pengguna itu yang dapat menghapusnya

2735* Untuk `is not readable`, jalankan `chmod 0700` di direktori yang disebutkan, atau hapus dan mulai lagi2915* Untuk `is not readable`, jalankan `chmod 0700` di direktori bernama, atau hapus dan mulai lagi

2736* Dalam kasus apa pun, atur [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) ke direktori yang Anda kontrol dan mulai Claude Code lagi, meninggalkan jalur yang ditolak sendirian2916* Dalam kasus apa pun, atur [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) ke direktori yang Anda kontrol dan mulai Claude Code lagi, meninggalkan path yang ditolak sendirian

2737 2917 

2738<h3 id="directory-couldnt-be-resolved-to-a-real-location">2918<h3 id="directory-couldnt-be-resolved-to-a-real-location">

2739 Direktori tidak dapat diselesaikan ke lokasi nyata2919 Direktori tidak dapat diselesaikan ke lokasi nyata

2740</h3>2920</h3>

2741 2921 

2742Anda menjalankan `/add-dir` untuk subdirektori direktori kerja Anda, dan Claude Code tidak dapat menyelesaikan direktori ke lokasi nyatanya.2922Anda menjalankan `/add-dir` untuk subdirektori dari direktori kerja Anda, dan Claude Code tidak dapat menyelesaikan direktori ke lokasi nyatanya.

2743 2923 

2744Anda sudah memiliki akses file ke subdirektori direktori kerja, jadi `/add-dir` hanya memuat skills, commands, dan agents-nya. Sebelum memuatnya, Claude Code memeriksa bahwa lokasi nyata direktori, dengan symlink apa pun yang diselesaikan, berada di dalam direktori kerja. Ketika Claude Code tidak dapat menyelesaikan lokasi itu, tidak memuat apa pun dan menampilkan pesan ini:2924Anda sudah memiliki akses file ke subdirektori dari direktori kerja, jadi `/add-dir` hanya memuat skill, command, dan agent-nya. Sebelum memuatnya, Claude Code memeriksa bahwa lokasi nyata direktori, dengan symlink apa pun diselesaikan, berada di dalam direktori kerja. Ketika Claude Code tidak dapat menyelesaikan lokasi itu, tidak memuat apa pun dan menampilkan pesan ini:

2745 2925 

2746```text theme={null}2926```text theme={null}

2747packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.2927packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.


2749 2929 

2750**Yang harus dilakukan:**2930**Yang harus dilakukan:**

2751 2931 

2752* Periksa bahwa jalur menyebutkan direktori nyata di dalam direktori kerja, kemudian jalankan `/add-dir` lagi2932* Periksa bahwa path menamai direktori nyata di dalam direktori kerja, kemudian jalankan `/add-dir` lagi

2753* Pesan tidak mengubah akses file Anda; hanya melaporkan bahwa konten `.claude/` direktori tidak dimuat2933* Pesan tidak mengubah akses file Anda; hanya melaporkan bahwa konten `.claude/` direktori tidak dimuat

2754 2934 

2755Sebelum v2.1.261, pesan ini juga muncul untuk setiap `/add-dir <subdirectory>` ketika direktori kerja berada di automount `/net/<host>`, di mana Claude Code menolak untuk menyelesaikan jalur dengan desain; direktori baik-baik saja dan mencoba kembali tidak bisa membantu.2935Sebelum v2.1.261, pesan ini juga muncul untuk setiap `/add-dir <subdirectory>` ketika direktori kerja berada di automount `/net/<host>`, di mana Claude Code menolak untuk menyelesaikan path dengan desain; direktori baik-baik saja dan mencoba lagi tidak bisa membantu.

2756 2936 

2757<h3 id="workspace-not-trusted-when-starting-remote-control">2937<h3 id="workspace-not-trusted-when-starting-remote-control">

2758 Workspace tidak dipercaya saat memulai Remote Control2938 Workspace tidak dipercaya saat memulai Remote Control

2759</h3>2939</h3>

2760 2940 

2761Anda memulai mode server [Remote Control](/docs/id/remote-control) dengan `claude remote-control` atau alias `claude rc`-nya di direktori yang belum Anda percayai. Perintah tidak menampilkan dialog kepercayaan workspace itu sendiri, jadi keluar dengan kode 1 dan menyebutkan perbaikannya:2941Anda memulai mode server [Remote Control](/docs/id/remote-control) dengan `claude remote-control` atau alias `claude rc` di direktori yang belum Anda percayai, dan command tidak dapat menanyakan apakah akan mempercayainya. Misalnya, input atau output standar command bukan terminal karena salah satunya dialihkan atau dipipa. Command keluar dengan kode 1:

2762 2942 

2763```text theme={null}2943```text theme={null}

2764Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.2944Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

2765```2945```

2766 2946 

2767Di direktori home Anda pesan berbeda, karena dialog kepercayaan workspace tidak pernah menyimpan kepercayaan untuk direktori home, jadi menerimanya di sana tidak dapat memenuhi pemeriksaan ini. Sebelum v2.1.214, direktori home menampilkan pesan di atas, yang sarannya tidak dapat berhasil di sana.2947Dua varian yang juga dimulai dengan `Error: Workspace not trusted.` muncul di terminal juga terlalu kecil untuk menunjukkan apa yang mempercayai direktori aktifkan, atau yang tidak melaporkan ukurannya. Perbesar jendela atau beralih ke jendela terminal normal, kemudian jalankan `claude rc` lagi.

2948 

2949Di direktori home Anda pesan berbeda, karena dialog kepercayaan workspace tidak pernah menyimpan kepercayaan untuk direktori home, jadi menerimanya di sana tidak dapat memenuhi pemeriksaan ini. Sebelum v2.1.214, direktori home menunjukkan pesan di atas, yang sarannya tidak dapat berhasil di sana.

2768 2950 

2769```text theme={null}2951```text theme={null}

2770Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).2952Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

2771```2953```

2772 2954 

2955Jika Anda menjawab `n` atau tekan Enter di pertanyaan [`Trust <directory>?`](/docs/id/remote-control#requirements), command mencetak pesan `Remote Control did not start` yang menamai direktori dan keluar dengan kode 1. Jalankan `claude rc` lagi untuk menjawab `y`.

2956 

2773**Yang harus dilakukan:**2957**Yang harus dilakukan:**

2774 2958 

2775* Jalankan `claude` di direktori, terima [dialog kepercayaan workspace](/docs/id/permissions#project-allow-rules-and-workspace-trust), kemudian jalankan `claude remote-control` lagi2959* Percayai direktori dari terminal terlebih dahulu: jalankan `claude rc` di sana dan jawab `y`, atau jalankan `claude` di sana dan terima [dialog kepercayaan workspace](/docs/id/permissions#project-allow-rules-and-workspace-trust), kemudian jalankan command asli Anda lagi

2776* Di direktori home Anda, ubah ke direktori proyek dan mulai Remote Control di sana2960* Di direktori home Anda, ubah ke direktori project dan mulai Remote Control di sana

2961 

2962Sebelum v2.1.284, command tidak pernah menanyakan, bahkan di terminal.

2777 2963 

2778<h3 id="not-carried-over-to-the-sessions-remote-control-starts">2964<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

2779 Tidak dibawa ke sesi yang Remote Control mulai2965 Tidak dibawa ke sesi yang Remote Control mulai

2780</h3>2966</h3>

2781 2967 

2782Anda memulai [Remote Control](/docs/id/remote-control) dengan flag `claude` global sebelum verba `remote-control`, yang akan membatasi atau mengonfigurasi sesi yang Remote Control mulai, seperti `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools`, atau `--mcp-config`. Flag yang ditempatkan sebelum verba tidak pernah mencapai sesi itu. Claude Code menolak untuk memulai sebagai gantinya, menyebutkan flag:2968Anda memulai [Remote Control](/docs/id/remote-control) dengan flag `claude` global sebelum verb `remote-control`, yang akan membatasi atau mengonfigurasi sesi yang Remote Control mulai, seperti `--settings`, `--setting-sources`, `--permission-mode`, `--disallowed-tools`, atau `--mcp-config`. Flag yang ditempatkan sebelum verb tidak pernah mencapai sesi tersebut. Claude Code menolak untuk memulai sebagai gantinya, menamai flag:

2783 2969 

2784```text theme={null}2970```text theme={null}

2785Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).2971Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).

2786```2972```

2787 2973 

2788Claude Code tidak menolak flag global yang aman untuk dijatuhkan, seperti `--verbose`, `--model`, atau `--session-id` yang disuntikkan wrapper atau `--plugin-dir`: mengabaikannya dan Remote Control dimulai.2974Claude Code tidak menolak flag global yang tidak berbahaya untuk dijatuhkan, seperti `--verbose`, `--model`, atau wrapper-injected `--session-id` atau `--plugin-dir`: mengabaikannya dan Remote Control dimulai.

2789 2975 

2790Claude Code juga menolak untuk memulai untuk flag global yang belum dikenalinya sebagai aman, jadi flag yang ditambahkan dalam rilis yang lebih baru dapat muncul dalam pesan ini sampai rilis yang lebih baru menandainya aman.2976Claude Code juga menolak untuk memulai untuk flag global yang belum dikenalinya sebagai tidak berbahaya, jadi flag yang ditambahkan dalam rilis lebih baru dapat muncul dalam pesan ini sampai rilis kemudian menandainya tidak berbahaya.

2791 2977 

2792**Yang harus dilakukan:**2978**Yang harus dilakukan:**

2793 2979 

2794* Hapus flag dari sebelum verba dan berikan [opsi Remote Control sendiri](/docs/id/remote-control#start-a-remote-control-session) setelahnya; `claude remote-control --help` mencantumnya2980* Hapus flag dari sebelum verb dan berikan [opsi Remote Control sendiri](/docs/id/remote-control#start-a-remote-control-session) setelahnya; `claude remote-control --help` mencantumnya

2795* Ketika flag yang ditolak adalah `--permission-mode`, jalankan `claude remote-control --permission-mode <mode>` untuk mengatur mode izin untuk sesi yang Remote Control mulai2981* Ketika flag yang ditolak adalah `--permission-mode`, jalankan `claude remote-control --permission-mode <mode>` untuk mengatur mode izin untuk sesi yang Remote Control mulai

2796 2982 

2797Sebelum v2.1.248, `claude remote-control` tidak menerima flag-nya sendiri ketika flag global datang terlebih dahulu, dan perintah gagal dengan kesalahan `unknown option`.2983Sebelum v2.1.248, `claude remote-control` tidak menerima flag-nya sendiri ketika flag global datang terlebih dahulu, dan command gagal dengan kesalahan unknown option.

2798 2984 

2799<h3 id="claude-import-is-not-yet-available-in-this-build">2985<h3 id="claude-import-is-not-yet-available-in-this-build">

2800 claude import belum tersedia dalam build ini2986 claude import belum tersedia dalam build ini

2801</h3>2987</h3>

2802 2988 

2803Anda menjalankan [`claude import`](/docs/id/cli-reference#cli-commands), dan Claude Code menemukan alur impor dimatikan, jadi perintah keluar dengan kode 1 alih-alih memulai impor. Sebelum v2.1.222, build dengan alur impor mati memperlakukan `import` sebagai prompt dan memulai sesi interaktif alih-alih mencetak pesan ini.2989Anda menjalankan [`claude import`](/docs/id/cli-reference#cli-commands), dan Claude Code menemukan alur impor dimatikan, jadi command keluar dengan kode 1 alih-alih memulai impor. Sebelum v2.1.222, build dengan alur impor mati memperlakukan `import` sebagai prompt dan memulai sesi interaktif alih-alih mencetak pesan ini.

2804 2990 

2805```text theme={null}2991```text theme={null}

2806`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.2992`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

2807```2993```

2808 2994 

2809Claude Code mengaktifkan `claude import` melalui flag fitur yang diambilnya dari Anthropic dan disimpan di disk. Pesan ini berarti nilai yang disimpan mati. Penyebabnya biasanya salah satu dari berikut:2995Claude Code mengaktifkan `claude import` melalui feature flag yang diambilnya dari Anthropic dan disimpan di disk. Pesan ini berarti nilai yang disimpan mati. Penyebabnya biasanya salah satu dari berikut:

2810 2996 

2811* Anda belum memulai sesi sejak instalasi, jadi Claude Code belum mengambil flag. `claude import` pertama dapat mencetak ini bahkan ketika fitur tersedia untuk Anda.2997* Anda belum memulai sesi sejak instalasi, jadi Claude Code belum mengambil flag. `claude import` pertama dapat mencetak ini bahkan ketika fitur tersedia untuk Anda.

2812* Anda menggunakan Claude Code melalui Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau Claude Platform di AWS, atau melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway#availability-and-limitations). Claude Code tidak mengambil flag fitur dalam sesi ini, jadi `claude import` tetap tidak tersedia.2998* Anda menggunakan Claude Code melalui Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, atau Claude Platform di AWS, atau melalui [Claude apps gateway](/docs/id/claude-apps-gateway#availability-and-limitations). Claude Code tidak mengambil feature flag dalam sesi ini, jadi `claude import` tetap tidak tersedia.

2813* Anda mengatur `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK`, atau [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars), yang mematikan pengambilan flag fitur, jadi `claude import` tetap tidak tersedia.2999* Anda mengatur `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `DISABLE_GROWTHBOOK`, atau [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/id/env-vars), yang mematikan pengambilan feature flag, jadi `claude import` tetap tidak tersedia.

2814 3000 

2815**Yang harus dilakukan:**3001**Yang harus dilakukan:**

2816 3002 

2817* Pada instalasi segar, mulai `claude`, tunggu sesi dimuat, keluar, dan jalankan `claude import` lagi3003* Pada instalasi segar, mulai `claude`, tunggu sesi dimuat, keluar, dan jalankan `claude import` lagi

2818* Di mana pengambilan flag fitur tetap mati, atur konfigurasi sendiri: tambahkan server MCP dengan [`claude mcp add`](/docs/id/mcp#installing-mcp-servers), dan buat [`CLAUDE.md` files](/docs/id/memory#how-claude-md-files-load), [skills dan commands](/docs/id/skills#where-skills-live), dan [subagents](/docs/id/sub-agents#choose-the-subagent-scope) yang ingin Anda bawa. Pesan juga menyebutkan `~/.claude/settings.json`. Dari konfigurasi yang `claude import` bawa, file itu hanya menyimpan [mode izin](/docs/id/settings-reference#permission-settings); Claude Code tidak membaca server MCP darinya.3004* Di mana pengambilan feature flag tetap mati, atur konfigurasi sendiri: tambahkan server MCP dengan [`claude mcp add`](/docs/id/mcp#installing-mcp-servers), dan buat file [`CLAUDE.md`](/docs/id/memory#how-claude-md-files-load), [skill dan command](/docs/id/skills#where-skills-live), dan [subagent](/docs/id/sub-agents#choose-the-subagent-scope) yang ingin Anda bawa. Pesan juga menamai `~/.claude/settings.json`. Dari konfigurasi yang `claude import` bawa, file itu hanya menyimpan [mode izin](/docs/id/settings-reference#permission-settings); Claude Code tidak membaca server MCP darinya.

2819 3005 

2820<h3 id="could-not-read-claude-code-config">3006<h3 id="could-not-read-claude-code-config">

2821 Tidak dapat membaca konfigurasi Claude Code3007 Tidak dapat membaca konfigurasi Claude Code

2822</h3>3008</h3>

2823 3009 

2824Anda menjalankan [`claude import`](/docs/id/cli-reference#cli-commands) sementara Claude Code tidak dapat menguraikan `~/.claude.json`, file tempat menyimpan login dan status per-proyek Anda. Subperintah membaca file itu untuk memeriksa ketersediaan tetapi tidak menampilkan dialog pemulihan yang ditampilkan sesi interaktif, jadi keluar dengan kode 1. Sebelum v2.1.222, `claude import` dengan file konfigurasi yang tidak dapat dibaca memulai sesi interaktif, yang dialog pemulihannya menangani file.3010Anda menjalankan [`claude import`](/docs/id/cli-reference#cli-commands) sementara Claude Code tidak dapat menguraikan `~/.claude.json`, file tempat menyimpan login dan status per-project Anda. Subcommand membaca file itu untuk memeriksa ketersediaan tetapi tidak menampilkan dialog pemulihan yang sesi interaktif tampilkan, jadi keluar dengan kode 1. Sebelum v2.1.222, `claude import` dengan file konfigurasi yang tidak dapat dibaca memulai sesi interaktif, yang dialog pemulihannya menangani file.

2825 3011 

2826```text theme={null}3012```text theme={null}

2827Could not read Claude Code config — run `claude` with no arguments to recover it.3013Could not read Claude Code config — run `claude` with no arguments to recover it.


2829 3015 

2830**Yang harus dilakukan:**3016**Yang harus dilakukan:**

2831 3017 

2832* Jalankan `claude` tanpa argumen. Claude Code mendeteksi file yang tidak valid dan menawarkan untuk mengatur ulangnya. Kemudian jalankan `claude import` lagi.3018* Jalankan `claude` tanpa argumen. Claude Code mendeteksi file tidak valid dan menawarkan untuk mengatur ulangnya. Kemudian jalankan `claude import` lagi.

2833* Untuk menyimpan edit manual yang Anda buat, perbaiki sintaks JSON di `~/.claude.json` di editor sebagai gantinya, kemudian jalankan kembali `claude import`3019* Untuk menyimpan edit manual yang telah Anda buat, perbaiki sintaks JSON di `~/.claude.json` di editor sebagai gantinya, kemudian jalankan kembali `claude import`

2834 3020 

2835<h3 id="could-not-import-a-server-from-claude-desktop">3021<h3 id="could-not-import-a-server-from-claude-desktop">

2836 Tidak dapat mengimpor server dari Claude Desktop3022 Tidak dapat mengimpor server dari Claude Desktop

2837</h3>3023</h3>

2838 3024 

2839Claude Code tidak dapat menambahkan salah satu server yang Anda pilih di `claude mcp add-from-claude-desktop`. Perintah masih mengimpor server yang dipilih lainnya dan mencetak satu baris per server yang tidak dapat ditambahkan. Sebelum v2.1.205, server pertama yang gagal menghentikan impor dan tidak ada server yang dipilih ditambahkan.3025Claude Code tidak dapat menambahkan salah satu server yang Anda pilih di `claude mcp add-from-claude-desktop`. Command masih mengimpor server yang dipilih lainnya dan mencetak satu baris per server yang tidak dapat ditambahkan. Sebelum v2.1.205, server pertama yang gagal menghentikan impor.

2840 3026 

2841```text theme={null}3027```text theme={null}

2842Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.3028Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.


2850* Tambahkan server itu langsung dengan `claude mcp add` atau `claude mcp add-json` di bawah nama yang valid. Lihat [Import MCP servers from Claude Desktop](/docs/id/mcp#import-mcp-servers-from-claude-desktop).3036* Tambahkan server itu langsung dengan `claude mcp add` atau `claude mcp add-json` di bawah nama yang valid. Lihat [Import MCP servers from Claude Desktop](/docs/id/mcp#import-mcp-servers-from-claude-desktop).

2851 3037 

2852<h3 id="cannot-add-mcp-server-to-the-managed-scope">3038<h3 id="cannot-add-mcp-server-to-the-managed-scope">

2853 Tidak dapat menambahkan server MCP ke cakupan yang dikelola3039 Tidak dapat menambahkan server MCP ke scope yang dikelola

2854</h3>3040</h3>

2855 3041 

2856Anda menjalankan `claude mcp add` atau `claude mcp add-json` dengan `--scope managed`. Cakupan itu menyimpan server yang organisasi Anda sediakan melalui pengaturan yang dikelola [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers). Claude Code membacanya dari pengaturan yang dikelola saja, jadi perintah tidak dapat menulis server ke cakupan itu.3042Anda menjalankan `claude mcp add` atau `claude mcp add-json` dengan `--scope managed`. Scope itu menyimpan server yang organisasi Anda sediakan melalui pengaturan yang dikelola [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers). Claude Code membacanya dari pengaturan yang dikelola saja, jadi command tidak dapat menulis server ke scope itu.

2857 3043 

2858```text theme={null}3044```text theme={null}

2859Cannot add MCP server to scope: managed3045Cannot add MCP server to scope: managed


2861 3047 

2862**Yang harus dilakukan:**3048**Yang harus dilakukan:**

2863 3049 

2864* Tambahkan server ke cakupan yang dapat Anda tulis: `local`, `user`, atau `project`. Tanpa `--scope`, perintah menggunakan `local`. Lihat [MCP installation scopes](/docs/id/mcp#mcp-installation-scopes)3050* Tambahkan server ke scope yang dapat Anda tulis: `local`, `user`, atau `project`. Tanpa `--scope`, command menggunakan `local`. Lihat [MCP installation scopes](/docs/id/mcp#mcp-installation-scopes)

2865* Untuk menyediakan server kepada setiap pengguna di organisasi Anda, tambahkan ke [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) dalam pengaturan yang dikelola yang Anda sebarkan3051* Untuk menyediakan server ke setiap pengguna di organisasi Anda, tambahkan ke [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) dalam pengaturan yang dikelola yang Anda deploy

2866 3052 

2867<h3 id="cant-read-mcp-json">3053<h3 id="cant-read-mcp-json">

2868 Tidak dapat membaca .mcp.json3054 Tidak dapat membaca .mcp.json

2869</h3>3055</h3>

2870 3056 

2871Perintah yang membaca [`.mcp.json`](/docs/id/mcp#project-scope) proyek, seperti `claude mcp add` atau `claude mcp add-json` dengan `--scope project`, atau `claude mcp remove`, menemukan bahwa file di direktori saat ini bukan file biasa atau lebih besar dari 2 MiB, jadi keluar dengan kesalahan ini alih-alih membaca file.3057Command yang membaca [`.mcp.json`](/docs/id/mcp#project-scope) project, seperti `claude mcp add` atau `claude mcp add-json` dengan `--scope project`, atau `claude mcp remove`, menemukan bahwa file di direktori saat ini bukan file reguler atau lebih besar dari 2 MiB, jadi keluar dengan kesalahan ini alih-alih membaca file.

2872 3058 

2873```text theme={null}3059```text theme={null}

2874Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.3060Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

2875```3061```

2876 3062 

2877Sebelum v2.1.257, FIFO di `.mcp.json` membiarkan perintah menunggu selamanya tanpa output, dan symlink ke file perangkat seperti `/dev/zero` menumbuhkan memori sampai proses dibunuh.3063Sebelum v2.1.257, FIFO di `.mcp.json` membiarkan command menunggu selamanya tanpa output, dan symlink ke file perangkat seperti `/dev/zero` menumbuhkan memori sampai proses dibunuh.

2878 3064 

2879**Yang harus dilakukan:**3065**Yang harus dilakukan:**

2880 3066 

2881* Periksa apa yang duduk di `.mcp.json` di direktori saat ini. Ganti dengan file JSON biasa dalam [format cakupan proyek](/docs/id/mcp#project-scope), atau hapus, kemudian jalankan perintah lagi.3067* Periksa apa yang duduk di `.mcp.json` di direktori saat ini. Ganti dengan file JSON biasa dalam [format project-scope](/docs/id/mcp#project-scope), atau hapus, kemudian jalankan command lagi.

2882 3068 

2883<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3069<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

2884 Server adalah Anthropic-hosted dan tidak mendukung OAuth lokal3070 Server adalah Anthropic-hosted dan tidak mendukung OAuth lokal

2885</h3>3071</h3>

2886 3072 

2887Anda memulai sign-in untuk server MCP yang URL-nya menunjuk ke host konektor yang dihosting Anthropic yang mengautentikasi melalui penyedia identitas pihak ketiga. Host ini termasuk `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com`, dan `gcal.mcp.claude.com`. Claude Code menolak untuk memulai alur OAuth lokal untuk host ini dari panel `/mcp` dan `claude mcp login`, karena [sign-in mereka hanya berfungsi melalui claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai).3073Anda memulai sign-in untuk server MCP yang URL-nya menunjuk ke host connector yang dihosting Anthropic yang mengautentikasi melalui penyedia identitas pihak ketiga. Host ini termasuk `microsoft365.mcp.claude.com`, `gmail.mcp.claude.com`, dan `gcal.mcp.claude.com`. Claude Code menolak untuk memulai alur OAuth lokal untuk host ini dari panel `/mcp` dan `claude mcp login`, karena [sign-in mereka hanya bekerja melalui claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai).

2888 3074 

2889```text theme={null}3075```text theme={null}

2890"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.3076"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.

2891```3077```

2892 3078 

2893Claude Code mencocokkan host ini berdasarkan URL, jadi pesan muncul ketika server yang Anda tambahkan dengan `claude mcp add` atau di `.mcp.json` menunjuk ke salah satunya.3079Claude Code mencocokkan host ini dengan URL, jadi pesan muncul ketika server yang Anda tambahkan dengan `claude mcp add` atau di `.mcp.json` menunjuk ke salah satunya.

2894 3080 

2895**Yang harus dilakukan:**3081**Yang harus dilakukan:**

2896 3082 

2897* Hapus entri Anda dengan `claude mcp remove <name>`, sehingga tidak dapat menyembunyikan konektor claude.ai di URL yang sama3083* Hapus entri Anda dengan `claude mcp remove <name>`, jadi tidak dapat menyembunyikan connector claude.ai di URL yang sama

2898* Setelah menghapusnya, hubungkan layanan di [claude.ai/customize/connectors](https://claude.ai/customize/connectors), sambil masuk ke akun yang Anda gunakan di Claude Code. Setelah terhubung, [konektor muncul di Claude Code secara otomatis](/docs/id/mcp#use-mcp-servers-from-claude-ai) jika metode autentikasi aktif Anda adalah login langganan claude.ai3084* Setelah menghapusnya, hubungkan layanan di [claude.ai/customize/connectors](https://claude.ai/customize/connectors), saat masuk ke akun yang Anda gunakan di Claude Code. Setelah terhubung, [connector muncul di Claude Code secara otomatis](/docs/id/mcp#use-mcp-servers-from-claude-ai) jika metode autentikasi aktif Anda adalah login langganan claude.ai

2899 3085 

2900<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">3086<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">

2901 Server menolak header Authorization yang dicetak oleh headersHelper yang dikonfigurasi3087 Server menolak header Authorization yang dicetak oleh headersHelper yang dikonfigurasi

2902</h3>3088</h3>

2903 3089 

2904Server MCP yang [`headersHelper`](/docs/id/mcp#use-dynamic-headers-for-custom-authentication)-nya memasok header `Authorization` menjawab koneksi dengan HTTP 401 atau 403, jadi Claude Code melaporkan koneksi sebagai gagal. Karena helper memasok header `Authorization`, Claude Code [tidak kembali ke OAuth](/docs/id/mcp#authenticate-with-remote-mcp-servers) untuk server:3090Server MCP yang [`headersHelper`](/docs/id/mcp#use-dynamic-headers-for-custom-authentication)-nya memasok header `Authorization` menjawab koneksi dengan HTTP 401 atau 403, jadi Claude Code melaporkan koneksi sebagai gagal. Karena helper memasok header `Authorization`, Claude Code [tidak jatuh kembali ke OAuth](/docs/id/mcp#authenticate-with-remote-mcp-servers) untuk server:

2905 3091 

2906```text theme={null}3092```text theme={null}

2907Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.3093Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

2908```3094```

2909 3095 

2910Claude Code menjalankan kembali helper pada setiap upaya koneksi, jadi retry setelah penolakan sementara, seperti perlombaan rotasi token, dapat berhasil dengan kredensial segar.3096Claude Code menjalankan kembali helper pada setiap upaya koneksi, jadi retry setelah penolakan sementara, seperti race rotasi token, dapat berhasil dengan kredensial segar.

2911 3097 

2912**Yang harus dilakukan:**3098**Yang harus dilakukan:**

2913 3099 

2914* Jalankan perintah `headersHelper` sendiri dengan cara Claude Code menjalankannya: dari [direktori Claude Code menjalankannya](/docs/id/mcp#where-the-helper-runs), dengan [variabel lingkungan Claude Code mengaturnya](/docs/id/mcp#use-dynamic-headers-for-custom-authentication), dan tanpa [variabel kredensial Claude Code menghapusnya](/docs/id/mcp#which-variables-a-helper-can-read) untuk server dari `.mcp.json` proyek, plugin, atau file agen proyek. Periksa bahwa itu mencetak nilai `Authorization` yang titik akhir server terima3100* Jalankan command `headersHelper` sendiri dengan cara Claude Code menjalankannya: dari [direktori Claude Code menjalankannya](/docs/id/mcp#where-the-helper-runs), dengan [variabel lingkungan Claude Code menetapkannya](/docs/id/mcp#use-dynamic-headers-for-custom-authentication), dan tanpa [variabel kredensial Claude Code menghapusnya](/docs/id/mcp#which-variables-a-helper-can-read) untuk server dari `.mcp.json` project, plugin, atau file agent project. Periksa bahwa mencetak nilai `Authorization` yang endpoint server terima

2915* Setelah memperbaiki helper atau sumber kredensialnya, pilih server di `/mcp` dan pilih **Reconnect**3101* Setelah memperbaiki helper atau sumber kredensialnya, pilih server di `/mcp` dan pilih **Reconnect**

2916 3102 

2917Sebelum v2.1.248, Claude Code menjalankan penemuan OAuth untuk server yang helper-nya memasok header `Authorization`. Penemuan itu dapat gagal dengan `Incompatible auth server: does not support dynamic client registration` alih-alih melaporkan kredensial yang ditolak.3103Sebelum v2.1.248, Claude Code menjalankan penemuan OAuth untuk server yang helper-nya memasok header `Authorization`. Penemuan itu dapat gagal dengan `Incompatible auth server: does not support dynamic client registration` alih-alih melaporkan kredensial yang ditolak.

2918 3104 

2919<h3 id="mcp-permission-prompt-tool-not-found">3105<h3 id="mcp-permission-prompt-tool-not-found">

2920 Alat prompt izin MCP tidak ditemukan3106 Tool prompt izin MCP tidak ditemukan

2921</h3>3107</h3>

2922 3108 

2923Alat yang Anda berikan ke [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tidak ada di antara alat MCP yang terhubung ketika run pertama kali memerlukan keputusan izin, baik karena server-nya tidak pernah terhubung atau karena tidak ada server yang terhubung yang mengekspos alat dengan nama itu. Claude Code masih mengirimkan prompt Anda: run [non-interaktif](/docs/id/headless) keluar dengan kesalahan ini, dan kode keluar 1, pada panggilan alat pertama yang memerlukan persetujuan, jadi tidak menghasilkan jawaban meskipun permintaan dibuat. Sebelum prompt pertama, Claude Code menunggu hingga timeout koneksi per-server 30 detik yang ditetapkan oleh [`MCP_TIMEOUT`](/docs/id/env-vars) untuk server itu terhubung. Sebelum v2.1.206, startup tidak menunggu server selesai terhubung, jadi server yang lambat dimulai tetapi sehat menghasilkan kesalahan ini juga.3109Tool yang Anda berikan ke [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tidak ada di antara tool MCP yang terhubung ketika run pertama kali memerlukan keputusan izin, baik karena server-nya tidak pernah terhubung atau karena tidak ada server yang terhubung yang mengekspos tool dengan nama itu. Claude Code masih mengirim prompt Anda: run [non-interaktif](/docs/id/headless) keluar dengan kesalahan ini, dan kode keluar 1, pada panggilan tool pertama, jadi menghasilkan tidak ada jawaban meskipun permintaan dibuat. Sebelum prompt pertama, Claude Code menunggu hingga timeout koneksi per-server 30 detik yang ditetapkan oleh [`MCP_TIMEOUT`](/docs/id/env-vars) untuk server itu terhubung. Sebelum v2.1.206, startup tidak menunggu server selesai terhubung, jadi server yang lambat dimulai tetapi sehat menghasilkan kesalahan ini juga.

2924 3110 

2925```text theme={null}3111```text theme={null}

2926Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none3112Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

2927```3113```

2928 3114 

2929Daftar setelah `Available MCP tools:` menyebutkan alat MCP yang terhubung ketika tunggu berakhir.3115Daftar setelah `Available MCP tools:` menamai tool MCP yang terhubung.

2930 3116 

2931**Yang harus dilakukan:**3117**Yang harus dilakukan:**

2932 3118 

2933* Periksa bahwa server dimulai dan tetap terhubung: jalankan `claude mcp list` di direktori yang sama dan konfirmkan server terdaftar sebagai terhubung3119* Periksa bahwa server dimulai dan tetap terhubung: jalankan `claude mcp list` di direktori yang sama dan konfirmasi server terdaftar sebagai terhubung

2934* Konfirmkan nama alat cocok dengan nama `mcp__<server>__<tool>` yang server ekspos3120* Konfirmkan nama tool cocok dengan nama `mcp__<server>__<tool>` yang server ekspos

2935* Jika server memerlukan lebih lama dari 30 detik untuk dimulai, naikkan [`MCP_TIMEOUT`](/docs/id/env-vars)3121* Jika server memerlukan lebih lama dari 30 detik untuk dimulai, naikkan [`MCP_TIMEOUT`](/docs/id/env-vars)

2936 3122 

2937<h3 id="oauth-callback-port-is-already-in-use">3123<h3 id="oauth-callback-port-is-already-in-use">

2938 Port callback OAuth sudah digunakan3124 Port callback OAuth sudah digunakan

2939</h3>3125</h3>

2940 3126 

2941Ketika Anda masuk ke server MCP jarak jauh dengan OAuth, Claude Code memulai pendengar lokal untuk menerima callback sign-in. Jika port yang pendengar itu butuhkan dipegang oleh proses lain, sign-in gagal dengan pesan ini. Ini sebagian besar terjadi dengan [port callback tetap](/docs/id/mcp#use-a-fixed-oauth-callback-port) yang ditetapkan melalui variabel [`MCP_OAUTH_CALLBACK_PORT`](/docs/id/env-vars) atau `--callback-port`, karena tanpa itu Claude Code memilih port yang tersedia.3127Ketika Anda masuk ke server MCP jarak jauh dengan OAuth, Claude Code memulai pendengar lokal untuk menerima callback sign-in. Jika port yang pendengar itu butuhkan dipegang oleh proses lain, sign-in gagal dengan pesan ini. Ini sebagian besar terjadi dengan [port callback tetap](/docs/id/mcp#use-a-fixed-oauth-callback-port) yang ditetapkan melalui variabel [`MCP_OAUTH_CALLBACK_PORT`](/docs/id/env-vars) atau `--callback-port`, karena tanpa satu Claude Code memilih port yang tersedia.

2942 3128 

2943```text theme={null}3129```text theme={null}

2944OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.3130OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.

2945```3131```

2946 3132 

2947Di Windows, perintah yang disarankan adalah `netstat -ano | findstr :<port>` sebagai gantinya.3133Di Windows, command yang disarankan adalah `netstat -ano | findstr :<port>` sebagai gantinya.

2948 3134 

2949**Yang harus dilakukan:**3135**Yang harus dilakukan:**

2950 3136 

2951* Jalankan perintah dari pesan untuk menemukan proses yang memegang port, dan hentikan atau tunggu selesai3137* Jalankan command dari pesan untuk menemukan proses yang memegang port, dan hentikan atau tunggu selesai

2952* Jika program lain memerlukan port itu secara permanen, daftarkan URI pengalihan berbeda dengan server dan atur port-nya dengan `MCP_OAUTH_CALLBACK_PORT` atau `--callback-port`, mana pun yang Anda gunakan3138* Jika program lain memerlukan port itu secara permanen, daftarkan URI redirect berbeda dengan server dan atur port-nya dengan `MCP_OAUTH_CALLBACK_PORT` atau `--callback-port`, mana pun yang Anda gunakan

2953* Kemudian mulai sign-in lagi, misalnya dengan memilih server di `/mcp`3139* Kemudian mulai sign-in lagi, misalnya dengan memilih server di `/mcp`

2954 3140 

2955<h3 id="no-available-ports-for-oauth-redirect">3141<h3 id="no-available-ports-for-oauth-redirect">

2956 Tidak ada port yang tersedia untuk pengalihan OAuth3142 Tidak ada port yang tersedia untuk redirect OAuth

2957</h3>3143</h3>

2958 3144 

2959Ketika Anda masuk ke server MCP jarak jauh dengan [OAuth](/docs/id/mcp#authenticate-with-remote-mcp-servers), Claude Code memulai pendengar lokal untuk menerima callback sign-in. Sign-in gagal dengan pesan ini ketika Claude Code tidak dapat mengikat port lokal untuk itu. Sesuatu di mesin mencegah mendengarkan di `127.0.0.1`, misalnya perangkat lunak keamanan atau kebijakan sandbox yang menolak pendengar lokal.3145Ketika Anda masuk ke server MCP jarak jauh dengan [OAuth](/docs/id/mcp#authenticate-with-remote-mcp-servers), Claude Code memulai pendengar lokal untuk menerima callback sign-in. Sign-in gagal dengan pesan ini ketika Claude Code tidak dapat mengikat port lokal untuk itu. Sesuatu di mesin mencegah mendengarkan di `127.0.0.1`, misalnya software keamanan atau kebijakan sandbox yang menolak pendengar lokal.

2960 3146 

2961```text theme={null}3147```text theme={null}

2962No available ports for OAuth redirect3148No available ports for OAuth redirect

2963```3149```

2964 3150 

2965Sebelum v2.1.268, Claude Code tidak kembali ke port yang ditugaskan sistem operasi, jadi pesan juga muncul ketika hanya port yang dipilih sendiri tidak dapat diikat. Itu dapat terjadi pada host Windows di mana Hyper-V memesan rentang port yang mencakup port yang Claude Code pilih dari.3151Sebelum v2.1.268, Claude Code tidak jatuh kembali ke port yang ditugaskan sistem operasi, jadi pesan juga muncul ketika hanya port yang dipilih sendiri tidak dapat diikat. Itu dapat terjadi pada host Windows di mana Hyper-V memesan rentang port yang mencakup port yang Claude Code pilih dari.

2966 3152 

2967**Yang harus dilakukan:**3153**Yang harus dilakukan:**

2968 3154 

2969* Periksa apakah perangkat lunak keamanan atau kebijakan sandbox memblokir proses dari mendengarkan di `127.0.0.1`, dan izinkan Claude Code mengikat port lokal3155* Periksa apakah software keamanan atau kebijakan sandbox memblokir proses dari mendengarkan di `127.0.0.1`, dan izinkan Claude Code mengikat port lokal

2970* Kemudian mulai sign-in lagi, misalnya dengan memilih server di `/mcp`3156* Kemudian mulai sign-in lagi, misalnya dengan memilih server di `/mcp`

2971 3157 

2972<h3 id="security-review-fails-without-origin-head">3158<h3 id="security-review-fails-without-origin-head">

2973 /security-review gagal tanpa origin/HEAD3159 /security-review gagal tanpa origin/HEAD

2974</h3>3160</h3>

2975 3161 

2976[`/security-review`](/docs/id/commands#all-commands) membangun konteks review dengan membedakan cabang Anda terhadap `origin/HEAD`, ref lokal yang mencatat cabang mana yang default di remote `origin` Anda. Ketika ref itu tidak ada, perintah git yang mengumpulkan diff gagal dan review berhenti sebelum dimulai.3162[`/security-review`](/docs/id/commands#all-commands) membangun konteks review dengan membedakan branch Anda terhadap `origin/HEAD`, ref lokal yang mencatat branch mana yang default di remote `origin` Anda. Ketika ref itu tidak ada, command git yang mengumpulkan diff gagal dan review berhenti sebelum dimulai.

2977 3163 

2978```text theme={null}3164```text theme={null}

2979Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3165Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


2982'git <command> [<revision>...] -- [<file>...]'3168'git <command> [<revision>...] -- [<file>...]'

2983```3169```

2984 3170 

2985Pesan dapat mengutip `git log` atau `git diff` berbeda sebagai gantinya. Git membuat `origin/HEAD` hanya ketika remote mengiklankan cabang default dan refspec fetch Anda mencakupnya, yang `git clone` penuh dari remote dengan commit lakukan. Ref hilang dalam setup ini:3171Pesan dapat mengutip `git log` atau `git diff` berbeda sebagai gantinya. Git membuat `origin/HEAD` hanya ketika remote mengiklankan branch default dan refspec fetch Anda mencakupnya, yang full `git clone` dari remote dengan commit lakukan. Ref hilang dalam setup ini:

2986 3172 

2987* Checkout single-branch atau CI, yang mengambil refspec terlalu sempit3173* Single-branch atau CI checkout, yang mengambil refspec terlalu sempit

2988* Remote yang server-side HEAD menunjuk ke cabang yang tidak ada yang dorong3174* Remote yang server-side HEAD menunjuk ke branch yang tidak ada yang dorong

2989* Repository tanpa remote `origin`, atau yang tidak pernah Anda ambil3175* Repository tanpa remote `origin`, atau yang tidak pernah Anda ambil

2990 3176 

2991Claude Code menampilkan kesalahan yang sama untuk skill apa pun yang [menyuntikkan konteks dinamis](/docs/id/skills#when-an-injected-command-fails), dan perintah yang disuntikkan gagal membatalkan invokasi skill itu. Dua string saudara api sebelum perintah berjalan sama sekali:3177Claude Code menunjukkan kesalahan yang sama untuk skill apa pun yang [menyuntikkan konteks dinamis](/docs/id/skills#when-an-injected-command-fails), dan command yang disuntikkan gagal menghentikan invokasi skill itu. Dua string sibling api sebelum command berjalan sama sekali:

2992 3178 

2993* `Shell command permission check failed for pattern "..."`: pemeriksaan izin perintah tidak mengizinkannya. [Permission checks on injected commands](/docs/id/skills#permission-checks-on-injected-commands) mencakup hasil mana yang membatalkan dalam setiap mode izin dan cara pra-menyetujui perintah dengan `allowed-tools`3179* `Shell command permission check failed for pattern "..."`: pemeriksaan izin command tidak mengizinkannya. [Permission checks on injected commands](/docs/id/skills#permission-checks-on-injected-commands) mencakup hasil mana yang menghentikan dalam setiap mode izin dan cara pre-approve command dengan `allowed-tools`

2994* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter skill menuntut bash di mesin tanpanya. Instal Git untuk Windows atau ubah frontmatter ke `shell: powershell`. Lihat [How injected commands run](/docs/id/skills#how-injected-commands-run)3180* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter skill menuntut bash di mesin tanpanya. Instal Git untuk Windows atau ubah frontmatter ke `shell: powershell`. Lihat [How injected commands run](/docs/id/skills#how-injected-commands-run)

2995 3181 

2996**Yang harus dilakukan:**3182**Yang harus dilakukan:**

2997 3183 

2998* Buat ref dengan menyebutkan cabang default remote Anda: `git remote set-head origin <default-branch>`. Ini berfungsi kapan pun ref pelacakan lokal `origin/<default-branch>` ada. Jika tidak, seperti dalam klon single-branch, ambil cabang terlebih dahulu: jalankan `git remote set-branches --add origin <branch>`, kemudian `git fetch origin`, kemudian jalankan kembali perintah set-head. Jalankan kembali `/security-review`.3184* Buat ref dengan menamai branch default remote Anda: `git remote set-head origin <default-branch>`. Ini bekerja kapan pun ref tracking lokal `origin/<default-branch>` ada. Jika tidak, seperti dalam clone single-branch, ambil branch terlebih dahulu: jalankan `git remote set-branches --add origin <branch>`, kemudian `git fetch origin`, kemudian jalankan kembali command set-head. Jalankan kembali `/security-review`.

2999* Jika Anda lebih suka tidak menyebutkan cabang, jalankan `git fetch origin` dan kemudian `git remote set-head origin --auto`, yang menanyakan remote cabang mana yang default-nya. Gagal dengan `error: Cannot determine remote HEAD` ketika remote tidak mengiklankan cabang default, karena kosong atau HEAD-nya menunjuk ke cabang yang tidak ada yang dorong; sebutkan cabang secara eksplisit sebagai gantinya. Gagal dengan `error: Not a valid ref` ketika klon Anda tidak mengambil cabang itu; perluas refspec seperti di atas terlebih dahulu.3185* Jika Anda lebih suka tidak menamai branch, jalankan `git fetch origin` dan kemudian `git remote set-head origin --auto`, yang menanyakan remote branch mana yang default-nya. Gagal dengan `error: Cannot determine remote HEAD` ketika remote tidak mengiklankan branch default, karena kosong atau HEAD-nya menunjuk ke branch yang tidak ada yang dorong; namai branch secara eksplisit sebagai gantinya. Gagal dengan `error: Not a valid ref` ketika clone Anda tidak mengambil branch itu; perluas refspec seperti di atas terlebih dahulu.

3000* Jika repository tidak memiliki remote, tambahkan dengan `git remote add origin <url>` dan ambil sebelum membuat ref. Jika remote kosong, dorong cabang Anda terlebih dahulu dengan `git push -u origin HEAD` dan sebutkan cabang itu dalam perintah set-head; `origin/HEAD` kemudian menunjuk ke cabang yang baru saja Anda dorong, jadi `/security-review` melihat diff kosong sampai cabang menyimpang darinya.3186* Jika repository tidak memiliki remote, tambahkan dengan `git remote add origin <url>` dan ambil sebelum membuat ref. Jika remote kosong, dorong branch Anda terlebih dahulu dengan `git push -u origin HEAD` dan namai branch itu dalam command set-head; `origin/HEAD` kemudian menunjuk ke branch yang baru saja Anda dorong, jadi `/security-review` melihat diff kosong sampai branch menyimpang darinya.

3001 3187 

3002<h3 id="input-must-be-provided-when-using-print">3188<h3 id="input-must-be-provided-when-using-print">

3003 Input harus disediakan saat menggunakan --print3189 Input harus disediakan saat menggunakan `--print`

3004</h3>3190</h3>

3005 3191 

3006`claude` telanjang memerlukan stdout menjadi terminal untuk memulai UI interaktif. Ketika stdout dialihkan, atau konsol bukan terminal nyata, seperti PowerShell ISE dan beberapa panel output IDE, `claude` berjalan [non-interaktif](/docs/id/headless) sebagai gantinya. Itu adalah mode yang sama dengan `claude -p`, yang memerlukan prompt, jadi pesan menyebutkan `--print` bahkan ketika Anda tidak melewatkan flag. Melewatkan `-p`/`--print` tanpa prompt dan tidak ada yang disalurkan di stdin menghasilkan kesalahan yang sama di mana pun.3192Bare `claude` memerlukan stdout menjadi terminal untuk memulai UI interaktif. Ketika stdout dialihkan, atau konsol bukan terminal nyata, seperti PowerShell ISE dan beberapa pane output IDE, `claude` berjalan [non-interaktif](/docs/id/headless) sebagai gantinya. Itu adalah mode yang sama dengan `claude -p`, yang memerlukan prompt, jadi pesan menamai `--print` bahkan ketika Anda tidak melewatkan flag. Melewatkan `-p`/`--print` tanpa prompt dan tidak ada yang dipipa di stdin menghasilkan kesalahan yang sama di mana pun.

3007 3193 

3008```text theme={null}3194```text theme={null}

3009Error: Input must be provided either through stdin or as a prompt argument when using --print3195Error: Input must be provided either through stdin or as a prompt argument when using --print


3011 3197 

3012**Yang harus dilakukan:**3198**Yang harus dilakukan:**

3013 3199 

3014* Untuk penggunaan interaktif, jalankan `claude` di terminal nyata: Windows Terminal atau konsol PowerShell daripada ISE, dan terminal terintegrasi IDE Anda daripada panel output3200* Untuk penggunaan interaktif, jalankan `claude` di terminal nyata: Windows Terminal atau konsol PowerShell daripada ISE, dan terminal terintegrasi IDE Anda daripada pane output

3015* Untuk penggunaan satu kali, berikan prompt: `claude -p "your question"`, atau salurkan dengan `echo "your question" | claude -p`3201* Untuk penggunaan satu kali, berikan prompt: `claude -p "your question"`, atau pipanya dengan `echo "your question" | claude -p`

3016 3202 

3017<h3 id="input-contained-only-whitespace">3203<h3 id="input-contained-only-whitespace">

3018 Input hanya berisi whitespace3204 Input hanya berisi whitespace

3019</h3>3205</h3>

3020 3206 

3021Dalam [mode non-interaktif](/docs/id/headless), Claude Code menolak prompt yang terdiri sepenuhnya dari spasi, tab, atau baris baru alih-alih mengirimnya, karena API menolak pesan tanpa teks yang terlihat. Pesan mana yang Anda lihat tergantung di mana prompt kosong berasal:3207Dalam [mode non-interaktif](/docs/id/headless), Claude Code menolak prompt yang terdiri sepenuhnya dari spasi, tab, atau newline alih-alih mengirimnya, karena API menolak pesan tanpa teks terlihat. Pesan mana yang Anda lihat tergantung di mana prompt kosong berasal:

3022 3208 

3023* **Argumen prompt atau stdin yang disalurkan untuk `claude -p`**: `claude` keluar dengan `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`3209* **Argumen prompt atau stdin yang dipipa untuk `claude -p`**: `claude` keluar dengan `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print`

3024* **Pesan yang dikirimkan ke sesi `--input-format stream-json` atau [Agent SDK](/docs/id/agent-sdk/overview) yang berjalan**: Claude Code mengakhiri giliran tanpa memanggil model dan sesi tetap dapat digunakan. Penolakan tiba sebagai pesan informatif dan sebagai teks hasil giliran: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`3210* **Pesan yang dikirimkan ke sesi `--input-format stream-json` atau [Agent SDK](/docs/id/agent-sdk/overview) yang berjalan**: Claude Code mengakhiri giliran tanpa memanggil model dan sesi tetap dapat digunakan. Penolakan tiba sebagai pesan informatif dan sebagai teks hasil giliran: `Blank prompt — the message was only whitespace, so nothing was sent to the model.`

3025 3211 

3026Sebelum v2.1.229, Claude Code mengirimkan pesan whitespace-only ke API, yang menolak permintaan dengan kesalahan 400.3212Sebelum v2.1.229, Claude Code mengirim pesan whitespace-only ke API, yang menolak permintaan dengan kesalahan 400.

3027 3213 

3028**Yang harus dilakukan:**3214**Yang harus dilakukan:**

3029 3215 

3030* Sertakan teks yang terlihat dalam prompt. Jika skrip membangun prompt dari variabel atau file, periksa bahwa sumber tidak kosong sebelum memanggil Claude Code.3216* Sertakan teks terlihat dalam prompt. Jika script membangun prompt dari variabel atau file, periksa bahwa sumber tidak kosong sebelum memanggil Claude Code.

3031 3217 

3032<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">3218<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">

3033 input stream-json membawa lebih dari 256M karakter tanpa baris baru3219 stream-json input membawa lebih dari 256M karakter tanpa newline

3034</h3>3220</h3>

3035 3221 

3036Program Anda mengirim lebih dari 268.435.456 karakter di stdin tanpa baris baru ke run `claude -p --input-format stream-json`, jadi Claude Code mencetak kesalahan ini ke stderr dan keluar dengan kode 1 alih-alih membuffer input lebih lanjut. Pesan menyatakan anggaran itu sebagai `256M`. Sebelum v2.1.257, Claude Code membuffer input seperti itu tanpa batas, menumbuhkan memori sampai proses mogok atau dibunuh.3222Program Anda mengirim lebih dari 268.435.456 karakter di stdin tanpa newline ke run `claude -p --input-format stream-json`, jadi Claude Code mencetak kesalahan ini ke stderr dan keluar dengan kode 1 alih-alih membuffer lebih banyak input. Pesan menyatakan anggaran itu sebagai `256M`. Sebelum v2.1.257, Claude Code membuffer input seperti itu tanpa batas, menumbuhkan memori sampai proses mogok atau dibunuh.

3037 3223 

3038```text theme={null}3224```text theme={null}

3039Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.3225Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

3040```3226```

3041 3227 

3042Input sepanjang ini tanpa baris baru biasanya berarti produsen bukan produsen stream-json sama sekali, seperti file biner atau output log biasa yang disalurkan secara tidak sengaja. Pesan tunggal di atas anggaran gagal pemeriksaan yang sama.3228Input sepanjang ini tanpa newline biasanya berarti producer bukan producer stream-json sama sekali, seperti file biner atau output log biasa yang dipipa secara tidak sengaja. Pesan tunggal di atas anggaran gagal pemeriksaan yang sama.

3043 3229 

3044**Yang harus dilakukan:**3230**Yang harus dilakukan:**

3045 3231 

3046* Periksa apa yang disalurkan ke stdin. Dengan [`--input-format stream-json`](/docs/id/cli-reference#cli-flags), setiap pesan harus satu baris JSON yang diakhiri baris baru3232* Periksa apa yang dipipa ke stdin. Dengan [`--input-format stream-json`](/docs/id/cli-reference#cli-flags), setiap pesan harus satu baris JSON yang diakhiri newline

3047* Untuk mengirim teks biasa sebagai gantinya, lepaskan `--input-format stream-json`; `claude -p` membaca prompt teks biasa dari stdin secara default3233* Untuk mengirim teks biasa sebagai gantinya, hilangkan `--input-format stream-json`; `claude -p` membaca prompt teks biasa dari stdin secara default

3048 3234 

3049<h3 id="unknown-command">3235<h3 id="unknown-command">

3050 Perintah tidak dikenal3236 Perintah tidak dikenal

3051</h3>3237</h3>

3052 3238 

3053Dalam sesi terminal interaktif, Anda mengirimkan nama `/` yang tidak cocok dengan perintah apa pun dalam sesi ini, jadi Claude Code melaporkan nama alih-alih menjalankan apa pun:3239Dalam sesi terminal interaktif, Anda mengirimkan nama `/` yang tidak cocok dengan command apa pun dalam sesi ini, jadi Claude Code melaporkan nama alih-alih menjalankan apa pun:

3054 3240 

3055```text theme={null}3241```text theme={null}

3056Unknown command: /hepl. Did you mean /help?3242Unknown command: /hepl. Did you mean /help?

3057```3243```

3058 3244 

3059Claude Code menyarankan nama perintah atau alias terdekat yang menu daftar dalam sesi ini. Ketika tidak ada yang dekat, pesan berakhir setelah nama. Penyebabnya biasanya salah satu dari berikut:3245Claude Code menyarankan nama command atau alias terdekat yang menu daftarkan dalam sesi ini. Ketika tidak ada yang dekat, pesan berakhir setelah nama. Penyebabnya biasanya salah satu dari berikut:

3060 3246 

3061* Typo, seperti `/hepl` untuk `/help`. [How the command menu matches what you type](/docs/id/commands#how-the-command-menu-matches-what-you-type) mencakup memilih kecocokan dekat sebelum Anda kirimkan3247* Typo, seperti `/hepl` untuk `/help`. [How the command menu matches what you type](/docs/id/commands#how-the-command-menu-matches-what-you-type) mencakup memilih kecocokan dekat sebelum Anda kirimkan

3062* Perintah yang ada tetapi tidak tersedia dalam sesi ini karena persyaratan tidak terpenuhi, seperti platform, rencana, atau metode autentikasi Anda. Entri pemecahan masalah untuk [`/web-setup`](/docs/id/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) dan [`/schedule`](/docs/id/routines#schedule-returns-unknown-command) memandu dua kasus umum. Beberapa perintah menjawab dengan pesan mereka sendiri ketika kebijakan organisasi Anda menonaktifkannya, seperti [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3248* Command yang ada tetapi tidak tersedia dalam sesi ini karena persyaratan tidak terpenuhi, seperti platform, plan, atau metode autentikasi Anda. Entri troubleshooting untuk [`/web-setup`](/docs/id/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) dan [`/schedule`](/docs/id/routines#schedule-returns-unknown-command) berjalan melalui dua kasus umum. Beberapa command menjawab dengan pesan mereka sendiri ketika kebijakan organisasi Anda menonaktifkannya, seperti [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

3063* Perintah dari [plugin](/docs/id/plugins/overview) atau [server MCP](/docs/id/mcp#use-mcp-prompts-as-commands) yang tidak diinstal atau terhubung dalam sesi ini3249* Command dari [plugin](/docs/id/plugins/overview) atau [server MCP](/docs/id/mcp#use-mcp-prompts-as-commands) yang tidak diinstal atau terhubung dalam sesi ini

3064 3250 

3065Claude Code menjawab nama `/` yang tidak cocok dengan cara ini hanya dalam sesi terminal interaktif. Dalam setiap sesi lain, mengirimkan prompt ke Claude sebagai pesan normal sebagai gantinya, dengan catatan bahwa perintah tidak berjalan dan daftar perintah Claude dapat jalankan dalam sesi. Sesi itu termasuk:3251Claude Code menjawab nama `/` yang tidak cocok dengan cara ini hanya dalam sesi terminal interaktif. Dalam setiap sesi lain, mengirim prompt ke Claude sebagai pesan normal sebagai gantinya, dengan catatan bahwa command tidak berjalan dan daftar command yang Claude dapat jalankan dalam sesi. Sesi tersebut termasuk:

3066 3252 

3067* run `-p`3253* Run `-p`

3068* Aplikasi [Agent SDK](/docs/id/agent-sdk/overview)3254* Aplikasi [Agent SDK](/docs/id/agent-sdk/overview)

3069* Tab Kode dari [Desktop app](/docs/id/desktop)3255* Tab Code dari [Desktop app](/docs/id/desktop)

3070* Panel chat dari [VS Code extension](/docs/id/vs-code)3256* Panel chat dari [VS Code extension](/docs/id/vs-code)

3071* [Sesi cloud](/docs/id/claude-code-on-the-web) dan [routines](/docs/id/routines)3257* [Sesi cloud](/docs/id/claude-code-on-the-web) dan [routine](/docs/id/routines)

3072 3258 

3073Untuk perintah bawaan yang tidak dapat berjalan dalam salah satu sesi itu, Claude Code masih menjawab bahwa perintah tidak tersedia alih-alih mengirimnya ke Claude. Sebelum v2.1.274, hanya sesi cloud dan routines yang mengirimkan nama yang tidak cocok ke Claude. Sebelum v2.1.273, mereka menjawab `Unknown command` juga.3259Untuk command built-in yang tidak dapat berjalan dalam salah satu sesi itu, Claude Code masih menjawab bahwa command tidak tersedia alih-alih mengirimnya ke Claude. Sebelum v2.1.274, hanya sesi cloud dan routine yang mengirim nama yang tidak cocok ke Claude. Sebelum v2.1.273, mereka menjawab `Unknown command` juga.

3074 3260 

3075Claude Code tidak memperlakukan setiap prompt yang dimulai dengan `/` sebagai perintah. Mengirimkan prompt ke Claude sebagai pesan normal ketika kata pertama setelah `/` dimulai dengan tanda baca, seperti `/--` yang membuka komentar doc Lean, atau adalah jalur seperti `/var/log/syslog`.3261Claude Code tidak memperlakukan setiap prompt yang dimulai dengan `/` sebagai command. Mengirim prompt ke Claude sebagai pesan normal ketika kata pertama setelah `/` dimulai dengan tanda baca, seperti `/--` yang membuka komentar doc Lean, atau adalah path seperti `/var/log/syslog`.

3076 3262 

3077Sebelum v2.1.236, jika Anda menekan `Enter` sementara menu perintah mencantumkan kecocokan dekat untuk nama yang Anda ketik, Claude Code menjalankan kecocokan itu, jadi typo seperti `/hepl` menjalankan `/help` alih-alih menghasilkan pesan ini.3263Sebelum v2.1.236, jika Anda menekan `Enter` sementara menu command mencantumkan kecocokan dekat untuk nama yang Anda ketik, Claude Code menjalankan kecocokan itu, jadi typo seperti `/hepl` menjalankan `/help` alih-alih menghasilkan pesan ini.

3078 3264 

3079**Yang harus dilakukan:**3265**Yang harus dilakukan:**

3080 3266 

3081* Jalankan nama yang disarankan, atau ketik `/` diikuti bagian dari nama untuk melihat apa yang tersedia dalam sesi ini3267* Jalankan nama yang disarankan, atau ketik `/` diikuti bagian dari nama untuk melihat apa yang tersedia dalam sesi ini

3082* Jika Claude Code melaporkan perintah yang didokumentasikan sebagai tidak dikenal, periksa barisnya dalam [referensi perintah](/docs/id/commands) untuk persyaratan yang disebutkan3268* Jika Claude Code melaporkan command yang didokumentasikan sebagai tidak dikenal, periksa barisnya dalam [referensi command](/docs/id/commands) untuk persyaratan yang dinamainya

3083 3269 

3084<h3 id="diff-is-too-large-for-ultrareview">3270<h3 id="diff-is-too-large-for-ultrareview">

3085 Diff terlalu besar untuk ultrareview3271 Diff terlalu besar untuk ultrareview

3086</h3>3272</h3>

3087 3273 

3088Diff antara cabang Anda dan cabang dasar, termasuk perubahan yang tidak berkomitmen dan staged, melebihi batas ukuran untuk [ultrareview](/docs/id/ultrareview), jadi `/code-review ultra` dan subperintah `claude ultrareview` menolak review sebelum sesi cloud dimulai. Review yang ditolak tidak menggunakan run gratis dan tidak menagih kredit penggunaan. Pesan menyebutkan batas yang berlaku, ukuran diff Anda, dan file yang berkontribusi paling banyak baris yang berubah. Sebelum v2.1.216, pesan menampilkan hanya statistik diff mentah.3274Diff antara branch Anda dan branch base, termasuk perubahan yang tidak berkomit dan staged, melebihi batas ukuran untuk [ultrareview](/docs/id/ultrareview), jadi `/code-review ultra` dan subcommand `claude ultrareview` menolak review sebelum sesi cloud dimulai. Review yang ditolak tidak menggunakan run gratis dan tidak menagih kredit penggunaan. Pesan menamai batas yang berlaku, ukuran diff Anda, dan file yang berkontribusi paling banyak baris yang berubah. Sebelum v2.1.216, pesan menunjukkan hanya statistik diff mentah.

3089 3275 

3090```text theme={null}3276```text theme={null}

3091Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.3277Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.

3092```3278```

3093 3279 

3094Meninjau pull request menerapkan batas yang sama; bentuk pesan itu dimulai `PR #<N> is too large for ultrareview` dan menyebutkan file dan jumlah baris PR.3280Meninjau pull request menerapkan batas yang sama; bentuk pesan itu dimulai `PR #<N> is too large for ultrareview` dan menamai file dan jumlah baris PR.

3095 3281 

3096**Yang harus dilakukan:**3282**Yang harus dilakukan:**

3097 3283 

3098* Berikan cabang dasar yang lebih dekat ke pekerjaan Anda, seperti `/code-review ultra develop`, jadi review mencakup hanya diff terhadap cabang itu3284* Berikan branch base yang lebih dekat ke pekerjaan Anda, seperti `/code-review ultra develop`, jadi review mencakup hanya diff terhadap branch itu

3099* Pisahkan perubahan menjadi cabang yang lebih kecil dan tinjau masing-masing. File yang pesan sebutkan berkontribusi paling banyak baris yang berubah, jadi mulai dengan memindahkan itu ke cabang mereka sendiri.3285* Pisahkan perubahan menjadi branch yang lebih kecil dan tinjau masing-masing. File yang pesan namakan berkontribusi paling banyak baris yang berubah, jadi mulai dengan memindahkan yang ke branch mereka sendiri.

3100 3286 

3101<h3 id="could-not-find-merge-base-with-the-base-branch">3287<h3 id="could-not-find-merge-base-with-the-base-branch">

3102 Tidak dapat menemukan merge-base dengan cabang dasar3288 Tidak dapat menemukan merge-base dengan branch base

3103</h3>3289</h3>

3104 3290 

3105`/code-review ultra` dan subperintah `claude ultrareview` meninjau diff antara cabang Anda dan cabang dasar, yang memerlukan komitmen yang keduanya bagikan. Ketika `git merge-base` tidak menemukan apa pun, Claude Code menolak review sebelum sesi cloud dimulai. Pada klon Claude Code dapat verifikasi lengkap, dengan setidaknya satu cabang, itu kembali ke [meninjau setiap file yang dilacak](/docs/id/ultrareview#diff-limits-and-fallbacks) alih-alih menolak. Anda melihat penolakan ini ketika cabang dasar tidak dapat ditemukan sama sekali, ketika Claude Code tidak dapat memverifikasi bahwa klon Anda lengkap, atau di repository langka di mana diff seluruh pohon tidak mungkin, seperti format objek SHA-256.3291`/code-review ultra` dan subcommand `claude ultrareview` meninjau diff antara branch Anda dan branch base, yang memerlukan commit yang keduanya bagikan. Ketika `git merge-base` tidak menemukan satu pun, Claude Code menolak review sebelum sesi cloud dimulai. Pada clone yang Claude Code dapat verifikasi lengkap, dengan setidaknya satu branch, jatuh kembali ke [meninjau setiap file yang dilacak](/docs/id/ultrareview#diff-limits-and-fallbacks) alih-alih menolak. Anda melihat penolakan ini ketika branch base tidak dapat ditemukan sama sekali, ketika Claude Code tidak dapat memverifikasi bahwa clone Anda lengkap, atau di repository langka di mana diff seluruh pohon tidak mungkin, seperti format objek SHA-256.

3106 3292 

3107```text theme={null}3293```text theme={null}

3108Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.3294Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.


3110 3296 

3111Petunjuk setelah kalimat pertama tergantung pada apa yang Claude Code amati:3297Petunjuk setelah kalimat pertama tergantung pada apa yang Claude Code amati:

3112 3298 

3113* **Anda tidak melewatkan cabang dasar**: Claude Code dibandingkan terhadap cabang default repository dan menyarankan melewatkan dasar Anda secara eksplisit, seperti dalam contoh di atas3299* **Anda tidak melewatkan branch base**: Claude Code dibandingkan terhadap branch default repository dan menyarankan melewatkan base Anda secara eksplisit, seperti dalam contoh di atas

3114* **Anda melewatkan cabang dasar yang sudah ada di klon Anda**: petunjuk membaca ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3300* **Anda melewatkan branch base yang sudah ada di clone Anda**: petunjuk membaca ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3115* **Anda melewatkan cabang dasar yang tidak ada di klon Anda**: Claude Code mengambilnya dari origin sebelum membandingkan. Petunjuk membaca ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; ketika Claude Code tidak dapat mengatakan apakah klon Anda dangkal, itu menyarankan `git fetch --unshallow origin` sebagai gantinya. Sebelum v2.1.221, petunjuk menyarankan `git fetch --unshallow origin` untuk setiap cabang dasar yang diambil, dan pada klon lengkap perintah itu gagal dengan `fatal: --unshallow on a complete repository does not make sense`.3301* **Anda melewatkan branch base yang tidak ada di clone Anda**: Claude Code mengambilnya dari origin sebelum membandingkan. Petunjuk membaca ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; ketika Claude Code tidak dapat mengatakan apakah clone Anda dangkal, menyarankan `git fetch --unshallow origin` sebagai gantinya. Sebelum v2.1.221, petunjuk menyarankan `git fetch --unshallow origin` untuk setiap branch base yang diambil, dan pada clone lengkap command itu gagal dengan `fatal: --unshallow on a complete repository does not make sense`.

3116 3302 

3117**Yang harus dilakukan:**3303**Yang harus dilakukan:**

3118 3304 

3119* Jika cabang lain adalah dasar nyata Anda, berikan secara eksplisit: `/code-review ultra <branch>`3305* Jika branch lain adalah base nyata Anda, lewatkan secara eksplisit: `/code-review ultra <branch>`

3120* Jika klon Anda mungkin tidak memiliki riwayat penuh, jalankan `git fetch --unshallow origin` dan jalankan kembali review3306* Jika clone Anda mungkin tidak memiliki riwayat lengkap, jalankan `git fetch --unshallow origin` dan jalankan kembali review

3121 3307 

3122<h3 id="your-checkout-has-no-branches">3308<h3 id="your-checkout-has-no-branches">

3123 Checkout Anda tidak memiliki cabang3309 Checkout Anda tidak memiliki branch

3124</h3>3310</h3>

3125 3311 

3126Checkout dapat memiliki komitmen tetapi tidak ada cabang: jika Anda menjalankan `git init` diikuti `git fetch <url>` dan `git checkout FETCH_HEAD`, Anda mendapatkan HEAD terlepas dengan tidak ada refs. Claude Code mengemas repository Anda sebagai bundel git untuk mengunggahnya untuk [ultrareview](/docs/id/ultrareview), dan tidak dapat membundel repository yang tidak memiliki cabang atau refs lainnya, jadi `/code-review ultra` dan subperintah `claude ultrareview` menolak review sebelum sesi cloud dimulai.3312Checkout dapat memiliki commit tetapi tidak ada branch: jika Anda menjalankan `git init` diikuti `git fetch <url>` dan `git checkout FETCH_HEAD`, Anda mendapatkan HEAD terlepas dengan tidak ada ref. Claude Code mengemas repository Anda sebagai git bundle untuk mengunggahnya untuk [ultrareview](/docs/id/ultrareview), dan tidak dapat membundle repository yang tidak memiliki branch atau ref lain, jadi `/code-review ultra` dan subcommand `claude ultrareview` menolak review sebelum sesi cloud dimulai.

3127 3313 

3128```text theme={null}3314```text theme={null}

3129Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.3315Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.


3133 3319 

3134**Yang harus dilakukan:**3320**Yang harus dilakukan:**

3135 3321 

3136* Buat cabang di komitmen saat ini Anda dengan `git checkout -b <name>`, kemudian jalankan kembali review3322* Buat branch di commit saat ini dengan `git checkout -b <name>`, kemudian jalankan kembali review

3137 3323 

3138<h3 id="no-github-account-is-connected-to-your-claude-account">3324<h3 id="no-github-account-is-connected-to-your-claude-account">

3139 Tidak ada akun GitHub yang terhubung ke akun Claude Anda3325 Tidak ada akun GitHub yang terhubung ke akun Claude Anda

3140</h3>3326</h3>

3141 3327 

3142Anda menjalankan `/code-review ultra <PR#>` atau `claude ultrareview <PR#>`, dan sebelum membuat sesi cloud Claude Code menanyakan server apakah [akun GitHub yang terhubung ke akun Claude Anda](/docs/id/ultrareview#review-a-pull-request) dapat menjangkau repository PR. Tidak ada akun yang terhubung, atau koneksi kedaluwarsa, jadi klon cloud akan gagal dan Claude Code menolak peluncuran. Claude Code tidak menghabiskan run gratis atau menagih kredit penggunaan untuk peluncuran yang ditolak.3328Anda menjalankan `/code-review ultra <PR#>` atau `claude ultrareview <PR#>`, dan sebelum membuat sesi cloud Claude Code menanyakan server apakah [akun GitHub yang terhubung ke akun Claude Anda](/docs/id/ultrareview#review-a-pull-request) dapat mencapai repository PR. Tidak ada akun yang terhubung, atau koneksi kedaluwarsa, jadi clone cloud akan gagal dan Claude Code menolak peluncuran. Claude Code tidak menghabiskan run gratis atau menagih kredit penggunaan untuk peluncuran yang ditolak.

3143 3329 

3144```text theme={null}3330```text theme={null}

3145Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).3331Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).

3146```3332```

3147 3333 

3148Ketika [`/web-setup`](/docs/id/web-quickstart#connect-from-your-terminal) tidak tersedia dalam sesi Anda, pesan hanya menyebutkan tautan claude.ai.3334Ketika [`/web-setup`](/docs/id/web-quickstart#connect-from-your-terminal) tidak tersedia dalam sesi Anda, pesan hanya menamai link claude.ai.

3149 3335 

3150**Yang harus dilakukan:**3336**Yang harus dilakukan:**

3151 3337 

3152* Jalankan `/web-setup` untuk menghubungkan login GitHub CLI Anda ke akun Claude Anda, atau hubungkan akun di [claude.ai/connect-github](https://claude.ai/connect-github)3338* Jalankan `/web-setup` untuk menghubungkan login GitHub CLI Anda ke akun Claude Anda, atau hubungkan akun di [claude.ai/connect-github](https://claude.ai/connect-github)

3153* Jalankan kembali review satu menit setelah terhubung3339* Jalankan kembali review semenit setelah terhubung

3154 3340 

3155Sebelum v2.1.248, Claude Code tidak memeriksa ini sebelum peluncuran.3341Sebelum v2.1.248, Claude Code tidak memeriksa ini sebelum peluncuran.

3156 3342 


3158 Akun GitHub yang terhubung Anda tidak dapat melihat repository3344 Akun GitHub yang terhubung Anda tidak dapat melihat repository

3159</h3>3345</h3>

3160 3346 

3161Anda menjalankan `/code-review ultra <PR#>` atau `claude ultrareview <PR#>`, dan [akun GitHub yang terhubung ke akun Claude Anda](/docs/id/ultrareview#review-a-pull-request) tidak dapat membaca repository PR, jadi klon cloud akan gagal dan Claude Code menolak peluncuran. Claude Code tidak menghabiskan run gratis atau menagih kredit penggunaan untuk peluncuran yang ditolak.3347Anda menjalankan `/code-review ultra <PR#>` atau `claude ultrareview <PR#>`, dan [akun GitHub yang terhubung ke akun Claude Anda](/docs/id/ultrareview#review-a-pull-request) tidak dapat membaca repository PR, jadi clone cloud akan gagal dan Claude Code menolak peluncuran. Claude Code tidak menghabiskan run gratis atau menagih kredit penggunaan untuk peluncuran yang ditolak.

3162 3348 

3163```text theme={null}3349```text theme={null}

3164Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.3350Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.

3165```3351```

3166 3352 

3167Ketika [`/web-setup`](/docs/id/web-quickstart#connect-from-your-terminal) tidak tersedia dalam sesi Anda, pesan hanya menyebutkan instalasi aplikasi.3353Ketika [`/web-setup`](/docs/id/web-quickstart#connect-from-your-terminal) tidak tersedia dalam sesi Anda, pesan hanya menamai instalasi aplikasi.

3168 3354 

3169**Yang harus dilakukan:**3355**Yang harus dilakukan:**

3170 3356 


3177 Preflight GitHub App gagal secara sementara3363 Preflight GitHub App gagal secara sementara

3178</h3>3364</h3>

3179 3365 

3180Anda memulai [sesi cloud](/docs/id/claude-code-on-the-web) dari repository lokal, dan dua langkah gagal bersama-sama. Claude Code tidak dapat membangun atau mengunggah bundel repository Anda. Sebelum unggahan, itu memeriksa apakah layanan cloud dapat mengklon repository dari GitHub, dan daripada jawaban pasti, pemeriksaan itu berakhir dalam kesalahan yang retry dapat bersihkan, seperti kesalahan jaringan, timeout, atau kesalahan server sementara. Pesan lengkap dimulai dengan apa yang menghentikan bundel, misalnya `Could not upload repo bundle (<error>)`, dan berakhir dengan kalimat preflight:3366Anda memulai [sesi cloud](/docs/id/claude-code-on-the-web) dari repository lokal, dan dua langkah gagal bersama-sama. Claude Code tidak dapat membangun atau mengunggah bundle repository Anda. Sebelum unggahan, memeriksa apakah layanan cloud dapat mengkloning repository dari GitHub, dan daripada jawaban pasti, pemeriksaan itu berakhir dalam kesalahan yang retry dapat menghapus, seperti kesalahan jaringan, timeout, atau kesalahan server sementara. Pesan lengkap dimulai dengan apa yang menghentikan bundle, misalnya `Could not upload repo bundle (<error>)`, dan berakhir dengan kalimat preflight:

3181 3367 

3182```text theme={null}3368```text theme={null}

3183Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead3369Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead


3185 3371 

3186**Yang harus dilakukan:**3372**Yang harus dilakukan:**

3187 3373 

3188* Jalankan kembali perintah setelah beberapa saat. Ketika pemeriksaan GitHub lulus, Claude Code dapat memulai sesi dari klon GitHub, jadi unggahan yang gagal tidak lagi memblokir peluncuran3374* Jalankan kembali command setelah sebentar. Ketika pemeriksaan GitHub lulus, Claude Code dapat memulai sesi dari clone GitHub, jadi unggahan yang gagal tidak lagi memblokir peluncuran

3189* Jika retry terus gagal, awal pesan menyebutkan apa yang menghentikan unggahan. Ketika penyebab itu adalah sesuatu yang dapat Anda perbaiki, perbaiki sehingga sesi dapat dimulai dari repository lokal Anda sebagai gantinya3375* Jika retry terus gagal, awal pesan menamai apa yang menghentikan unggahan. Ketika penyebab itu sesuatu yang dapat Anda perbaiki, perbaiki sehingga sesi dapat dimulai dari repository lokal Anda sebagai gantinya

3190 3376 

3191Sebelum v2.1.251, Claude Code mengakhiri pesan dengan `Please set up GitHub on https://claude.ai/code` bahkan ketika pemeriksaan GitHub gagal hanya secara sementara, dan saran setup tidak dapat membersihkan kegagalan sementara.3377Sebelum v2.1.251, Claude Code mengakhiri pesan dengan `Please set up GitHub on https://claude.ai/code` bahkan ketika pemeriksaan GitHub hanya gagal secara sementara, dan saran setup tidak dapat menghapus kegagalan sementara.

3192 3378 

3193<h3 id="github-isnt-connected-to-your-claude-account">3379<h3 id="github-isnt-connected-to-your-claude-account">

3194 GitHub tidak terhubung ke akun Claude Anda3380 GitHub tidak terhubung ke akun Claude Anda


3200GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github3386GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github

3201```3387```

3202 3388 

3203Ketika Anda membuat routine dengan [`/schedule`](/docs/id/routines), pesan yang sama muncul sebagai catatan setup yang menyebutkan repository; catatan tidak memblokir pembuatan routine.3389Ketika Anda membuat routine dengan [`/schedule`](/docs/id/routines), pesan yang sama muncul sebagai catatan setup yang menamai repository; catatan tidak memblokir pembuatan routine.

3204 3390 

3205**Yang harus dilakukan:**3391**Yang harus dilakukan:**

3206 3392 

3207* Jalankan `/web-setup` untuk menghubungkan login GitHub CLI Anda ke akun Claude Anda, atau hubungkan akun di [claude.ai/connect-github](https://claude.ai/connect-github). Lihat [GitHub authentication options](/docs/id/claude-code-on-the-web#github-authentication-options) untuk bagaimana keduanya berbeda.3393* Jalankan `/web-setup` untuk menghubungkan login GitHub CLI Anda ke akun Claude Anda, atau hubungkan akun di [claude.ai/connect-github](https://claude.ai/connect-github). Lihat [GitHub authentication options](/docs/id/claude-code-on-the-web#github-authentication-options) untuk bagaimana keduanya berbeda.

3208* Jalankan kembali perintah satu menit setelah terhubung3394* Jalankan kembali command semenit setelah terhubung

3209 3395 

3210Sebelum v2.1.268, Claude Code melaporkan ini sebagai kegagalan sementara pemeriksaan Claude GitHub App dan menyarankan retry atau menginstal aplikasi; tidak satupun menghubungkan akun GitHub.3396Sebelum v2.1.268, Claude Code melaporkan ini sebagai kegagalan sementara pemeriksaan Claude GitHub App dan menyarankan retry atau menginstal aplikasi; tidak satupun menghubungkan akun GitHub.

3211 3397 


3222 3408 

3223**Yang harus dilakukan:**3409**Yang harus dilakukan:**

3224 3410 

3225* Otorisasi kembali login GitHub CLI Anda dengan cakupan `repo` dan `workflow` dengan menjalankan `gh auth refresh -h github.com -s repo,workflow`, dan otorisasi organisasi ketika GitHub meminta single sign-on3411* Otorisasi kembali login GitHub CLI Anda dengan scope `repo` dan `workflow` dengan menjalankan `gh auth refresh -h github.com -s repo,workflow`, dan otorisasi organisasi ketika GitHub meminta single sign-on

3226* Jika Anda mengautentikasi dengan token akses pribadi di `GH_TOKEN`, buka [github.com/settings/tokens](https://github.com/settings/tokens), pilih **Configure SSO** pada token, dan otorisasi organisasi3412* Jika Anda mengautentikasi dengan personal access token di `GH_TOKEN`, buka [github.com/settings/tokens](https://github.com/settings/tokens), pilih **Configure SSO** pada token, dan otorisasi organisasi

3227* Jalankan `/install-github-app` lagi3413* Jalankan `/install-github-app` lagi

3228 3414 

3229Sebelum v2.1.273, Claude Code menampilkan peringatan `Admin permissions required` untuk kondisi ini sebagai gantinya.3415Sebelum v2.1.273, Claude Code menampilkan peringatan `Admin permissions required` untuk kondisi ini sebagai gantinya.


3232 Gagal melanjutkan percakapan3418 Gagal melanjutkan percakapan

3233</h3>3419</h3>

3234 3420 

3235Claude Code tidak dapat membaca atau memproses transkrip yang disimpan untuk sesi yang Anda pilih dari [pemilih `claude --resume`](/docs/id/sessions#use-the-session-picker), jadi mengakhiri proses daripada melanjutkan dalam keadaan sebagian dimuat. Pesan mencakup perintah untuk retry:3421Claude Code tidak dapat membaca atau memproses transkrip yang disimpan untuk sesi yang Anda pilih dari [picker `claude --resume`](/docs/id/sessions#use-the-session-picker), jadi mengakhiri proses daripada melanjutkan dalam keadaan sebagian dimuat. Pesan mencakup command untuk retry:

3236 3422 

3237```text theme={null}3423```text theme={null}

3238Failed to resume the conversation.3424Failed to resume the conversation.

3239Run claude --resume <session-id> to retry, or claude to start a new session.3425Run claude --resume <session-id> to retry, or claude to start a new session.

3240```3426```

3241 3427 

3242Claude Code keluar dengan kode 1 setelah menampilkan pesan. Pemilih `/resume` di dalam sesi yang berjalan melaporkan `Failed to resume conversation` dalam percakapan sebagai gantinya, dan sesi saat ini Anda terus berjalan. Sebelum v2.1.216, resume yang gagal dari pemilih `claude --resume` tetap di spinner `Resuming conversation…` tanpa batas waktu alih-alih menampilkan pesan ini.3428Claude Code keluar dengan kode 1 setelah menampilkan pesan. Picker `/resume` di dalam sesi yang berjalan melaporkan `Failed to resume conversation` dalam percakapan sebagai gantinya, dan sesi saat ini Anda tetap berjalan. Sebelum v2.1.216, resume yang gagal dari picker `claude --resume` tetap di spinner `Resuming conversation…` tanpa batas waktu alih-alih menampilkan pesan ini.

3243 3429 

3244**Yang harus dilakukan:**3430**Yang harus dilakukan:**

3245 3431 


3257No conversation found with session ID: <session-id>3443No conversation found with session ID: <session-id>

3258```3444```

3259 3445 

3260Claude Code keluar dengan kode 1 setelah menampilkan pesan. Claude Code [mencari proyek saat ini terlebih dahulu, kemudian setiap proyek lain di mesin ini](/docs/id/sessions#resume-a-session) untuk ID. Sebelum v2.1.223, pencarian berhenti di direktori proyek saat ini dan worktree git-nya, jadi resume dari direktori tempat sesi terakhir bekerja.3446Claude Code keluar dengan kode 1 setelah menampilkan pesan. Claude Code [mencari project saat ini terlebih dahulu, kemudian setiap project lain di mesin ini](/docs/id/sessions#resume-a-session) untuk ID. Sebelum v2.1.223, pencarian berhenti di direktori project saat ini dan git worktree-nya, jadi resume dari direktori tempat sesi terakhir bekerja.

3261 3447 

3262Penyebab umum:3448Penyebab umum:

3263 3449 

3264* **ID yang salah ketik**: untuk run non-interaktif, ID adalah bidang `session_id` dari output [`--output-format json`](/docs/id/headless#get-structured-output)3450* **ID yang salah ketik**: untuk run non-interaktif, ID adalah field `session_id` dari output [`--output-format json`](/docs/id/headless#get-structured-output)

3265* **Transkrip yang dihapus**: Claude Code menghapus transkrip setelah [periode retensi](/docs/id/sessions#where-transcripts-are-stored), 30 hari secara default, mengikuti [aturan pembersihan retensi](/docs/id/claude-directory#cleaned-up-automatically)3451* **Transkrip yang dihapus**: Claude Code menghapus transkrip setelah [periode retensi](/docs/id/sessions#where-transcripts-are-stored), 30 hari secara default, mengikuti [aturan sweep retensi](/docs/id/claude-directory#cleaned-up-automatically)

3266* **Mesin berbeda**: Claude Code menyimpan transkrip secara lokal, jadi resume sesi di mesin tempat itu berjalan3452* **Mesin berbeda**: Claude Code menyimpan transkrip secara lokal, jadi resume sesi di mesin tempat dijalankan

3267* **Salinan duplikat**: jika Anda menyalin direktori proyek di bawah `~/.claude/projects` sehingga dua transkrip membawa ID yang sama, Claude Code melaporkan pesan ini daripada resume satu salinan secara sewenang-wenang3453* **Duplikat salinan**: jika Anda menyalin direktori project di bawah `~/.claude/projects` jadi dua transkrip membawa ID yang sama, Claude Code melaporkan pesan ini daripada resume satu salinan secara sewenang-wenang

3268 3454 

3269**Yang harus dilakukan:**3455**Yang harus dilakukan:**

3270 3456 

3271* Untuk sesi interaktif, buka [pemilih sesi](/docs/id/sessions#use-the-session-picker) dengan `claude --resume` dan tekan `Ctrl+A` untuk memperluas ke setiap proyek di mesin ini, kemudian pilih sesi3457* Untuk sesi interaktif, buka [session picker](/docs/id/sessions#use-the-session-picker) dengan `claude --resume` dan tekan `Ctrl+A` untuk memperluas ke setiap project di mesin ini, kemudian pilih sesi

3272* Sesi yang dibuat dengan `claude -p` atau [Agent SDK](/docs/id/agent-sdk/overview) tidak muncul dalam pemilih, jadi periksa kembali ID terhadap `session_id` yang run asli Anda cetak3458* Sesi yang dibuat dengan `claude -p` atau [Agent SDK](/docs/id/agent-sdk/overview) tidak muncul di picker, jadi periksa kembali ID terhadap `session_id` yang run asli Anda cetak

3459 

3460<h3 id="windows-reported-an-error-ebadf">

3461 Windows melaporkan kesalahan (EBADF) ketika Claude Code membaca file transkrip sesi ini

3462</h3>

3463 

3464Anda melanjutkan sesi di Windows, file [transkrip](/docs/id/sessions#where-transcripts-are-stored) yang disimpan dibuka secara normal, dan membacanya kemudian gagal dengan kesalahan sistem EBADF. Kesalahan sistem tidak mengatakan mengapa pembacaan gagal, jadi pesan menyarankan penyebab kemungkinan dan apa yang dicoba:

3465 

3466```text theme={null}

3467Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3468```

3469 

3470Pesan mengikuti baris kegagalan command sendiri, seperti `Failed to resume session <session-id>`. Command `claude --resume` atau [`claude -p`](/docs/id/headless) keluar dengan kode 1 setelah menampilkannya. Setelah `/resume` di dalam sesi, sesi saat ini Anda tetap berjalan.

3471 

3472**Yang harus dilakukan:**

3473 

3474* Kecualikan folder yang menyimpan transkrip sesi Anda dari software yang memindai atau mengintersepsi pembacaan file, seperti keamanan, enkripsi, atau alat manajemen endpoint. Transkrip tinggal di bawah `%USERPROFILE%\.claude\projects` secara default, atau di bawah direktori yang [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars) namakan

3475* Jika Anda tidak dapat menambahkan pengecualian, tambahkan Claude Code ke aplikasi yang diizinkan software itu sebagai gantinya

3476* Resume sesi lagi

3477 

3478Sebelum v2.1.282, kegagalan datang tanpa penjelasan: `claude --resume <session-id>` berakhir di `Failed to resume session <session-id>`, dan run `-p` mencetak hanya teks kesalahan sistem, seperti `Failed to resume session: EBADF: bad file descriptor, read`.

3273 3479 

3274<h3 id="cannot-switch-renderers-in-this-session">3480<h3 id="cannot-switch-renderers-in-this-session">

3275 Tidak dapat mengganti renderer dalam sesi ini3481 Tidak dapat mengganti renderer dalam sesi ini


3277 3483 

3278Ketika Anda mengganti renderer, Claude Code memulai ulang prosesnya. Anda menjalankan [`/tui`](/docs/id/fullscreen#enable-fullscreen-rendering) dalam sesi Claude Code menolak untuk memulai ulang, jadi tidak mengganti dan menyimpan apa pun. Pesan mana yang Anda lihat memberi tahu Anda penyebabnya:3484Ketika Anda mengganti renderer, Claude Code memulai ulang prosesnya. Anda menjalankan [`/tui`](/docs/id/fullscreen#enable-fullscreen-rendering) dalam sesi Claude Code menolak untuk memulai ulang, jadi tidak mengganti dan menyimpan apa pun. Pesan mana yang Anda lihat memberi tahu Anda penyebabnya:

3279 3485 

3280* `Cannot switch renderers while work is running in the background`: Anda memiliki pekerjaan latar belakang yang berjalan yang restart akan meninggalkan, seperti shell latar belakang atau subagen. Tunggu pekerjaan selesai atau hentikan dengan [`/tasks`](/docs/id/commands), kemudian jalankan `/tui fullscreen` atau `/tui default` lagi3486* `Cannot switch renderers while work is running in the background`: Anda memiliki pekerjaan background yang berjalan yang restart akan mengorbankan, seperti shell background atau subagent. Tunggu pekerjaan selesai atau hentikan dengan [`/tasks`](/docs/id/commands), kemudian jalankan `/tui fullscreen` atau `/tui default` lagi

3281* `Cannot switch renderers in this session`: sesi memiliki pembatasan Claude Code tidak dapat lulus ke proses yang dimulai ulang. Sebelum v2.1.234, Claude Code memulai ulang bagaimanapun dan sesi yang diluncurkan kembali berjalan tanpanya3487* `Cannot switch renderers in this session`: sesi memiliki pembatasan Claude Code tidak dapat lewatkan ke proses yang dimulai ulang. Sebelum v2.1.234, Claude Code dimulai ulang bagaimanapun dan sesi yang diluncurkan ulang berjalan tanpanya

3282 3488 

3283Dalam pesan pembatasan, bagian dalam tanda kurung menyebutkan pembatasan Claude Code temukan:3489Dalam pesan pembatasan, bagian dalam tanda kurung menamai pembatasan Claude Code temukan:

3284 3490 

3285```text theme={null}3491```text theme={null}

3286Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.3492Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.

3287```3493```

3288 3494 

3289Setiap alasan pesan dapat tunjukkan dalam tanda kurung:3495Setiap alasan pesan dapat menunjukkan dalam tanda kurung:

3290 3496 

3291* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: Anda memulai sesi dengan flag Claude Code tidak lulus kembali ke proses yang dimulai ulang. Flag ini termasuk [`--system-prompt`](/docs/id/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, daftar allowlist [`--tools`](/docs/id/cli-reference#cli-flags), [`--setting-sources`](/docs/id/cli-reference#cli-flags), dan [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags)3497* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`: Anda memulai sesi dengan flag Claude Code tidak lewatkan kembali ke proses yang dimulai ulang. Flag ini termasuk [`--system-prompt`](/docs/id/cli-reference#cli-flags), `--system-prompt-file`, `--append-system-prompt-file`, [`--tools`](/docs/id/cli-reference#cli-flags) allowlist, [`--setting-sources`](/docs/id/cli-reference#cli-flags), dan [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags)

3292* `permission rules set for this session only`: [pembaruan izin](/docs/id/hooks#permission-update-entries) dari hook atau pemanggil SDK menambahkan aturan deny atau ask dengan tujuan `session`. Aturan allow yang scoped sesi tidak memicu penolakan. Restart menjatuhkan mereka, dan Claude Code meminta lagi sebagai gantinya3498* `permission rules set for this session only`: [permission update](/docs/id/hooks#permission-update-entries) dari hook atau SDK caller menambahkan aturan deny atau ask dengan destinasi `session`. Aturan allow yang scoped sesi tidak memicu penolakan. Restart menjatuhkannya, dan Claude Code meminta lagi sebagai gantinya

3293* `ask-before-running rules with no command-line form`: pembaruan izin dari hook atau pemanggil SDK menambahkan aturan ask bersama aturan Claude Code lulus kembali sebagai `--allowed-tools` dan `--disallowed-tools`. Tidak ada flag untuk aturan ask3499* `ask-before-running rules with no command-line form`: permission update dari hook atau SDK caller menambahkan aturan ask bersama aturan Claude Code lewatkan kembali sebagai `--allowed-tools` dan `--disallowed-tools`. Tidak ada flag untuk aturan ask

3294* `permission rules a command line cannot carry intact` dan `added directories a command line cannot carry intact`: pembaruan izin menambahkan aturan atau jalur direktori mid-session. Baris perintah proses yang dimulai ulang tidak dapat membawa teksnya sebagai nilai yang sama3500* `permission rules a command line cannot carry intact` dan `added directories a command line cannot carry intact`: permission update menambahkan aturan atau path direktori mid-session. Baris perintah proses yang dimulai ulang tidak dapat membawa teksnya sebagai nilai yang sama

3295 3501 

3296**Yang harus dilakukan:**3502**Yang harus dilakukan:**

3297 3503 

3298* 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 sana3504* 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

3299 3505 

3300<h3 id="couldnt-open-claude-desktop">3506<h3 id="couldnt-open-claude-desktop">

3301 Couldn't open Claude Desktop3507 Tidak dapat membuka Claude Desktop

3302</h3>3508</h3>

3303 3509 

3304Anda 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.3510Anda menjalankan [`/desktop`](/docs/id/desktop#coming-from-the-cli), atau alias `/app`, dan command sistem yang Claude Code gunakan untuk membuka Claude Desktop gagal. Sesi tetap di terminal.

3305 3511 

3306```text theme={null}3512```text theme={null}

3307Error: 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.3513Error: 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.


3310**Yang harus dilakukan:**3516**Yang harus dilakukan:**

3311 3517 

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

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

3314 3520 

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

3316 3522 


3320 3526 

3321Anda menjalankan [`/terminal-setup`](/docs/id/terminal-config#enter-multiline-prompts) di Zed, dan Claude Code tidak dapat menyelesaikan pembaruan ke `keymap.json` Zed Anda, jadi meninggalkannya seperti apa adanya.3527Anda menjalankan [`/terminal-setup`](/docs/id/terminal-config#enter-multiline-prompts) di Zed, dan Claude Code tidak dapat menyelesaikan pembaruan ke `keymap.json` Zed Anda, jadi meninggalkannya seperti apa adanya.

3322 3528 

3323Setiap pesan menyebutkan jalur ke keymap Anda dan berakhir dengan blok keybinding untuk ditambahkan sendiri:3529Setiap pesan menamai path ke keymap Anda dan berakhir dengan blok keybinding untuk ditambahkan sendiri:

3324 3530 

3325```text theme={null}3531```text theme={null}

3326Couldn't update your Zed keymap, so it was left unchanged.3532Couldn't update your Zed keymap, so it was left unchanged.


3328{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }3534{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }

3329```3535```

3330 3536 

3331Baris pertama pesan menyebutkan penyebabnya:3537Baris pertama pesan menamai penyebabnya:

3332 3538 

3333* `Couldn't read your Zed keymap, so it was left unchanged.`: Claude Code tidak dapat membaca file, misalnya karena izin file3539* `Couldn't read your Zed keymap, so it was left unchanged.`: Claude Code tidak dapat membaca file, misalnya karena izin file

3334* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: file dibaca dengan baik tetapi tidak diuraikan sebagai array blok keybinding, bahkan dengan komentar `//` dan trailing comma yang diizinkan3540* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`: file dibaca dengan baik tetapi tidak diuraikan sebagai array blok keybinding, bahkan dengan komentar `//` dan trailing comma yang diizinkan

3335* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code tidak dapat menyalin file ke backup `.bak` di sebelahnya, jadi tidak mengubah apa pun3541* `Couldn't back up your Zed keymap; not modifying it.`: Claude Code tidak dapat menyalin file ke backup `.bak` di sebelahnya, jadi tidak mengubah apa pun

3336* `Couldn't update your Zed keymap, so it was left unchanged.`: hasil yang digabung tidak memverifikasi sebagai keymap yang valid membawa keybinding, jadi Claude Code membuangnya alih-alih menulis. Blok keybinding dengan kunci yang diduplikasi dapat menyebabkan ini3542* `Couldn't update your Zed keymap, so it was left unchanged.`: hasil yang digabung tidak memverifikasi sebagai keymap valid yang membawa keybinding, jadi Claude Code membuangnya alih-alih menulis. Blok keybinding dengan kunci yang diduplikasi dapat menyebabkan ini

3337 3543 

3338**Yang harus dilakukan:**3544**Yang harus dilakukan:**

3339 3545 

3340* Salin blok dari pesan ke array tingkat atas di `keymap.json` Anda di jalur yang pesan sebutkan3546* Salin blok dari pesan ke array tingkat atas di `keymap.json` Anda di path yang pesan namakan

3341* Untuk `isn't a readable list of keybindings`, perbaiki kesalahan sintaks, atau buat nilai tingkat atas file menjadi array, kemudian jalankan `/terminal-setup` lagi3547* Untuk `isn't a readable list of keybindings`, perbaiki kesalahan sintaks, atau buat nilai tingkat atas file menjadi array, kemudian jalankan `/terminal-setup` lagi

3342 3548 

3343Sebelum v2.1.247, `/terminal-setup` tidak dapat menguraikan keymap Zed yang menggunakan komentar `//` atau trailing comma, dan mengganti seluruh file dengan hanya keybinding-nya sendiri sambil melaporkan keybinding sebagai diinstal. Untuk mengembalikan keymap yang versi sebelumnya ganti, gunakan file backup `.bak` yang dijelaskan di bawah [Enter multiline prompts](/docs/id/terminal-config#enter-multiline-prompts).3549Sebelum v2.1.247, `/terminal-setup` tidak dapat menguraikan keymap Zed yang menggunakan komentar `//` atau trailing comma, dan mengganti seluruh file dengan hanya keybinding-nya sendiri sambil melaporkan keybinding sebagai diinstal. Untuk mengembalikan keymap yang versi sebelumnya ganti, gunakan file backup `.bak` yang dijelaskan di bawah [Enter multiline prompts](/docs/id/terminal-config#enter-multiline-prompts).

3344 3550 

3345<h3 id="skill-usage-reports-are-not-available-on-this-connection">3551<h3 id="skill-usage-reports-are-not-available-on-this-connection">

3346 Laporan penggunaan skill tidak tersedia pada koneksi ini3552 Laporan penggunaan skill tidak tersedia di koneksi ini

3347</h3>3553</h3>

3348 3554 

3349Anda menjalankan [`/skill-doctor`](/docs/id/skills#find-unused-skills) melalui [Remote Control](/docs/id/remote-control), dari ponsel atau browser Anda. Claude Code tidak mengirimkan laporan penggunaan skill melalui Remote Control dan menjawab dengan pesan ini sebagai gantinya:3555Anda menjalankan [`/skill-doctor`](/docs/id/skills#find-unused-skills) melalui [Remote Control](/docs/id/remote-control), dari ponsel atau browser Anda. Claude Code tidak mengirim laporan penggunaan skill melalui Remote Control dan menjawab dengan pesan ini sebagai gantinya:

3350 3556 

3351```text theme={null}3557```text theme={null}

3352Skill usage reports are not available on this connection.3558Skill usage reports are not available on this connection.


3360 Gaya output kustom tidak dapat dipilih melalui Remote Control3566 Gaya output kustom tidak dapat dipilih melalui Remote Control

3361</h3>3567</h3>

3362 3568 

3363Anda menjalankan [`/output-style`](/docs/id/output-styles#change-your-output-style) dari aplikasi mobile atau web melalui [Remote Control](/docs/id/remote-control), atau perintah tiba dalam pesan yang disalurkan ke sesi. Karena giliran seperti itu mungkin tidak berasal dari pemilik akun, Claude Code mencantumkan dan memilih hanya [gaya bawaan](/docs/id/output-styles#built-in-output-styles) di atasnya, dan menambahkan pemberitahuan ini kapan pun perintah mencantumkan gaya atau tidak mengenali nama yang Anda berikan. Nama [gaya kustom](/docs/id/output-styles#create-a-custom-output-style) mendapat jawaban yang sama dengan nama yang tidak ada:3569Anda menjalankan [`/output-style`](/docs/id/output-styles#change-your-output-style) dari aplikasi mobile atau web melalui [Remote Control](/docs/id/remote-control), atau command tiba dalam pesan yang dialihkan ke sesi. Karena giliran seperti itu mungkin tidak berasal dari pemilik akun, Claude Code mencantumkan dan memilih hanya [gaya built-in](/docs/id/output-styles#built-in-output-styles) di atasnya, dan menambahkan pemberitahuan ini kapan pun command mencantumkan gaya atau tidak mengenali nama yang Anda berikan. Nama [gaya kustom](/docs/id/output-styles#create-a-custom-output-style) mendapat jawaban yang sama dengan nama yang tidak ada:

3364 3570 

3365```text theme={null}3571```text theme={null}

3366Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.3572Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.


3368 3574 

3369**Yang harus dilakukan:**3575**Yang harus dilakukan:**

3370 3576 

3371* Pilih gaya bawaan, misalnya `/output-style concise`3577* Pilih gaya built-in, misalnya `/output-style concise`

3372* Untuk menggunakan gaya kustom, atur [`outputStyle`](/docs/id/settings-reference#outputstyle) di `.claude/settings.local.json` proyek, atau jalankan `/output-style <style>` di terminal sesi sendiri jika memilikinya3578* Untuk menggunakan gaya kustom, atur [`outputStyle`](/docs/id/settings-reference#outputstyle) di `.claude/settings.local.json` project, atau jalankan `/output-style <style>` di terminal sesi sendiri jika memilikinya

3373 3579 

3374<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">3580<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">

3375 Gaya output disimpan ke pengaturan lokal yang sesi ini tidak muat3581 Gaya output disimpan ke pengaturan lokal yang sesi ini tidak muat

3376</h3>3582</h3>

3377 3583 

3378Anda mencoba mengganti [gaya output](/docs/id/output-styles) dengan `/output-style <style>` atau `/config outputStyle=<style>` dalam sesi yang sumber pengaturannya mengecualikan `local`. Contohnya adalah sesi [Agent SDK](/docs/id/agent-sdk/typescript) yang [`settingSources`](/docs/id/agent-sdk/typescript#options)-nya meninggalkan `"local"` dan sesi CLI yang dimulai dengan nilai [`--setting-sources`](/docs/id/cli-reference#cli-flags) yang meninggalkan local. Kedua perintah menyimpan gaya ke `.claude/settings.local.json`, file yang sesi seperti itu tidak pernah baca kembali, jadi Claude Code menolak alih-alih menulis pengaturan yang tidak akan berpengaruh:3584Anda mencoba mengganti [gaya output](/docs/id/output-styles) dengan `/output-style <style>` atau `/config outputStyle=<style>` dalam sesi yang sumber pengaturannya mengecualikan `local`. Contohnya adalah sesi [Agent SDK](/docs/id/agent-sdk/typescript) yang [`settingSources`](/docs/id/agent-sdk/typescript#options)-nya meninggalkan `"local"` dan sesi CLI yang dimulai dengan nilai [`--setting-sources`](/docs/id/cli-reference#cli-flags) yang meninggalkan `local`. Kedua command menyimpan gaya ke `.claude/settings.local.json`, file yang sesi seperti itu tidak pernah membaca kembali, jadi Claude Code menolak alih-alih menulis pengaturan yang tidak akan berpengaruh:

3379 3585 

3380```text theme={null}3586```text theme={null}

3381Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.3587Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.


3384**Yang harus dilakukan:**3590**Yang harus dilakukan:**

3385 3591 

3386* Tambahkan `local` ke sumber pengaturan sesi dan beralih lagi3592* Tambahkan `local` ke sumber pengaturan sesi dan beralih lagi

3387* Atur kunci [`outputStyle`](/docs/id/settings-reference#outputstyle) dalam file pengaturan yang sesi muat, seperti `.claude/settings.json` di proyek atau `~/.claude/settings.json`. Dalam SDK TypeScript, atur `outputStyle` di dalam objek `settings` inline sebagai gantinya; lihat [Activate an output style](/docs/id/agent-sdk/modifying-system-prompts#activate-an-output-style)3593* Atur kunci [`outputStyle`](/docs/id/settings-reference#outputstyle) dalam file pengaturan yang sesi muat, seperti `.claude/settings.json` di project atau `~/.claude/settings.json`. Dalam SDK TypeScript, atur `outputStyle` di dalam objek `settings` inline sebagai gantinya; lihat [Activate an output style](/docs/id/agent-sdk/modifying-system-prompts#activate-an-output-style)

3388 3594 

3389<h2 id="plugin-errors">3595<h2 id="plugin-errors">

3390 Kesalahan plugin3596 Kesalahan plugin


3454* Ubah nama marketplace menjadi nama yang tidak mengeja nama yang dicadangkan dan tambahkan lagi3660* Ubah nama marketplace menjadi nama yang tidak mengeja nama yang dicadangkan dan tambahkan lagi

3455* Untuk peringatan entri yang diabaikan, jalankan perintah `claude plugin marketplace remove` yang diberikannya, atau hapus entri dari `~/.claude/plugins/known_marketplaces.json`3661* Untuk peringatan entri yang diabaikan, jalankan perintah `claude plugin marketplace remove` yang diberikannya, atau hapus entri dari `~/.claude/plugins/known_marketplaces.json`

3456 3662 

3663<h3 id="claude-code-refuses-the-marketplace-name">

3664 Claude Code refuses the marketplace name

3665</h3>

3666 

3667Nama marketplace yang terdaftar [menyamar sebagai marketplace Anthropic resmi](/docs/id/plugins/marketplace-reference#reserved-names) di bawah aturan yang bagian itu daftar.

3668 

3669Jika marketplace terdaftar dengan nama seperti itu sebelum pemeriksaan memblokir, marketplace dan plugin yang dipasang darinya berhenti memuat, karena Claude Code memeriksa nama setiap kali membaca katalog marketplace. Ketika nama meniru yang resmi, `claude plugin list` dan tab **Errors** `/plugin` melaporkan setiap plugin yang terpengaruh dengan pesan yang dimulai:

3670 

3671```text theme={null}

3672Claude Code refuses the marketplace name "anthropic-plugins-v2"

3673```

3674 

3675Untuk nama yang meniru, kesalahan marketplace itu sendiri berbunyi `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own` sebagai gantinya. `claude plugin marketplace add` menolak nama yang menyamar apa pun dengan `Marketplace name impersonates an official Anthropic/Claude marketplace`.

3676 

3677Sebelum v2.1.282, `claude plugin list` dan `/plugin` melaporkan plugin dari nama yang meniru sebagai gagal memuat juga, tanpa menamai nama marketplace sebagai penyebabnya.

3678 

3679**Yang harus dilakukan:**

3680 

3681* Jalankan `claude plugin marketplace remove <name>`. Ini juga mencopot plugin yang dipasang dari marketplace dan menghapus data tersimpannya

3682* Untuk menyimpan marketplace sebagai gantinya, tunggu sampai pemeliharanya mengganti namanya, kemudian jalankan `claude plugin marketplace update <name>`

3683* Jika Anda menerbitkan marketplace, ubah namanya di `marketplace.json` Anda; pengguna kemudian memperbarui marketplace daripada menghapusnya

3684 

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

3458 Marketplace is already added from a different source3686 Marketplace is already added from a different source

3459</h3>3687</h3>


3656 3884 

3657* Tanyakan admin organisasi claude.ai Anda untuk mengubah status yang diperlukan plugin di claude.ai3885* Tanyakan admin organisasi claude.ai Anda untuk mengubah status yang diperlukan plugin di claude.ai

3658 3886 

3887<h3 id="plugin-was-not-uninstalled">

3888 Plugin was not uninstalled

3889</h3>

3890 

3891Anda menjalankan [`claude plugin uninstall`](/docs/id/plugins/cli-reference#plugin-uninstall), atau memilih **Uninstall** di tab **Installed** `/plugin`, dan pencopotan berhenti dengan pesan yang dimulai `"<plugin>" was not uninstalled:`.

3892 

3893Ketika Claude Code menghapus entri plugin dari `enabledPlugins` dan membaca kembali file pengaturan cakupan itu, baik plugin masih dihidupkan di sana, atau file yang dapat menghidupkannya tidak dapat dibaca atau diperiksa. Menghapus opsi tersimpan plugin, rahasia, dan data sementara entri pengaturan dapat menghidupkannya kembali akan kehilangannya, jadi pencopotan berhenti sebagai gantinya: plugin tetap terpasang dan tidak ada yang disimpannya yang dihapus.

3894 

3895```text theme={null}

3896✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.

3897```

3898 

3899Bagian tengah pesan menamai file dan penyebabnya:

3900 

3901* `it is still switched on in <file>, although the settings change reported no error`: penulisan pengaturan melaporkan kesuksesan tetapi entri masih ada ketika file dibaca kembali

3902* `it is still switched on in <file>, and the settings change failed (<error>)`: file tidak dapat disimpan, untuk alasan dalam tanda kurung

3903* `<file> is there and could not be read`: file ada tetapi tidak dapat dibaca sebagai pengaturan, misalnya karena bukan JSON yang valid, jadi mungkin masih mengaktifkan plugin

3904* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`: Claude Code tidak membaca file pengaturan proyek atau lokal karena file, atau folder `.claude` yang menahannya, adalah tautan yang mengarah ke lokasi jaringan, atau karena tidak dapat memeriksa jalur itu

3905 

3906`claude plugin uninstall` keluar 1, dan dengan `--json` hasilnya membawa `failureCode: "settings_still_on"`. `/plugin` menampilkan pesan yang sama.

3907 

3908**Yang harus dilakukan:**

3909 

3910* Ikuti kalimat terakhir pesan: perbaiki atau ganti file pengaturan yang dinamainya, atau hapus entri plugin dari `enabledPlugins` di file itu sendiri, kemudian jalankan pencopotan lagi

3911 

3659<h2 id="tool-errors">3912<h2 id="tool-errors">

3660 Kesalahan alat3913 Kesalahan alat

3661</h2>3914</h2>


3705* Jika Claude harus dapat mengubah file, hapus atau persempit aturan penolakan `Read` di `/permissions` atau di [settings](/docs/id/settings-reference#permission-settings)3958* Jika Claude harus dapat mengubah file, hapus atau persempit aturan penolakan `Read` di `/permissions` atau di [settings](/docs/id/settings-reference#permission-settings)

3706* Jika file harus tetap tidak tersentuh, simpan aturan dan tambahkan aturan penolakan `Edit` untuk jalur yang sama untuk memblokir alat NotebookEdit juga3959* Jika file harus tetap tidak tersentuh, simpan aturan dan tambahkan aturan penolakan `Edit` untuk jalur yang sama untuk memblokir alat NotebookEdit juga

3707 3960 

3961<h3 id="path-cannot-contain-null-bytes">

3962 Path cannot contain null bytes

3963</h3>

3964 

3965Panggilan alat file path atau pattern argument mengandung null byte, yang sistem file dan alat pencarian tidak dapat terima. Read, Write, Edit, NotebookEdit, Glob, dan Grep memeriksa ini, dan pesan menamai alat dan argument:

3966 

3967```text theme={null}

3968Read file_path cannot contain null bytes (\0). Remove the null byte and try again.

3969```

3970 

3971Panggilan alat gagal, Claude melihat kesalahan, dan putaran berlanjut.

3972 

3973**What to do:**

3974 

3975* Tidak ada di sisi Anda: kesalahan dikembalikan ke Claude sebagai hasil alat, dan pesan itu sendiri memberitahu Claude untuk menghapus null byte dan coba lagi

3976 

3977Sebelum v2.1.281, null byte dalam jalur Read, Write, Edit, atau NotebookEdit mengakhiri seluruh putaran dengan kesalahan yang menamai `Path contains null bytes`, dan alat tidak pernah berjalan.

3978 

3708<h3 id="subagent-type-is-required">3979<h3 id="subagent-type-is-required">

3709 subagent\_type is required3980 subagent\_type is required

3710</h3>3981</h3>


3841 4112 

3842Sebelum v2.1.236, Claude Code melaporkan pengiriman ini sebagai terkirim. Sesi penerima menjatuhkannya tanpa dibaca.4113Sebelum v2.1.236, Claude Code melaporkan pengiriman ini sebagai terkirim. Sesi penerima menjatuhkannya tanpa dibaca.

3843 4114 

4115<h3 id="cross-session-message-dropped-at-the-inbox">

4116 Cross-session message was dropped at the recipient session's inbox

4117</h3>

4118 

4119Claude mengirim [pesan lintas sesi](/docs/id/cross-session-messaging) ke sesi lain Anda di mesin ini, dan kotak surat sesi itu membuangnya sebelum Claude dalam sesi itu membacanya. Baris menamai alamat penerima dan, ketika penerima memberikan alasan, menambahkan alasan setelah tanda hubung:

4120 

4121```text wrap theme={null}

4122Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.

4123```

4124 

4125Satu baris dapat mencakup beberapa pesan yang dijatuhkan. Kemudian dimulai dalam bentuk jamak, misalnya `Cross-session messages (12) were dropped`. Untuk menemukan sesi mana yang dimiliki alamat, bandingkan dengan baris [`Peer address`](/docs/id/cross-session-messaging#the-sessions-inbox-socket) yang ditampilkan `/status` di setiap sesi.

4126 

4127Setelah tanda hubung, baris memberikan satu atau lebih alasan ini:

4128 

4129* `its queue of undelivered peer messages was full`: penerima sudah menyimpan sebanyak pesan yang tidak terkirim dari sesi lain seperti yang diterima antrian

4130* `you sent faster than that session accepts`: pesan sesi pengirim tiba lebih cepat daripada penerima menerima dari satu pengirim

4131* `it repeated your previous message`: pesan identik dengan yang dikirim sesi pengirim ke penerima ini tidak lama sebelumnya

4132* `a relay loop between sessions was cut`: pesan melanjutkan rantai sesi yang saling berkirim pesan, dan rantai telah melewati penerima terlalu banyak kali atau tumbuh terlalu panjang

4133 

4134**What to do:**

4135 

4136* Asumsikan penerima tidak pernah melihat pesan yang dijatuhkan. Claude Code memberitahu Claude hal yang sama, dan memberitahunya untuk menyertakan apa pun yang masih penting dalam satu pesan nanti alih-alih mengirim ulang segera

4137* Jika sesi Anda saling mengirim pembaruan sering, minta Claude mengirim lebih sedikit, pesan yang lebih besar, seperti satu laporan ketika sesi menyelesaikan pekerjaannya

4138* Untuk `a relay loop between sessions was cut`, ketik instruksi berikutnya ke salah satu sesi sendiri. Pesan yang dikirim Claude sebagai respons terhadap prompt Anda sendiri memulai rantai baru

4139 

4140Sebelum v2.1.238, sesi pengirim tidak mendapat laporan ketika kotak surat penerima membuang pesan.

4141 

3844<h3 id="refusing-to-send-a-cross-session-message">4142<h3 id="refusing-to-send-a-cross-session-message">

3845 Refusing to send a cross-session message4143 Refusing to send a cross-session message

3846</h3>4144</h3>


3855 4153 

3856* `reply target is a symlink`: tautan simbolis duduk di jalur soket sesi target. Claude Code tidak mengirimkan melaluinya, karena tautan di sana dapat mengarahkan pesan ke titik akhir yang tidak dibuat sesi target.4154* `reply target is a symlink`: tautan simbolis duduk di jalur soket sesi target. Claude Code tidak mengirimkan melaluinya, karena tautan di sana dapat mengarahkan pesan ke titik akhir yang tidak dibuat sesi target.

3857* `cannot vet reply target`: Claude Code tidak dapat memeriksa jalur target sama sekali, misalnya karena membacanya gagal dengan kesalahan izin.4155* `cannot vet reply target`: Claude Code tidak dapat memeriksa jalur target sama sekali, misalnya karena membacanya gagal dengan kesalahan izin.

3858* `connected endpoint is not the expected process`: proses yang menahan soket bukan sesi yang ditujukan pesan, jadi alamat sudah usang atau proses lain mengganti soket.

3859* `connected endpoint identity could not be read`: Claude Code terhubung tetapi tidak dapat membaca proses mana yang menahan ujung lain, jadi tidak dapat mengkonfirmasi target. Ini bisa bersifat sementara.

3860* `connected endpoint is not owned by this user`: proses yang menahan soket berjalan sebagai akun pengguna yang berbeda, jadi bukan salah satu sesi Anda.

3861* `connected endpoint owner could not be read`: Claude Code terhubung tetapi tidak dapat membaca akun pengguna mana yang memiliki ujung lain, jadi tidak dapat mengkonfirmasi titik akhir adalah milik Anda.

3862* `connected endpoint is a different process with the expected pid`: ID proses cocok dengan yang ditujukan pesan, tetapi Claude Code tidak dapat mengkonfirmasi itu adalah proses yang sama. Biasanya sesi itu keluar dan sistem operasi menggunakan kembali ID prosesnya, jadi alamat sudah usang.

3863 4156 

3864**What to do:**4157**What to do:**

3865 4158 

3866* Biasanya tidak ada: pemeriksaan menjaga pesan agar tidak mencapai titik akhir selain sesi yang ditujukan, dan tidak ada yang dikirim4159* Biasanya tidak ada: pemeriksaan menjaga pesan agar tidak mencapai titik akhir selain sesi yang ditujukan, dan tidak ada yang dikirim

3867* Minta Claude untuk mencantumkan sesi Anda lagi dan mengirim ulang; penolakan yang disebabkan oleh alamat yang sudah usang jelas setelah Claude mengirim ke yang saat ini

3868* Jika `reply target is a symlink` berulang untuk satu sesi, periksa apa yang membuat tautan di jalur soket sesi itu, ditampilkan di `/status` di bawah `Peer address`4160* Jika `reply target is a symlink` berulang untuk satu sesi, periksa apa yang membuat tautan di jalur soket sesi itu, ditampilkan di `/status` di bawah `Peer address`

3869* Untuk `connected endpoint identity could not be read`, kirim ulang; kondisi dapat bersifat sementara

3870* Jika `connected endpoint is not owned by this user` muncul di mesin bersama, sesi di alamat itu berjalan di bawah akun pengguna lain, jadi Claude tidak dapat mengirim pesannya dari milik Anda

3871 

3872Sebelum v2.1.248, Claude Code tidak memeriksa pengguna pemilik titik akhir atau waktu mulai proses, jadi penolakan yang menamai pemeriksaan itu tidak muncul di versi sebelumnya.

3873 4161 

3874<h3 id="refusing-after-a-symlink-changed">4162<h3 id="refusing-after-a-symlink-changed">

3875 Refusing to read, write, or search a path4163 Refusing to read, write, or search a path


3885 4173 

3886* `its symlink resolution changed after permission was checked`: tautan simbolis di sepanjang jalur, atau di akar pencarian Grep atau Glob, diganti antara pemeriksaan izin dan operasi. Dalam penolakan baca, frasa dalam tanda kurung menamai perbandingan mana yang gagal.4174* `its symlink resolution changed after permission was checked`: tautan simbolis di sepanjang jalur, atau di akar pencarian Grep atau Glob, diganti antara pemeriksaan izin dan operasi. Dalam penolakan baca, frasa dalam tanda kurung menamai perbandingan mana yang gagal.

3887* `its parent-directory symlink resolution changed after permission was checked`: direktori yang dilalui jalur penulisan tidak lagi diselesaikan ke lokasi yang disetujui4175* `its parent-directory symlink resolution changed after permission was checked`: direktori yang dilalui jalur penulisan tidak lagi diselesaikan ke lokasi yang disetujui

4176* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`: Claude Code tidak dapat mengikuti jalur ke lokasi akhir di disk, misalnya karena tautan simbolis di dalamnya membentuk loop

3888* `it is a symbolic link. Write to the link's target path instead`: tautan simbolis duduk di lokasi penulisan yang disetujui itu sendiri, misalnya `CLAUDE.md` yang merupakan tautan simbolis ke `AGENTS.md`; pesan mengarahkan Claude ke target tautan4177* `it is a symbolic link. Write to the link's target path instead`: tautan simbolis duduk di lokasi penulisan yang disetujui itu sendiri, misalnya `CLAUDE.md` yang merupakan tautan simbolis ke `AGENTS.md`; pesan mengarahkan Claude ke target tautan

3889* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`: kondisi yang sama ditangkap ketika penulis lain membuka file, seperti penulisan ke `.mcp.json` yang ditautkan4178* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`: kondisi yang sama ditangkap ketika penulis lain membuka file, seperti penulisan ke `.mcp.json` yang ditautkan

3890* `Refusing to write into symlinked directory: <path>`: direktori yang menyimpan file itu sendiri adalah tautan simbolis, misalnya direktori `.claude/` proyek yang ditautkan ke lokasi lain4179* `Refusing to write into symlinked directory: <path>`: direktori yang menyimpan file itu sendiri adalah tautan simbolis, misalnya direktori `.claude/` proyek yang ditautkan ke lokasi lain


3903 4192 

3904Sebelum v2.1.251, Claude Code memeriksa kembali resolusi jalur hanya untuk penulisan file, jadi tautan yang diganti setelah pemeriksaan izin dapat mengarahkan baca atau pencarian ke lokasi berbeda tanpa pesan. Dari ini, hanya penolakan penulisan direktori induk, melalui-tautan, dan direktori-tertaut muncul di versi sebelumnya.4193Sebelum v2.1.251, Claude Code memeriksa kembali resolusi jalur hanya untuk penulisan file, jadi tautan yang diganti setelah pemeriksaan izin dapat mengarahkan baca atau pencarian ke lokasi berbeda tanpa pesan. Dari ini, hanya penolakan penulisan direktori induk, melalui-tautan, dan direktori-tertaut muncul di versi sebelumnya.

3905 4194 

4195Sebelum v2.1.280, penolakan `where it leads on disk could not be determined` tidak muncul.

4196 

3906<h3 id="task-output-swap-refused">4197<h3 id="task-output-swap-refused">

3907 Task output swap refused4198 Task output swap refused

3908</h3>4199</h3>


3928* Atau periksa direktori proyek Anda di bawah direktori temp Claude Code, `/private/tmp/claude-501/-Users-you-my-project` dalam pesan contoh. Jika jalur itu adalah tautan simbolis, atau direktori yang tidak seharusnya ada, hapus tautan atau direktori itu sendiri daripada target tautan, dan mulai ulang Claude Code4219* Atau periksa direktori proyek Anda di bawah direktori temp Claude Code, `/private/tmp/claude-501/-Users-you-my-project` dalam pesan contoh. Jika jalur itu adalah tautan simbolis, atau direktori yang tidak seharusnya ada, hapus tautan atau direktori itu sendiri daripada target tautan, dan mulai ulang Claude Code

3929* Jika penolakan berulang, proses mengganti, menautkan, atau menghapus entri di bawah direktori temp Claude Code saat sesi berjalan. Atur [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) ke direktori yang tidak dikelola apa pun dan mulai ulang4220* Jika penolakan berulang, proses mengganti, menautkan, atau menghapus entri di bawah direktori temp Claude Code saat sesi berjalan. Atur [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) ke direktori yang tidak dikelola apa pun dan mulai ulang

3930 4221 

4222<h3 id="disk-quota-or-temp-filesystem-is-full">

4223 Disk quota or temp filesystem is full

4224</h3>

4225 

4226Claude Code menyimpan output setiap perintah Bash dan PowerShell ke file di bawah direktori tempnya. Ketika perintah keluar dengan kode bukan nol dan tidak ada output sama sekali, Claude Code memeriksa apakah sistem file yang menyimpan file itu kehabisan ruang atau inode, atau apakah kuota disk Anda di dalamnya penuh. Jika demikian, diagnostik muncul dalam hasil perintah sebagai pengganti output kosong:

4227 

4228```text wrap theme={null}

4229Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.

4230```

4231 

4232Pesan menamai apa yang kehabisan:

4233 

4234* `Your disk quota is full ... (EDQUOT)`: kuota Anda sendiri di sistem file itu penuh. Kuota dapat penuh sementara sistem file masih menunjukkan ruang gratis

4235* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`: sistem file, atau kuota Anda di dalamnya, tidak memiliki ruang tersisa

4236* `Command output was lost: the temp filesystem at ... is full` atau `... is out of inodes`: sistem file memiliki hampir tidak ada ruang gratis tersisa, atau kehabisan inode

4237 

4238**What to do:**

4239 

4240* Hapus file yang tidak lagi Anda butuhkan di sistem file yang menyimpan direktori temp Claude Code. Untuk `EDQUOT`, hapus file yang dihitung terhadap kuota Anda sendiri. Untuk `out of inodes`, hapus banyak file daripada beberapa file besar, karena setiap file membutuhkan satu inode apa pun ukurannya

4241* Atau mulai ulang Claude Code dengan [`CLAUDE_CODE_TMPDIR`](/docs/id/env-vars) diatur ke direktori di sistem file dengan ruang

4242* Kemudian minta Claude menjalankan perintah lagi. Output yang dicetak hilang, bukan dipotong

4243 

3931<h3 id="the-source-file-is-not-valid-utf-8-text">4244<h3 id="the-source-file-is-not-valid-utf-8-text">

3932 The source file is not valid UTF-8 text4245 The source file is not valid UTF-8 text

3933</h3>4246</h3>


3995 Perintah ditolak dalam sesi latar belakang4308 Perintah ditolak dalam sesi latar belakang

3996</h3>4309</h3>

3997 4310 

3998Perintah yang membuka dialog interaktif tidak dapat melakukannya saat tidak ada terminal yang terhubung ke sesi latar belakang. `/install-github-app`, daftar pengaturan `/mcp`, dan tindakan autentikasi dalam menu server MCP merespons dengan pesan, dan sesi muncul di bawah **Needs input** dalam [tampilan agen](/docs/id/agent-view) sehingga Anda dapat menemukannya, melampirkan, dan menjalankan perintah lagi. Saat terminal terhubung, perintah-perintah ini berfungsi secara normal.4311Perintah yang membuka dialog interaktif tidak dapat melakukannya saat tidak ada terminal yang terhubung ke sesi latar belakang. `/install-github-app`, daftar pengaturan `/mcp`, dan tindakan autentikasi dalam menu server MCP merespons dengan pesan. Untuk `/install-github-app` dan daftar pengaturan `/mcp`, sesi juga muncul di bawah **Needs input** dalam [tampilan agen](/docs/id/agent-view) sehingga Anda dapat menemukannya, melampirkan, dan menjalankan perintah lagi. Saat terminal terhubung, perintah-perintah ini berfungsi secara normal.

3999 4312 

4000Sebelum v2.1.216, sesi tidak muncul di bawah **Needs input** setelah salah satu penolakan ini. Di v2.1.213 hingga v2.1.215, perintah masih berfungsi saat terminal terhubung, dan pesan penolakan memberi tahu Anda untuk melampirkan dan menjalankan perintah lagi. Dari v2.1.208 hingga v2.1.212, Claude Code menolaknya bahkan saat terminal terhubung, dengan pesan seperti `Can't open MCP settings in a background session`; pada versi tersebut, jalankan perintah dari sesi `claude` biasa sebagai gantinya, atau tingkatkan. Sebelum v2.1.208, mereka membuka dialog mereka di dalam sesi latar belakang. Di v2.1.208 saja, Claude Code juga menolak pemilih `/model` dalam sesi latar belakang, dan `/upgrade` mencetak URL upgrade alih-alih membuka browser.4313Sebelum v2.1.216, sesi tidak muncul di bawah **Needs input** setelah `/install-github-app` atau daftar pengaturan `/mcp` ditolak. Di v2.1.213 hingga v2.1.215, perintah masih berfungsi saat terminal terhubung, dan pesan penolakan memberi tahu Anda untuk melampirkan dan menjalankan perintah lagi. Dari v2.1.208 hingga v2.1.212, Claude Code menolaknya bahkan saat terminal terhubung, dengan pesan seperti `Can't open MCP settings in a background session`; pada versi tersebut, jalankan perintah dari sesi `claude` biasa sebagai gantinya, atau tingkatkan. Sebelum v2.1.208, mereka membuka dialog mereka di dalam sesi latar belakang. Di v2.1.208 saja, Claude Code juga menolak pemilih `/model` dalam sesi latar belakang, dan `/upgrade` mencetak URL upgrade alih-alih membuka browser.

4001 4314 

4002Kata-kata tersebut menamai perintah. Daftar pengaturan `/mcp` melaporkan:4315Kata-kata tersebut menamai perintah. Daftar pengaturan `/mcp` melaporkan:

4003 4316 


4007 4320 

4008**Yang harus dilakukan:**4321**Yang harus dilakukan:**

4009 4322 

4010* Lampirkan ke sesi dari tampilan agen, di mana sesi terdaftar di bawah **Needs input**, dan jalankan perintah lagi4323* Lampirkan ke sesi dari tampilan agen dan jalankan perintah lagi

4011* Atau gunakan formulir yang dinamai pesan, seperti `/mcp reconnect <server>`, `/mcp enable`, atau `/mcp disable`, yang berfungsi tanpa melampirkan4324* Atau gunakan formulir yang dinamai pesan, seperti `/mcp reconnect <server>`, `/mcp enable`, atau `/mcp disable`, yang berfungsi tanpa melampirkan

4012 4325 

4013<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">4326<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">


4042**Yang harus dilakukan:**4355**Yang harus dilakukan:**

4043 4356 

4044* Biasanya tidak ada: Claude mencoba lagi dengan ejaan lokal yang diminta pesan4357* Biasanya tidak ada: Claude mencoba lagi dengan ejaan lokal yang diminta pesan

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

4046 4358 

4047<h3 id="command-blocked-by-the-worktree-isolation-checks">4359<h3 id="command-blocked-by-the-worktree-isolation-checks">

4048 Perintah diblokir oleh pemeriksaan isolasi worktree4360 Perintah diblokir oleh pemeriksaan isolasi worktree


4279 4591 

4280Pada instalasi npm, `EUNKNOWN` yang muncul saat `npm install -g @anthropic-ai/claude-code` mengganti biner memiliki penyebab yang sama dengan [`EACCES` selama reinstal](#eacces-when-starting-a-background-session) dan hilang ketika Anda mencoba lagi setelah instalasi selesai.4592Pada instalasi npm, `EUNKNOWN` yang muncul saat `npm install -g @anthropic-ai/claude-code` mengganti biner memiliki penyebab yang sama dengan [`EACCES` selama reinstal](#eacces-when-starting-a-background-session) dan hilang ketika Anda mencoba lagi setelah instalasi selesai.

4281 4593 

4282Claude Code memulai layanan latar belakang melalui PowerShell sehingga layanan bertahan menutup terminal, menggunakan PowerShell 7 ketika diinstal dan Windows PowerShell 5.1 sebaliknya. Ketika tidak ada PowerShell yang dapat berjalan, Claude Code memulai layanan secara langsung sebagai gantinya, jadi kebijakan yang memblokir hanya PowerShell tidak menyebabkan kesalahan ini. Jika Anda melihatnya saat tidak ada instalasi npm yang berjalan, kebijakan memblokir executable Claude Code itu sendiri.4594Claude Code memulai layanan latar belakang melalui PowerShell sehingga layanan bertahan menutup terminal, menggunakan PowerShell 7 ketika diinstal dan Windows PowerShell 5.1 sebaliknya. Ketika tidak ada PowerShell yang dapat berjalan, Claude Code memulai layanan secara langsung sebagai gantinya, jadi kebijakan yang memblokir hanya PowerShell tidak menyebabkan kesalahan ini.

4283 4595 

4284Sebelum v2.1.212, Claude Code hanya menggunakan Windows PowerShell 5.1 untuk memulai layanan, jadi mesin apa pun di mana Group Policy memblokir PowerShell 5.1 gagal dengan `Couldn't start the session — EUNKNOWN: unknown error, uv_spawn`, bahkan dengan PowerShell 7 diinstal.4596Sebelum v2.1.212, Claude Code hanya menggunakan Windows PowerShell 5.1 untuk memulai layanan, jadi mesin apa pun di mana Group Policy memblokir PowerShell 5.1 gagal dengan `Couldn't start the session — EUNKNOWN: unknown error, uv_spawn`, bahkan dengan PowerShell 7 diinstal.

4285 4597 


4287 4599 

4288* Jika pesan berbunyi `Couldn't start the session`, tingkatkan ke v2.1.212 atau lebih baru. Pada versi sebelumnya Anda juga dapat menjalankan `claude daemon run` di terminal terpisah terlebih dahulu, kemudian mulai sesi latar belakang lagi. Perintah itu menjalankan layanan latar belakang di latar depan terminal, jadi layanan berlangsung hanya selama terminal itu tetap terbuka.4600* Jika pesan berbunyi `Couldn't start the session`, tingkatkan ke v2.1.212 atau lebih baru. Pada versi sebelumnya Anda juga dapat menjalankan `claude daemon run` di terminal terpisah terlebih dahulu, kemudian mulai sesi latar belakang lagi. Perintah itu menjalankan layanan latar belakang di latar depan terminal, jadi layanan berlangsung hanya selama terminal itu tetap terbuka.

4289* Jika instalasi npm mengganti biner, tunggu hingga selesai, kemudian mulai sesi latar belakang lagi4601* Jika instalasi npm mengganti biner, tunggu hingga selesai, kemudian mulai sesi latar belakang lagi

4290* Jika kesalahan muncul pada v2.1.212 atau lebih baru saat tidak ada instalasi npm yang berjalan, minta administrator Windows Anda untuk mengizinkan executable Claude Code dalam kebijakan pembatasan4602* Jika kesalahan muncul pada v2.1.212 atau lebih baru saat tidak ada instalasi npm yang berjalan, periksa dengan administrator Windows Anda apakah kebijakan pembatasan memblokir executable Claude Code

4291* Jika layanan latar belakang berhenti ketika Anda menutup terminal, Claude Code memulainya tanpa PowerShell. Instal PowerShell 7, atau minta administrator Anda untuk membuka blokir PowerShell, sehingga layanan dapat bertahan lebih lama dari terminal.4603* Jika layanan latar belakang berhenti ketika Anda menutup terminal, Claude Code memulainya tanpa PowerShell. Instal PowerShell 7, atau minta administrator Anda untuk membuka blokir PowerShell, sehingga layanan dapat bertahan lebih lama dari terminal.

4292 4604 

4293<h3 id="eacces-when-starting-a-background-session">4605<h3 id="eacces-when-starting-a-background-session">


4343 Direktori kerja tidak lagi ada saat memulai sesi latar belakang4655 Direktori kerja tidak lagi ada saat memulai sesi latar belakang

4344</h3>4656</h3>

4345 4657 

4346Anda mencoba memulai [sesi latar belakang](/docs/id/agent-view) dalam direktori yang tidak lagi ada. Ini terjadi ketika Anda mengirim dari tampilan agen atau menjalankan `/background` setelah direktori tempat Anda bekerja dihapus atau dipindahkan. Ini juga terjadi ketika Anda melampirkan ke atau memulai ulang sesi yang prosesnya telah keluar dan direktorinya hilang, karena proses baru akan dimulai di direktori yang sama. Claude Code tidak memulai sesi, dan pesan menamai direktori yang hilang:4658Direktori tempat Anda memulai [sesi latar belakang](/docs/id/agent-view) dihapus saat sesi dimulai. Claude Code tidak memulai sesi, dan pesan menamai direktori yang hilang:

4347 4659 

4348```text theme={null}4660```text theme={null}

4349Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)4661Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)


4351 4663 

4352Sebelum v2.1.257, sesi tampak dimulai dan kemudian ditampilkan dalam tampilan agen sebagai baris yang gagal dengan alasan yang sama.4664Sebelum v2.1.257, sesi tampak dimulai dan kemudian ditampilkan dalam tampilan agen sebagai baris yang gagal dengan alasan yang sama.

4353 4665 

4666Sebelum v2.1.281, pesan ini juga muncul ketika direktori sudah hilang sebelum Anda memulai sesi. Kasus itu melaporkan [`could not be resolved on disk`](#workspace-not-trusted-when-dispatching-a-background-session).

4667 

4354**Yang harus dilakukan:**4668**Yang harus dilakukan:**

4355 4669 

4356* Buat ulang direktori yang dinamai pesan, atau kirim dari direktori yang ada, kemudian coba lagi4670* Buat ulang direktori yang dinamai pesan, atau kirim dari direktori yang ada, kemudian coba lagi

4357 4671 

4672<h3 id="workspace-not-trusted-when-dispatching-a-background-session">

4673 Ruang kerja tidak dipercaya saat mengirim sesi latar belakang

4674</h3>

4675 

4676Anda memulai atau memulai ulang [sesi latar belakang](/docs/id/agent-view) dalam direktori yang belum Anda [percayai](/docs/id/permissions#project-allow-rules-and-workspace-trust), dan dialog kepercayaan ruang kerja tidak dapat muncul untuk bertanya. Claude Code tidak memulai sesi:

4677 

4678```text theme={null}

4679Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.

4680```

4681 

4682Dari terminal di direktori sesi itu sendiri, perintah yang sama menampilkan dialog kepercayaan sebagai gantinya dan memulai sesi setelah Anda menerima. Pesan ini muncul di mana tidak ada dialog yang dapat muncul, seperti dalam skrip, atau ketika Anda memulai ulang sesi dari direktori selain miliknya sendiri.

4683 

4684Dua varian menamai penyebab berbeda:

4685 

4686* **`The home directory is trusted one session at a time`**: direktori sesi adalah direktori home Anda. Claude Code tidak pernah menyimpan kepercayaan untuk direktori home, jadi menerima dialog di sana dalam sesi sebelumnya tidak dihitung.

4687* **`<path> could not be resolved on disk`**: Claude Code tidak dapat menemukan direktori sesi di disk.

4688 

4689**Yang harus dilakukan:**

4690 

4691* Jalankan `claude` di direktori yang dinamai pesan dan terima dialog kepercayaan, kemudian jalankan perintah lagi

4692* Untuk pesan direktori home, jalankan perintah dari terminal di direktori home Anda sehingga dialog dapat muncul, atau mulai sesi dari direktori proyek sebagai gantinya

4693* Untuk pesan `could not be resolved on disk`, buat ulang direktori, atau mulai sesi baru dari direktori yang ada

4694 

4358<h2 id="wrapper-and-ide-errors">4695<h2 id="wrapper-and-ide-errors">

4359 Kesalahan Wrapper dan IDE4696 Kesalahan Wrapper dan IDE

4360</h2>4697</h2>


4439 4776 

4440* Identifikasi file mana yang dilewati sehingga Anda dapat menangani masing-masing dengan langkah-langkah di bawah ini. Pesan hanya memberikan hitungan; log debug di `~/.claude/debug/<session-id>.txt` menamai setiap jalur yang dilewati saat pemulihan berjalan, jadi aktifkan logging debug dengan `/debug` sebelum pemulihan berikutnya Anda. Di macOS atau Linux, Anda dapat menemukan link secara langsung: `find . -type l` untuk symlink dan `find . -type f -links +1` untuk file hard-linked.4777* Identifikasi file mana yang dilewati sehingga Anda dapat menangani masing-masing dengan langkah-langkah di bawah ini. Pesan hanya memberikan hitungan; log debug di `~/.claude/debug/<session-id>.txt` menamai setiap jalur yang dilewati saat pemulihan berjalan, jadi aktifkan logging debug dengan `/debug` sebelum pemulihan berikutnya Anda. Di macOS atau Linux, Anda dapat menemukan link secara langsung: `find . -type l` untuk symlink dan `find . -type f -links +1` untuk file hard-linked.

4441* Jika file yang dilewati adalah link yang Anda buat dengan sengaja, seperti file konfigurasi yang dikelola oleh manajer dotfile atau file yang hard-linked oleh alat seperti pnpm, rewind membiarkan kontennya saja. Untuk membatalkan perubahan sesi terhadapnya, minta Claude untuk membalikkan edit atau edit file sendiri4778* Jika file yang dilewati adalah link yang Anda buat dengan sengaja, seperti file konfigurasi yang dikelola oleh manajer dotfile atau file yang hard-linked oleh alat seperti pnpm, rewind membiarkan kontennya saja. Untuk membatalkan perubahan sesi terhadapnya, minta Claude untuk membalikkan edit atau edit file sendiri

4442* Jika Anda tidak membuat link, periksa jalur sebelum mempercayai kontennya: sesuatu mengganti file setelah checkpoint4779* Jika Anda tidak membuat link, periksa jalur sebelum mempercayai kontennya

4443 4780 

4444<h3 id="no-files-were-restored">4781<h3 id="no-files-were-restored">

4445 No files were restored4782 No files were restored


4587* Perpendek frontmatter `description` dari file agent Anda, atau minta Claude untuk memangkasnya untuk Anda.4924* Perpendek frontmatter `description` dari file agent Anda, atau minta Claude untuk memangkasnya untuk Anda.

4588* Hapus file agent yang tidak lagi Anda gunakan.4925* Hapus file agent yang tidak lagi Anda gunakan.

4589 4926 

4927<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

4928 Skill, command, atau workflow tidak dimuat karena namanya dicadangkan

4929</h3>

4930 

4931Folder skill, frontmatter `name`, file atau subfolder di `.claude/commands/`, atau [saved workflow](/docs/id/workflows#save-the-workflow-for-reuse) menggunakan nama `anthropic-skills` atau nama yang dimulai dengan `anthropic-skills:`. Claude Code [mencadangkan nama itu untuk skills yang disinkronkan dari claude.ai](/docs/id/skills#names-reserved-for-synced-skills) dan tidak memuat item itu.

4932 

4933Claude Code menampilkan peringatan ini sebagai pemberitahuan startup dalam tampilan percakapan daripada di stderr:

4934 

4935```text theme={null}

4936Not loaded: rename .claude/skills/anthropic-skills, then restart — its name uses "anthropic-skills", a name reserved for the skills synced from your claude.ai account

4937```

4938 

4939Pemberitahuan menyebutkan apa yang harus diubah untuk item pertama yang ditolak: folder atau file untuk diubah nama, baris `name:` untuk diedit, atau workflow untuk diubah nama. Ketika lebih dari satu item ditolak, pemberitahuan berakhir dengan hitungan seperti `· 2 more`, dan [log debug](/docs/id/debug-your-config) menyebutkan masing-masing.

4940 

4941**Yang harus dilakukan:**

4942 

4943* Ubah nama item yang dinamai pemberitahuan, atau edit baris `name:` yang ditunjuknya, kemudian restart sesi.

4944 

4945Sebelum v2.1.282, Claude Code memuat skills dan commands dengan nama-nama ini.

4946 

4590<h3 id="workspace-has-not-been-trusted">4947<h3 id="workspace-has-not-been-trusted">

4591 Workspace belum dipercaya4948 Workspace belum dipercaya

4592</h3>4949</h3>


4633 Pengaturan yang dikelola jarak jauh gagal dimuat4990 Pengaturan yang dikelola jarak jauh gagal dimuat

4634</h3>4991</h3>

4635 4992 

4636Sesi Anda memenuhi syarat untuk [server-managed settings](/docs/id/server-managed-settings), tetapi Claude Code tidak dapat mengambilnya, jadi menampilkan peringatan ini dalam sesi interaktif. Penyebab dalam tanda kurung menyebutkan apa yang gagal, seperti `network error`, `request timed out`, atau `authentication rejected (401)`, dan sisa baris mengatakan kebijakan mana yang dijalankan sesi:4993Sesi Anda memenuhi syarat untuk [server-managed settings](/docs/id/server-managed-settings), tetapi Claude Code tidak dapat mengambilnya atau tidak dapat menerapkan apa yang dikembalikan server, jadi menampilkan peringatan ini dalam sesi interaktif.

4994 

4995Penyebab dalam tanda kurung menyebutkan apa yang gagal, seperti `network error`, `request timed out`, atau `authentication rejected (401)`. Penyebab `no setting in the server response could be applied as written` berarti server menjawab tetapi tidak ada pengaturan yang dikembalikannya yang lulus [validation](/docs/id/server-managed-settings#invalid-entries-in-delivered-settings). Sebelum v2.1.282, penyebab ini berbunyi `server returned invalid settings`.

4996 

4997Sisa baris mengatakan kebijakan mana yang dijalankan sesi:

4637 4998 

4638* **Pengaturan di-cache dari pengambilan sebelumnya yang berhasil**: Claude Code menjalankan sesi pada kebijakan yang di-cache itu, kecuali [variabel lingkungan yang ditahan](/docs/id/server-managed-settings#fetch-and-caching-behavior), dan baris berbunyi `using cached policy`.4999* **Pengaturan di-cache dari pengambilan sebelumnya yang berhasil**: Claude Code menjalankan sesi pada kebijakan yang di-cache itu, kecuali [variabel lingkungan yang ditahan](/docs/id/server-managed-settings#fetch-and-caching-behavior), dan baris berbunyi `using cached policy`.

4639* **Tidak ada cache**: Claude Code menjalankan sesi tanpa server-managed settings, dan baris berbunyi `no remote policy applied`.5000* **Tidak ada cache**: Claude Code menjalankan sesi tanpa server-managed settings, dan baris berbunyi `no remote policy applied`.


4641**Yang harus dilakukan:**5002**Yang harus dilakukan:**

4642 5003 

4643* Bertindak atas penyebab yang dinamai pesan: untuk penyebab jaringan, periksa bahwa mesin ini dapat menjangkau `api.anthropic.com`; untuk penyebab autentikasi, periksa sign-in Anda dengan `/status`5004* Bertindak atas penyebab yang dinamai pesan: untuk penyebab jaringan, periksa bahwa mesin ini dapat menjangkau `api.anthropic.com`; untuk penyebab autentikasi, periksa sign-in Anda dengan `/status`

5005* Untuk `no setting in the server response could be applied as written`, minta administrator Anda untuk memperbaiki pengaturan di server

4644* Jalankan `/status` atau `claude doctor` untuk diagnostik lengkap5006* Jalankan `/status` atau `claude doctor` untuk diagnostik lengkap

4645 5007 

4646Sebelum v2.1.248, Claude Code melaporkan pengambilan pengaturan yang gagal hanya dalam log debug.5008Sebelum v2.1.248, Claude Code melaporkan pengambilan pengaturan yang gagal hanya dalam log debug.


4660* Mulai Claude Code lagi dan setujui dialog untuk melanjutkan di bawah pengaturan organisasi Anda. Dialog yang ditolak tidak diingat, jadi muncul lagi pada startup berikutnya.5022* Mulai Claude Code lagi dan setujui dialog untuk melanjutkan di bawah pengaturan organisasi Anda. Dialog yang ditolak tidak diingat, jadi muncul lagi pada startup berikutnya.

4661* Jika Anda tidak yakin tentang pengaturan yang dialog cantumkan, tanyakan kepada siapa pun yang memelihara pengaturan yang dikelola organisasi Anda sebelum menyetujui5023* Jika Anda tidak yakin tentang pengaturan yang dialog cantumkan, tanyakan kepada siapa pun yang memelihara pengaturan yang dikelola organisasi Anda sebelum menyetujui

4662 5024 

5025<h3 id="managed-settings-block-the-default-model">

5026 Managed settings memblokir model default

5027</h3>

5028 

5029[Managed settings](/docs/id/managed-settings) organisasi Anda memblokir model yang opsi Default diselesaikan dan setiap model yang dapat diturunkan. Sesi yang akan dimulai pada opsi Default keluar pada startup daripada menjalankan model yang diblokir. Pesan mana yang Anda lihat tergantung pada pengaturan yang memblokir. Ketika daftar [`deniedModels`](/docs/id/model-config#block-specific-models-or-versions) memblokir, pesan berbunyi:

5030 

5031```text theme={null}

5032Claude Code can't start: your organization's managed settings block the default model (claude-opus-5-5) in "deniedModels", and none of the models they allow can be used as the default instead. Ask your administrator to update "deniedModels" or "availableModels".

5033```

5034 

5035Ketika daftar `availableModels` dengan [`availableModelsMatch`](/docs/id/settings-reference#availablemodelsmatch) diatur ke `"exact"` menghilangkannya, pesan berbunyi:

5036 

5037```text theme={null}

5038Claude Code can't start: your organization allows only the models listed in "availableModels", and none of them can be used as the default model (claude-opus-5-5 isn't listed). Ask your administrator to update "availableModels".

5039```

5040 

5041**Yang harus dilakukan:**

5042 

5043* Jika Anda mengelola pengaturan, tambahkan model yang dapat dijalankan pengguna Anda ke `availableModels`, atau persempit entri `deniedModels` yang memblokir setiap fallback. [Block specific models or versions](/docs/id/model-config#block-specific-models-or-versions) menjelaskan bagaimana opsi Default diturunkan

5044* Jika Anda tidak mengelolanya, kirim pesan ke administrator Anda. File pengaturan Anda sendiri tidak dapat memperluas daftar `availableModels` atau `deniedModels` yang dikelola

5045 

4663<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">5046<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">

4664 Server MCP diblokir oleh kebijakan yang dikelola perusahaan5047 Server MCP diblokir oleh kebijakan yang dikelola perusahaan

4665</h3>5048</h3>


4929 5312 

4930* [`--fallback-model`](/docs/id/cli-reference#cli-flags) yang dikonfigurasi mengambil alih setelah kesalahan ketersediaan, hanya untuk giliran itu, dengan pemberitahuan dalam transkrip5313* [`--fallback-model`](/docs/id/cli-reference#cli-flags) yang dikonfigurasi mengambil alih setelah kesalahan ketersediaan, hanya untuk giliran itu, dengan pemberitahuan dalam transkrip

4931* Pemeriksaan startup Amazon Bedrock atau Google Cloud's Agent Platform menemukan model default Anda tidak tersedia5314* Pemeriksaan startup Amazon Bedrock atau Google Cloud's Agent Platform menemukan model default Anda tidak tersedia

4932* [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 transkrip5315* [Fallback model otomatis](/docs/id/model-config#automatic-model-fallback) pada Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5, dan Opus 5 memindahkan sesi ke model fallback kategori yang ditandai, ketika kategori itu memiliki satu, dan menampilkan pemberitahuan dalam transkrip

4933 5316 

4934Pemeriksaan 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.5317Pemeriksaan 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.

4935 5318 

Details

219</table>219</table>

220 220 

221<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> Di Platform Agent Google Cloud, web search tersedia untuk model Claude 4 dan yang lebih baru.<br />221<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> Di Platform Agent Google Cloud, web search tersedia untuk model Claude 4 dan yang lebih baru.<br />

222<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Di penyedia ini, auto mode mendukung hanya Claude Sonnet 5, Opus 4.7 atau yang lebih baru, dan model Fable. Lihat [Konfigurasi Auto mode](/docs/id/auto-mode-config). Mode izin awal bawaan di penyedia ini adalah Manual. Lihat [mode mana yang dimulai sesi](/docs/id/permission-modes#which-mode-a-session-starts-in). Di v2.1.158 hingga v2.1.206, auto mode di penyedia ini juga memerlukan pengaturan `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 menghapus persyaratan.<br />222<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> Di penyedia ini, auto mode mendukung hanya Claude Sonnet 5 atau yang lebih baru, Opus 4.7 atau yang lebih baru, dan model Fable. Lihat [Konfigurasi Auto mode](/docs/id/auto-mode-config). Untuk mode izin yang dimulai sesi di penyedia ini, lihat [Mode mana yang dimulai sesi](/docs/id/permission-modes#which-mode-a-session-starts-in). Di v2.1.158 hingga v2.1.206, auto mode di penyedia ini juga memerlukan pengaturan `CLAUDE_CODE_ENABLE_AUTO_MODE=1`; v2.1.207 menghapus persyaratan.<br />

223<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Tunduk pada perjanjian Anda dengan penyedia cloud.<br />223<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> Tunduk pada perjanjian Anda dengan penyedia cloud.<br />

224<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Dashboard dan API saja. [Metrik kontribusi](/docs/id/analytics#enable-contribution-metrics) memerlukan organisasi Team atau Enterprise claude.ai.<br />224<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> Dashboard dan API saja. [Metrik kontribusi](/docs/id/analytics#enable-contribution-metrics) memerlukan organisasi Team atau Enterprise claude.ai.<br />

225<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Memerlukan Claude Code v2.1.224 atau yang lebih baru di macOS dan Linux, termasuk Linux di dalam WSL 2. Di Windows asli, memerlukan Claude Code v2.1.234 atau yang lebih baru. Dengan autentikasi kunci API, pesan hanya mesin yang sama. Di Amazon Bedrock, Claude Platform di AWS, Platform Agent Google Cloud, dan Microsoft Foundry, pesan hanya mesin yang sama dan memerlukan Claude Code v2.1.248 atau yang lebih baru. Claude dapat menemukan sesi [Claude Code di web](/docs/id/claude-code-on-the-web) Anda dan sesi Anda di mesin lain hanya dari sesi yang terhubung ke [Remote Control](/docs/id/remote-control). Untuk terhubung, Anda memerlukan masuk claude.ai dan [persyaratan Remote Control lainnya](/docs/id/remote-control#requirements). Lihat [Pesan sesi di mesin lain](/docs/id/cross-session-messaging#message-sessions-on-other-machines).225<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> Memerlukan Claude Code v2.1.224 atau yang lebih baru di macOS dan Linux, termasuk Linux di dalam WSL 2. Di Windows asli, memerlukan Claude Code v2.1.234 atau yang lebih baru. Dengan autentikasi kunci API, pesan hanya mesin yang sama. Di Amazon Bedrock, Claude Platform di AWS, Platform Agent Google Cloud, dan Microsoft Foundry, pesan hanya mesin yang sama dan memerlukan Claude Code v2.1.248 atau yang lebih baru. Claude dapat menemukan [sesi Claude Code di web](/docs/id/claude-code-on-the-web) Anda dan sesi Anda di mesin lain hanya dari sesi yang terhubung ke [Remote Control](/docs/id/remote-control). Untuk terhubung, Anda memerlukan masuk claude.ai dan [persyaratan Remote Control lainnya](/docs/id/remote-control#requirements). Lihat [Pesan sesi di mesin lain](/docs/id/cross-session-messaging#message-sessions-on-other-machines).

226 226 

227<Note>227<Note>

228 Jika Anda melakukan autentikasi melalui [gateway LLM](/docs/id/llm-gateway), ketersediaan fitur cocok dengan penyedia yang mendasarinya yang gateway teruskan, kecuali untuk fitur yang Claude Code sendiri matikan. Kapan pun `ANTHROPIC_BASE_URL` menunjuk ke host selain `api.anthropic.com`, Claude Code mematikan fitur seperti [Remote Control](/docs/id/remote-control#requirements) dan [pengaturan terkelola server](/docs/id/server-managed-settings#platform-availability), apa pun yang gateway teruskan. Beberapa fitur khusus Anthropic seperti [Advisor](/docs/id/advisor) hanya bekerja jika gateway meneruskan permintaan utuh ke API Anthropic.228 Jika Anda melakukan autentikasi melalui [gateway LLM](/docs/id/llm-gateway), ketersediaan fitur cocok dengan penyedia yang mendasarinya yang gateway teruskan, kecuali untuk fitur yang Claude Code sendiri matikan. Kapan pun `ANTHROPIC_BASE_URL` menunjuk ke host selain `api.anthropic.com`, Claude Code mematikan fitur seperti [Remote Control](/docs/id/remote-control#requirements) dan [pengaturan terkelola server](/docs/id/server-managed-settings#platform-availability), apa pun yang gateway teruskan. Beberapa fitur khusus Anthropic seperti [Advisor](/docs/id/advisor) hanya bekerja jika gateway meneruskan permintaan utuh ke API Anthropic.


243 **Dukungan parsial:**243 **Dukungan parsial:**

244 244 

245 * [Desktop](/docs/id/desktop): hanya melalui [Claude Desktop pada 3P](https://claude.com/docs/third-party/claude-desktop/overview)245 * [Desktop](/docs/id/desktop): hanya melalui [Claude Desktop pada 3P](https://claude.com/docs/third-party/claude-desktop/overview)

246 * [Auto mode](/docs/id/auto-mode-config): Sonnet 5, Opus 4.7 atau yang lebih baru, dan model Fable saja246 * [Auto mode](/docs/id/auto-mode-config): Sonnet 5 atau yang lebih baru, Opus 4.7 atau yang lebih baru, dan model Fable saja

247 * [Pesan lintas sesi](/docs/id/cross-session-messaging): antara sesi Anda di mesin ini saja <sup><a href="#fn5">5</a></sup>247 * [Pesan lintas sesi](/docs/id/cross-session-messaging): antara sesi Anda di mesin ini saja <sup><a href="#fn5">5</a></sup>

248 * [Zero Data Retention](/docs/id/zero-data-retention): tunduk pada perjanjian AWS Anda248 * [Zero Data Retention](/docs/id/zero-data-retention): tunduk pada perjanjian AWS Anda

249 249 


269 269 

270 * [Desktop](/docs/id/desktop): melalui [pengaturan terkelola](https://claude.com/docs/third-party/claude-desktop/configuration) atau [Claude Desktop pada 3P](https://claude.com/docs/third-party/claude-desktop/overview)270 * [Desktop](/docs/id/desktop): melalui [pengaturan terkelola](https://claude.com/docs/third-party/claude-desktop/configuration) atau [Claude Desktop pada 3P](https://claude.com/docs/third-party/claude-desktop/overview)

271 * [Web search](/docs/id/tools-reference#websearch-tool-behavior): model Claude 4 dan yang lebih baru271 * [Web search](/docs/id/tools-reference#websearch-tool-behavior): model Claude 4 dan yang lebih baru

272 * [Auto mode](/docs/id/auto-mode-config): Sonnet 5, Opus 4.7 atau yang lebih baru, dan model Fable saja272 * [Auto mode](/docs/id/auto-mode-config): Sonnet 5 atau yang lebih baru, Opus 4.7 atau yang lebih baru, dan model Fable saja

273 * [Pesan lintas sesi](/docs/id/cross-session-messaging): antara sesi Anda di mesin ini saja <sup><a href="#fn5">5</a></sup>273 * [Pesan lintas sesi](/docs/id/cross-session-messaging): antara sesi Anda di mesin ini saja <sup><a href="#fn5">5</a></sup>

274 * [Zero Data Retention](/docs/id/zero-data-retention): tunduk pada perjanjian Google Cloud Anda274 * [Zero Data Retention](/docs/id/zero-data-retention): tunduk pada perjanjian Google Cloud Anda

275 275 


283 283 

284 * [Desktop](/docs/id/desktop): hanya melalui [Claude Desktop pada 3P](https://claude.com/docs/third-party/claude-desktop/overview)284 * [Desktop](/docs/id/desktop): hanya melalui [Claude Desktop pada 3P](https://claude.com/docs/third-party/claude-desktop/overview)

285 * [Web search](/docs/id/tools-reference#websearch-tool-behavior): [deployment yang dihosting di Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) saja285 * [Web search](/docs/id/tools-reference#websearch-tool-behavior): [deployment yang dihosting di Anthropic](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) saja

286 * [Auto mode](/docs/id/auto-mode-config): Sonnet 5, Opus 4.7 atau yang lebih baru, dan model Fable saja286 * [Auto mode](/docs/id/auto-mode-config): Sonnet 5 atau yang lebih baru, Opus 4.7 atau yang lebih baru, dan model Fable saja

287 * [Pesan lintas sesi](/docs/id/cross-session-messaging): antara sesi Anda di mesin ini saja <sup><a href="#fn5">5</a></sup>287 * [Pesan lintas sesi](/docs/id/cross-session-messaging): antara sesi Anda di mesin ini saja <sup><a href="#fn5">5</a></sup>

288 * [Zero Data Retention](/docs/id/zero-data-retention): tunduk pada perjanjian Azure Anda288 * [Zero Data Retention](/docs/id/zero-data-retention): tunduk pada perjanjian Azure Anda

289 289 

fullscreen.md +3 −1

Details

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

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

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

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

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

108 * Mengklik juga memerluaskan output dari perintah shell `!`, baik hasil yang dipotong lebih lama atau baris kemajuan langsung saat perintah berjalan. Memerlukan Claude Code v2.1.257 atau lebih baru.109 * Mengklik juga memerluaskan output dari perintah shell `!`, baik hasil yang dipotong lebih lama atau baris kemajuan langsung saat perintah berjalan. Memerlukan Claude Code v2.1.257 atau lebih baru.

110 * Mengklik juga memerluaskan baris `Message from @<sender>` yang redup ketika pengirim adalah [rekan tim](/docs/id/agent-teams) atau agen lain yang berjalan dalam sesi Anda. Baris untuk pesan dari [salah satu sesi Anda yang lain](/docs/id/cross-session-messaging#what-a-message-looks-like) juga menampilkan baris pertama pesan dan tidak dapat diklik, jadi tekan `Ctrl+o` untuk membaca yang itu.

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

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

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


290CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude292CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude

291```293```

292 294 

293Dengan penangkapan mouse dinonaktifkan, pengguliran keyboard dengan `PgUp`, `PgDn`, `Ctrl+Home`, dan `Ctrl+End` masih berfungsi, dan terminal Anda menangani pemilihan secara asli. Anda kehilangan klik-ke-posisi-kursor, klik-untuk-memperluas-keluaran-alat, klik URL, dan pengguliran roda di dalam Claude Code.295Dengan penangkapan mouse dinonaktifkan, pengguliran keyboard dengan `PgUp`, `PgDn`, `Ctrl+Home`, dan `Ctrl+End` masih berfungsi, dan terminal Anda menangani pemilihan secara asli. Anda kehilangan klik-ke-posisi-kursor, klik-untuk-memperluas, klik URL, dan pengguliran roda di dalam Claude Code.

294 296 

295Untuk mempertahankan pengguliran roda tetapi mematikan penanganan klik, seret, dan hover, atur `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1` sebagai gantinya. Memerlukan Claude Code v2.1.195 atau lebih baru. `CLAUDE_CODE_DISABLE_MOUSE` memiliki prioritas ketika kedua variabel diatur.297Untuk mempertahankan pengguliran roda tetapi mematikan penanganan klik, seret, dan hover, atur `CLAUDE_CODE_DISABLE_MOUSE_CLICKS=1` sebagai gantinya. Memerlukan Claude Code v2.1.195 atau lebih baru. `CLAUDE_CODE_DISABLE_MOUSE` memiliki prioritas ketika kedua variabel diatur.

296 298 

Details

252 Awal sesi gagal dengan `Unable to get organization UUID`252 Awal sesi gagal dengan `Unable to get organization UUID`

253</h3>253</h3>

254 254 

255Sesi cloud memerlukan organisasi Tim atau Enterprise. Masuk dengan `/login` menggunakan akun organisasi Anda. Jika Anda mengautentikasi dengan kunci API sebagai gantinya, sesi cloud gagal lebih awal dengan pesan yang meminta Anda menjalankan `/login`.255Claude Code tidak dapat membaca organisasi claude.ai dari kredensial Anda. Masuk dengan `/login` menggunakan akun di organisasi Team atau Enterprise Anda, karena dukungan GitHub Enterprise Server terbatas pada paket tersebut. Lihat [Unable to get organization UUID](/docs/id/claude-code-on-the-web#unable-to-get-organization-uuid) untuk penyebab dan pesan lain yang dihasilkan keadaan ini.

256 256 

257<h2 id="related-resources">257<h2 id="related-resources">

258 Sumber daya terkait258 Sumber daya terkait

glossary.md +28 −1

Details

72 Auto mode72 Auto mode

73</h3>73</h3>

74 74 

75Sebuah [permission mode](#permission-mode) di mana model classifier terpisah meninjau tindakan alih-alih Anda, sehingga Claude Code menjalankan sebagian besar dari mereka tanpa menanyakan Anda. Claude Code masih menanyakan Anda sebelum tindakan yang cocok dengan aturan ask eksplisit Anda. Pada paket Pro, Max, dan Team, auto mode adalah [permission mode awal bawaan](/docs/id/permission-modes#which-mode-a-session-starts-in) untuk sesi terminal interaktif dan VS Code. Classifier memblokir eskalasi scope, infrastruktur yang tidak dipercaya, dan [prompt injection](#prompt-injection). Hasil tool dilepas dari apa yang dilihatnya, sehingga konten berbahaya dalam file atau halaman web tidak dapat memanipulasinya secara langsung.75Sebuah [permission mode](#permission-mode) di mana model classifier terpisah meninjau tindakan alih-alih Anda, sehingga Claude Code menjalankan sebagian besar dari mereka tanpa menanyakan Anda. Claude Code masih menanyakan Anda sebelum tindakan yang cocok dengan aturan ask eksplisit Anda. Dengan Claude Code v2.1.283 atau lebih baru, auto mode adalah [permission mode awal bawaan](/docs/id/permission-modes#which-mode-a-session-starts-in) untuk sesi terminal interaktif dan VS Code, dan pada versi sebelumnya hanya pada paket Pro, Max, dan Team. Classifier memblokir eskalasi scope, infrastruktur yang tidak dipercaya, dan [prompt injection](#prompt-injection). Hasil tool dilepas dari apa yang dilihatnya, sehingga konten berbahaya dalam file atau halaman web tidak dapat memanipulasinya secara langsung.

76 76 

77Pelajari lebih lanjut: [Eliminate prompts with auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode)77Pelajari lebih lanjut: [Eliminate prompts with auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode)

78 78 


428 428 

429Pelajari lebih lanjut: [Platforms and integrations](/docs/id/platforms)429Pelajari lebih lanjut: [Platforms and integrations](/docs/id/platforms)

430 430 

431<h3 id="system-prompt">

432 System prompt

433</h3>

434 

435Instruksi yang Claude Code kirimkan sebelum percakapan Anda pada setiap permintaan, mencakup cara Claude menggunakan tools, berperilaku aman, dan memformat responsnya. Anda dapat menambahkan ke system prompt dengan `--append-system-prompt` atau menggantinya dengan `--system-prompt`. System prompt adalah lapisan pertama dari [prompt cache](/docs/id/prompt-caching#how-the-cache-is-organized).

436 

437File [CLAUDE.md](#claude-md) Anda dan instruksi [output style](#output-style) Anda bukan bagian dari system prompt. Claude Code menyampaikannya dalam percakapan sebagai [system reminder](#system-reminder).

438 

439Pelajari lebih lanjut: [System prompt flags](/docs/id/cli-reference#system-prompt-flags)

440 

441<h3 id="system-reminder">

442 System reminder

443</h3>

444 

445Pesan yang Claude Code, sebagai [harness](#agentic-harness), tambahkan ke percakapan untuk memberikan Claude konteks. Anda tidak mengirim system reminders sendiri. Claude Code menyisipkannya saat sesi berjalan, misalnya ketika sesi dimulai, ketika hook mengembalikan teks, atau ketika file berubah di disk. Claude membacanya bersama pesan Anda. Berikut ini semua mencapai Claude sebagai system reminders:

446 

447* File [CLAUDE.md](#claude-md) Anda

448* Instruksi [output style](#output-style) Anda

449* Teks yang [hook](#hook) kembalikan sebagai `additionalContext`

450* Daftar [skills](#skill) yang tersedia

451* Catatan bahwa file yang Claude baca sebelumnya telah berubah di disk

452* Baris atribusi commit dan pull request

453 

454Dalam permintaan API yang dicatat, system reminder muncul dibungkus dalam tag `<system-reminder>` di dalam pesan pengguna, atau pada beberapa model sebagai pesan terpisah dengan peran `system`.

455 

456Pelajari lebih lanjut: [Context Claude Code adds outside the system prompt](/docs/id/agent-sdk/modifying-system-prompts#context-claude-code-adds-outside-the-system-prompt)

457 

431<h2 id="t">458<h2 id="t">

432 T459 T

433</h2>460</h2>

goal.md +1 −1

Details

155 155 

156Jika giliran gagal pada kesalahan yang tidak akan dihapus sampai Anda memperbaikinya, Claude Code menghapus tujuan dan mencetak peringatan yang menyebutkan penyebabnya. Peringatan dimulai dengan `Goal cleared after an unrecoverable error` dan diakhiri dengan `Run /goal again to continue`. Perbaiki penyebabnya, kemudian [tetapkan tujuan lagi](#set-a-goal) dengan `/goal <condition>`. Empat jenis kegagalan menghapus tujuan:156Jika giliran gagal pada kesalahan yang tidak akan dihapus sampai Anda memperbaikinya, Claude Code menghapus tujuan dan mencetak peringatan yang menyebutkan penyebabnya. Peringatan dimulai dengan `Goal cleared after an unrecoverable error` dan diakhiri dengan `Run /goal again to continue`. Perbaiki penyebabnya, kemudian [tetapkan tujuan lagi](#set-a-goal) dengan `/goal <condition>`. Empat jenis kegagalan menghapus tujuan:

157 157 

158* Kegagalan autentikasi, ketika Claude Code mengelola kredensialnya sendiri. Ketika host mengelolanya untuk Anda, seperti aplikasi desktop, ekstensi VS Code, atau [sesi cloud](/docs/id/claude-code-on-the-web), Claude Code membiarkan tujuan tetap aktif karena host memulihkan akses dengan sendirinya.158* Kegagalan autentikasi, ketika Claude Code mengelola kredensialnya sendiri. Ketika host mengelolanya untuk Anda, seperti aplikasi desktop atau [sesi cloud](/docs/id/claude-code-on-the-web), Claude Code membiarkan tujuan tetap aktif karena host memulihkan akses dengan sendirinya.

159* Saldo kredit yang habis159* Saldo kredit yang habis

160* Overflow konteks yang [auto-compaction](/docs/id/model-config#set-the-auto-compact-window) tidak dapat menghapus160* Overflow konteks yang [auto-compaction](/docs/id/model-config#set-the-auto-compact-window) tidak dapat menghapus

161* Model yang tidak tersedia161* Model yang tidak tersedia

headless.md +11 −3

Details

38 Mulai lebih cepat dengan bare mode38 Mulai lebih cepat dengan bare mode

39</h3>39</h3>

40 40 

41Tambahkan `--bare` untuk mengurangi waktu startup dengan melewati penemuan otomatis hooks, skills, perintah kustom, [subagents](/docs/id/sub-agents), plugins, server MCP, auto memory, dan CLAUDE.md. Tanpanya, `claude -p` memuat [konteks](/docs/id/how-claude-code-works#the-context-window) yang sama dengan sesi interaktif, termasuk apa pun yang dikonfigurasi di direktori kerja atau `~/.claude`.41Tambahkan `--bare` untuk mengurangi waktu startup dengan melewati penemuan otomatis hooks, skills, perintah kustom, [subagents](/docs/id/sub-agents), plugins yang diinstal, server MCP, auto memory, dan CLAUDE.md. Tanpanya, `claude -p` memuat [konteks](/docs/id/how-claude-code-works#the-context-window) yang sama dengan sesi interaktif, termasuk apa pun yang dikonfigurasi di direktori kerja atau `~/.claude`.

42 42 

43Bare mode berguna untuk CI dan skrip di mana Anda memerlukan hasil yang sama di setiap mesin. Hook di `~/.claude` rekan kerja atau server MCP di `.mcp.json` proyek tidak akan berjalan, karena bare mode tidak pernah membacanya. Direktori yang Anda beri nama dengan `--add-dir` adalah pengecualian parsial: bare mode memuat skills dari folder `.claude/skills/` nya, tetapi masih melewati folder `.claude/commands/` dan `.claude/agents/` nya. [Skills dari direktori tambahan](/docs/id/skills#skills-from-additional-directories) mencakup apa yang dimuat dan tidak dimuat.43Bare mode berguna untuk CI dan skrip di mana Anda memerlukan hasil yang sama di setiap mesin. Hook di `~/.claude` rekan kerja atau server MCP di `.mcp.json` proyek tidak akan berjalan, karena bare mode tidak pernah membacanya. Direktori yang Anda beri nama dengan `--add-dir` adalah pengecualian parsial: bare mode memuat skills dari folder `.claude/skills/` nya, tetapi masih melewati folder `.claude/commands/` dan `.claude/agents/` nya. [Skills dari direktori tambahan](/docs/id/skills#skills-from-additional-directories) mencakup apa yang dimuat dan tidak dimuat.

44 44 


89* **Menjalankan perintah**: Claude Code mencatat perintah sebagai terbunuh dalam sesi.89* **Menjalankan perintah**: Claude Code mencatat perintah sebagai terbunuh dalam sesi.

90* **Menunggu jawaban untuk prompt izin**: jika Anda mengirim SIGTERM ke proses, Claude Code meninggalkan prompt tanpa jawaban. Jika program Anda menutup sesi melalui Agent SDK, SDK mengakhiri input Claude Code sebelum mengirim sinyal apa pun, dan Claude Code membatalkan prompt segera setelah input berakhir.90* **Menunggu jawaban untuk prompt izin**: jika Anda mengirim SIGTERM ke proses, Claude Code meninggalkan prompt tanpa jawaban. Jika program Anda menutup sesi melalui Agent SDK, SDK mengakhiri input Claude Code sebelum mengirim sinyal apa pun, dan Claude Code membatalkan prompt segera setelah input berakhir.

91 91 

92Ketika Anda [melanjutkan sesi](#continue-conversations), Claude Code melanjutkan giliran yang SIGTERM tinggalkan tidak selesai.92Ketika Anda [melanjutkan sesi](#continue-conversations), Claude Code meninggalkan giliran yang terputus seperti apa adanya, dan prompt berikutnya Anda mendorong percakapan. Untuk membuat Claude Code melanjutkan giliran yang terputus saat resume, atur [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN=1`](/docs/id/env-vars).

93 

94<h3 id="if-the-working-directory-is-deleted">

95 Jika direktori kerja dihapus

96</h3>

97 

98Jika direktori kerja dari sesi `claude -p` atau Agent SDK dihapus di tengah sesi, sesi terus berjalan. Ketika giliran dimulai sementara direktori hilang, Claude Code mengeluarkan [pesan peringatan](/docs/id/agent-sdk/typescript#sdkinformationalmessage) dalam output `stream-json`, dan perintah shell gagal sampai direktori ada lagi.

93 99 

94<h2 id="examples">100<h2 id="examples">

95 Contoh101 Contoh


255| Bidang | Tipe | Deskripsi |261| Bidang | Tipe | Deskripsi |

256| - | - | - |262| - | - | - |

257| `plugins` | array | plugin yang berhasil dimuat, masing-masing dengan `name` dan `path` |263| `plugins` | array | plugin yang berhasil dimuat, masing-masing dengan `name` dan `path` |

258| `plugin_errors` | array | kesalahan waktu muat plugin, masing-masing dengan `plugin`, `type`, dan `message`. Mencakup versi dependensi yang tidak terpenuhi dan kegagalan muat `--plugin-dir` seperti jalur yang hilang atau arsip yang tidak valid. Plugin yang terpengaruh diturunkan dan tidak ada di `plugins`. Kunci dihilangkan ketika tidak ada kesalahan |264| `plugin_errors` | array | kesalahan waktu muat plugin, masing-masing dengan `plugin`, `type`, dan `message`. Mencakup versi dependensi yang tidak terpenuhi dan kegagalan muat `--plugin-dir` seperti jalur yang hilang atau arsip yang tidak valid. Plugin yang tidak dimuat tidak ada di `plugins`. Kunci dihilangkan ketika tidak ada kesalahan |

265 

266Ketika direktori `--plugin-dir` atau arsip itu sendiri gagal dimuat, entri `plugin_errors`-nya mencakup jalur absolut yang diselesaikan sebagai `path`. Gunakan untuk membedakan mana dari beberapa nilai `--plugin-dir` yang gagal. Bidang `path` memerlukan Claude Code v2.1.283 atau lebih baru.

259 267 

260Gunakan bidang server MCP dengan cara yang sama. Ketika Anda berikan [`--mcp-config`](/docs/id/cli-reference#cli-flags) dengan `-p`, Claude Code menunggu server yang masih tertunda sebelum menjalankan giliran pertama, hingga timeout startup [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default. Server jarak jauh dengan [daftar alat yang di-cache](/docs/id/agent-sdk/mcp#connection-timing) melewati tunggu, menampilkan `pending` di `system/init`, dan terhubung pada pemanggilan alat pertamanya. Tunggu memerlukan Claude Code v2.1.221 atau lebih baru.268Gunakan bidang server MCP dengan cara yang sama. Ketika Anda berikan [`--mcp-config`](/docs/id/cli-reference#cli-flags) dengan `-p`, Claude Code menunggu server yang masih tertunda sebelum menjalankan giliran pertama, hingga timeout startup [`MCP_TIMEOUT`](/docs/id/env-vars), 30 detik secara default. Server jarak jauh dengan [daftar alat yang di-cache](/docs/id/agent-sdk/mcp#connection-timing) melewati tunggu, menampilkan `pending` di `system/init`, dan terhubung pada pemanggilan alat pertamanya. Tunggu memerlukan Claude Code v2.1.221 atau lebih baru.

261 269 

hooks-guide.md +2 −2

Details

880 Prompt-based hooks880 Prompt-based hooks

881</h2>881</h2>

882 882 

883Untuk keputusan yang memerlukan penilaian daripada aturan deterministik, gunakan hook `type: "prompt"`. Daripada menjalankan perintah shell, Claude Code mengirim prompt Anda dan data input hook ke model Claude (Haiku secara default) untuk membuat keputusan. Anda dapat menentukan model berbeda dengan bidang `model` jika Anda memerlukan kemampuan lebih.883Untuk keputusan yang memerlukan penilaian daripada aturan deterministik, gunakan hook `type: "prompt"`. Daripada menjalankan perintah shell, Claude Code mengirim prompt Anda dan data input hook ke model Claude untuk membuat keputusan. Anda dapat menentukan model berbeda dengan bidang `model` jika Anda memerlukan kemampuan lebih.

884 884 

885Satu-satunya pekerjaan model adalah mengembalikan keputusannya sebagai JSON:885Satu-satunya pekerjaan model adalah mengembalikan keputusannya sebagai JSON:

886 886 


995 995 

996Pertimbangkan batasan-batasan ini saat merancang hooks:996Pertimbangkan batasan-batasan ini saat merancang hooks:

997 997 

998* Command hooks berkomunikasi melalui stdout, stderr, dan kode keluar saja. Mereka tidak dapat memicu perintah `/` atau panggilan alat. Teks yang dikembalikan melalui `additionalContext` disuntikkan sebagai pengingat sistem yang Claude baca sebagai teks biasa. HTTP hooks berkomunikasi melalui badan respons sebagai gantinya.998* Command hooks berkomunikasi melalui stdout, stderr, dan kode keluar saja. Mereka tidak dapat memicu perintah `/` atau panggilan alat. Teks yang dikembalikan melalui `additionalContext` disuntikkan sebagai [pengingat sistem](/docs/id/glossary#system-reminder) yang Claude baca sebagai teks biasa. HTTP hooks berkomunikasi melalui badan respons sebagai gantinya.

999* Timeout hook bervariasi menurut jenis. Timpa per hook dengan bidang `timeout` dalam detik.999* Timeout hook bervariasi menurut jenis. Timpa per hook dengan bidang `timeout` dalam detik.

1000 * `command`, `http`, `mcp_tool`: 10 menit. Claude Code menurunkan default ini menjadi 30 detik untuk hook `UserPromptSubmit`, `PreModelSwitch`, dan `PostModelSwitch`, dan menjadi 10 detik untuk hook `MessageDisplay`.1000 * `command`, `http`, `mcp_tool`: 10 menit. Claude Code menurunkan default ini menjadi 30 detik untuk hook `UserPromptSubmit`, `PreModelSwitch`, dan `PostModelSwitch`, dan menjadi 10 detik untuk hook `MessageDisplay`.

1001 * `prompt`: 30 detik.1001 * `prompt`: 30 detik.

Details

144 144 

145Untuk panduan interaktif tentang apa yang dimuat dan kapan, lihat [Explore the context window](/docs/id/context-window).145Untuk panduan interaktif tentang apa yang dimuat dan kapan, lihat [Explore the context window](/docs/id/context-window).

146 146 

147<h4 id="context-claude-code-adds-on-its-own">

148 Context Claude Code adds on its own

149</h4>

150 

151Jika Claude mengikuti aturan yang tidak Anda tulis, seperti menambahkan trailer `Co-Authored-By` ke commit, aturan tersebut mungkin berasal dari [system reminder](/docs/id/glossary#system-reminder). Saat Anda bekerja, Claude Code menambahkan konteksnya sendiri ke percakapan bersama pesan Anda:

152 

153* File CLAUDE.md Anda

154* Instruksi [output style](/docs/id/output-styles) Anda

155* Catatan ketika file yang dibaca Claude sebelumnya berubah di disk

156* Baris atribusi commit dan pull request

157 

158Untuk mengubah atau menghapus baris atribusi, atur [`attribution`](/docs/id/settings-reference#attribution). Untuk menghapus instruksi commit dan pull request bawaan Claude Code, atur [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) ke `false`. Untuk switch lainnya, lihat [Turn off the context your agent replaces](/docs/id/agent-sdk/modifying-system-prompts#turn-off-the-context-your-agent-replaces).

159 

147<h4 id="when-context-fills-up">160<h4 id="when-context-fills-up">

148 When context fills up161 When context fills up

149</h4>162</h4>


188 201 

189Pilih mode permission untuk mengatur apa yang dapat dilakukan Claude tanpa bertanya kepada Anda. Tekan `Shift+Tab` untuk melakukan siklus melalui mode permission:202Pilih mode permission untuk mengatur apa yang dapat dilakukan Claude tanpa bertanya kepada Anda. Tekan `Shift+Tab` untuk melakukan siklus melalui mode permission:

190 203 

191* **Auto**: classifier meninjau sebagian besar tindakan di latar belakang dan memblokir tindakan yang berisiko alih-alih bertanya kepada Anda. Pada paket Pro, Max, dan Team, ini adalah [mode permission awal bawaan](/docs/id/permission-modes#which-mode-a-session-starts-in) untuk sesi terminal interaktif dan VS Code204* **Auto**: classifier meninjau sebagian besar tindakan di latar belakang dan memblokir tindakan yang berisiko alih-alih bertanya kepada Anda. Dengan Claude Code v2.1.283 atau lebih baru, ini adalah [mode permission awal bawaan](/docs/id/permission-modes#which-mode-a-session-starts-in) untuk sesi terminal interaktif dan VS Code, dan pada versi sebelumnya hanya pada paket Pro, Max, dan Team

192* **Manual**: Claude bertanya sebelum edit file dan perintah shell205* **Manual**: Claude bertanya sebelum edit file dan perintah shell

193* **Accept edits**: Claude mengedit file dan menjalankan perintah filesystem umum seperti `mkdir` dan `mv` tanpa bertanya, masih bertanya untuk perintah lain206* **Accept edits**: Claude mengedit file dan menjalankan perintah filesystem umum seperti `mkdir` dan `mv` tanpa bertanya, masih bertanya untuk perintah lain

194* **Plan**: Claude mengeksplorasi dan mengusulkan rencana tanpa mengedit file sumber Anda207* **Plan**: Claude mengeksplorasi dan mengusulkan rencana tanpa mengedit file sumber Anda


241Anda dapat mengalihkan Claude kapan saja tanpa memulai dari awal. Lakukan salah satu dari ini:254Anda dapat mengalihkan Claude kapan saja tanpa memulai dari awal. Lakukan salah satu dari ini:

242 255 

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).256* **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`** 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.257* **Ketik koreksi dan tekan `Enter`** tanpa menghentikan Claude. Pesan ditampilkan sebagai antri di dalam percakapan. 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 258 

246<h3 id="delegate-don’t-dictate">259<h3 id="delegate-don’t-dictate">

247 Delegasikan, jangan mendikte260 Delegasikan, jangan mendikte

Details

34| `Ctrl+T` | Alihkan daftar tugas Claude | Tampilkan atau sembunyikan [daftar tugas Claude](#task-list) di area status. Ini bukan tampilan tugas latar belakang; gunakan [`/tasks`](/docs/id/commands) untuk melihat shell dan subagen yang berjalan |34| `Ctrl+T` | Alihkan daftar tugas Claude | Tampilkan atau sembunyikan [daftar tugas Claude](#task-list) di area status. Ini bukan tampilan tugas latar belakang; gunakan [`/tasks`](/docs/id/commands) untuk melihat shell dan subagen yang berjalan |

35| `Ctrl+S` | Simpan atau pulihkan prompt | Dengan teks dalam input, menyimpannya dan menghapus prompt. Ditekan lagi pada prompt kosong, memulihkan teks yang disimpan, posisi kursor, konten yang ditempel, dan mode input, jadi perintah shell `!` yang disimpan [kembali dalam mode shell](#shell-mode-with-prefix) |35| `Ctrl+S` | Simpan atau pulihkan prompt | Dengan teks dalam input, menyimpannya dan menghapus prompt. Ditekan lagi pada prompt kosong, memulihkan teks yang disimpan, posisi kursor, konten yang ditempel, dan mode input, jadi perintah shell `!` yang disimpan [kembali dalam mode shell](#shell-mode-with-prefix) |

36| `Ctrl+Z` | Jeda Claude Code | Unix saja. Menangguhkan proses ke shell Anda; jalankan `fg` untuk melanjutkan |36| `Ctrl+Z` | Jeda Claude Code | Unix saja. Menangguhkan proses ke shell Anda; jalankan `fg` untuk melanjutkan |

37| `Panah Kiri/Kanan` | Siklus melalui tab dialog | Navigasi antar tab dalam dialog izin dan menu |37| `Panah Kiri/Kanan` | Siklus melalui tab dialog | Navigasi antar tab dalam dialog izin dan menu. Dalam dialog bertab, kunci beralih tab sementara baris tab memiliki fokus. Lihat [Tindakan tab](/docs/id/keybindings#tabs-actions) untuk cara fokus bergerak |

38| `Tab` | Terima saran pelengkapan otomatis, atau tambahkan komentar ke jawaban izin | Saat saran pelengkapan otomatis ditampilkan dalam input prompt, menerima saran yang dipilih. Pada sebagian besar prompt izin, dengan **Ya** atau **Tidak** fokus, membuka bidang komentar pada opsi itu, dan menekannya lagi menutup bidang. Lihat [tambahkan komentar saat Anda menjawab prompt izin](/docs/id/permissions#add-a-comment-when-you-answer-a-permission-prompt) |38| `Tab` | Terima saran pelengkapan otomatis, atau tambahkan komentar ke jawaban izin | Saat saran pelengkapan otomatis ditampilkan dalam input prompt, menerima saran yang dipilih. Pada sebagian besar prompt izin, dengan **Ya** atau **Tidak** fokus, membuka bidang komentar pada opsi itu, dan menekannya lagi menutup bidang. Lihat [tambahkan komentar saat Anda menjawab prompt izin](/docs/id/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

39| `Panah Atas/Bawah` atau `Ctrl+P`/`Ctrl+N` | Pindahkan kursor atau navigasi riwayat perintah | Ketika input mencakup lebih dari satu baris visual, baik dibungkus atau multiline, pertama kali memindahkan kursor dalam prompt. Setelah kursor berada di baris visual pertama atau terakhir, menekan lagi menavigasi riwayat perintah. Sementara Anda memiliki pesan antrian, `Atas` dari baris pertama malah [membawanya kembali](#take-back-what-you-queued) |39| `Panah Atas/Bawah` atau `Ctrl+P`/`Ctrl+N` | Pindahkan kursor atau navigasi riwayat perintah | Ketika input mencakup lebih dari satu baris visual, baik dibungkus atau multiline, pertama kali memindahkan kursor dalam prompt. Setelah kursor berada di baris visual pertama atau terakhir, menekan lagi menavigasi riwayat perintah. Sementara Anda memiliki pesan antrian, `Atas` dari baris pertama malah [membawanya kembali](#take-back-what-you-queued) |

40| `Esc` | Interupsi Claude, atau tutup dialog | Hentikan respons atau panggilan alat saat ini di tengah giliran sehingga Anda dapat mengalihkan. Claude menyimpan pekerjaan yang dilakukan sejauh ini. Jika Anda memiliki [pesan antrian](#queue-messages-while-claude-works), Claude Code mengirimnya selanjutnya. Ketika dialog terbuka, `Esc` menutup dialog. Pada prompt izin, `Esc` menolak tindakan, sama seperti [**Tidak** tanpa komentar](/docs/id/permissions#add-a-comment-when-you-answer-a-permission-prompt) |40| `Esc` | Interupsi Claude, atau tutup dialog | Hentikan respons atau panggilan alat saat ini di tengah giliran sehingga Anda dapat mengalihkan. Claude menyimpan pekerjaan yang dilakukan sejauh ini. Jika Anda memiliki [pesan antrian](#queue-messages-while-claude-works), Claude Code mengirimnya selanjutnya. Ketika dialog terbuka, `Esc` menutup dialog. Saat item footer dipilih, seperti baris di [panel subagen](/docs/id/sub-agents#run-subagents-in-foreground-or-background) di bawah prompt, `Esc` [membatalkan pilihannya](/docs/id/keybindings#footer-actions) alih-alih mengganggu. Pada prompt izin, `Esc` menolak tindakan, sama seperti [**Tidak** tanpa komentar](/docs/id/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

41| `Esc` + `Esc` | Hapus draf input, atau putar ulang | Ketika input prompt berisi teks, `Esc` ganda menghapusnya dan menyimpan draf ke riwayat sehingga `Atas` mengingatnya. Ketika input kosong, `Esc` ganda membuka [menu putar ulang](/docs/id/checkpointing) untuk memulihkan atau merangkum kode dan percakapan dari titik sebelumnya |41| `Esc` + `Esc` | Hapus draf input, atau putar ulang | Ketika input prompt berisi teks, `Esc` ganda menghapusnya dan menyimpan draf ke riwayat sehingga `Atas` mengingatnya. Ketika input kosong, `Esc` ganda membuka [menu putar ulang](/docs/id/checkpointing) untuk memulihkan atau merangkum kode dan percakapan dari titik sebelumnya |

42| `Ctrl+Enter` atau `Ctrl+X Ctrl+S` | Kirim pesan antrian sekarang | Mengirim [pesan antrian](#queue-messages-while-claude-works) Anda, dan draf Anda bersama mereka, keluar segera. [Ketika Claude Code mengirim apa yang Anda antrekan](#when-claude-code-sends-what-you-queued) mencakup apa yang terjadi pada giliran yang sedang dikerjakan Claude. Dalam [mode shell](#shell-mode-with-prefix), kunci hanya mengantrekan perintah Anda. 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 | Mengirim [pesan antrian](#queue-messages-while-claude-works) Anda, dan draf Anda bersama mereka, keluar segera. [Ketika Claude Code mengirim apa yang Anda antrekan](#when-claude-code-sends-what-you-queued) mencakup apa yang terjadi pada giliran yang sedang dikerjakan Claude. Dalam [mode shell](#shell-mode-with-prefix), kunci hanya mengantrekan perintah Anda. 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 Opus 5.5 atau model Fable, 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, Sonnet 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">


235| Perintah | Tindakan |235| Perintah | Tindakan |

236| :- | :- |236| :- | :- |

237| `x` | Hapus karakter |237| `x` | Hapus karakter |

238| `r{char}` | Ganti karakter di bawah kursor dengan `{char}` |

238| `dd` | Hapus baris |239| `dd` | Hapus baris |

239| `D` | Hapus hingga akhir baris |240| `D` | Hapus hingga akhir baris |

240| `dw`/`de`/`db` | Hapus kata/hingga akhir/kembali |241| `dw`/`de`/`db` | Hapus kata/hingga akhir/kembali |

241| `df{char}`/`dt{char}` | Hapus hingga dan termasuk, atau hingga, kemunculan karakter berikutnya |242| `df{char}`/`dt{char}` | Hapus hingga dan termasuk, atau hingga, kemunculan karakter berikutnya |

243| `dj`/`dk` | Hapus baris saat ini dan baris di bawah atau di atas |

244| `dgg`/`dG` | Hapus dari baris saat ini ke baris pertama atau terakhir |

245| `d0`/`c0`/`y0` | Hapus, ubah, atau yank dari kursor kembali ke awal baris. Memerlukan Claude Code v2.1.281 atau lebih baru |

242| `cc` | Ubah baris |246| `cc` | Ubah baris |

243| `C` | Ubah hingga akhir baris |247| `C` | Ubah hingga akhir baris |

244| `cw`/`ce`/`cb` | Ubah kata/hingga akhir/kembali |248| `cw`/`ce`/`cb` | Ubah kata/hingga akhir/kembali |


342* Meminta Claude Code untuk menjalankan perintah di latar belakang346* Meminta Claude Code untuk menjalankan perintah di latar belakang

343* Tekan `Ctrl+B` untuk memindahkan invokasi alat Bash biasa ke latar belakang. Pengguna Tmux harus menekan `Ctrl+B` dua kali karena kunci awalan tmux.347* Tekan `Ctrl+B` untuk memindahkan invokasi alat Bash biasa ke latar belakang. Pengguna Tmux harus menekan `Ctrl+B` dua kali karena kunci awalan tmux.

344 348 

349Ketika perintah mencapai batas waktu sebelum selesai, Claude Code secara otomatis [memindahkannya ke latar belakang](/docs/id/tools-reference#background-commands) alih-alih menghentikannya, kecuali perintah dimulai dengan `sleep`. Untuk mengubah berapa lama perintah berjalan sebelum itu terjadi, atur [variabel lingkungan batas waktu Bash](/docs/id/tools-reference#timeout-and-output-limits).

350 

345**Fitur utama:**351**Fitur utama:**

346 352 

347* Output ditulis ke file dan Claude dapat mengambilnya menggunakan alat Read353* Output ditulis ke file dan Claude dapat mengambilnya menggunakan alat Read


399 405 

400Pesan yang dikirim dan antri ditampilkan dalam warna abu-abu hingga Claude mulai merespons, sehingga Anda dapat mengetahui pesan mana yang belum dimulai oleh Claude.406Pesan yang dikirim dan antri ditampilkan dalam warna abu-abu hingga Claude mulai merespons, sehingga Anda dapat mengetahui pesan mana yang belum dimulai oleh Claude.

401 407 

408Jika Anda mengantrekan pesan dengan pilihan yang terlampir dari [IDE yang terhubung](/docs/id/vs-code#the-built-in-ide-mcp-server) atau [panel diff](#diff-panel), pesan tersebut mempertahankan pilihan yang Anda miliki saat Anda menekan `Enter`, apa pun yang Anda pilih setelahnya.

409 

402<h3 id="when-claude-code-sends-what-you-queued">410<h3 id="when-claude-code-sends-what-you-queued">

403 Kapan Claude Code mengirim apa yang Anda antrekan411 Kapan Claude Code mengirim apa yang Anda antrekan

404</h3>412</h3>

jetbrains.md +5 −1

Details

249 249 

250Server bernama `ide` dan tersembunyi dari `/mcp` karena tidak ada yang perlu dikonfigurasi. Jika organisasi Anda menggunakan [`PreToolUse` hook](/docs/id/hooks#pretooluse) untuk membuat daftar putih alat MCP, bagaimanapun, Anda perlu mengetahui bahwa itu ada.250Server bernama `ide` dan tersembunyi dari `/mcp` karena tidak ada yang perlu dikonfigurasi. Jika organisasi Anda menggunakan [`PreToolUse` hook](/docs/id/hooks#pretooluse) untuk membuat daftar putih alat MCP, bagaimanapun, Anda perlu mengetahui bahwa itu ada.

251 251 

252**Konteks pilihan dan file terbuka.** Saat terhubung, CLI menyertakan pilihan editor Anda saat ini dan jalur file aktif sebagai konteks pada setiap prompt yang Anda kirim. Transkrip menunjukkan baris `⧉ Selected N lines from <file>` ketika ini terjadi. Untuk mengecualikan file sensitif seperti `.env`, tambahkan [aturan penolakan `Read`](/docs/id/permissions#read-and-edit) untuk jalurnya. Aturan penolakan yang cocok mencegah baik teks yang dipilih maupun pemberitahuan file terbuka untuk file itu dari mencapai Claude.252**Konteks pilihan dan file terbuka.** Saat terhubung, CLI menyertakan pilihan editor Anda saat ini dan jalur file aktif sebagai konteks pada setiap prompt yang Anda kirim. Transkrip menunjukkan baris `⧉ Selected N lines from <file>` ketika ini terjadi.

253 

254Jika Anda [mengantrekan pesan saat Claude bekerja](/docs/id/interactive-mode#queue-messages-while-claude-works), pesan tersebut menyimpan pilihan yang Anda miliki saat Anda menekan `Enter`, apa pun yang Anda pilih setelahnya.

255 

256Untuk mengecualikan file sensitif seperti `.env`, tambahkan [aturan penolakan `Read`](/docs/id/permissions#read-and-edit) untuk jalurnya. Aturan penolakan yang cocok mencegah baik teks yang dipilih maupun pemberitahuan file terbuka untuk file itu dari mencapai Claude.

253 257 

254**Transportasi dan autentikasi.** Server mendengarkan pada port ephemeral yang ditugaskan OS, dan port tidak dapat dikonfigurasi. Transportasi adalah `ws://` yang tidak terenkripsi; pada loopback, proses apa pun yang dapat menangkap lalu lintas juga dapat membaca token dari file kunci, jadi TLS tidak akan menambah perlindungan terhadap penyerang lokal. Setiap awal IDE menghasilkan token autentikasi acak segar, menulisnya ke file kunci di `~/.claude/ide/<port>.lock`, dan CLI harus menyajikannya sebagai header `X-Claude-Code-Ide-Authorization` untuk terhubung. Jika `CLAUDE_CONFIG_DIR` diatur, file kunci ditulis ke `$CLAUDE_CONFIG_DIR/ide/` sebagai gantinya.258**Transportasi dan autentikasi.** Server mendengarkan pada port ephemeral yang ditugaskan OS, dan port tidak dapat dikonfigurasi. Transportasi adalah `ws://` yang tidak terenkripsi; pada loopback, proses apa pun yang dapat menangkap lalu lintas juga dapat membaca token dari file kunci, jadi TLS tidak akan menambah perlindungan terhadap penyerang lokal. Setiap awal IDE menghasilkan token autentikasi acak segar, menulisnya ke file kunci di `~/.claude/ide/<port>.lock`, dan CLI harus menyajikannya sebagai header `X-Claude-Code-Ide-Authorization` untuk terhubung. Jika `CLAUDE_CONFIG_DIR` diatur, file kunci ditulis ke `$CLAUDE_CONFIG_DIR/ide/` sebagai gantinya.

255 259 

keybindings.md +44 −23

Details

22| `$docs` | URL dokumentasi opsional |22| `$docs` | URL dokumentasi opsional |

23| `bindings` | Array blok binding berdasarkan konteks |23| `bindings` | Array blok binding berdasarkan konteks |

24 24 

25Contoh ini mengikat `Ctrl+E` untuk membuka editor eksternal dalam konteks chat, dan membatalkan ikatan `Ctrl+U`:25Contoh ini mengikat `Ctrl+E` untuk membuka editor eksternal dalam konteks chat, dan membatalkan ikatan `Ctrl+S`:

26 26 

27```json theme={null}27```json theme={null}

28{28{

29 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",29 "$schema": "https://www.schemastore.org/claude-code-keybindings.json",

30 "$docs": "https://code.claude.com/docs/id/keybindings",30 "$docs": "https://code.claude.com/docs/en/keybindings",

31 "bindings": [31 "bindings": [

32 {32 {

33 "context": "Chat",33 "context": "Chat",

34 "bindings": {34 "bindings": {

35 "ctrl+e": "chat:externalEditor",35 "ctrl+e": "chat:externalEditor",

36 "ctrl+u": null36 "ctrl+s": null

37 }37 }

38 }38 }

39 ]39 ]


50| :- | :- |50| :- | :- |

51| `Global` | Berlaku di mana saja dalam aplikasi |51| `Global` | Berlaku di mana saja dalam aplikasi |

52| `Chat` | Area input chat utama |52| `Chat` | Area input chat utama |

53| `Autocomplete` | Menu penyelesaian otomatis terbuka |53| `Autocomplete` | Menu autocomplete terbuka |

54| `Settings` | Menu pengaturan |54| `Settings` | Menu pengaturan |

55| `Confirmation` | Dialog izin dan konfirmasi |55| `Confirmation` | Dialog izin dan konfirmasi |

56| `Tabs` | Komponen navigasi tab |56| `Tabs` | Komponen navigasi tab |

57| `Help` | Menu bantuan terlihat |57| `Help` | Menu bantuan terlihat |

58| `Transcript` | Penampil transkrip |58| `Transcript` | Penampil transkrip |

59| `HistorySearch` | Mode pencarian riwayat (Ctrl+R) |59| `HistorySearch` | Mode pencarian riwayat (Ctrl+R) |

60| `Task` | Tugas latar belakang sedang berjalan |60| `Task` | Sebuah tugas sedang berjalan di latar depan |

61| `ThemePicker` | Dialog pemilih tema |61| `ThemePicker` | Dialog pemilih tema |

62| `Attachments` | Navigasi lampiran gambar dalam dialog pilih |62| `Attachments` | Navigasi lampiran gambar dalam dialog pilih |

63| `Footer` | Navigasi indikator footer (tugas, tim, diff, artefak) |63| `Footer` | Navigasi indikator footer (tugas, tim, diff, artefak) |

64| `MessageSelector` | Pemilihan pesan dialog rewind dan ringkasan |64| `MessageSelector` | Pemilihan pesan dialog rewind dan ringkas |

65| `DiffDialog` | Navigasi penampil diff |65| `DiffDialog` | Navigasi penampil diff |

66| `DiffPanel` | [Panel diff](/docs/id/interactive-mode#diff-panel) terbuka |66| `DiffPanel` | [Panel diff](/docs/id/interactive-mode#diff-panel) terbuka |

67| `ModelPicker` | Tingkat upaya pemilih model |67| `ModelPicker` | Tingkat upaya pemilih model |

68| `EffortSlider` | Effort slider dibuka oleh `/effort` |68| `EffortSlider` | Slider upaya dibuka oleh `/effort` |

69| `Select` | Komponen select/list generik |69| `Select` | Komponen pilih/daftar generik |

70| `Plugin` | Dialog plugin (jelajahi, temukan, kelola) |70| `Plugin` | Dialog plugin (jelajahi, temukan, kelola) |

71| `Agents` | [Tampilan Agent](/docs/id/agent-view) (`claude agents`) |71| `Agents` | [Tampilan Agent](/docs/id/agent-view) (`claude agents`) |

72| `Scroll` | Pengguliran percakapan dan pemilihan teks dalam mode fullscreen |72| `Scroll` | Pengguliran percakapan dan pemilihan teks dalam mode layar penuh |

73 73 

74Sebelum v2.1.205, konteks `Doctor` dan tindakan `doctor:fix` ada untuk layar diagnostik `/doctor`.74Sebelum v2.1.205, konteks `Doctor` dan tindakan `doctor:fix` ada untuk layar diagnostik `/doctor`.

75 75 


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

170 170 

171Dalam sebagian besar dialog, menekan `Ctrl+C` atau `Ctrl+D` dua kali menutup dialog alih-alih keluar dari Claude Code. Petunjuk setelah penekanan pertama mengatakan apakah penekanan kedua menutup dialog atau keluar. Kedua kunci adalah [pintasan yang dicadangkan](#reserved-shortcuts) dan tidak dapat diikat ulang.

172 

171Contoh ini mengikat `y` ke `confirm:yes` dan `n` ke `confirm:no`:173Contoh ini mengikat `y` ke `confirm:yes` dan `n` ke `confirm:no`:

172 174 

173```json theme={null}175```json theme={null}


268| `tabs:next` | Tab, Right | Tab berikutnya |270| `tabs:next` | Tab, Right | Tab berikutnya |

269| `tabs:previous` | Shift+Tab, Left | Tab sebelumnya |271| `tabs:previous` | Shift+Tab, Left | Tab sebelumnya |

270 272 

273Dalam dialog bertab, `tabs:next` dan `tabs:previous` mengalihkan tab saat baris tab memiliki fokus. Dalam beberapa dialog, seperti `/help` dan `/sandbox`, kunci pengalihan tab juga berfungsi dari dalam konten tab.

274 

275`Up` dan `Down` memindahkan fokus antara baris tab dan konten tab, dan daftar dalam konten merespons kunci hanya saat memiliki fokus.

276 

271<h3 id="attachments-actions">277<h3 id="attachments-actions">

272 Tindakan lampiran278 Tindakan lampiran

273</h3>279</h3>


295| `footer:down` | Down | Navigasi ke bawah di footer |301| `footer:down` | Down | Navigasi ke bawah di footer |

296| `footer:openSelected` | Enter | Buka item footer yang dipilih |302| `footer:openSelected` | Enter | Buka item footer yang dipilih |

297| `footer:clearSelection` | Escape | Bersihkan pilihan footer |303| `footer:clearSelection` | Escape | Bersihkan pilihan footer |

298| `footer:dismiss` | Backspace, Delete | Tutup tautan [artefak](/docs/id/artifacts) yang dipilih dari footer; artefak yang dipublikasikan itu sendiri tidak terpengaruh. Pada baris footer lainnya, kunci ini tidak berpengaruh. Memerlukan v2.1.217 atau lebih baru |304| `footer:dismiss` | (unbound) | Dihapus di v2.1.281. `keybindings.json` yang masih menyebutkan tindakan tetap valid, dan binding tidak melakukan apa pun. Sebelum v2.1.281, Backspace dan Delete menghapus tautan artefak yang dipilih dari footer |

299 305 

300Saat item footer dipilih, seperti baris di panel agen di bawah prompt, `Enter` membukanya bahkan ketika Anda mengikat ulang `Enter` dalam konteks `Chat` ke `chat:queueSubmit` atau `chat:newline`.306Saat item footer dipilih, seperti baris di panel agen di bawah prompt, `Enter` membukanya bahkan ketika Anda mengikat ulang `Enter` dalam konteks `Chat` ke `chat:queueSubmit` atau `chat:newline`.

301 307 


305 Tindakan pemilih pesan311 Tindakan pemilih pesan

306</h3>312</h3>

307 313 

308Tindakan yang tersedia dalam konteks `MessageSelector`:314Dalam daftar pesan dari [menu rewind](/docs/id/checkpointing), Anda bergerak melalui pesan dan memilih satu dengan [Tindakan Select](#select-actions) dan kunci default mereka. Binding `Select` Anda untuk tindakan tersebut berlaku di sana juga. Konteks `MessageSelector` tidak memiliki tindakan atau binding default sendiri. Gunakan untuk mengubah kunci untuk daftar ini saja, dengan mengikat tindakan Select seperti `select:accept` dalam blok `MessageSelector`.

309 315 

310| Tindakan | Default | Deskripsi |316Contoh ini mengikat `o` untuk memilih pesan yang disorot dalam menu rewind, tanpa mengubah daftar lain apa pun:

311| :- | :- | :- |317 

312| `messageSelector:up` | Up, K, Ctrl+P | Pindah ke atas dalam daftar |318```json theme={null}

313| `messageSelector:down` | Down, J, Ctrl+N | Pindah ke bawah dalam daftar |319{

314| `messageSelector:top` | Ctrl+Up, Shift+Up, Meta+Up, Shift+K | Lompat ke atas |320 "bindings": [

315| `messageSelector:bottom` | Ctrl+Down, Shift+Down, Meta+Down, Shift+J | Lompat ke bawah |321 {

316| `messageSelector:select` | Enter | Pilih pesan |322 "context": "MessageSelector",

323 "bindings": {

324 "o": "select:accept"

325 }

326 }

327 ]

328}

329```

330 

331Sebelum v2.1.283, daftar ini mengabaikan binding `Select` dan memiliki tindakan sendiri: `messageSelector:up`, `messageSelector:down`, `messageSelector:top`, `messageSelector:bottom`, dan `messageSelector:select`. Jika `keybindings.json` Anda mengikat salah satu nama tersebut, binding tetap bekerja dalam daftar ini sebagai tindakan Select yang melakukan hal yang sama. `Home` dan `End` melompat ke kedua ujung daftar; sebelum v2.1.283, kunci seperti `Shift+K` dan `Shift+J` melakukan itu secara default.

317 332 

318<h3 id="diff-actions">333<h3 id="diff-actions">

319 Tindakan diff334 Tindakan diff


328| `diff:nextSource` | Right | Sumber diff berikutnya |343| `diff:nextSource` | Right | Sumber diff berikutnya |

329| `diff:previousFile` | Up, K | File sebelumnya dalam daftar file; gulir ke atas satu baris dalam tampilan detail |344| `diff:previousFile` | Up, K | File sebelumnya dalam daftar file; gulir ke atas satu baris dalam tampilan detail |

330| `diff:nextFile` | Down, J | File berikutnya dalam daftar file; gulir ke bawah satu baris dalam tampilan detail |345| `diff:nextFile` | Down, J | File berikutnya dalam daftar file; gulir ke bawah satu baris dalam tampilan detail |

331| `diff:viewDetails` | Enter | Lihat detail diff |

332| `diff:back` | (unbound) | Kembali dalam penampil diff. Escape melakukan tindakan kembali melalui `diff:dismiss`. Default sebelumnya dari Left dalam tampilan detail dihapus di v2.1.203 |346| `diff:back` | (unbound) | Kembali dalam penampil diff. Escape melakukan tindakan kembali melalui `diff:dismiss`. Default sebelumnya dari Left dalam tampilan detail dihapus di v2.1.203 |

333 347 

348Daftar file juga merespons [Tindakan Select](#select-actions), melalui kunci default mereka dan binding `Select` Anda. `select:previous` dan `select:next` berpindah ke file sebelumnya dan berikutnya, dan `Enter` membuka diff file yang dipilih melalui `select:accept`. Untuk mengubah salah satu kunci tersebut untuk daftar file saja, ikat tindakan Select dalam blok `DiffDialog`.

349 

350Sebelum v2.1.283, daftar file mengabaikan binding `Select`, dan `Enter` membuka diff file yang dipilih melalui tindakan `diff:viewDetails` terpisah. Jika `keybindings.json` Anda mengikat `diff:viewDetails`, binding tetap bekerja dalam daftar file sebagai `select:accept`.

351 

334Tampilan detail diff juga mengikat kunci gaya pager ke [tindakan scroll](#scroll-actions) standar. Binding ini adalah bagian dari konteks `DiffDialog` dan hanya berlaku dalam tampilan detail; default konteks `Scroll` yang tercantum di bawah [Tindakan scroll](#scroll-actions) tidak berubah.352Tampilan detail diff juga mengikat kunci gaya pager ke [tindakan scroll](#scroll-actions) standar. Binding ini adalah bagian dari konteks `DiffDialog` dan hanya berlaku dalam tampilan detail; default konteks `Scroll` yang tercantum di bawah [Tindakan scroll](#scroll-actions) tidak berubah.

335 353 

336| Tindakan | Default | Deskripsi |354| Tindakan | Default | Deskripsi |


373 Tindakan slider upaya391 Tindakan slider upaya

374</h3>392</h3>

375 393 

376Tindakan yang tersedia dalam konteks `EffortSlider`, slider yang terbuka saat Anda menjalankan `/effort` tanpa argumen. Kunci Left, Right, Enter, dan Escape slider tidak dapat diikat ulang.394Tindakan yang tersedia dalam konteks `EffortSlider`, slider yang terbuka saat Anda menjalankan `/effort` tanpa argumen. Kunci Enter dan Escape slider tidak dapat diikat ulang.

377 395 

378| Tindakan | Default | Deskripsi |396| Tindakan | Default | Deskripsi |

379| :- | :- | :- |397| :- | :- | :- |

398| `effortSlider:decreaseEffort` | Left | Pindahkan slider ke tingkat upaya yang lebih rendah berikutnya. Memerlukan v2.1.284 atau lebih baru |

399| `effortSlider:increaseEffort` | Right | Pindahkan slider ke tingkat upaya yang lebih tinggi berikutnya. Memerlukan v2.1.284 atau lebih baru |

400| `effortSlider:toggleUltracode` | Tab | Nyalakan atau matikan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) untuk sesi ini, ketika slider [menawarkannya](/docs/id/model-config#when-ultracode-is-available). Memerlukan v2.1.284 atau lebih baru |

380| `effortSlider:thisSessionOnly` | s | Terapkan [tingkat upaya](/docs/id/model-config#adjust-effort-level) yang difokuskan ke sesi ini saja. Memerlukan v2.1.257 atau lebih baru |401| `effortSlider:thisSessionOnly` | s | Terapkan [tingkat upaya](/docs/id/model-config#adjust-effort-level) yang difokuskan ke sesi ini saja. Memerlukan v2.1.257 atau lebih baru |

381 402 

382<h3 id="select-actions">403<h3 id="select-actions">


396| `select:accept` | Enter | Terima pilihan |417| `select:accept` | Enter | Terima pilihan |

397| `select:cancel` | Escape | Batalkan pilihan |418| `select:cancel` | Escape | Batalkan pilihan |

398 419 

399Claude Code menerapkan binding `select:pageUp`, `select:pageDown`, `select:first`, dan `select:last` Anda dalam menu `/skills`. Dalam sebagian besar daftar lainnya, seperti pemilih `/model`, binding `select:first` dan `select:last` Anda berlaku. PageUp dan PageDown halaman melalui opsi dalam daftar itu terlepas dari binding Anda.420Dalam panel daftar seperti `/skills` dan `/mcp`, Claude Code menerapkan binding `select:pageUp`, `select:pageDown`, `select:first`, dan `select:last` Anda. Dalam sebagian besar daftar lainnya, seperti pemilih `/model`, binding `select:first` dan `select:last` Anda berlaku. PageUp dan PageDown halaman melalui opsi dalam daftar itu terlepas dari binding Anda.

400 421 

401Sebelum v2.1.280, daftar lain itu mengabaikan Home, End, dan binding `select:first` dan `select:last` Anda.422Sebelum v2.1.280, daftar lain itu mengabaikan Home, End, dan binding `select:first` dan `select:last` Anda.

402 423 


668 Validasi689 Validasi

669</h2>690</h2>

670 691 

671Claude Code memvalidasi pintasan keyboard Anda dan menampilkan peringatan untuk:692Claude Code memvalidasi pintasan keyboard Anda dan menulis peringatan ke log debug untuk:

672 693 

673* Parse errors (JSON atau struktur tidak valid)694* Parse errors (JSON atau struktur tidak valid)

674* Nama konteks tidak valid695* Nama konteks tidak valid


677* Konflik pintasan yang dicadangkan698* Konflik pintasan yang dicadangkan

678* Binding duplikat dalam konteks yang sama699* Binding duplikat dalam konteks yang sama

679 700 

680Claude Code melaporkan peringatan ketika file dimuat dan menulis masing-masing ke log debug. Mulai Claude Code dengan [`--debug`](/docs/id/cli-reference#cli-flags) untuk melihat detailnya.701Mulai Claude Code dengan [`--debug`](/docs/id/cli-reference#cli-flags) untuk melihat detailnya.

llm-gateway.md +1 −1

Details

49 Langganan dan gateway49 Langganan dan gateway

50</h2>50</h2>

51 51 

52Sementara [variabel kredensial gateway](/docs/id/llm-gateway-connect#set-the-credential-variable) atau `apiKeyHelper` aktif, langganan claude.ai pengembang tidak digunakan: kredensial menggantikan login langganan untuk sesi itu, dan batas penggunaan langganan tidak berlaku. Lalu lintas itu ditagih per token kepada siapa pun yang memiliki kredensial yang diteruskan gateway, seperti akun Anthropic Console organisasi Anda, atau akun Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry Anda ketika gateway merutekan ke sana.52Sementara [variabel kredensial gateway](/docs/id/llm-gateway-connect#set-the-credential-variable) atau `apiKeyHelper` aktif, permintaan membawa kredensial itu menggantikan login langganan claude.ai pengembang, dan batas penggunaan langganan tidak berlaku untuk mereka. Claude Code menyimpan login claude.ai yang tersimpan di mesin tetapi tidak mengirimnya dengan permintaan tersebut. Lalu lintas itu ditagih per token kepada siapa pun yang memiliki kredensial yang diteruskan gateway, seperti akun Anthropic Console organisasi Anda, atau akun Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry Anda ketika gateway merutekan ke sana.

53 53 

54[`ANTHROPIC_BASE_URL`](/docs/id/llm-gateway-connect#set-the-base-url-and-credential) adalah variabel yang menunjukkan Claude Code ke gateway. Menetapkan hanya variabel itu, tanpa kredensial gateway, tidak menggantikan langganan. Permintaan masih merutekan melalui gateway, tetapi login claude.ai yang disimpan tetap menjadi kredensial aktif, sehingga batas penggunaan dan penagihan berlaku. Gateway yang meneruskan lalu lintas ini ke Anthropic harus meneruskan kemampuan OAuth di `anthropic-beta`; lihat [referensi header permintaan](/docs/id/llm-gateway-protocol#request-headers).54[`ANTHROPIC_BASE_URL`](/docs/id/llm-gateway-connect#set-the-base-url-and-credential) adalah variabel yang menunjukkan Claude Code ke gateway. Menetapkan hanya variabel itu, tanpa kredensial gateway, tidak menggantikan langganan. Permintaan masih merutekan melalui gateway, tetapi login claude.ai yang disimpan tetap menjadi kredensial aktif, sehingga batas penggunaan dan penagihan berlaku. Gateway yang meneruskan lalu lintas ini ke Anthropic harus meneruskan kemampuan OAuth di `anthropic-beta`; lihat [referensi header permintaan](/docs/id/llm-gateway-protocol#request-headers).

55 55 

Details

140<Tabs>140<Tabs>

141 <Tab title="Bash atau Zsh">141 <Tab title="Bash atau Zsh">

142 ```bash theme={null}142 ```bash theme={null}

143 curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \143 curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \

144 -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \144 -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \

145 -H "anthropic-version: 2023-06-01" \145 -H "anthropic-version: 2023-06-01" \

146 -H "content-type: application/json" \146 -H "content-type: application/json" \


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

595| Claude Code meminta Anda untuk masuk meskipun [tes curl](#verify-the-connection) berhasil | CLI tidak memiliki kredensial sendiri: URL dasar yang dapat dijangkau bukan satu, dan dalam sesi interaktif blok `env` di `.claude/settings.json` atau `.claude/settings.local.json` proyek hanya berlaku setelah wizard first-run dan [prompt kepercayaan](/docs/id/permissions#what-runs-before-you-trust-a-folder) | Atur `ANTHROPIC_AUTH_TOKEN` di mana pun Claude Code membaca sebelum pengaturan first-run: ekspor shell, blok `env` di `~/.claude/settings.json`, atau pengaturan terkelola |595| Claude Code meminta Anda untuk masuk meskipun [tes curl](#verify-the-connection) berhasil | CLI tidak memiliki kredensial sendiri: URL dasar yang dapat dijangkau bukan satu, dan dalam sesi interaktif blok `env` di `.claude/settings.json` atau `.claude/settings.local.json` proyek hanya berlaku setelah wizard first-run dan [prompt kepercayaan](/docs/id/permissions#what-runs-before-you-trust-a-folder) | Atur `ANTHROPIC_AUTH_TOKEN` di mana pun Claude Code membaca sebelum pengaturan first-run: ekspor shell, blok `env` di `~/.claude/settings.json`, atau pengaturan terkelola |

596| `ANTHROPIC_API_KEY` diatur tetapi diabaikan, tanpa prompt | Kunci memerlukan persetujuan satu kali dalam sesi interaktif, dan kunci yang sebelumnya ditolak diabaikan tanpa bertanya lagi | Aktifkannya di bawah `/config` dengan opsi `Use custom API key` |596| `ANTHROPIC_API_KEY` diatur tetapi diabaikan, tanpa prompt | Kunci memerlukan persetujuan satu kali dalam sesi interaktif, dan kunci yang sebelumnya ditolak diabaikan tanpa bertanya lagi | Aktifkannya di bawah `/config` dengan opsi `Use custom API key` |

597| `This machine's managed settings require a first-party login` | Pengaturan terkelola menyertakan `forceLoginMethod` atau `forceLoginOrgUUID`, yang tidak dapat hidup berdampingan dengan `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` | Administrator Anda harus menghapus `forceLoginMethod` dan `forceLoginOrgUUID` dari pengaturan terkelola untuk menggunakan kredensial gateway, atau menghapus kredensial gateway untuk menggunakan login pihak pertama. Keduanya tidak dapat digabungkan |597| `This machine's managed settings require a first-party login`, atau [`Administrator policy requires a Cloud gateway sign-in`](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in) ketika pengaturan terkelola menetapkan `forceLoginMethod` ke `"gateway"` atau juga menetapkan `forceLoginGatewayUrl` | Pengaturan terkelola menyertakan `forceLoginMethod` atau `forceLoginOrgUUID`, yang tidak dapat hidup berdampingan dengan `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` | Administrator Anda harus menghapus `forceLoginMethod`, `forceLoginOrgUUID`, dan `forceLoginGatewayUrl` dari pengaturan terkelola untuk menggunakan kredensial gateway, atau menghapus kredensial gateway dan menggunakan sign-in yang diminta pengaturan terkelola. Keduanya tidak dapat digabungkan |

598| `403` dengan badan HTML seperti `403 Forbidden`, ketika log gateway sendiri menunjukkan tidak ada permintaan yang diterima | Firewall aplikasi web atau proxy terbalik di depan gateway memblokir badan permintaan sebelum mencapai gateway. Prompt Claude Code menyertakan tag gaya XML dan kode sumber yang cocok dengan aturan badan cross-site-scripting, jadi tes curl pendek lulus sementara sesi nyata tidak | Bebaskan jalur `/v1/messages` gateway dari inspeksi badan permintaan. Di AWS WAF ini adalah aturan terkelola `CrossSiteScripting_Body`; di nginx dengan ModSecurity itu adalah aturan badan OWASP CRS yang setara |598| `403` dengan badan HTML seperti `403 Forbidden`, ketika log gateway sendiri menunjukkan tidak ada permintaan yang diterima | Firewall aplikasi web atau proxy terbalik di depan gateway memblokir badan permintaan sebelum mencapai gateway. Prompt Claude Code menyertakan tag gaya XML dan kode sumber yang cocok dengan aturan badan cross-site-scripting, jadi tes curl pendek lulus sementara sesi nyata tidak | Bebaskan jalur `/v1/messages` gateway dari inspeksi badan permintaan. Di AWS WAF ini adalah aturan terkelola `CrossSiteScripting_Body`; di nginx dengan ModSecurity itu adalah aturan badan OWASP CRS yang setara |

599| Kesalahan sertifikat atau TLS seperti `SSL certificate verification failed` atau `Self-signed certificate detected`, ketika [tes curl](#verify-the-connection) berhasil | Runtime Claude Code tidak mempercayai otoritas sertifikat yang sama dengan yang digunakan `curl`. Umum di belakang proxy inspeksi TLS korporat | Atur `NODE_EXTRA_CA_CERTS` ke jalur bundel CA; lihat [CA certificate store](/docs/id/network-config#ca-certificate-store) |599| Kesalahan sertifikat atau TLS seperti `SSL certificate verification failed` atau `Self-signed certificate detected`, ketika [tes curl](#verify-the-connection) berhasil | Runtime Claude Code tidak mempercayai otoritas sertifikat yang sama dengan yang digunakan `curl`. Umum di belakang proxy inspeksi TLS korporat | Atur `NODE_EXTRA_CA_CERTS` ke jalur bundel CA; lihat [CA certificate store](/docs/id/network-config#ca-certificate-store) |

600 600 

Details

73 73 

74Alirkan respons inferensi. Claude Code membaca aliran saat tiba, jadi jika gateway Anda membuffer respons lengkap sebelum meneruskannya, Claude Code macet.74Alirkan respons inferensi. Claude Code membaca aliran saat tiba, jadi jika gateway Anda membuffer respons lengkap sebelum meneruskannya, Claude Code macet.

75 75 

76Kirimkan urutan event lengkap setiap respons tanpa menghilangkan, menduplikasi, atau mengubah urutan event. Ketika event mereferensikan blok konten yang `content_block_start` tidak pernah tiba, atau blok yang `content_block_stop` sudah tiba, Claude Code berhenti membaca aliran pada event tersebut daripada menerapkannya, jadi `content_block_stop` yang diduplikasi tidak dapat menjalankan panggilan alat yang sama dua kali. [Respons di atas mungkin tidak lengkap](/docs/id/errors#the-response-above-may-be-incomplete) menjelaskan apa yang dilihat pengguna, di bawah varian `Part of the response never arrived` dan `The response stream was malformed`.

77 

78Teruskan setiap respons melalui event `message_delta` dan `message_stop` finalnya sebelum mengakhiri body. Body yang berakhir setelah `message_delta` yang membawa `stop_reason`, tanpa blok konten yang masih terbuka dan tidak ada event blok konten setelah frame tersebut, dihitung sebagai lengkap bahkan ketika `message_stop` hilang. Body yang gateway Anda akhiri dengan bersih lebih awal, setelah blok konten telah dimulai, diperlakukan sama dengan koneksi yang terputus: [Automatic retries](/docs/id/errors#automatic-retries) mengatakan kapan Claude Code mengeluarkan kembali permintaan, dan [Respons di atas mungkin tidak lengkap](/docs/id/errors#the-response-above-may-be-incomplete) mencakup apa yang disimpannya setelah konten yang terlihat tiba. Claude Code menyimpan `stop_reason` yang `message_delta` berikan, jadi `message_delta` penggunaan-saja yang kemudian yang `delta` memiliki `stop_reason: null` atau tidak ada kunci `stop_reason` tidak menghapusnya.

79 

76Ketika klien berbicara format Amazon Bedrock, teruskan body respons `InvokeModelWithResponseStream` dan header `Content-Type: application/vnd.amazon.eventstream` tanpa modifikasi, dan jangan konversi aliran ke server-sent events. Lihat [Streaming errors behind a gateway or proxy](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).80Ketika klien berbicara format Amazon Bedrock, teruskan body respons `InvokeModelWithResponseStream` dan header `Content-Type: application/vnd.amazon.eventstream` tanpa modifikasi, dan jangan konversi aliran ke server-sent events. Lihat [Streaming errors behind a gateway or proxy](/docs/id/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy).

77 81 

78Teruskan ping keep-alive juga. Pada koneksi melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`, Claude Code menghitung setiap byte yang gateway Anda teruskan, termasuk event SSE `ping` dan baris komentar, dan membatalkan aliran yang diam selama 300 detik secara default. Ping upstream adalah satu-satunya lalu lintas selama jeda pemikiran panjang, jadi jika gateway Anda menghapus atau membuffer mereka, Claude Code membatalkan aliran selama jeda tersebut; [Automatic retries](/docs/id/errors#automatic-retries) mencakup apa yang dilaporkan aliran yang dibatalkan berdasarkan seberapa jauh respons telah maju. Upstream yang tidak mengirim ping sama sekali, seperti event-stream biner Amazon Bedrock, meninggalkan jeda tersebut tanpa apa pun untuk diteruskan. Ketika menerjemahkan dari upstream seperti itu, keluarkan event `ping` Anda sendiri selama celah senyap. Gateway yang dicapai melalui `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, atau `ANTHROPIC_FOUNDRY_BASE_URL` tidak dibungkus oleh watchdog tingkat byte ini, bahkan ketika mereka meneruskan format Anthropic Messages; di sana, [timeout idle 5 menit](/docs/id/env-vars) membatalkan aliran senyap sebagai gantinya, dan pada koneksi `ANTHROPIC_BEDROCK_BASE_URL` Anda dapat menambahkan watchdog byte dengan [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/id/env-vars).82Teruskan ping keep-alive juga. Pada koneksi melalui `ANTHROPIC_BASE_URL` atau `ANTHROPIC_AWS_BASE_URL`, Claude Code menghitung setiap byte yang gateway Anda teruskan, termasuk event SSE `ping` dan baris komentar, dan membatalkan aliran yang diam selama 300 detik secara default. Ping upstream adalah satu-satunya lalu lintas selama jeda pemikiran panjang, jadi jika gateway Anda menghapus atau membuffer mereka, Claude Code membatalkan aliran selama jeda tersebut; [Automatic retries](/docs/id/errors#automatic-retries) mencakup apa yang dilaporkan aliran yang dibatalkan berdasarkan seberapa jauh respons telah maju. Upstream yang tidak mengirim ping sama sekali, seperti event-stream biner Amazon Bedrock, meninggalkan jeda tersebut tanpa apa pun untuk diteruskan. Ketika menerjemahkan dari upstream seperti itu, keluarkan event `ping` Anda sendiri selama celah senyap. Gateway yang dicapai melalui `ANTHROPIC_BEDROCK_BASE_URL`, `ANTHROPIC_VERTEX_BASE_URL`, atau `ANTHROPIC_FOUNDRY_BASE_URL` tidak dibungkus oleh watchdog tingkat byte ini, bahkan ketika mereka meneruskan format Anthropic Messages; di sana, [timeout idle 5 menit](/docs/id/env-vars) membatalkan aliran senyap sebagai gantinya, dan pada koneksi `ANTHROPIC_BEDROCK_BASE_URL` Anda dapat menambahkan watchdog byte dengan [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/id/env-vars).


158 162 

159Mengatur `CLAUDE_CODE_GATEWAY_HINT_HEADERS` ke `0` menghentikan header pada setiap koneksi.163Mengatur `CLAUDE_CODE_GATEWAY_HINT_HEADERS` ke `0` menghentikan header pada setiap koneksi.

160 164 

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.165Header hanya membawa apa yang baris di bawah daftar: kosakata tetap, nama alat, durasi, dan pengidentifikasi prompt acak, tidak pernah teks prompt atau konten file. Setiap nilai adalah ASCII yang dapat dicetak.

162 166 

163| Header | Deskripsi |167| Header | Deskripsi |

164| :- | :- |168| :- | :- |


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 |171| `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 |172| `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 |173| `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 |

174| `x-claude-code-prompt-id` | UUID acak yang mengidentifikasi prompt pengguna yang dilayani permintaan. Permintaan yang melayani satu prompt berbagi nilai, termasuk giliran subagent yang dimulai prompt. Permintaan yang tidak dikaitkan dengan prompt menghilangkannya. Gunakan untuk mengelompokkan permintaan sesi berdasarkan prompt. Memerlukan Claude Code v2.1.283 atau lebih baru |

170 175 

171Sebelum mengurai `x-claude-code-prev-tool-durations`, periksa bagaimana Claude Code membangun nilai dan apa yang ditinggalkannya:176Sebelum mengurai `x-claude-code-prev-tool-durations`, periksa bagaimana Claude Code membangun nilai dan apa yang ditinggalkannya:

172 177 


265 Nonaktifkan kemampuan pra-rilis270 Nonaktifkan kemampuan pra-rilis

266</h3>271</h3>

267 272 

268`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` menghentikan Claude Code dari mengirim kemampuan pra-rilis dan field body mereka pada setiap penyedia, termasuk manajemen konteks dan field alat beta. Variabel tidak mempengaruhi penalaran adaptif, yang dipilih oleh model daripada oleh beta. Itu tidak pernah menekan kemampuan OAuth yang diperlukan autentikasi langganan.273`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` menghentikan Claude Code dari mengirim kemampuan pra-rilis dan field body mereka, termasuk manajemen konteks dan field alat beta. Variabel tidak mempengaruhi penalaran adaptif, yang dipilih oleh model daripada oleh beta. Itu tidak pernah menekan kemampuan OAuth yang diperlukan autentikasi langganan.

274 

275Ketika platform host yang menyematkan Claude Code menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars), `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` tidak menghentikan sesi mode otomatis pada Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, atau [gateway aplikasi Claude](/docs/id/claude-apps-gateway) dari meminta server untuk [classifier review](/docs/id/permission-modes#server-side-classifier-review). Review tersebut menambahkan nilai `anthropic-beta` dan field permintaan `safeguards`. Atur `CLAUDE_CODE_AUTO_MODE_SERVER=0` untuk menghentikannya di sana.

269 276 

270Pada Claude Code v2.1.227 atau lebih baru, organisasi Anda dapat menjaga [pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search) tetap aktif di bawah variabel ini melalui [pengaturan terkelola](/docs/id/managed-settings). Apa yang Claude Code kirimkan dengan override tersebut berlaku tergantung pada cara Anda terhubung:277Pada Claude Code v2.1.227 atau lebih baru, organisasi Anda dapat menjaga [pencarian alat MCP](/docs/id/mcp#scale-with-mcp-tool-search) tetap aktif di bawah variabel ini melalui [pengaturan terkelola](/docs/id/managed-settings). Apa yang Claude Code kirimkan dengan override tersebut berlaku tergantung pada cara Anda terhubung:

271 278 


340ID yang ditemukan tidak mendapatkan barisnya sendiri ketika cocok dengan baris yang sudah ada di pemilih:347ID yang ditemukan tidak mendapatkan barisnya sendiri ketika cocok dengan baris yang sudah ada di pemilih:

341 348 

342* ID yang sama: ID yang ditemukan cocok persis dengan ID baris yang ada, atau dua ID adalah ejaan dari versi [Fable](/docs/id/model-config#work-with-fable) yang sama.349* ID yang sama: ID yang ditemukan cocok persis dengan ID baris yang ada, atau dua ID adalah ejaan dari versi [Fable](/docs/id/model-config#work-with-fable) yang sama.

343* Model yang sama dengan alias built-in: ketika ID eksplisit yang ditemukan menamai model yang alias built-in saat ini diselesaikan, pemilih menampilkan hanya baris alias. Misalnya, sementara `sonnet` diselesaikan ke `claude-sonnet-5`, `claude-sonnet-5` yang ditemukan runtuh ke baris `sonnet`, dan `claude-sonnet-4-6` yang ditemukan masih mendapatkan barisnya sendiri. Sebelum v2.1.197, Claude Code tidak melipat ID ini ke baris built-in, jadi `claude-sonnet-5` juga mendapatkan barisnya sendiri "From gateway".350* Model yang sama dengan alias built-in: ketika ID eksplisit yang ditemukan menamai model yang alias built-in saat ini diselesaikan, pemilih menampilkan hanya baris alias. Misalnya, sementara `sonnet` diselesaikan ke `claude-sonnet-5-5`, `claude-sonnet-5-5` yang ditemukan runtuh ke baris `sonnet`, dan `claude-sonnet-5` yang ditemukan masih mendapatkan barisnya sendiri. Sebelum v2.1.197, Claude Code tidak melipat ID ini ke baris built-in, jadi ID yang alias diselesaikan juga mendapatkan barisnya sendiri "From gateway".

344 351 

345Hasil di-cache ke `~/.claude/cache/gateway-models.json`, atau `%USERPROFILE%\.claude\cache\gateway-models.json` di Windows, dan disegarkan pada setiap startup. Jika Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars), cache berada di bawah direktori itu sebagai gantinya. Jika permintaan gagal atau gateway tidak mengimplementasikan `/v1/models`, pemilih kembali ke daftar cache dari startup sebelumnya atau ke daftar model built-in. Jika gateway Anda melayani model Claude di bawah alias yang tidak cocok dengan filter penemuan, pengembang dapat menambahkan alias tersebut secara manual dengan variabel [konfigurasi model](/docs/id/model-config).352Hasil di-cache ke `~/.claude/cache/gateway-models.json`, atau `%USERPROFILE%\.claude\cache\gateway-models.json` di Windows, dan disegarkan pada setiap startup. Jika Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars), cache berada di bawah direktori itu sebagai gantinya. Jika permintaan gagal atau gateway tidak mengimplementasikan `/v1/models`, pemilih kembali ke daftar cache dari startup sebelumnya atau ke daftar model built-in. Jika gateway Anda melayani model Claude di bawah alias yang tidak cocok dengan filter penemuan, pengembang dapat menambahkan alias tersebut secara manual dengan variabel [konfigurasi model](/docs/id/model-config).

346 353 

Details

208 208 

209Tambahkan variabel bersyarat dari tabel ke blok `env` yang sama. `ANTHROPIC_BASE_URL` yang dikelola diberlakukan dan tidak dapat ditimpa oleh ekspor shell pengembang, karena Claude Code menerapkannya di atas lingkungan proses dan pengaturan prioritas lebih rendah.209Tambahkan variabel bersyarat dari tabel ke blok `env` yang sama. `ANTHROPIC_BASE_URL` yang dikelola diberlakukan dan tidak dapat ditimpa oleh ekspor shell pengembang, karena Claude Code menerapkannya di atas lingkungan proses dan pengaturan prioritas lebih rendah.

210 210 

211Jangan sertakan `forceLoginMethod` atau `forceLoginOrgUUID` dalam pengaturan terkelola bersama kredensial gateway. Salah satu kunci, dengan nilai apa pun, memblokir `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, dan `apiKeyHelper` saat startup, dan pengembang tidak dapat melanjutkan. Mereka melihat `This machine's managed settings require a first-party login`, atau [`Administrator policy requires a Cloud gateway sign-in`](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in) di bawah nilai `"gateway"`.211Jangan sertakan `forceLoginMethod`, `forceLoginOrgUUID`, atau `forceLoginGatewayUrl` dalam pengaturan terkelola bersama kredensial gateway. `forceLoginMethod` atau `forceLoginOrgUUID`, dengan nilai apa pun, memblokir `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, dan `apiKeyHelper` saat startup, dan pengembang tidak dapat melanjutkan. Mereka melihat `This machine's managed settings require a first-party login`, atau [`Administrator policy requires a Cloud gateway sign-in`](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in) ketika file menetapkan `forceLoginMethod` ke `"gateway"` atau menetapkan `forceLoginGatewayUrl`.

212 212 

213Pengiriman [pengaturan terkelola server](/docs/id/server-managed-settings#platform-availability) memerlukan koneksi langsung ke `api.anthropic.com`, sehingga tidak mencapai sesi yang dirutekan gateway. Penerapan gateway menggunakan jalur pengaturan terkelola berbasis file ini, yang memberlakukan kunci yang sama.213Pengiriman [pengaturan terkelola server](/docs/id/server-managed-settings#platform-availability) memerlukan koneksi langsung ke `api.anthropic.com`, sehingga tidak mencapai sesi yang dirutekan gateway. Penerapan gateway menggunakan jalur pengaturan terkelola berbasis file ini, yang memberlakukan kunci yang sama.

214 214 

managed-mcp.md +1 −1

Details

526 Pantau penggunaan MCP526 Pantau penggunaan MCP

527</h2>527</h2>

528 528 

529Ketika [ekspor OpenTelemetry](/docs/id/monitoring-usage) dikonfigurasi, Claude Code dapat merekam server MCP dan alat mana yang digunakan pengguna. Atur `OTEL_LOG_TOOL_DETAILS=1` untuk menyertakan nama server dan alat MCP dalam acara alat, kemudian agregasikan di kolektor Anda untuk melihat server mana yang benar-benar dihubungkan pengguna Anda. Lihat [Monitoring](/docs/id/monitoring-usage) untuk menyiapkan pengekspor dan untuk skema acara lengkap.529Ketika Anda mengonfigurasi [ekspor OpenTelemetry](/docs/id/monitoring-usage), Claude Code dapat merekam server MCP dan alat mana yang digunakan pengguna. Atur `OTEL_LOG_TOOL_DETAILS=1` untuk menyertakan nama server dan alat MCP dalam acara alat dan pada [penghitung biaya dan token](/docs/id/monitoring-usage#cost-counter), kemudian agregasikan di kolektor Anda untuk melihat server mana yang benar-benar dihubungkan pengguna Anda. Lihat [Monitoring](/docs/id/monitoring-usage) untuk menyiapkan pengekspor dan untuk skema acara lengkap.

530 530 

531<h2 id="configuration-summary">531<h2 id="configuration-summary">

532 Ringkasan konfigurasi532 Ringkasan konfigurasi

managed-settings.md +127 −91

Details

75| [Pengaturan terkelola server](/docs/id/server-managed-settings) | Di konsol admin claude.ai, atau di [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang di-host sendiri | Diambil saat startup dan dipolling setiap jam; lihat [perubahan yang memerlukan persetujuan](#where-and-when-a-policy-applies) | Anda ingin satu tempat untuk mengubah kebijakan untuk organisasi claude.ai tanpa menyentuh setiap mesin |75| [Pengaturan terkelola server](/docs/id/server-managed-settings) | Di konsol admin claude.ai, atau di [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang di-host sendiri | Diambil saat startup dan dipolling setiap jam; lihat [perubahan yang memerlukan persetujuan](#where-and-when-a-policy-applies) | Anda ingin satu tempat untuk mengubah kebijakan untuk organisasi claude.ai tanpa menyentuh setiap mesin |

76| Kebijakan MDM atau tingkat OS | Sebagai profil konfigurasi macOS atau nilai registry Windows `HKLM`, melalui Jamf, Intune, Group Policy, atau alat serupa; lihat [di mana setiap mekanisme menyimpan kebijakan](#where-each-mechanism-stores-the-policy) | Dibaca saat startup dan diperiksa untuk perubahan setiap 30 menit | Anda sudah mengelola perangkat dengan MDM atau Group Policy |76| Kebijakan MDM atau tingkat OS | Sebagai profil konfigurasi macOS atau nilai registry Windows `HKLM`, melalui Jamf, Intune, Group Policy, atau alat serupa; lihat [di mana setiap mekanisme menyimpan kebijakan](#where-each-mechanism-stores-the-policy) | Dibaca saat startup dan diperiksa untuk perubahan setiap 30 menit | Anda sudah mengelola perangkat dengan MDM atau Group Policy |

77| Berbasis file | Sebagai `managed-settings.json` di direktori sistem di setiap mesin; lihat [di mana setiap mekanisme menyimpan kebijakan](#where-each-mechanism-stores-the-policy) | Dibaca saat startup dan dimuat ulang ketika file berubah | Mesin tanpa MDM, host Linux, atau gambar yang Anda bangun sendiri |77| Berbasis file | Sebagai `managed-settings.json` di direktori sistem di setiap mesin; lihat [di mana setiap mekanisme menyimpan kebijakan](#where-each-mechanism-stores-the-policy) | Dibaca saat startup dan dimuat ulang ketika file berubah | Mesin tanpa MDM, host Linux, atau gambar yang Anda bangun sendiri |

78| Registry HKCU, Windows dan WSL | Sebagai nilai registry Windows `HKCU`; lihat [di mana setiap mekanisme menyimpan kebijakan](#where-each-mechanism-stores-the-policy) | Dibaca saat startup dan diperiksa untuk perubahan setiap 30 menit; Claude Code menggunakannya hanya ketika tidak ada sumber terkelola lain yang mengirimkan kunci kebijakan dan tidak ada [pengaturan induk yang disediakan host](#let-an-embedding-host-add-policy) yang menyediakan kunci yang ketat | Anda tidak dapat menulis kunci tingkat mesin `HKLM` |78| Registry HKCU, Windows dan WSL | Sebagai nilai registry Windows `HKCU`; lihat [di mana setiap mekanisme menyimpan kebijakan](#where-each-mechanism-stores-the-policy) | Dibaca saat startup dan diperiksa untuk perubahan setiap 30 menit; Claude Code menggunakannya hanya ketika [tidak ada dokumen admin yang ada di atasnya](#present-admin-documents) dan tidak ada [pengaturan induk yang disediakan host](#let-an-embedding-host-add-policy) yang menyediakan kunci yang ketat | Anda tidak dapat menulis kunci tingkat mesin `HKLM` |

79 79 

80Template pemula untuk Jamf, Iru, Intune, dan Group Policy ada di [repositori contoh MDM](https://github.com/anthropics/claude-code/tree/main/examples/mdm).80Template pemula untuk Jamf, Iru, Intune, dan Group Policy ada di [repositori contoh MDM](https://github.com/anthropics/claude-code/tree/main/examples/mdm).

81 81 


89 89 

90* **Permukaan**: di mesin pengembang, terminal, ekstensi VS Code dan JetBrains, tab Code aplikasi desktop, dan sesi [Agent SDK](/docs/id/agent-sdk/typescript) membaca semua sumber ini. Sesi Agent SDK memuat pengaturan terkelola bahkan ketika `settingSources` mengecualikan file pengguna, proyek, dan lokal.90* **Permukaan**: di mesin pengembang, terminal, ekstensi VS Code dan JetBrains, tab Code aplikasi desktop, dan sesi [Agent SDK](/docs/id/agent-sdk/typescript) membaca semua sumber ini. Sesi Agent SDK memuat pengaturan terkelola bahkan ketika `settingSources` mengecualikan file pengguna, proyek, dan lokal.

91* **Sesi cloud**: sesi di lingkungan yang dihosting Anthropic tidak membaca profil MDM atau file perangkat, jadi kebijakan untuk itu harus berasal dari pengaturan terkelola server. Sesi di [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) juga membaca file pengaturan terkelola di gambar runner-nya, secara default hanya ketika pengaturan terkelola server tidak mengirimkan kunci kebijakan, terlepas dari [kunci yang Claude Code baca dari setiap sumber admin](#keys-read-from-every-admin-source). [Bagaimana Claude Code menggabungkan sumber terkelola](#how-claude-code-combines-managed-sources) mencakup opt-in yang menerapkan keduanya.91* **Sesi cloud**: sesi di lingkungan yang dihosting Anthropic tidak membaca profil MDM atau file perangkat, jadi kebijakan untuk itu harus berasal dari pengaturan terkelola server. Sesi di [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) juga membaca file pengaturan terkelola di gambar runner-nya, secara default hanya ketika pengaturan terkelola server tidak mengirimkan kunci kebijakan, terlepas dari [kunci yang Claude Code baca dari setiap sumber admin](#keys-read-from-every-admin-source). [Bagaimana Claude Code menggabungkan sumber terkelola](#how-claude-code-combines-managed-sources) mencakup opt-in yang menerapkan keduanya.

92* **Sesi Claude Tag**: sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) berjalan di lingkungan cloud tetapi tidak menerima pengaturan terkelola server. Di [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments), mereka masih membaca file pengaturan terkelola di gambar runner. Konfigurasikan Claude Tag itu sendiri di [pengaturan admin Claude Tag](https://claude.com/docs/claude-tag/admins/customize).

92* **Sesi Cowork**: [Cowork](https://claude.com/docs/cowork/overview) di aplikasi Claude Desktop menjalankan sesinya di Claude Code. Dalam sesi Cowork, Claude Code tidak pernah mengambil pengaturan terkelola server dari konsol admin claude.ai, bahkan ketika pengguna masuk dengan akun Team atau Enterprise, jadi kebijakan mana yang berlaku tergantung di mana sesi berjalan:93* **Sesi Cowork**: [Cowork](https://claude.com/docs/cowork/overview) di aplikasi Claude Desktop menjalankan sesinya di Claude Code. Dalam sesi Cowork, Claude Code tidak pernah mengambil pengaturan terkelola server dari konsol admin claude.ai, bahkan ketika pengguna masuk dengan akun Team atau Enterprise, jadi kebijakan mana yang berlaku tergantung di mana sesi berjalan:

93 94 

94 * **Di mesin pengguna**: secara default, Claude Code dalam sesi Cowork membaca kebijakan MDM atau tingkat OS dan file pengaturan terkelola di perangkat itu, jadi terapkan kebijakan di sana.95 * **Di mesin pengguna**: secara default, Claude Code dalam sesi Cowork membaca kebijakan MDM atau tingkat OS dan file pengaturan terkelola di perangkat itu, jadi terapkan kebijakan di sana.


141 Bagaimana Claude Code menggabungkan sumber terkelola142 Bagaimana Claude Code menggabungkan sumber terkelola

142</h2>143</h2>

143 144 

144Ketika organisasi Anda mengirimkan lebih dari satu sumber terkelola ke mesin yang sama, kunci [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) menentukan apa yang Claude Code lakukan dengan yang lain:145Ketika organisasi Anda mengirimkan lebih dari satu sumber terkelola ke mesin yang sama, kunci [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) menentukan apa yang dilakukan Claude Code dengan yang lain:

145 146 

146* **`"first-wins"`, pengaturan default**: Claude Code menggunakan sumber dengan peringkat tertinggi yang mengirimkan setidaknya satu kunci kebijakan dan mengabaikan sisanya daripada menggabungkannya, kecuali untuk kunci dalam [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source). Claude Code tidak menampilkan peringatan untuk sumber yang dilewati; `/status` [menamai sumber yang digunakan dan yang dilewati](#read-the-source-in-/status).147* **`"first-wins"`, pengaturan default**: Claude Code menggunakan sumber dengan peringkat tertinggi yang mengirimkan setidaknya satu kunci kebijakan dan mengabaikan sisanya daripada menggabungkannya, kecuali untuk kunci dalam [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source). Claude Code tidak menampilkan peringatan untuk sumber yang dilewati; `/status` [menamai sumber yang digunakan dan yang dilewati](#read-the-source-in-/status).

147* **`"merge"`**: Claude Code menerapkan setiap sumber admin yang mengirimkan kunci kebijakan dan menggabungkannya berdasarkan jenis kunci: pada sebagian besar kunci nilai sumber dengan peringkat lebih tinggi berlaku, daftar bersatu, dan kunci mengambil nilai paling ketat. [Compose every managed source](#compose-every-managed-source) mengatakan di mana mengatur kunci dan bagaimana setiap jenis kunci menggabung. Memerlukan Claude Code v2.1.242 atau lebih baru.148* **`"merge"`**: Claude Code menerapkan setiap sumber admin yang mengirimkan kunci kebijakan dan menggabungkannya berdasarkan jenis kunci: pada sebagian besar kunci nilai sumber dengan peringkat lebih tinggi berlaku, daftar bersatu, dan kunci mengambil nilai paling ketat. [Susun setiap sumber terkelola](#compose-every-managed-source) mengatakan di mana menetapkan kunci dan bagaimana setiap jenis kunci menggabungkan. Memerlukan Claude Code v2.1.242 atau lebih baru.

148 149 

149Kedua pengaturan mengurutkan sumber dengan cara yang sama. Istilah-istilah ini berulang di bagian ini:150Kedua pengaturan menentukan peringkat sumber dengan cara yang sama. Istilah-istilah ini berulang di bagian ini:

150 151 

151* **Kunci kebijakan**: kunci pengaturan apa pun selain dua kunci kontrol, [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) dan [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior). File pengaturan terkelola atau kebijakan MDM yang hanya berisi yang tersebut tidak dihitung, dan Claude Code melanjutkan ke sumber berikutnya.152* **Kunci kebijakan**: kunci pengaturan apa pun selain dua kunci kontrol, [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) dan [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior). File pengaturan terkelola atau kebijakan MDM yang hanya berisi yang tersebut tidak dihitung, dan Claude Code melanjutkan ke sumber berikutnya.

152* **Sumber admin**: salah satu dari tiga sumber pertama di bawah. Registri HKCU dapat ditulis pengguna dan bukan salah satunya.153* **Sumber admin**: salah satu dari tiga sumber pertama di bawah. Registri HKCU dapat ditulis pengguna dan bukan salah satunya.


1561. Pengaturan jarak jauh, dikirimkan dari claude.ai sebagai [pengaturan yang dikelola server](/docs/id/server-managed-settings) atau oleh [gateway aplikasi Claude](/docs/id/claude-apps-gateway). Claude Code mengambil sumber ini hanya ketika sesi mengautentikasi ke API Anthropic secara langsung dengan [login atau kunci yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability), atau masuk ke gateway dengan `/login`. Pada penyedia lain, atau ketika `ANTHROPIC_BASE_URL` menunjuk ke tempat lain selain API Anthropic, dimulai dari sumber berikutnya1571. Pengaturan jarak jauh, dikirimkan dari claude.ai sebagai [pengaturan yang dikelola server](/docs/id/server-managed-settings) atau oleh [gateway aplikasi Claude](/docs/id/claude-apps-gateway). Claude Code mengambil sumber ini hanya ketika sesi mengautentikasi ke API Anthropic secara langsung dengan [login atau kunci yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability), atau masuk ke gateway dengan `/login`. Pada penyedia lain, atau ketika `ANTHROPIC_BASE_URL` menunjuk ke tempat lain selain API Anthropic, dimulai dari sumber berikutnya

1572. Kebijakan MDM atau tingkat OS: plist macOS atau kunci registri HKLM1582. Kebijakan MDM atau tingkat OS: plist macOS atau kunci registri HKLM

1583. File pengaturan terkelola, `managed-settings.d/*.json` dan `managed-settings.json` digabungkan bersama1593. File pengaturan terkelola, `managed-settings.d/*.json` dan `managed-settings.json` digabungkan bersama

1594. Registri HKCU, di Windows, dan di WSL setelah registri HKLM atau file pengaturan terkelola Windows mengaktifkan [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) dan nilai HKCU juga mengaturnya. Claude Code membacanya hanya ketika tidak ada sumber di atasnya yang mengirimkan kunci kebijakan dan tidak ada [pengaturan induk yang disediakan host](#let-an-embedding-host-add-policy) yang menyediakan kunci pembatasan1604. Registri HKCU, di Windows, dan di WSL setelah registri HKLM atau file pengaturan terkelola Windows mengaktifkan [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) dan nilai HKCU juga menetapkannya. Claude Code membacanya hanya ketika tidak ada dokumen admin yang ada di atasnya dan tidak ada [pengaturan induk yang disediakan host](#let-an-embedding-host-add-policy) yang menyediakan kunci pembatasan

160 161 

161Diagram ini menunjukkan peringkat, dengan contoh kunci lintas sumber yang Claude Code baca dari tiga sumber pertama di bawah pengaturan apa pun:162<span id="present-admin-documents" />

163 

164Claude Code tidak pernah menerapkan registri HKCU yang dapat ditulis pengguna di bawah dokumen admin yang ada. Dokumen ada ketika menetapkan kunci kebijakan apa pun ke nilai selain `null`, bahkan nilai yang tidak dapat dibaca Claude Code. Nilai HKLM, file pengaturan terkelola, atau direktori `managed-settings.d` yang ada tetapi tidak dapat dibaca juga ada. Di WSL, `/etc/claude-code` juga dapat ditulis pengguna, dan entri [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) mengatakan kapan dokumen Windows berdiri di atasnya.

165 

166Diagram ini menunjukkan peringkat, dengan contoh kunci lintas sumber yang dibaca Claude Code dari tiga sumber pertama di bawah pengaturan apa pun:

162 167 

163<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=53f6be49f06eff48e01422c8ae1bc2e6" className="dark:hidden" alt="Diagram menunjukkan empat sumber pengaturan terkelola yang diberi peringkat dari pengaturan jarak jauh di bagian atas melalui MDM, file pengaturan terkelola, dan registri HKCU di bagian bawah. Secara default sumber pertama dengan kunci kebijakan menyediakan kebijakan dan sisanya dilewati; dengan managedSourcesBehavior diatur ke merge, setiap sumber admin dengan kunci kebijakan berkontribusi, digabungkan berdasarkan jenis kunci, dan registri HKCU tetap keluar. Panel samping menunjukkan bahwa kunci lintas sumber seperti kunci sandbox, forceRemoteSettingsRefresh, dan per-variable env merge dibaca dari setiap sumber admin, yang mengecualikan registri HKCU." width="680" height="330" data-path="images/managed-source-precedence.svg" />168<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=53f6be49f06eff48e01422c8ae1bc2e6" className="dark:hidden" alt="Diagram menunjukkan empat sumber pengaturan terkelola yang diberi peringkat dari pengaturan jarak jauh di bagian atas melalui MDM, file pengaturan terkelola, dan registri HKCU di bagian bawah. Secara default sumber pertama dengan kunci kebijakan menyediakan kebijakan dan sisanya dilewati; dengan managedSourcesBehavior diatur ke merge, setiap sumber admin dengan kunci kebijakan berkontribusi, digabungkan berdasarkan jenis kunci, dan registri HKCU tetap keluar. Panel samping menunjukkan bahwa kunci lintas sumber seperti kunci sandbox, forceRemoteSettingsRefresh, dan per-variable env merge dibaca dari setiap sumber admin, yang mengecualikan registri HKCU." width="680" height="330" data-path="images/managed-source-precedence.svg" />

164 169 


168 Kunci yang dibaca dari setiap sumber admin173 Kunci yang dibaca dari setiap sumber admin

169</h3>174</h3>

170 175 

171Di bawah pengaturan default `"first-wins"`, Claude Code membaca sebagian besar kunci hanya dari [sumber yang dipilih](#how-claude-code-combines-managed-sources), dan mengabaikan nilai dalam sumber dengan peringkat lebih rendah bahkan ketika sumber yang dipilih membiarkan kunci itu tidak diatur.176Di bawah pengaturan default `"first-wins"`, Claude Code membaca sebagian besar kunci hanya dari [sumber yang dipilihnya](#how-claude-code-combines-managed-sources), dan mengabaikan nilai dalam sumber dengan peringkat lebih rendah bahkan ketika sumber yang dipilih membiarkan kunci itu tidak diatur.

172 177 

173Beberapa kunci bekerja berbeda. Claude Code membacanya dari setiap sumber admin, jadi kebijakan MDM atau file pengaturan terkelola dengan peringkat lebih rendah masih dapat mengaturnya ketika sumber yang dipilih tidak. Claude Code mengeluarkan registri HKCU yang dapat ditulis pengguna dari pemindaian itu; ketika HKCU adalah satu-satunya sumber dan tidak ada host yang menyediakan pengaturan induk, HKCU berlaku seperti sumber yang dipilih.178Beberapa kunci bekerja berbeda. Claude Code membacanya dari setiap sumber admin, sehingga kebijakan MDM atau file pengaturan terkelola dengan peringkat lebih rendah masih dapat menetapkannya ketika sumber yang dipilih tidak. Claude Code mengeluarkan registri HKCU yang dapat ditulis pengguna dari pemindaian itu; ketika HKCU adalah satu-satunya sumber dan tidak ada host yang menyediakan pengaturan induk, HKCU berlaku seperti sumber yang dipilih.

174 179 

175Kunci lintas sumber mencakup:180Kunci lintas sumber mencakup:

176 181 

177* `sandbox.network.allowManagedDomainsOnly` dan `sandbox.filesystem.allowManagedReadPathsOnly`: `true` dalam sumber admin apa pun mengaktifkan kunci. Saat kunci aktif, Claude Code menyatukan daftar yang dikunci, `sandbox.network.allowedDomains` bersama dengan aturan izin `WebFetch(domain:...)`, atau `sandbox.filesystem.allowRead`, di seluruh setiap sumber admin. Tanpa kunci, Claude Code memperlakukan daftar seperti kunci lainnya, jadi di bawah `"first-wins"` daftar sumber admin yang tidak dipilih diabaikan182* `sandbox.network.allowManagedDomainsOnly` dan `sandbox.filesystem.allowManagedReadPathsOnly`: `true` dalam sumber admin apa pun mengaktifkan kunci. Saat kunci aktif, Claude Code menyatukan daftar yang dikunci, `sandbox.network.allowedDomains` bersama dengan aturan izin `WebFetch(domain:...)`, atau `sandbox.filesystem.allowRead`, di seluruh setiap sumber admin. Tanpa kunci, Claude Code memperlakukan daftar seperti kunci lainnya, jadi di bawah `"first-wins"` daftar sumber admin yang tidak dipilih diabaikan

178* `allowAllClaudeAiMcps`183* `allowAllClaudeAiMcps`

179* `allowManagedMcpServersOnly`: `true` dalam sumber admin apa pun mengaktifkan kunci daftar izin MCP. Saat kunci aktif, daftar `allowedMcpServers` yang terkelola berasal dari sumber admin dengan peringkat tertinggi yang mengaturnya. Daftar yang dikelola server menggantikan daftar sumber yang lebih rendah daripada menggabungkannya.184* `allowManagedMcpServersOnly`: `true` dalam sumber admin apa pun mengaktifkan kunci daftar izin MCP. Saat kunci aktif, daftar `allowedMcpServers` yang dikelola berasal dari sumber admin dengan peringkat tertinggi yang menetapkan satu. Daftar yang dikelola server menggantikan daftar sumber yang lebih rendah daripada menggabungkannya.

180 185 

181 Jika tidak ada sumber admin yang mengatur daftar, setiap server yang melewati daftar penolakan dimuat, kecuali [pengaturan induk](#let-an-embedding-host-add-policy) menyediakan daftar.186 Jika tidak ada sumber admin yang menetapkan daftar, setiap server yang melewati daftar penolakan dimuat, kecuali [pengaturan induk](#let-an-embedding-host-add-policy) menyediakan daftar.

182 187 

183 Tanpa kunci, Claude Code membaca `allowedMcpServers` dari sumber terkelola yang diterapkan, jadi di bawah `"first-wins"` daftar sumber admin yang tidak dipilih diabaikan. Memerlukan Claude Code v2.1.273 atau lebih baru188 Tanpa kunci, Claude Code membaca `allowedMcpServers` dari sumber terkelola yang diterapkannya, jadi di bawah `"first-wins"` daftar sumber admin yang tidak dipilih diabaikan. Memerlukan Claude Code v2.1.273 atau lebih baru

184* `deniedMcpServers` dan [`disableClaudeAiConnectors`](/docs/id/settings-reference#disableclaudeaiconnectors): entri atau `true` dalam sumber admin apa pun berlaku. Memerlukan Claude Code v2.1.273 atau lebih baru189* `deniedMcpServers` dan [`disableClaudeAiConnectors`](/docs/id/settings-reference#disableclaudeaiconnectors): entri atau `true` dalam sumber admin apa pun berlaku. Memerlukan Claude Code v2.1.273 atau lebih baru

185* Jalur biner sandbox `sandbox.bwrapPath` dan `sandbox.socatPath`190* Jalur biner sandbox `sandbox.bwrapPath` dan `sandbox.socatPath`

186* Biner sandbox `ripgrep`, [`sandbox.ripgrep`](/docs/id/settings-reference#sandbox-ripgrep)191* Biner sandbox `ripgrep`, [`sandbox.ripgrep`](/docs/id/settings-reference#sandbox-ripgrep)


190* [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel), di mana batas terendah dalam sumber admin apa pun berlaku. Jika pengembang menetapkan batas lebih rendah dalam pengaturan mereka sendiri atau dengan `--settings`, Claude Code menerapkan yang itu; tidak ada sumber yang dapat menaikkan batas. Memerlukan Claude Code v2.1.267 atau lebih baru195* [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel), di mana batas terendah dalam sumber admin apa pun berlaku. Jika pengembang menetapkan batas lebih rendah dalam pengaturan mereka sendiri atau dengan `--settings`, Claude Code menerapkan yang itu; tidak ada sumber yang dapat menaikkan batas. Memerlukan Claude Code v2.1.267 atau lebih baru

191* Opt-out trailer komit dalam `attribution`, atau dalam `includeCoAuthoredBy` yang sudah usang, dari tingkat apa pun196* Opt-out trailer komit dalam `attribution`, atau dalam `includeCoAuthoredBy` yang sudah usang, dari tingkat apa pun

192* [`forceRemoteSettingsRefresh`](/docs/id/server-managed-settings)197* [`forceRemoteSettingsRefresh`](/docs/id/server-managed-settings)

193* `env`, digabungkan per variabel di seluruh sumber admin: setiap variabel berasal dari sumber prioritas tertinggi yang mendefinisikannya, jadi sumber lebih rendah mengisi variabel yang sumber lebih tinggi biarkan tidak diatur. Beberapa variabel mengikuti aturan mereka sendiri; [Per-key exceptions across managed sources](/docs/id/server-managed-settings#per-key-exceptions-across-managed-sources) menamai masing-masing. Memerlukan Claude Code v2.1.223 atau lebih baru. Sebelum v2.1.223, Claude Code menerapkan blok `env` seluruh sumber yang dipilih saja198* `env`, digabungkan per variabel di seluruh sumber admin: setiap variabel berasal dari sumber prioritas tertinggi yang mendefinisikannya, sehingga sumber yang lebih rendah mengisi variabel yang tidak ditinggalkan oleh sumber yang lebih tinggi. Beberapa variabel mengikuti aturan mereka sendiri; [Pengecualian per kunci di seluruh sumber terkelola](/docs/id/server-managed-settings#per-key-exceptions-across-managed-sources) menamai masing-masing. Memerlukan Claude Code v2.1.223 atau lebih baru. Sebelum v2.1.223, Claude Code menerapkan blok `env` seluruh sumber yang dipilih saja

194 199 

195Kunci [login gateway](#choose-a-delivery-mechanism) mengikuti aturan terpisah. Claude Code tidak pernah membacanya dari pengaturan yang dikelola server, jadi sementara pengaturan yang dikelola server adalah sumber yang dipilih, sumber admin dengan peringkat tertinggi di mesin yang membawa kunci kebijakan masih menyediakannya. Nilai dalam sumber admin yang diberi peringkat di bawah itu, atau dalam registri HKCU, diabaikan.200Kunci [login gateway](#choose-a-delivery-mechanism) mengikuti aturan terpisah. Claude Code tidak pernah membacanya dari pengaturan yang dikelola server, jadi sementara pengaturan yang dikelola server adalah sumber yang dipilih, sumber admin dengan peringkat tertinggi di mesin yang membawa kunci kebijakan masih menyediakannya. Nilai dalam sumber admin yang diberi peringkat di bawah yang itu, atau dalam registri HKCU, diabaikan.

196 201 

197Ketika sumber admin mengatur `allowManagedMcpServersOnly` atau daftar `allowedMcpServers` dan nilai itu bukan yang berlaku, `/status` dan `claude doctor` menamai sumber dan kunci itu.202Ketika sumber admin menetapkan `allowManagedMcpServersOnly` atau daftar `allowedMcpServers` dan nilai itu bukan yang berlaku, `/status` dan `claude doctor` menamai sumber dan kunci itu.

198 203 

199<h3 id="compose-every-managed-source">204<h3 id="compose-every-managed-source">

200 Compose every managed source205 Susun setiap sumber terkelola

201</h3>206</h3>

202 207 

203Untuk membuat Claude Code menerapkan setiap sumber admin yang organisasi Anda kirimkan, atur [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) ke `"merge"` dalam sumber dengan peringkat tertinggi yang Anda terapkan. Claude Code membaca kunci hanya dari sumber dengan peringkat tertinggi yang membawa kunci atau kunci kebijakan, jadi sumber lebih rendah tidak dapat memilih dirinya sendiri untuk bergabung dengan sumber di atasnya, dan mesin yang tidak pernah menerima pengaturan yang dikelola server memerlukan kunci dalam profil MDM juga. Registri HKCU yang dapat ditulis pengguna tidak pernah bergabung dengan sumber lain. Memerlukan Claude Code v2.1.242 atau lebih baru.208Untuk membuat Claude Code menerapkan setiap sumber admin yang disampaikan organisasi Anda, atur [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) ke `"merge"` dalam sumber dengan peringkat tertinggi yang Anda terapkan. Claude Code membaca kunci hanya dari sumber dengan peringkat tertinggi yang membawa kunci atau kunci kebijakan, sehingga sumber yang lebih rendah tidak dapat memilih dirinya sendiri untuk menggabungkan dengan sumber di atasnya, dan mesin yang tidak pernah menerima pengaturan yang dikelola server memerlukan kunci dalam profil MDM juga. Registri HKCU yang dapat ditulis pengguna tidak pernah menggabungkan dengan sumber lain. Memerlukan Claude Code v2.1.242 atau lebih baru.

204 209 

205Di bawah `"merge"`, Claude Code menambahkan entri daftar sumber lebih rendah, seperti aturan `permissions.allow` dan hooks, ke kebijakan, jadi aktifkan hanya ketika setiap sumber yang diberi peringkat di bawah yang tertinggi berada di bawah kontrol administrator.210Di bawah `"merge"`, Claude Code menambahkan entri daftar sumber yang lebih rendah, seperti aturan `permissions.allow` dan hooks, ke kebijakan, jadi aktifkan hanya ketika setiap sumber yang diberi peringkat di bawah yang tertinggi berada di bawah kontrol administrator.

206 211 

207Tabel ini menunjukkan bagaimana Claude Code menggabungkan setiap jenis kunci di bawah `"merge"`. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) menamai setiap kunci dalam tiga baris: daftar izin pembatasan, nilai yang diambil seluruhnya, dan kunci yang dibaca dari sumber dengan peringkat tertinggi saja.212Tabel ini menunjukkan bagaimana Claude Code menggabungkan setiap jenis kunci di bawah `"merge"`. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) menamai setiap kunci dalam tiga baris: daftar izin pembatasan, nilai yang diambil seluruhnya, dan kunci yang dibaca dari sumber dengan peringkat tertinggi saja.

208 213 

209| Jenis kunci | Bagaimana Claude Code menggabungkannya | Contoh |214| Jenis kunci | Bagaimana Claude Code menggabungkannya | Contoh |

210| :- | :- | :- |215| :- | :- | :- |

211| Daftar | Menggabungkan entri dari setiap sumber | `permissions.allow`, `hooks`, `sandbox.network.allowedDomains`, `deniedMcpServers` |216| Daftar | Menggabungkan entri dari setiap sumber | `permissions.allow`, `hooks`, `sandbox.network.allowedDomains`, `deniedMcpServers`, `deniedModels` |

212| Kunci | Menerapkan nilai paling ketat yang ditetapkan sumber apa pun; nilai yang lebih longgar berlaku hanya dari sumber dengan peringkat tertinggi | `allowManagedHooksOnly`, `permissions.disableBypassPermissionsMode`, `crossSessionInbound` |217| Kunci | Menerapkan nilai paling ketat yang ditetapkan sumber apa pun; nilai yang lebih longgar berlaku hanya dari sumber dengan peringkat tertinggi | `allowManagedHooksOnly`, `permissions.disableBypassPermissionsMode`, `crossSessionInbound`, `availableModelsMatch` |

213| Daftar izin pembatasan | Mengambil daftar seluruhnya dari sumber dengan peringkat tertinggi yang mengaturnya, tanpa menambahkan entri dari sumber lebih rendah | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins`, dan rantai `fallbackModel` |218| Daftar izin pembatasan | Mengambil daftar seluruhnya dari sumber dengan peringkat tertinggi yang menetapkannya, tanpa menambahkan entri dari sumber yang lebih rendah | `availableModels`, `allowedMcpServers`, `strictKnownMarketplaces`, `allowedChannelPlugins`, dan rantai `fallbackModel` |

214| Nilai yang diambil seluruhnya | Mengambil nilai seluruhnya dari sumber dengan peringkat tertinggi yang mengaturnya, tanpa menggabungkan entri atau bidang dari sumber lebih rendah | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |219| Nilai yang diambil seluruhnya | Mengambil nilai seluruhnya dari sumber dengan peringkat tertinggi yang menetapkannya, tanpa menggabungkan entri atau bidang dari sumber yang lebih rendah | `sandbox.credentials.awsPairs`, `sandbox.ripgrep` |

215| Server MCP yang disediakan | Menggabungkan nama server dari setiap sumber; ketika dua sumber menetapkan nama yang sama, menerapkan entri seluruh sumber dengan peringkat lebih tinggi | `managedMcpServers` |220| Server MCP yang disediakan | Menggabungkan nama server dari setiap sumber; ketika dua sumber menetapkan nama yang sama, menerapkan entri seluruh sumber dengan peringkat lebih tinggi | `managedMcpServers` |

216| Kunci yang dibaca dari sumber dengan peringkat tertinggi saja | Mengabaikan kunci dalam setiap sumber lebih rendah, bahkan ketika sumber dengan peringkat tertinggi membiarkannya tidak diatur | Pembantu kredensial seperti `apiKeyHelper`, pin login seperti `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |221| Kunci yang dibaca dari sumber dengan peringkat tertinggi saja | Mengabaikan kunci dalam setiap sumber yang lebih rendah, bahkan ketika sumber dengan peringkat tertinggi membiarkannya tidak diatur | Pembantu kredensial seperti `apiKeyHelper`, pin login seperti `forceLoginOrgUUID`, `modelPicker`, `permissions.defaultMode` |

217| `env` | Menggabungkan per variabel di seluruh sumber admin di bawah pengaturan apa pun, seperti [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source) menjelaskan | |222| `env` | Menggabungkan per variabel di seluruh sumber admin di bawah pengaturan apa pun, seperti [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source) menjelaskan | |

218| Setiap kunci lainnya | Mengambil nilai dari sumber dengan peringkat tertinggi yang mengaturnya | `model`, `cleanupPeriodDays` |223| Setiap kunci lainnya | Mengambil nilai dari sumber dengan peringkat tertinggi yang menetapkannya | `model`, `cleanupPeriodDays` |

219 224 

220Untuk mengonfirmasi sumber mana yang digabungkan di mesin, [baca baris `Setting sources` dalam `/status`](#read-the-source-in-/status); bagian itu mengatakan apa arti setiap label.225Untuk mengonfirmasi sumber mana yang digabungkan di mesin, [baca baris `Setting sources` dalam `/status`](#read-the-source-in-/status); bagian itu mengatakan apa arti setiap label.

221 226 


223 Hitung kebijakan dengan program pembantu228 Hitung kebijakan dengan program pembantu

224</h3>229</h3>

225 230 

226[`policyHelper`](/docs/id/settings-reference#policyhelper) adalah executable yang dinamai kebijakan MDM atau file pengaturan terkelola Anda, dan Claude Code menjalankannya untuk menghitung pengaturan terkelola saat startup. Ketika sumber yang dipilih mengonfigurasi satu dan pembantu mengeluarkan objek `managedSettings`, output itu mengubah apa yang Claude Code baca:231[`policyHelper`](/docs/id/settings-reference#policyhelper) adalah executable yang dinamai kebijakan MDM atau file pengaturan terkelola Anda, dan Claude Code menjalankannya untuk menghitung pengaturan terkelola saat startup. Ketika sumber yang dipilih mengonfigurasi satu dan pembantu memancarkan objek `managedSettings`, output itu mengubah apa yang dibaca Claude Code:

227 232 

228* **Objek `managedSettings` yang dipancarkan adalah satu-satunya pengaturan terkelola untuk sesi**, termasuk untuk [kunci yang sebaliknya dibaca dari setiap sumber admin](#keys-read-from-every-admin-source), terlepas dari [`forceRemoteSettingsRefresh`, yang memiliki aturan startup sendiri](/docs/id/settings-reference#forceremotesettingsrefresh)233* **Objek `managedSettings` yang dipancarkan adalah satu-satunya pengaturan terkelola untuk sesi**, termasuk untuk [kunci yang sebaliknya dibacanya dari setiap sumber admin](#keys-read-from-every-admin-source), terlepas dari [`forceRemoteSettingsRefresh`, yang memiliki aturan startup sendiri](/docs/id/settings-reference#forceremotesettingsrefresh)

229 234 

230Untuk kegagalan pembantu mana yang terjadi, dan apa yang Claude Code lakukan ketika terjadi, lihat [Helper failures](/docs/id/settings-reference#helper-failures).235Untuk pembantu mana yang menjalankan kegagalan, dan apa yang dilakukan Claude Code ketika satu terjadi, lihat [Kegagalan pembantu](/docs/id/settings-reference#helper-failures).

231 236 

232<span id="parent-settings-from-embedding-hosts" />237<span id="parent-settings-from-embedding-hosts" />

233 238 


239 Biarkan host penyematan menambahkan kebijakan244 Biarkan host penyematan menambahkan kebijakan

240</h3>245</h3>

241 246 

242Ketika aplikasi lain meluncurkan Claude Code, seperti Claude Desktop, ekstensi IDE, atau aplikasi Agent SDK, host itu dapat melewatkan pengaturan terkelolanya sendiri melalui opsi SDK `managedSettings`. Claude Code menyebut ini pengaturan induk.247Ketika aplikasi lain meluncurkan Claude Code, seperti Claude Desktop, ekstensi IDE, atau aplikasi Agent SDK, host itu dapat meneruskan pengaturan terkelolanya sendiri melalui opsi SDK `managedSettings`. Claude Code menyebut ini pengaturan induk.

243 248 

244Secara default, Claude Code mengabaikan pengaturan induk setiap kali sumber admin ada: pengaturan yang dikelola server, kebijakan MDM atau tingkat OS, atau file pengaturan terkelola.249Secara default, Claude Code mengabaikan pengaturan induk kapan pun sumber admin ada: pengaturan yang dikelola server, kebijakan MDM atau tingkat OS, atau file pengaturan terkelola.

245 250 

246Untuk membuat Claude Code menggabungkan pengaturan induk bersama sumber admin, atur [`parentSettingsBehavior`](/docs/id/settings-reference#parentsettingsbehavior) ke `"merge"` dalam sumber terkelola dengan prioritas tertinggi; Claude Code membaca kunci dari sumber itu saja.251Untuk membuat Claude Code menggabungkan pengaturan induk bersama sumber admin, atur [`parentSettingsBehavior`](/docs/id/settings-reference#parentsettingsbehavior) ke `"merge"` dalam sumber terkelola dengan prioritas tertinggi; Claude Code membaca kunci dari sumber itu saja.

247 252 

248Claude Code kemudian menyimpan hanya nilai host yang membatasi apa yang dapat dilakukan Claude, dengan satu celah untuk diketahui: kecuali Anda juga menetapkan kunci `allowManaged*Only`, aturan izin host dan daftar sandbox masih berlaku. Lihat [Restrict parent settings](/docs/id/claude-apps-gateway#restrict-parent-settings) untuk kunci.253Claude Code kemudian menyimpan hanya nilai host yang membatasi apa yang dapat dilakukan Claude, dengan satu celah untuk diketahui: kecuali Anda juga menetapkan kunci `allowManaged*Only`, aturan izin host dan daftar izin sandbox masih berlaku. Lihat [Batasi pengaturan induk](/docs/id/claude-apps-gateway#restrict-parent-settings) untuk kunci.

249 254 

250[`policyHelper`](/docs/id/settings-reference#policyhelper) dapat mematikan penggabungan induk terlepas dari kunci ini; entrinya mengatakan kapan.255[`policyHelper`](/docs/id/settings-reference#policyhelper) dapat mematikan penggabungan induk terlepas dari kunci ini; entrinya mengatakan kapan.

251 256 

252Claude Code juga menerapkan pemeriksaan ini ke nilai yang disediakan induk sendiri:257Claude Code juga menerapkan pemeriksaan ini ke nilai yang disediakan induk sendiri:

253 258 

254* Ketika sumber admin apa pun menetapkan `allowManagedPermissionRulesOnly`, Claude Code menghapus aturan izin [yang disediakan induk](/docs/id/claude-apps-gateway#restrict-parent-settings) dan `additionalDirectories` saat membacanya, bahkan ketika sumber prioritas lebih tinggi membiarkan kunci tidak diatur. Efek kunci pada aturan Anda sendiri berasal dari pengaturan terkelola yang Claude Code terapkan, atau dari pengaturan induk yang telah Anda pilih untuk digabungkan259* Ketika sumber admin apa pun menetapkan `allowManagedPermissionRulesOnly`, Claude Code menghapus [aturan izin yang disediakan induk](/docs/id/claude-apps-gateway#restrict-parent-settings) dan `additionalDirectories` saat membacanya, bahkan ketika sumber prioritas lebih tinggi membiarkan kunci tidak diatur. Efek kunci pada aturan Anda sendiri berasal dari pengaturan terkelola yang diterapkan Claude Code, atau dari pengaturan induk yang telah Anda pilih untuk digabungkan

255* Claude Code memberlakukan nilai `forceLoginOrgUUID` atau `allowedMcpServers` dalam pengaturan terkelola yang diterapkan dan memblokir yang disediakan induk. Di luar kunci daftar izin MCP, nilai dalam sumber admin lebih rendah yang Claude Code tidak terapkan tidak berlaku atau memblokir induk.260* Claude Code memberlakukan nilai `forceLoginOrgUUID` atau `allowedMcpServers` dalam pengaturan terkelola yang diterapkannya dan memblokir yang disediakan induk. Di luar kunci daftar izin MCP, nilai dalam sumber admin yang lebih rendah yang tidak diterapkan Claude Code tidak berlaku atau memblokir yang disediakan induk.

256 261 

257 Pada Claude Code v2.1.273 atau lebih baru, saat `allowManagedMcpServersOnly` aktif, daftar `allowedMcpServers` dari sumber admin dengan peringkat tertinggi yang mengaturnya berlaku dan memblokir induk, sebagai [kunci lintas sumber](#keys-read-from-every-admin-source). Daftar induk berlaku hanya ketika tidak ada sumber admin yang mengaturnya. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) mengatakan sumber mana yang menyediakan setiap kunci di bawah `"merge"`. Sebelum v2.1.223, nilai dalam sumber admin apa pun memblokir induk262 Pada Claude Code v2.1.273 atau lebih baru, saat `allowManagedMcpServersOnly` aktif, daftar `allowedMcpServers` dari sumber admin dengan peringkat tertinggi yang menetapkan satu berlaku dan memblokir yang disediakan induk, sebagai [kunci lintas sumber](#keys-read-from-every-admin-source). Daftar induk berlaku hanya ketika tidak ada sumber admin yang menetapkan satu. Entri [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) mengatakan sumber mana yang menyediakan setiap kunci di bawah `"merge"`. Sebelum v2.1.223, nilai dalam sumber admin apa pun memblokir yang disediakan induk

258* Untuk `availableModels`, Claude Code memberlakukan nilai dalam pengaturan terkelola yang diterapkan dan memblokir daftar yang disediakan induk263* Untuk `availableModels`, Claude Code memberlakukan nilai dalam pengaturan terkelola yang diterapkannya dan memblokir daftar yang disediakan induk

259* Untuk `strictKnownMarketplaces`, Claude Code juga memberlakukan daftar dalam pengaturan terkelola yang diterapkan dan memblokir yang disediakan induk. Daftar induk berlaku hanya ketika tidak ada sumber terkelola yang diterapkan yang mengaturnya. Memerlukan Claude Code v2.1.282 atau lebih baru264* Untuk `strictKnownMarketplaces`, Claude Code demikian juga memberlakukan daftar dalam pengaturan terkelola yang diterapkannya dan memblokir yang disediakan induk. Daftar induk berlaku hanya ketika tidak ada sumber terkelola yang diterapkan menetapkan satu. Memerlukan Claude Code v2.1.282 atau lebih baru

260* Sebuah `blockedMarketplaces` yang disediakan induk berlaku selain daftar blokir apa pun yang ditetapkan sumber terkelola. Memerlukan Claude Code v2.1.282 atau lebih baru265* Induk yang disediakan `blockedMarketplaces` berlaku selain daftar penolakan apa pun yang ditetapkan sumber terkelola. Memerlukan Claude Code v2.1.282 atau lebih baru

261 266 

262<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">267<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

263 Pertahankan akses folder Cowork ketika hanya aturan terkelola yang berlaku268 Pertahankan akses folder Cowork ketika hanya aturan terkelola yang berlaku

264</h4>269</h4>

265 270 

266[Cowork](https://claude.com/docs/cowork/overview) dalam aplikasi Claude Desktop menjalankan sesinya di Claude Code dan memberikan setiap sesi akses ke folder kerjanya, seperti folder yang dihubungkan pengguna, melalui aturan izin yang disediakannya saat meluncurkan sesi. Ketika kebijakan terkelola Anda menetapkan [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly), Claude Code menyimpan hanya aturan izin dalam kebijakan terkelola: itu menghapus aturan izin yang disediakan host sebagai pengaturan induk, sebagai `--allowedTools`, atau dalam file pengaturan, jadi penulisan ke folder tersebut kehilangan pra-persetujuan mereka. Dalam sesi Cowork yang meminta sebelum edit, Cowork tidak dapat menampilkan prompt, dan Claude melaporkan setiap penulisan sebagai diblokir karena jalur diselesaikan ke lokasi yang dilindungi atau jalur di luar folder yang terhubung.271[Cowork](https://claude.com/docs/cowork/overview) dalam aplikasi Claude Desktop menjalankan sesinya di Claude Code dan memberikan setiap sesi akses ke folder kerjanya, seperti folder yang dihubungkan pengguna, melalui aturan izin yang disediakannya saat meluncurkan sesi. Ketika kebijakan terkelola Anda menetapkan [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly), Claude Code menyimpan hanya aturan izin dalam kebijakan terkelola: itu menghapus aturan izin yang disediakan host sebagai pengaturan induk, sebagai `--allowedTools`, atau dalam file pengaturan, sehingga penulisan ke folder tersebut kehilangan pra-persetujuan mereka. Dalam sesi Cowork yang meminta sebelum edit, Cowork tidak dapat menampilkan prompt, dan Claude melaporkan setiap penulisan sebagai diblokir karena jalur diselesaikan ke lokasi yang dilindungi atau jalur di luar folder yang terhubung.

267 272 

268Untuk memulihkan penulisan, tambahkan aturan izin untuk folder tersebut ke sumber terkelola yang Claude Code [pilih](#precedence-within-the-managed-tier) di mesin tersebut: di armada yang dikelola MDM, itu adalah kebijakan MDM daripada file pengaturan terkelola terpisah. Contoh ini menggunakan bentuk file, dan kebijakan MDM mengambil kunci yang sama. Itu menyimpan `allowManagedPermissionRulesOnly` diatur dan memungkinkan edit di bawah folder `CoworkProjects` di direktori home setiap pengguna; ganti jalur dengan folder yang dihubungkan pengguna Anda:273Untuk memulihkan penulisan, tambahkan aturan izin untuk folder tersebut ke sumber terkelola yang dipilih Claude Code [pada mesin tersebut](#precedence-within-the-managed-tier): pada armada yang dikelola MDM, itu adalah kebijakan MDM daripada file pengaturan terkelola terpisah. Contoh ini menggunakan bentuk file, dan kebijakan MDM mengambil kunci yang sama. Itu menyimpan `allowManagedPermissionRulesOnly` diatur dan memungkinkan edit di bawah folder `CoworkProjects` di direktori home setiap pengguna; ganti jalur dengan folder yang dihubungkan pengguna Anda:

269 274 

270```json managed-settings.json theme={null}275```json managed-settings.json theme={null}

271{276{


278}283}

279```284```

280 285 

281Setelah Anda menerapkan kebijakan, Claude dapat menyimpan file di bawah folder itu dalam sesi Cowork baru. [Read and Edit rules](/docs/id/permissions#read-and-edit) mencakup sintaks jalur, termasuk bentuk `//` untuk jalur absolut.286Setelah Anda menerapkan kebijakan, Claude dapat menyimpan file di bawah folder itu dalam sesi Cowork baru. [Aturan Read dan Edit](/docs/id/permissions#read-and-edit) mencakup sintaks jalur, termasuk bentuk `//` untuk jalur absolut.

282 287 

283<h3 id="what-a-developer-can-change">288<h3 id="what-a-developer-can-change">

284 Apa yang dapat diubah pengembang289 Apa yang dapat diubah pengembang


296<span id="verify-that-a-policy-is-in-force" />301<span id="verify-that-a-policy-is-in-force" />

297 302 

298<h2 id="check-that-a-policy-is-in-force">303<h2 id="check-that-a-policy-is-in-force">

299 Periksa bahwa kebijakan berlaku304 Periksa bahwa kebijakan sedang berlaku

300</h2>305</h2>

301 306 

302Pengembang melaporkan bahwa kebijakan tidak diterapkan, atau Anda ingin mengonfirmasi rollout mendarat sebelum mendorongnya ke armada. Dua perintah di mesin itu menjawabnya: `/status` menunjukkan sumber terkelola mana yang Claude Code pilih, dan `claude doctor` mencantumkan apa yang dihapusnya.307Seorang pengembang melaporkan bahwa kebijakan tidak diterapkan, atau Anda ingin mengonfirmasi bahwa peluncuran telah berhasil sebelum mendorongnya ke armada. Dua perintah pada mesin tersebut menjawabnya: `/status` menunjukkan sumber terkelola mana yang dipilih Claude Code, dan `claude doctor` mencantumkan apa yang dijatuhkannya.

303 308 

304<h3 id="read-the-source-in-/status">309<h3 id="read-the-source-in-/status">

305 Baca sumber dalam /status310 Baca sumber di /status

306</h3>311</h3>

307 312 

308Di mesin pengembang, jalankan `/status` di dalam Claude Code dan baca baris `Setting sources`. Ketika sumber terkelola berlaku, baris mencantumkan `Enterprise managed settings` dengan sumber yang Claude Code pilih dalam tanda kurung:313Pada mesin pengembang, jalankan `/status` di dalam Claude Code dan baca baris `Setting sources`. Ketika sumber terkelola berlaku, baris tersebut mencantumkan `Enterprise managed settings` dengan sumber yang dipilih Claude Code dalam tanda kurung:

309 314 

310* `(remote)`: pengaturan terkelola server dari claude.ai atau gateway315* `(remote)`: pengaturan yang dikelola server dari claude.ai atau gateway

311* `(plist)` atau `(HKLM)`: kebijakan MDM atau OS316* `(plist)` atau `(HKLM)`: kebijakan MDM atau OS

312* `(file)`, `(drop-ins)`, atau `(file + drop-ins)`: `managed-settings.json`, direktori drop-in, atau keduanya317* `(file)`, `(drop-ins)`, atau `(file + drop-ins)`: `managed-settings.json`, direktori drop-in, atau keduanya

313* `(remote + file, merged)`, atau daftar lain yang diakhiri dengan `, merged`: organisasi Anda [menyusun setiap sumber terkelola](#compose-every-managed-source), dan Claude Code menggabungkan sumber yang tercantum ke dalam kebijakan. Sumber lebih rendah masih dapat menyediakan variabel `env` tanpa muncul dalam daftar. Memerlukan Claude Code v2.1.242 atau lebih baru318* `(remote + file, merged)`, atau daftar lain yang diakhiri dengan `, merged`: organisasi Anda [menyusun setiap sumber terkelola](#compose-every-managed-source), dan Claude Code menggabungkan sumber yang tercantum ke dalam kebijakan. Sumber yang lebih rendah masih dapat menyediakan variabel `env` tanpa muncul dalam daftar. Memerlukan Claude Code v2.1.242 atau lebih baru

314* `(HKCU)`: fallback registry yang dapat ditulis pengguna319* `(HKCU)`: fallback registri yang dapat ditulis pengguna

315* `(parent process)`: [host embedding](#let-an-embedding-host-add-policy) menyediakan pengaturan yang ketat320* `(parent process)`: [host penyematan](#let-an-embedding-host-add-policy) menyediakan pengaturan pembatasan

316* `(helper)`: [`policyHelper`](/docs/id/settings-reference#policyhelper) dikonfigurasi oleh sumber MDM atau file yang dipilih321* `(helper)`: [`policyHelper`](/docs/id/settings-reference#policyhelper) yang dikonfigurasi oleh sumber MDM atau file yang dipilih

317 322 

318Ketika Claude Code menemukan sumber terkelola di mesin dan tidak memilihnya, baris kedua, `Skipped sources`, menamai setiap sumber seperti itu. Bacanya untuk membedakan kebijakan yang tidak pernah mencapai mesin dari yang mencapainya dan sumber prioritas lebih tinggi mengesampingkannya. Memerlukan Claude Code v2.1.242 atau lebih baru.323Ketika Claude Code menemukan sumber terkelola pada mesin dan tidak memilihnya, baris kedua, `Skipped sources`, menamai setiap sumber tersebut. Bacalah untuk membedakan kebijakan yang tidak pernah mencapai mesin dari kebijakan yang mencapainya dan yang sumber prioritas lebih tinggi mengesampingkan. Memerlukan Claude Code v2.1.242 atau lebih baru.

319 324 

320Ketika kebijakan tidak diterapkan, baris `Setting sources` memberi tahu Anda masalah mana dari dua yang Anda miliki:325Ketika kebijakan tidak diterapkan, baris `Setting sources` memberi tahu Anda masalah mana dari dua masalah yang Anda miliki:

321 326 

322* **Baris hilang**: Claude Code tidak menemukan sumber terkelola yang mengirimkan kunci kebijakan.327* **Baris hilang**: Claude Code tidak menemukan sumber terkelola yang memberikan kunci kebijakan.

323 328 

324 Jika Anda terapkan file pengaturan terkelola, periksa bahwa itu duduk di jalur untuk OS dan bahwa itu berisi [kunci kebijakan](#how-claude-code-combines-managed-sources) daripada hanya kunci kontrol. File yang bukan JSON yang valid tidak menghasilkan keadaan ini; Claude Code [menolak untuk memulai](#find-entries-claude-code-dropped) sebagai gantinya.329 Jika Anda menerapkan file pengaturan terkelola, periksa bahwa file tersebut berada di jalur untuk OS dan bahwa file tersebut berisi [kunci kebijakan](#how-claude-code-combines-managed-sources) daripada hanya kunci kontrol. File yang bukan JSON yang valid tidak menghasilkan status ini; Claude Code [menolak untuk memulai](#find-entries-claude-code-dropped) sebagai gantinya.

325 330 

326 Ketika Anda terapkan melalui pengaturan terkelola server sebagai gantinya, jalankan `claude doctor`, yang melaporkan [hasil pengambilan](/docs/id/server-managed-settings#verify-settings-delivery).331 Ketika Anda menerapkan melalui pengaturan yang dikelola server, jalankan `claude doctor`, yang melaporkan [hasil pengambilan](/docs/id/server-managed-settings#verify-settings-delivery).

327* **Baris menamai sumber selain yang Anda terapkan**: sumber prioritas lebih tinggi ada dan Claude Code mengabaikan milik Anda, dan `Skipped sources` mencantumkannya. [Bagaimana Claude Code menggabungkan sumber terkelola](#how-claude-code-combines-managed-sources) memberikan urutan.332* **Baris menamai sumber selain yang Anda terapkan**: sumber prioritas lebih tinggi ada dan Claude Code mengabaikan milik Anda, dan `Skipped sources` mencantumkannya. [Bagaimana Claude Code menggabungkan sumber terkelola](#how-claude-code-combines-managed-sources) memberikan urutan.

328 333 

329<span id="invalid-entries-in-managed-settings" />334<span id="invalid-entries-in-managed-settings" />

330 335 

331<h3 id="find-entries-claude-code-dropped">336<h3 id="find-entries-claude-code-dropped">

332 Temukan entri yang Claude Code hapus337 Temukan entri yang Claude Code jatuhkan

333</h3>338</h3>

334 339 

335Ketika file pengaturan terkelola, profil MDM, nilai registry, atau payload terkelola server gagal validasi skema, Claude Code pertama melewatkan entri individual yang dapat diperbaiki, seperti satu aturan izin yang tidak valid, dengan peringatan untuk masing-masing, kemudian menghapus kunci tingkat atas yang nilainya masih gagal dan terus memberlakukan setiap kunci yang valid yang tersisa.340Jika file pengaturan terkelola, profil MDM, nilai registri, atau muatan yang dikelola server gagal validasi skema, Claude Code terlebih dahulu melewati setiap entri individual yang dapat diperbaiki, seperti satu aturan izin yang tidak valid, dan memperingatkan tentang masing-masing. Claude Code kemudian menjatuhkan nilai apa pun yang masih gagal, kecuali nilai tersebut termasuk dalam salah satu kunci yang [gagal tertutup](#keys-that-fail-closed) sebagai gantinya.

336 341 

337Claude Code lebih ketat dengan `managedSettings` yang [`policyHelper`](/docs/id/settings-reference#policyhelper) pancarkan: itu membuat perbaikan entri yang sama, tetapi pelanggaran skema apa pun yang bertahan gagal seluruh jalankan pembantu, dan saat startup Claude Code menolak untuk memulai, sama seperti untuk pembantu yang keluar non-nol.342Claude Code lebih ketat dengan `managedSettings` yang [`policyHelper`](/docs/id/settings-reference#policyhelper) memancarkan: Claude Code melakukan perbaikan entri yang sama, tetapi pelanggaran skema apa pun yang bertahan gagal seluruh jalankan helper, dan saat startup Claude Code menolak untuk memulai, sama seperti untuk helper yang keluar dengan non-zero.

338 343 

339Ketika file pengaturan terkelola, file drop-in, plist MDM, atau nilai registry HKLM ada tetapi tidak dapat diuraikan sebagai objek JSON, Claude Code menolak untuk memulai dan mencetak [kesalahan yang menamai sumber](/docs/id/errors#managed-settings-document-could-not-be-parsed), bahkan ketika sumber admin lain mengirimkan kebijakan yang valid. Setiap sumber gagal dengan cara ini ketika:344Ketika file pengaturan terkelola, file drop-in, plist MDM, atau nilai registri HKLM ada tetapi tidak dapat diuraikan sebagai objek JSON, Claude Code menolak untuk memulai dan mencetak [kesalahan yang menamai sumber](/docs/id/errors#managed-settings-document-could-not-be-parsed), bahkan ketika sumber admin lain memberikan kebijakan yang valid. Setiap sumber gagal dengan cara ini ketika:

340 345 

341* **File pengaturan terkelola atau file drop-in**: file bukan JSON yang valid, atau tingkat atasnya bukan objek346* **File pengaturan terkelola atau file drop-in**: file bukan JSON yang valid, atau tingkat atasnya bukan objek

342* **Plist MDM**: `plutil` macOS melaporkan plist yang salah bentuk, atau konten yang dikonversi bukan objek JSON347* **Plist MDM**: `plutil` macOS melaporkan plist yang salah bentuk, atau konten yang dikonversi bukan objek JSON

343* **Nilai registry HKLM**: nilai `Settings` bukan string, kosong, atau tidak menyimpan objek JSON348* **Nilai registri HKLM**: nilai `Settings` bukan string, kosong, atau tidak menyimpan objek JSON

344 349 

345Tiga keadaan sumber tidak menyebabkan penolakan ini:350Tiga status sumber tidak menyebabkan penolakan ini:

346 351 

347* File, profil, atau nilai registry yang tidak ada bukan kegagalan; Claude Code berjalan tanpa sumber itu.352* File, profil, atau nilai registri yang tidak ada bukan kegagalan; Claude Code berjalan tanpa sumber tersebut.

348* File pengaturan terkelola kosong dihitung sebagai `{}`.353* File pengaturan terkelola yang kosong dihitung sebagai `{}`.

349* Nilai yang salah bentuk dalam kunci registry HKCU yang dapat ditulis pengguna tidak pernah memblokir peluncuran. Claude Code melaporkannya sebagai pemberitahuan dalam `/status` dan `claude doctor` sebagai gantinya.354* Nilai yang salah bentuk dalam kunci registri HKCU yang dapat ditulis pengguna tidak pernah memblokir peluncuran. Claude Code melaporkannya sebagai pemberitahuan di `/status` dan `claude doctor` sebagai gantinya.

350 355 

351Jika file pengaturan terkelola, file drop-in, atau direktori `managed-settings.d/` tidak dapat dibaca dan tidak ada sumber admin yang menyediakan kebijakan, sesi yang masuk dengan kredensial claude.ai atau Claude Console keluar saat startup dengan pesan untuk menghubungi administrator.356Jika file pengaturan terkelola, file drop-in, atau direktori `managed-settings.d/` tidak dapat dibaca dan tidak ada sumber admin yang menyediakan kebijakan, sesi yang masuk dengan kredensial claude.ai atau Claude Console keluar saat startup dengan pesan untuk menghubungi administrator.

352 357 

353Untuk menemukan entri yang dihapus, lihat di salah satu dari tiga tempat:358Untuk menemukan entri yang dijatuhkan, lihat di salah satu dari tiga tempat:

354 359 

355* Sesi interaktif menunjukkan dialog saat startup yang mencantumkan entri yang tidak valid.360* Sesi interaktif menampilkan dialog saat startup yang mencantumkan entri yang tidak valid.

356* Jalankan non-interaktif dengan `-p` mencetak ringkasan ke stderr.361* Jalankan non-interaktif dengan `-p` mencetak ringkasan ke stderr.

357* [`claude doctor`](/docs/id/debug-your-config) mencantumkan setiap entri yang tidak valid dengan sumber dan bidangnya.362* [`claude doctor`](/docs/id/debug-your-config) mencantumkan setiap entri yang tidak valid dengan sumber dan bidangnya.

358 363 


360 Kunci yang gagal tertutup365 Kunci yang gagal tertutup

361</h4>366</h4>

362 367 

363Beberapa 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:368Ketika sumber terkelola menetapkan kunci tingkat atas yang memiliki nilai pembatasan tunggal, seperti `allowManagedPermissionRulesOnly`, `disableAutoMode`, atau `skipDangerousModePermissionPrompt`, ke sesuatu yang Claude Code tidak dapat membaca, kunci membaca sebagai nilai tersebut sampai Anda memperbaikinya. Laporan mengatakan kunci `was present but invalid` dan menamai nilai yang Claude Code perlakukan sebagai. Untuk kunci di dalam `sandbox`, lihat [Nilai yang tidak valid di dalam `sandbox`](#invalid-values-inside-sandbox).

369 

370Kasus-kasus ini tidak gagal tertutup:

371 

372* `null` menghapus kunci.

373* `disableAllHooks` yang tidak valid, bahkan boolean yang dikutip, dijatuhkan dengan peringatan, karena memberlakukan `true` juga akan membongkar hook yang pengaturan terkelola Anda sendiri terapkan.

374* Untuk setiap kunci boolean lainnya yang aturan cakup, string `"true"` atau `"false"` membaca sebagai boolean tersebut, dengan pemberitahuan di `/status` meminta Anda untuk menghapus tanda kutip.

375 

376Claude Code memperbaiki blok `permissions`, `autoMode`, `worktree`, dan `attribution` per bidang daripada menjatuhkan seluruhnya:

377 

378* Kunci kunci di dalamnya, seperti `permissions.disableBypassPermissionsMode`, membaca sebagai nilai pembatasannya.

379* `permissions.defaultMode` yang tidak valid membaca sebagai `default`.

380* Sementara daftar `deny` atau `ask` di `permissions` tidak dapat dibaca sama sekali, Claude Code menahan `allow` dan `additionalDirectories`, sehingga hibah tidak pernah diterapkan tanpa pembatasan yang ditulis di sebelahnya. Laporan menamai setiap hibah yang ditahan dan daftar yang tidak dapat dibaca.

381* Di `autoMode`, daftar `soft_deny` atau `hard_deny` yang tidak dapat dibaca, atau yang kehilangan entri yang tidak valid, menahan `allow` dan `environment` dengan cara yang sama.

382 

383Aturan gagal-tertutup untuk kunci dengan nilai pembatasan tunggal dan perbaikan per-bidang memerlukan Claude Code v2.1.282 atau lebih baru.

384 

385Kunci-kunci ini memiliki fallback mereka sendiri:

364 386 

365| Bidang | Perilaku ketika ada tetapi tidak valid |387| Bidang | Perilaku ketika ada tetapi tidak valid |

366| :- | :- |388| :- | :- |

367| `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. |389| `allowedMcpServers` | Diberlakukan sebagai daftar izin kosong sampai nilai diperbaiki, sehingga tidak ada server MCP yang ditambahkan pengguna yang diterima. 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. |

368| `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. |390| `allowedHttpHookUrls` | Claude Code memberlakukan [daftar izin](/docs/id/settings-reference#allowedhttphookurls) terkelola kosong sampai Anda memperbaiki nilai, sehingga hook HTTP berjalan hanya jika file pengaturan lain mencantumkan URL-nya. Jika hanya entri individual yang tidak valid, Claude Code melepas entri tersebut dan memberlakukan sisanya. |

369| `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. |391| `httpHookAllowedEnvVars` | Claude Code memberlakukan [daftar izin](/docs/id/settings-reference#httphookallowedenvvars) terkelola kosong sampai Anda memperbaiki nilai, sehingga variabel header diinterpolasi hanya jika file pengaturan lain menamakannya. Jika hanya entri individual yang tidak valid, Claude Code melepas entri tersebut dan memberlakukan sisanya. |

370| `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. |392| `allowedChannelPlugins` | Claude Code memberlakukan daftar izin kosong sampai Anda memperbaiki nilai, sehingga tidak ada plugin saluran yang dilewatkan ke `--channels` yang diterima. Jika hanya entri individual yang tidak valid, Claude Code melepas entri tersebut dan memberlakukan sisanya. |

371| `strictKnownMarketplaces` | Diberlakukan sebagai daftar izin kosong sampai nilai diperbaiki, jadi tidak ada [sumber marketplace](/docs/id/plugins/org#restrict-what-users-can-install) yang diakui. Entri individual yang tidak valid atau tidak dapat diberlakukan, seperti regex `hostPattern` yang tidak dikompilasi, dilepas dan subset yang valid diberlakukan. |393| `strictKnownMarketplaces` | Diberlakukan sebagai daftar izin kosong sampai nilai diperbaiki, sehingga tidak ada [sumber marketplace](/docs/id/plugins/org#restrict-what-users-can-install) yang diterima. Entri individual yang tidak valid atau tidak dapat diberlakukan, seperti regex `hostPattern` yang tidak dikompilasi, dilepas dan subset yang valid diberlakukan. |

372| `allowManagedHooksOnly` | Diperlakukan sebagai `true` sampai diperbaiki: [pembatasan hook](/docs/id/settings-reference#allowmanagedhooksonly) berlaku dan, kecuali `disableCommandPluginSources` secara eksplisit `false`, plugin bersumber perintah dinonaktifkan. |394| `availableModels` | Diberlakukan sebagai daftar izin kosong sampai diperbaiki, sehingga hanya model Default yang tersedia; entri non-string dilepas dan subset yang valid diberlakukan. |

373| `allowManagedMcpServersOnly` | Diperlakukan sebagai `true`. |395| [`availableModelsMatch`](/docs/id/settings-reference#availablemodelsmatch) | Diperlakukan sebagai `exact` sampai nilai diperbaiki. |

374| `disableCommandPluginSources` | Diperlakukan sebagai `true`, jadi plugin bersumber perintah tetap dinonaktifkan sampai nilai diperbaiki. |

375| `disableSideloadFlags` | Diperlakukan sebagai `true` sampai nilai diperbaiki, dengan efek yang tercantum untuk [`disableSideloadFlags`](/docs/id/settings-reference#disablesideloadflags). |

376| `availableModels` | Diberlakukan sebagai daftar izin kosong sampai diperbaiki, jadi hanya model Default yang tersedia; entri non-string dilepas dan subset yang valid diberlakukan. |

377| `enforceAvailableModels` | Diperlakukan sebagai `true`. |

378| `syncClaudeAiPlugins` | Diperlakukan sebagai `false`, jadi sinkronisasi [plugin claude.ai](/docs/id/settings-reference#syncclaudeaiplugins) mati sampai nilai diperbaiki. |

379| `forceLoginOrgUUID` | Tidak ada organisasi yang diizinkan untuk masuk sampai nilai diperbaiki. |396| `forceLoginOrgUUID` | Tidak ada organisasi yang diizinkan untuk masuk sampai nilai diperbaiki. |

380| `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. |397| `gatewayInternalNetworks` | Ketika nilai yang tidak valid berasal dari sumber terkelola tertinggi pada mesin, `/login` menolak setiap [gateway cloud](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) masuk baru pada mesin tersebut sampai nilai diperbaiki. |

381| `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). |398| `crossSessionInbound` | Diperlakukan sebagai `refuse`, nilai paling pembatas, sehingga [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). |

382| `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. |399| `deniedMcpServers` | Entri individual yang tidak valid dilepas dan subset yang valid diberlakukan. Nilai yang sepenuhnya tidak valid dijatuhkan dengan peringatan, karena menolak setiap server akan memblokir server yang kebijakan tidak pernah namai. |

383| `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/plugins/org#restrict-what-users-can-install) tetap aktif. Nilai yang sepenuhnya tidak valid dihapus dengan peringatan, karena memblokir setiap marketplace akan memblokir sumber yang kebijakan tidak pernah namai. |400| [`deniedModels`](/docs/id/settings-reference#deniedmodels) | Entri non-string dilepas dan sisa daftar diberlakukan. Nilai yang sepenuhnya tidak valid dijatuhkan dengan peringatan dan tidak memblokir model apa pun sampai diperbaiki. |

384| `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) |401| `blockedMarketplaces` | Entri individual yang tidak valid dilepas dan subset yang valid diberlakukan. Entri yang diuraikan tetapi tidak pernah dapat cocok, seperti regex `hostPattern` yang tidak dikompilasi, disimpan dengan peringatan. Ini tidak memblokir apa pun sampai diperbaiki, tetapi [pembatasan marketplace](/docs/id/plugins/org#restrict-what-users-can-install) tetap aktif. Nilai yang sepenuhnya tidak valid dijatuhkan dengan peringatan, karena memblokir setiap marketplace akan memblokir sumber yang kebijakan tidak pernah namai. |

402| `sandbox` | Ketika satu nilai di dalam blok tidak valid, Claude Code tidak menjatuhkan seluruh blok. Untuk apa yang terjadi pada setiap jenis bidang yang tidak valid, lihat [Nilai yang tidak valid di dalam `sandbox`](#invalid-values-inside-sandbox). |

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

404| `strictPluginOnlyCustomization` | Diperlakukan sebagai `true`, mengunci keempat permukaan, ketika nilai bukan boolean maupun array. Entri array yang versi ini tidak mengenali sebagai permukaan tidak mengunci apa pun; catatan status menghitung entri tersebut sehingga Anda dapat memeriksanya untuk kesalahan ketik. |

405| `enabledPlugins` | Entri yang tidak valid dijatuhkan dengan peringatan dan entri lainnya tetap diberlakukan. Nilai yang bukan peta ID plugin, atau yang setiap entrinya tidak valid, dijatuhkan seluruhnya dengan peringatan. |

406 

407`allowedHttpHookUrls` dan `httpHookAllowedEnvVars` bergabung di seluruh file pengaturan, sehingga entri dalam pengaturan pengguna, proyek, atau lokal Anda masih berlaku sementara daftar terkelola kosong.

408 

409Fallback untuk kedua kunci tersebut dan untuk `allowedChannelPlugins` memerlukan Claude Code v2.1.267 atau lebih baru; versi sebelumnya menjatuhkan seluruh kunci ketika nilainya atau entri apa pun tidak valid. Fallback `strictKnownMarketplaces` dan `blockedMarketplaces` memerlukan Claude Code v2.1.277 atau lebih baru; versi sebelumnya menjatuhkan seluruh kunci ketika nilainya atau entri apa pun tidak valid. Fallback `strictPluginOnlyCustomization` dan `enabledPlugins` memerlukan Claude Code v2.1.282 atau lebih baru.

385 410 

386`allowedHttpHookUrls` dan `httpHookAllowedEnvVars` menggabungkan di seluruh file pengaturan, jadi entri dalam pengaturan pengguna, proyek, atau lokal Anda masih berlaku sementara daftar terkelola kosong.411`requiredMinimumVersion` dan `requiredMaximumVersion` gagal terbuka sesuai desain: nilai yang tidak valid dijatuhkan daripada diberlakukan.

412 

413Toleransi ini hanya berlaku untuk pengaturan terkelola. File pengaturan pengguna, proyek, dan lokal tetap ketat: file yang JSON atau bentuk tingkat atasnya gagal validasi ditolak seluruhnya dan dilaporkan, dan entri individual yang gagal, seperti aturan izin yang salah bentuk, dilewati dengan peringatan sementara sisa file berlaku.

414 

415<h4 id="invalid-values-inside-sandbox">

416 Nilai yang tidak valid di dalam `sandbox`

417</h4>

387 418 

388Fallback 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.419Ketika satu nilai dalam blok `sandbox` terkelola Anda tidak valid, Claude Code tidak menjatuhkan seluruh blok, karena Claude Code memvalidasi setiap bidang sendiri. Penanganan per-bidang ini memerlukan Claude Code v2.1.283 atau lebih baru. Pada versi sebelum v2.1.283, Claude Code menjatuhkan setiap bidang `sandbox` kecuali [`credentials`](/docs/id/settings-reference#invalid-credential-entries-in-managed-settings) ketika nilai di luar `credentials` tidak valid.

389 420 

390`requiredMinimumVersion` dan `requiredMaximumVersion` gagal terbuka dengan desain: nilai yang tidak valid dihapus daripada diberlakukan.421Peringatan yang Anda dapatkan untuk bidang yang tidak valid menamai bidang dan memberi tahu Anda apa yang terjadi padanya. Apa yang terjadi tergantung pada apa yang dikendalikan bidang:

391 422 

392Toleransi ini hanya berlaku untuk pengaturan terkelola. File pengaturan pengguna, proyek, dan lokal tetap ketat: file yang JSON atau bentuk tingkat atasnya gagal validasi ditolak secara keseluruhan dan dilaporkan, dan entri individual yang gagal, seperti aturan izin yang salah bentuk, dilewatkan dengan peringatan sementara sisa file berlaku.423* Jika Anda menetapkan kunci Boolean ke `"true"` atau `"false"` yang dikutip, nilai dihitung sebagai Boolean tersebut. Alih-alih peringatan, `/status` menampilkan pemberitahuan meminta Anda untuk menghapus tanda kutip.

424* Jika `failIfUnavailable` tidak valid, Claude Code menjatuhkan nilai daripada memperlakukannya sebagai `true`, sehingga nilai yang tidak dapat dibaca tidak pernah menghentikan sesi dari memulai di seluruh armada Anda.

425* Claude Code memperlakukan setiap Boolean yang tidak valid lainnya sebagai nilai yang membuat sandbox paling ketat sampai Anda memperbaikinya. Kunci yang mengaktifkan sandbox atau salah satu pembatasannya, seperti `enabled` atau `network.allowManagedDomainsOnly`, dihitung sebagai `true`. Kunci yang melonggarkannya, seperti `allowUnsandboxedCommands`, dihitung sebagai `false`.

426* Dalam daftar di luar `credentials`, seperti `excludedCommands` atau `network.allowedDomains`, Claude Code menjatuhkan entri yang tidak valid dan menyimpan sisa daftar. Daftar yang bukan array, atau yang tidak memiliki entri yang valid, tidak berlaku sama sekali.

427* Sementara `network.deniedDomains` atau entri apa pun di dalamnya tidak valid, Claude Code juga menahan `network.allowedDomains`, sehingga daftar izin terkelola tidak memberikan apa pun sampai Anda memperbaiki daftar penolakan.

428* Sementara `filesystem.denyRead`, `filesystem.denyWrite`, atau entri apa pun di salah satu tidak valid, Claude Code juga menahan `filesystem.allowRead` dan `filesystem.allowWrite` sampai Anda memperbaiki daftar penolakan.

393 429 

394<span id="managed-only-settings" />430<span id="managed-only-settings" />

395 431 


401 437 

402Sebagian besar adalah kunci: nilai yang dikunci, seperti aturan izin atau `sandbox.network.allowedDomains`, adalah kunci biasa yang dapat diatur tingkat apa pun, dan kunci memberi tahu Claude Code untuk menghormati hanya nilai terkelola.438Sebagian besar adalah kunci: nilai yang dikunci, seperti aturan izin atau `sandbox.network.allowedDomains`, adalah kunci biasa yang dapat diatur tingkat apa pun, dan kunci memberi tahu Claude Code untuk menghormati hanya nilai terkelola.

403 439 

404Tabel mencakup kontrol izin, plugin, dan pengiriman. Untuk kunci apa pun yang tidak tercantum di sini, kolom Scope dari [referensi pengaturan](/docs/id/settings-reference#all-settings) index mengatakan apakah itu terkelola saja; kunci terkelola saja yang tersisa di sana termasuk URL login gateway, versi, browser, mobile-simulator, host SSH, Desktop sesi lokal, jalur biner sandbox, harga model, dan kontrol CLAUDE.md.440Tabel mencakup kontrol izin, plugin, dan pengiriman. Untuk kunci apa pun yang tidak tercantum di sini, kolom Scope dari [referensi pengaturan](/docs/id/settings-reference#all-settings) index mengatakan apakah itu terkelola saja; kunci terkelola saja yang tersisa di sana termasuk URL login gateway, versi, browser, mobile-simulator, host SSH, Desktop sesi lokal, jalur biner sandbox, harga model, pembatasan model, dan kontrol CLAUDE.md.

405 441 

406| Pengaturan | Deskripsi |442| Pengaturan | Deskripsi |

407| :- | :- |443| :- | :- |

408| [`allowAllClaudeAiMcps`](/docs/id/settings-reference#allowallclaudeaimcps) | Muat konektor claude.ai yang Claude Code ambil sendiri bersama `managed-mcp.json` yang diterapkan alih-alih menekannya |444| [`allowAllClaudeAiMcps`](/docs/id/settings-reference#allowallclaudeaimcps) | Muat konektor claude.ai yang Claude Code ambil sendiri bersama `managed-mcp.json` yang diterapkan alih-alih menekannya |

409| [`allowedChannelPlugins`](/docs/id/settings-reference#allowedchannelplugins) | Daftar izin plugin channel yang dapat mendorong pesan. Mengganti daftar izin Anthropic default ketika diatur. Memerlukan `channelsEnabled: true`. Lihat [Batasi plugin channel mana yang dapat berjalan](/docs/id/channels#restrict-which-channel-plugins-can-run) |445| [`allowedChannelPlugins`](/docs/id/settings-reference#allowedchannelplugins) | Daftar izin plugin channel yang dapat mendorong pesan. Mengganti daftar izin Anthropic default ketika diatur. Memerlukan `channelsEnabled: true`. Lihat [Batasi plugin channel mana yang dapat berjalan](/docs/id/channels#restrict-which-channel-plugins-can-run) |

410| [`allowManagedHooksOnly`](/docs/id/settings-reference#allowmanagedhooksonly) | Ketika `true`, membatasi hook mana yang berjalan; lihat [apa yang berjalan di bawah `allowManagedHooksOnly`](/docs/id/settings-reference#what-runs-under-allowmanagedhooksonly) untuk daftar efek lengkap |446| [`allowManagedHooksOnly`](/docs/id/settings-reference#allowmanagedhooksonly) | Ketika `true`, membatasi hook mana yang berjalan; lihat [apa yang berjalan di bawah `allowManagedHooksOnly`](/docs/id/settings-reference#what-runs-under-allowmanagedhooksonly) untuk daftar efek lengkap |

411| [`allowManagedMcpServersOnly`](/docs/id/settings-reference#allowmanagedmcpserversonly) | Ketika `true`, hanya `allowedMcpServers` dari pengaturan terkelola yang dihormati. `deniedMcpServers` masih merge dari semua sumber. Lihat [Kunci yang dibaca dari setiap sumber admin](#keys-read-from-every-admin-source) untuk sumber terkelola mana yang dapat mengaturnya, dan [Konfigurasi MCP terkelola](/docs/id/managed-mcp) |447| [`allowManagedMcpServersOnly`](/docs/id/settings-reference#allowmanagedmcpserversonly) | Ketika `true`, hanya `allowedMcpServers` dari pengaturan terkelola yang dihormati. `deniedMcpServers` masih merge dari semua sumber. Lihat [Kunci yang dibaca dari setiap sumber admin](/docs/id/settings-reference#keys-read-from-every-admin-source) untuk sumber terkelola mana yang dapat mengaturnya, dan [Konfigurasi MCP terkelola](/docs/id/managed-mcp) |

412| [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly) | Membuat pengaturan terkelola satu-satunya sumber pengaturan aturan izin. Entri mencantumkan setiap sumber yang diabaikannya |448| [`allowManagedPermissionRulesOnly`](/docs/id/settings-reference#allowmanagedpermissionrulesonly) | Membuat pengaturan terkelola satu-satunya sumber pengaturan aturan izin. Entri mencantumkan setiap sumber yang diabaikannya |

413| [`blockedMarketplaces`](/docs/id/settings-reference#blockedmarketplaces) | Daftar blokir sumber marketplace. Sumber yang diblokir diperiksa sebelum mengunduh, jadi mereka tidak pernah menyentuh filesystem. Lihat [pembatasan marketplace terkelola](/docs/id/plugins/org#restrict-what-users-can-install) |449| [`blockedMarketplaces`](/docs/id/settings-reference#blockedmarketplaces) | Daftar blokir sumber marketplace. Sumber yang diblokir diperiksa sebelum mengunduh, jadi mereka tidak pernah menyentuh filesystem. Lihat [pembatasan marketplace terkelola](/docs/id/plugins/org#restrict-what-users-can-install) |

414| [`channelsEnabled`](/docs/id/settings-reference#channelsenabled) | Izinkan [channels](/docs/id/channels) untuk organisasi. Lihat [kontrol enterprise](/docs/id/channels#enterprise-controls) untuk default di setiap paket |450| [`channelsEnabled`](/docs/id/settings-reference#channelsenabled) | Izinkan [channels](/docs/id/channels) untuk organisasi. Lihat [kontrol enterprise](/docs/id/channels#enterprise-controls) untuk default di setiap paket |


416| [`disableSideloadFlags`](/docs/id/settings-reference#disablesideloadflags) | Tolak flag `--plugin-dir`, `--plugin-url`, `--agents`, dan `--mcp-config` saat startup. Dalam sesi cloud, Claude Code menghapus server MCP yang server kirimkan melalui `--mcp-config`, selain entri `type: "sdk"` dalam proses, dan memulai sesi. Memerlukan Claude Code v2.1.193 atau lebih baru |452| [`disableSideloadFlags`](/docs/id/settings-reference#disablesideloadflags) | Tolak flag `--plugin-dir`, `--plugin-url`, `--agents`, dan `--mcp-config` saat startup. Dalam sesi cloud, Claude Code menghapus server MCP yang server kirimkan melalui `--mcp-config`, selain entri `type: "sdk"` dalam proses, dan memulai sesi. Memerlukan Claude Code v2.1.193 atau lebih baru |

417| [`forceRemoteSettingsRefresh`](/docs/id/settings-reference#forceremotesettingsrefresh) | Ketika `true`, memblokir startup CLI sampai pengaturan terkelola jarak jauh diambil segar dan keluar jika pengambilan gagal. Lihat [penegakan fail-closed](/docs/id/server-managed-settings#enforce-fail-closed-startup) |453| [`forceRemoteSettingsRefresh`](/docs/id/settings-reference#forceremotesettingsrefresh) | Ketika `true`, memblokir startup CLI sampai pengaturan terkelola jarak jauh diambil segar dan keluar jika pengambilan gagal. Lihat [penegakan fail-closed](/docs/id/server-managed-settings#enforce-fail-closed-startup) |

418| [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) | Server MCP jarak jauh yang disediakan untuk setiap pengguna bersama milik mereka sendiri. Ini menyediakan server daripada mengunci apa pun. Lihat [Sediakan server melalui pengaturan terkelola](/docs/id/managed-mcp#provide-servers-through-managed-settings). Memerlukan Claude Code v2.1.259 atau lebih baru |454| [`managedMcpServers`](/docs/id/settings-reference#managedmcpservers) | Server MCP jarak jauh yang disediakan untuk setiap pengguna bersama milik mereka sendiri. Ini menyediakan server daripada mengunci apa pun. Lihat [Sediakan server melalui pengaturan terkelola](/docs/id/managed-mcp#provide-servers-through-managed-settings). Memerlukan Claude Code v2.1.259 atau lebih baru |

419| [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) | Apakah Claude Code menerapkan hanya sumber terkelola prioritas tertinggi atau [menyusun setiap satu](#compose-every-managed-source) |455| [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) | Apakah Claude Code menerapkan hanya sumber terkelola prioritas tertinggi atau [menyusun setiap satu](/docs/id/settings-reference#compose-every-managed-source) |

420| [`parentSettingsBehavior`](/docs/id/settings-reference#parentsettingsbehavior) | Apakah pengaturan induk yang disediakan host merge di bawah kebijakan terkelola |456| [`parentSettingsBehavior`](/docs/id/settings-reference#parentsettingsbehavior) | Apakah pengaturan induk yang disediakan host merge di bawah kebijakan terkelola |

421| [`pluginSuggestionMarketplaces`](/docs/id/settings-reference#pluginsuggestionmarketplaces) | Marketplace yang plugin Claude Code dapat sarankan kepada pengguna |457| [`pluginSuggestionMarketplaces`](/docs/id/settings-reference#pluginsuggestionmarketplaces) | Marketplace yang plugin Claude Code dapat sarankan kepada pengguna |

422| [`pluginTrustMessage`](/docs/id/settings-reference#plugintrustmessage) | Pesan khusus ditambahkan ke peringatan kepercayaan plugin yang ditampilkan sebelum instalasi |458| [`pluginTrustMessage`](/docs/id/settings-reference#plugintrustmessage) | Pesan khusus ditambahkan ke peringatan kepercayaan plugin yang ditampilkan sebelum instalasi |


425| [`sandbox.network.allowManagedDomainsOnly`](/docs/id/settings-reference#sandbox-network-allowmanageddomainsonly) | Hormati hanya `allowedDomains` terkelola dan aturan izin `WebFetch(domain:...)`; blokir domain lain tanpa meminta |461| [`sandbox.network.allowManagedDomainsOnly`](/docs/id/settings-reference#sandbox-network-allowmanageddomainsonly) | Hormati hanya `allowedDomains` terkelola dan aturan izin `WebFetch(domain:...)`; blokir domain lain tanpa meminta |

426| [`strictKnownMarketplaces`](/docs/id/settings-reference#strictknownmarketplaces) | Mengontrol sumber marketplace plugin mana yang pengguna dapat tambahkan dan instal plugin darinya. Lihat [pembatasan marketplace terkelola](/docs/id/plugins/org#restrict-what-users-can-install) |462| [`strictKnownMarketplaces`](/docs/id/settings-reference#strictknownmarketplaces) | Mengontrol sumber marketplace plugin mana yang pengguna dapat tambahkan dan instal plugin darinya. Lihat [pembatasan marketplace terkelola](/docs/id/plugins/org#restrict-what-users-can-install) |

427| [`strictPluginOnlyCustomization`](/docs/id/settings-reference#strictpluginonlycustomization) | Blokir skills, agents, hooks, dan server MCP dari sumber pengguna dan proyek; `true` mengunci keempat, array menamai yang mana |463| [`strictPluginOnlyCustomization`](/docs/id/settings-reference#strictpluginonlycustomization) | Blokir skills, agents, hooks, dan server MCP dari sumber pengguna dan proyek; `true` mengunci keempat, array menamai yang mana |

428| [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) | Ketika diatur dalam registry HKLM atau file di bawah `C:\Program Files\ClaudeCode`, biarkan WSL membaca rantai kebijakan Windows, dan baca `/etc/claude-code` hanya ketika tidak ada file pengaturan terkelola atau drop-in di bawah direktori itu yang mengirimkan [kunci kebijakan](#how-claude-code-combines-managed-sources); entri memberikan urutan |464| [`wslInheritsWindowsSettings`](/docs/id/settings-reference#wslinheritswindowssettings) | Ketika diatur dalam registry HKLM atau file di bawah `C:\Program Files\ClaudeCode`, biarkan WSL membaca rantai kebijakan Windows, dan baca `/etc/claude-code` hanya ketika [tidak ada dokumen admin Windows yang ada](/docs/id/settings-reference#present-admin-documents); entri memberikan urutan |

429 465 

430<Note>466<Note>

431 Pada paket Team dan Enterprise, Owner mengaktifkan atau menonaktifkan [Remote Control](/docs/id/remote-control) dan [sesi web](/docs/id/claude-code-on-the-web) di seluruh organisasi dalam [pengaturan admin Claude Code](https://claude.ai/admin-settings/claude-code). Remote Control dapat juga dinonaktifkan per perangkat dengan pengaturan [`disableRemoteControl`](/docs/id/settings-reference#disableremotecontrol). Sesi web tidak memiliki kunci pengaturan terkelola per perangkat.467 Pada paket Team dan Enterprise, Owner mengaktifkan atau menonaktifkan [Remote Control](/docs/id/remote-control) dan [sesi cloud](/docs/id/claude-code-on-the-web) di seluruh organisasi dalam [pengaturan admin Claude Code](https://claude.ai/admin-settings/claude-code). Remote Control dapat juga dinonaktifkan per perangkat dengan pengaturan [`disableRemoteControl`](/docs/id/settings-reference#disableremotecontrol). Sesi cloud tidak memiliki kunci pengaturan terkelola per perangkat.

432 468 

433 Untuk memeriksa apakah pengaturan organisasi ini mencapai mesin tertentu, jalankan `claude doctor` di sana dan baca baris `Organization policy`, yang mengatakan di mana Claude Code memuat kebijakan atau mengapa tidak memuat. Memerlukan Claude Code v2.1.261 atau lebih baru. Dalam sesi yang berjalan, `/status` menunjukkan baris yang sama ketika kebijakan tidak memuat.469 Untuk memeriksa apakah pengaturan organisasi ini mencapai mesin tertentu, jalankan `claude doctor` di sana dan baca baris `Organization policy`, yang mengatakan di mana Claude Code memuat kebijakan atau mengapa tidak memuat. Memerlukan Claude Code v2.1.261 atau lebih baru. Dalam sesi yang berjalan, `/status` menunjukkan baris yang sama ketika kebijakan tidak memuat.

434</Note>470</Note>


449 485 

450Claude Code menerapkan nilai `1` tanpa menunjukkan pengguna [dialog persetujuan](/docs/id/server-managed-settings#environment-variables-and-the-approval-dialog).486Claude Code menerapkan nilai `1` tanpa menunjukkan pengguna [dialog persetujuan](/docs/id/server-managed-settings#environment-variables-and-the-approval-dialog).

451 487 

452Jika Anda matikan telemetri, Claude Code berhenti mengirimkan data penggunaan yang memberi makan [dasbor analitik](/docs/id/analytics) organisasi Anda untuk pengembang yang kebijakan jangkau. Variabel juga mematikan pengambilan flag fitur, yang membuat Remote Control, mode auto default, dan [fitur lain yang memerlukan pengambilan flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching) tidak tersedia untuk pengembang itu.488Jika Anda matikan telemetri, Claude Code berhenti mengirimkan data penggunaan yang memberi makan [dasbor analitik](/docs/id/analytics) organisasi Anda untuk pengembang yang kebijakan jangkau. Variabel juga mematikan [pengambilan flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching) untuk pengembang itu. Untuk Remote Control, lihat [persyaratan Remote Control](/docs/id/remote-control#requirements).

453 489 

454[Di mana dan kapan kebijakan berlaku](#where-and-when-a-policy-applies) mengatakan mekanisme pengiriman mana yang menjangkau setiap permukaan, dan [Ketersediaan platform](/docs/id/server-managed-settings#platform-availability) mengatakan sesi mana yang melewatkan pengambilan pengaturan terkelola server.490[Di mana dan kapan kebijakan berlaku](#where-and-when-a-policy-applies) mengatakan mekanisme pengiriman mana yang menjangkau setiap permukaan, dan [Ketersediaan platform](/docs/id/server-managed-settings#platform-availability) mengatakan sesi mana yang melewatkan pengambilan pengaturan terkelola server.

455 491 

mcp.md +152 −135

Details

92 92 

93Entri JSON yang memiliki `url` tetapi tidak ada `type` adalah kesalahan konfigurasi, karena Claude Code membaca entri tanpa `type` sebagai server stdio. Claude Code melewati server itu dan melaporkan `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Sebelum v2.1.202, Claude Code melaporkan kesalahan konfigurasi ini sebagai `command: expected string, received undefined`.93Entri JSON yang memiliki `url` tetapi tidak ada `type` adalah kesalahan konfigurasi, karena Claude Code membaca entri tanpa `type` sebagai server stdio. Claude Code melewati server itu dan melaporkan `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`. Sebelum v2.1.202, Claude Code melaporkan kesalahan konfigurasi ini sebagai `command: expected string, received undefined`.

94 94 

95Dalam `--output-format stream-json` runs, Claude Code juga melaporkan entri `--mcp-config` yang dilewati dalam [`mcp_server_errors` field](/docs/id/headless#stream-responses) dari event `system/init`, sehingga skrip dapat mendeteksi bahwa server tidak pernah dimuat. Ini memerlukan Claude Code v2.1.219 atau lebih baru.95Hanya aplikasi host SDK, seperti aplikasi [Agent SDK](/docs/id/agent-sdk/mcp) atau [aplikasi desktop](/docs/id/desktop), yang dapat mendaftarkan server `"type": "sdk"` dalam proses. Claude Code melewati entri `"type": "sdk"` di `.mcp.json`, `~/.claude.json`, atau pengaturan dan melaporkan `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`.

96 

97Dalam menjalankan `--output-format stream-json`, Claude Code juga melaporkan entri `--mcp-config` yang dilewati dalam [`mcp_server_errors` field](/docs/id/headless#stream-responses) dari event `system/init`, sehingga skrip dapat mendeteksi bahwa server tidak pernah dimuat. Ini memerlukan Claude Code v2.1.219 atau lebih baru.

96 98 

97<h3 id="option-2-add-a-remote-sse-server">99<h3 id="option-2-add-a-remote-sse-server">

98 Opsi 2: Tambahkan server SSE jarak jauh100 Opsi 2: Tambahkan server SSE jarak jauh


104 106 

105Beberapa layanan masih hanya mengekspos endpoint SSE. Tambahkan ini dengan perintah `claude mcp add --transport http <name> <url>` yang sama seperti [server HTTP](#option-1-add-a-remote-http-server). Claude Code mencoba transport HTTP terlebih dahulu dan beralih ke SSE ketika server tidak menerimanya. Pengalihan otomatis memerlukan Claude Code v2.1.265 atau lebih baru.107Beberapa layanan masih hanya mengekspos endpoint SSE. Tambahkan ini dengan perintah `claude mcp add --transport http <name> <url>` yang sama seperti [server HTTP](#option-1-add-a-remote-http-server). Claude Code mencoba transport HTTP terlebih dahulu dan beralih ke SSE ketika server tidak menerimanya. Pengalihan otomatis memerlukan Claude Code v2.1.265 atau lebih baru.

106 108 

107Pada versi sebelumnya, atau untuk terhubung melalui SSE secara langsung, teruskan `--transport sse` sebagai gantinya:109Pada versi sebelumnya, atau untuk terhubung melalui SSE secara langsung, berikan `--transport sse` sebagai gantinya:

108 110 

109```bash theme={null}111```bash theme={null}

110# Sintaks dasar112# Sintaks dasar


126 128 

127Claude Code menetapkan `CLAUDE_PROJECT_DIR` di lingkungan server yang dihasilkan ke akar proyek, sehingga server Anda dapat menyelesaikan jalur relatif proyek tanpa bergantung pada direktori kerja. Ini adalah direktori yang sama yang diterima hooks dalam variabel `CLAUDE_PROJECT_DIR` mereka. Bacanya dari dalam proses server Anda, misalnya `process.env.CLAUDE_PROJECT_DIR` di Node atau `os.environ["CLAUDE_PROJECT_DIR"]` di Python.129Claude Code menetapkan `CLAUDE_PROJECT_DIR` di lingkungan server yang dihasilkan ke akar proyek, sehingga server Anda dapat menyelesaikan jalur relatif proyek tanpa bergantung pada direktori kerja. Ini adalah direktori yang sama yang diterima hooks dalam variabel `CLAUDE_PROJECT_DIR` mereka. Bacanya dari dalam proses server Anda, misalnya `process.env.CLAUDE_PROJECT_DIR` di Node atau `os.environ["CLAUDE_PROJECT_DIR"]` di Python.

128 130 

129`CLAUDE_PROJECT_DIR` adalah akar proyek yang stabil dan tidak berubah saat Anda menambah atau menghapus direktori kerja di tengah sesi. Server yang membatasi akses sistem file-nya sendiri ke serangkaian direktori yang diizinkan harus mengimplementasikan permintaan MCP `roots/list` sebagai gantinya. Claude Code menjawab `roots/list` dengan direktori peluncuran sesi ditambah setiap [direktori kerja tambahan](/docs/id/permissions#working-directories) yang Anda berikan dengan `--add-dir`, `/add-dir`, atau pengaturan `additionalDirectories`. Claude Code mengirim `notifications/roots/list_changed` saat set itu berubah. Sebelum v2.1.203, `roots/list` hanya mengembalikan direktori peluncuran dan Claude Code tidak mengirim `notifications/roots/list_changed`.131`CLAUDE_PROJECT_DIR` adalah akar proyek yang stabil dan tidak berubah saat Anda menambah atau menghapus direktori kerja di tengah sesi. Server yang membatasi akses sistem file-nya sendiri ke serangkaian direktori yang diizinkan harus mengimplementasikan permintaan MCP `roots/list` sebagai gantinya. Claude Code menjawab `roots/list` dengan direktori peluncuran sesi ditambah setiap [direktori kerja tambahan](/docs/id/permissions#working-directories) yang telah Anda berikan dengan `--add-dir`, `/add-dir`, atau pengaturan `additionalDirectories`. Claude Code mengirim `notifications/roots/list_changed` ketika set itu berubah. Sebelum v2.1.203, `roots/list` hanya mengembalikan direktori peluncuran dan Claude Code tidak mengirim `notifications/roots/list_changed`.

130 132 

131Variabel ini ditetapkan di lingkungan server, bukan di lingkungan Claude Code sendiri, jadi mereferensikannya melalui ekspansi `${VAR}` di `command` atau `args` dari entri `.mcp.json` yang dibatasi proyek atau entri server lokal atau pengguna di `~/.claude.json` memerlukan default seperti `${CLAUDE_PROJECT_DIR:-.}`. Konfigurasi MCP yang disediakan plugin mengganti `${CLAUDE_PROJECT_DIR}` secara langsung dan tidak memerlukan default.133Variabel ini ditetapkan di lingkungan server, bukan di lingkungan Claude Code itu sendiri, jadi mereferensikannya melalui ekspansi `${VAR}` di `command` atau `args` dari entri `.mcp.json` yang dibatasi proyek atau entri server lokal atau pengguna di `~/.claude.json` memerlukan default seperti `${CLAUDE_PROJECT_DIR:-.}`. Konfigurasi MCP yang disediakan plugin mengganti `${CLAUDE_PROJECT_DIR}` secara langsung dan tidak memerlukan default.

132 134 

133```bash theme={null}135```bash theme={null}

134# Sintaks dasar136# Sintaks dasar


149 * `claude mcp add --transport stdio myserver -- npx server` → menjalankan `npx server`151 * `claude mcp add --transport stdio myserver -- npx server` → menjalankan `npx server`

150 * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → menjalankan `python server.py --port 8080` dengan `KEY=value` di lingkungan152 * `claude mcp add --env KEY=value --transport stdio myserver -- python server.py --port 8080` → menjalankan `python server.py --port 8080` dengan `KEY=value` di lingkungan

151 153 

152 Tanpa `--`, Claude Code akan mencoba mengurai flag server, seperti `--port` di atas, sebagai opsinya sendiri.154 Tanpa `--`, Claude Code akan mencoba mengurai flag server, seperti `--port` di atas, sebagai opsi miliknya sendiri.

153 155 

154 `--env` menerima beberapa pasangan `KEY=value`. Jika nama server datang langsung setelah `--env`, CLI membaca nama sebagai pasangan lain dan menolaknya, jadi tempatkan setidaknya satu opsi lain, seperti `--transport stdio`, antara `--env` dan nama server.156 `--env` menerima beberapa pasangan `KEY=value`. Jika nama server datang langsung setelah `--env`, CLI membaca nama sebagai pasangan lain dan menolaknya, jadi tempatkan setidaknya satu opsi lain, seperti `--transport stdio`, antara `--env` dan nama server.

155</Note>157</Note>


158 Opsi 4: Tambahkan server WebSocket jarak jauh160 Opsi 4: Tambahkan server WebSocket jarak jauh

159</h3>161</h3>

160 162 

161Server WebSocket mempertahankan koneksi bidirectional yang persisten, yang cocok untuk server MCP jarak jauh yang mendorong acara ke Claude tanpa diminta. Gunakan HTTP sebagai gantinya ketika server Anda hanya merespons permintaan, karena HTTP mendukung OAuth dan flag `claude mcp add --transport`, sementara WebSocket tidak mendukung keduanya.163Server WebSocket mempertahankan koneksi bidireksional yang persisten, yang cocok untuk server MCP jarak jauh yang mendorong acara ke Claude tanpa diminta. Gunakan HTTP sebagai gantinya ketika server Anda hanya merespons permintaan, karena HTTP mendukung OAuth dan flag `claude mcp add --transport`, sementara WebSocket tidak mendukung keduanya.

162 164 

163Konfigurasi server WebSocket di `.mcp.json` atau dengan `claude mcp add-json`:165Konfigurasikan server WebSocket di `.mcp.json` atau dengan `claude mcp add-json`:

164 166 

165```bash theme={null}167```bash theme={null}

166claude mcp add-json events-server \168claude mcp add-json events-server \

167 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'169 '{"type":"ws","url":"wss://mcp.example.com/socket","headers":{"Authorization":"Bearer YOUR_TOKEN"}}'

168```170```

169 171 

170Entri `type: "ws"` menerima bidang `url`, `headers`, `headersHelper`, `timeout`, dan `alwaysLoad` yang sama seperti `http`. Autentikasi hanya header, jadi teruskan token statis di `headers` atau buat satu pada waktu koneksi dengan [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Flag `claude mcp add --transport` tidak menerima `ws`.172Entri `type: "ws"` menerima bidang `url`, `headers`, `headersHelper`, `timeout`, dan `alwaysLoad` yang sama seperti `http`. Autentikasi hanya header, jadi berikan token statis di `headers` atau hasilkan satu pada waktu koneksi dengan [`headersHelper`](#use-dynamic-headers-for-custom-authentication). Flag `claude mcp add --transport` tidak menerima `ws`.

171 173 

172<h3 id="add-a-server-from-setup-instructions-written-for-another-client">174<h3 id="add-a-server-from-setup-instructions-written-for-another-client">

173 Tambahkan server dari instruksi setup yang ditulis untuk klien lain175 Tambahkan server dari instruksi setup yang ditulis untuk klien lain

174</h3>176</h3>

175 177 

176Server MCP tidak spesifik untuk Claude Code, jadi instruksi setup server mungkin ditulis untuk Claude Desktop, Cursor, atau klien MCP lain dan tidak memberikan perintah `claude mcp add`. Untuk menambahkan server bagaimanapun, cari dalam instruksi itu untuk salah satu dari tiga hal ini:178Server MCP tidak spesifik untuk Claude Code, jadi instruksi setup server mungkin ditulis untuk Claude Desktop, Cursor, atau klien MCP lain dan tidak memberikan perintah `claude mcp add`. Untuk menambahkan server bagaimanapun, cari dalam instruksi itu untuk URL, perintah peluncuran, atau blok JSON:

177 179 

178* **URL** seperti `https://mcp.example.com/mcp`: server adalah jarak jauh.180* **URL** seperti `https://mcp.example.com/mcp`: server adalah jarak jauh.

179* **Perintah peluncuran** seperti `npx -y @example/mcp-server`: server berjalan di mesin Anda.181* **Perintah peluncuran** seperti `npx -y @example/mcp-server`: server berjalan di mesin Anda.


191claude mcp add --transport http example https://mcp.example.com/mcp193claude mcp add --transport http example https://mcp.example.com/mcp

192```194```

193 195 

194Jika instruksi juga memberikan kunci API atau header token, teruskan dengan `--header` seperti yang ditunjukkan di [Opsi 1](#option-1-add-a-remote-http-server).196Jika instruksi juga memberikan kunci API atau header token, berikan dengan `--header` seperti yang ditunjukkan di [Opsi 1](#option-1-add-a-remote-http-server).

195 197 

196<h4 id="from-an-npx-uvx-or-binary-command">198<h4 id="from-an-npx-uvx-or-binary-command">

197 Dari perintah `npx`, `uvx`, atau binary199 Dari perintah `npx`, `uvx`, atau binary

198</h4>200</h4>

199 201 

200Perintah peluncuran berarti server berjalan sebagai proses stdio lokal. Letakkan seluruh perintah setelah `--`, sehingga Claude Code meneruskan flag seperti `-y` ke perintah yang memulai server alih-alih membacanya sebagai opsinya sendiri. Teruskan variabel lingkungan apa pun yang diminta instruksi dengan `--env`, setelah nama server dan sebelum `--`:202Perintah peluncuran berarti server berjalan sebagai proses stdio lokal. Letakkan seluruh perintah setelah `--`, sehingga Claude Code meneruskan flag seperti `-y` ke perintah yang memulai server alih-alih membacanya sebagai opsi miliknya sendiri. Berikan variabel lingkungan apa pun yang diminta instruksi dengan `--env`, setelah nama server dan sebelum `--`:

201 203 

202```bash theme={null}204```bash theme={null}

203claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server205claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server


209 Dari blok JSON `mcpServers`211 Dari blok JSON `mcpServers`

210</h4>212</h4>

211 213 

212Blok `mcpServers` yang ditulis untuk klien MCP lain, seperti Claude Desktop, menggunakan kunci pembungkus dan bentuk entri yang Claude Code baca. Teruskan `claude mcp add-json` objek di dalam `mcpServers`, bukan pembungkusnya. Dua entri memerlukan perbaikan terlebih dahulu:214Blok `mcpServers` yang ditulis untuk klien MCP lain, seperti Claude Desktop, menggunakan kunci pembungkus dan bentuk entri yang Claude Code baca. Berikan `claude mcp add-json` objek di dalam `mcpServers`, bukan pembungkusnya. Dua entri memerlukan perbaikan terlebih dahulu:

213 215 

214* **`url` tanpa `type`**: tambahkan `"type": "http"`, `"type": "sse"`, atau `"type": "ws"` untuk mencocokkan endpoint. Claude Code membaca entri tanpa `type` sebagai server stdio, jadi entri `url` tanpa `type` gagal.216* **`url` tanpa `type`**: tambahkan `"type": "http"`, `"type": "sse"`, atau `"type": "ws"` untuk mencocokkan endpoint. Claude Code membaca entri tanpa `type` sebagai server stdio, jadi entri `url` tanpa `type` gagal.

215* **Kunci dengan karakter selain huruf, angka, tanda hubung, dan garis bawah**: pilih nama server yang hanya menggunakan karakter tersebut. Jika tidak, kunci adalah nama server.217* **Kunci dengan karakter selain huruf, angka, tanda hubung, dan garis bawah**: pilih nama server yang hanya menggunakan karakter tersebut. Jika tidak, kunci adalah nama server.


233claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'235claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

234```236```

235 237 

236[Tambahkan server MCP dari konfigurasi JSON](#add-mcp-servers-from-json-configuration) mencakup escaping shell dan flag `--scope` untuk `add-json`. Untuk berbagi server dengan tim Anda sebagai gantinya, tambahkan `--scope project`, atau tambahkan entri di bawah `mcpServers` di `.mcp.json` di akar proyek Anda dan commit. [Cakupan proyek](#project-scope) mencakup cara Claude Code memuat dan menyetujui file itu.238[Tambahkan server MCP dari konfigurasi JSON](#add-mcp-servers-from-json-configuration) mencakup escape shell dan flag `--scope` untuk `add-json`. Untuk berbagi server dengan tim Anda sebagai gantinya, tambahkan `--scope project`, atau tambahkan entri di bawah `mcpServers` di `.mcp.json` di akar proyek Anda dan komitnya. [Cakupan proyek](#project-scope) mencakup cara Claude Code memuat dan menyetujui file itu.

237 239 

238Setiap perintah `claude mcp add` dan `claude mcp add-json` mencetak baris `Added ...`. Untuk memeriksa bahwa Claude Code terhubung, jalankan `claude mcp get <name>`; [Status server](#server-status) mencakup status yang ditunjukkannya dan langkah persetujuan untuk server `.mcp.json`.240Setiap perintah `claude mcp add` dan `claude mcp add-json` mencetak baris `Added ...`. Untuk memeriksa bahwa Claude Code terhubung, jalankan `claude mcp get <name>`; [Status server](#server-status) mencakup status yang ditunjukkannya dan langkah persetujuan untuk server `.mcp.json`.

239 241 


257/mcp259/mcp

258```260```

259 261 

260Saat Anda menghapus server jarak jauh, Claude Code juga menghapus token OAuth dan registrasi klien yang disimpannya untuk server itu.262Saat Anda menghapus server jarak jauh, Claude Code juga menghapus token OAuth dan pendaftaran klien yang disimpannya untuk server itu.

261 263 

262<h4 id="server-status">264<h4 id="server-status">

263 Status server265 Status server


269 271 

270* ``⏸ Pending approval (run `claude` to approve)``: server yang dibatasi proyek dari `.mcp.json` yang belum Anda setujui. Claude Code menunjukkannya di `claude mcp list` dan `claude mcp get <name>`. Jalankan `claude` secara interaktif untuk meninjau dan menyetujuinya.272* ``⏸ Pending approval (run `claude` to approve)``: server yang dibatasi proyek dari `.mcp.json` yang belum Anda setujui. Claude Code menunjukkannya di `claude mcp list` dan `claude mcp get <name>`. Jalankan `claude` secara interaktif untuk meninjau dan menyetujuinya.

271* `✘ Rejected (see disabledMcpjsonServers in settings)`: server `.mcp.json` yang entri [`disabledMcpjsonServers`](/docs/id/settings-reference#disabledmcpjsonservers) tolak. Claude Code menunjukkannya hanya di `claude mcp get <name>`.273* `✘ Rejected (see disabledMcpjsonServers in settings)`: server `.mcp.json` yang entri [`disabledMcpjsonServers`](/docs/id/settings-reference#disabledmcpjsonservers) tolak. Claude Code menunjukkannya hanya di `claude mcp get <name>`.

272* `⊘ Disabled for this project (re-enable via /mcp)`: server yang daftar [`disabledMcpServers`](#disable-a-server-without-removing-it) proyek namakan. Claude Code menunjukkannya di `claude mcp list` dan `claude mcp get <name>`. Nyalakan server kembali dari panel `/mcp`. Sebelum v2.1.238, kedua perintah terhubung ke server yang dinonaktifkan untuk health-check dan melaporkan hasil koneksi.274* `⊘ Disabled for this project (re-enable via /mcp)`: server yang daftar [`disabledMcpServers`](#disable-a-server-without-removing-it) proyek namakan. Claude Code menunjukkannya di `claude mcp list` dan `claude mcp get <name>`. Hidupkan server kembali dari panel `/mcp`. Sebelum v2.1.238, kedua perintah terhubung ke server yang dinonaktifkan untuk memeriksa kesehatannya dan melaporkan hasil koneksi.

273 275 

274Server WebSocket tidak muncul dalam output `claude mcp list`. Gunakan `claude mcp get <name>` atau panel `/mcp` untuk memeriksanya.276Server WebSocket tidak muncul dalam output `claude mcp list`. Gunakan `claude mcp get <name>` atau panel `/mcp` untuk memeriksanya.

275 277 

276<h4 id="project-server-approvals-and-workspace-trust">278<h4 id="project-server-approvals-and-workspace-trust">

277 Persetujuan server proyek dan kepercayaan workspace279 Persetujuan server proyek dan kepercayaan ruang kerja

278</h4>280</h4>

279 281 

280Sejak v2.1.196, `claude mcp list` dan `claude mcp get` membaca persetujuan `.mcp.json` hanya dari file pengaturan yang tidak dimasukkan ke dalam repositori sampai Anda mempercayai workspace dengan menjalankan `claude` di dalamnya dan menerima dialog kepercayaan workspace. Repositori yang dikloning tidak dapat menyetujui server-nya sendiri: [`enableAllProjectMcpServers`](/docs/id/settings-reference#enableallprojectmcpservers) atau [`enabledMcpjsonServers`](/docs/id/settings-reference#enabledmcpjsonservers) yang dicommit ke `.claude/settings.json` proyek diabaikan di folder yang tidak dipercaya, dan server tetap di `⏸ Pending approval` alih-alih terhubung dan health-checked.282Sejak v2.1.196, `claude mcp list` dan `claude mcp get` membaca persetujuan `.mcp.json` hanya dari file pengaturan yang tidak dimasukkan ke dalam repositori sampai Anda mempercayai ruang kerja dengan menjalankan `claude` di dalamnya dan menerima dialog kepercayaan ruang kerja. Repositori yang diklon tidak dapat menyetujui server miliknya sendiri: [`enableAllProjectMcpServers`](/docs/id/settings-reference#enableallprojectmcpservers) atau [`enabledMcpjsonServers`](/docs/id/settings-reference#enabledmcpjsonservers) yang dikomitkan ke `.claude/settings.json` proyek diabaikan di folder yang tidak dipercaya, dan server tetap di `⏸ Pending approval` alih-alih terhubung dan diperiksa kesehatannya.

281 283 

282Persetujuan dari sumber ini masih berlaku di folder yang tidak dipercaya:284Persetujuan dari sumber ini masih berlaku di folder yang tidak dipercaya:

283 285 


285* pengaturan yang dikelola287* pengaturan yang dikelola

286* pengaturan yang diteruskan dengan `--settings`288* pengaturan yang diteruskan dengan `--settings`

287 289 

288Claude Code juga menerapkan persetujuan dari `.claude/settings.local.json` yang tidak dilacak, tetapi menjalankan git untuk memeriksa apakah file dilacak, dan menjalankan pemeriksaan itu hanya di [folder yang dipercaya](/docs/id/permissions#project-allow-rules-and-workspace-trust). Di folder yang belum pernah Anda percayai, Claude Code menunggu dialog kepercayaan sebelum menerapkan persetujuan file, kecuali folder adalah rumah konfigurasi Anda sendiri: direktori rumah Anda, atau direktori yang `.claude` Anda tetapkan sebagai [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars). Sebelum v2.1.207, Claude Code menerapkan persetujuan dari `.claude/settings.local.json` yang tidak dilacak bahkan di folder yang belum pernah Anda percayai.290Claude Code juga menerapkan persetujuan dari `.claude/settings.local.json` yang tidak dilacak, tetapi menjalankan git untuk memeriksa apakah file dilacak, dan menjalankan pemeriksaan itu hanya di [folder yang dipercaya](/docs/id/permissions#project-allow-rules-and-workspace-trust). Di folder yang belum pernah Anda percayai, Claude Code menunggu dialog kepercayaan sebelum menerapkan persetujuan file, kecuali folder adalah rumah konfigurasi Anda sendiri: direktori rumah Anda, atau direktori yang `.claude` Anda telah tetapkan sebagai [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars). Sebelum v2.1.207, Claude Code menerapkan persetujuan dari `.claude/settings.local.json` yang tidak dilacak bahkan di folder yang belum pernah Anda percayai.

289 291 

290Entri `disabledMcpjsonServers` di file pengaturan apa pun masih menolak server.292Entri `disabledMcpjsonServers` di file pengaturan apa pun masih menolak server.

291 293 


293 Detail status server295 Detail status server

294</h4>296</h4>

295 297 

296Di `/mcp`, termasuk menu server di sana, dan di [manager `/plugin`](/docs/id/plugins/install), server HTTP atau SSE jarak jauh yang pernah Anda gunakan sebelumnya dapat menunjukkan status `cached` seperti `cached 2h ago · connects on first use · 5 tools`. Claude Code memuat daftar alat server dari cache penemuan-nya, disimpan dalam sesi sebelumnya, alih-alih terhubung pada startup, dan Claude Code menghubungkan server pertama kali Claude memanggil salah satu alat server. Alat tersedia dari pesan pertama Anda, jadi Anda tidak perlu melakukan apa pun. Cache penemuan dan status `cached`-nya memerlukan Claude Code v2.1.221 atau lebih baru.298Di `/mcp`, termasuk menu server di sana, dan di [manajer `/plugin`](/docs/id/plugins/install), server HTTP atau SSE jarak jauh yang pernah Anda gunakan sebelumnya dapat menunjukkan status `cached` seperti `cached 2h ago · connects on first use · 5 tools`. Claude Code memuat daftar alat server dari cache penemuan-nya, disimpan dalam sesi sebelumnya, alih-alih terhubung saat startup, dan Claude Code menghubungkan server pertama kali Claude memanggil salah satu alat server. Alat tersedia dari pesan pertama Anda, jadi Anda tidak perlu melakukan apa pun. Cache penemuan dan status `cached` memerlukan Claude Code v2.1.221 atau lebih baru.

297 

298Cache penemuan dimatikan secara default kecuali rollout bertahap telah mengaktifkannya untuk akun Anda. Atur [`MCP_DISCOVERY_CACHE=1`](/docs/id/env-vars) untuk mengaktifkannya, atau `0` untuk tetap mematikannya bahkan ketika rollout telah mengaktifkannya. Sebelum v2.1.238, cache diaktifkan secara default.

299 299 

300Dua tindakan dalam menu server di `/mcp` juga mempengaruhi entri cache server itu:300Cache penemuan dimatikan secara default kecuali peluncuran bertahap telah mengaktifkannya untuk akun Anda. Atur [`MCP_DISCOVERY_CACHE=1`](/docs/id/env-vars) untuk mengaktifkannya, atau `0` untuk tetap mematikannya bahkan ketika peluncuran telah mengaktifkannya. Sebelum v2.1.238, cache diaktifkan secara default.

301 301 

302* **Reconnect**: pada server `cached`, Claude Code menghubungkannya sekarang daripada pada panggilan alat pertamanya dan menyimpan entri. Pada server yang terhubung atau gagal, Claude Code menghubungkannya kembali dan juga membuang entri.302Ketika Anda memilih **Disable** atau **Clear authentication** dari menu server di `/mcp`, Claude Code juga membuang entri cache server itu. **Reconnect** membuangnya juga pada server yang terhubung atau gagal; pada server `cached`, **Reconnect** menghubungkan server sekarang dan menyimpan entri. Lain kali Claude Code terhubung ke server setelah membuang entri, ia mengambil daftar alat dari server alih-alih dari cache.

303* **Clear authentication**: Claude Code mencabut autentikasi server dan juga membuang entri.

304 303 

305Setelah membuang entri, Claude Code mengambil daftar alat server dari server alih-alih dari cache.304Ketika status server adalah `✘ Failed to connect`, `claude mcp list` menambahkan detail kegagalan ke baris status itu, dan `claude mcp get <name>` menunjukkannya pada baris `Issue:`: kode status HTTP atau kode kesalahan, ditambah teks kesalahan apa pun yang dikembalikan server. Tampilan detail server di `/mcp` menyertakan teks yang dilaporkan server yang sama di baris `Issue:` miliknya. Claude Code menyunting teks yang mirip kredensial dari detail ini dan tidak pernah menyertakan URL server yang diperluas, yang dapat membawa rahasia. Claude Code tidak menambahkan detail ke status `✘ Connection error`, karena teks pengecualian yang akan dicetak di sana dapat menyematkan URL itu. Sebelum v2.1.219, kedua perintah hanya menunjukkan status kegagalan telanjang, tanpa kode status atau teks kesalahan server.

306 305 

307Ketika status server adalah `✘ Failed to connect`, `claude mcp list` menambahkan detail kegagalan ke baris status itu, dan `claude mcp get <name>` menunjukkannya pada baris `Issue:`: status HTTP atau kode kesalahan, ditambah teks kesalahan apa pun yang dikembalikan server. Tampilan detail server di `/mcp` mencakup teks yang dilaporkan server yang sama di baris `Issue:` nya. Claude Code menyunting teks seperti kredensial dari detail ini dan tidak pernah menyertakan URL server yang diperluas, yang dapat membawa rahasia. Claude Code tidak menambahkan detail ke status `✘ Connection error`, karena teks pengecualian yang akan dicetak di sana dapat menyematkan URL itu. Sebelum v2.1.219, kedua perintah menunjukkan hanya status kegagalan telanjang, tanpa kode status atau teks kesalahan server.306Ketika Anda menyelesaikan autentikasi dari `/mcp` dan koneksi masih gagal dengan status HTTP atau kode kesalahan transport, Claude Code menambahkan kode itu dan asal URL server ke pesan yang dicetak setelah upaya. Asal adalah skema dan host, ditambah port ketika URL menamakannya, seperti `https://mcp.example.com`.

308 

309Ketika Anda menyelesaikan autentikasi dari `/mcp` dan koneksi masih gagal dengan status HTTP atau kode kesalahan transport, Claude Code menambahkan kode itu dan asal URL yang dicobanya ke pesan yang dicetak setelah upaya. Asal adalah skema dan host, ditambah port ketika URL menamakannya, seperti `https://mcp.example.com`.

310 307 

311* Jalur dan kueri tidak pernah muncul dalam pesan itu.308* Jalur dan kueri tidak pernah muncul dalam pesan itu.

312* Untuk server dalam [cakupan](#mcp-installation-scopes) lokal, proyek, atau pengguna atau dalam konfigurasi MCP yang dikelola, asal menunjukkan host seperti yang ditulis dalam konfigurasi itu, jadi referensi `${VAR}` di host tidak diperluas dalam pesan.309* Untuk server di cakupan lokal, proyek, atau pengguna [scope](#mcp-installation-scopes) atau dalam konfigurasi MCP yang dikelola, asal menunjukkan host seperti yang ditulis dalam konfigurasi itu, jadi referensi `${VAR}` di host tidak diperluas dalam pesan.

313* Untuk kegagalan tanpa status atau kode kesalahan, Claude Code menunjukkan teks kesalahan tanpa asal.310* Untuk kegagalan tanpa kode status atau kesalahan, Claude Code menunjukkan teks kesalahan tanpa asal.

314 311 

315Server jarak jauh yang konfigurasinya memiliki `url` kosong ditampilkan sebagai `not configured` di `/mcp`, di `claude mcp list`, dan di [manager `/plugin`](/docs/id/plugins/install), dan Claude Code tidak mencoba terhubung ke sana. Plugin dapat menyertakan entri placeholder seperti ini untuk konektor yang Anda konfigurasi nanti, jadi Claude Code tidak melaporkannya sebagai kesalahan atau masalah setup. Tampilan detail server di `/mcp` membaca `No URL configured for this server`; atur `url` entri untuk menghubungkannya. Sebelum v2.1.208, Claude Code melaporkan `url` kosong sebagai masalah konfigurasi dengan prompt untuk menghubungkan kembali.312Server jarak jauh yang konfigurasinya memiliki `url` kosong ditampilkan sebagai `not configured` di `/mcp`, di `claude mcp list`, dan di [manajer `/plugin`](/docs/id/plugins/install), dan Claude Code tidak mencoba terhubung ke sana. Plugin dapat menyertakan entri placeholder seperti ini untuk konektor yang Anda konfigurasikan nanti, jadi Claude Code tidak melaporkannya sebagai kesalahan atau masalah setup. Tampilan detail server di `/mcp` membaca `No URL configured for this server`; atur `url` entri untuk menghubungkannya. Sebelum v2.1.208, Claude Code melaporkan `url` kosong sebagai masalah konfigurasi dengan prompt untuk menghubungkan kembali.

316 313 

317<h4 id="configuration-warnings">314<h4 id="configuration-warnings">

318 Peringatan konfigurasi315 Peringatan konfigurasi


320 317 

321Claude Code memperingatkan tentang masalah konfigurasi di bawah. Setiap entri mengatakan apa yang Claude Code periksa dan cara menghapus peringatan:318Claude Code memperingatkan tentang masalah konfigurasi di bawah. Setiap entri mengatakan apa yang Claude Code periksa dan cara menghapus peringatan:

322 319 

323* **Whitespace tersembunyi**: Claude Code memperingatkan ketika nilai config MCP membawa whitespace terkemuka atau tertinggal yang tersembunyi, yang sering berasal dari menempel token dengan newline tertinggal. Claude Code memeriksa `command`, `url`, setiap entri `args`, dan nilai dan nama kunci di bawah `env` dan `headers`. Claude Code menunjukkan peringatan dalam output `claude mcp list` dan di `/mcp`, menamai bidang yang terpengaruh tanpa menggema nilainya, misalnya `Leading or trailing whitespace in: headers.Authorization`. Claude Code tidak memangkas whitespace dan menggunakan nilai persis seperti yang ditulis, jadi edit konfigurasi untuk menghapusnya.320* **Whitespace tersembunyi**: Claude Code memperingatkan ketika nilai konfigurasi MCP membawa whitespace terkemuka atau tertinggal yang tersembunyi, yang sering berasal dari menempel token dengan newline tertinggal. Claude Code memeriksa `command`, `url`, setiap entri `args`, dan nilai dan nama kunci di bawah `env` dan `headers`. Claude Code menunjukkan peringatan dalam output `claude mcp list` dan di `/mcp`, menamai bidang yang terpengaruh tanpa menggema nilainya, misalnya `Leading or trailing whitespace in: headers.Authorization`. Claude Code tidak memangkas whitespace dan menggunakan nilai persis seperti yang ditulis, jadi edit konfigurasi untuk menghapusnya.

324* **Nama yang sama di lebih dari satu cakupan**: jika Anda mendefinisikan nama server yang sama di lebih dari satu [cakupan](#mcp-installation-scopes) dengan endpoint berbeda, Claude Code memperingatkan tentang konflik dalam output `claude mcp list` dan di `/mcp`. Claude Code menyimpan sign-in OAuth per endpoint, jadi ketika Anda mengautentikasi definisi yang dimuat dalam satu proyek, Anda masih perlu sign in secara terpisah di proyek di mana definisi berbeda dimuat. Simpan endpoint yang Anda inginkan dan hapus yang lain dengan `claude mcp remove <name> --scope <scope>`. Dalam peringatan, Claude Code mengutip endpoint setiap cakupan seperti yang ditulis dalam konfigurasi Anda, dengan referensi [`${VAR}`](#environment-variable-expansion-in-mcp-json) tidak diperluas, jadi tidak pernah menunjukkan nilai yang diselesaikan seperti kunci API.321* **Nama yang sama di lebih dari satu cakupan**: jika Anda menentukan nama server yang sama di lebih dari satu [scope](#mcp-installation-scopes) dengan endpoint yang berbeda, Claude Code memperingatkan tentang konflik dalam output `claude mcp list` dan di `/mcp`. Claude Code menyimpan login OAuth per endpoint, jadi ketika Anda mengautentikasi definisi yang dimuat dalam satu proyek, Anda masih perlu masuk secara terpisah di proyek tempat definisi berbeda dimuat. Simpan endpoint yang Anda inginkan dan hapus yang lain dengan `claude mcp remove <name> --scope <scope>`. Dalam peringatan, Claude Code mengutip endpoint setiap cakupan seperti yang ditulis dalam konfigurasi Anda, dengan referensi [`${VAR}`](#environment-variable-expansion-in-mcp-json) yang tidak diperluas, jadi tidak pernah menunjukkan nilai yang diselesaikan seperti kunci API.

325* **Nama yang dicadangkan**: Claude Code mencadangkan nama server bawaan-nya, termasuk `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, dan `Claude Browser`. Jika konfigurasi Anda mendefinisikan server dengan nama yang dicadangkan, Claude Code melewatinya pada waktu muat dan menunjukkan peringatan meminta Anda untuk mengganti namanya. `claude mcp add` menolak nama yang dicadangkan dengan kesalahan. `Claude Preview` dan `Claude Browser` keduanya menamai server bawaan yang digunakan [pane preview aplikasi desktop Claude Code](/docs/id/desktop#preview-your-app). Sebelum v2.1.205, `Claude Browser` tidak dicadangkan, jadi server yang dikonfigurasi pengguna dapat mendaftar di bawah nama itu.322* **Nama yang dicadangkan**: Claude Code mencadangkan nama server bawaan-nya, termasuk `workspace`, `claude-in-chrome`, `computer-use`, `Claude Preview`, dan `Claude Browser`. Jika konfigurasi Anda menentukan server dengan nama yang dicadangkan, Claude Code melewatinya saat waktu muat dan menunjukkan peringatan meminta Anda untuk mengganti namanya. `claude mcp add` menolak nama yang dicadangkan dengan kesalahan. `Claude Preview` dan `Claude Browser` keduanya menamai server bawaan yang digunakan [panel pratinjau aplikasi desktop Claude Code](/docs/id/desktop#preview-your-app). Sebelum v2.1.205, `Claude Browser` tidak dicadangkan, jadi server yang dikonfigurasi pengguna dapat mendaftar di bawah nama itu.

326* **Variabel lingkungan yang hilang**: jika referensi [`${VAR}`](#environment-variable-expansion-in-mcp-json) dalam konfigurasi server menamai variabel yang tidak diatur dan tidak memiliki `:-default`, Claude Code memperingatkan dalam output `claude mcp list` dan di `/mcp`, menamai variabel, dan masih memuat server dengan teks `${VAR}` tidak diperluas. Atur variabel atau tambahkan fallback `${VAR:-default}`. Dalam URL dan `headers` server jarak jauh, beberapa variabel kredensial [membaca sebagai kosong](#credential-variables-that-read-as-empty) sebagai gantinya, tanpa peringatan.323* **Variabel lingkungan yang hilang**: jika referensi [`${VAR}`](#environment-variable-expansion-in-mcp-json) dalam konfigurasi server menamai variabel yang tidak diatur dan tidak memiliki `:-default`, Claude Code memperingatkan dalam output `claude mcp list` dan di `/mcp`, menamai variabel, dan masih memuat server dengan teks `${VAR}` yang tidak diperluas. Atur variabel atau tambahkan fallback `${VAR:-default}`. Di `url` dan `headers` server jarak jauh, beberapa variabel kredensial [dibaca sebagai kosong](#credential-variables-that-read-as-empty) sebagai gantinya, tanpa peringatan.

327 324 

328<h4 id="tool-availability">325<h4 id="tool-availability">

329 Ketersediaan alat326 Ketersediaan alat


334Jika permintaan Anda memerlukan alat dari server yang masih terhubung di latar belakang, Claude menunggu server itu sebelum melanjutkan. Cara menunggu terjadi tergantung pada konfigurasi Anda:331Jika permintaan Anda memerlukan alat dari server yang masih terhubung di latar belakang, Claude menunggu server itu sebelum melanjutkan. Cara menunggu terjadi tergantung pada konfigurasi Anda:

335 332 

336* **Dengan [pencarian alat](#scale-with-mcp-tool-search), default**: menunggu terjadi di dalam panggilan `ToolSearch`.333* **Dengan [pencarian alat](#scale-with-mcp-tool-search), default**: menunggu terjadi di dalam panggilan `ToolSearch`.

337* **Tanpa pencarian alat**: Claude menggunakan alat `WaitForMcpServers` sebagai gantinya. Konfigurasi tanpa pencarian alat mencakup `ANTHROPIC_BASE_URL` khusus, `ENABLE_TOOL_SEARCH=false`, dan model lebih awal dari generasi Claude 4.5 di Agent Platform Google Cloud.334* **Tanpa pencarian alat**: Claude menggunakan alat `WaitForMcpServers` sebagai gantinya. Konfigurasi tanpa pencarian alat mencakup `ANTHROPIC_BASE_URL` khusus, `ENABLE_TOOL_SEARCH=false`, dan model lebih awal dari generasi Claude 4.5 di Platform Agen Google Cloud.

338* **Pada [deployment Microsoft Foundry yang dihosting di Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude dimulai pada jalur pencarian alat daripada dengan `WaitForMcpServers`, karena Claude Code menemukan penolakan sisi server deployment hanya dari API. Setelah Claude Code beralih deployment itu ke [pemuatan awal](#scale-with-mcp-tool-search), alat dari server yang selesai terhubung menjadi tersedia pada permintaan Claude berikutnya.335* **Pada [penerapan Microsoft Foundry yang dihosting di Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**: Claude dimulai pada jalur pencarian alat daripada dengan `WaitForMcpServers`, karena Claude Code menemukan penolakan sisi server penerapan hanya dari API. Setelah Claude Code beralih penerapan itu ke [pemuatan awal](#scale-with-mcp-tool-search), alat dari server yang selesai terhubung menjadi tersedia pada permintaan Claude berikutnya.

339 336 

340Dengan pencarian alat diaktifkan, ketika server selesai terhubung saat Claude bekerja, Claude Code mencantumkan nama alat server ke Claude pada permintaan berikutnya dalam giliran yang sama. Claude kemudian dapat mencari dan memanggil alat itu tanpa menunggu pesan Anda berikutnya.337Dengan pencarian alat diaktifkan, ketika server selesai terhubung saat Claude bekerja, Claude Code mencantumkan nama alat server ke Claude pada permintaannya berikutnya dalam giliran yang sama. Claude kemudian dapat mencari dan memanggil alat itu tanpa menunggu pesan Anda berikutnya.

341 338 

342<h3 id="disable-a-server-without-removing-it">339<h3 id="disable-a-server-without-removing-it">

343 Nonaktifkan server tanpa menghapusnya340 Nonaktifkan server tanpa menghapusnya


347 344 

348Ketika Anda mengalihkan server, Claude Code mencatat pilihan Anda per proyek di `~/.claude.json`, dalam salah satu dari dua daftar yang mencakup set server yang terpisah:345Ketika Anda mengalihkan server, Claude Code mencatat pilihan Anda per proyek di `~/.claude.json`, dalam salah satu dari dua daftar yang mencakup set server yang terpisah:

349 346 

350* `disabledMcpServers`: daftar opt-out untuk server yang dikonfigurasi pengguna, server plugin, server yang organisasi Anda [sediakan melalui pengaturan yang dikelola](/docs/id/managed-mcp#provide-servers-through-managed-settings), konektor claude.ai yang Claude Code [ambil sendiri](#how-connectors-reach-claude-code), dan server bawaan yang default ke on. Claude Code tidak terhubung ke server yang Anda cantumkan di sini. Ketika Anda menonaktifkan konektor claude.ai dengan toggle `/mcp` per-proyek yang dijelaskan di [Nonaktifkan konektor claude.ai](#disable-claude-ai-connectors), Claude Code menulisnya ke daftar ini di bawah nama tampilan-nya, misalnya `claude.ai Slack`.347* `disabledMcpServers`: daftar opt-out untuk server yang dikonfigurasi pengguna, server plugin, server yang organisasi Anda [sediakan melalui pengaturan yang dikelola](/docs/id/managed-mcp#provide-servers-through-managed-settings), konektor claude.ai yang Claude Code [ambil sendiri](#how-connectors-reach-claude-code), dan server bawaan yang default ke on. Claude Code tidak terhubung ke server yang Anda cantumkan di sini. Ketika Anda menonaktifkan konektor claude.ai dengan toggle `/mcp` per proyek yang dijelaskan di [Nonaktifkan konektor claude.ai](#disable-claude-ai-connectors), Claude Code menulisnya ke daftar ini di bawah nama tampilannya, misalnya `claude.ai Slack`.

351* `enabledMcpServers`: daftar opt-in untuk server bawaan yang default ke off, seperti `computer-use`. Claude Code terhubung ke server default-off hanya ketika Anda mencantumkannya di sini.348* `enabledMcpServers`: daftar opt-in untuk server bawaan yang default ke off, seperti `computer-use`. Claude Code terhubung ke server default-off hanya ketika Anda mencantumkannya di sini.

352 349 

353Claude Code berkonsultasi dengan tepat satu dari dua daftar untuk setiap server, jadi tidak ada daftar yang mengesampingkan yang lain. Jika Anda menambahkan server reguler ke `enabledMcpServers`, atau server bawaan default-off ke `disabledMcpServers`, Claude Code mengabaikan entri.350Claude Code berkonsultasi dengan tepat satu dari dua daftar untuk setiap server, jadi tidak ada daftar yang mengesampingkan yang lain. Jika Anda menambahkan server reguler ke `enabledMcpServers`, atau server bawaan default-off ke `disabledMcpServers`, Claude Code mengabaikan entri.

354 351 

355`disabledMcpServers` dan `enabledMcpServers` tidak terkait dengan [`enabledMcpjsonServers`](/docs/id/settings-reference#enabledmcpjsonservers) dan [`disabledMcpjsonServers`](/docs/id/settings-reference#disabledmcpjsonservers), yang mengontrol persetujuan server yang didefinisikan dalam file `.mcp.json` proyek.352`disabledMcpServers` dan `enabledMcpServers` tidak terkait dengan [`enabledMcpjsonServers`](/docs/id/settings-reference#enabledmcpjsonservers) dan [`disabledMcpjsonServers`](/docs/id/settings-reference#disabledmcpjsonservers), yang mengontrol persetujuan server yang ditentukan dalam file `.mcp.json` proyek.

356 353 

357<h3 id="mcp-client-runtimes">354<h3 id="mcp-client-runtimes">

358 Runtime klien MCP355 Runtime klien MCP


360 357 

361Claude Code terhubung ke server MCP melalui salah satu dari dua runtime klien. Runtime v1 dibangun di MCP TypeScript SDK 1.x. Runtime v2 adalah kode yang sama di [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), yang menambahkan revisi protokol MCP 2026-07-28. Sisa halaman ini berlaku untuk kedua runtime, kecuali bagian yang menamai runtime v2.358Claude Code terhubung ke server MCP melalui salah satu dari dua runtime klien. Runtime v1 dibangun di MCP TypeScript SDK 1.x. Runtime v2 adalah kode yang sama di [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/), yang menambahkan revisi protokol MCP 2026-07-28. Sisa halaman ini berlaku untuk kedua runtime, kecuali bagian yang menamai runtime v2.

362 359 

363Claude Code memilih runtime setiap kali Anda memulainya dan menyimpannya sampai Anda keluar. Dalam sesi di mana ia [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), ia menggunakan runtime v2 pada Claude Code v2.1.232 atau lebih baru.360Claude Code memilih runtime setiap kali Anda memulainya dan menyimpannya sampai Anda keluar. Dalam sesi tempat ia [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), ia menggunakan runtime v2 pada Claude Code v2.1.232 atau lebih baru.

364 361 

365Dalam sesi di mana ia tidak mengambil flag fitur, Claude Code menggunakan runtime v2 secara default pada Claude Code v2.1.274 atau lebih baru:362Dalam sesi tempat ia tidak mengambil flag fitur, Claude Code menggunakan runtime v2 secara default pada Claude Code v2.1.274 atau lebih baru:

366 363 

367* Sesi di Amazon Bedrock, Claude Platform di AWS, Agent Platform Google Cloud, atau Microsoft Foundry, kecuali platform host yang menyematkan Claude Code menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars)364* Sesi di Amazon Bedrock, Claude Platform di AWS, Platform Agen Google Cloud, atau Microsoft Foundry, kecuali platform host yang menyematkan Claude Code menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars)

368* Sesi yang masuk melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway)365* Sesi yang masuk melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway)

369* Sesi di mana Anda mematikan telemetri atau pengambilan flag fitur, misalnya dengan `DISABLE_TELEMETRY`366* Sesi tempat Anda mematikan telemetri atau pengambilan flag fitur, misalnya dengan `DISABLE_TELEMETRY`

370 367 

371Pada v2, Claude Code juga:368Di v2, Claude Code juga:

372 369 

373* Menanyakan server HTTP apakah mereka mendukung revisi yang lebih baru, dan menggunakannya dengan yang mendukung. Ia juga menanyakan server konektor claude.ai dalam sesi di mana ia mengambil flag fitur. Untuk membuatnya menanyakan server stdio, atau server konektor dalam setiap sesi, atur [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto`. Ia terhubung ke setiap server lain seperti v1 lakukan.370* Menanyakan server HTTP apakah mereka mendukung revisi yang lebih baru, dan menggunakannya dengan yang mendukungnya. Ia juga menanyakan server konektor claude.ai dalam sesi tempat ia mengambil flag fitur. Untuk membuatnya menanyakan server stdio, atau server konektor dalam setiap sesi, atur [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto`. Ia terhubung ke setiap server lain seperti v1.

374* Menerima notifikasi `list_changed` dari server pada revisi yang lebih baru melalui [stream yang dipegang terbuka](#notification-streams-on-the-v2-runtime).371* Menerima notifikasi `list_changed` dari server pada revisi yang lebih baru melalui [aliran yang dipegang terbuka](#notification-streams-on-the-v2-runtime).

375* Tidak mendaftarkan server [channel](#push-messages-with-channels) yang terhubung pada revisi yang lebih baru, karena revisi itu tidak dapat membawa pesan channel.372* Tidak mendaftarkan server [channel](#push-messages-with-channels) yang terhubung pada revisi yang lebih baru, karena revisi itu tidak dapat membawa pesan channel.

376* Gagal [sign-in OAuth MCP](#authenticate-with-remote-mcp-servers) yang respons otorisasinya menamai penerbit yang tidak terduga.373* Gagal [login OAuth MCP](#authenticate-with-remote-mcp-servers) yang respons otorisasinya menamai penerbit yang tidak terduga.

377 374 

378Anthropic dapat menyimpan server tertentu pada protokol sebelumnya, atau off stream itu, dengan flag fitur Claude Code ambil.375Anthropic dapat menyimpan server tertentu pada protokol sebelumnya, atau di luar aliran itu, dengan flag fitur yang Claude Code ambil.

379 376 

380Untuk memilih runtime sendiri, atur [`MCP_SDK_GENERATION`](/docs/id/env-vars) ke `v1` atau `v2`. Untuk memutuskan apakah Claude Code menanyakan, atur [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto` atau `legacy`.377Untuk memilih runtime sendiri, atur [`MCP_SDK_GENERATION`](/docs/id/env-vars) ke `v1` atau `v2`. Untuk memutuskan apakah Claude Code menanyakan, atur [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto` atau `legacy`.

381 378 


388Jika permintaan penyegaran gagal, Claude Code menyimpan alat, prompt, dan sumber daya server yang sebelumnya ditemukan sampai penyegaran nanti berhasil. Sebelum v2.1.214, kesalahan sementara selama penyegaran mengganti alat, prompt, dan sumber daya server dengan daftar kosong.385Jika permintaan penyegaran gagal, Claude Code menyimpan alat, prompt, dan sumber daya server yang sebelumnya ditemukan sampai penyegaran nanti berhasil. Sebelum v2.1.214, kesalahan sementara selama penyegaran mengganti alat, prompt, dan sumber daya server dengan daftar kosong.

389 386 

390<h4 id="notification-streams-on-the-v2-runtime">387<h4 id="notification-streams-on-the-v2-runtime">

391 Stream notifikasi pada runtime v2388 Aliran notifikasi pada runtime v2

392</h4>389</h4>

393 390 

394Pada [runtime v2](#mcp-client-runtimes), Claude Code menerima notifikasi `list_changed` dari server pada revisi protokol yang lebih baru melalui stream yang dipegang terbuka. Ketika stream ditutup, Claude Code membukanya kembali, dengan dua batas:391Pada [runtime v2](#mcp-client-runtimes), Claude Code menerima notifikasi `list_changed` dari server pada revisi protokol yang lebih baru melalui aliran yang dipegang terbuka. Ketika aliran ditutup, Claude Code membukanya kembali, dengan dua batas:

395 392 

396* **Stream ditutup lagi dalam 10 detik**: Claude Code membukanya kembali hingga tiga kali, kemudian berhenti untuk koneksi itu.393* **Aliran ditutup lagi dalam 10 detik**: Claude Code membukanya kembali hingga tiga kali, kemudian berhenti untuk koneksi itu.

397* **Stream tetap terbuka lebih lama dari 10 detik, kemudian ditutup**, seperti stream ke host serverless biasanya lakukan: setelah lima pembukaan kembali dalam satu jam, Claude Code menunggu sekitar enam jam sebelum yang berikutnya.394* **Aliran tetap terbuka lebih lama dari 10 detik, kemudian ditutup**, seperti aliran ke host serverless yang biasa dilakukan: setelah lima pembukaan kembali dalam satu jam, Claude Code menunggu sekitar enam jam sebelum yang berikutnya.

398 395 

399Sampai stream dibuka kembali, Anda menyimpan alat, prompt, dan sumber daya server yang terakhir diambil. Untuk mengambil perubahannya lebih cepat, hubungkan kembali server dari `/mcp`.396Sampai aliran dibuka kembali, Anda menyimpan alat, prompt, dan sumber daya server yang terakhir diambil. Untuk mengambil perubahannya lebih cepat, hubungkan kembali server dari `/mcp`.

400 397 

401<h3 id="automatic-reconnection">398<h3 id="automatic-reconnection">

402 Koneksi ulang otomatis399 Penghubungan kembali otomatis

403</h3>400</h3>

404 401 

405Claude Code menghubungkan kembali server jarak jauh yang putus di tengah sesi dan mencoba ulang koneksi pertama server HTTP atau SSE setelah kesalahan sementara. Server stdio adalah proses lokal, dan Claude Code tidak menghubungkan kembali mereka secara otomatis.402Claude Code menghubungkan kembali server jarak jauh yang putus di tengah sesi dan mencoba ulang koneksi pertama server HTTP atau SSE setelah kesalahan sementara. Server stdio adalah proses lokal, dan Claude Code tidak menghubungkan kembali mereka secara otomatis.


408 Putus di tengah sesi dari server jarak jauh405 Putus di tengah sesi dari server jarak jauh

409</h4>406</h4>

410 407 

411Claude Code menghubungkan kembali server jarak jauh yang putus dengan backoff eksponensial: hingga lima upaya, dimulai dengan penundaan satu detik dan menggandakannya setiap kali. Apa yang Anda lihat tergantung pada cara Anda menjalankan Claude Code:408Claude Code menghubungkan kembali server yang putus dengan backoff eksponensial: hingga lima upaya, dimulai dengan penundaan satu detik dan menggandakannya setiap kali. Apa yang Anda lihat tergantung pada cara Anda menjalankan Claude Code:

412 409 

413* **Dalam sesi interaktif**: `/mcp` menunjukkan server sebagai tertunda saat Claude Code menghubungkan kembali. Setelah lima upaya gagal, Claude Code menandai server sebagai gagal, atau sebagai memerlukan autentikasi ketika server perlu diotorisasi lagi. Anda dapat mencoba ulang secara manual dari `/mcp`.410* **Dalam sesi interaktif**: `/mcp` menunjukkan server sebagai tertunda saat Claude Code menghubungkan kembali. Setelah lima upaya gagal, Claude Code menandai server sebagai gagal, atau sebagai memerlukan autentikasi ketika server perlu diotorisasi lagi. Ketika menandainya sebagai gagal, Anda melihat notifikasi `MCP server "<name>" disconnected · open /mcp to reconnect`. Anda dapat mencoba ulang secara manual dari `/mcp`.

414* **Dalam [`claude -p`](/docs/id/headless) runs dan sesi [Agent SDK](/docs/id/agent-sdk/overview)**: Claude Code menghubungkan kembali pada jadwal yang sama, tanpa panel `/mcp` untuk menunjukkan upaya.411* **Dalam menjalankan [`claude -p`](/docs/id/headless) dan sesi [Agent SDK](/docs/id/agent-sdk/overview)**: Claude Code menghubungkan kembali pada jadwal yang sama, tanpa panel `/mcp` untuk menunjukkan upaya.

415 412 

416<h4 id="failed-first-connections">413<h4 id="failed-first-connections">

417 Koneksi pertama yang gagal414 Koneksi pertama yang gagal

418</h4>415</h4>

419 416 

420Ketika koneksi pertama server HTTP atau SSE gagal dengan kesalahan sementara, seperti respons 5xx, koneksi ditolak, atau timeout, Claude Code mencoba ulang hingga tiga kali. Jika koneksi masih gagal, Claude Code menandai server sebagai gagal. Claude Code mencoba ulang dengan cara ini pada startup dan ketika server ditambahkan di tengah sesi. Itu termasuk server yang Claude Code tambahkan ke sesi [cloud](/docs/id/claude-code-on-the-web) dari konfigurasinya dan server yang Anda tambahkan dengan [`setMcpServers()`](/docs/id/agent-sdk/typescript) Agent SDK.417Ketika koneksi pertama server HTTP atau SSE gagal dengan kesalahan sementara, seperti respons 5xx, koneksi ditolak, atau timeout, Claude Code mencoba ulang hingga tiga kali. Jika koneksi masih gagal, Claude Code menandai server sebagai gagal. Claude Code mencoba ulang dengan cara ini saat startup dan ketika server ditambahkan di tengah sesi. Itu termasuk server yang Claude Code tambahkan ke [sesi cloud](/docs/id/claude-code-on-the-web) dari konfigurasinya dan server yang Anda tambahkan dengan [`setMcpServers()`](/docs/id/agent-sdk/typescript) Agent SDK.

421 418 

422Claude Code tidak mencoba ulang dalam kasus ini:419Claude Code tidak mencoba ulang dalam kasus ini:

423 420 

424* Koneksi pertama server WebSocket421* Koneksi pertama server WebSocket

425* Kesalahan autentikasi atau not-found, karena memerlukan perubahan konfigurasi untuk diselesaikan. Ketika [`headersHelper`](#use-dynamic-headers-for-custom-authentication) adalah satu-satunya sumber header `Authorization` server, Claude Code mencoba ulang kesalahan autentikasi bagaimanapun, karena menjalankan kembali helper pada setiap upaya dan dapat mengambil kredensial segar422* Kesalahan autentikasi atau tidak ditemukan, karena memerlukan perubahan konfigurasi untuk diselesaikan. Ketika [`headersHelper`](#use-dynamic-headers-for-custom-authentication) adalah satu-satunya sumber header `Authorization` server, Claude Code mencoba ulang kesalahan autentikasi bagaimanapun, karena menjalankan kembali helper pada setiap upaya dan dapat mengambil kredensial segar

426 423 

427<h4 id="failed-discovery-requests">424<h4 id="failed-discovery-requests">

428 Permintaan penemuan yang gagal425 Permintaan penemuan yang gagal

429</h4>426</h4>

430 427 

431Setelah server terhubung, Claude Code mengirimnya permintaan penemuan kemampuan seperti `tools/list`, `prompts/list`, dan `resources/list`. Claude Code mencoba ulang permintaan itu hingga tiga kali dengan backoff pendek setelah kesalahan jaringan atau server sementara. Tidak mencoba ulang kesalahan autentikasi, respons 4xx, atau timeout permintaan.428Setelah server terhubung, Claude Code mengirimnya permintaan penemuan kemampuan seperti `tools/list`, `prompts/list`, dan `resources/list`. Claude Code mencoba ulang permintaan itu hingga tiga kali dengan backoff pendek setelah kesalahan jaringan atau server sementara. Ia tidak mencoba ulang kesalahan autentikasi, respons 4xx, atau timeout permintaan.

432 429 

433<h4 id="how-claude-learns-that-a-server-failed">430<h4 id="how-claude-learns-that-a-server-failed">

434 Bagaimana Claude belajar bahwa server gagal431 Bagaimana Claude mengetahui bahwa server gagal

435</h4>432</h4>

436 433 

437Apakah Claude Code memberi tahu Claude tentang server yang dikonfigurasi yang gagal terhubung tergantung pada [pencarian alat](#scale-with-mcp-tool-search), yang diaktifkan secara default:434Apakah Claude Code memberi tahu Claude tentang server yang dikonfigurasi yang gagal terhubung tergantung pada [pencarian alat](#scale-with-mcp-tool-search), yang diaktifkan secara default:


443 Dorong pesan dengan channel440 Dorong pesan dengan channel

444</h3>441</h3>

445 442 

446Server MCP juga dapat mendorong pesan langsung ke sesi Anda sehingga Claude dapat bereaksi terhadap acara eksternal seperti hasil CI, peringatan pemantauan, atau pesan chat. Untuk mengaktifkan ini, server Anda mendeklarasikan kemampuan `claude/channel` dan Anda memilihnya dengan flag `--channels` pada startup. Lihat [Channels](/docs/id/channels) untuk menggunakan channel yang didukung secara resmi, atau [Channels reference](/docs/id/channels-reference) untuk membangun milik Anda sendiri.443Server MCP juga dapat mendorong pesan langsung ke sesi Anda sehingga Claude dapat bereaksi terhadap acara eksternal seperti hasil CI, peringatan pemantauan, atau pesan obrolan. Untuk mengaktifkan ini, server Anda mendeklarasikan kemampuan `claude/channel` dan Anda memilihnya dengan flag `--channels` saat startup. Lihat [Channels](/docs/id/channels) untuk menggunakan channel yang didukung secara resmi, atau [Referensi Channels](/docs/id/channels-reference) untuk membangun milik Anda sendiri.

447 444 

448Pada [runtime v2](#mcp-client-runtimes), jika Anda menetapkan [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto` dan server channel menegosiasikan revisi protokol MCP 2026-07-28, tidak dapat mengirimkan pesan channel, jadi Claude Code tidak mendaftarkannya sebagai channel. Membiarkan variabel tidak diatur, atau menetapkannya ke `legacy`, menyimpan server stdio pada handshake sebelumnya.445Pada [runtime v2](#mcp-client-runtimes), jika Anda menetapkan [`MCP_PROTOCOL_NEGOTIATION`](/docs/id/env-vars) ke `auto` dan server channel menegosiasikan revisi protokol MCP 2026-07-28, ia tidak dapat mengirimkan pesan channel, jadi Claude Code tidak mendaftarkannya sebagai channel. Membiarkan variabel tidak diatur, atau menetapkannya ke `legacy`, menyimpan server stdio pada handshake sebelumnya.

449 446 

450<Tip>447<Tip>

451 Tips:448 Tips:

452 449 

453 * Gunakan flag `-s` atau `--scope` untuk menentukan di mana konfigurasi disimpan:450 * Gunakan flag `-s` atau `--scope` untuk menentukan tempat konfigurasi disimpan:

454 * `local` (default): tersedia hanya untuk Anda di proyek saat ini451 * `local` (default): tersedia hanya untuk Anda di proyek saat ini

455 * `project`: dibagikan dengan semua orang di proyek melalui file `.mcp.json`452 * `project`: dibagikan dengan semua orang di proyek melalui file `.mcp.json`

456 * `user`: tersedia untuk Anda di semua proyek453 * `user`: tersedia untuk Anda di semua proyek

457 * Atur variabel lingkungan dengan flag `-e` atau `--env` (misalnya, `-e KEY=value`)454 * Atur variabel lingkungan dengan flag `-e` atau `--env` (misalnya, `-e KEY=value`)

458 * Flag `--transport` dan `--header` juga menerima bentuk pendek `-t` dan `-H`455 * Flag `--transport` dan `--header` juga menerima bentuk pendek `-t` dan `-H`

459 * Konfigurasi timeout startup server MCP menggunakan variabel lingkungan `MCP_TIMEOUT` (misalnya, `MCP_TIMEOUT=10000 claude` menetapkan timeout 10 detik)456 * Konfigurasikan timeout startup server MCP menggunakan variabel lingkungan `MCP_TIMEOUT` (misalnya, `MCP_TIMEOUT=10000 claude` menetapkan timeout 10 detik)

460 * Atur timeout eksekusi alat per-server dengan menambahkan bidang `timeout` dalam milidetik ke entri `.mcp.json` server itu, misalnya `"timeout": 600000` untuk sepuluh menit. Ini mengesampingkan variabel lingkungan `MCP_TOOL_TIMEOUT` hanya untuk server itu457 * Atur timeout eksekusi alat per server dengan menambahkan bidang `timeout` dalam milidetik ke entri `.mcp.json` server itu, misalnya `"timeout": 600000` untuk sepuluh menit. Ini mengesampingkan variabel lingkungan `MCP_TOOL_TIMEOUT` hanya untuk server itu

461 * Claude Code menampilkan peringatan ketika output alat MCP melebihi 10.000 token dan membatasi output ke 25.000 token secara default. Untuk menaikkan batas, atur variabel lingkungan `MAX_MCP_OUTPUT_TOKENS` (misalnya, `MAX_MCP_OUTPUT_TOKENS=50000`); ambang peringatan tetap. Lihat [Batas dan peringatan output MCP](#mcp-output-limits-and-warnings)458 * Claude Code menampilkan peringatan ketika output alat MCP melebihi 10.000 token dan membatasi output ke 25.000 token secara default. Untuk menaikkan batas, atur variabel lingkungan `MAX_MCP_OUTPUT_TOKENS` (misalnya, `MAX_MCP_OUTPUT_TOKENS=50000`); ambang peringatan tetap. Lihat [Batas dan peringatan output MCP](#mcp-output-limits-and-warnings)

462 * Gunakan `/mcp` untuk mengautentikasi dengan server jarak jauh yang memerlukan autentikasi OAuth 2.0459 * Gunakan `/mcp` untuk mengautentikasi dengan server jarak jauh yang memerlukan autentikasi OAuth 2.0

463</Tip>460</Tip>

464 461 

465`timeout` per-server adalah batas jam dinding keras per panggilan alat, dan notifikasi kemajuan dari server tidak memperpanjangnya. Nilai di bawah 1000 diabaikan dan jatuh melalui `MCP_TOOL_TIMEOUT`, atau default-nya sekitar 28 jam ketika variabel itu tidak diatur. Untuk server HTTP, SSE, atau [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) ada juga timer per-permintaan kedua yang mencakup setiap permintaan melalui byte respons pertama server. Claude Code menetapkan timer itu ke yang terbesar dari tiga nilai: 60 detik, timeout alat yang berlaku untuk server, dan `MCP_TIMEOUT`. Default 28 jam dari `MCP_TOOL_TIMEOUT` yang tidak diatur tidak memasuki perbandingan itu, dan nilai di bawah 60 detik tidak mempersingkat timer. Server stdio dan WebSocket tidak memiliki timer per-permintaan.462`timeout` per server adalah batas dinding jam keras per panggilan alat, dan notifikasi kemajuan dari server tidak memperpanjangnya. Nilai di bawah 1000 diabaikan dan jatuh melalui `MCP_TOOL_TIMEOUT`, atau default-nya sekitar 28 jam ketika variabel itu tidak diatur. Untuk server HTTP, SSE, atau [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) ada juga timer per permintaan kedua yang mencakup setiap permintaan melalui byte respons pertama server. Claude Code menetapkan timer itu ke yang terbesar dari tiga nilai: 60 detik, timeout alat yang berlaku untuk server, dan `MCP_TIMEOUT`. Default 28 jam dari `MCP_TOOL_TIMEOUT` yang tidak diatur tidak memasuki perbandingan itu, dan nilai di bawah 60 detik tidak mempersingkat timer. Server stdio dan WebSocket tidak memiliki timer per permintaan.

466 463 

467`timeout` per-server setidaknya 1000 juga bertindak sebagai lantai pada timeout idle yang dijelaskan di bawah: Claude Code tidak pernah menghentikan panggilan alat server itu karena kemalasan lebih cepat dari `timeout` per-server. Memerlukan Claude Code v2.1.203 atau lebih baru.464`timeout` per server setidaknya 1000 juga bertindak sebagai lantai pada timeout idle yang dijelaskan di bawah: Claude Code tidak pernah menghentikan panggilan alat server itu karena kemalasan lebih cepat dari `timeout` per server. Memerlukan Claude Code v2.1.203 atau lebih baru.

468 465 

469Panggilan alat ke server MCP yang mengirim tidak ada respons dan tidak ada notifikasi kemajuan untuk jendela idle membatalkan dengan kesalahan alih-alih menunggu batas jam dinding. Ini berlaku untuk setiap jenis server kecuali server IDE dan server in-process SDK. Jendela idle default ke lima menit untuk server HTTP, SSE, WebSocket, dan [konektor claude.ai](#use-mcp-servers-from-claude-ai), dan ke 30 menit untuk server stdio. Sebelum v2.1.203, server stdio dikecualikan dari timeout idle.466Panggilan alat ke server MCP yang tidak mengirim respons dan tidak ada notifikasi kemajuan untuk jendela idle membatalkan dengan kesalahan alih-alih menunggu batas dinding jam. Timeout idle berlaku untuk setiap jenis server kecuali server IDE dan server in-process SDK. Jendela idle default ke lima menit untuk server HTTP, SSE, WebSocket, dan [konektor claude.ai](#use-mcp-servers-from-claude-ai), dan ke 30 menit untuk server stdio. Sebelum v2.1.203, server stdio dikecualikan dari timeout idle.

470 467 

471Atur variabel lingkungan [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/id/env-vars) dalam milidetik untuk mengubah jendela idle, atau atur ke `0` untuk menonaktifkan pemeriksaan.468Atur variabel lingkungan [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/id/env-vars) dalam milidetik untuk mengubah jendela idle, atau atur ke `0` untuk menonaktifkan pemeriksaan.

472 469 

473Timeout ini membatasi berapa lama panggilan dapat berjalan, tidak selalu berapa lama itu memblokir sesi: panggilan percakapan utama yang berjalan melewati dua menit bergerak ke tugas latar belakang terlebih dahulu. Lihat [Backgrounding otomatis panggilan alat panjang](#automatic-backgrounding-of-long-tool-calls).470Timeout ini membatasi berapa lama panggilan dapat berjalan, tidak selalu berapa lama ia memblokir sesi: panggilan percakapan utama yang berjalan melewati dua menit bergerak ke tugas latar belakang terlebih dahulu. Lihat [Backgrounding otomatis dari panggilan alat yang panjang](#automatic-backgrounding-of-long-tool-calls).

474 471 

475<h3 id="automatic-backgrounding-of-long-tool-calls">472<h3 id="automatic-backgrounding-of-long-tool-calls">

476 Backgrounding otomatis panggilan alat panjang473 Backgrounding otomatis dari panggilan alat yang panjang

477</h3>474</h3>

478 475 

479Panggilan alat MCP dalam percakapan utama yang masih berjalan setelah dua menit bergerak ke tugas latar belakang alih-alih memblokir sesi. Claude menerima ID tugas segera dan terus bekerja, dan hasilnya tiba sebagai notifikasi tugas ketika panggilan diselesaikan. Backgrounding otomatis memerlukan Claude Code v2.1.212 atau lebih baru.476Panggilan alat MCP dalam percakapan utama yang masih berjalan setelah dua menit bergerak ke tugas latar belakang alih-alih memblokir sesi. Claude menerima ID tugas segera dan terus bekerja, dan hasilnya tiba sebagai notifikasi tugas ketika panggilan diselesaikan. Backgrounding otomatis memerlukan Claude Code v2.1.212 atau lebih baru.

480 477 

481Tugas muncul di [`/tasks`](/docs/id/commands#all-commands), di mana Anda juga dapat menghentikannya, dan tidak bertahan keluar dari sesi. Batas per-panggilan masih berlaku saat panggilan berjalan di latar belakang: batas jam dinding yang ditetapkan oleh `timeout` per-server atau [`MCP_TOOL_TIMEOUT`](/docs/id/env-vars), dan timeout idle yang ditetapkan oleh [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/id/env-vars).478Tugas muncul di [`/tasks`](/docs/id/commands#all-commands), tempat Anda juga dapat menghentikannya, dan tidak bertahan keluar dari sesi. Batas per panggilan masih berlaku saat panggilan berjalan di latar belakang: batas dinding jam yang ditetapkan oleh `timeout` per server atau [`MCP_TOOL_TIMEOUT`](/docs/id/env-vars), dan timeout idle yang ditetapkan oleh [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/id/env-vars).

482 479 

483Atur variabel lingkungan [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/id/env-vars) dalam milidetik untuk mengubah ambang, atau atur ke `0` untuk menonaktifkan backgrounding otomatis. Menetapkan `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` ke `1` juga menonaktifkannya, bersama dengan semua fitur tugas latar belakang lainnya.480Atur variabel lingkungan [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/id/env-vars) dalam milidetik untuk mengubah ambang, atau atur ke `0` untuk mematikan backgrounding otomatis. Menetapkan `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` ke `1` juga mematikannya, bersama dengan semua fitur tugas latar belakang lainnya.

484 481 

485Beberapa panggilan tidak pernah bergerak ke latar belakang:482Beberapa panggilan tidak pernah bergerak ke latar belakang:

486 483 

487* Panggilan dari [subagents](/docs/id/sub-agents); Claude Code hanya melatar belakangkan panggilan percakapan utama484* Panggilan dari [subagents](/docs/id/sub-agents); Claude Code hanya melatar belakangkan panggilan percakapan utama

488* Panggilan ke server IDE485* Panggilan ke server IDE

489* Panggilan dalam [mode non-interaktif](/docs/id/headless), kecuali `CLAUDE_AUTO_BACKGROUND_TASKS` diatur ke `1`, karena run satu kali dapat berakhir sebelum hasil tiba486* Panggilan dalam [mode non-interaktif](/docs/id/headless), kecuali `CLAUDE_AUTO_BACKGROUND_TASKS` diatur ke `1`, karena satu kali jalan dapat berakhir sebelum hasil tiba

490 487 

491Panggilan menunggu dialog [elicitation](#respond-to-mcp-elicitation-requests) terbuka tidak dilatar belakangkan saat dialog terbuka; server diblokir pada input Anda, bukan lambat, jadi Claude Code menunda perpindahan sampai dialog ditutup.488Panggilan menunggu dialog [elicitation](#respond-to-mcp-elicitation-requests) terbuka tidak dilatar belakangkan saat dialog terbuka; server diblokir pada input Anda, bukan lambat, jadi Claude Code menunda perpindahan sampai dialog ditutup.

492 489 


498 495 

499**Cara kerja server MCP plugin**:496**Cara kerja server MCP plugin**:

500 497 

501* Plugin mendefinisikan server MCP di `.mcp.json` di akar plugin atau inline di `plugin.json`498* Plugin menentukan server MCP di `.mcp.json` di akar plugin atau inline di `plugin.json`

502* Ketika Anda mengaktifkan plugin, Claude Code memulai server MCP-nya secara otomatis499* Ketika Anda mengaktifkan plugin, Claude Code memulai server MCP-nya secara otomatis

503* Claude Code menawarkan alat MCP plugin bersama alat MCP yang dikonfigurasi secara manual500* Claude Code menawarkan alat MCP plugin bersama alat MCP yang dikonfigurasi secara manual

504* Anda menambah dan menghapus server plugin dengan memasang atau mencopot plugin, bukan dengan perintah `/mcp`. Anda masih dapat [mengalihkan server plugin yang dipasang off](#disable-a-server-without-removing-it) di `/mcp`, yang menghentikan Claude Code dari terhubung ke sana tanpa menghapus plugin501* Anda menambah dan menghapus server plugin dengan memasang atau mencopot plugin, bukan dengan perintah `/mcp`. Anda masih dapat [mengalihkan server plugin yang dipasang ke off](#disable-a-server-without-removing-it) di `/mcp`, yang menghentikan Claude Code dari terhubung ke sana tanpa menghapus plugin

505 502 

506**Contoh konfigurasi MCP plugin**:503**Contoh konfigurasi MCP plugin**:

507 504 


537 534 

538**Fitur MCP plugin**:535**Fitur MCP plugin**:

539 536 

540* **Siklus hidup otomatis**: server terhubung dan terputus pada titik-titik ini:537* **Siklus hidup otomatis**: server terhubung dan terputus pada titik ini:

541 * Pada startup sesi, Claude Code menghubungkan server untuk plugin yang diaktifkan secara otomatis. Di `/mcp`, server plugin jarak jauh (HTTP atau SSE) yang pernah Anda gunakan sebelumnya dapat menunjukkan status [`cached`](#server-status-detail) sebagai gantinya; Claude Code menghubungkannya ketika Claude pertama kali memanggil salah satu alatnya538 * Saat startup sesi, Claude Code menghubungkan server untuk plugin yang diaktifkan secara otomatis. Di `/mcp`, server plugin jarak jauh (HTTP atau SSE) yang pernah Anda gunakan sebelumnya dapat menunjukkan status [`cached`](#server-status-detail) sebagai gantinya; Claude Code menghubungkannya ketika Claude pertama kali memanggil salah satu alatnya

542 * Jika Anda mengaktifkan atau menonaktifkan plugin selama sesi, Claude Code menghubungkan atau memutuskan server MCP-nya ketika perubahan diterapkan. [Terapkan perubahan plugin tanpa memulai ulang](/docs/id/plugins/cli-reference#reload-plugins) menjelaskan kapan itu terjadi. Dalam sesi tanpa terminal interaktif, `/reload-plugins` tidak menghubungkan atau memutuskan server MCP plugin; perubahan itu berlaku dalam sesi Anda berikutnya539 * Jika Anda mengaktifkan atau menonaktifkan plugin selama sesi, Claude Code menghubungkan atau memutuskan server MCP-nya ketika perubahan diterapkan. [Terapkan perubahan plugin tanpa memulai ulang](/docs/id/plugins/cli-reference#reload-plugins) menjelaskan kapan itu. Dalam sesi tanpa terminal interaktif, `/reload-plugins` tidak menghubungkan atau memutuskan server MCP plugin; perubahan itu berlaku dalam sesi Anda berikutnya

543 * Ketika Anda memuat ulang, Claude Code menyimpan koneksi langsung dari server plugin yang konfigurasinya tidak berubah, dan melakukan hal yang sama ketika Anda [mengganti daftar server MCP sesi](/docs/id/agent-sdk/typescript#mcpsetserversresult) dari Agent SDK tanpa menamakannya540 * Ketika Anda memuat ulang, Claude Code menyimpan koneksi langsung server plugin yang konfigurasinya tidak berubah, dan melakukan hal yang sama ketika Anda [mengganti daftar server MCP sesi](/docs/id/agent-sdk/typescript#mcpsetserversresult) dari Agent SDK tanpa menamakannya

544 * Ketika Anda [memindahkan sesi dengan `/cd`](/docs/id/permissions#move-the-session-to-another-directory) pada v2.1.246 atau lebih baru, Claude Code menghubungkan server plugin yang pengaturan direktori baru aktifkan dan memutuskan server plugin yang tidak lagi diaktifkan, jadi Anda tidak perlu menjalankan `/reload-plugins` setelah perpindahan541 * Ketika Anda [memindahkan sesi dengan `/cd`](/docs/id/permissions#move-the-session-to-another-directory) pada v2.1.246 atau lebih baru, Claude Code menghubungkan server plugin yang pengaturan direktori baru aktifkan dan memutuskan server plugin yang tidak lagi diaktifkan, jadi Anda tidak perlu menjalankan `/reload-plugins` setelah perpindahan

545 * Dalam [sesi cloud](/docs/id/claude-code-on-the-web), panggilan MCP ke server plugin yang belum terhubung, seperti tepat setelah sesi idle bangun, memulai server sesuai permintaan dan menunggu untuk terhubung542 * Dalam [sesi cloud](/docs/id/claude-code-on-the-web), panggilan MCP ke server plugin yang belum terhubung, seperti tepat setelah sesi idle bangun, memulai server sesuai permintaan dan menunggu untuk terhubung

546* **Placeholder jalur**: `${CLAUDE_PLUGIN_ROOT}` diselesaikan ke direktori instalasi plugin, `${CLAUDE_PLUGIN_DATA}` ke direktori [status persisten](/docs/id/plugins/components#path-variables-and-persistent-data)-nya, dan `${CLAUDE_PROJECT_DIR}` ke akar proyek yang stabil. Substitusi berlaku untuk:543* **Placeholder jalur**: `${CLAUDE_PLUGIN_ROOT}` diselesaikan ke direktori instalasi plugin, `${CLAUDE_PLUGIN_DATA}` ke direktori [status persisten](/docs/id/plugins/components#path-variables-and-persistent-data)-nya, dan `${CLAUDE_PROJECT_DIR}` ke akar proyek yang stabil. Substitusi berlaku untuk:

547 * server `stdio`: `command`, `args`, `env`544 * server `stdio`: `command`, `args`, `env`

548 * server `http`, `sse`, dan `ws`: `url`, `headers`, dan `headersHelper`. Sebelum v2.1.195, `headersHelper` meneruskan placeholder sebagai string literal545 * server `http`, `sse`, dan `ws`: `url`, `headers`, dan `headersHelper`. Sebelum v2.1.195, `headersHelper` melewatkan placeholder sebagai string literal

549* **Akses lingkungan pengguna**: akses ke variabel lingkungan yang sama seperti server yang dikonfigurasi secara manual546* **Akses lingkungan pengguna**: akses ke variabel lingkungan yang sama seperti server yang dikonfigurasi secara manual

550* **Jenis transport berganda**: dukungan untuk transport stdio, SSE, HTTP, dan WebSocket, meskipun dukungan transport dapat bervariasi menurut server547* **Jenis transport berganda**: dukungan untuk transport stdio, SSE, HTTP, dan WebSocket, meskipun dukungan transport mungkin bervariasi menurut server

551 548 

552Server plugin muncul di `/mcp` dengan indikator menunjukkan mereka berasal dari plugin.549Server plugin muncul di `/mcp` dengan indikator menunjukkan mereka berasal dari plugin.

553 550 

554**Nama alat MCP plugin**:551**Nama alat MCP plugin**:

555 552 

556Alat dari server MCP yang digabungkan plugin mencakup nama plugin dan kunci server dalam nama yang dapat dipanggil mereka. Bentuk lengkapnya adalah `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, di mana karakter apa pun di luar `A-Z`, `a-z`, `0-9`, `_`, dan `-` diganti dengan `_`. Untuk server `database-tools` yang digabungkan dalam plugin bernama `my-plugin`, alat `query` dapat dipanggil sebagai:553Alat dari server MCP yang digabungkan plugin menyertakan nama plugin dan kunci server dalam nama yang dapat dipanggil mereka. Bentuk lengkapnya adalah `mcp__plugin_<plugin-name>_<server-name>__<tool-name>`, di mana karakter apa pun di luar `A-Z`, `a-z`, `0-9`, `_`, dan `-` diganti dengan `_`. Untuk server `database-tools` yang digabungkan dalam plugin bernama `my-plugin`, alat `query` dapat dipanggil sebagai:

557 554 

558```555```

559mcp__plugin_my-plugin_database-tools__query556mcp__plugin_my-plugin_database-tools__query

560```557```

561 558 

562Gunakan nama lengkap ini saat mereferensikan alat dalam [aturan izin](/docs/id/permissions), daftar `allowed-tools` skill, bidang `tools` [subagent](/docs/id/sub-agents#available-tools), atau [pencocokan hook](/docs/id/hooks#match-mcp-tools). Pencocokan hook yang ditulis terhadap kunci server telanjang, seperti `mcp__database-tools__.*`, tidak pernah menyala untuk server yang digabungkan plugin.559Gunakan nama lengkap ini saat mereferensikan alat dalam [aturan izin](/docs/id/permissions), daftar `allowed-tools` skill, [bidang `tools` subagent](/docs/id/sub-agents#available-tools), atau [pencocokan hook](/docs/id/hooks#match-mcp-tools). Pencocokan hook yang ditulis terhadap kunci server telanjang, seperti `mcp__database-tools__.*`, tidak pernah menyala untuk server yang digabungkan plugin.

563 560 

564Server itu sendiri mendaftar di bawah nama yang dibatasi `plugin:<plugin-name>:<server-name>`, seperti `plugin:my-plugin:database-tools`. Gunakan nama itu di mana nama server yang dikonfigurasi diharapkan, seperti [`server` field hook `mcp_tool`](/docs/id/hooks#mcp-tool-hook-fields).561Server itu sendiri mendaftar di bawah nama yang dibatasi `plugin:<plugin-name>:<server-name>`, seperti `plugin:my-plugin:database-tools`. Gunakan nama itu tempat nama server yang dikonfigurasi diharapkan, seperti [bidang `server` hook `mcp_tool`](/docs/id/hooks#mcp-tool-hook-fields).

565 562 

566Lihat [referensi komponen plugin](/docs/id/plugins/components#mcp-servers) untuk detail tentang menggabungkan server MCP dengan plugin.563Lihat [referensi komponen plugin](/docs/id/plugins/components#mcp-servers) untuk detail tentang penggabungan server MCP dengan plugin.

567 564 

568<h2 id="mcp-installation-scopes">565<h2 id="mcp-installation-scopes">

569 Cakupan instalasi MCP566 Cakupan instalasi MCP


6694. [Server yang disediakan plugin](/docs/id/plugins/components#mcp-servers)6664. [Server yang disediakan plugin](/docs/id/plugins/components#mcp-servers)

6705. [Konektor claude.ai](#use-mcp-servers-from-claude-ai)6675. [Konektor claude.ai](#use-mcp-servers-from-claude-ai)

671 668 

672Tiga cakupan mencocokkan duplikat berdasarkan nama. Plugin dan konektor mencocokkan berdasarkan endpoint, jadi yang menunjuk ke URL atau perintah yang sama dengan server di atas diperlakukan sebagai duplikat.669Claude Code mencocokkan duplikat di seluruh tiga cakupan berdasarkan nama. Plugin dan konektor mencocokkan berdasarkan endpoint, jadi yang menunjuk ke URL atau perintah yang sama dengan server di atas diperlakukan sebagai duplikat.

670 

671Dua ejaan URL dihitung sebagai endpoint yang sama ketika mereka berbeda hanya dalam huruf besar-kecil skema atau host, port default skema, seperti `:443` pada `https`, atau garis miring di akhir. Jalur, string kueri, userinfo, atau port non-default yang berbeda membuat dua server.

673 672 

674Server yang disediakan organisasi Anda melalui pengaturan terkelola [`managedMcpServers`](/docs/id/managed-mcp#provide-servers-through-managed-settings) menempati peringkat di atas semua ini, jadi ketika salah satu dari mereka menduplikasinya, Claude Code terhubung ke definisi organisasi. Memerlukan Claude Code v2.1.259 atau lebih baru.673Server yang disediakan organisasi Anda melalui pengaturan terkelola [`managedMcpServers`](/docs/id/managed-mcp#provide-servers-through-managed-settings) menempati peringkat di atas semua ini, jadi ketika salah satu dari mereka menduplikasinya, Claude Code terhubung ke definisi organisasi. Memerlukan Claude Code v2.1.259 atau lebih baru.

675 674 


823 822 

824Claude Code menandai server jarak jauh sebagai memerlukan autentikasi ketika server merespons dengan `401 Unauthorized` atau `403 Forbidden`. Apa yang Claude Code tampilkan tergantung pada server:823Claude Code menandai server jarak jauh sebagai memerlukan autentikasi ketika server merespons dengan `401 Unauthorized` atau `403 Forbidden`. Apa yang Claude Code tampilkan tergantung pada server:

825 824 

826* Untuk server yang belum Anda masuki, salah satu kode status ini menandainya di `/mcp` sehingga Anda dapat menyelesaikan alur OAuth.825* Untuk server yang belum Anda masuki, salah satu kode status menandainya di `/mcp` sehingga Anda dapat menyelesaikan alur OAuth.

827* Untuk [konektor claude.ai](#use-mcp-servers-from-claude-ai), `401` yang disebabkan oleh claude.ai menolak token sesi Anda tidak menandai konektor, karena mengotorisasi ulang konektor tidak dapat memperbaiki login Anda. Claude Code menampilkan [status token-sesi-ditolak](/docs/id/errors#claude-ai-rejected-the-session-token) sebagai gantinya.826* Untuk [konektor claude.ai](#use-mcp-servers-from-claude-ai), `401` yang disebabkan oleh claude.ai menolak token sesi Anda tidak menandai konektor, karena otorisasi ulang konektor tidak dapat memperbaiki login Anda. Claude Code menampilkan [status token-sesi-ditolak](/docs/id/errors#claude-ai-rejected-the-session-token) sebagai gantinya.

828* Untuk server yang header `Authorization` Anda konfigurasi, di `headers` atau melalui [`headersHelper`](#use-dynamic-headers-for-custom-authentication), `401` atau `403` saat menghubungkan tidak menandai server, karena kredensial untuk diperbaiki adalah yang Anda konfigurasi. Claude Code melaporkan koneksi sebagai gagal sebagai gantinya. Jika Anda menetapkan header tersebut dari referensi `${VAR}`, periksa apakah variabel itu adalah salah satu yang Claude Code [baca sebagai kosong](#credential-variables-that-read-as-empty).827* Untuk server yang header `Authorization` Anda konfigurasi, di `headers` atau melalui [`headersHelper`](#use-dynamic-headers-for-custom-authentication), `401` atau `403` saat menghubungkan tidak menandai server, karena kredensial untuk diperbaiki adalah yang Anda konfigurasi. Claude Code melaporkan koneksi sebagai gagal sebagai gantinya. Jika Anda menetapkan header itu dari referensi `${VAR}`, periksa apakah variabel itu adalah salah satu yang Claude Code [baca sebagai kosong](#credential-variables-that-read-as-empty).

829* Untuk konektor [yang dikirimkan ke sesi cloud](#how-connectors-reach-claude-code), Claude Code tidak menjalankan alur sign-in, karena proxy sesi mengautentikasi ke konektor dengan otorisasi yang Anda berikan di claude.ai. Ketika konektor di sana memerlukan otorisasi lagi, hubungkan kembali di [claude.ai/customize/connectors](https://claude.ai/customize/connectors) daripada dari sesi.828* Untuk konektor [dikirimkan ke sesi cloud](#how-connectors-reach-claude-code), Claude Code tidak menjalankan alur masuk, karena proxy sesi mengautentikasi ke konektor dengan otorisasi yang Anda berikan di claude.ai. Ketika konektor di sana perlu diotorisasi lagi, sambungkan kembali di [claude.ai/customize/connectors](https://claude.ai/customize/connectors) daripada dari sesi.

830 829 

831Ketika permintaan ke server OAuth yang sudah Anda masuki mengembalikan `401 Unauthorized`, Claude Code menyegarkan token yang disimpan, terhubung kembali, dan mencoba ulang permintaan sekali. Itu menandai server di `/mcp` hanya jika percobaan ulang itu juga gagal. Sebelum v2.1.206, penyegaran token yang gagal karena alasan sementara, seperti kesalahan jaringan, menandai server OAuth sebagai memerlukan autentikasi untuk sisa sesi meskipun token penyegarannya masih valid.830Ketika permintaan ke server OAuth yang sudah Anda masuki mengembalikan `401 Unauthorized`, Claude Code menyegarkan token yang disimpan, menghubungkan kembali, dan mencoba ulang permintaan sekali. Ini menandai server di `/mcp` hanya jika percobaan ulang itu juga gagal. Sebelum v2.1.206, penyegaran token yang gagal karena alasan sementara, seperti kesalahan jaringan, menandai server OAuth sebagai memerlukan autentikasi untuk sisa sesi meskipun token penyegarnya masih valid.

832 831 

833Ketika server menolak token penyegaran yang disimpan, Claude Code segera menampilkan pemberitahuan yang menunjuk ke `/mcp`. Buka `/mcp` dan pilih **Re-authenticate** pada server untuk masuk lagi sebelum panggilan alat berikutnya gagal.832Ketika server menolak token penyegaran yang disimpan, Claude Code segera menampilkan pemberitahuan yang menunjuk ke `/mcp`. Buka `/mcp` dan pilih **Re-authenticate** pada server untuk masuk lagi sebelum panggilan alat berikutnya gagal.

834 833 

835Server kustom yang mengembalikan header `WWW-Authenticate` yang menunjuk ke server otorisasinya mendapatkan penemuan otomatis yang sama seperti server jarak jauh lainnya.834Server khusus yang mengembalikan header `WWW-Authenticate` yang menunjuk ke server otorisasinya mendapatkan penemuan otomatis yang sama seperti server jarak jauh lainnya.

836 835 

837Claude Code juga menampilkan pemberitahuan startup ketika satu atau lebih server yang dikonfigurasi memerlukan autentikasi, sehingga Anda tidak perlu membuka `/mcp` untuk menemukan server mana yang memerlukan sign-in. Pemberitahuan memerlukan Claude Code v2.1.193 atau lebih baru. Itu hanya menghitung server yang dapat Anda masuki dari Claude Code. Sebelum v2.1.218, itu juga menghitung [konektor claude.ai](#use-mcp-servers-from-claude-ai) yang tidak terhubung di claude.ai, yang hanya dapat Anda hubungkan dari pengaturan claude.ai.836Claude Code juga menampilkan pemberitahuan startup ketika satu atau lebih server yang dikonfigurasi memerlukan autentikasi, sehingga Anda tidak perlu membuka `/mcp` untuk menemukan server mana yang memerlukan masuk. Pemberitahuan memerlukan Claude Code v2.1.193 atau lebih baru. Ini hanya menghitung server yang dapat Anda masuki dari Claude Code. Sebelum v2.1.218, ini juga menghitung [konektor claude.ai](#use-mcp-servers-from-claude-ai) yang tidak terhubung di claude.ai, yang hanya dapat Anda hubungkan dari pengaturan claude.ai.

838 837 

839Pemberitahuan mengumumkan setiap server sekali dan mengeluarkannya dari hitungan di peluncuran berikutnya sampai server itu telah terhubung dan memerlukan sign-in lagi. `/mcp` masih mencantumkan setiap server yang memerlukan sign-in.838Pemberitahuan mengumumkan setiap server sekali dan mengeluarkannya dari hitungan di peluncuran berikutnya sampai server itu telah terhubung dan memerlukan masuk lagi. `/mcp` masih mencantumkan setiap server yang memerlukan masuk.

840 839 

841Dalam mode non-interaktif tidak ada panel `/mcp`, jadi Claude Code tidak dapat menjalankan alur OAuth untuk Anda. Mulai dari v2.1.196, ketika server yang dikonfigurasi memerlukan autentikasi selama `claude -p` atau jalankan Agent SDK dengan [pencarian alat](#scale-with-mcp-tool-search) diaktifkan, yang merupakan default, Claude Code memberi tahu Claude bahwa alat server tidak tersedia sampai Anda mengotorisasinya. Claude kemudian dapat menyebutkan server yang memerlukan sign-in alih-alih merespons seolah-olah server tidak dikonfigurasi. Selesaikan sign-in dari sesi interaktif dengan `/mcp` atau `claude mcp login <name>`.840Dalam mode non-interaktif tidak ada panel `/mcp`, jadi Claude Code tidak dapat menjalankan alur OAuth untuk Anda. Mulai dari v2.1.196, ketika server yang dikonfigurasi memerlukan autentikasi selama `claude -p` atau jalankan Agent SDK dengan [pencarian alat](#scale-with-mcp-tool-search) diaktifkan, yang merupakan default, Claude Code memberi tahu Claude bahwa alat server tidak tersedia sampai Anda mengotorisasinya. Claude kemudian dapat menyebutkan server yang memerlukan masuk daripada merespons seolah-olah server tidak dikonfigurasi. Selesaikan masuk dari sesi interaktif dengan `/mcp` atau `claude mcp login <name>`.

842 841 

843Jika Anda mengonfigurasi `headers.Authorization` untuk server dan server menolak header tersebut, Claude Code melaporkan koneksi sebagai gagal alih-alih kembali ke OAuth. Periksa bahwa token valid untuk endpoint MCP, atau hapus header untuk menggunakan alur OAuth.842Jika Anda mengonfigurasi `headers.Authorization` untuk server dan server menolak header itu, Claude Code melaporkan koneksi sebagai gagal daripada kembali ke OAuth. Periksa bahwa token valid untuk titik akhir MCP, atau hapus header untuk menggunakan alur OAuth.

844 843 

845<Steps>844<Steps>

846 <Step title="Tambahkan server yang memerlukan autentikasi">845 <Step title="Tambahkan server yang memerlukan autentikasi">


852 </Step>851 </Step>

853 852 

854 <Step title="Gunakan perintah /mcp dalam Claude Code">853 <Step title="Gunakan perintah /mcp dalam Claude Code">

855 Dalam Claude Code, gunakan perintah:854 Di Claude Code, gunakan perintah:

856 855 

857 ```text wrap theme={null}856 ```text wrap theme={null}

858 /mcp857 /mcp

859 ```858 ```

860 859 

861 Kemudian ikuti langkah-langkah di browser Anda untuk login.860 Kemudian ikuti langkah-langkah di browser Anda untuk masuk.

862 </Step>861 </Step>

863</Steps>862</Steps>

864 863 


866 Tips:865 Tips:

867 866 

868 * Token autentikasi disimpan dengan aman dan disegarkan secara otomatis867 * Token autentikasi disimpan dengan aman dan disegarkan secara otomatis

869 * Gunakan "Clear authentication" dalam menu `/mcp` untuk mencabut akses868 * Gunakan "Clear authentication" di menu `/mcp` untuk mencabut akses

870 * Jika browser Anda tidak terbuka secara otomatis, salin URL yang disediakan dan buka secara manual869 * Jika browser Anda tidak terbuka secara otomatis, salin URL yang disediakan dan buka secara manual

871 * Jika pengalihan browser gagal dengan kesalahan koneksi setelah autentikasi, tempel URL callback lengkap dari bilah alamat browser Anda ke prompt URL yang muncul di Claude Code870 * Jika pengalihan browser gagal dengan kesalahan koneksi setelah autentikasi, tempel URL callback lengkap dari bilah alamat browser Anda ke prompt URL yang muncul di Claude Code

872 * Autentikasi OAuth bekerja dengan server HTTP871 * Autentikasi OAuth bekerja dengan server HTTP


884 883 

885Untuk menghapus kredensial yang disimpan nanti, jalankan `claude mcp logout <name>`.884Untuk menghapus kredensial yang disimpan nanti, jalankan `claude mcp logout <name>`.

886 885 

887`claude mcp login` mendeteksi ketika tidak ada browser lokal yang tersedia, seperti selama sesi SSH atau di Linux tanpa server tampilan, dan mencetak URL otorisasi alih-alih mencoba membuka browser. Buka URL di mesin lokal Anda, kemudian tempel URL pengalihan lengkap dari bilah alamat browser Anda kembali ke prompt. Perintah memerlukan terminal interaktif untuk langkah paste, jadi hubungkan dengan `ssh -t`. Teruskan `--no-browser` untuk memaksa prompt URL bahkan ketika browser lokal terdeteksi.886`claude mcp login` mendeteksi ketika tidak ada browser lokal yang tersedia, seperti selama sesi SSH atau di Linux tanpa server tampilan, dan mencetak URL otorisasi daripada mencoba membuka browser. Buka URL di mesin lokal Anda, kemudian tempel URL pengalihan lengkap dari bilah alamat browser Anda kembali ke prompt. Perintah memerlukan terminal interaktif untuk langkah tempel, jadi hubungkan dengan `ssh -t`. Lewati `--no-browser` untuk memaksa prompt URL bahkan ketika browser lokal terdeteksi.

888 887 

889```bash theme={null}888```bash theme={null}

890claude mcp login sentry --no-browser889claude mcp login sentry --no-browser


894 Gunakan port callback OAuth tetap893 Gunakan port callback OAuth tetap

895</h3>894</h3>

896 895 

897Beberapa server MCP memerlukan URI pengalihan tertentu yang terdaftar sebelumnya. Secara default, Claude Code memilih port acak yang tersedia untuk callback OAuth. Gunakan `--callback-port` untuk memperbaiki port sehingga cocok dengan URI pengalihan yang telah terdaftar sebelumnya dalam bentuk `http://localhost:PORT/callback`. Jika sign-in pada Claude Code v2.1.229 gagal dengan ketidakcocokan URI pengalihan, lihat catatan versi di bawah [Gunakan kredensial OAuth yang telah dikonfigurasi sebelumnya](#use-pre-configured-oauth-credentials).896Beberapa server MCP memerlukan URI pengalihan tertentu yang terdaftar sebelumnya. Secara default, Claude Code memilih port yang tersedia secara acak untuk callback OAuth. Gunakan `--callback-port` untuk memperbaiki port sehingga cocok dengan URI pengalihan yang telah terdaftar sebelumnya dalam bentuk `http://localhost:PORT/callback`. Jika masuk pada Claude Code v2.1.229 gagal dengan ketidakcocokan URI pengalihan, lihat catatan versi di bawah [Gunakan kredensial OAuth yang telah dikonfigurasi sebelumnya](#use-pre-configured-oauth-credentials).

898 897 

899Anda dapat menggunakan `--callback-port` sendiri (dengan pendaftaran klien dinamis) atau bersama dengan `--client-id` (dengan kredensial yang telah dikonfigurasi sebelumnya).898Anda dapat menggunakan `--callback-port` sendiri (dengan pendaftaran klien dinamis) atau bersama dengan `--client-id` (dengan kredensial yang telah dikonfigurasi sebelumnya).

900 899 


909 Gunakan kredensial OAuth yang telah dikonfigurasi sebelumnya908 Gunakan kredensial OAuth yang telah dikonfigurasi sebelumnya

910</h3>909</h3>

911 910 

912Beberapa server MCP tidak mendukung pengaturan OAuth otomatis melalui Dynamic Client Registration. Jika Anda melihat kesalahan seperti "Incompatible auth server: does not support dynamic client registration," server memerlukan kredensial yang telah dikonfigurasi sebelumnya. Claude Code juga mendukung server yang menggunakan Client ID Metadata Document (CIMD) alih-alih Dynamic Client Registration, dan menemukan ini secara otomatis. Jika penemuan otomatis gagal, daftarkan aplikasi OAuth melalui portal pengembang server terlebih dahulu, kemudian berikan kredensial saat menambahkan server.911Beberapa server MCP tidak mendukung pengaturan OAuth otomatis melalui Pendaftaran Klien Dinamis. Jika Anda melihat kesalahan seperti "Incompatible auth server: does not support dynamic client registration," server memerlukan kredensial yang telah dikonfigurasi sebelumnya. Claude Code juga mendukung server yang menggunakan Dokumen Metadata ID Klien (CIMD) daripada Pendaftaran Klien Dinamis, dan menemukan ini secara otomatis. Jika penemuan otomatis gagal, daftarkan aplikasi OAuth melalui portal pengembang server terlebih dahulu, kemudian berikan kredensial saat menambahkan server.

913 912 

914<Steps>913<Steps>

915 <Step title="Daftarkan aplikasi OAuth dengan server">914 <Step title="Daftarkan aplikasi OAuth dengan server">

916 Buat aplikasi melalui portal pengembang server dan catat ID klien dan rahasia klien Anda.915 Buat aplikasi melalui portal pengembang server dan catat ID klien dan rahasia klien Anda.

917 916 

918 Banyak server juga memerlukan URI pengalihan. Jika demikian, pilih port dan daftarkan URI pengalihan dalam format `http://localhost:PORT/callback`. Gunakan port yang sama dengan `--callback-port` di langkah berikutnya.917 Jika formulir pendaftaran meminta URI pengalihan, pilih port yang tersedia dan masukkan `http://localhost:PORT/callback` dengan port itu. Anda akan menggunakan port yang sama di langkah berikutnya.

919 918 

920 Di v2.1.229, Claude Code mengirim `http://127.0.0.1:PORT/callback` sebagai gantinya, dan server yang cocok persis dengan URI pengalihan yang terdaftar menolak sign-in dengan ketidakcocokan URI pengalihan. Claude Code v2.1.231 mengembalikan bentuk `localhost`. Untuk pulih di v2.1.229, tingkatkan Claude Code, atau sementara tambahkan bentuk `http://127.0.0.1:PORT/callback` ke URI pengalihan yang terdaftar di server.919 Di v2.1.229, Claude Code mengirim `http://127.0.0.1:PORT/callback` sebagai gantinya, dan server yang cocok persis dengan URI pengalihan yang terdaftar menolak masuk dengan ketidakcocokan URI pengalihan. Claude Code v2.1.231 mengembalikan bentuk `localhost`. Untuk pulih di v2.1.229, tingkatkan Claude Code, atau sementara tambahkan bentuk `http://127.0.0.1:PORT/callback` ke URI pengalihan yang terdaftar di server.

921 </Step>920 </Step>

922 921 

923 <Step title="Tambahkan server dengan kredensial Anda">922 <Step title="Tambahkan server dengan kredensial Anda">

924 Pilih salah satu metode berikut. Port yang digunakan untuk `--callback-port` dapat berupa port apa pun yang tersedia. Itu hanya perlu cocok dengan URI pengalihan yang Anda daftarkan di langkah sebelumnya.923 Tab mencakup kedua perintah: `claude mcp add` mengambil ID klien dan port callback Anda sebagai flag, dan `claude mcp add-json` mengambilnya dalam objek `oauth`. Jika Anda mendaftarkan URI pengalihan, atur port callback ke port dalam URI itu.

925 924 

926 <Tabs>925 <Tabs>

927 <Tab title="claude mcp add">926 <Tab title="claude mcp add">

928 Gunakan `--client-id` untuk meneruskan ID klien aplikasi Anda. Flag `--client-secret` meminta rahasia dengan input yang disembunyikan:927 Gunakan `--client-id` untuk meneruskan ID klien aplikasi Anda. Flag `--client-secret` meminta rahasia dengan input bertopeng:

929 928 

930 ```bash theme={null}929 ```bash theme={null}

931 claude mcp add --transport http \930 claude mcp add --transport http \


935 </Tab>934 </Tab>

936 935 

937 <Tab title="claude mcp add-json">936 <Tab title="claude mcp add-json">

938 Sertakan objek `oauth` dalam konfigurasi JSON dan teruskan `--client-secret` sebagai flag terpisah:937 Sertakan objek `oauth` dalam konfigurasi JSON dan lewati `--client-secret` sebagai flag terpisah:

939 938 

940 ```bash theme={null}939 ```bash theme={null}

941 claude mcp add-json my-server \940 claude mcp add-json my-server \


945 </Tab>944 </Tab>

946 945 

947 <Tab title="claude mcp add-json (callback port only)">946 <Tab title="claude mcp add-json (callback port only)">

948 Gunakan `--callback-port` tanpa ID klien untuk memperbaiki port sambil menggunakan pendaftaran klien dinamis:947 Untuk memperbaiki hanya port callback dan membiarkan Claude Code mendaftarkan klien secara otomatis, atur `callbackPort` sendiri:

949 948 

950 ```bash theme={null}949 ```bash theme={null}

951 claude mcp add-json my-server \950 claude mcp add-json my-server \


974 Tips:973 Tips:

975 974 

976 * Rahasia klien disimpan dengan aman di keychain sistem Anda (macOS) atau file kredensial, bukan di konfigurasi Anda975 * Rahasia klien disimpan dengan aman di keychain sistem Anda (macOS) atau file kredensial, bukan di konfigurasi Anda

977 * Anda dapat mengatur rahasia klien hanya ketika Anda menambahkan server. Ketika Anda melakukan autentikasi dengan `claude mcp login` atau dari `/mcp`, Claude Code menggunakan rahasia yang disimpan dan tidak meminta satu atau membaca `MCP_CLIENT_SECRET`976 * Anda dapat menetapkan rahasia klien hanya ketika Anda menambahkan server. Ketika Anda autentikasi dengan `claude mcp login` atau dari `/mcp`, Claude Code menggunakan rahasia yang disimpan dan tidak meminta satu atau membaca `MCP_CLIENT_SECRET`

978 * Untuk menambah atau mengubah rahasia nanti, hapus server dengan `claude mcp remove <name>`, kemudian tambahkan lagi dengan `--client-secret` dan `--scope` yang sama977 * Untuk menambah atau mengubah rahasia nanti, hapus server dengan `claude mcp remove <name>`, kemudian tambahkan lagi dengan `--client-secret` dan `--scope` yang sama

979 * Jika server menggunakan klien OAuth publik tanpa rahasia, gunakan hanya `--client-id` tanpa `--client-secret`978 * Jika server menggunakan klien OAuth publik tanpa rahasia, gunakan hanya `--client-id` tanpa `--client-secret`

980 * Flag ini hanya berlaku untuk transport HTTP dan SSE. Mereka tidak berpengaruh pada server stdio979 * Flag ini hanya berlaku untuk transport HTTP dan SSE. Mereka tidak berpengaruh pada server stdio


985 Ganti penemuan metadata OAuth984 Ganti penemuan metadata OAuth

986</h3>985</h3>

987 986 

988Arahkan Claude Code ke URL metadata otorisasi OAuth tertentu untuk melewati rantai penemuan default. Atur `authServerMetadataUrl` ketika endpoint standar server MCP mengembalikan kesalahan, atau ketika Anda ingin merutekan penemuan melalui proxy internal. Secara default, Claude Code pertama kali memeriksa Protected Resource Metadata RFC 9728 di `/.well-known/oauth-protected-resource`, kemudian kembali ke metadata server otorisasi RFC 8414 di `/.well-known/oauth-authorization-server`.987Arahkan Claude Code ke URL metadata server otorisasi OAuth tertentu untuk melewati rantai penemuan default. Atur `authServerMetadataUrl` ketika titik akhir standar server MCP mengalami kesalahan, atau ketika Anda ingin merutekan penemuan melalui proxy internal. Secara default, Claude Code pertama kali memeriksa Metadata Sumber Daya Terlindungi RFC 9728 di `/.well-known/oauth-protected-resource`, kemudian kembali ke metadata server otorisasi RFC 8414 di `/.well-known/oauth-authorization-server`.

989 988 

990Atur `authServerMetadataUrl` dalam objek `oauth` dari konfigurasi server Anda di `.mcp.json`:989Atur `authServerMetadataUrl` dalam objek `oauth` dari konfigurasi server Anda di `.mcp.json`:

991 990 


1003}1002}

1004```1003```

1005 1004 

1006URL harus menggunakan `https://`. `scopes_supported` dari URL metadata mengganti cakupan yang diiklankan server upstream.1005URL harus menggunakan `https://`. `scopes_supported` URL metadata mengganti cakupan yang diiklankan server hulu.

1007 1006 

1008<h3 id="restrict-oauth-scopes">1007<h3 id="restrict-oauth-scopes">

1009 Batasi cakupan OAuth1008 Batasi cakupan OAuth

1010</h3>1009</h3>

1011 1010 

1012Atur `oauth.scopes` untuk menyematkan cakupan yang diminta Claude Code selama alur otorisasi. Ini adalah cara yang didukung untuk membatasi server MCP ke subset yang disetujui tim keamanan ketika server otorisasi upstream mengiklankan lebih banyak cakupan daripada yang ingin Anda berikan. Nilainya adalah string tunggal yang dipisahkan spasi, cocok dengan format parameter `scope` dalam RFC 6749 §3.3.1011Atur `oauth.scopes` untuk menyematkan cakupan yang Claude Code minta selama alur otorisasi. Ini adalah cara yang didukung untuk membatasi server MCP ke subset yang disetujui tim keamanan ketika server otorisasi hulu mengiklankan lebih banyak cakupan daripada yang ingin Anda berikan. Nilainya adalah string tunggal yang dipisahkan spasi, cocok dengan format parameter `scope` di RFC 6749 §3.3.

1013 1012 

1014```json theme={null}1013```json theme={null}

1015{1014{


1027 1026 

1028`oauth.scopes` mengambil prioritas atas `authServerMetadataUrl` dan cakupan yang ditemukan server di `/.well-known`. Biarkan tidak diatur untuk membiarkan server MCP menentukan set cakupan yang diminta.1027`oauth.scopes` mengambil prioritas atas `authServerMetadataUrl` dan cakupan yang ditemukan server di `/.well-known`. Biarkan tidak diatur untuk membiarkan server MCP menentukan set cakupan yang diminta.

1029 1028 

1030Mulai dari v2.1.196, ketika `oauth.scopes` tidak diatur, Claude Code meminta cakupan yang disediakan oleh header `WWW-Authenticate` server atau metadata sumber daya terlindungnya, dan tidak mengirim parameter `scope` ketika tidak ada yang menyediakannya. Itu tidak lagi meminta katalog `scopes_supported` lengkap dari metadata server otorisasi yang ditemukan secara otomatis. Meminta katalog itu membuat penyedia identitas yang mengiklankan cakupan khusus admin atau template menolak permintaan otorisasi dengan kesalahan `invalid_scope`. Metadata yang diambil dari `authServerMetadataUrl` yang dikonfigurasi masih menyediakan `scopes_supported` sebagai cakupan yang diminta.1029Mulai dari v2.1.196, ketika `oauth.scopes` tidak diatur, Claude Code meminta cakupan yang disediakan oleh header `WWW-Authenticate` server atau metadata sumber daya terlindungnya, dan mengirim tidak ada parameter `scope` ketika tidak ada yang menyediakannya. Ini tidak lagi meminta katalog `scopes_supported` lengkap dari metadata server otorisasi yang ditemukan secara otomatis. Meminta katalog itu membuat penyedia identitas yang mengiklankan cakupan khusus admin atau template menolak permintaan otorisasi dengan kesalahan `invalid_scope`. Metadata yang diambil dari `authServerMetadataUrl` yang dikonfigurasi masih menyediakan `scopes_supported` sebagai cakupan yang diminta.

1031 1030 

1032Jika server otorisasi mengiklankan `offline_access` dalam `scopes_supported`, Claude Code menambahkannya ke cakupan yang disematkan sehingga token akses dapat disegarkan tanpa login browser baru.1031Jika server otorisasi mengiklankan `offline_access` di `scopes_supported`, Claude Code menambahkannya ke cakupan yang disematkan sehingga token akses dapat disegarkan tanpa masuk browser baru.

1033 1032 

1034Jika server kemudian mengembalikan 403 `insufficient_scope` untuk panggilan alat, panggilan gagal dengan pesan [`needs additional permissions`](/docs/id/errors#mcp-server-needs-you-to-sign-in-again) yang menyebutkan cakupan yang diminta server. Server ditampilkan sebagai memerlukan autentikasi di `/mcp`.1033Jika server kemudian mengembalikan 403 `insufficient_scope` untuk panggilan alat, panggilan gagal dengan pesan [`needs additional permissions`](/docs/id/errors#mcp-server-needs-you-to-sign-in-again) yang menyebutkan cakupan yang diminta server. Server ditampilkan sebagai memerlukan autentikasi di `/mcp`.

1035 1034 

1036Jika cakupan itu tidak ada dalam `oauth.scopes` yang disematkan Anda, tambahkan, kemudian jalankan `/mcp` dan autentikasi server lagi. Claude Code meminta cakupan yang disematkan daripada cakupan yang dinamai server, jadi jika Anda melakukan autentikasi lagi tanpa menambahkannya, token yang Anda dapatkan masih tidak memilikinya.1035Jika cakupan itu tidak ada di `oauth.scopes` yang disematkan, tambahkan, kemudian jalankan `/mcp` dan autentikasi server lagi. Claude Code meminta cakupan yang disematkan daripada cakupan yang dinamai server, jadi jika Anda autentikasi lagi tanpa menambahkannya, token yang Anda dapatkan masih kekurangannya.

1037 1036 

1038<h3 id="use-dynamic-headers-for-custom-authentication">1037<h3 id="use-dynamic-headers-for-custom-authentication">

1039 Gunakan header dinamis untuk autentikasi khusus1038 Gunakan header dinamis untuk autentikasi khusus


1071 1070 

1072* Perintah harus menulis objek JSON dari pasangan kunci-nilai string ke stdout1071* Perintah harus menulis objek JSON dari pasangan kunci-nilai string ke stdout

1073* Claude Code menjalankan perintah dalam shell dan menyerah padanya setelah 10 detik1072* Claude Code menjalankan perintah dalam shell dan menyerah padanya setelah 10 detik

1074* Claude Code memilih direktori kerja perintah dengan [tempat Anda mengonfigurasi server](#where-the-helper-runs), jadi berikan skrip sebagai jalur absolut atau letakkan di `PATH`1073* Claude Code memilih direktori kerja perintah dengan [di mana Anda mengonfigurasi server](#where-the-helper-runs), jadi berikan skrip sebagai jalur absolut atau letakkan di `PATH`

1075* Header dinamis mengganti `headers` statis apa pun dengan nama yang sama1074* Header dinamis mengganti `headers` statis apa pun dengan nama yang sama

1076 1075 

1077Claude Code menjalankan helper segar pada setiap koneksi, pada startup sesi dan pada reconnect, setelah [aturan kepercayaan untuk server cakupan proyek dan lokal](#trust-a-folder-before-its-headershelper-runs) membiarkannya berjalan. Itu tidak menyimpan hasil, jadi skrip Anda bertanggung jawab untuk penggunaan kembali token apa pun.1076Claude Code menjalankan helper segar pada setiap koneksi, pada awal sesi dan pada sambungan ulang, setelah [aturan kepercayaan untuk server cakupan proyek dan lokal](#trust-a-folder-before-its-headershelper-runs) membiarkannya berjalan. Ini tidak menyimpan hasil, jadi skrip Anda bertanggung jawab untuk penggunaan ulang token apa pun.

1078 1077 

1079Jika panggilan alat mengembalikan `401 Unauthorized` atau `403 Forbidden`, Claude Code secara otomatis menjalankan kembali helper di bawah aturan yang sama, terhubung kembali dengan header segar, dan mencoba panggilan sekali lagi. Claude Code menandai server sebagai memerlukan autentikasi di `/mcp` hanya jika percobaan ulang itu juga gagal.1078Jika panggilan alat mengembalikan `401 Unauthorized` atau `403 Forbidden`, Claude Code secara otomatis menjalankan ulang helper di bawah aturan yang sama, menghubungkan kembali dengan header segar, dan mencoba ulang panggilan sekali. Claude Code menandai server sebagai memerlukan autentikasi di `/mcp` hanya jika percobaan ulang itu juga gagal.

1080 1079 

1081Ketika output helper menyertakan header `Authorization`, Claude Code menggunakan kredensial itu sebagai autentikasi server dan tidak kembali ke OAuth untuk server.1080Ketika output helper menyertakan header `Authorization`, Claude Code menggunakan kredensial itu sebagai autentikasi server dan tidak kembali ke OAuth untuk server.

1082 1081 

1083Jika server menolak kredensial helper saat menghubungkan, Claude Code melaporkan koneksi sebagai gagal daripada menandai server sebagai memerlukan autentikasi. Perbaiki kredensial yang dikembalikan helper Anda, kemudian hubungkan kembali dari `/mcp` untuk menjalankan kembali helper.1082Jika server menolak kredensial helper saat menghubungkan, Claude Code melaporkan koneksi sebagai gagal daripada menandai server sebagai memerlukan autentikasi. Perbaiki kredensial yang dikembalikan helper Anda, kemudian sambungkan kembali dari `/mcp` untuk menjalankan ulang helper.

1084 1083 

1085Claude Code menetapkan variabel lingkungan ini saat menjalankan helper:1084Claude Code menetapkan variabel lingkungan ini saat menjalankan helper:

1086 1085 


1092 1091 

1093Gunakan ini untuk menulis satu skrip helper yang melayani beberapa server MCP.1092Gunakan ini untuk menulis satu skrip helper yang melayani beberapa server MCP.

1094 1093 

1095Plugin-provided `headersHelper` tidak dapat mereferensikan nilai [`${user_config.*}`](/docs/id/plugins/manifest-reference#user-configuration) plugin, karena perintah berjalan melalui shell. Claude Code melaporkan server sebagai salah konfigurasi dengan [kesalahan](/docs/id/errors#plugin-command-references-user-config) dan tidak mengganti nilai. Letakkan `${user_config.KEY}` di bidang `headers` server sebagai gantinya, yang tidak diurai shell, atau buat skrip helper membaca nilai dari file konfigurasi. Sebelum v2.1.207, `headersHelper` mengganti nilai `${user_config.*}`.1094`headersHelper` yang disediakan plugin tidak dapat mereferensikan nilai [`${user_config.*}`](/docs/id/plugins/manifest-reference#user-configuration) plugin, karena perintah berjalan melalui shell. Claude Code melaporkan server sebagai salah konfigurasi dengan [kesalahan](/docs/id/errors#plugin-command-references-user-config) dan tidak mengganti nilai. Letakkan `${user_config.KEY}` di bidang `headers` server sebagai gantinya, yang tidak diurai shell, atau buat skrip helper membaca nilai dari file konfigurasi. Sebelum v2.1.207, `headersHelper` mengganti nilai `${user_config.*}`.

1096 1095 

1097<h4 id="where-the-helper-runs">1096<h4 id="where-the-helper-runs">

1098 Tempat helper berjalan1097 Di mana helper berjalan

1099</h4>1098</h4>

1100 1099 

1101Claude Code memilih direktori kerja perintah `headersHelper` dari konfigurasi yang mendeklarasikan server. `cd` yang Claude jalankan di Bash tidak memindahkannya, dan [`/cd`](/docs/id/permissions#move-the-session-to-another-directory) memindahkannya hanya untuk server yang berjalan dari direktori kerja utama sesi. Setiap baris di bawah memberikan direktori yang jalur relatif dalam perintah `headersHelper` Anda diselesaikan.1100Claude Code memilih direktori kerja perintah `headersHelper` dari konfigurasi yang mendeklarasikan server. `cd` yang Claude jalankan di Bash tidak memindahkannya, dan [`/cd`](/docs/id/permissions#move-the-session-to-another-directory) memindahkannya hanya untuk server yang berjalan dari direktori kerja utama sesi. Setiap baris di bawah memberikan direktori yang jalur relatif dalam perintah `headersHelper` Anda diselesaikan.

1102 1101 

1103| Tempat Anda mengonfigurasi server | Direktori kerja |1102| Di mana Anda mengonfigurasi server | Direktori kerja |

1104| :- | :- |1103| :- | :- |

1105| [Plugin](/docs/id/plugins/components#mcp-servers) | Direktori root plugin. Memerlukan Claude Code v2.1.195 atau lebih baru |1104| [Plugin](/docs/id/plugins/components#mcp-servers) | Direktori root plugin. Memerlukan Claude Code v2.1.195 atau lebih baru |

1106| File `.mcp.json` proyek atau server [cakupan lokal](#local-scope) | Direktori proyek tempat server dideklarasikan |1105| `.mcp.json` proyek atau server [cakupan lokal](#local-scope) | Direktori proyek tempat server dideklarasikan |

1107| File agen di proyek Anda, server dari opsi `mcpServers` SDK atau metode `setMcpServers()`, atau [`--mcp-config`](/docs/id/cli-reference) | [Direktori kerja utama](/docs/id/permissions#working-directories) sesi |1106| File agen di proyek Anda, server dari opsi `mcpServers` SDK atau metode `setMcpServers()`, atau [`--mcp-config`](/docs/id/cli-reference) | [Direktori kerja utama](/docs/id/permissions#working-directories) sesi |

1108| [Cakupan pengguna](#user-scope), [MCP terkelola](/docs/id/managed-mcp), [konektor claude.ai](#use-mcp-servers-from-claude-ai), atau file agen dari luar proyek Anda, termasuk dari direktori `--add-dir` | Direktori konfigurasi Anda, `~/.claude` kecuali Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars) |1107| [Cakupan pengguna](#user-scope), [MCP terkelola](/docs/id/managed-mcp), [konektor claude.ai](#use-mcp-servers-from-claude-ai), atau file agen dari luar proyek Anda, termasuk dari direktori `--add-dir` | Direktori konfigurasi Anda, `~/.claude` kecuali Anda menetapkan [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars) |

1109 1108 


1113 Variabel mana yang dapat dibaca helper1112 Variabel mana yang dapat dibaca helper

1114</h4>1113</h4>

1115 1114 

1116`headersHelper` yang disediakan repositori atau plugin adalah perintah yang tidak Anda tulis, jadi Claude Code menjalankannya tanpa variabel kredensial dari lingkungan Anda, seperti `ANTHROPIC_API_KEY`. Tempat Anda mengonfigurasi server menentukan apakah ini berlaku:1115`headersHelper` yang disediakan repositori atau plugin adalah perintah yang tidak Anda tulis, jadi Claude Code menjalankannya tanpa variabel kredensial dari lingkungan Anda, seperti `ANTHROPIC_API_KEY`. Di mana Anda mengonfigurasi server menentukan apakah ini berlaku:

1117 1116 

1118* **Dihapus**: server di `.mcp.json` proyek atau di plugin, dan server inline di file agen dari proyek Anda atau dari direktori `--add-dir`1117* **Dihapus**: server di `.mcp.json` proyek atau di plugin, dan server inline di file agen dari proyek Anda atau dari direktori `--add-dir`

1119* **Tidak dihapus**: server di [cakupan pengguna](#user-scope) atau [cakupan lokal](#local-scope), di [MCP terkelola](/docs/id/managed-mcp), dari [konektor claude.ai](#use-mcp-servers-from-claude-ai), atau disediakan oleh SDK atau [`--mcp-config`](/docs/id/cli-reference), dan server inline di file agen dari `~/.claude/agents/`, dari pengaturan terkelola, atau diteruskan dengan `--agents`1118* **Tidak dihapus**: server di [cakupan pengguna](#user-scope) atau [cakupan lokal](#local-scope), di [MCP terkelola](/docs/id/managed-mcp), dari [konektor claude.ai](#use-mcp-servers-from-claude-ai), atau disediakan oleh SDK atau [`--mcp-config`](/docs/id/cli-reference), dan server inline di file agen dari `~/.claude/agents/`, dari pengaturan terkelola, atau diteruskan dengan `--agents`

1120 1119 

1121Terlepas dari variabel `GIT_CONFIG_KEY_<n>` Git, Claude Code menghapus setiap variabel dari lingkungan Anda yang namanya terlihat seperti kredensial, seperti nama dengan `TOKEN`, `SECRET`, `PASSWORD`, `KEY`, atau `AUTH` di dalamnya dalam huruf besar atau kecil, jadi `ANTHROPIC_API_KEY` dan `MY_REGISTRY_TOKEN` keduanya dihapus. Claude Code juga menghapus daftar tetap variabel kredensial yang namanya tidak mengikuti pola itu, seperti `ANTHROPIC_CUSTOM_HEADERS`.1120Terlepas dari variabel `GIT_CONFIG_KEY_<n>` Git, Claude Code menghapus setiap variabel dari lingkungan Anda yang namanya terlihat seperti kredensial, seperti nama dengan `TOKEN`, `SECRET`, `PASSWORD`, `KEY`, atau `AUTH` di dalamnya dalam huruf besar atau kecil, jadi `ANTHROPIC_API_KEY` dan `MY_REGISTRY_TOKEN` keduanya dihapus. Claude Code juga menghapus daftar tetap variabel kredensial yang namanya tidak mengikuti pola itu, seperti `ANTHROPIC_CUSTOM_HEADERS`.

1122 1121 

1123Ketika ini berlaku untuk helper Anda, buat skrip membaca kredensialnya dari file atau penyimpanan kredensial. Jika `url` server [memperluas salah satu variabel ini](#environment-variable-expansion-in-mcp-json), nilai `CLAUDE_CODE_MCP_SERVER_URL` yang diterima helper memiliki bagian itu diganti dengan `REDACTED` juga.1122Ketika ini berlaku untuk helper Anda, buat skrip membaca kredensialnya dari file atau penyimpanan kredensial. Jika `url` server [membawa nilai langsung dari salah satu variabel ini](#environment-variable-expansion-in-mcp-json), seperti `MY_REGISTRY_TOKEN`, nilai `CLAUDE_CODE_MCP_SERVER_URL` yang diterima helper memiliki bagian itu diganti dengan `REDACTED` juga.

1124 1123 

1125<h4 id="trust-a-folder-before-its-headershelper-runs">1124<h4 id="trust-a-folder-before-its-headershelper-runs">

1126 Percayai folder sebelum headersHelper-nya berjalan1125 Percayai folder sebelum headersHelper-nya berjalan

1127</h4>1126</h4>

1128 1127 

1129Claude Code menjalankan `headersHelper` sebagai perintah shell arbitrer. Untuk server di `.mcp.json` proyek atau di [cakupan lokal](#local-scope), itu menjalankan helper hanya setelah Anda menerima [dialog kepercayaan](/docs/id/permissions#project-allow-rules-and-workspace-trust) untuk direktori proyek tempat server dideklarasikan. Sebelum v2.1.238, sesi `claude -p` atau SDK menjalankan helper ini tanpa memeriksa kepercayaan, dan sesi interaktif menjalankannya setelah Anda mempercayai folder induk.1128Claude Code menjalankan `headersHelper` sebagai perintah shell arbitrer. Untuk server di `.mcp.json` proyek atau di [cakupan lokal](#local-scope), ini menjalankan helper hanya setelah Anda menerima [dialog kepercayaan](/docs/id/permissions#project-allow-rules-and-workspace-trust) untuk direktori proyek tempat server dideklarasikan. Sebelum v2.1.238, sesi `claude -p` atau SDK menjalankan helper ini tanpa memeriksa kepercayaan, dan sesi interaktif menjalankannya setelah Anda mempercayai folder induk.

1130 1129 

1131* **Kepercayaan yang tidak dihitung**: kepercayaan folder induk, dan kepercayaan otomatis yang diterima sesi `claude -p` atau SDK untuk [hooks di file pengaturan](/docs/id/permissions#what-runs-before-you-trust-a-folder)1130* **Kepercayaan yang tidak dihitung**: kepercayaan folder induk, dan kepercayaan otomatis yang diterima sesi `claude -p` atau SDK untuk [hook di file pengaturan](/docs/id/permissions#what-runs-before-you-trust-a-folder)

1132* **Sampai Anda mempercayai folder**: Claude Code menghubungkan server dengan `headers` statis saja. Dalam sesi `claude -p` atau SDK itu juga mencetak satu baris [`headersHelper not run`](/docs/id/errors#headershelper-not-run) per server ke stderr, memberi tahu Anda cara memberikan kepercayaan.1131* **Sampai Anda mempercayai folder**: Claude Code menghubungkan server dengan `headers` statis saja. Dalam sesi `claude -p` atau SDK ini juga mencetak satu baris [`headersHelper not run`](/docs/id/errors#headershelper-not-run) per server ke stderr, memberi tahu Anda cara memberikan kepercayaan.

1133* **Kepercayaan tanpa dialog**: atur `projects["<path>"].hasTrustDialogAccepted` ke `true` di `~/.claude.json`. `<path>` adalah folder yang [Project allow rules and workspace trust](/docs/id/permissions#project-allow-rules-and-workspace-trust) katakan Claude Code kunci kepercayaan padanya.1132* **Kepercayaan tanpa dialog**: atur `projects["<path>"].hasTrustDialogAccepted` ke `true` di `~/.claude.json`. `<path>` adalah folder yang [Aturan izin proyek dan kepercayaan ruang kerja](/docs/id/permissions#project-allow-rules-and-workspace-trust) katakan Claude Code kunci kepercayaan.

1134 1133 

1135Claude Code menerapkan aturan yang sama ke server yang dideklarasikan inline di [file agen](/docs/id/sub-agents#scope-mcp-servers-to-a-subagent), memeriksa tempat file agen itu berasal: proyek Anda, untuk file di direktori `.claude/agents/` -nya, atau direktori `--add-dir`. Sampai Anda [mempercayai proyek atau direktori itu sendiri](/docs/id/permissions#what-runs-before-you-trust-a-folder), Claude Code tidak memuat server sama sekali, jadi helper-nya tidak pernah berjalan juga.1134Claude Code menerapkan aturan yang sama ke server yang dideklarasikan inline di [file agen](/docs/id/sub-agents#scope-mcp-servers-to-a-subagent), memeriksa di mana file agen itu berasal: proyek Anda, untuk file di direktori `.claude/agents/`-nya, atau direktori `--add-dir`. Sampai Anda [mempercayai proyek atau direktori itu sendiri](/docs/id/permissions#what-runs-before-you-trust-a-folder), Claude Code tidak memuat server sama sekali, jadi helper-nya tidak pernah berjalan juga.

1136 1135 

1137<h2 id="add-mcp-servers-from-json-configuration">1136<h2 id="add-mcp-servers-from-json-configuration">

1138 Tambahkan server MCP dari konfigurasi JSON1137 Tambahkan server MCP dari konfigurasi JSON


1235 </Step>1234 </Step>

1236</Steps>1235</Steps>

1237 1236 

1237Anthropic juga menyediakan beberapa connectors itu sendiri, tanpa Anda atau admin menambahkannya. Pada akun tempat [Claude Docs](/docs/id/artifacts#write-a-document-with-claude-docs) tersedia, `/mcp` mencantumkan `claude.ai Claude Docs` tanpa setup, dan Claude menggunakannya ketika Anda meminta dokumen yang dimaksudkan untuk orang lain. Untuk mematikannya, tambahkan entri `serverName` dari `"claude.ai Claude Docs"` ke `deniedMcpServers` atau gunakan toggle `/mcp`, keduanya dijelaskan dalam [Nonaktifkan connectors claude.ai](#disable-claude-ai-connectors).

1238 

1238Claude Code menandai connector sebagai `managed` di `/mcp` dan di manajer [`/plugin`](/docs/id/plugins/install) ketika organisasi Anda mengelola autentikasinya di claude.ai. Status managed tidak mengubah cara Claude Code terhubung ke connector atau menerapkan [kontrol alat](#organization-controls-on-connector-tools) organisasi Anda.1239Claude Code menandai connector sebagai `managed` di `/mcp` dan di manajer [`/plugin`](/docs/id/plugins/install) ketika organisasi Anda mengelola autentikasinya di claude.ai. Status managed tidak mengubah cara Claude Code terhubung ke connector atau menerapkan [kontrol alat](#organization-controls-on-connector-tools) organisasi Anda.

1239 1240 

1240Connector yang belum pernah Anda masuki dilipat di belakang baris `Show unused connectors` di akhir bagian claude.ai, sehingga daftar yang disediakan organisasi tidak mengisi panel. Pilih baris untuk memperluasnya. Connector yang Anda masuki sebelumnya tetap terlihat bahkan ketika saat ini memerlukan re-autentikasi.1241Connector yang belum pernah Anda masuki dilipat di belakang baris `Show unused connectors` di akhir bagian claude.ai, sehingga daftar yang disediakan organisasi tidak mengisi panel. Pilih baris untuk memperluasnya. Connector yang Anda masuki sebelumnya tetap terlihat bahkan ketika saat ini memerlukan re-autentikasi.


1250 1251 

1251Jika masalah jaringan sementara mencegah daftar connector dimuat saat sesi Anda dimulai, Claude Code mencoba pengambilan hingga tiga kali di latar belakang, dan connector muncul setelah percobaan berhasil. Jika mereka masih belum muncul, mulai ulang Claude Code untuk mengambil daftar lagi.1252Jika masalah jaringan sementara mencegah daftar connector dimuat saat sesi Anda dimulai, Claude Code mencoba pengambilan hingga tiga kali di latar belakang, dan connector muncul setelah percobaan berhasil. Jika mereka masih belum muncul, mulai ulang Claude Code untuk mengambil daftar lagi.

1252 1253 

1253Jika `/mcp` menunjukkan connector sebagai `connected · session token rejected`, atau tampilan detailnya menunjukkan [`claude.ai rejected the session token`](/docs/id/errors#claude-ai-rejected-the-session-token), claude.ai menolak token dari login Claude Code Anda, biasanya karena login kedaluwarsa dan tidak dapat disegarkan. Mengotorisasi connector lagi tidak menghapus status ini, karena otorisasi connector itu sendiri di claude.ai bukan yang ditolak. Untuk menghapusnya:1254Jika `/mcp` menunjukkan connector sebagai `session token rejected`, atau tampilan detailnya menunjukkan [`claude.ai rejected the session token`](/docs/id/errors#claude-ai-rejected-the-session-token), claude.ai menolak token dari login Claude Code Anda. Mengotorisasi connector lagi tidak menghapus status ini, karena otorisasi connector itu sendiri di claude.ai bukan yang ditolak. Untuk menghapusnya:

1254 1255 

12551. Jalankan `/login` untuk masuk lagi.12561. Jalankan `/login` untuk masuk lagi.

12562. Hubungkan kembali connector dari `/mcp`.12572. Hubungkan kembali connector dari `/mcp`.


1290* **Alat diatur ke `blocked`**: Claude Code memfilter alat keluar sebelum Claude melihatnya, jadi tidak pernah muncul dalam daftar alat. Aplikasi desktop dan chat claude.ai menerapkan pengaturan `blocked` yang sama, jadi Claude tidak dapat menggunakan alat di sana juga, dan Anda tidak dapat menahan alat dari sesi aplikasi desktop sambil membuatnya tersedia di chat. Aplikasi desktop melewati connector yang semua alatnya diblokir.1291* **Alat diatur ke `blocked`**: Claude Code memfilter alat keluar sebelum Claude melihatnya, jadi tidak pernah muncul dalam daftar alat. Aplikasi desktop dan chat claude.ai menerapkan pengaturan `blocked` yang sama, jadi Claude tidak dapat menggunakan alat di sana juga, dan Anda tidak dapat menahan alat dari sesi aplikasi desktop sambil membuatnya tersedia di chat. Aplikasi desktop melewati connector yang semua alatnya diblokir.

1291 1292 

1292<h3 id="disable-claude-ai-connectors">1293<h3 id="disable-claude-ai-connectors">

1293 Nonaktifkan connector claude.ai1294 Nonaktifkan connectors claude.ai

1294</h3>1295</h3>

1295 1296 

1296Claude Code menerapkan [`disableClaudeAiConnectors`](/docs/id/settings-reference#disableclaudeaiconnectors) hanya ke connector yang [diambilnya sendiri](#how-connectors-reach-claude-code), bukan ke connector yang dikirimkan host cloud atau aplikasi desktop. Untuk mematikan connector yang diambilnya, atur pengaturan ke `true` dalam cakupan pengaturan apa pun:1297Claude Code menerapkan [`disableClaudeAiConnectors`](/docs/id/settings-reference#disableclaudeaiconnectors) hanya ke connector yang [diambilnya sendiri](#how-connectors-reach-claude-code), bukan ke connector yang dikirimkan host cloud atau aplikasi desktop. Untuk mematikan connector yang diambilnya, atur pengaturan ke `true` dalam cakupan pengaturan apa pun:


1416 Jika Anda sering mengalami peringatan output dengan server MCP tertentu yang tidak Anda kontrol, pertimbangkan untuk meningkatkan batas `MAX_MCP_OUTPUT_TOKENS`. Anda juga dapat meminta penulis server untuk menambahkan anotasi `anthropic/maxResultSizeChars` atau untuk membuat pagina respons mereka. Anotasi tidak berpengaruh pada alat yang mengembalikan konten gambar; untuk itu, menaikkan `MAX_MCP_OUTPUT_TOKENS` adalah satu-satunya pilihan.1417 Jika Anda sering mengalami peringatan output dengan server MCP tertentu yang tidak Anda kontrol, pertimbangkan untuk meningkatkan batas `MAX_MCP_OUTPUT_TOKENS`. Anda juga dapat meminta penulis server untuk menambahkan anotasi `anthropic/maxResultSizeChars` atau untuk membuat pagina respons mereka. Anotasi tidak berpengaruh pada alat yang mengembalikan konten gambar; untuk itu, menaikkan `MAX_MCP_OUTPUT_TOKENS` adalah satu-satunya pilihan.

1417</Warning>1418</Warning>

1418 1419 

1420<h3 id="images-in-tool-results">

1421 Gambar dalam hasil alat

1422</h3>

1423 

1424Ketika alat MCP mengembalikan gambar PNG, JPEG, GIF, atau WebP, Claude melihat gambar secara inline dalam percakapan. Salinan inline mungkin diperkecil atau dikompres agar sesuai dengan batas ukuran gambar model. Claude Code juga menyimpan byte asli ke file di direktori `tool-results` sesi di bawah [`~/.claude/projects/`](/docs/id/claude-directory#cleaned-up-automatically) dan memberikan Claude jalurnya. Claude kemudian dapat memotong, mengonversi, atau menggunakan kembali file resolusi penuh dengan alat seperti Bash.

1425 

1426Jika Anda menonaktifkan persistensi sesi dengan [`--no-session-persistence`](/docs/id/cli-reference#cli-flags) atau [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/id/env-vars), Claude Code tidak menulis file gambar dan Claude hanya menerima salinan inline.

1427 

1428Menyimpan hasil gambar MCP ke file memerlukan Claude Code v2.1.283 atau lebih baru.

1429 

1419<h2 id="tool-input-schemas-with-a-root-level-combinator">1430<h2 id="tool-input-schemas-with-a-root-level-combinator">

1420 Skema input tool dengan combinator tingkat root1431 Skema input tool dengan combinator tingkat root

1421</h2>1432</h2>


1487Server dapat meminta input dengan dua cara:1498Server dapat meminta input dengan dua cara:

1488 1499 

1489* **Form mode**: Claude Code menampilkan dialog dengan bidang formulir yang ditentukan oleh server (misalnya, prompt nama pengguna dan kata sandi). Isi bidang dan kirimkan.1500* **Form mode**: Claude Code menampilkan dialog dengan bidang formulir yang ditentukan oleh server (misalnya, prompt nama pengguna dan kata sandi). Isi bidang dan kirimkan.

1490* **URL mode**: Claude Code membuka URL browser untuk autentikasi atau persetujuan. Selesaikan alur di browser, kemudian konfirmasi di CLI.1501* **URL mode**: Claude Code menanyakan apakah akan membuka tautan di browser Anda dan membukanya ketika Anda menerima. Server menggunakan mode ini untuk alur yang selesai di luar terminal, seperti sign-in.

1491 1502 

1492Dalam URL mode, Claude Code meneruskan URL sebagai argumen baris perintah ke penanganan URL sistem Anda, dan membatasi seberapa lama argumen tersebut dapat diterima. Ketika URL, setelah diloloskan untuk baris perintah, melampaui batas tersebut, Anda hanya dapat menolak permintaan. Setiap karakter yang perlu diloloskan, seperti `%` atau `&`, dihitung empat kali terhadap batas: karakternya sendiri ditambah tiga karakter lolos. URL tanpa karakter tersebut mencapai batas pada sekitar 8.000 karakter. URL yang dibangun sebagian besar dari percent-escapes, di mana setiap karakter ketiga adalah `%`, mencapainya pada kira-kira 4.000.1503Dalam URL mode, Claude Code meneruskan URL sebagai argumen baris perintah ke penanganan URL sistem Anda, dan membatasi seberapa lama argumen tersebut dapat diterima. Ketika URL, setelah diloloskan untuk baris perintah, melampaui batas tersebut, Anda hanya dapat menolak permintaan. Setiap karakter yang perlu diloloskan, seperti `%` atau `&`, dihitung empat kali terhadap batas: karakternya sendiri ditambah tiga karakter lolos. URL tanpa karakter tersebut mencapai batas pada sekitar 8.000 karakter. URL yang dibangun sebagian besar dari percent-escapes, di mana setiap karakter ketiga adalah `%`, mencapainya pada kira-kira 4.000.

1493 1504 


1495 1506 

1496Jika Anda membangun server MCP yang menggunakan elicitation, lihat [spesifikasi elicitation MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) untuk detail protokol dan contoh skema.1507Jika Anda membangun server MCP yang menggunakan elicitation, lihat [spesifikasi elicitation MCP](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation) untuk detail protokol dan contoh skema.

1497 1508 

1509Pada koneksi yang menggunakan [revisi protokol 2026-07-28](#mcp-client-runtimes), Claude Code mendeklarasikan `elicitation: {form: {}, url: {}}` dalam kemampuan kliennya, sehingga server di sana dapat meminta mode apa pun melalui permintaan elicitation standar protokol.

1510 

1498<h2 id="use-mcp-resources">1511<h2 id="use-mcp-resources">

1499 Gunakan sumber daya MCP1512 Gunakan sumber daya MCP

1500</h2>1513</h2>


1540 * Sumber daya dapat berisi jenis konten apa pun yang disediakan server MCP (teks, JSON, data terstruktur, dll.)1553 * Sumber daya dapat berisi jenis konten apa pun yang disediakan server MCP (teks, JSON, data terstruktur, dll.)

1541</Tip>1554</Tip>

1542 1555 

1556Sumber daya UI Aplikasi MCP adalah entri dengan URI `ui://` atau tipe media `text/html;profile=mcp-app`: halaman untuk aplikasi host yang akan dirender daripada konten untuk Claude dibaca. Mereka tidak muncul dalam saran `@` atau dalam hasil alat daftar sumber daya, dan server yang hanya menawarkan sumber daya UI menunjukkan daftar sumber daya kosong. Membaca sumber daya UI berdasarkan URI-nya masih berfungsi.

1557 

1543<h2 id="scale-with-mcp-tool-search">1558<h2 id="scale-with-mcp-tool-search">

1544 Skalakan dengan pencarian tool MCP1559 Skalakan dengan pencarian tool MCP

1545</h2>1560</h2>


1643 1658 

1644Server MCP dapat mengekspos prompts yang menjadi tersedia sebagai perintah di Claude Code.1659Server MCP dapat mengekspos prompts yang menjadi tersedia sebagai perintah di Claude Code.

1645 1660 

1661Prompts dari server bernama `anthropic-skills` tidak muncul, karena Claude Code [mereservasi nama tersebut](/docs/id/skills#names-reserved-for-synced-skills) untuk skills yang disinkronkan dari claude.ai. Tools server masih berfungsi. Ubah nama server di konfigurasi MCP Anda untuk menampilkan promptsnya.

1662 

1646<h3 id="execute-mcp-prompts">1663<h3 id="execute-mcp-prompts">

1647 Jalankan MCP prompts1664 Jalankan MCP prompts

1648</h3>1665</h3>

memory.md +10 −1

Details

103 103 

104**Konsistensi**: jika dua aturan saling bertentangan, Claude mungkin memilih satu secara sewenang-wenang. Tinjau file CLAUDE.md Anda, file CLAUDE.md bersarang di subdirektori, dan [`.claude/rules/`](#organize-rules-with-claude/rules/) secara berkala untuk menghapus instruksi yang ketinggalan zaman atau bertentangan. Dalam monorepo, gunakan [`claudeMdExcludes`](#exclude-specific-claude-md-files) untuk melewati file CLAUDE.md dari tim lain yang tidak relevan dengan pekerjaan Anda.104**Konsistensi**: jika dua aturan saling bertentangan, Claude mungkin memilih satu secara sewenang-wenang. Tinjau file CLAUDE.md Anda, file CLAUDE.md bersarang di subdirektori, dan [`.claude/rules/`](#organize-rules-with-claude/rules/) secara berkala untuk menghapus instruksi yang ketinggalan zaman atau bertentangan. Dalam monorepo, gunakan [`claudeMdExcludes`](#exclude-specific-claude-md-files) untuk melewati file CLAUDE.md dari tim lain yang tidak relevan dengan pekerjaan Anda.

105 105 

106Untuk membuat Claude memeriksa file ini untuk instruksi yang ketinggalan zaman atau bertentangan, jalankan `/doctor prompt-audit` dalam sesi. Claude membaca file CLAUDE.md, CLAUDE.local.md, dan AGENTS.md Anda, ditambah aturan, skills, perintah, subagent, dan gaya output di bawah `.claude/` dan `~/.claude/`. Ini mencari masalah seperti instruksi yang ditulis untuk model yang lebih lama, referensi ke file atau perintah yang tidak ada, dan file yang saling bertentangan. Anda mendapatkan laporan temuan dan serangkaian edit yang diusulkan, dan tidak ada yang berubah dalam file Anda sampai Anda meminta Claude untuk menerapkannya.

107 

108Untuk mengaudit satu file atau direktori sebagai gantinya, berikan jalurnya, misalnya `/doctor prompt-audit .claude/skills/deploy`. Audit berjalan melalui skill `/claude-api` yang disertakan, jadi tidak tersedia saat skill itu dimatikan dalam [`skillOverrides`](/docs/id/skills#override-skill-visibility-from-settings) atau dengan [`disableBundledSkills`](/docs/id/settings-reference#disablebundledskills). `/doctor prompt-audit` memerlukan Claude Code v2.1.283 atau lebih baru.

109 

106<h3 id="import-additional-files">110<h3 id="import-additional-files">

107 Impor file tambahan111 Impor file tambahan

108</h3>112</h3>


273ln -s ~/company-standards/security.md .claude/rules/security.md277ln -s ~/company-standards/security.md .claude/rules/security.md

274```278```

275 279 

280Jika Anda menunjuk symlink `.claude/rules/` atau `CLAUDE.md` ke jalur jaringan seperti UNC share `\\server\share` atau jalur di bawah `/net` atau `/Network`, instruksi yang ditautkan tidak dimuat. Claude Code tidak mengikuti tautan, karena mencari jalur seperti itu dapat menghubungi host yang dinamainya. Jalur `\\wsl$` tidak dihitung sebagai jalur jaringan.

281 

276<h4 id="user-level-rules">282<h4 id="user-level-rules">

277 Aturan tingkat pengguna283 Aturan tingkat pengguna

278</h4>284</h4>


620* 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)).626* 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* Buat instruksi lebih spesifik. "Gunakan indentasi 2 spasi" bekerja lebih baik daripada "format kode dengan baik."627* Buat instruksi lebih spesifik. "Gunakan indentasi 2 spasi" bekerja lebih baik daripada "format kode dengan baik."

622* 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.628* 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.

629* Periksa apakah instruksi Anda bersaing dengan panduan yang ditambahkan Claude Code sendiri. Jika CLAUDE.md Anda menetapkan aturan commit atau pull request, matikan yang bawaan dengan [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) dan atur teks atribusi dengan [`attribution`](/docs/id/settings-reference#attribution).

623 630 

624Jika instruksi adalah sesuatu yang harus berjalan pada titik tertentu, seperti sebelum setiap commit atau setelah setiap pengeditan file, tulislah sebagai [hook](/docs/id/hooks-guide) sebagai gantinya. Hooks dieksekusi sebagai perintah shell pada peristiwa siklus hidup tetap dan berlaku terlepas dari apa yang Claude putuskan untuk lakukan.631Jika instruksi adalah sesuatu yang harus berjalan pada titik tertentu, seperti sebelum setiap commit atau setelah setiap pengeditan file, tulislah sebagai [hook](/docs/id/hooks-guide) sebagai gantinya. Hooks dieksekusi sebagai perintah shell pada peristiwa siklus hidup tetap dan berlaku terlepas dari apa yang Claude putuskan untuk lakukan.

625 632 


657 664 

658File di atas 200 baris mengonsumsi lebih banyak konteks dan dapat mengurangi kepatuhan. Claude Code melewati file di atas 4 MiB. Gunakan [path-scoped rules](#path-specific-rules) untuk memuat instruksi hanya ketika Claude bekerja dengan file yang cocok, atau pangkas konten yang tidak diperlukan dalam setiap sesi. Memisahkan ke dalam [impor `@path`](#import-additional-files) membantu organisasi tetapi tidak mengurangi konteks, karena file yang diimpor dimuat saat peluncuran.665File di atas 200 baris mengonsumsi lebih banyak konteks dan dapat mengurangi kepatuhan. Claude Code melewati file di atas 4 MiB. Gunakan [path-scoped rules](#path-specific-rules) untuk memuat instruksi hanya ketika Claude bekerja dengan file yang cocok, atau pangkas konten yang tidak diperlukan dalam setiap sesi. Memisahkan ke dalam [impor `@path`](#import-additional-files) membantu organisasi tetapi tidak mengurangi konteks, karena file yang diimpor dimuat saat peluncuran.

659 666 

660[`/doctor`](/docs/id/commands#all-commands) checkup mengusulkan pemangkasan untuk CLAUDE.md yang diperiksa: ia memotong konten yang dapat Claude turunkan dari codebase, seperti tata letak direktori, daftar dependensi, dan ikhtisar arsitektur, dan menyimpan jebakan, rasional, dan konvensi yang berbeda dari default alat. Pemeriksaan pemangkasan memerlukan Claude Code v2.1.206 atau lebih baru.667Jika salah satu file instruksi Anda melebihi panjang yang direkomendasikan, Anda akan melihat peringatan saat startup dan saat Anda menjalankan `/status`. Anda juga akan melihat peringatan ketika file yang masing-masing berada dalam panjang tersebut menambah hingga melampaui batas gabungan saat startup sesi. Setiap CLAUDE.md, file rules, dan impor `@path` dihitung sebagai file terpisah.

668 

669Checkup [`/doctor`](/docs/id/commands#all-commands) mengusulkan pemangkasan untuk CLAUDE.md yang diperiksa: ia memotong konten yang dapat Claude turunkan dari codebase, seperti tata letak direktori, daftar dependensi, dan ikhtisar arsitektur, dan menyimpan jebakan, rasional, dan konvensi yang berbeda dari default alat. Pemeriksaan pemangkasan memerlukan Claude Code v2.1.206 atau lebih baru.

661 670 

662<h3 id="instructions-seem-lost-after-/compact">671<h3 id="instructions-seem-lost-after-/compact">

663 Instructions seem lost after `/compact`672 Instructions seem lost after `/compact`

model-config.md +159 −85

Details

39| **`sonnet`** | Menggunakan model Sonnet terbaru untuk tugas-tugas pengkodean sehari-hari |39| **`sonnet`** | Menggunakan model Sonnet terbaru untuk tugas-tugas pengkodean sehari-hari |

40| **`opus`** | Menggunakan model Opus terbaru untuk tugas-tugas penalaran kompleks |40| **`opus`** | Menggunakan model Opus terbaru untuk tugas-tugas penalaran kompleks |

41| **`haiku`** | Menggunakan model Haiku yang cepat dan efisien untuk tugas-tugas sederhana |41| **`haiku`** | Menggunakan model Haiku yang cepat dan efisien untuk tugas-tugas sederhana |

42| **`sonnet[1m]`** | Menggunakan Sonnet dengan [jendela konteks 1 juta token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) untuk sesi panjang. Tidak berpengaruh ketika `sonnet` sudah menyelesaikan ke Sonnet 5 dengan jendela 1M aslinya; di balik [gateway LLM](/docs/id/llm-gateway), memilih jendela 1M untuk Sonnet 5 |42| **`sonnet[1m]`** | Menggunakan Sonnet dengan [jendela konteks 1 juta token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) untuk sesi panjang. Tidak berpengaruh ketika `sonnet` sudah menyelesaikan ke Sonnet 5.5 atau Sonnet 5 dengan jendela 1M aslinya; di balik [gateway LLM](/docs/id/llm-gateway), memilih jendela 1M untuk model itu |

43| **`opus[1m]`** | Menggunakan Opus dengan [jendela konteks 1 juta token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) untuk sesi panjang |43| **`opus[1m]`** | Menggunakan Opus dengan [jendela konteks 1 juta token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) untuk sesi panjang |

44| **`opusplan`** | Mode khusus yang menggunakan `opus` selama plan mode, kemudian beralih ke `sonnet` untuk eksekusi |44| **`opusplan`** | Mode khusus yang menggunakan `opus` selama plan mode, kemudian beralih ke `sonnet` untuk eksekusi |

45 45 


47 47 

48| Penyedia | `opus` | `sonnet` |48| Penyedia | `opus` | `sonnet` |

49| :- | :- | :- |49| :- | :- | :- |

50| Anthropic API | Opus 5.5 | Sonnet 5 |50| Anthropic API | Opus 5.5 | Sonnet 5.5 |

51| [Claude Platform on AWS](/docs/id/claude-platform-on-aws) | Opus 5.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.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" />

56 56 

57Kecuali Anda menetapkan `ANTHROPIC_DEFAULT_FABLE_MODEL`, alias `fable` diselesaikan ke Fable 5.1, kecuali dalam sesi [Claude apps gateway](/docs/id/claude-apps-gateway), di mana `fable` dan `best` diselesaikan ke Fable 5. Sebelum v2.1.257, `fable` diselesaikan ke Fable 5 di setiap penyedia.57Kecuali Anda menetapkan `ANTHROPIC_DEFAULT_FABLE_MODEL`, alias `fable` diselesaikan ke Fable 5.1, kecuali dalam sesi [Claude apps gateway](/docs/id/claude-apps-gateway), di mana `fable` dan `best` diselesaikan ke Fable 5.

58 58 

59Gateway yang tidak dikonfigurasi untuk melayani `claude-fable-5-1` menolak permintaan untuk model itu. Untuk menggunakan Fable 5.1 melalui gateway yang melayaninya, pilih dengan `/model claude-fable-5-1`.59Gateway yang tidak dikonfigurasi untuk melayani `claude-fable-5-1` menolak permintaan untuk model itu. Untuk menggunakan Fable 5.1 melalui gateway yang melayaninya, pilih dengan `/model claude-fable-5-1`.

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.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.63Versi sebelumnya menyelesaikan alias ini ke model yang lebih lama. Untuk versi di mana setiap alias berubah, lihat [Riwayat versi](#version-history).

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-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.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.68 Sonnet 5.5 memerlukan Claude Code v2.1.284 atau lebih baru, dan Opus 5.5 memerlukan v2.1.280 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">


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 

141Di paket Enterprise, ketika Anda masuk dengan akun claude.ai Anda dan menyimpan default dengan `/model`, Claude Code juga mencatat pilihan di akun itu. Ini memerlukan Claude Code v2.1.280 atau lebih baru.

142 

143* Ketika admin Anda belum menetapkan [model default organisasi](#organization-default-model), opsi [Default](#default-model-setting) dapat diselesaikan ke model yang dicatat, dan ketika itu terjadi, baris Default di pemilih `/model` menampilkan nama model itu.

144* Jika [pembatasan model](#restrict-model-selection) mengecualikan model yang dicatat atau tidak tersedia untuk akun Anda, dan admin Anda belum menetapkan model default organisasi, opsi Default diselesaikan seolah-olah tidak ada yang dicatat.

145* Jika Anda memilih Default atau `opusplan` di `/model`, pilihan yang dicatat tidak berubah.

146 

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.147Jika 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 148 

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.149Jika 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.


215 221 

216* Anda menetapkannya ke `default`, `inherit`, `opusplan`, atau `haiku`222* Anda menetapkannya ke `default`, `inherit`, `opusplan`, atau `haiku`

217* [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) aktif223* [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) aktif

218* [`availableModels`](#restrict-model-selection) atau [pembatasan model organisasi](#organization-model-restrictions) mengecualikan model224* Organisasi Anda [pembatasan model](#restrict-model-selection) mengecualikan model

219* Model tidak tersedia untuk akun Anda225* Model tidak tersedia untuk akun Anda

220 226 

221Ketika sesi baru akan dimulai di model variabel, sesi yang Anda lanjutkan dengan `claude --resume`, `--continue`, atau pemilih `/resume` dimulai di sana juga. Claude Code tidak memulihkan model yang disimpan dalam transkrip sesi itu. Jika tidak, Claude Code tidak menggunakan variabel ketika Anda [melanjutkan sesi](#setting-your-model).227Ketika sesi baru akan dimulai di model variabel, sesi yang Anda lanjutkan dengan `claude --resume`, `--continue`, atau pemilih `/resume` dimulai di sana juga. Claude Code tidak memulihkan model yang disimpan dalam transkrip sesi itu. Jika tidak, Claude Code tidak menggunakan variabel ketika Anda [melanjutkan sesi](#setting-your-model).


235 Batasi pemilihan model241 Batasi pemilihan model

236</h2>242</h2>

237 243 

238Administrator enterprise dapat menggunakan `availableModels` dalam [pengaturan terkelola atau kebijakan](/docs/id/managed-settings) untuk membatasi model mana yang dapat dipilih pengguna. Entri cocok dengan keluarga model seperti `sonnet`, awalan versi seperti `claude-sonnet-4-5`, atau ID model lengkap seperti `claude-sonnet-4-5-20250929`. Awalan versi juga cocok dengan ID model yang lebih baru yang memperpanjangnya dengan segmen lain, jadi `claude-fable-5` memungkinkan Fable 5 dan Fable 5.1, sementara `claude-fable-5-1` memungkinkan Fable 5.1 saja.244Administrator enterprise dapat menggunakan `availableModels` dalam [pengaturan terkelola atau kebijakan](/docs/id/managed-settings) untuk membatasi model mana yang dapat dipilih pengguna. Entri cocok dengan keluarga model seperti `sonnet`, awalan versi seperti `claude-sonnet-4-5`, atau ID model lengkap seperti `claude-sonnet-4-5-20250929`. Awalan versi juga cocok dengan ID model yang lebih baru yang memperpanjangnya dengan segmen lain, jadi `claude-fable-5` memungkinkan Fable 5 dan Fable 5.1, sementara `claude-fable-5-1` memungkinkan Fable 5.1 saja. Untuk memblokir model yang diizinkan daftar, atau untuk membuat setiap entri ID model hanya memungkinkan versi yang dinamainya, lihat [Blokir model atau versi spesifik](#block-specific-models-or-versions).

239 245 

240Pada platform yang menyematkan Claude Code dan menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars), konfigurasi model host mengambil alih pengaturan model terkelola, sementara daftar izin `availableModels` terkelola tetap berlaku kecuali host menyediakan miliknya sendiri; [Pengecualian untuk prioritas pengaturan terkelola](/docs/id/settings#exceptions-to-managed-settings-precedence) mengatakan kunci dan variabel mana yang ditimpa host.246Pada platform yang menyematkan Claude Code dan menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars), konfigurasi model host mengambil alih pengaturan model terkelola, sementara daftar izin `availableModels` terkelola tetap berlaku kecuali host menyediakan miliknya sendiri; [Pengecualian terhadap prioritas pengaturan terkelola](/docs/id/settings#exceptions-to-managed-settings-precedence) mengatakan kunci dan variabel mana yang ditimpa host.

241 247 

242Ketika `availableModels` diatur, daftar izin berlaku di mana pun pengguna dapat menentukan model:248Ketika `availableModels` diatur, daftar izin berlaku di mana pun pengguna dapat menentukan model:

243 249 


245* **Resolusi alias**: variabel lingkungan `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, dan `ANTHROPIC_DEFAULT_FABLE_MODEL` tidak dapat mengarahkan ulang alias yang diizinkan ke model di luar daftar251* **Resolusi alias**: variabel lingkungan `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, dan `ANTHROPIC_DEFAULT_FABLE_MODEL` tidak dapat mengarahkan ulang alias yang diizinkan ke model di luar daftar

246* **Mode cepat**: `/fast` menolak untuk beralih ketika itu akan secara implisit beralih ke model Opus di luar daftar, dengan pesan "is not in your organization's allowed models"252* **Mode cepat**: `/fast` menolak untuk beralih ketika itu akan secara implisit beralih ke model Opus di luar daftar, dengan pesan "is not in your organization's allowed models"

247* **Model subagent dan rekan kerja**: bidang `model` dalam frontmatter [subagent](/docs/id/sub-agents#choose-a-model), parameter `model` alat Agent, model rekan kerja [tim agent](/docs/id/agent-teams#specify-teammates-and-models), `CLAUDE_CODE_SUBAGENT_MODEL`, dan, pada v2.1.197 dan lebih awal, pemilih model dalam wizard `/agents`&#x20;253* **Model subagent dan rekan kerja**: bidang `model` dalam frontmatter [subagent](/docs/id/sub-agents#choose-a-model), parameter `model` alat Agent, model rekan kerja [tim agent](/docs/id/agent-teams#specify-teammates-and-models), `CLAUDE_CODE_SUBAGENT_MODEL`, dan, pada v2.1.197 dan lebih awal, pemilih model dalam wizard `/agents`&#x20;

248* **Model skill dan perintah**: frontmatter `model` dalam [skills dan commands](/docs/id/skills)254* **Model skill dan perintah**: frontmatter `model` dalam [skills dan perintah](/docs/id/skills)

249* **Model advisor**: pengaturan [`advisorModel`](/docs/id/advisor) yang dikonfigurasi dan bendera `--advisor`255* **Model advisor**: pengaturan [`advisorModel`](/docs/id/advisor) yang dikonfigurasi dan bendera `--advisor`

250* **Model agent latar belakang**: model yang dipilih dalam [pemilih dispatch](/docs/id/agent-view)256* **Model agent latar belakang**: model yang dipilih dalam [pemilih dispatch](/docs/id/agent-view)

251 257 

252Pada Anthropic API dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws), alias keluarga model, `opus`, `sonnet`, `haiku`, atau `fable`, diselesaikan ke model biasanya ketika daftar izin memungkinkan model itu. Ketika daftar izin memblokir model itu, Claude Code mengganti versi terbaru keluarga yang daftar izin izinkan dan menampilkan pemberitahuan yang menyebutkan model yang diminta dan diganti. Dengan `["sonnet", "claude-opus-4-6"]`, misalnya, baik `/model opus` maupun `--model opus` memilih Claude Opus 4.6, Opus terbaru yang diizinkan. Sebelum v2.1.205, alias yang versi rilis terbarunya berada di luar daftar ditolak atau diganti seperti pemilihan terblokir lainnya, bahkan ketika daftar memungkinkan versi yang lebih lama.258Pada Anthropic API dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws), alias keluarga model, `opus`, `sonnet`, `haiku`, atau `fable`, diselesaikan ke model biasanya ketika daftar izin memungkinkan model itu. Ketika daftar izin memblokir model itu, Claude Code mengganti versi terbaru keluarga yang diizinkan daftar izin dan menampilkan pemberitahuan yang menyebutkan model yang diminta dan diganti. Dengan `["sonnet", "claude-opus-4-6"]`, misalnya, baik `/model opus` maupun `--model opus` memilih Claude Opus 4.6, Opus terbaru yang diizinkan. Sebelum v2.1.205, alias yang versi rilis terbarunya berada di luar daftar ditolak atau diganti seperti pemilihan terblokir lainnya, bahkan ketika daftar memungkinkan versi yang lebih lama.

253 259 

254Substitusi membutuhkan versi yang diizinkan untuk mendarat: ketika daftar izin tidak memungkinkan versi apa pun dari keluarga alias, alias mengikuti perilaku penolakan dan penggantian di bawah seperti nilai terblokir lainnya.260Substitusi memerlukan versi yang diizinkan untuk mendarat: ketika daftar izin tidak memungkinkan versi apa pun dari keluarga alias, alias mengikuti perilaku penolakan dan penggantian di bawah seperti nilai terblokir lainnya.

255 261 

256Claude Code menangani pemilihan terblokir lainnya sesuai dengan tempat model diatur:262Claude Code menangani pemilihan terblokir lainnya sesuai dengan tempat model diatur:

257 263 


260* **[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)**: Claude Code mengabaikan variabel266* **[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)**: Claude Code mengabaikan variabel

261* **Penggantian subagent atau rekan kerja**: Claude Code menjalankan subagent atau rekan kerja pada model fallback daripada gagal permintaan. Lihat [Pilih model](/docs/id/sub-agents#choose-a-model) untuk fallback subagent dan [Tentukan rekan kerja dan model](/docs/id/agent-teams#specify-teammates-and-models) untuk fallback rekan kerja.267* **Penggantian subagent atau rekan kerja**: Claude Code menjalankan subagent atau rekan kerja pada model fallback daripada gagal permintaan. Lihat [Pilih model](/docs/id/sub-agents#choose-a-model) untuk fallback subagent dan [Tentukan rekan kerja dan model](/docs/id/agent-teams#specify-teammates-and-models) untuk fallback rekan kerja.

262 268 

263 Dalam sesi interaktif, Claude Code memperingatkan Anda ketika mengganti model subagent, dengan fallback ini atau dengan substitusi versi-terbaru-yang-diizinkan di atas, menyebutkan model yang diminta dan diganti; itu tidak melaporkan fallback rekan kerja.269 Dalam sesi interaktif, Claude Code memperingatkan Anda ketika mengganti model subagent, oleh fallback ini atau oleh substitusi versi-terbaru-yang-diizinkan di atas, menyebutkan model yang diminta dan diganti; itu tidak melaporkan fallback rekan kerja.

264 270 

265 Di mana substitusi versi-terbaru-yang-diizinkan di atas beroperasi, alias keluarga terblokir mengikutinya. Sebelum v2.1.222, alias jatuh kembali seperti nilai terblokir lainnya di setiap penyedia271 Di mana substitusi versi-terbaru-yang-diizinkan di atas beroperasi, alias keluarga terblokir mengikutinya. Sebelum v2.1.222, alias jatuh kembali seperti nilai terblokir lainnya pada setiap penyedia

266* **Penggantian skill atau perintah**: Claude Code mengabaikan penggantian, termasuk alias keluarga terblokir, dan skill atau perintah berjalan pada model sesi. Skill atau perintah yang [berjalan dalam subagent](/docs/id/skills#run-skills-in-a-subagent) mengikuti perilaku subagent di atas272* **Penggantian skill atau perintah**: Claude Code mengabaikan penggantian, termasuk alias keluarga terblokir, dan skill atau perintah berjalan pada model sesi. Skill atau perintah yang [berjalan dalam subagent](/docs/id/skills#run-skills-in-a-subagent) mengikuti perilaku subagent di atas

267* **Pengaturan `advisorModel`**: advisor dinonaktifkan untuk sesi273* **Pengaturan `advisorModel`**: advisor dinonaktifkan untuk sesi

268* **Bendera `--advisor`**: Claude Code keluar dengan kesalahan saat peluncuran. Dalam [sesi latar belakang](/docs/id/agent-view), itu memulai sesi tanpa advisor daripada keluar274* **Bendera `--advisor`**: Claude Code keluar dengan kesalahan saat peluncuran. Dalam [sesi latar belakang](/docs/id/agent-view), itu memulai sesi tanpa advisor daripada keluar

269 275 

270Claude Code menyembunyikan model yang dikecualikan dari pemilih `/model`. ID model lengkap dalam daftar yang tidak memiliki baris pemilih bawaan, seperti versi yang lebih lama yang daftar pin, muncul dalam pemilih `/model` sebagai baris berlabel miliknya sendiri, kecuali Claude Code mengganti opsi bawaan dengan lineup [`modelPicker`](/docs/id/settings-reference#modelpicker). Sebelum v2.1.199, ID tersebut hanya dapat dipilih dengan mengetik `/model <id>`.276Claude Code menyembunyikan model yang dikecualikan dari pemilih `/model`. ID model lengkap dalam daftar yang tidak memiliki baris pemilih bawaan, seperti versi yang lebih lama yang disematkan daftar, muncul dalam pemilih `/model` sebagai baris berlabel miliknya sendiri, kecuali Claude Code mengganti opsi bawaan dengan lineup [`modelPicker`](/docs/id/settings-reference#modelpicker). Sebelum v2.1.199, ID tersebut hanya dapat dipilih dengan mengetik `/model <id>`.

271 277 

272Perubahan model yang Claude Code buat atas nama Anda diperiksa dengan cara yang sama:278Perubahan model yang dilakukan Claude Code atas nama Anda diperiksa dengan cara yang sama:

273 279 

274* **[Rantai model fallback](#fallback-model-chains)**: entri di luar daftar izin dijatuhkan280* **[Rantai model fallback](#fallback-model-chains)**: entri di luar daftar izin dijatuhkan

275* **Upgrade mode plan**: pada Anthropic API dan Claude Platform on AWS, upgrade seperti [`opusplan`](#opusplan-model-setting) ke model yang dikecualikan menggunakan versi terbaru keluarga upgrade yang diizinkan. Pada penyedia dengan ID model khusus penyedia, dan ketika tidak ada versi yang diizinkan, upgrade dilewati dan perencanaan berlanjut pada model sesi281* **Upgrade mode plan**: pada Anthropic API dan Claude Platform on AWS, upgrade seperti [`opusplan`](#opusplan-model-setting) ke model yang dikecualikan menggunakan versi terbaru keluarga upgrade yang diizinkan. Pada penyedia dengan ID model khusus penyedia, dan ketika tidak ada versi yang diizinkan, upgrade dilewati dan perencanaan berlanjut pada model sesi.

276* **[Fallback model otomatis](#automatic-model-fallback)**: fallback yang targetnya dikecualikan tidak berjalan, jadi permintaan yang ditandai berakhir dengan penolakan282* **[Fallback model otomatis](#automatic-model-fallback)**: fallback yang targetnya dikecualikan tidak berjalan, jadi permintaan yang ditandai berakhir dengan penolakan

277* **[Pengklasifikasi mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode)**: default Claude Sonnet 5 pengklasifikasi hanya berlaku ketika daftar izin memungkinkan Sonnet 5. Ketika dikecualikan, pengklasifikasi berjalan pada model sesi, yang daftar izin sudah mengatur, atau pada model Opus ketika sesi berjalan pada [model Fable](#work-with-fable). Pada penyedia selain Anthropic API, fallback Opus itu berjalan pada model Opus default penyedia tanpa berkonsultasi dengan daftar izin. Memerlukan Claude Code v2.1.210 atau lebih baru283* **[Pengklasifikasi mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode)**: default Claude Sonnet 5 pengklasifikasi hanya berlaku ketika daftar izin memungkinkan Sonnet 5. Ketika dikecualikan, pengklasifikasi berjalan pada model sesi, yang daftar izin sudah mengatur, atau pada model Opus ketika sesi berjalan pada [model Fable](#work-with-fable). Pada penyedia selain Anthropic API, fallback Opus itu berjalan pada model Opus default penyedia tanpa berkonsultasi dengan daftar izin. Memerlukan Claude Code v2.1.210 atau lebih baru

278* **[Mode cepat](/docs/id/fast-mode)**: mengaktifkan mode cepat ditolak ketika model yang sesi jalankan setelahnya berada di luar daftar izin284* **[Mode cepat](/docs/id/fast-mode)**: mengaktifkan mode cepat ditolak ketika model yang akan dijalankan sesi setelahnya berada di luar daftar izin

279 285 

280```json theme={null}286```json theme={null}

281{287{


291 297 

292| Mekanisme pengiriman | CLI dan IDE | Sesi lokal desktop | Sesi web, mobile, dan cloud | Agent SDK dan non-interaktif | Cowork |298| Mekanisme pengiriman | CLI dan IDE | Sesi lokal desktop | Sesi web, mobile, dan cloud | Agent SDK dan non-interaktif | Cowork |

293| :- | :- | :- | :- | :- | :- |299| :- | :- | :- | :- | :- | :- |

294| [Pengaturan terkelola server](/docs/id/server-managed-settings) dari konsol admin | Diberlakukan | Diberlakukan | Diberlakukan | Diberlakukan | Tidak dikirim |300| [Pengaturan terkelola server](/docs/id/server-managed-settings) dari konsol admin | Diberlakukan | Diberlakukan | Diberlakukan, kecuali dalam sesi [Claude Tag](https://claude.com/docs/claude-tag/overview) | Diberlakukan | Tidak dikirimkan |

295| [File MDM atau pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms) | Diberlakukan | Diberlakukan | Tidak dikirim di lingkungan yang dihosting Anthropic; di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments), diberlakukan dari gambar runner per [bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) | Diberlakukan | Diberlakukan di mana pun digunakan |301| [File MDM atau pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms) | Diberlakukan | Diberlakukan | Tidak dikirimkan di lingkungan yang dihosting Anthropic; di [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments), diberlakukan dari gambar runner per [bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) | Diberlakukan | Diberlakukan di mana diterapkan |

296 302 

297* Sesi cloud, di [Claude Code di web](/docs/id/claude-code-on-the-web) atau di aplikasi Desktop, berjalan pada VM yang dikelola Anthropic secara default: pengaturan yang digunakan pada perangkat Anda tidak mencapainya, jadi kirimkan daftar izin melalui pengaturan terkelola server. Sesi yang organisasi Anda arahkan ke [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments) berjalan pada komputasi Anda sendiri dan juga membaca file pengaturan terkelola dalam gambar runner. [Bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku. Perubahan model pertengahan sesi dalam sesi cloud ditolak ketika model yang diminta dikecualikan oleh daftar izin. Ketika daftar `availableModels` dalam pengaturan terkelola server Anda tidak kosong, server menolak permintaan pengguna untuk memulai sesi cloud pada model yang daftar kecualikan.303* [Sesi cloud](/docs/id/claude-code-on-the-web), termasuk yang Anda mulai dari aplikasi Desktop, berjalan pada VM yang dikelola Anthropic secara default: pengaturan yang diterapkan ke perangkat Anda tidak mencapainya, jadi kirimkan daftar izin melalui pengaturan terkelola server. Sesi yang organisasi Anda arahkan ke [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments) berjalan pada komputasi Anda sendiri dan juga membaca file pengaturan terkelola dalam gambar runner. [Bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku. Perubahan model pertengahan sesi dalam sesi cloud ditolak ketika model yang diminta dikecualikan oleh daftar izin. Ketika daftar `availableModels` dalam pengaturan terkelola server Anda tidak kosong, server menolak permintaan untuk memulai sesi cloud pada model yang daftar kecualikan.

298* Cowork, tab pekerjaan agentic di aplikasi Claude Desktop, menjalankan sesinya di Claude Code tetapi, dengan desain, tidak menerima pengaturan terkelola server dari konsol admin claude.ai. File pengaturan terkelola berlaku untuk sesi Cowork ketika ada di mana sesi berjalan; sesi Cowork jarak jauh berjalan pada VM yang dikelola Anthropic, di mana file yang digunakan perangkat tidak ada.304* [Claude Tag](https://claude.com/docs/claude-tag/overview) sesi berjalan di lingkungan cloud tetapi tidak menerima pengaturan terkelola server; dalam [lingkungan yang dihosting sendiri](/docs/id/self-hosted-environments), mereka masih membaca file pengaturan terkelola dalam gambar runner. Untuk menetapkan model untuk sesi tersebut, lihat [Pilih model untuk cakupan](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) dalam panduan admin Claude Tag.

305* Cowork, tab pekerjaan agentic dalam aplikasi Claude Desktop, menjalankan sesinya pada Claude Code tetapi, dengan desain, tidak menerima pengaturan terkelola server dari konsol admin claude.ai. File pengaturan terkelola berlaku untuk sesi Cowork ketika ada di mana sesi berjalan; sesi Cowork jarak jauh berjalan pada VM yang dikelola Anthropic, di mana file yang diterapkan perangkat tidak ada.

299* Sesi pada [penyedia pihak ketiga](/docs/id/server-managed-settings#platform-availability) seperti Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) tidak menerima pengaturan terkelola server, jadi kirimkan daftar izin melalui file MDM atau pengaturan terkelola di sana.306* Sesi pada [penyedia pihak ketiga](/docs/id/server-managed-settings#platform-availability) seperti Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws) tidak menerima pengaturan terkelola server, jadi kirimkan daftar izin melalui file MDM atau pengaturan terkelola di sana.

300* Pengiriman terkelola server juga memerlukan sesi untuk mengautentikasi dengan [login atau kunci yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Armada yang menghasilkan kunci hanya melalui skrip [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) harus mengirimkan daftar izin melalui file MDM atau pengaturan terkelola.307* Pengiriman terkelola server juga memerlukan sesi untuk mengautentikasi dengan [login atau kunci yang memenuhi syarat](/docs/id/server-managed-settings#platform-availability). Armada yang menghasilkan kunci hanya melalui skrip [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper) harus mengirimkan daftar izin melalui file MDM atau pengaturan terkelola.

301* Tab Desktop Code juga menghosting [sesi SSH](/docs/id/desktop#ssh-sessions), yang membaca file pengaturan terkelola dari host jarak jauh tempat mereka berjalan. Lihat [Pengaturan terkelola Desktop](/docs/id/desktop#managed-settings).308* Tab Desktop Code juga menghosting [sesi SSH](/docs/id/desktop#ssh-sessions), yang membaca file pengaturan terkelola dari host jarak jauh tempat mereka berjalan. Lihat [Pengaturan terkelola desktop](/docs/id/desktop#managed-settings).

302* Pemilih model di claude.ai dan di aplikasi Desktop menyembunyikan atau memudarkan model yang dikecualikan oleh daftar izin organisasi Anda. Status pemilih adalah kenyamanan bagi pengguna; penegakan terjadi dalam sesi.309* Pemilih model pada claude.ai dan dalam aplikasi Desktop menyembunyikan atau memudarkan model yang dikecualikan oleh daftar izin organisasi Anda. Status pemilih adalah kenyamanan bagi pengguna; itu tidak memberlakukan daftar izin.

303 310 

304<h3 id="default-model-behavior">311<h3 id="default-model-behavior">

305 Perilaku model default312 Perilaku model default

306</h3>313</h3>

307 314 

308Dengan sendirinya, `availableModels` meninggalkan opsi Default pada [default runtime](#default-model-setting) sistem untuk akun sampai Anda juga menetapkan [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model). Jika default itu adalah model yang ingin Anda batasi, atur `enforceAvailableModels` juga.315Dengan pencocokan awalan default, `availableModels` sendiri meninggalkan opsi Default pada [default runtime](#default-model-setting) sistem untuk akun sampai Anda juga menetapkan [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model). Jika default itu adalah model yang Anda maksudkan untuk membatasi, atur `enforceAvailableModels` juga, atau [blokir model itu](#block-specific-models-or-versions).

309 316 

310Array `availableModels` kosong tidak pernah melibatkan penegakan model Default: dengan `availableModels: []`, pemilihan model bernama diblokir tetapi model Default untuk tipe akun tetap dapat digunakan terlepas dari `enforceAvailableModels`.317Dengan `availableModels: []`, pemilihan model bernama diblokir dan `enforceAvailableModels` tidak berpengaruh.

311 318 

312<h3 id="enforce-the-allowlist-for-the-default-model">319<h3 id="enforce-the-allowlist-for-the-default-model">

313 Berlakukan daftar izin untuk model Default320 Berlakukan daftar izin untuk model Default


322}329}

323```330```

324 331 

325Opsi Default diselesaikan ke default tipe akun, atau ke [model default organisasi](#organization-default-model) ketika admin telah menetapkan satu. Ketika model itu tidak dalam daftar izin, opsi Default malah diselesaikan ke entri `availableModels` pertama yang menyebutkan model yang diizinkan dan tersedia, dan baris Default pemilih `/model` menunjukkan model itu. Ini berlaku di mana pun default dicapai: startup sesi, memilih Default di `/model`, kata kunci `"default"` dalam [rantai model fallback](#fallback-model-chains), dan fallback yang digunakan ketika pemilihan yang dikecualikan dijatuhkan.332Untuk anggota tanpa model [tercatat di akun mereka](#setting-your-model), opsi Default diselesaikan ke default tipe akun, atau ke [model default organisasi](#organization-default-model) ketika admin telah menetapkan satu. Ketika model itu tidak dalam daftar izin, opsi Default malah diselesaikan ke entri `availableModels` pertama yang menyebutkan model yang diizinkan dan tersedia, dan baris Default pemilih `/model` menunjukkan model itu. Ini berlaku di mana pun default dicapai: startup sesi, memilih Default dalam `/model`, kata kunci `"default"` dalam [rantai model fallback](#fallback-model-chains), dan fallback yang digunakan ketika pemilihan yang dikecualikan dijatuhkan. Model yang tercatat di akun anggota juga diperiksa terhadap `availableModels`; [Menetapkan model Anda](#setting-your-model) menjelaskan bagaimana opsi Default memperlakukannya.

326 333 

327`enforceAvailableModels` memetakan ulang opsi Default hanya ketika `availableModels` tidak kosong. Dengan `availableModels: []`, model Default untuk tipe akun tetap dapat digunakan, jadi pengaturan tidak dapat mengunci pengguna dari setiap model. Ketika `availableModels` tidak kosong tetapi tidak ada entri yang diselesaikan ke model yang diizinkan dan tersedia, penegakan dilewati dan Default diselesaikan ke default tipe akun, dengan peringatan yang terlihat hanya di bawah `--debug`. Pertahankan setidaknya satu entri yang dijamin tersedia dalam daftar untuk menghindari ini.334`enforceAvailableModels` memetakan ulang opsi Default hanya ketika `availableModels` tidak kosong. Ketika `availableModels` tidak kosong tetapi tidak ada entri yang diselesaikan ke model yang diizinkan dan tersedia, penegakan dilewati dengan peringatan yang terlihat hanya di bawah `--debug`. Pertahankan setidaknya satu entri yang dijamin tersedia dalam daftar untuk menghindari ini.

328 335 

329Gunakan kedua kunci bersama dalam sumber terkelola dengan peringkat tertinggi yang Anda kirimkan. Secara default Claude Code hanya membaca sumber itu, jadi pasangan yang ditempatkan dalam file pengaturan terkelola diabaikan ketika konsol admin mengirimkan pengaturan apa pun; di bawah penggabungan opt-in dalam [bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources), Claude Code masih mengabaikan peta `modelOverrides` dari sumber yang diperingkat di bawah yang menetapkan `availableModels`.336Terapkan kedua kunci bersama dalam sumber terkelola peringkat tertinggi yang Anda kirimkan. Secara default Claude Code hanya membaca sumber itu, jadi pasangan yang ditempatkan dalam file pengaturan terkelola diabaikan ketika konsol admin mengirimkan pengaturan apa pun; di bawah penggabungan opt-in dalam [bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources), Claude Code masih mengabaikan peta `modelOverrides` dari sumber yang diperingkat di bawah yang menetapkan `availableModels`.

330 337 

331<h3 id="control-the-model-users-run-on">338<h3 id="control-the-model-users-run-on">

332 Kontrol model yang dijalankan pengguna339 Kontrol model yang dijalankan pengguna

333</h3>340</h3>

334 341 

335Pengaturan `model` adalah pemilihan awal, bukan penegakan. Ini menetapkan model mana yang aktif ketika sesi dimulai, tetapi pengguna masih dapat membuka `/model` dan memilih Default, yang diselesaikan ke [default runtime](#default-model-setting) sistem terlepas dari apa yang `model` diatur, kecuali [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) mengarahkan ulangnya.342Pengaturan `model` adalah pemilihan awal, bukan penegakan. Itu menetapkan model mana yang aktif ketika sesi dimulai, tetapi pengguna masih dapat membuka `/model` dan memilih Default, yang diselesaikan ke [default runtime](#default-model-setting) sistem terlepas dari apa yang `model` diatur, kecuali [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) atau [kunci yang memblokir versi spesifik](#block-specific-models-or-versions) berlaku untuk itu.

336 343 

337Untuk sepenuhnya mengontrol pengalaman model, gabungkan pengaturan ini:344Untuk sepenuhnya mengontrol pengalaman model, gabungkan pengaturan ini:

338 345 

339* **`availableModels`**: membatasi model bernama mana yang dapat dialihkan pengguna346* **`availableModels`**: membatasi model bernama mana yang dapat dialihkan pengguna

340* **`enforceAvailableModels`**: memperluas daftar izin `availableModels` ke opsi Default, jadi Default tidak dapat diselesaikan ke model di luar daftar347* **`enforceAvailableModels`**: memperluas daftar izin `availableModels` ke opsi Default, jadi Default tidak dapat diselesaikan ke model di luar daftar

348* **`deniedModels`** dan **`availableModelsMatch`**: [blokir versi spesifik](#block-specific-models-or-versions) yang entri `availableModels` akan memungkinkan

341* **`model`**: menetapkan pemilihan model awal ketika sesi dimulai349* **`model`**: menetapkan pemilihan model awal ketika sesi dimulai

342* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**: mengontrol apa yang alias `sonnet`, `opus`, `haiku`, dan `fable` diselesaikan, dan versi mana yang [default tipe akun](#default-model-setting) gunakan350* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**: mengontrol apa yang diselesaikan alias `sonnet`, `opus`, `haiku`, dan `fable`, dan versi mana yang digunakan [default tipe akun](#default-model-setting)

343 351 

344Contoh ini memulai pengguna di Sonnet 4.5, membatasi pemilih ke Sonnet dan Haiku, dan memastikan Default diselesaikan ke model dalam daftar izin daripada default tier:352Contoh ini memulai pengguna pada Sonnet 4.5, membatasi pemilih ke Sonnet dan Haiku, dan memastikan Default diselesaikan ke model dalam daftar izin daripada default tier:

345 353 

346```json theme={null}354```json theme={null}

347{355{


354}362}

355```363```

356 364 

357Tanpa `enforceAvailableModels` atau blok `env`, pengguna yang memilih Default dalam pemilih mendapatkan [default runtime](#default-model-setting) daripada versi yang disematkan dalam `model`. Dua pengaturan mencakup cakupan berbeda: `enforceAvailableModels` membuat Default mematuhi daftar izin, sementara blok `env` menyematkan versi mana alias yang diizinkan seperti `sonnet` diselesaikan. Gunakan `enforceAvailableModels` saja ketika membatasi keluarga model cukup; tambahkan blok `env` ketika Anda juga perlu menyematkan versi tertentu.365Tanpa `enforceAvailableModels` atau blok `env`, pengguna yang memilih Default dalam pemilih mendapatkan [default runtime](#default-model-setting) daripada versi yang disematkan dalam `model`. Dua pengaturan mencakup cakupan berbeda: `enforceAvailableModels` membuat Default mematuhi daftar izin, sementara blok `env` menyematkan versi mana yang diselesaikan alias yang diizinkan seperti `sonnet`. Gunakan `enforceAvailableModels` saja ketika membatasi keluarga model cukup; tambahkan blok `env` ketika Anda juga perlu menyematkan versi spesifik.

358 366 

359<h3 id="merge-behavior">367<h3 id="merge-behavior">

360 Perilaku penggabungan368 Perilaku penggabungan

361</h3>369</h3>

362 370 

363Ketika pengaturan terkelola yang Claude Code terapkan mendefinisikan `availableModels`, daftar itu saja berlaku, terlepas dari [platform host yang menyediakan miliknya sendiri](/docs/id/settings#exceptions-to-managed-settings-precedence): entri dalam pengaturan pengguna, proyek, atau lokal tidak dapat memperpanjangnya, dan Claude Code tidak pernah menggabungkan `availableModels` di seluruh sumber terkelola; [bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan daftar sumber mana yang berlaku. Jika tidak, daftar dari pengaturan pengguna, proyek, dan lokal [digabungkan dan dideduplikasi](/docs/id/settings#settings-precedence) seperti pengaturan array lainnya. Sebelum Claude Code v2.1.175, entri dari cakupan prioritas lebih rendah digabungkan ke dalam daftar terkelola daripada diganti olehnya.371Ketika pengaturan terkelola yang diterapkan Claude Code mendefinisikan `availableModels`, daftar itu saja berlaku, terlepas dari [platform host yang menyediakan miliknya sendiri](/docs/id/settings#exceptions-to-managed-settings-precedence): entri dalam pengaturan pengguna, proyek, atau lokal tidak dapat memperpanjangnya, dan Claude Code tidak pernah menggabungkan `availableModels` di seluruh sumber terkelola; [bagaimana Claude Code menggabungkan sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan daftar sumber mana yang berlaku. Jika tidak, daftar dari pengaturan pengguna, proyek, dan lokal adalah [digabungkan dan dideduplikasi](/docs/id/settings#settings-precedence) seperti pengaturan array lainnya. Sebelum Claude Code v2.1.175, entri dari cakupan prioritas lebih rendah digabungkan ke dalam daftar terkelola daripada diganti olehnya.

364 372 

365Dalam daftar efektif, entri yang menyebutkan model tertentu dalam keluarga, baik awalan versi atau ID model lengkap, menonaktifkan entri wildcard keluarga itu: `["sonnet", "claude-sonnet-4-5"]` memungkinkan hanya versi Sonnet 4.5, bukan setiap model Sonnet.373Dalam daftar efektif, entri yang menyebutkan model spesifik dalam keluarga, baik awalan versi maupun ID model lengkap, menonaktifkan entri wildcard keluarga itu: `["sonnet", "claude-sonnet-4-5"]` memungkinkan hanya versi Sonnet 4.5, bukan setiap model Sonnet.

366 374 

367<h3 id="mantle-model-ids">375<h3 id="mantle-model-ids">

368 ID model Mantle376 ID model Mantle

369</h3>377</h3>

370 378 

371Ketika [titik akhir Amazon Bedrock Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) diaktifkan, entri dalam `availableModels` yang dimulai dengan `anthropic.` ditambahkan ke pemilih `/model` sebagai opsi khusus dan dialihkan ke titik akhir Mantle. Ini adalah pengecualian untuk pencocokan alias yang dijelaskan dalam [Sematkan model untuk penyebaran pihak ketiga](#pin-models-for-third-party-deployments). Pengaturan masih membatasi pemilih ke entri yang terdaftar, dan ID Mantle menyematkan nama keluarga, jadi itu dihitung sebagai entri tertentu dan menonaktifkan wildcard keluarga itu: bersama ID Mantle apa pun, daftarkan awalan versi atau ID lengkap yang ingin Anda pertahankan dapat dipilih. Lihat [Perilaku penggabungan](#merge-behavior).379Ketika [titik akhir Amazon Bedrock Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) diaktifkan, entri dalam `availableModels` yang dimulai dengan `anthropic.` ditambahkan ke pemilih `/model` sebagai opsi khusus dan dirutekan ke titik akhir Mantle. Ini adalah pengecualian terhadap pencocokan alias yang dijelaskan dalam [Sematkan model untuk penerapan pihak ketiga](#pin-models-for-third-party-deployments). Pengaturan masih membatasi pemilih ke entri yang terdaftar, dan ID Mantle menyematkan nama keluarga, jadi itu dihitung sebagai entri spesifik dan menonaktifkan wildcard keluarga itu: bersama dengan ID Mantle apa pun, daftarkan awalan versi atau ID lengkap yang ingin Anda pertahankan dapat dipilih. Lihat [Perilaku penggabungan](#merge-behavior).

380 

381<h3 id="block-specific-models-or-versions">

382 Blokir model atau versi spesifik

383</h3>

384 

385Entri `availableModels` seperti `claude-opus-5` juga memungkinkan rilis yang lebih baru yang memperpanjangnya, seperti Opus 5.5, segera setelah Claude Code mendukungnya. Dua pengaturan terkelola memungkinkan Anda menahan rilis, dan keduanya memerlukan Claude Code v2.1.283 atau lebih baru:

386 

387* [`deniedModels`](/docs/id/settings-reference#deniedmodels): daftarkan model yang akan diblokir. Model yang terdaftar diblokir bahkan ketika `availableModels` memungkinkannya, dan kunci juga bekerja tanpa daftar izin sama sekali. Rilis yang tidak ada entri blok tetap diizinkan

388* [`availableModelsMatch`](/docs/id/settings-reference#availablemodelsmatch): aturnya ke `"exact"` sehingga setiap ID model dalam `availableModels` hanya memungkinkan versi yang dinamainya. Versi yang lebih baru dari ID model yang terdaftar kemudian tetap diblokir sampai Anda menambahkannya ke daftar

389 

390Versi sebelumnya mengabaikan kedua kunci, jadi juga atur [`requiredMinimumVersion`](/docs/id/settings-reference#requiredminimumversion) untuk menjaga versi itu agar tidak dimulai.

391 

392Contoh ini memungkinkan model Opus dan Sonnet dan memblokir Opus 5.5 dalam setiap ejaan, termasuk ID yang tertanggal dan khusus penyedia:

393 

394```json theme={null}

395{

396 "availableModels": ["opus", "sonnet"],

397 "deniedModels": ["claude-opus-5-5"]

398}

399```

400 

401Model yang diblokir, baik `deniedModels` menyebutkannya atau daftar `"exact"` menghilangkannya, diperlakukan sebagai pemilihan terblokir di mana pun [daftar izin berlaku](#restrict-model-selection). Itu disembunyikan dari pemilih `/model`, dan `/model <name>` menolaknya. Jika Anda menyebutkan ID model yang diblokir dengan `--model`, `ANTHROPIC_MODEL`, atau pengaturan `model`, Claude Code menjatuhkannya saat startup dan menyelesaikan opsi Default. Jika [hook](/docs/id/hooks) atau permintaan latar belakang menyebutkan model yang `deniedModels` blokir, seperti bidang `model` hook agent, permintaan itu berjalan pada model sesi.

402 

403Opsi Default mengikuti kedua kunci juga, apakah atau tidak Anda menetapkan [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model). Jika Anda menetapkannya dengan `availableModels` yang tidak kosong, default yang diblokir dihitung sebagai model di luar daftar izin. Jika tidak, opsi Default yang akan diselesaikan ke model yang diblokir turun dalam urutan ini:

404 

4051. Versi terbaru keluarga yang sama yang diizinkan

4062. Model terakhir yang diizinkan dari setiap keluarga biaya lebih rendah: Sonnet, kemudian Haiku

4073. Entri `availableModels` pertama yang menyebutkan model yang diizinkan

408 

409Jika tidak ada yang diizinkan, sesi yang dimulai pada opsi Default [menolak untuk dimulai](/docs/id/errors#managed-settings-block-the-default-model) dengan kesalahan yang menyebutkan kunci untuk diperbaiki. Daftar `"exact"` mempengaruhi opsi Default hanya ketika daftar `availableModels` terkelola menyebutkan setidaknya satu model atau keluarga.

410 

411Claude Code membaca kedua kunci dari pengaturan terkelola saja. Jika Anda menetapkan salah satu dalam pengaturan pengguna, proyek, atau lokal atau dengan `--settings`, Claude Code mengabaikannya dengan peringatan.

372 412 

373<h3 id="organization-model-restrictions">413<h3 id="organization-model-restrictions">

374 Pembatasan model organisasi414 Pembatasan model organisasi

375</h3>415</h3>

376 416 

377Admin organisasi pada rencana Claude Enterprise membatasi model mana yang dapat dijalankan anggota dengan menonaktifkan model individual dalam konsol admin claude.ai. Pembatasan ini dikirimkan dengan hak akses akun ketika Claude Code mengautentikasi, terpisah dari daftar `availableModels` apa pun dalam pengaturan, dan server memberlakukan pembatasan yang sama secara independen ketika sesi dibuat. Memerlukan Claude Code v2.1.187 atau lebih baru.417Admin organisasi pada paket Claude Enterprise membatasi model mana yang dapat dijalankan anggota dengan menonaktifkan model individual dalam konsol admin claude.ai. Pembatasan ini dikirimkan dengan hak akun ketika Claude Code mengautentikasi, terpisah dari daftar `availableModels` apa pun dalam pengaturan, dan server memberlakukan pembatasan yang sama secara independen ketika sesi dibuat. Memerlukan Claude Code v2.1.187 atau lebih baru.

378 418 

379Pembatasan berlaku ketika anggota masuk atau menggunakan kunci API mereka sendiri. Kredensial yang dicakup organisasi, seperti kunci layanan organisasi, tidak terikat pada pengguna, jadi pembatasan tidak berlaku untuk mereka.419Pembatasan berlaku ketika anggota masuk atau menggunakan kunci API mereka sendiri. Kredensial yang bersifat organisasi, seperti kunci layanan organisasi, tidak terikat pada pengguna, jadi pembatasan tidak berlaku untuk mereka.

380 420 

381Claude Console tidak memiliki kontrol pembatasan model. Organisasi tanpa rencana Claude Enterprise, termasuk yang anggotanya mengautentikasi melalui Anthropic API, membatasi model dengan [`availableModels`](#restrict-model-selection) dalam [pengaturan terkelola](/docs/id/managed-settings), menambahkan [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) untuk mencakup opsi Default. [Cakupan permukaan](#surface-coverage) mengatakan bagaimana setiap permukaan menerima dan memberlakukan pengaturan ini.421Claude Console tidak memiliki kontrol pembatasan model. Organisasi tanpa paket Claude Enterprise, termasuk yang anggotanya mengautentikasi melalui Anthropic API, membatasi model dengan [`availableModels`](#restrict-model-selection) dalam [pengaturan terkelola](/docs/id/managed-settings), menambahkan [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) untuk mencakup opsi Default. [Cakupan permukaan](#surface-coverage) mengatakan bagaimana setiap permukaan menerima dan memberlakukan pengaturan ini.

382 422 

383Model yang dibatasi disembunyikan dari pemilih `/model`. Memilihnya berdasarkan nama dengan `--model`, variabel lingkungan `ANTHROPIC_MODEL`, atau pengaturan `model` menunjukkan pemberitahuan `Model "<name>" is restricted by your organization's settings. Using <model> instead.` dan sesi dimulai pada model yang diizinkan. Mengetik `/model <name>` untuk model yang dibatasi ditolak dengan `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` dan sesi mempertahankan model saat ini.423Model yang dibatasi disembunyikan dari pemilih `/model`. Memilihnya berdasarkan nama dengan `--model`, variabel lingkungan `ANTHROPIC_MODEL`, atau pengaturan `model` menunjukkan pemberitahuan `Model "<name>" is restricted by your organization's settings. Using <model> instead.` dan sesi dimulai pada model yang diizinkan. Mengetik `/model <name>` untuk model yang dibatasi ditolak dengan `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.` dan sesi mempertahankan model saat ini.

384 424 

385[Alias keluarga model](#restrict-model-selection) seperti `opus` diselesaikan ke model biasanya ketika organisasi memungkinkannya. Ketika organisasi membatasi model itu, Claude Code mengganti versi terbaru keluarga yang organisasi izinkan, dengan pemberitahuan substitusi yang sama. `/model <alias>` ditolak hanya ketika setiap versi keluarganya dibatasi; alias yang diatur dengan `--model`, `ANTHROPIC_MODEL`, atau pengaturan `model` masih diganti saat startup dalam hal itu. Sebelum v2.1.205, alias keluarga diganti atau ditolak berdasarkan versi rilis terbarunya saja, bahkan ketika versi yang lebih lama diizinkan.425Alias keluarga model [](#restrict-model-selection) seperti `opus` diselesaikan ke model biasanya ketika organisasi memungkinkannya. Ketika organisasi membatasi model itu, Claude Code mengganti versi terbaru keluarga yang diizinkan organisasi, dengan pemberitahuan substitusi yang sama. `/model <alias>` ditolak hanya ketika setiap versi keluarganya dibatasi; alias yang diatur dengan `--model`, `ANTHROPIC_MODEL`, atau pengaturan `model` masih diganti saat startup dalam hal itu. Sebelum v2.1.205, alias keluarga diganti atau ditolak berdasarkan versi rilis terbarunya saja, bahkan ketika versi yang lebih lama diizinkan.

386 426 

387Pembatasan berlaku di seluruh organisasi atau per peran:427Pembatasan berlaku di seluruh organisasi atau per peran:

388 428 

389* Menonaktifkan model di tingkat organisasi menghapusnya untuk setiap anggota.429* Menonaktifkan model di tingkat organisasi menghapusnya untuk setiap anggota.

390* Akses tingkat peran memberikan model berbeda ke peran khusus yang berbeda, dan anggota yang memiliki beberapa peran dapat menggunakan model apa pun yang salah satu peran mereka berikan.430* Akses tingkat peran memberikan model berbeda ke peran khusus yang berbeda, dan anggota yang memiliki beberapa peran dapat menggunakan model apa pun yang diizinkan salah satu peran mereka.

391* Model Haiku selalu tersedia dan tidak dapat dinonaktifkan, jadi setiap anggota mempertahankan setidaknya satu model yang dapat digunakan.431* Model Haiku selalu tersedia dan tidak dapat dinonaktifkan, jadi setiap anggota mempertahankan setidaknya satu model yang dapat digunakan.

392* Perubahan akses berlaku di seluruh organisasi dalam waktu sekitar satu menit; pemilih `/model` mencerminkannya saat sesi berikutnya dimulai.432* Perubahan akses berlaku di seluruh organisasi dalam waktu sekitar satu menit; pemilih `/model` mencerminkannya saat sesi berikutnya dimulai.

393 433 

394Kedua pembatasan berlaku bersama: model dapat dipilih hanya ketika diizinkan oleh `availableModels` dan tidak dibatasi oleh organisasi. Pembatasan organisasi mencapai sesi pada Anthropic API dan penyebaran [gateway LLM](/docs/id/llm-gateway) saja; pada penyedia lain apa pun, gunakan `availableModels`.434Kedua pembatasan berlaku bersama: model dapat dipilih hanya ketika diizinkan oleh `availableModels` dan tidak dibatasi oleh organisasi. Pembatasan organisasi mencapai sesi pada Anthropic API dan penerapan [LLM gateway](/docs/id/llm-gateway) saja; pada penyedia lain apa pun, gunakan `availableModels`.

395 435 

396<h2 id="organization-default-model">436<h2 id="organization-default-model">

397 Model default organisasi437 Model default organisasi


417 457 

418Default organisasi melewati pemeriksaan pembatasan ini sebelum diadopsi:458Default organisasi melewati pemeriksaan pembatasan ini sebelum diadopsi:

419 459 

420* [`availableModels`](#restrict-model-selection) sendiri tidak berlaku untuk default organisasi, jadi default organisasi di luar daftar izin masih berlaku. Ketika [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) juga diatur, default organisasi di luar daftar izin dipetakan ulang ke entri daftar izin pertama, seperti Default lainnya460* Dengan pencocokan awalan default, [`availableModels`](#restrict-model-selection) sendiri tidak berlaku untuk default organisasi, jadi default organisasi di luar daftar izin masih berlaku. Ketika [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) juga diatur, default organisasi di luar daftar izin dipetakan ulang ke entri daftar izin pertama juga

421* default organisasi yang [pembatasan model organisasi](#organization-model-restrictions) tolak untuk akun Anda diganti dengan model terbaru yang diizinkan dalam keluarganya, atau keluarga biaya lebih rendah ketika setiap versinya dibatasi461* default organisasi yang [pembatasan model organisasi](#organization-model-restrictions) tolak untuk akun Anda diganti dengan model terbaru yang diizinkan dalam keluarganya, atau keluarga biaya lebih rendah ketika setiap versinya dibatasi

462* untuk default organisasi yang `deniedModels` atau daftar `"exact"` blokir, lihat [Blokir model atau versi spesifik](#block-specific-models-or-versions)

422* default organisasi yang tidak tersedia untuk akun Anda sama sekali dilewati, dan opsi Default diselesaikan seperti yang akan terjadi [tanpa default organisasi](#default-model-setting)463* default organisasi yang tidak tersedia untuk akun Anda sama sekali dilewati, dan opsi Default diselesaikan seperti yang akan terjadi [tanpa default organisasi](#default-model-setting)

423 464 

424Mulai dari v2.1.199, ketika default organisasi adalah keluarga model yang berbeda dari default biasa tipe akun Anda, pemilih `/model` menyimpan baris terpisah untuk keluarga biasa itu, sehingga Anda masih dapat beralih ke itu untuk sesi. Dalam v2.1.196 hingga v2.1.198 baris itu hilang dari pemilih.465Mulai dari v2.1.199, ketika default organisasi adalah keluarga model yang berbeda dari default biasa tipe akun Anda, pemilih `/model` menyimpan baris terpisah untuk keluarga biasa itu, sehingga Anda masih dapat beralih ke itu untuk sesi. Dalam v2.1.196 hingga v2.1.198 baris itu hilang dari pemilih.


451 492 

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.493Sebelum 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.

453 494 

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.495Ketika 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, atau ke model [yang tercatat pada akun Anda](#setting-your-model).

455 496 

456Ketika pengaturan terkelola [memberlakukan daftar yang diizinkan untuk model Default](#enforce-the-allowlist-for-the-default-model) dan default jenis akun tidak ada dalam `availableModels`, `default` diselesaikan ke Default yang diberlakukan alih-alih default jenis akun di atas. Ketika keduanya berlaku, default organisasi menggantikan default jenis akun terlebih dahulu dan penegakan kemudian diterapkan padanya: default organisasi yang terdaftar dipertahankan, sementara yang di luar daftar diselesaikan ke Default yang diberlakukan.497Ketika tidak ada yang tercatat pada akun Anda, pengaturan terkelola [memberlakukan daftar yang diizinkan untuk model Default](#enforce-the-allowlist-for-the-default-model), dan default jenis akun tidak ada dalam `availableModels`, `default` diselesaikan ke Default yang diberlakukan alih-alih default jenis akun di atas. Ketika default organisasi dan penegakan keduanya berlaku, default organisasi menggantikan default jenis akun terlebih dahulu dan penegakan kemudian diterapkan padanya: default organisasi yang terdaftar dipertahankan, sementara yang di luar daftar diselesaikan ke Default yang diberlakukan.

457 498 

458Model Fable bukan default jenis akun pada paket atau penyedia apa pun. Memilih salah satu dengan `/model` menyimpannya sebagai model yang dipilih dalam pengaturan pengguna Anda, sehingga sesi berikutnya dimulai padanya. Untuk perubahan satu kali yang Claude Code buat pada pilihan Fable 5 yang disimpan di v2.1.257, lihat [Bekerja dengan Fable](#work-with-fable).499Model Fable bukan default jenis akun pada paket atau penyedia apa pun. Memilih salah satu dengan `/model` menyimpannya sebagai model yang dipilih dalam pengaturan pengguna Anda, sehingga sesi berikutnya dimulai padanya. Untuk perubahan satu kali yang Claude Code buat pada pilihan Fable 5 yang disimpan di v2.1.257, lihat [Bekerja dengan Fable](#work-with-fable).

459 500 


463 504 

464Alias model `opusplan` menyediakan pendekatan hibrida otomatis:505Alias model `opusplan` menyediakan pendekatan hibrida otomatis:

465 506 

466* **Dalam plan mode**: menggunakan `opus` untuk penalaran kompleks dan keputusan arsitektur507* **Dalam Plan Mode**: menggunakan `opus` untuk penalaran kompleks dan keputusan arsitektur

467* **Dalam execution mode**: secara otomatis beralih ke `sonnet` untuk pembuatan kode dan implementasi508* **Dalam execution mode**: secara otomatis beralih ke `sonnet` untuk pembuatan kode dan implementasi

468 509 

469Ini menggabungkan penalaran Opus untuk perencanaan dengan efisiensi Sonnet untuk eksekusi.510Ini menggabungkan penalaran Opus untuk perencanaan dengan efisiensi Sonnet untuk eksekusi.

470 511 

471Fase Opus plan-mode menggunakan jendela konteks yang sama dengan pengaturan model `opus`, dan fase eksekusi menggunakan jendela yang sama dengan `sonnet`. Ketika `opus` dan `sonnet` diselesaikan ke model yang berjalan dengan [jendela konteks 1M](#extended-context) secara default, seperti model saat ini pada Anthropic API, kedua fase berjalan dengannya. Untuk meminta konteks 1M untuk kedua fase di mana mereka tidak, [atur model](#setting-your-model) ke `opusplan[1m]`, misalnya dengan `/model opusplan[1m]`. Menetapkannya dengan `/model` memerlukan Claude Code v2.1.265 atau lebih baru; pada versi sebelumnya, gunakan flag `--model` atau pengaturan `model` sebagai gantinya.512Fase Opus Plan Mode menggunakan jendela konteks yang sama dengan pengaturan model `opus`, dan fase eksekusi menggunakan jendela yang sama dengan `sonnet`. Ketika `opus` dan `sonnet` diselesaikan ke model yang berjalan dengan [jendela konteks 1M](#extended-context) secara default, seperti model saat ini pada Anthropic API, kedua fase berjalan dengannya. Untuk meminta konteks 1M untuk kedua fase di mana mereka tidak, [atur model](#setting-your-model) ke `opusplan[1m]`, misalnya dengan `/model opusplan[1m]`. Menetapkannya dengan `/model` memerlukan Claude Code v2.1.265 atau lebih baru; pada versi sebelumnya, gunakan flag `--model` atau pengaturan `model` sebagai gantinya.

472 513 

473Ketika [`availableModels`](#restrict-model-selection) mengecualikan Opus terbaru tetapi mengizinkan versi yang lebih lama, misalnya `["sonnet", "claude-opus-4-6"]`, `opusplan` menggunakan Opus terbaru yang diizinkan untuk perencanaan dan tetap pada Sonnet hanya ketika setiap Opus dikecualikan. Sesi Haiku yang biasanya akan ditingkatkan ke Sonnet dalam plan mode juga menggunakan Sonnet terbaru yang diizinkan, dan tetap pada Haiku hanya ketika setiap Sonnet dikecualikan. Sebelum v2.1.205, plan mode tetap pada model sesi kapan pun versi terbaru dari keluarga upgrade dikecualikan, bahkan ketika daftar yang diizinkan mengizinkan yang lebih lama.514Ketika [`availableModels`](#restrict-model-selection) mengecualikan Opus terbaru tetapi mengizinkan versi yang lebih lama, misalnya `["sonnet", "claude-opus-4-6"]`, `opusplan` menggunakan Opus terbaru yang diizinkan untuk perencanaan dan tetap pada Sonnet hanya ketika setiap Opus dikecualikan. Sesi Haiku yang biasanya akan ditingkatkan ke Sonnet dalam Plan Mode juga menggunakan Sonnet terbaru yang diizinkan, dan tetap pada Haiku hanya ketika setiap Sonnet dikecualikan. Sebelum v2.1.205, Plan Mode tetap pada model sesi kapan pun versi terbaru dari keluarga upgrade dikecualikan, bahkan ketika daftar yang diizinkan mengizinkan yang lebih lama.

474 515 

475Substitusi versi yang lebih lama yang diizinkan berlaku pada Anthropic API dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Pada Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, dan Mantle, yang penerapannya menggunakan ID model khusus penyedia, plan mode tetap pada model sesi kapan pun model upgrade dikecualikan.516Substitusi versi yang lebih lama yang diizinkan berlaku pada Anthropic API dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws). Pada Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, dan Mantle, yang penerapannya menggunakan ID model khusus penyedia, Plan Mode tetap pada model sesi kapan pun model upgrade dikecualikan.

476 517 

477Untuk pendekatan hibrida di mana Claude memutuskan di tengah-tugas kapan harus berkonsultasi dengan model kedua daripada beralih di batas rencana, lihat [alat advisor](/docs/id/advisor).518Untuk pendekatan hibrida di mana Claude memutuskan di tengah-tugas kapan harus berkonsultasi dengan model kedua daripada beralih di batas rencana, lihat [alat advisor](/docs/id/advisor).

478 519 


513 Fallback model otomatis554 Fallback model otomatis

514</h3>555</h3>

515 556 

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).557Bagian ini mencakup fallback berbasis konten dari model Fable, Opus 5.5, Sonnet 5.5, dan Opus 5. Untuk fallback berbasis ketersediaan ketika model kelebihan beban atau tidak tersedia, lihat [Rantai model fallback](#fallback-model-chains).

517 558 

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:559Model Fable, Opus 5.5, Sonnet 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:

519 560 

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.561* **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.

562* **Sonnet 5.5**: permintaan yang ditandai keamanan siber dijalankan kembali pada Sonnet 5. Permintaan yang ditandai biologi berakhir dengan penolakan, karena Sonnet 5.5 tidak memiliki model fallback biologi.

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.563* **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.

522 564 

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).565Pada Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, Claude Code menyelesaikan target ini melalui ID model penerapan Anda sebagai gantinya. Lihat [Aktifkan fallback pada Bedrock, Agent Platform, dan Foundry](#enable-fallback-on-bedrock-agent-platform-and-foundry).

524 566 

525Setelah fallback, sesi berlanjut pada model fallback. Untuk kembali ke model asli Anda, jalankan [`/model`](#setting-your-model).567Setelah fallback, sesi berlanjut pada model fallback. Untuk kembali ke model asli Anda, jalankan [`/model`](#setting-your-model).

526 568 


544 586 

545Beberapa kasus berperilaku berbeda:587Beberapa kasus berperilaku berbeda:

546 588 

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.589* Ketika kategori yang ditandai tidak memiliki model fallback, seperti flag biologi pada Opus 5 atau Sonnet 5.5, Claude Code tidak menampilkan prompt dan permintaan berakhir dengan penolakan.

548* Jika kedua model menandai permintaan yang sama, Anda dapat mengedit prompt dan mencoba lagi, atau memulai sesi baru.590* Jika kedua model menandai permintaan yang sama, Anda dapat mengedit prompt dan mencoba lagi, atau memulai sesi baru.

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.591* Pada [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.

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.592* 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.

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.593* 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.

552 594 


554 Aktifkan fallback pada Bedrock, Agent Platform, dan Foundry596 Aktifkan fallback pada Bedrock, Agent Platform, dan Foundry

555</h4>597</h4>

556 598 

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:599Pada [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 setiap model yang terlibat:

600 

601* 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, Sonnet 5.5, dan Opus 5 dikenali oleh ID model penyedianya atau pemetaan [`modelOverrides`](#override-model-ids-per-version).

602* Target Opus harus diselesaikan dalam penerapan Anda, model mana pun yang menolak: atur `ANTHROPIC_DEFAULT_OPUS_MODEL`, atau simpan entri Opus 4.8 dalam daftar model penyedia. Tanpa satu, fallback tetap mati untuk setiap model sumber, termasuk Sonnet 5.5, dan permintaan yang ditandai berakhir dengan penolakan.

603* Model fallback kategori yang ditandai harus diselesaikan dalam penerapan Anda. Dari model Fable, Opus 5.5, atau Opus 5, 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, dan permintaan yang ditandai biologi dari model Fable atau Opus 5.5 pada entri Opus 5. Dari Sonnet 5.5, permintaan yang ditandai keamanan siber dijalankan kembali pada model yang Anda atur dalam `ANTHROPIC_DEFAULT_SONNET_MODEL`, atau pada entri Sonnet 5 dalam daftar model penyedia jika Anda tidak menetapkannya.

558 604 

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).605Jika salah satu model tidak dapat diidentifikasi, Claude Code tidak beralih. Permintaan yang ditandai berakhir dengan pesan penolakan, dan Anda dapat beralih model dengan [`/model`](#setting-your-model) dan mencoba lagi. Untuk membuat kedua model dapat diidentifikasi, atur pin untuk model sumber Anda:

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.

561 606 

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.607* **Model Fable**: atur `ANTHROPIC_DEFAULT_FABLE_MODEL` ke ID model Fable Anda sehingga Claude Code mengenalinya sebagai sumber fallback.

608* **Setiap model sumber**: atur `ANTHROPIC_DEFAULT_OPUS_MODEL` ke ID model Opus untuk mengaktifkan fallback dan memberikan kategori yang ditandai target. Pin yang menamai model di luar keluarga Opus, atau model yang menolak, membiarkan penolakan berdiri.

609* **Sonnet 5.5**: selain pin Opus, atur `ANTHROPIC_DEFAULT_SONNET_MODEL` atau simpan entri Sonnet 5 dalam daftar model penyedia untuk memasok model yang permintaan dijalankan kembali. Pin Sonnet yang menamai model di luar keluarga Sonnet, atau Sonnet 5.5 itu sendiri, membiarkan penolakan berdiri.

563 610 

564<h4 id="security-research-and-biology-workloads">611<h4 id="security-research-and-biology-workloads">

565 Penelitian keamanan dan beban kerja biologi612 Penelitian keamanan dan beban kerja biologi

566</h4>613</h4>

567 614 

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.615Beban 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 dan Sonnet 5.5, Anda mendapatkan penolakan tersebut dari permintaan pertama yang ditandai.

569 616 

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.617Ini 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.

571 618 


580| Model | Tingkat |627| Model | Tingkat |

581| :- | :- |628| :- | :- |

582| Fable 5.1 dan Fable 5 | `low`, `medium`, `high`, `xhigh`, `max` |629| Fable 5.1 dan Fable 5 | `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` |630| Opus 5.5, Sonnet 5.5, Opus 5, Sonnet 5, Opus 4.8, dan Opus 4.7 | `low`, `medium`, `high`, `xhigh`, `max` |

584| Opus 4.6 dan Sonnet 4.6 | `low`, `medium`, `high`, `max` |631| Opus 4.6 dan Sonnet 4.6 | `low`, `medium`, `high`, `max` |

585 632 

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).633Jika 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 atau pengaturan Anda sendiri juga dapat membatasi tingkat mana yang tersedia untuk model; lihat [Batas usaha organisasi](#organization-effort-limits).

587 634 

588Dengan pengaturan [`ultracode`](/docs/id/settings-reference#ultracode) mati, Claude Code menyelesaikan tingkat usaha sesi dalam urutan ini, mengambil yang pertama yang berlaku:635Claude Code menyelesaikan tingkat usaha sesi dalam urutan ini, mengambil yang pertama yang berlaku:

589 636 

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

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

5923. 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 tersebut6393. Tingkat usaha default model: `high` pada setiap model yang mendukung usaha, kecuali Opus 5.5 dan Sonnet 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

593 640 

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.641Opus 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.

595 642 


610 657 

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.658Ketika 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 659 

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).660Slider `/effort` juga memiliki toggle **Ultracode**. Ultracode adalah pengaturan Claude Code daripada tingkat usaha model: dengan itu aktif, Claude mengorkestra [alur kerja dinamis](/docs/id/workflows) untuk tugas-tugas substantif, pada tingkat usaha apa pun sesi berjalan. Untuk di mana dapat diatur secara persisten, lihat pengaturan [`ultracode`](/docs/id/settings-reference#ultracode).

661 

662Mengaktifkan atau menonaktifkan ultracode dengan `/effort` atau pengaturan `ultracode` membiarkan tingkat usaha tidak berubah. Flag `--effort ultracode` dan nilai Agent SDK `effortLevel: "ultracode"` mengaktifkannya dan juga menetapkan tingkat ke `xhigh`. Memilih tingkat dalam slider `/effort` atau pengambil `/model` membiarkan ultracode seperti itu.

614 663 

615Anda dapat mengaktifkan ultracode melalui salah satu dari berikut ini:664Anda dapat mengaktifkan ultracode melalui salah satu dari berikut ini:

616 665 

617* **`/effort`**: jalankan `/effort ultracode`, atau pilih dari menu666* **`/effort`**: jalankan `/effort ultracode` untuk mengaktifkannya untuk sesi saat ini atau `/effort ultracode off` untuk menonaktifkannya. Dalam slider `/effort`, tekan `Tab` untuk membalik toggle **Ultracode**, kemudian `Enter` untuk menerapkannya

618* **Flag `--effort`**: luncurkan dengan `claude --effort ultracode`, yang memulai sesi pada usaha `xhigh` dengan ultracode aktif667* **Flag `--effort`**: luncurkan dengan `claude --effort ultracode`, yang memulai sesi pada usaha `xhigh` dengan ultracode aktif

619* **Pengaturan `ultracode`**: atur [`"ultracode": true`](/docs/id/settings-reference#ultracode) dalam file pengaturan, dengan `--settings`, atau dalam permintaan kontrol Agent SDK. Permintaan [`applyFlagSettings()`](/docs/id/agent-sdk/typescript#applyflagsettings) juga menerima `effortLevel: "ultracode"`668* **Pengaturan `ultracode`**: atur [`"ultracode": true`](/docs/id/settings-reference#ultracode) dalam file pengaturan, dengan `--settings`, atau dalam permintaan kontrol Agent SDK. Permintaan [`applyFlagSettings()`](/docs/id/agent-sdk/typescript#applyflagsettings) juga menerima `effortLevel: "ultracode"`, yang mengaktifkannya dan menetapkan tingkat usaha ke `xhigh`

620* **Pengambil `/model`**: pindahkan slider usaha ke `ultracode` dengan tombol panah saat Anda memilih model. Claude Code mengaktifkannya untuk sesi saat ini, bahkan ketika Anda menyimpan model tersebut sebagai default Anda669 

670Bentuk `/effort ultracode off`, toggle slider, dan menjaga ultracode aktif pada tingkat usaha selain `xhigh` memerlukan Claude Code v2.1.284 atau lebih baru. Sebelum v2.1.284, mengaktifkan ultracode menetapkan sesi ke usaha `xhigh`, memilih tingkat lain menonaktifkannya, dan batas usaha di bawah `xhigh` membuatnya tidak tersedia.

621 671 

622Melewatkan `ultracode` ke flag `--effort` atau nilai Agent SDK `effortLevel` memerlukan Claude Code v2.1.203 atau lebih baru. Sebelum v2.1.203, `--effort ultracode` mencetak `Unknown --effort value 'ultracode'` dan sesi dimulai pada usaha default.672Melewatkan `ultracode` ke flag `--effort` atau nilai Agent SDK `effortLevel` memerlukan Claude Code v2.1.203 atau lebih baru. Sebelum v2.1.203, `--effort ultracode` mencetak `Unknown --effort value 'ultracode'` dan sesi dimulai pada usaha default.

623 673 

624Pengaturan `effortLevel` yang bertahan dan variabel lingkungan `CLAUDE_CODE_EFFORT_LEVEL` tidak menerima `ultracode`. Ketika `CLAUDE_CODE_EFFORT_LEVEL` diatur ke tingkat selain `xhigh`, permintaan berjalan pada tingkat itu dan orkestrasi alur kerja ultracode tetap tidak aktif. Memilih ultracode kemudian menampilkan peringatan bahwa variabel lingkungan mengganti usaha untuk sesi.674Pengaturan `effortLevel` yang bertahan dan variabel lingkungan `CLAUDE_CODE_EFFORT_LEVEL` tidak menerima `ultracode`. Jika `CLAUDE_CODE_EFFORT_LEVEL` atau [batas usaha](#organization-effort-limits) menetapkan tingkat sesi, ultracode tetap aktif pada tingkat itu.

625 675 

626<span id="when-ultracode-is-available" />676<span id="when-ultracode-is-available" />

627 677 


629 679 

630* [Alur kerja dimatikan](/docs/id/workflows#turn-workflows-off)680* [Alur kerja dimatikan](/docs/id/workflows#turn-workflows-off)

631* Model tidak mendukung usaha `xhigh`681* Model tidak mendukung usaha `xhigh`

632* [Batas usaha](#organization-effort-limits) di bawah `xhigh` berlaku untuk model

633 682 

634Dalam kasus tersebut `--effort ultracode` memulai sesi dengan ultracode mati, pada tingkat usaha tertinggi yang model dan batas apa pun izinkan, hingga `xhigh`.683Dalam kasus tersebut `--effort ultracode` memulai sesi dengan ultracode mati, pada tingkat usaha tertinggi yang model dan batas apa pun izinkan, hingga `xhigh`.

635 684 


641 690 

642| Tingkat | Kapan menggunakannya |691| Tingkat | Kapan menggunakannya |

643| :- | :- |692| :- | :- |

644| `low` | Cadangkan untuk tugas pendek, terbatas, sensitif latensi yang tidak sensitif intelijen |693| `low` | Pertukaran cepat di mana Anda meninjau setiap hasil, seperti brainstorming, sketsa pertama, atau perubahan kecil seperti rename |

645| `medium` | Mengurangi penggunaan token untuk pekerjaan sensitif biaya yang dapat menukar beberapa intelijen. Default pada Opus 5.5 |694| `medium` | Default pada Opus 5.5 dan Sonnet 5.5, di mana cocok untuk pekerjaan teknik sehari-hari dengan cakupan yang jelas, seperti mengimplementasikan fitur baru. Pada model lain, mengurangi penggunaan token untuk pekerjaan sensitif biaya yang dapat menukar beberapa intelijen |

646| `high` | Menyeimbangkan penggunaan token dan intelijen. Default pada setiap model kecuali Opus 5.5 dan Opus 4.7 |695| `high` | Pekerjaan di mana verifikasi penting atau kasus tepi mungkin, seperti memperbaiki bug dalam codebase yang ada. Default pada setiap model kecuali Opus 5.5, Sonnet 5.5, dan Opus 4.7 |

647| `xhigh` | Penalaran lebih dalam pada pengeluaran token lebih tinggi. Default pada Opus 4.7 |696| `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 |697| `max` | Masalah sulit yang Anda ingin Claude kerjakan tanpa Anda, seperti menemukan kerentanan keamanan. `max` mungkin menunjukkan hasil yang berkurang dan rentan terhadap overthinking, jadi 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 |698| `ultracode` | Pengaturan Claude Code daripada tingkat: merencanakan [alur kerja dinamis](/docs/id/workflows) untuk setiap tugas substantif pada tingkat usaha apa pun |

699 

700Dalam pengujian pada Opus 5.5 dan Fable 5.1, Claude pada tingkat yang lebih tinggi menguji lebih banyak kasus tepi dan memverifikasi lebih banyak pekerjaan sebelum menjawab. Ini juga membuat lebih banyak pilihan sendiri. Pada tingkat yang lebih rendah, Claude mengembalikan titik awal lebih cepat, yang cocok untuk pekerjaan di mana Anda meninjau setiap hasil dan mengarahkan langkah berikutnya. Untuk melihat tugas yang sama berjalan pada setiap tingkat, baca [Using Claude Code: Spending your effort](https://claude.dev/blog/spending-your-effort/) di blog.

650 701 

651Skala usaha dikalibrasi per model, jadi nama tingkat yang sama tidak mewakili nilai dasar yang sama di seluruh model.702Skala usaha dikalibrasi per model, jadi nama tingkat yang sama tidak mewakili nilai dasar yang sama di seluruh model.

652 703 

704Opus 5.5 [default ke `medium`](#adjust-effort-level), satu tingkat di bawah default Opus 5 yaitu `high`. Dalam pengujian Anthropic, Opus 5.5 pada `medium` cocok atau melebihi Opus 5 pada `high` pada evaluasi pengkodean dan pekerjaan pengetahuan. Pada tingkat yang diberikan, Opus 5.5 cenderung berpikir lebih per giliran daripada Opus 5. Ketika Anda pindah dari Opus 5 ke Opus 5.5, mulai pada `medium` daripada membawa tingkat yang Anda gunakan pada Opus 5. Untuk menguji tingkat terhadap pekerjaan Anda sendiri, lihat [Calibrate effort](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5#calibrate-effort) dalam panduan prompting Opus 5.5.

705 

653<h4 id="use-ultrathink-for-one-off-deep-reasoning">706<h4 id="use-ultrathink-for-one-off-deep-reasoning">

654 Gunakan ultrathink untuk penalaran mendalam sekali jalan707 Gunakan ultrathink untuk penalaran mendalam sekali jalan

655</h4>708</h4>


682 735 

683Penalaran adaptif membuat pemikiran opsional pada setiap langkah, jadi Claude dapat merespons lebih cepat ke prompt rutin dan menyisihkan pemikiran lebih dalam untuk langkah-langkah yang mendapat manfaat darinya. Jika Anda ingin Claude berpikir lebih atau kurang sering daripada tingkat saat ini menghasilkan, Anda dapat mengatakan demikian langsung dalam prompt Anda atau dalam `CLAUDE.md`; model merespons panduan itu dalam pengaturan usahanya.736Penalaran adaptif membuat pemikiran opsional pada setiap langkah, jadi Claude dapat merespons lebih cepat ke prompt rutin dan menyisihkan pemikiran lebih dalam untuk langkah-langkah yang mendapat manfaat darinya. Jika Anda ingin Claude berpikir lebih atau kurang sering daripada tingkat saat ini menghasilkan, Anda dapat mengatakan demikian langsung dalam prompt Anda atau dalam `CLAUDE.md`; model merespons panduan itu dalam pengaturan usahanya.

684 737 

685Model Fable, Sonnet 5, dan Opus 4.7 dan lebih baru selalu menggunakan penalaran adaptif. Mode anggaran pemikiran tetap dan `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` tidak berlaku untuk mereka.738Model Fable, Sonnet 5 dan lebih baru, dan Opus 4.7 dan lebih baru selalu menggunakan penalaran adaptif. Mode anggaran pemikiran tetap dan `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` tidak berlaku untuk mereka.

686 739 

687Pada Opus 4.6 dan Sonnet 4.6, Anda dapat menetapkan `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` untuk kembali ke mode anggaran pemikiran tetap sebelumnya yang dikendalikan oleh `MAX_THINKING_TOKENS`. Lihat [variabel lingkungan](/docs/id/env-vars).740Pada Opus 4.6 dan Sonnet 4.6, Anda dapat menetapkan `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` untuk kembali ke mode anggaran pemikiran tetap sebelumnya yang dikendalikan oleh `MAX_THINKING_TOKENS`. Lihat [variabel lingkungan](/docs/id/env-vars).

688 741 


695| Kontrol | Cara menetapkannya |748| Kontrol | Cara menetapkannya |

696| :- | :- |749| :- | :- |

697| Alihkan untuk sesi saat ini | Tekan `Option+T` pada macOS atau `Alt+T` pada Windows dan Linux |750| Alihkan untuk sesi saat ini | Tekan `Option+T` pada macOS atau `Alt+T` pada Windows dan Linux |

698| Atur default global | Jalankan `/config` dan alihkan mode pemikiran. Disimpan sebagai `alwaysThinkingEnabled` dalam `~/.claude/settings.json` |751| Atur default global | Jalankan `/config` dan alihkan Thinking Mode. Disimpan sebagai `alwaysThinkingEnabled` dalam `~/.claude/settings.json` |

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) |752| Nonaktifkan melalui variabel lingkungan | Atur [`MAX_THINKING_TOKENS=0`](/docs/id/env-vars), yang menonaktifkan pemikiran pada Anthropic API kecuali pada Opus 5.5, Sonnet 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) |

700 753 

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.754Pemikiran tidak dapat dimatikan pada Opus 5.5, Sonnet 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.

702 755 

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.756Claude 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.

704 757 

758<a id="extended-context-with-1m" />

759 

705<h3 id="extended-context">760<h3 id="extended-context">

706 Konteks diperpanjang761 Konteks diperpanjang

707</h3>762</h3>

708 763 

709Fable 5.1, Fable 5, Sonnet 5, Opus 4.6 dan lebih baru, dan Sonnet 4.6 mendukung [jendela konteks 1 juta token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) untuk sesi panjang dengan codebase besar.764Fable 5.1, Fable 5, Sonnet 5 dan lebih baru, Opus 4.6 dan lebih baru, dan Sonnet 4.6 mendukung [jendela konteks 1 juta token](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) untuk sesi panjang dengan codebase besar.

710 765 

711Pada Anthropic API, Fable 5.1, Fable 5, Sonnet 5, dan Opus 4.7 dan lebih baru berjalan dengan jendela 1M pada setiap paket, termasuk Pro. Anda tidak memilih varian `[1m]` atau mengaktifkan kredit penggunaan untuk jendela 1M pada model ini. Penggunaan Fable itu sendiri dapat ditagih ke kredit penggunaan pada beberapa paket; lihat [Fable dan kredit penggunaan](#fable-and-usage-credits).766Pada Anthropic API, Fable 5.1, Fable 5, Sonnet 5 dan lebih baru, dan Opus 4.7 dan lebih baru berjalan dengan jendela 1M pada setiap paket, termasuk Pro. Anda tidak memilih varian `[1m]` atau mengaktifkan kredit penggunaan untuk jendela 1M pada model ini. Penggunaan Fable itu sendiri dapat ditagih ke kredit penggunaan pada beberapa paket; lihat [Fable dan kredit penggunaan](#fable-and-usage-credits).

712 767 

713Opus 4.6 dan Sonnet 4.6 mencapai 1M hanya melalui varian `[1m]` mereka, dan akses ke varian itu tergantung pada paket Anda. Pada paket Max, Team, dan Enterprise, termasuk kursi Team Standard dan Team Premium, Opus 4.6 dengan konteks 1M disertakan dengan langganan Anda. Sonnet 4.6 dengan konteks 1M memerlukan [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pada setiap paket langganan, termasuk Max.768Opus 4.6 dan Sonnet 4.6 mencapai 1M hanya melalui varian `[1m]` mereka, dan akses ke varian itu tergantung pada paket Anda. Pada paket Max, Team, dan Enterprise, termasuk kursi Team Standard dan Team Premium, Opus 4.6 dengan konteks 1M disertakan dengan langganan Anda. Sonnet 4.6 dengan konteks 1M memerlukan [kredit penggunaan](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) pada setiap paket langganan, termasuk Max.

714 769 


742/model claude-opus-4-8[1m]797/model claude-opus-4-8[1m]

743```798```

744 799 

745<h4 id="sonnet-5-context-window">800<h4 id="sonnet-5-5-and-sonnet-5-context-window">

746 Jendela konteks Sonnet 5801 Jendela konteks Sonnet 5.5 dan Sonnet 5

747</h4>802</h4>

748 803 

749Pada Anthropic API, Sonnet 5 selalu berjalan dengan jendela konteks 1M. Tidak ada varian 200K, tidak ada sufiks `[1m]` untuk dipilih, dan tidak ada kredit penggunaan yang diperlukan pada paket apa pun. Sesi auto-compact sebelum jendela penuh, pada sekitar 967K token secara default; atur [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/id/env-vars) untuk memilih ambang batas berbeda.804Pada Anthropic API, Sonnet 5.5 dan Sonnet 5 selalu berjalan dengan jendela konteks 1M. Tidak ada varian 200K, tidak ada sufiks `[1m]` untuk dipilih, dan tidak ada kredit penggunaan yang diperlukan pada paket apa pun. Sesi auto-compact sebelum jendela penuh, pada sekitar 967K token secara default; atur [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/id/env-vars) untuk memilih ambang batas berbeda.

750 805 

751Dua konfigurasi menganggarkan jendela pada 200K:806Dua konfigurasi menganggarkan jendela pada 200K:

752 807 

753* **Gateway LLM**: ketika `ANTHROPIC_BASE_URL` menunjuk pada [gateway](/docs/id/llm-gateway), Claude Code tidak dapat memverifikasi dukungan 1M. Untuk menggunakan jendela penuh, pilih Sonnet 5 (1M context) dalam pengambil model, yang memetakan ke `sonnet[1m]`.808* **Gateway LLM**: ketika `ANTHROPIC_BASE_URL` menunjuk pada [gateway](/docs/id/llm-gateway), Claude Code tidak dapat memverifikasi dukungan 1M. Untuk menggunakan jendela penuh, pilih Sonnet 5.5 (1M context) dalam pengambil model, yang memetakan ke `sonnet[1m]`, atau jalankan `/model claude-sonnet-5[1m]` untuk Sonnet 5.

754* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: menyimpan sesi pada setiap model dengan jendela 1M asli ke jendela 200K; lihat [Konteks diperpanjang](#extended-context) untuk cara hold ditegakkan. Berguna untuk penerapan yang perlu membatasi konteks.809* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**: menyimpan sesi pada setiap model dengan jendela 1M asli ke jendela 200K; lihat [Konteks diperpanjang](#extended-context) untuk cara hold ditegakkan. Berguna untuk penerapan yang perlu membatasi konteks.

755 810 

756<h2 id="context-window-and-auto-compaction">811<h2 id="context-window-and-auto-compaction">


786* [Sesi cloud](/docs/id/claude-code-on-the-web) melakukan pemadatan saat percakapan mendekati batas model841* [Sesi cloud](/docs/id/claude-code-on-the-web) melakukan pemadatan saat percakapan mendekati batas model

787* 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 Foundry842* 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

788* 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 200K843* 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

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)844* 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.5 dan Sonnet 5 pada 200K sebagai gantinya, lihat [Sonnet 5.5 and Sonnet 5 context window](#sonnet-5-5-and-sonnet-5-context-window)

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

791 846 

792<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">847<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">


861| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Model yang digunakan untuk `haiku`, atau [fungsionalitas latar belakang](/docs/id/costs#background-token-usage) |916| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | Model yang digunakan untuk `haiku`, atau [fungsionalitas latar belakang](/docs/id/costs#background-token-usage) |

862| `CLAUDE_CODE_SUBAGENT_MODEL` | Model default untuk [subagents](/docs/id/sub-agents#choose-a-model), [agent team](/docs/id/agent-teams#specify-teammates-and-models) rekan kerja, dan agen [workflow](/docs/id/workflows) yang tidak ditugaskan model dengan cara lain. Menerima alias seperti `haiku` atau nama model lengkap. Model per-invocation atau bidang `model` definisi, termasuk `inherit`, mengambil prioritas. Untuk mengubah itu, atur [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/id/sub-agents#run-every-subagent-on-one-model) |917| `CLAUDE_CODE_SUBAGENT_MODEL` | Model default untuk [subagents](/docs/id/sub-agents#choose-a-model), [agent team](/docs/id/agent-teams#specify-teammates-and-models) rekan kerja, dan agen [workflow](/docs/id/workflows) yang tidak ditugaskan model dengan cara lain. Menerima alias seperti `haiku` atau nama model lengkap. Model per-invocation atau bidang `model` definisi, termasuk `inherit`, mengambil prioritas. Untuk mengubah itu, atur [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/id/sub-agents#run-every-subagent-on-one-model) |

863 918 

919Pada penyedia pihak ketiga, [Sesuaikan tampilan dan kemampuan model yang ditetapkan](#customize-pinned-model-display-and-capabilities) menjelaskan apa yang ditampilkan baris model yang ditetapkan di pemilih `/model`.

920 

864Catatan: `ANTHROPIC_SMALL_FAST_MODEL` sudah usang dan digantikan oleh `ANTHROPIC_DEFAULT_HAIKU_MODEL`.921Catatan: `ANTHROPIC_SMALL_FAST_MODEL` sudah usang dan digantikan oleh `ANTHROPIC_DEFAULT_HAIKU_MODEL`.

865 922 

866<h3 id="pin-models-for-third-party-deployments">923<h3 id="pin-models-for-third-party-deployments">


995| Variabel lingkungan | Deskripsi |1052| Variabel lingkungan | Deskripsi |

996| - | - |1053| - | - |

997| `DISABLE_PROMPT_CACHING` | Atur ke `1` untuk menonaktifkan prompt caching untuk semua model. Mengambil alih pengaturan per-model |1054| `DISABLE_PROMPT_CACHING` | Atur ke `1` untuk menonaktifkan prompt caching untuk semua model. Mengambil alih pengaturan per-model |

998| `DISABLE_PROMPT_CACHING_HAIKU` | Atur ke `1` untuk menonaktifkan prompt caching hanya untuk model Haiku |1055| `DISABLE_PROMPT_CACHING_HAIKU` | Atur ke `1` untuk menonaktifkan prompt caching untuk [model Haiku default](/docs/id/prompt-caching#disable-prompt-caching) |

999| `DISABLE_PROMPT_CACHING_SONNET` | Atur ke `1` untuk menonaktifkan prompt caching hanya untuk model Sonnet |1056| `DISABLE_PROMPT_CACHING_SONNET` | Atur ke `1` untuk menonaktifkan prompt caching hanya untuk model Sonnet |

1000| `DISABLE_PROMPT_CACHING_OPUS` | Atur ke `1` untuk menonaktifkan prompt caching hanya untuk model Opus |1057| `DISABLE_PROMPT_CACHING_OPUS` | Atur ke `1` untuk menonaktifkan prompt caching hanya untuk model Opus |

1001| `DISABLE_PROMPT_CACHING_FABLE` | Atur ke `1` untuk menonaktifkan prompt caching hanya untuk model Fable |1058| `DISABLE_PROMPT_CACHING_FABLE` | Atur ke `1` untuk menonaktifkan prompt caching hanya untuk model Fable |

1002 1059 

1003Untuk memilih cache TTL untuk percakapan utama dan untuk subagents secara terpisah, lihat [pilih TTL sendiri](/docs/id/prompt-caching#choose-the-ttl-yourself). Untuk apa yang memicu cache miss, lihat [Bagaimana Claude Code menggunakan prompt caching](/docs/id/prompt-caching).1060Untuk memilih cache TTL untuk percakapan utama dan untuk subagents secara terpisah, lihat [pilih TTL sendiri](/docs/id/prompt-caching#choose-the-ttl-yourself). Untuk apa yang memicu cache miss, lihat [Bagaimana Claude Code menggunakan prompt caching](/docs/id/prompt-caching).

1061 

1062<h2 id="version-history">

1063 Riwayat versi

1064</h2>

1065 

1066Tabel ini mencantumkan versi Claude Code di mana setiap alias model mengubah model yang diselesaikannya, yang terbaru terlebih dahulu.

1067 

1068| Versi | Perubahan |

1069| :- | :- |

1070| v2.1.284 | `sonnet` diselesaikan ke Sonnet 5.5 pada Anthropic API |

1071| v2.1.280 | `opus` diselesaikan ke Opus 5.5 pada Anthropic API, Claude Platform di AWS, Amazon Bedrock, dan Agent Platform Google Cloud |

1072| v2.1.257 | `fable` diselesaikan ke Fable 5.1, kecuali dalam sesi gateway aplikasi Claude |

1073| v2.1.219 | `opus` diselesaikan ke Opus 5 pada Anthropic API, Claude Platform di AWS, Amazon Bedrock, dan Agent Platform |

1074| v2.1.207 | `opus` diselesaikan ke Opus 4.8 pada Claude Platform di AWS, Amazon Bedrock, dan Agent Platform |

1075| v2.1.197 | `sonnet` diselesaikan ke Sonnet 5 pada Anthropic API |

1076| v2.1.154 | `opus` diselesaikan ke Opus 4.8 pada Anthropic API |

1077| Sebelumnya | `opus` diselesaikan ke Opus 4.7 pada Claude Platform di AWS dan ke Opus 4.6 pada Amazon Bedrock dan Agent Platform. `fable` diselesaikan ke Fable 5 pada setiap penyedia |

monitoring-usage.md +556 −512

Details

39 39 

40Untuk memverifikasi pengaturan yang mengekspor metrik, periksa backend Anda untuk metrik `claude_code.session.count`, yang Claude Code keluarkan saat sesi dimulai. Untuk memverifikasi pengaturan hanya log, kirimkan prompt dan periksa acara `claude_code.user_prompt`.40Untuk memverifikasi pengaturan yang mengekspor metrik, periksa backend Anda untuk metrik `claude_code.session.count`, yang Claude Code keluarkan saat sesi dimulai. Untuk memverifikasi pengaturan hanya log, kirimkan prompt dan periksa acara `claude_code.user_prompt`.

41 41 

42Jika tidak ada yang tiba, jalankan `claude --debug` dan periksa log debug. Claude Code melaporkan kegagalan dari pengekspor yang Anda konfigurasikan sebagai kesalahan `[3P telemetry]`, di mana 3P berarti pihak ketiga. Baris yang diawali dengan `[Anthropic telemetry]` menjelaskan [telemetri operasional terpisah Anthropic](/docs/id/data-usage#telemetry-services) dan tidak menunjukkan masalah dengan pengaturan Anda.42Jika tidak ada yang tiba, jalankan Claude Code dengan `claude --debug-file <path>` dan periksa log yang ditulisnya ke jalur tersebut. Claude Code melaporkan kegagalan dari pengekspor yang Anda konfigurasikan sebagai kesalahan `[3P telemetry]`, di mana 3P berarti pihak ketiga. Baris yang diawali dengan `[Anthropic telemetry]` menjelaskan [telemetri operasional terpisah Anthropic](/docs/id/data-usage#telemetry-services) dan tidak menunjukkan masalah dengan pengaturan Anda.

43 43 

44Untuk opsi konfigurasi lengkap, lihat [spesifikasi OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options).44Untuk opsi konfigurasi lengkap, lihat [spesifikasi OpenTelemetry](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options).

45 45 


72 Bagaimana pengaturan terkelola mengunci tujuan OTLP72 Bagaimana pengaturan terkelola mengunci tujuan OTLP

73</h3>73</h3>

74 74 

75Ketika Anda menetapkan variabel `OTEL_EXPORTER_OTLP_*` dalam pengaturan terkelola, Claude Code menghapus variabel yang ditetapkan pengembang yang bertentangan saat startup dan mencatat peringatan yang dapat Anda lihat dengan `claude --debug`. Apa yang dihapusnya tergantung pada variabel mana yang Anda tetapkan:75Ketika Anda menetapkan variabel `OTEL_EXPORTER_OTLP_*` dalam pengaturan terkelola, Claude Code menghapus variabel yang ditetapkan pengembang yang bertentangan saat startup dan mencatat peringatan dalam debug log. Apa yang dihapusnya tergantung pada variabel mana yang Anda tetapkan:

76 76 

77* **Endpoints**: ketika Anda menetapkan `OTEL_EXPORTER_OTLP_ENDPOINT`, Claude Code menghapus setiap titik akhir per-sinyal yang ditetapkan pengembang. Pengembang tidak dapat mengarahkan satu sinyal ke kolektor yang berbeda, jadi Anda tidak perlu juga menetapkan variabel titik akhir per-sinyal dalam pengaturan terkelola.77* **Endpoints**: ketika Anda menetapkan `OTEL_EXPORTER_OTLP_ENDPOINT`, Claude Code menghapus setiap titik akhir per-sinyal yang ditetapkan pengembang. Pengembang tidak dapat mengarahkan satu sinyal ke kolektor yang berbeda, jadi Anda tidak perlu juga menetapkan variabel titik akhir per-sinyal dalam pengaturan terkelola.

78* **Protokol**: ketika Anda menetapkan `OTEL_EXPORTER_OTLP_PROTOCOL`, Claude Code menghapus setiap protokol per-sinyal yang ditetapkan pengembang.78* **Protokol**: ketika Anda menetapkan `OTEL_EXPORTER_OTLP_PROTOCOL`, Claude Code menghapus setiap protokol per-sinyal yang ditetapkan pengembang.


103 Variabel konfigurasi umum103 Variabel konfigurasi umum

104</h3>104</h3>

105 105 

106Variabel-variabel ini mengonfigurasi pengekspor, titik akhir, dan perilaku ekspor untuk semua penerapan.106Variabel-variabel ini mengonfigurasi eksporter, endpoint, dan perilaku ekspor untuk semua deployment.

107 107 

108Jika Anda menetapkan variabel titik akhir atau protokol per-sinyal, seperti `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code menggunakannya sebagai gantinya dari variabel generik untuk sinyal tersebut. Jika Anda menetapkan variabel header per-sinyal, seperti `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code menggabungkannya dengan `OTEL_EXPORTER_OTLP_HEADERS` generik untuk sinyal tersebut.108Jika Anda menetapkan variabel endpoint atau protokol per-sinyal, seperti `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT`, Claude Code menggunakannya sebagai pengganti variabel generik untuk sinyal tersebut. Jika Anda menetapkan variabel header per-sinyal, seperti `OTEL_EXPORTER_OTLP_METRICS_HEADERS`, Claude Code menggabungkannya dengan `OTEL_EXPORTER_OTLP_HEADERS` generik untuk sinyal tersebut.

109 109 

110Pada mesin dengan pengaturan terkelola, lihat [Bagaimana pengaturan terkelola mengunci tujuan OTLP](#how-managed-settings-lock-the-otlp-destination) untuk mengetahui apa yang Claude Code hapus.110Pada mesin dengan pengaturan terkelola, lihat [Bagaimana pengaturan terkelola mengunci tujuan OTLP](#how-managed-settings-lock-the-otlp-destination) untuk mengetahui apa yang Claude Code hapus.

111 111 

112| Variabel Lingkungan | Deskripsi | Nilai Contoh |112| Variabel Lingkungan | Deskripsi | Nilai Contoh |

113| - | - | - |113| - | - | - |

114| `CLAUDE_CODE_ENABLE_TELEMETRY` | Mengaktifkan pengumpulan telemetri (diperlukan) | `1` |114| `CLAUDE_CODE_ENABLE_TELEMETRY` | Mengaktifkan pengumpulan telemetri (diperlukan) | `1` |

115| `OTEL_METRICS_EXPORTER` | Jenis pengekspor metrik, dipisahkan koma. Gunakan `none` untuk menonaktifkan | `console`, `otlp`, `prometheus`, `none` |115| `OTEL_METRICS_EXPORTER` | Jenis eksporter metrik, dipisahkan koma. Gunakan `none` untuk menonaktifkan | `console`, `otlp`, `prometheus`, `none` |

116| `OTEL_LOGS_EXPORTER` | Jenis pengekspor log/acara, dipisahkan koma. Gunakan `none` untuk menonaktifkan | `console`, `otlp`, `none` |116| `OTEL_LOGS_EXPORTER` | Jenis eksporter log/event, dipisahkan koma. Gunakan `none` untuk menonaktifkan | `console`, `otlp`, `none` |

117| `OTEL_EXPORTER_OTLP_PROTOCOL` | Protokol untuk pengekspor OTLP, berlaku untuk semua sinyal. Claude Code tidak memiliki protokol default, jadi atur ini atau variabel protokol per-sinyal untuk setiap pengekspor `otlp` yang Anda aktifkan | `grpc`, `http/json`, `http/protobuf` |117| `OTEL_EXPORTER_OTLP_PROTOCOL` | Protokol untuk eksporter OTLP, berlaku untuk semua sinyal. Claude Code tidak memiliki protokol default, jadi atur ini atau variabel protokol spesifik sinyal untuk setiap eksporter `otlp` yang Anda aktifkan | `grpc`, `http/json`, `http/protobuf` |

118| `OTEL_EXPORTER_OTLP_ENDPOINT` | Titik akhir pengumpul OTLP untuk semua sinyal | `http://localhost:4317` |118| `OTEL_EXPORTER_OTLP_ENDPOINT` | Endpoint kolektor OTLP untuk semua sinyal | `http://localhost:4317` |

119| `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` | Protokol untuk metrik, menimpa pengaturan umum | `grpc`, `http/json`, `http/protobuf` |119| `OTEL_EXPORTER_OTLP_METRICS_PROTOCOL` | Protokol untuk metrik, menimpa pengaturan umum | `grpc`, `http/json`, `http/protobuf` |

120| `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | Titik akhir metrik OTLP, menimpa pengaturan umum | `http://localhost:4318/v1/metrics` |120| `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` | Endpoint metrik OTLP, menimpa pengaturan umum | `http://localhost:4318/v1/metrics` |

121| `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` | Protokol untuk log, menimpa pengaturan umum | `grpc`, `http/json`, `http/protobuf` |121| `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` | Protokol untuk log, menimpa pengaturan umum | `grpc`, `http/json`, `http/protobuf` |

122| `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | Titik akhir log OTLP, menimpa pengaturan umum | `http://localhost:4318/v1/logs` |122| `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | Endpoint log OTLP, menimpa pengaturan umum | `http://localhost:4318/v1/logs` |

123| `OTEL_EXPORTER_OTLP_HEADERS` | Header autentikasi untuk OTLP | `Authorization=Bearer token` |123| `OTEL_EXPORTER_OTLP_HEADERS` | Header autentikasi untuk OTLP | `Authorization=Bearer token` |

124| `OTEL_EXPORTER_OTLP_METRICS_HEADERS` | Header autentikasi untuk metrik, digabungkan dengan header umum | `Authorization=Bearer token` |124| `OTEL_EXPORTER_OTLP_METRICS_HEADERS` | Header autentikasi untuk metrik, digabung dengan header umum | `Authorization=Bearer token` |

125| `OTEL_EXPORTER_OTLP_LOGS_HEADERS` | Header autentikasi untuk log, digabungkan dengan header umum | `Authorization=Bearer token` |125| `OTEL_EXPORTER_OTLP_LOGS_HEADERS` | Header autentikasi untuk log, digabung dengan header umum | `Authorization=Bearer token` |

126| `OTEL_METRIC_EXPORT_INTERVAL` | Interval ekspor dalam milidetik (default: 60000) | `5000`, `60000` |126| `OTEL_METRIC_EXPORT_INTERVAL` | Interval ekspor dalam milidetik (default: 60000) | `5000`, `60000` |

127| `OTEL_LOGS_EXPORT_INTERVAL` | Interval ekspor log dalam milidetik (default: 5000) | `1000`, `10000` |127| `OTEL_LOGS_EXPORT_INTERVAL` | Interval ekspor log dalam milidetik (default: 5000) | `1000`, `10000` |

128| `OTEL_LOG_USER_PROMPTS` | Aktifkan pencatatan konten prompt pengguna (default: dinonaktifkan) | `1` untuk mengaktifkan |128| `OTEL_LOG_USER_PROMPTS` | Aktifkan pencatatan konten prompt pengguna (default: dinonaktifkan) | `1` untuk mengaktifkan |

129| `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 |129| `OTEL_LOG_ASSISTANT_RESPONSES` | Aktifkan pencatatan teks respons asisten pada event `assistant_response` (default: dinonaktifkan). Ketika tidak diatur, kembali ke nilai `OTEL_LOG_USER_PROMPTS`. Memerlukan Claude Code v2.1.193 atau lebih baru | `1` untuk mengaktifkan, `0` untuk tetap disembunyikan |

130| `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 |130| `OTEL_LOG_TOOL_DETAILS` | Aktifkan pencatatan parameter alat dan argumen input dalam event alat dan atribut span jejak: perintah Bash, nama server dan alat MCP, nama skill, nama workflow yang ditulis pengguna, dan input alat. Juga mengaktifkan nama perintah kustom, plugin, dan MCP pada event `user_prompt`, dan nama asli agen, skill, plugin, dan server serta nama alat MCP pada [penghitung biaya dan token](#cost-counter) (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 |

131| `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 |131| `OTEL_LOG_TOOL_CONTENT` | Aktifkan pencatatan konten alat dalam [`tool.output` span event](#tool-output-span-event) (default: dinonaktifkan). Atribut span membawa konten alat di bawah [gerbang mereka sendiri](#new-context-gates). Memerlukan [tracing](#traces-beta). Konten dipotong pada batas konten (60 KB secara default) | `1` untuk mengaktifkan |

132| `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 |132| `OTEL_LOG_MANAGED_SETTINGS` | Tambahkan pengaturan terkelola yang disembunyikan, dan digest SHA-256 dari pengaturan sebelum penyembunyian, ke event [managed settings resolved](#managed-settings-resolved-event) (default: dinonaktifkan). Nilai dalam pengaturan proyek atau lokal tidak mengaktifkannya. Memerlukan Claude Code v2.1.274 atau lebih baru | `1` untuk mengaktifkan |

133| `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 |133| `OTEL_LOG_RAW_API_BODIES` | Pancarkan permintaan dan respons JSON API Pesan Anthropic lengkap sebagai event log `api_request_body` / `api_response_body` (default: dinonaktifkan). Badan mencakup seluruh riwayat percakapan. Mengaktifkan ini menyiratkan persetujuan untuk semua yang `OTEL_LOG_USER_PROMPTS`, `OTEL_LOG_TOOL_DETAILS`, dan `OTEL_LOG_TOOL_CONTENT` akan ungkapkan | `1` untuk badan inline yang dipotong pada batas konten (60 KB secara default), atau `file:<dir>` untuk badan yang tidak dipotong di disk dengan pointer `body_ref` dalam event |

134| `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` |134| `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` | Batas konten: panjang maksimum atribut yang membawa konten seperti respons model, konten alat, prompt sistem, dan badan API mentah, termasuk penanda pemotongan, dalam unit kode UTF-16 (default: 61440, yaitu 60 KB). Default diukur untuk backend yang membatasi nilai atribut pada 64 KB; naikkan hanya jika backend Anda menerima nilai yang lebih besar, atau turunkan untuk mengurangi volume telemetri. Ketika batas atribut SDK OpenTelemetry, `OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT` atau salah satu varian logrecord dan span-nya, diatur lebih rendah, Claude Code memotong pada nilai yang lebih kecil itu sehingga penanda `[TRUNCATED ...]` tetap dalam batas SDK. Memerlukan Claude Code v2.1.214 atau lebih baru | `262144` |

135| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferensi temporalitas metrik (default: `delta`). Atur ke `cumulative` jika backend Anda mengharapkan temporalitas kumulatif | `delta`, `cumulative` |135| `OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE` | Preferensi temporalitas metrik (default: `delta`). Atur ke `cumulative` jika backend Anda mengharapkan temporalitas kumulatif | `delta`, `cumulative` |

136| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval untuk menyegarkan header dinamis (default: 1740000ms / 29 menit) | `900000` |136| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | Interval untuk menyegarkan header dinamis (default: 1740000ms / 29 menit) | `900000` |

137 137 

138Untuk protokol `http/protobuf` dan `http/json`, Claude Code mengirim setiap permintaan ekspor dengan header `Content-Length`. Sebelum v2.1.212, versi Claude Code dari v2.1.191 ke depan mengirim permintaan ini dengan chunked transfer encoding; Azure Monitor dan titik akhir lain yang memerlukan panjang yang dideklarasikan menolaknya dengan kesalahan `411 Length Required` atau `400`.138Untuk protokol `http/protobuf` dan `http/json`, Claude Code mengirim setiap permintaan ekspor dengan header `Content-Length`. Sebelum v2.1.212, versi Claude Code dari v2.1.191 ke depan mengirim permintaan ini dengan pengkodean transfer chunked; Azure Monitor dan endpoint lain yang memerlukan panjang yang dideklarasikan menolaknya dengan error `411 Length Required` atau `400`.

139 139 

140<h3 id="mtls-authentication">140<h3 id="mtls-authentication">

141 Autentikasi mTLS141 Autentikasi mTLS

142</h3>142</h3>

143 143 

144Cara Anda mengonfigurasi sertifikat klien untuk pengekspor OTLP tergantung pada protokol OTLP yang digunakan untuk sinyal tersebut, diatur melalui `OTEL_EXPORTER_OTLP_PROTOCOL` atau override per-sinyal. Konfigurasi yang sama berlaku untuk metrik, log, dan traces.144Cara Anda mengonfigurasi sertifikat klien untuk eksporter OTLP tergantung pada protokol OTLP yang digunakan untuk sinyal tersebut, diatur melalui `OTEL_EXPORTER_OTLP_PROTOCOL` atau penggantian spesifik sinyal. Konfigurasi yang sama berlaku untuk metrik, log, dan jejak.

145 145 

146| Protokol | Variabel sertifikat klien | Percayai CA pengumpul dengan |146| Protokol | Variabel sertifikat klien | Percayai CA kolektor dengan |

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

148| `http/protobuf`, `http/json` | `CLAUDE_CODE_CLIENT_CERT`, `CLAUDE_CODE_CLIENT_KEY`, dan secara opsional `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`. Lihat [Konfigurasi jaringan](/docs/id/network-config#mtls-authentication) | `NODE_EXTRA_CA_CERTS` |148| `http/protobuf`, `http/json` | `CLAUDE_CODE_CLIENT_CERT`, `CLAUDE_CODE_CLIENT_KEY`, dan secara opsional `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE`. Lihat [Konfigurasi Jaringan](/docs/id/network-config#mtls-authentication) | `NODE_EXTRA_CA_CERTS` |

149| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` dan `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`, atau varian per-sinyal seperti `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` untuk menggunakan sertifikat berbeda per sinyal | `OTEL_EXPORTER_OTLP_CERTIFICATE` |149| `grpc` | `OTEL_EXPORTER_OTLP_CLIENT_KEY` dan `OTEL_EXPORTER_OTLP_CLIENT_CERTIFICATE`, atau varian spesifik sinyal seperti `OTEL_EXPORTER_OTLP_METRICS_CLIENT_KEY` untuk menggunakan sertifikat berbeda per sinyal | `OTEL_EXPORTER_OTLP_CERTIFICATE` |

150 150 

151Untuk `grpc`, SDK OpenTelemetry membaca variabel OTLP standar secara langsung, jadi konfigurasi yang ada yang menetapkan variabel metrik per-sinyal terus berfungsi. Pada mesin dengan pengaturan terkelola, Claude Code [mungkin menghapus kredensial dan titik akhir per-sinyal yang ditetapkan pengembang](#how-managed-settings-lock-the-otlp-destination) saat startup.151Untuk `grpc`, SDK OpenTelemetry membaca variabel OTLP standar secara langsung, jadi konfigurasi yang ada yang menetapkan variabel metrik spesifik sinyal terus berfungsi. Pada mesin dengan pengaturan terkelola, Claude Code [dapat menghapus kredensial dan endpoint spesifik sinyal yang ditetapkan pengembang](#how-managed-settings-lock-the-otlp-destination) saat startup.

152 152 

153<h3 id="metrics-cardinality-control">153<h3 id="metrics-cardinality-control">

154 Kontrol kardinalitas metrik154 Kontrol kardinalitas metrik


158 158 

159| Variabel Lingkungan | Deskripsi | Nilai Default | Contoh untuk Menonaktifkan |159| Variabel Lingkungan | Deskripsi | Nilai Default | Contoh untuk Menonaktifkan |

160| - | - | - | - |160| - | - | - | - |

161| `OTEL_METRICS_INCLUDE_SESSION_ID` | Sertakan atribut session.id dalam metrik | `true` | `false` |161| `OTEL_METRICS_INCLUDE_SESSION_ID` | Sertakan atribut session.id dan, pada sesi cloud, ccr.session.id dalam metrik | `true` | `false` |

162| `OTEL_METRICS_INCLUDE_VERSION` | Sertakan atribut app.version dalam metrik | `false` | `true` |162| `OTEL_METRICS_INCLUDE_VERSION` | Sertakan atribut app.version dalam metrik | `false` | `true` |

163| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Sertakan atribut user.account\_uuid dan user.account\_id dalam metrik | `true` | `false` |163| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Sertakan atribut user.account\_uuid dan user.account\_id dalam metrik | `true` | `false` |

164| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Sertakan atribut app.entrypoint dalam metrik | `false` | `true` |164| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Sertakan atribut app.entrypoint dalam metrik | `false` | `true` |

165| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Sertakan kunci dari `OTEL_RESOURCE_ATTRIBUTES` sebagai atribut pada titik data metrik | `true` | `false` |165| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Sertakan kunci dari `OTEL_RESOURCE_ATTRIBUTES` sebagai atribut pada titik data metrik | `true` | `false` |

166| `OTEL_METRICS_INCLUDE_REPOSITORY` | Sertakan atribut identitas repositori `vcs.*` [repository attributes](#repository-attributes) pada metrik dan acara. Memerlukan Claude Code v2.1.269 atau lebih baru | `false` | `true` |166| `OTEL_METRICS_INCLUDE_REPOSITORY` | Sertakan atribut identitas repositori `vcs.*` [repository identity attributes](#repository-attributes) pada metrik dan event. Memerlukan Claude Code v2.1.269 atau lebih baru | `false` | `true` |

167 167 

168Kardinalitas yang lebih rendah umumnya berarti kinerja yang lebih baik dan biaya penyimpanan yang lebih rendah tetapi data yang kurang granular untuk analisis.168Kardinalitas yang lebih rendah umumnya berarti kinerja yang lebih baik dan biaya penyimpanan yang lebih rendah tetapi data yang kurang granular untuk analisis.

169 169 


171 Traces (beta)171 Traces (beta)

172</h3>172</h3>

173 173 

174Distributed tracing mengekspor spans yang menghubungkan setiap prompt pengguna ke permintaan API dan eksekusi alat yang dipicunya, sehingga Anda dapat melihat permintaan lengkap sebagai satu trace di backend tracing Anda.174Distributed tracing mengekspor span yang menghubungkan setiap prompt pengguna ke permintaan API dan eksekusi alat yang dipicunya, sehingga Anda dapat melihat permintaan lengkap sebagai jejak tunggal di backend tracing Anda.

175 175 

176Tracing dimatikan secara default. Untuk mengaktifkannya, atur `CLAUDE_CODE_ENABLE_TELEMETRY=1` dan `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`, kemudian atur `OTEL_TRACES_EXPORTER` untuk memilih tempat spans dikirim. Traces menggunakan kembali [konfigurasi OTLP umum](#common-configuration-variables) untuk titik akhir, protokol, header, dan [mTLS](#mtls-authentication). Pada mesin dengan pengaturan terkelola, Claude Code [mungkin menghapus kredensial dan titik akhir per-sinyal yang ditetapkan pengembang](#how-managed-settings-lock-the-otlp-destination) saat startup.176Tracing dimatikan secara default. Untuk mengaktifkannya, atur `CLAUDE_CODE_ENABLE_TELEMETRY=1` dan `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1`, kemudian atur `OTEL_TRACES_EXPORTER` untuk memilih tempat span dikirim. Traces menggunakan kembali [konfigurasi OTLP umum](#common-configuration-variables) untuk endpoint, protokol, header, dan [mTLS](#mtls-authentication). Pada mesin dengan pengaturan terkelola, Claude Code [dapat menghapus kredensial dan endpoint spesifik sinyal yang ditetapkan pengembang](#how-managed-settings-lock-the-otlp-destination) saat startup.

177 177 

178| Variabel Lingkungan | Deskripsi | Nilai Contoh |178| Variabel Lingkungan | Deskripsi | Nilai Contoh |

179| - | - | - |179| - | - | - |

180| `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` | Aktifkan span tracing (diperlukan). `ENABLE_ENHANCED_TELEMETRY_BETA` juga diterima | `1` |180| `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` | Aktifkan span tracing (diperlukan). `ENABLE_ENHANCED_TELEMETRY_BETA` juga diterima | `1` |

181| `OTEL_TRACES_EXPORTER` | Jenis pengekspor traces, dipisahkan koma. Gunakan `none` untuk menonaktifkan | `console`, `otlp`, `none` |181| `OTEL_TRACES_EXPORTER` | Jenis eksporter jejak, dipisahkan koma. Gunakan `none` untuk menonaktifkan | `console`, `otlp`, `none` |

182| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | Protokol untuk traces, menimpa `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc`, `http/json`, `http/protobuf` |182| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | Protokol untuk jejak, menimpa `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc`, `http/json`, `http/protobuf` |

183| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | Titik akhir traces OTLP, menimpa `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:4318/v1/traces` |183| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | Endpoint jejak OTLP, menimpa `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:4318/v1/traces` |

184| `OTEL_EXPORTER_OTLP_TRACES_HEADERS` | Header autentikasi untuk traces, digabungkan dengan `OTEL_EXPORTER_OTLP_HEADERS` | `Authorization=Bearer token` |184| `OTEL_EXPORTER_OTLP_TRACES_HEADERS` | Header autentikasi untuk jejak, digabung dengan `OTEL_EXPORTER_OTLP_HEADERS` | `Authorization=Bearer token` |

185| `OTEL_TRACES_EXPORT_INTERVAL` | Interval ekspor batch span dalam milidetik (default: 5000) | `1000`, `10000` |185| `OTEL_TRACES_EXPORT_INTERVAL` | Interval ekspor batch span dalam milidetik (default: 5000) | `1000`, `10000` |

186 186 

187Spans menyunting teks prompt pengguna, detail input alat, dan konten alat secara default. Atur `OTEL_LOG_USER_PROMPTS=1`, `OTEL_LOG_TOOL_DETAILS=1`, dan `OTEL_LOG_TOOL_CONTENT=1` untuk menyertakannya.187Span menyembunyikan teks prompt pengguna, detail input alat, dan konten alat secara default. Atur `OTEL_LOG_USER_PROMPTS=1`, `OTEL_LOG_TOOL_DETAILS=1`, dan `OTEL_LOG_TOOL_CONTENT=1` untuk menyertakannya.

188 188 

189Saat tracing aktif, subproses Bash dan PowerShell secara otomatis mewarisi variabel lingkungan `TRACEPARENT` yang berisi konteks trace W3C dari span eksekusi alat yang aktif. Ini memungkinkan subproses apa pun yang membaca `TRACEPARENT` untuk membuat parent spans-nya di bawah trace yang sama, memungkinkan distributed tracing end-to-end melalui skrip dan perintah yang dijalankan Claude.189Ketika tracing aktif, subproses Bash dan PowerShell secara otomatis mewarisi variabel lingkungan `TRACEPARENT` yang berisi konteks jejak W3C dari span eksekusi alat yang aktif. Ini memungkinkan subproses apa pun yang membaca `TRACEPARENT` untuk membuat span-nya sendiri sebagai anak dari jejak yang sama, memungkinkan distributed tracing end-to-end melalui skrip dan perintah yang Claude jalankan.

190 190 

191Saat tracing aktif dan Claude Code terhubung langsung ke API Anthropic, setiap permintaan model membawa header W3C `traceparent` yang diatur ke konteks span `claude_code.llm_request`, dan header `traceresponse` API dicatat sebagai link span. Bersama-sama ini menghubungkan spans sisi klien Claude Code ke trace sisi server melalui perantara yang sesuai. Outbound HTTP MCP requests membawa `traceparent` dengan cara yang sama. Header tidak dikirim ke penyedia pihak ketiga.191Ketika tracing aktif dan Claude Code terhubung langsung ke API Anthropic, setiap permintaan model membawa header W3C `traceparent` yang diatur ke konteks span `claude_code.llm_request`, dan header `traceresponse` API dicatat sebagai link span. Bersama-sama ini menghubungkan span sisi klien Claude Code ke jejak sisi server melalui perantara yang sesuai. Permintaan HTTP MCP keluar membawa `traceparent` dengan cara yang sama. Header tidak dikirim ke penyedia pihak ketiga.

192 192 

193Secara default, header `traceparent` pada permintaan model dan HTTP MCP dikirim hanya saat `ANTHROPIC_BASE_URL` tidak diatur atau menunjuk ke API Anthropic, karena beberapa proxy menolak header yang tidak dikenali. Variabel `TRACEPARENT` subproses dikendalikan oleh switch yang sama untuk konsistensi. Jika Anda menjalankan Claude Code melalui proxy `ANTHROPIC_BASE_URL` kustom dan ingin konteks trace dipropagasi, atur `CLAUDE_CODE_PROPAGATE_TRACEPARENT=1`.193Secara default, header `traceparent` pada permintaan model dan HTTP MCP dikirim hanya ketika `ANTHROPIC_BASE_URL` tidak diatur atau menunjuk ke API Anthropic, karena beberapa proxy menolak header yang tidak dikenali. Variabel `TRACEPARENT` subproses dikendalikan oleh switch yang sama untuk konsistensi. Jika Anda menjalankan Claude Code melalui proxy `ANTHROPIC_BASE_URL` kustom dan ingin konteks jejak dipropagasi, atur `CLAUDE_CODE_PROPAGATE_TRACEPARENT=1`.

194 194 

195Dalam sesi Agent SDK dan non-interaktif yang dimulai dengan `-p`, Claude Code juga membaca `TRACEPARENT` dan `TRACESTATE` dari lingkungannya sendiri saat memulai setiap span interaksi. Ini memungkinkan proses embedding untuk melewatkan konteks trace W3C aktifnya ke dalam subproses sehingga spans Claude Code muncul sebagai anak dari distributed trace pemanggil. Sesi interaktif mengabaikan `TRACEPARENT` inbound untuk menghindari secara tidak sengaja mewarisi nilai ambient dari lingkungan CI atau container.195Dalam sesi Agent SDK dan non-interaktif yang dimulai dengan `-p`, Claude Code juga membaca `TRACEPARENT` dan `TRACESTATE` dari lingkungannya sendiri saat memulai setiap span interaksi. Ini memungkinkan proses embedding melewatkan konteks jejak W3C aktifnya ke subproses sehingga span Claude Code muncul sebagai anak dari jejak distributed pemanggil. Sesi interaktif mengabaikan `TRACEPARENT` masuk untuk menghindari secara tidak sengaja mewarisi nilai ambient dari lingkungan CI atau kontainer.

196 196 

197Konteks trace inbound juga berlaku untuk [events](#events). Dalam sesi Agent SDK dan `-p` dengan `TRACEPARENT` diatur, setiap catatan log acara OTLP membawa nilai `trace_id` dan `span_id` yang menghubungkannya ke trace aplikasi Anda, bahkan saat pengekspor traces tidak dikonfigurasi, sehingga backend logging Anda dapat mengorelasikan acara dengan sisa trace.197Konteks jejak masuk juga berlaku untuk [event](#events). Dalam sesi Agent SDK dan `-p` dengan `TRACEPARENT` diatur, setiap catatan log event OTLP membawa nilai `trace_id` dan `span_id` yang menghubungkannya ke jejak aplikasi Anda, bahkan ketika eksporter jejak tidak dikonfigurasi, sehingga backend logging Anda dapat mengorelasikan event dengan sisa jejak.

198 198 

199Catatan yang dipancarkan saat interaksi aktif membawa ID span interaksi, bahkan saat Claude Code memancarkannya di luar konteks async span, seperti dalam callback prompt izin atau untuk catatan yang di-buffer selama startup dan diekspor nanti. Catatan yang dipancarkan tanpa span interaksi aktif membawa ID `TRACEPARENT` inbound secara langsung. Sebelum v2.1.214, catatan yang dipancarkan di luar konteks async span membawa ID `TRACEPARENT` inbound sebagai gantinya dari ID span. Sebelum v2.1.212, catatan acara yang dipancarkan di luar span aktif tidak membawa `trace_id` atau `span_id`.199Catatan yang dipancarkan saat interaksi aktif membawa ID span interaksi, bahkan ketika Claude Code memancarkannya di luar konteks async span, seperti dalam callback prompt izin atau untuk catatan yang di-buffer selama startup dan diekspor nanti. Catatan yang dipancarkan tanpa span interaksi aktif membawa ID `TRACEPARENT` masuk secara langsung. Sebelum v2.1.214, catatan yang dipancarkan di luar konteks async span membawa ID `TRACEPARENT` masuk sebagai gantinya. Sebelum v2.1.212, catatan event yang dipancarkan di luar span aktif tidak membawa `trace_id` atau `span_id`.

200 200 

201<h4 id="span-hierarchy">201<h4 id="span-hierarchy">

202 Hierarki span202 Hierarki span

203</h4>203</h4>

204 204 

205Setiap prompt pengguna memulai span root `claude_code.interaction`. Panggilan API, panggilan alat, dan eksekusi hook dicatat sebagai anak-anaknya. Spans alat memiliki dua span anak mereka sendiri: satu untuk waktu yang dihabiskan menunggu keputusan izin dan satu untuk eksekusi itu sendiri. Ketika alat Agent atau alat Task legacy menghasilkan subagent, spans API dan alat subagent bersarang di bawah span `claude_code.tool` induk.205Setiap prompt pengguna memulai span root `claude_code.interaction`. Panggilan API, panggilan alat, dan eksekusi hook dicatat sebagai anak-anaknya. Span alat memiliki dua span anak mereka sendiri: satu untuk waktu yang dihabiskan menunggu keputusan izin dan satu untuk eksekusi itu sendiri. Ketika alat Agent, atau alat Task warisan, memunculkan subagen, span API dan alat subagen bersarang di bawah span `claude_code.tool` induk.

206 206 

207```text theme={null}207```text theme={null}

208claude_code.interaction208claude_code.interaction

209├── claude_code.llm_request209├── claude_code.llm_request

210├── claude_code.hook (memerlukan detailed beta tracing)210├── claude_code.hook (requires detailed beta tracing)

211└── claude_code.tool211└── claude_code.tool

212 ├── claude_code.tool.blocked_on_user212 ├── claude_code.tool.blocked_on_user

213 ├── claude_code.tool.execution213 ├── claude_code.tool.execution

214 └── (Agent tool) subagent claude_code.llm_request / claude_code.tool spans214 └── (Agent tool) subagent claude_code.llm_request / claude_code.tool spans

215```215```

216 216 

217Dalam sesi Agent SDK dan `claude -p`, `claude_code.interaction` itu sendiri menjadi anak dari span pemanggil saat `TRACEPARENT` diatur dalam lingkungan.217Dalam sesi Agent SDK dan `claude -p`, `claude_code.interaction` itu sendiri menjadi anak dari span pemanggil ketika `TRACEPARENT` diatur dalam lingkungan.

218 218 

219Saat hook `PreToolUse` [menunda panggilan alat](/docs/id/hooks#defer-a-tool-call-for-later), Claude Code menyimpan konteks trace dari giliran yang menundanya. Saat Anda melanjutkan sesi dan alat dijalankan kembali, spans alat bergabung dengan trace giliran sebelumnya sebagai anak dari span `claude_code.interaction` giliran.219Ketika hook `PreToolUse` [menunda panggilan alat](/docs/id/hooks#defer-a-tool-call-for-later), Claude Code menyimpan konteks jejak dari giliran yang menundanya. Ketika Anda melanjutkan sesi dan alat berjalan kembali, span alat bergabung dengan jejak giliran sebelumnya sebagai anak dari span `claude_code.interaction` giliran.

220 220 

221<h4 id="span-attributes">221<h4 id="span-attributes">

222 Atribut span222 Atribut span

223</h4>223</h4>

224 224 

225Setiap span membawa [atribut standar](#standard-attributes) ditambah atribut `span.type` yang cocok dengan namanya. Tabel di bawah mencantumkan atribut tambahan yang diatur pada setiap span. Spans `llm_request`, `tool.execution`, dan `hook` menetapkan status OpenTelemetry `ERROR` saat mereka mencatat kegagalan; span lainnya selalu berakhir dengan status `UNSET`.225Setiap span membawa [atribut standar](#standard-attributes) ditambah atribut `span.type` yang cocok dengan namanya. Tabel di bawah mencantumkan atribut tambahan yang diatur pada setiap span. Span `llm_request`, `tool.execution`, dan `hook` menetapkan status OpenTelemetry `ERROR` ketika mereka mencatat kegagalan; span lainnya selalu berakhir dengan status `UNSET`.

226 226 

227**`claude_code.interaction`**227**`claude_code.interaction`**

228 228 

229| Atribut | Deskripsi | Gated by |229| Atribut | Deskripsi | Gerbang oleh |

230| - | - | - |230| - | - | - |

231| `user_prompt` | Teks prompt. Nilai adalah `<REDACTED>` kecuali gate diatur | `OTEL_LOG_USER_PROMPTS` |231| `user_prompt` | Teks prompt. Nilai adalah `<REDACTED>` kecuali gerbang diatur | `OTEL_LOG_USER_PROMPTS` |

232| `user_prompt_length` | Panjang prompt dalam karakter | |232| `user_prompt_length` | Panjang prompt dalam karakter | |

233| `interaction.sequence` | Penghitung berbasis 1 dari interaksi, dihitung per proses Claude Code daripada per sesi, seperti yang dijelaskan untuk [`event.sequence`](#event-correlation-attributes) | |233| `interaction.sequence` | Penghitung berbasis 1 dari interaksi, dihitung per proses Claude Code daripada per sesi, seperti yang dijelaskan untuk [`event.sequence`](#event-correlation-attributes) | |

234| `parent.source` | Bagaimana span mendapatkan parent trace-nya: `env` saat itu parent di bawah `TRACEPARENT` inbound, `none` saat itu memulai trace-nya sendiri. Memerlukan Claude Code v2.1.268 atau lebih baru | |234| `parent.source` | Bagaimana span mendapat induk jejak: `env` ketika itu induk di bawah `TRACEPARENT` masuk, `none` ketika itu memulai jejak sendiri. Memerlukan Claude Code v2.1.268 atau lebih baru | |

235| `interaction.duration_ms` | Durasi wall-clock dari giliran | |235| `interaction.duration_ms` | Durasi wall-clock dari giliran | |

236 236 

237**`claude_code.llm_request`**237**`claude_code.llm_request`**

238 238 

239| Atribut | Deskripsi | Gated by |239| Atribut | Deskripsi | Gerbang oleh |

240| - | - | - |240| - | - | - |

241| `model` | Pengidentifikasi model | |241| `model` | Pengenal model | |

242| `gen_ai.system` | Selalu `anthropic`. Konvensi semantik GenAI OpenTelemetry | |242| `gen_ai.system` | Selalu `anthropic`. Konvensi semantik GenAI OpenTelemetry | |

243| `gen_ai.request.model` | Nilai yang sama dengan `model`. Konvensi semantik GenAI OpenTelemetry | |243| `gen_ai.request.model` | Nilai yang sama dengan `model`. Konvensi semantik GenAI OpenTelemetry | |

244| `query_source` | Subsistem yang mengeluarkan permintaan, seperti `repl_main_thread` atau nama subagent | `ENABLE_BETA_TRACING_DETAILED` |244| `query_source` | Subsistem yang mengeluarkan permintaan, seperti `repl_main_thread` atau nama subagen | `ENABLE_BETA_TRACING_DETAILED` |

245| `query_source_safe` | Bentuk terbatas dari `query_source`, dipancarkan apakah atau tidak detailed beta tracing aktif, dengan nilai seperti `repl_main_thread` atau `agent.builtin.general-purpose`. `:` menjadi `.` dan agen yang dinamai pengguna muncul sebagai `agent.custom`. Memerlukan Claude Code v2.1.268 atau lebih baru | |245| `query_source_safe` | Bentuk terbatas dari `query_source`, dipancarkan apakah atau tidak tracing beta terperinci aktif, dengan nilai seperti `repl_main_thread` atau `agent.builtin.general-purpose`. `:` menjadi `.` dan agen bernama pengguna muncul sebagai `agent.custom`. Memerlukan Claude Code v2.1.268 atau lebih baru | |

246| `agent_id` | Pengidentifikasi subagent atau rekan kerja yang mengeluarkan permintaan. Tidak ada pada sesi utama | |246| `agent_id` | Pengenal subagen atau rekan kerja yang mengeluarkan permintaan. Tidak ada pada sesi utama | |

247| `parent_agent_id` | Pengidentifikasi agen yang menghasilkan yang ini. Tidak ada untuk sesi utama dan untuk agen yang dihasilkan langsung darinya | |247| `parent_agent_id` | Pengenal agen yang memunculkan yang ini. Tidak ada untuk sesi utama dan untuk agen yang dimunculkan langsung darinya | |

248| `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 | |248| `workflow.run_id` | Pengenal jalankan dari alat [Workflow](/docs/id/workflows) yang memunculkan agen ini, dengan awalan `wf_`. Tidak ada untuk agen yang tidak dimunculkan oleh workflow | |

249| `workflow.name` | Nama workflow yang menghasilkan agen ini. Nama yang ditulis pengguna diganti dengan `custom` kecuali gate diatur | `OTEL_LOG_TOOL_DETAILS` |249| `workflow.name` | Nama workflow yang memunculkan agen ini. Nama yang ditulis pengguna diganti dengan `custom` kecuali gerbang diatur | `OTEL_LOG_TOOL_DETAILS` |

250| `speed` | `fast` atau `normal` | |250| `speed` | `fast` atau `normal` | |

251| `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 | |251| `effort` | [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan: `low`, `medium`, `high`, `xhigh`, atau `max`. Tidak ada ketika Claude Code tidak mengirim tingkat upaya, misalnya pada model yang tidak mendukung upaya. Memerlukan Claude Code v2.1.274 atau lebih baru | |

252| `llm_request.context` | `interaction`, `tool`, atau `standalone` tergantung pada span induk | |252| `llm_request.context` | `interaction`, `tool`, atau `standalone` tergantung pada span induk | |

253| `duration_ms` | Durasi wall-clock termasuk retry | |253| `duration_ms` | Durasi wall-clock termasuk percobaan ulang | |

254| `ttft_ms` | Waktu ke token pertama dalam milidetik | |254| `ttft_ms` | Waktu ke token pertama dalam milidetik | |

255| `first_content_ms` | Waktu dari awal permintaan ke blok konten pertama dari upaya yang berhasil, dalam milidetik. Tidak ada pada permintaan yang kembali ke jalur non-streaming. Memerlukan Claude Code v2.1.268 atau lebih baru | |255| `first_content_ms` | Waktu dari awal permintaan ke blok konten pertama dari upaya yang berhasil, dalam milidetik. Tidak ada pada permintaan yang kembali ke jalur non-streaming. Memerlukan Claude Code v2.1.268 atau lebih baru | |

256| `input_tokens` | Jumlah token input dari blok penggunaan API | |256| `input_tokens` | Jumlah token input dari blok penggunaan API | |

257| `output_tokens` | Jumlah token output | |257| `output_tokens` | Jumlah token output | |

258| `cache_read_tokens` | Token yang dibaca dari prompt cache | |258| `cache_read_tokens` | Token yang dibaca dari cache prompt | |

259| `cache_creation_tokens` | Token yang ditulis ke prompt cache | |259| `cache_creation_tokens` | Token yang ditulis ke cache prompt | |

260| `request_id` | ID permintaan API Anthropic dari header respons `request-id` | |260| `request_id` | ID permintaan API. Nilai yang sama dengan atribut korelasi event `request_id` [event correlation attribute](#event-correlation-attributes) | |

261| `gen_ai.response.id` | Nilai yang sama dengan `request_id`. Konvensi semantik GenAI OpenTelemetry | |261| `gen_ai.response.id` | Nilai yang sama dengan `request_id`. Konvensi semantik GenAI OpenTelemetry | |

262| `client_request_id` | `x-client-request-id` yang dihasilkan klien dari upaya terakhir | |262| `client_request_id` | `x-client-request-id` yang dihasilkan klien dari upaya terakhir | |

263| `attempt` | Total upaya yang dilakukan untuk permintaan ini | |263| `attempt` | Total upaya yang dilakukan untuk permintaan ini | |

264| `success` | `true` atau `false` | |264| `success` | `true` atau `false` | |

265| `status_code` | Kode status HTTP saat permintaan gagal | |265| `status_code` | Kode status HTTP ketika permintaan gagal | |

266| `error` | Pesan kesalahan saat permintaan gagal | |266| `error` | Pesan kesalahan ketika permintaan gagal | |

267| `error_class` | Token kelas kesalahan pendek saat permintaan gagal, seperti `api_timeout` atau `server_overload`. Memerlukan Claude Code v2.1.268 atau lebih baru | |267| `error_class` | Token kelas kesalahan pendek ketika permintaan gagal, seperti `api_timeout` atau `server_overload`. Memerlukan Claude Code v2.1.268 atau lebih baru | |

268| `response.has_tool_call` | `true` saat respons berisi blok tool-use | |268| `response.has_tool_call` | `true` ketika respons berisi blok tool-use | |

269| `stop_reason` | API response `stop_reason`, seperti `end_turn`, `tool_use`, `max_tokens`, `stop_sequence`, `pause_turn`, atau `refusal` | |269| `stop_reason` | API response `stop_reason`, seperti `end_turn`, `tool_use`, `max_tokens`, `stop_sequence`, `pause_turn`, atau `refusal` | |

270| `gen_ai.response.finish_reasons` | Nilai yang sama dengan `stop_reason`, dibungkus dalam array string. Konvensi semantik GenAI OpenTelemetry | |270| `gen_ai.response.finish_reasons` | Nilai yang sama dengan `stop_reason`, dibungkus dalam array string. Konvensi semantik GenAI OpenTelemetry | |

271 271 

272Setiap upaya retry juga dicatat sebagai acara span `gen_ai.request.attempt` dengan atribut `attempt` dan `client_request_id`.272Setiap upaya percobaan ulang juga dicatat sebagai event span `gen_ai.request.attempt` dengan atribut `attempt` dan `client_request_id`.

273 273 

274**`claude_code.tool`**274**`claude_code.tool`**

275 275 

276| Atribut | Deskripsi | Gated by |276| Atribut | Deskripsi | Gerbang oleh |

277| - | - | - |277| - | - | - |

278| `tool_name` | Nama alat | |278| `tool_name` | Nama alat | |

279| `tool_name_safe` | Bentuk `tool_name` yang tidak membawa nama yang dipilih pengguna. Nama alat bawaan lulus verbatim. Nama alat MCP muncul sebagai `mcp_other`, kecuali nama alat yang cocok dengan beberapa bentuk tetap, seperti alat `playwright` yang dinamai `browser_*`, yang lulus verbatim. Memerlukan Claude Code v2.1.268 atau lebih baru | |279| `tool_name_safe` | Bentuk `tool_name` yang tidak membawa nama yang dipilih pengguna. Nama alat bawaan lulus verbatim. Nama alat MCP muncul sebagai `mcp_other`, kecuali nama alat yang cocok dengan beberapa bentuk tetap, seperti alat `playwright` bernama `browser_*`, yang lulus verbatim. Memerlukan Claude Code v2.1.268 atau lebih baru | |

280| `bash_command_class` | Untuk alat Bash: kategori program pertama perintah dari daftar tetap, seperti `vcs` atau `package_manager`. `other` untuk program di luar daftar, `unparsed` saat baris tidak dapat diuraikan. Memerlukan Claude Code v2.1.268 atau lebih baru | |280| `bash_command_class` | Untuk alat Bash: kategori program pertama perintah dari daftar tetap, seperti `vcs` atau `package_manager`. `other` untuk program di luar daftar, `unparsed` ketika baris tidak dapat diuraikan. Memerlukan Claude Code v2.1.268 atau lebih baru | |

281| `bash_argv0` | Untuk alat Bash: program pertama perintah saat itu berada di daftar tetap yang sama, seperti `git` atau `npm`. `other` untuk program apa pun di luar daftar. Memerlukan Claude Code v2.1.268 atau lebih baru | |281| `bash_argv0` | Untuk alat Bash: program pertama perintah ketika itu ada di daftar tetap yang sama, seperti `git` atau `npm`. `other` untuk program apa pun di luar daftar. Memerlukan Claude Code v2.1.268 atau lebih baru | |

282| `duration_ms` | Durasi wall-clock termasuk tunggu izin dan eksekusi | |282| `duration_ms` | Durasi wall-clock termasuk tunggu izin dan eksekusi | |

283| `result_tokens` | Ukuran token perkiraan dari hasil alat | |283| `result_tokens` | Ukuran token perkiraan dari hasil alat | |

284| `agent_id` | Pengidentifikasi subagent atau rekan kerja yang menjalankan alat. Tidak ada pada sesi utama | |284| `agent_id` | Pengenal subagen atau rekan kerja yang menjalankan alat. Tidak ada pada sesi utama | |

285| `parent_agent_id` | Pengidentifikasi agen yang menghasilkan yang ini. Tidak ada untuk sesi utama dan untuk agen yang dihasilkan langsung darinya | |285| `parent_agent_id` | Pengenal agen yang memunculkan yang ini. Tidak ada untuk sesi utama dan untuk agen yang dimunculkan langsung darinya | |

286| `workflow.run_id` | Pengidentifikasi run dari run alat Workflow yang menghasilkan agen ini, dengan awalan `wf_`. Tidak ada untuk agen yang tidak dihasilkan oleh workflow | |286| `workflow.run_id` | Pengenal jalankan dari alat Workflow yang memunculkan agen ini, dengan awalan `wf_`. Tidak ada untuk agen yang tidak dimunculkan oleh workflow | |

287| `workflow.name` | Nama workflow yang menghasilkan agen ini. Nama yang ditulis pengguna diganti dengan `custom` kecuali gate diatur | `OTEL_LOG_TOOL_DETAILS` |287| `workflow.name` | Nama workflow yang memunculkan agen ini. Nama yang ditulis pengguna diganti dengan `custom` kecuali gerbang diatur | `OTEL_LOG_TOOL_DETAILS` |

288| `tool_use_id` | ID blok `tool_use` model untuk panggilan ini. Cocok dengan `tool_use_id` pada acara [tool\_result](#tool-result-event) dan [tool\_decision](#tool-decision-event) serta dalam payload hook, sehingga Anda dapat menggabungkan span ke catatan tersebut | |288| `tool_use_id` | ID blok `tool_use` model untuk panggilan ini. Cocok dengan `tool_use_id` pada event [tool\_result](#tool-result-event) dan [tool\_decision](#tool-decision-event) serta dalam payload hook, sehingga Anda dapat menghubungkan span ke catatan tersebut | |

289| `gen_ai.tool.call.id` | Nilai yang sama dengan `tool_use_id`. Konvensi semantik GenAI OpenTelemetry | |289| `gen_ai.tool.call.id` | Nilai yang sama dengan `tool_use_id`. Konvensi semantik GenAI OpenTelemetry | |

290| `file_path` | Jalur file target untuk alat Read, Edit, dan Write | `OTEL_LOG_TOOL_DETAILS` |290| `file_path` | Jalur file target untuk alat Read, Edit, dan Write | `OTEL_LOG_TOOL_DETAILS` |

291| `full_command` | String perintah untuk alat Bash | `OTEL_LOG_TOOL_DETAILS` |291| `full_command` | String perintah untuk alat Bash | `OTEL_LOG_TOOL_DETAILS` |

292| `skill_name` | Nama skill untuk alat Skill | `OTEL_LOG_TOOL_DETAILS` |292| `skill_name` | Nama skill untuk alat Skill | `OTEL_LOG_TOOL_DETAILS` |

293| `subagent_type` | Jenis subagent untuk alat Agent atau alat Task legacy | `OTEL_LOG_TOOL_DETAILS` |293| `subagent_type` | Jenis subagen untuk alat Agent atau alat Task warisan | `OTEL_LOG_TOOL_DETAILS` |

294 294 

295<span id="tool-output-span-event" />**`tool.output` span event on `claude_code.tool`**295<span id="tool-output-span-event" />**`tool.output` span event pada `claude_code.tool`**

296 296 

297Jika Anda menetapkan `OTEL_LOG_TOOL_CONTENT=1`, panggilan Read dan Bash dapat mencatat acara span `tool.output` pada span `claude_code.tool`. Panggilan Edit dan Write mencatat satu hanya saat Anda juga menetapkan `OTEL_LOG_TOOL_DETAILS=1`. Variabel itu tidak dibatasi pada kedua alat tersebut, jadi periksa [barisnya dalam tabel konfigurasi](#common-configuration-variables) untuk argumen yang ditambahkannya di tempat lain.297Jika Anda menetapkan `OTEL_LOG_TOOL_CONTENT=1`, panggilan Read dan Bash dapat mencatat event span `tool.output` pada span `claude_code.tool`. Panggilan Edit dan Write mencatat satu hanya ketika Anda juga menetapkan `OTEL_LOG_TOOL_DETAILS=1`. Variabel itu tidak dibatasi pada kedua alat itu, jadi periksa [barisnya dalam tabel konfigurasi](#common-configuration-variables) untuk argumen yang ditambahkannya di tempat lain.

298 298 

299Claude Code menulis acara ini dari pengembalian yang berhasil dari panggilan alat, jadi panggilan yang menimbulkan kesalahan tidak mencatat apa pun, apa pun alatnya. Di antara panggilan yang memang kembali, itu tidak mencatat acara `tool.output` untuk:299Alat MCP, WebFetch, dan WebSearch juga mencatat event ini, pada Claude Code v2.1.283 atau lebih baru.

300 300 

301* Panggilan ke alat apa pun selain Read, Edit, Write, dan Bash, termasuk alat MCP dan WebFetch301Claude Code menulis event ini dari pengembalian sukses panggilan alat, jadi panggilan yang menimbulkan kesalahan tidak mencatat apa pun, apa pun alatnya. Di antara panggilan yang memang kembali, itu tidak mencatat event `tool.output` untuk:

302 

303* Panggilan ke alat apa pun selain Read, Edit, Write, Bash, WebFetch, WebSearch, dan alat MCP

302* Read yang mengembalikan apa pun selain teks file, seperti gambar, PDF, atau pembacaan ulang file yang isinya belum berubah304* Read yang mengembalikan apa pun selain teks file, seperti gambar, PDF, atau pembacaan ulang file yang isinya belum berubah

303* Panggilan Edit atau Write, kecuali Anda juga menetapkan `OTEL_LOG_TOOL_DETAILS=1`305* Panggilan Edit atau Write, kecuali Anda juga menetapkan `OTEL_LOG_TOOL_DETAILS=1`

306* Panggilan WebFetch atau WebSearch yang Claude Code pindahkan ke latar belakang karena Anda mengganggu giliran untuk [mengirim pesan antrian Anda segera](/docs/id/interactive-mode#when-claude-code-sends-what-you-queued) saat panggilan berjalan. Claude menerima hasil itu nanti, setelah span alat berakhir

304 307 

305Acara membawa atribut-atribut ini, masing-masing dipotong pada batas konten (60 KB secara default). `Gated by` menamai variabel yang dibutuhkan atribut di atas `OTEL_LOG_TOOL_CONTENT=1`, dan untuk Edit dan Write variabel itu mengatur acara itu sendiri daripada atribut.308Event membawa atribut ini, masing-masing dipotong pada batas konten (60 KB secara default). `Gerbang oleh` menamai variabel yang atribut butuhkan di atas `OTEL_LOG_TOOL_CONTENT=1`, dan untuk Edit dan Write variabel itu membuka gerbang event itu sendiri daripada atribut.

306 309 

307| Atribut | Deskripsi | Gated by |310| Atribut | Deskripsi | Gerbang oleh |

308| - | - | - |311| - | - | - |

309| `content` | Teks yang dikembalikan alat Read, atau teks yang diminta panggilan Write untuk ditulis | `OTEL_LOG_TOOL_DETAILS` untuk alat Write |312| `content` | Teks yang dikembalikan alat Read, atau teks yang diminta panggilan Write untuk ditulis | `OTEL_LOG_TOOL_DETAILS` untuk alat Write |

310| `output` | Output gabungan dari perintah Bash, dengan stderr yang diselipkan ke stdout | |313| `output` | Untuk alat Bash, output gabungan perintah, dengan stderr yang disisipi ke stdout. Untuk alat MCP, WebFetch, atau WebSearch, hasil yang dikembalikan alat: blok teks digabung dengan baris baru, dengan gambar atau dokumen diganti dengan placeholder seperti `[image]` | |

311| `diff` | Patch terstruktur yang diterapkan alat Edit | `OTEL_LOG_TOOL_DETAILS` |314| `diff` | Patch terstruktur yang diterapkan alat Edit | `OTEL_LOG_TOOL_DETAILS` |

312| `file_path` | Jalur file target untuk alat Read, Edit, dan Write, mengulangi atribut span dengan nama yang sama | `OTEL_LOG_TOOL_DETAILS` |315| `file_path` | Jalur file target untuk alat Read, Edit, dan Write, mengulangi atribut span dengan nama yang sama | `OTEL_LOG_TOOL_DETAILS` |

313| `bash_command` | String perintah untuk alat Bash | `OTEL_LOG_TOOL_DETAILS` |316| `bash_command` | String perintah untuk alat Bash | `OTEL_LOG_TOOL_DETAILS` |

314 317 

315Atribut `tool_name` span induk memberi tahu Anda alat mana yang berasal dari acara. Atribut yang dipotong pada batas konten disertai dengan `<attribute>_truncated` dan `<attribute>_original_length`.318Atribut `tool_name` span induk memberi tahu Anda alat mana yang berasal dari event. Atribut yang dipotong pada batas konten disertai dengan `<attribute>_truncated` dan `<attribute>_original_length`.

316 319 

317**`claude_code.tool.blocked_on_user`**320**`claude_code.tool.blocked_on_user`**

318 321 

319| Atribut | Deskripsi | Gated by |322| Atribut | Deskripsi | Gerbang oleh |

320| - | - | - |323| - | - | - |

321| `duration_ms` | Waktu yang dihabiskan menunggu keputusan izin | |324| `duration_ms` | Waktu yang dihabiskan menunggu keputusan izin | |

322| `decision` | `accept` atau `reject` | |325| `decision` | `accept` atau `reject` | |

323| `source` | Sumber keputusan, cocok dengan acara [Tool decision event](#tool-decision-event) | |326| `source` | Sumber keputusan, cocok dengan [Tool decision event](#tool-decision-event) | |

324 327 

325**`claude_code.tool.execution`**328**`claude_code.tool.execution`**

326 329 

327| Atribut | Deskripsi | Gated by |330| Atribut | Deskripsi | Gerbang oleh |

328| - | - | - |331| - | - | - |

329| `duration_ms` | Waktu yang dihabiskan menjalankan badan alat | |332| `duration_ms` | Waktu yang dihabiskan menjalankan badan alat | |

330| `tool_use_id` | Nilai yang sama dengan span `claude_code.tool` induk | |333| `tool_use_id` | Nilai yang sama dengan span `claude_code.tool` induk | |

331| `gen_ai.tool.call.id` | Nilai yang sama dengan `tool_use_id`. Konvensi semantik GenAI OpenTelemetry | |334| `gen_ai.tool.call.id` | Nilai yang sama dengan `tool_use_id`. Konvensi semantik GenAI OpenTelemetry | |

332| `success` | `true` atau `false` | |335| `success` | `true` atau `false` | |

333| `error` | String kategori kesalahan saat eksekusi gagal, seperti `Error:ENOENT` atau `ShellError`. Berisi pesan kesalahan lengkap sebagai gantinya saat gate diatur | `OTEL_LOG_TOOL_DETAILS` |336| `error` | String kategori kesalahan ketika eksekusi gagal, seperti `Error:ENOENT` atau `ShellError`. Berisi pesan kesalahan lengkap sebagai gantinya ketika gerbang diatur | `OTEL_LOG_TOOL_DETAILS` |

334| `error_class` | Kategori kesalahan dalam bentuk pengidentifikasi, dengan karakter di luar huruf, digit, dan garis bawah diganti dengan `_`, seperti `Error_ENOENT` atau `ShellError`. Membawa kategori bahkan saat `error` membawa pesan lengkap. Memerlukan Claude Code v2.1.268 atau lebih baru | |337| `error_class` | Kategori kesalahan dalam bentuk pengenal, dengan karakter di luar huruf, digit, dan garis bawah diganti dengan `_`, seperti `Error_ENOENT` atau `ShellError`. Membawa kategori bahkan ketika `error` membawa pesan lengkap. Memerlukan Claude Code v2.1.268 atau lebih baru | |

335 338 

336**`claude_code.hook`**339**`claude_code.hook`**

337 340 

338Span ini muncul hanya saat detailed beta tracing aktif, yang memerlukan `ENABLE_BETA_TRACING_DETAILED=1` dan `BETA_TRACING_ENDPOINT`, sepasang yang juga [mengubah tempat log dan traces Anda pergi](/docs/id/env-vars#variables). Atur pasangan dalam shell, pengaturan pengguna, atau pengaturan terkelola; kedua variabel diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` saja tidak menghasilkannya.341Span ini muncul hanya ketika tracing beta terperinci aktif, yang memerlukan `ENABLE_BETA_TRACING_DETAILED=1` dan `BETA_TRACING_ENDPOINT`, pasangan yang juga [mengubah tempat log dan jejak Anda pergi](/docs/id/env-vars#variables). Atur pasangan dalam shell, pengaturan pengguna, atau pengaturan terkelola; kedua variabel diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` saja tidak menghasilkannya.

339 342 

340Dalam sesi CLI interaktif, detailed beta tracing juga memerlukan organisasi Anda untuk berada dalam daftar putih untuk fitur ini. Sesi Agent SDK dan non-interaktif `-p` tidak memerlukan daftar putih.343Dalam sesi CLI interaktif, tracing beta terperinci juga memerlukan organisasi Anda untuk diizinkan untuk fitur tersebut. Sesi Agent SDK dan non-interaktif `-p` tidak memerlukan izin.

341 344 

342| Atribut | Deskripsi | Gated by |345| Atribut | Deskripsi | Gerbang oleh |

343| - | - | - |346| - | - | - |

344| `hook_event` | Jenis acara hook, seperti `PreToolUse` | |347| `hook_event` | Jenis event hook, seperti `PreToolUse` | |

345| `hook_name` | Nama hook lengkap, seperti `PreToolUse:Write` | |348| `hook_name` | Nama hook lengkap, seperti `PreToolUse:Write` | |

346| `num_hooks` | Jumlah perintah hook yang cocok dieksekusi | |349| `num_hooks` | Jumlah perintah hook yang cocok dieksekusi | |

347| `hook_definitions` | Konfigurasi hook yang diserialisasi JSON | `OTEL_LOG_TOOL_DETAILS` |350| `hook_definitions` | Konfigurasi hook yang diserialisasi JSON | `OTEL_LOG_TOOL_DETAILS` |

348| `duration_ms` | Durasi wall-clock dari semua hook yang cocok | |351| `duration_ms` | Durasi wall-clock dari semua hook yang cocok | |

349| `num_success` | Jumlah hook yang selesai dengan sukses | |352| `num_success` | Jumlah hook yang diselesaikan dengan sukses | |

350| `num_blocking` | Jumlah hook yang mengembalikan keputusan blocking | |353| `num_blocking` | Jumlah hook yang mengembalikan keputusan pemblokiran | |

351| `num_non_blocking_error` | Jumlah hook yang gagal tanpa blocking | |354| `num_non_blocking_error` | Jumlah hook yang gagal tanpa memblokir | |

352| `num_cancelled` | Jumlah hook yang dibatalkan sebelum selesai | |355| `num_cancelled` | Jumlah hook yang dibatalkan sebelum penyelesaian | |

353 356 

354<span id="new-context-gates" />357<span id="new-context-gates" />

355 358 

356<Note>359<Note>

357 Atribut tambahan yang mengandung konten seperti `new_context`, `system_prompt_preview`, `user_system_prompt`, `tool_input`, dan `response.model_output` dipancarkan hanya saat detailed beta tracing aktif. Mereka bukan bagian dari skema span yang stabil.360 Atribut tambahan yang membawa konten seperti `new_context`, `system_prompt_preview`, `user_system_prompt`, `tool_input`, dan `response.model_output` dipancarkan hanya ketika tracing beta terperinci aktif. Mereka bukan bagian dari skema span yang stabil.

358 361 

359 Gate pada `new_context` tergantung pada span mana yang membawanya, dan setiap salinan dipotong pada batas konten (60 KB secara default). Pada span `claude_code.tool` itu membawa hasil panggilan alat itu, apa pun alatnya, dan memerlukan `OTEL_LOG_TOOL_CONTENT=1`. Pada span `claude_code.interaction` itu membawa prompt pengguna, dan pada span `claude_code.llm_request` pesan pengguna baru dan hasil alat dari permintaan itu. Keduanya memerlukan `OTEL_LOG_USER_PROMPTS=1`.362 Gerbang pada `new_context` tergantung pada span mana yang membawanya, dan setiap salinan dipotong pada batas konten (60 KB secara default). Pada span `claude_code.tool` itu membawa hasil panggilan alat itu, apa pun alatnya, dan memerlukan `OTEL_LOG_TOOL_CONTENT=1`. Pada span `claude_code.interaction` itu membawa prompt pengguna, dan pada span `claude_code.llm_request` pesan pengguna baru dan hasil alat dari permintaan itu. Keduanya memerlukan `OTEL_LOG_USER_PROMPTS=1`.

360 363 

361 `user_system_prompt` juga memerlukan `OTEL_LOG_USER_PROMPTS=1`. Ini membawa hanya teks prompt sistem yang Anda berikan melalui opsi SDK `systemPrompt` atau flag `--system-prompt` dan `--append-system-prompt`, dipotong pada batas konten (60 KB secara default), dan dipancarkan sekali per sesi daripada per permintaan.364 `user_system_prompt` juga memerlukan `OTEL_LOG_USER_PROMPTS=1`. Itu membawa hanya teks prompt sistem yang Anda berikan melalui opsi SDK `systemPrompt` atau flag `--system-prompt` dan `--append-system-prompt`, dipotong pada batas konten (60 KB secara default), dan dipancarkan sekali per sesi daripada per permintaan.

362</Note>365</Note>

363 366 

364<h3 id="dynamic-headers">367<h3 id="dynamic-headers">

365 Header dinamis368 Header dinamis

366</h3>369</h3>

367 370 

368Untuk lingkungan perusahaan yang memerlukan autentikasi dinamis, Anda dapat mengonfigurasi skrip untuk menghasilkan header secara dinamis. Header dinamis hanya berlaku untuk protokol `http/protobuf` dan `http/json`. Dengan protokol `grpc`, Claude Code hanya menggunakan variabel header statis, `OTEL_EXPORTER_OTLP_HEADERS` dan varian per-sinyalnya.371Untuk lingkungan perusahaan yang memerlukan autentikasi dinamis, Anda dapat mengonfigurasi skrip untuk menghasilkan header secara dinamis. Header dinamis berlaku hanya untuk protokol `http/protobuf` dan `http/json`. Dengan protokol `grpc`, Claude Code hanya menggunakan variabel header statis, `OTEL_EXPORTER_OTLP_HEADERS` dan varian spesifik sinyal-nya.

369 372 

370<h4 id="settings-configuration">373<h4 id="settings-configuration">

371 Konfigurasi pengaturan374 Konfigurasi pengaturan

372</h4>375</h4>

373 376 

374Tambahkan ke `.claude/settings.json` Anda, mengganti jalur dengan skrip Anda sendiri:377Tambahkan ke `.claude/settings.json` Anda, ganti jalur dengan skrip Anda sendiri:

375 378 

376```json theme={null}379```json theme={null}

377{380{


389 392 

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

391#!/bin/bash394#!/bin/bash

392# Contoh: Header ganda395# Contoh: Multiple headers

393echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"396echo "{\"Authorization\": \"Bearer $(get-token.sh)\", \"X-API-Key\": \"$(get-api-key.sh)\"}"

394```397```

395 398 

396Jika 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:399Jika helper gagal atau mencetak output yang tidak memenuhi persyaratan ini, ekspor gagal dan backend telemetri Anda tidak menerima apa pun dari sesi sampai helper berfungsi lagi. Claude Code melaporkan kegagalan dalam:

397 400 

398* 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 gagal401* Notifikasi peringatan dalam sesi interaktif, [`otelHeadersHelper failed; telemetry is not being exported`](/docs/id/errors#otelheadershelper-failed), ditampilkan sekali per sesi ketika helper pertama kali gagal

399* Output `/status`402* Output `/status`

400* Log debug, saat berjalan dengan [`--debug`](/docs/id/cli-reference#cli-flags) atau setelah menjalankan `/debug` dalam sesi403* Log debug, saat berjalan dengan [`--debug`](/docs/id/cli-reference#cli-flags) atau setelah menjalankan `/debug` dalam sesi

401* stderr, dalam sesi non-interaktif yang dimulai dengan `-p`404* stderr, dalam sesi non-interaktif yang dimulai dengan `-p`


404 Perilaku penyegaran407 Perilaku penyegaran

405</h4>408</h4>

406 409 

407Skrip pembantu header berjalan saat startup dan secara berkala setelahnya untuk mendukung penyegaran token. Secara default, skrip berjalan setiap 29 menit. Sesuaikan interval dengan variabel lingkungan `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`.410Skrip helper header berjalan saat startup dan secara berkala setelahnya untuk mendukung penyegaran token. Secara default, skrip berjalan setiap 29 menit. Sesuaikan interval dengan variabel lingkungan `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`.

408 411 

409<h3 id="multi-team-organization-support">412<h3 id="multi-team-organization-support">

410 Dukungan organisasi multi-tim413 Dukungan organisasi multi-tim

411</h3>414</h3>

412 415 

413Organisasi dengan beberapa tim atau departemen dapat menambahkan atribut khusus untuk membedakan antara kelompok yang berbeda menggunakan variabel lingkungan `OTEL_RESOURCE_ATTRIBUTES`:416Organisasi dengan beberapa tim atau departemen dapat menambahkan atribut kustom untuk membedakan antara kelompok yang berbeda menggunakan variabel lingkungan `OTEL_RESOURCE_ATTRIBUTES`:

414 417 

415```bash theme={null}418```bash theme={null}

416# Tambahkan atribut khusus untuk identifikasi tim419# Tambahkan atribut kustom untuk identifikasi tim

417export OTEL_RESOURCE_ATTRIBUTES="department=engineering,team.id=platform,cost_center=eng-123"420export OTEL_RESOURCE_ATTRIBUTES="department=engineering,team.id=platform,cost_center=eng-123"

418```421```

419 422 

420Atribut khusus ini akan disertakan dalam semua metrik dan acara, memungkinkan Anda untuk:423Atribut kustom ini disertakan dalam semua metrik dan event, memungkinkan Anda untuk:

421 424 

422* Filter metrik berdasarkan tim atau departemen425* Filter metrik berdasarkan tim atau departemen

423* Lacak biaya per pusat biaya426* Lacak biaya per pusat biaya

424* Buat dasbor khusus tim427* Buat dashboard khusus tim

425* Atur peringatan untuk tim tertentu428* Atur peringatan untuk tim tertentu

426 429 

427Claude Code melampirkan nilai-nilai ini sebagai atribut pada setiap titik data metrik dan catatan acara, selain mengirimkannya dalam blok sumber daya OTLP. Karena sebagian besar backend metrik mengekspos atribut titik data sebagai label yang dapat dikueri, Anda dapat mengelompokkan dan memfilter metrik berdasarkan kunci khusus Anda secara langsung. Kecuali untuk atribut repositori `vcs.*` [repository attributes](#repository-attributes), kunci khusus tidak pernah menimpa [atribut standar](#standard-attributes) seperti `user.id` atau `session.id`: saat kunci bertabrakan, Claude Code mempertahankan nilai built-in.430Claude Code melampirkan nilai-nilai ini sebagai atribut pada setiap titik data metrik dan catatan event, selain mengirimkannya dalam blok sumber daya OTLP. Karena sebagian besar backend metrik mengekspos atribut titik data sebagai label yang dapat dipertanyakan, Anda dapat mengelompokkan dan memfilter metrik berdasarkan kunci kustom Anda secara langsung. Kecuali untuk atribut repositori `vcs.*` [repository attributes](#repository-attributes), kunci kustom tidak pernah menimpa [atribut standar](#standard-attributes) seperti `user.id` atau `session.id`: ketika kunci bertabrakan, Claude Code menyimpan nilai bawaan.

428 431 

429Setiap kunci khusus menjadi label pada setiap deret metrik, jadi nilai kardinalitas tinggi meningkatkan biaya penyimpanan di backend metrik Anda. Untuk mengirim atribut khusus dalam blok sumber daya saja dan menghilangkannya dari label titik data, atur `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`. Lihat [Kontrol kardinalitas metrik](#metrics-cardinality-control).432Setiap kunci kustom menjadi label pada setiap seri metrik, jadi nilai kardinalitas tinggi meningkatkan biaya penyimpanan di backend metrik Anda. Untuk mengirim atribut kustom dalam blok sumber daya saja dan menghilangkannya dari label titik data, atur `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`. Lihat [Kontrol kardinalitas metrik](#metrics-cardinality-control).

430 433 

431<Warning>434<Warning>

432 Variabel lingkungan `OTEL_RESOURCE_ATTRIBUTES` menggunakan pasangan kunci=nilai yang dipisahkan koma dengan persyaratan pemformatan yang ketat:435 Variabel lingkungan `OTEL_RESOURCE_ATTRIBUTES` menggunakan pasangan kunci=nilai yang dipisahkan koma dengan persyaratan pemformatan yang ketat:

433 436 

434 * **Tidak ada spasi yang diizinkan**: nilai tidak dapat berisi spasi. Misalnya, `user.organizationName=My Company` tidak valid437 * **Tidak ada spasi yang diizinkan**: nilai tidak dapat berisi spasi. Misalnya, `user.organizationName=My Company` tidak valid

435 * **Format**: harus berupa pasangan kunci=nilai yang dipisahkan koma: `key1=value1,key2=value2`438 * **Format**: harus berupa pasangan kunci=nilai yang dipisahkan koma: `key1=value1,key2=value2`

436 * **Karakter yang diizinkan**: hanya karakter US-ASCII yang tidak termasuk karakter kontrol, spasi, tanda kutip ganda, koma, titik koma, dan garis miring terbalik439 * **Karakter yang diizinkan**: hanya karakter US-ASCII yang mengecualikan karakter kontrol, spasi, tanda kutip ganda, koma, titik koma, dan garis miring terbalik

437 * **Karakter khusus**: karakter di luar rentang yang diizinkan harus dikodekan persen440 * **Karakter khusus**: karakter di luar rentang yang diizinkan harus dikodekan persen

438 441 

439 Untuk nilai yang memerlukan spasi, gunakan garis bawah atau camelCase sebagai gantinya. Contoh berikut menetapkan `org.name` dengan setiap bentuk:442 Untuk nilai yang memerlukan spasi, gunakan garis bawah atau camelCase sebagai gantinya. Contoh berikut menetapkan `org.name` dengan setiap bentuk:


456 Konfigurasi contoh459 Konfigurasi contoh

457</h3>460</h3>

458 461 

459Atur variabel lingkungan ini sebelum menjalankan `claude`. Setiap skenario di bawah menunjukkan konfigurasi lengkap, dan setiap variabel dijelaskan di bawah [Variabel konfigurasi umum](#common-configuration-variables). Untuk mengonfirmasi konfigurasi berlaku, periksa backend Anda untuk metrik `claude_code.session.count` setelah memulai sesi; [Quick start](#quick-start) mencakup verifikasi hanya-log dan apa yang harus diperiksa saat tidak ada yang tiba.462Atur variabel lingkungan ini sebelum menjalankan `claude`. Setiap skenario di bawah menunjukkan konfigurasi lengkap, dan setiap variabel dijelaskan di bawah [Variabel konfigurasi umum](#common-configuration-variables). Untuk mengonfirmasi konfigurasi berlaku, periksa backend Anda untuk metrik `claude_code.session.count` setelah memulai sesi; [Quick start](#quick-start) mencakup verifikasi log saja dan apa yang harus diperiksa ketika tidak ada yang tiba.

460 463 

461Untuk debugging konsol dengan interval ekspor 1 detik:464Untuk debugging konsol dengan interval ekspor 1 detik:

462 465 


466export OTEL_METRIC_EXPORT_INTERVAL=1000469export OTEL_METRIC_EXPORT_INTERVAL=1000

467```470```

468 471 

469Untuk OTLP over gRPC:472Untuk OTLP melalui gRPC:

470 473 

471```bash theme={null}474```bash theme={null}

472export CLAUDE_CODE_ENABLE_TELEMETRY=1475export CLAUDE_CODE_ENABLE_TELEMETRY=1


475export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317478export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

476```479```

477 480 

478Untuk Prometheus, di-scrape dari `http://localhost:9464/metrics`:481Untuk Prometheus, yang discrape dari `http://localhost:9464/metrics`:

479 482 

480```bash theme={null}483```bash theme={null}

481export CLAUDE_CODE_ENABLE_TELEMETRY=1484export CLAUDE_CODE_ENABLE_TELEMETRY=1

482export OTEL_METRICS_EXPORTER=prometheus485export OTEL_METRICS_EXPORTER=prometheus

483```486```

484 487 

485Pada [lingkungan self-hosted](/docs/id/self-hosted-environments-reference#pass-through-session-child-metrics), sesi mengikat port 9464 hanya pada kapasitas default runner satu. Pada kapasitas yang lebih tinggi, runner kembali mengekspos penghitung sesi dan gauge pada titik akhir `/metrics` miliknya sendiri.488Pada [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments-reference#pass-through-session-child-metrics), sesi mengikat port 9464 hanya pada kapasitas default runner satu. Pada kapasitas yang lebih tinggi, runner kembali mengekspos penghitung dan gauge sesi pada endpoint `/metrics` miliknya sendiri sebagai gantinya.

486 489 

487Untuk mengirim metrik ke beberapa pengekspor:490Untuk mengirim metrik ke beberapa eksporter:

488 491 

489```bash theme={null}492```bash theme={null}

490export CLAUDE_CODE_ENABLE_TELEMETRY=1493export CLAUDE_CODE_ENABLE_TELEMETRY=1


492export OTEL_EXPORTER_OTLP_PROTOCOL=http/json495export OTEL_EXPORTER_OTLP_PROTOCOL=http/json

493```496```

494 497 

495Untuk mengirim metrik dan log ke titik akhir atau backend yang berbeda:498Untuk mengirim metrik dan log ke endpoint atau backend yang berbeda:

496 499 

497```bash theme={null}500```bash theme={null}

498export CLAUDE_CODE_ENABLE_TELEMETRY=1501export CLAUDE_CODE_ENABLE_TELEMETRY=1


504export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317507export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=http://logs.example.com:4317

505```508```

506 509 

507Untuk mengekspor hanya metrik, tanpa acara atau log:510Untuk mengekspor metrik saja, tanpa event atau log:

508 511 

509```bash theme={null}512```bash theme={null}

510export CLAUDE_CODE_ENABLE_TELEMETRY=1513export CLAUDE_CODE_ENABLE_TELEMETRY=1


513export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317516export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

514```517```

515 518 

516Untuk mengekspor hanya acara dan log, tanpa metrik:519Untuk mengekspor event dan log saja, tanpa metrik:

517 520 

518```bash theme={null}521```bash theme={null}

519export CLAUDE_CODE_ENABLE_TELEMETRY=1522export CLAUDE_CODE_ENABLE_TELEMETRY=1


522export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317525export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317

523```526```

524 527 

528<h2 id="telemetry-from-cloud-sessions-and-claude-tag">

529 Telemetri dari sesi cloud dan Claude Tag

530</h2>

531 

532[Sesi cloud](/docs/id/claude-code-on-the-web), termasuk sesi saluran [Claude Tag](https://claude.com/docs/claude-tag/overview), berjalan di [lingkungan cloud](/docs/id/cloud-environments) daripada di perangkat pengguna Anda, jadi file pengaturan terkelola atau profil shell di perangkat tersebut tidak mengonfigurasi telemetri mereka. Untuk sesi di lingkungan yang dihosting Anthropic, bagian ini mencakup tempat untuk menetapkan variabel telemetri, cara membuat kolektor Anda dapat diakses dari lingkungan, dan cara membedakan sesi cloud dan Claude Tag dalam data yang diekspor.

533 

534Untuk mengekspor telemetri dari sesi tersebut, atur `CLAUDE_CODE_ENABLE_TELEMETRY` dan variabel `OTEL_*`, menggunakan kunci yang sama seperti contoh [konfigurasi administrator](#administrator-configuration), di salah satu dari dua tempat:

535 

536* **Pengaturan yang dikelola server**: tambahkan ke blok `env` dari [pengaturan yang dikelola server](/docs/id/server-managed-settings) organisasi Anda. Claude Code mengambil pengaturan tersebut saat startup di mana pun [pengaturan yang dikelola server berlaku](/docs/id/model-config#surface-coverage), yang mencakup mesin pengguna Anda dan sesi cloud selain sesi saluran Claude Tag. Sesi Claude Tag tidak menerima pengaturan yang dikelola server Anda, jadi rute ini tidak mengonfigurasinya.

537* **Variabel lingkungan**: tambahkan ke [variabel lingkungan](/docs/id/cloud-environments#set-environment-variables) lingkungan cloud untuk mengonfigurasi hanya sesi yang berjalan di lingkungan tersebut. Ini adalah rute yang menjangkau sesi Claude Tag.

538 

539Siapa pun yang menggunakan lingkungan dapat membaca variabelnya, jadi jangan letakkan kredensial di sana, seperti token kolektor di `OTEL_EXPORTER_OTLP_HEADERS`. [Kredensial API](/docs/id/cloud-environments#add-api-credentials) di lingkungan juga tidak membantu, karena ekspor telemetri Claude Code sendiri adalah salah satu dari [permintaan yang tidak pernah mendapatkan kredensial](/docs/id/cloud-environments#requests-that-never-get-the-credential). Jika kolektor Anda memerlukan kredensial, konfigurasikan seluruh ekspor melalui pengaturan yang dikelola server sebagai gantinya, karena ketika Anda menetapkan kredensial di sana, [Claude Code menghapus variabel titik akhir yang ditetapkan di luar pengaturan terkelola](#how-managed-settings-lock-the-otlp-destination).

540 

541Pertahankan batasan ini dalam pikiran ketika Anda mengonfigurasi telemetri untuk sesi cloud:

542 

543* **Biarkan sesi menjangkau kolektor**: Claude Code mengirim ekspor melalui jaringan sesi, jadi apakah itu menjangkau host di `OTEL_EXPORTER_OTLP_ENDPOINT` Anda tergantung pada [tingkat akses jaringan](/docs/id/cloud-environments#access-levels) lingkungan. Jika sesi tidak dapat menjangkau domain kolektor pada tingkat yang Anda pilih, [tambahkan domain ke daftar izin lingkungan](/docs/id/cloud-environments#allow-specific-domains), karena tidak ada pengaturan yang dikelola server yang menambahkan domain ke daftar izin jaringan lingkungan.

544* **Saluran Claude Tag menggunakan lingkungan tingkat organisasi**: sesi saluran berjalan di lingkungan tingkat organisasi daripada lingkungan pribadi anggota, jadi buat perubahan daftar izin dan variabel lingkungan apa pun di [lingkungan bersama](/docs/id/cloud-environments#organization-shared-environments) yang ditetapkan sebagai default organisasi Anda atau disematkan ke saluran.

545* **Cowork dikonfigurasi secara terpisah**: sesi Cowork tidak menerima pengaturan yang dikelola server, seperti yang ditunjukkan [tabel cakupan permukaan](/docs/id/model-config#surface-coverage), jadi blok `env` yang dikelola server tidak mengonfigurasi telemetri mereka.

546 

547<h3 id="attribute-telemetry-to-cloud-sessions">

548 Atribut telemetri ke sesi cloud

549</h3>

550 

551Secara default, metrik dan acara dari sesi cloud membawa [atribut standar](#standard-attributes), termasuk `session.id`, `ccr.session.id`, dan `organization.id`, sehingga Anda dapat memfilter berdasarkan sesi atau organisasi tanpa konfigurasi tambahan. Nilai `ccr.session.id` adalah `CLAUDE_CODE_REMOTE_SESSION_ID` sesi. Untuk mengubahnya menjadi URL transkrip sesi, lihat [Tautkan output kembali ke sesi](/docs/id/cloud-environments#link-output-back-to-the-session).

552 

553Untuk mengatribusikan telemetri secara lebih detail, gunakan opsi berikut:

554 

555* **Identifikasi sesi Claude Tag**: atur `OTEL_METRICS_INCLUDE_ENTRYPOINT=true`, seperti yang dijelaskan di bawah [Kontrol kardinalitas metrik](#metrics-cardinality-control). Metrik kemudian membawa `app.entrypoint`, yang nilainya adalah `claude-in-slack` untuk sesi Claude Tag.

556* **Tambahkan atribut kustom**: atur [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) di tempat yang sama di mana Anda menetapkan variabel `OTEL_*` lainnya untuk sesi tersebut. Jika Anda `export` di [skrip setup](/docs/id/cloud-environments#setup-scripts) lingkungan sebagai gantinya, nilainya tidak mencapai Claude Code: skrip setup adalah skrip Bash terpisah yang berjalan sebelum Claude Code diluncurkan, dan variabel yang diekspor berakhir dengannya.

557 

558Dalam sesi saluran Claude Tag, Claude bekerja sebagai [identitas bersama](/docs/id/cloud-environments#set-the-environment-a-claude-tag-channel-uses) organisasi Anda daripada sebagai anggota apa pun, jadi jangan andalkan atribut `user.*` untuk mengidentifikasi siapa yang menandai Claude.

559 

525<h2 id="available-metrics-and-events">560<h2 id="available-metrics-and-events">

526 Metrik dan acara yang tersedia561 Metrik dan peristiwa yang tersedia

527</h2>562</h2>

528 563 

529<h3 id="standard-attributes">564<h3 id="standard-attributes">

530 Atribut standar565 Atribut standar

531</h3>566</h3>

532 567 

533Semua metrik dan acara berbagi atribut standar ini:568Semua metrik dan peristiwa berbagi atribut standar ini:

534 569 

535| Atribut | Deskripsi | Dikendalikan Oleh |570| Atribut | Deskripsi | Dikendalikan Oleh |

536| - | - | - |571| - | - | - |

537| `session.id` | Pengidentifikasi sesi unik | `OTEL_METRICS_INCLUDE_SESSION_ID` (default: true) |572| `session.id` | Pengenal sesi unik | `OTEL_METRICS_INCLUDE_SESSION_ID` (default: true) |

573| `ccr.session.id` | Pengenal sesi cloud, nilai dari `CLAUDE_CODE_REMOTE_SESSION_ID`, pada sesi yang berjalan di [lingkungan cloud](/docs/id/cloud-environments) | `OTEL_METRICS_INCLUDE_SESSION_ID` (default: true) |

538| `app.version` | Versi Claude Code saat ini | `OTEL_METRICS_INCLUDE_VERSION` (default: false) |574| `app.version` | Versi Claude Code saat ini | `OTEL_METRICS_INCLUDE_VERSION` (default: false) |

539| `app.entrypoint` | Bagaimana sesi diluncurkan, seperti `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, atau `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (default: false) |575| `app.entrypoint` | Bagaimana sesi diluncurkan, seperti `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, `claude-vscode`, atau `claude-in-slack` untuk sesi Claude Tag | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (default: false) |

540| `organization.id` | UUID organisasi (saat diautentikasi) | Selalu disertakan saat tersedia |576| `organization.id` | UUID organisasi (saat diautentikasi) | Selalu disertakan saat tersedia |

541| `user.account_uuid` | UUID akun (saat diautentikasi) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (default: true) |577| `user.account_uuid` | UUID akun (saat diautentikasi) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (default: true) |

542| `user.account_id` | ID akun dalam format yang ditandai sesuai dengan API admin Anthropic (saat diautentikasi), seperti `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (default: true) |578| `user.account_id` | ID akun dalam format tagged yang cocok dengan API admin Anthropic (saat diautentikasi), seperti `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (default: true) |

543| `user.id` | Pengidentifikasi anonim acak yang dihasilkan pada run pertama dan disimpan di `~/.claude.json`. Tidak mengandung informasi pribadi dan tidak berasal dari akun Claude Anda. Menghapus file menghasilkan nilai yang tidak terkait pada run berikutnya. | Selalu disertakan |579| `user.id` | Pengenal anonim acak yang dihasilkan pada run pertama dan disimpan di `~/.claude.json`. Tidak mengandung informasi pribadi dan tidak berasal dari akun Claude Anda. Menghapus file menghasilkan nilai yang tidak terkait pada run berikutnya. | Selalu disertakan |

544| `user.email` | Alamat email pengguna, dari sign-in Anda atau, dalam [sesi cloud](/docs/id/claude-code-on-the-web), dari kredensial sesi itu sendiri | Selalu disertakan saat tersedia |580| `user.email` | Alamat email pengguna, dari sign-in Anda atau, dalam [sesi cloud](/docs/id/claude-code-on-the-web), dari kredensial sesi itu sendiri | Selalu disertakan saat tersedia |

545| `terminal.type` | Jenis terminal, seperti `iTerm.app`, `vscode`, `cursor`, atau `tmux` | Selalu disertakan saat terdeteksi |581| `terminal.type` | Jenis terminal, seperti `iTerm.app`, `vscode`, `cursor`, atau `tmux` | Selalu disertakan saat terdeteksi |

546| Kunci dari `OTEL_RESOURCE_ATTRIBUTES` | Atribut khusus yang Anda atur, seperti `department` atau `team.id`. Lihat [Dukungan organisasi multi-tim](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (default: true) |582| Kunci dari `OTEL_RESOURCE_ATTRIBUTES` | Atribut kustom yang Anda tetapkan, seperti `department` atau `team.id`. Lihat [Dukungan organisasi multi-tim](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (default: true) |

547| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | Identitas repositori sesi, diturunkan dari remote `origin`-nya. Lihat [Atribut repositori](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (default: false). Memerlukan Claude Code v2.1.269 atau lebih baru |583| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | Identitas repositori sesi, berasal dari remote `origin`-nya. Lihat [Atribut repositori](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (default: false). Memerlukan Claude Code v2.1.269 atau lebih baru |

548 584 

549Saat Claude Code masuk ke [gateway aplikasi Claude](/docs/id/claude-apps-gateway), CLI memberi stempel ekspor dengan identitas yang diautentikasi dari sesi gateway: `user.id` adalah subjek IdP daripada pengidentifikasi instalasi anonim, `user.email` adalah email yang masuk, dan `user.groups` membawa keanggotaan grup IdP sebagai string yang dipisahkan koma. Setiap ekspor juga membawa `identity.source: gateway-oidc`. Identitas gateway diterapkan terakhir, jadi kunci `user.*` dan `identity.*` yang diatur melalui `OTEL_RESOURCE_ATTRIBUTES` diabaikan pada sesi gateway.585Ketika Claude Code masuk ke [gateway aplikasi Claude](/docs/id/claude-apps-gateway), CLI memberi stempel ekspor dengan identitas terautentikasi dari sesi gateway: `user.id` adalah subjek IdP daripada pengenal instalasi anonim, `user.email` adalah email yang masuk, dan `user.groups` membawa keanggotaan grup IdP sebagai string yang dipisahkan koma. Setiap ekspor juga membawa `identity.source: gateway-oidc`. Identitas gateway diterapkan terakhir, jadi kunci `user.*` dan `identity.*` yang ditetapkan melalui `OTEL_RESOURCE_ATTRIBUTES` diabaikan pada sesi gateway.

550 586 

551Acara juga menyertakan atribut berikut. Ini tidak pernah dilampirkan pada metrik karena akan menyebabkan kardinalitas tak terbatas:587Peristiwa juga menyertakan atribut berikut. Ini tidak pernah dilampirkan ke metrik karena akan menyebabkan kardinalitas tak terbatas:

552 588 

553* `prompt.id`: UUID yang menghubungkan prompt pengguna dengan semua acara berikutnya hingga prompt berikutnya. Lihat [Atribut korelasi acara](#event-correlation-attributes).589* `prompt.id`: UUID yang menghubungkan prompt pengguna dengan semua peristiwa berikutnya hingga prompt berikutnya. Lihat [Atribut korelasi peristiwa](#event-correlation-attributes).

554* `workspace.host_paths`: direktori ruang kerja host yang dipilih di aplikasi desktop, sebagai array string590* `workspace.host_paths`: direktori workspace host yang dipilih di aplikasi desktop, sebagai array string

555* `workflow.run_id`: pengidentifikasi run, dengan awalan `wf_`, pada acara API dan alat yang dipancarkan oleh agen yang termasuk dalam run alat [Workflow](/docs/id/workflows). Memfilter acara berdasarkan satu `workflow.run_id` merekonstruksi permintaan API dan hasil alat run tersebut. Pengidentifikasi mencakup agen yang dihasilkan skrip workflow dan agen apa pun yang dihasilkan agen tersebut pada gilirannya, seperti invokasi skill. Ini cocok dengan pengidentifikasi run yang dilaporkan dalam hasil alat Workflow. Tidak ada pada semua acara lainnya. Memerlukan Claude Code v2.1.202 atau lebih baru591* `workflow.run_id`: pengenal run, dengan awalan `wf_`, pada peristiwa API dan alat yang dipancarkan oleh agen yang termasuk dalam run alat [Workflow](/docs/id/workflows). Memfilter peristiwa berdasarkan satu `workflow.run_id` merekonstruksi permintaan API dan hasil alat run tersebut. Pengenal mencakup agen yang dihasilkan skrip workflow dan agen apa pun yang dihasilkan agen tersebut, seperti invokasi skill. Ini cocok dengan pengenal run yang dilaporkan dalam hasil alat Workflow. Tidak ada pada semua peristiwa lainnya. Memerlukan Claude Code v2.1.202 atau lebih baru

556* `workflow.name`: nama workflow, `meta.name` skrip-nya, dipancarkan bersama `workflow.run_id`. Nama workflow built-in muncul verbatim saat run mengeksekusi skrip built-in yang tidak dimodifikasi. Nama yang ditulis pengguna, termasuk salinan yang diedit dari skrip built-in, diganti dengan `custom` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur. Memerlukan Claude Code v2.1.202 atau lebih baru592* `workflow.name`: nama workflow, `meta.name` skrip-nya, dipancarkan bersama `workflow.run_id`. Nama workflow bawaan muncul verbatim saat run mengeksekusi skrip bawaan yang tidak dimodifikasi. Nama yang ditulis pengguna, termasuk salinan yang diedit dari skrip bawaan, diganti dengan `custom` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur. Memerlukan Claude Code v2.1.202 atau lebih baru

557 593 

558<h4 id="repository-attributes">594<h4 id="repository-attributes">

559 Atribut repositori595 Atribut repositori

560</h4>596</h4>

561 597 

562Atur `OTEL_METRICS_INCLUDE_REPOSITORY=true` untuk menandai metrik dan acara dengan identitas repositori sesi, sehingga kolektor bersama dapat mengaitkan penggunaan per repositori. Memerlukan Claude Code v2.1.269 atau lebih baru.598Atur `OTEL_METRICS_INCLUDE_REPOSITORY=true` untuk menandai metrik dan peristiwa dengan identitas repositori sesi, sehingga kolektor bersama dapat mengatribusikan penggunaan per repositori. Memerlukan Claude Code v2.1.269 atau lebih baru.

563 599 

564Claude Code menurunkan atribut ini sekali per sesi dari remote `origin` repositori. Remote HTTPS dan SSH dari satu repositori menghasilkan nilai yang identik:600Claude Code menurunkan atribut ini sekali per sesi dari remote `origin` repositori. Ketika remote HTTPS dan SSH dari repositori menamai host dan path yang sama, seperti yang mereka lakukan di GitHub, GitLab, dan Bitbucket Cloud, keduanya menghasilkan nilai yang identik:

565 601 

566| Atribut | Nilai |602| Atribut | Nilai |

567| - | - |603| - | - |

568| `vcs.repository.url.full` | URL browser repositori tanpa `.git`, seperti `https://github.com/example-org/example-repo` |604| `vcs.repository.url.full` | URL browser repositori tanpa `.git`, seperti `https://github.com/example-org/example-repo` |

569| `vcs.owner.name` | Jalur pemilik atau grup, seperti `example-org`; dihilangkan saat jalur remote memiliki satu segmen |605| `vcs.owner.name` | Path pemilik atau grup, seperti `example-org`; dihilangkan ketika path remote memiliki satu segmen |

570| `vcs.repository.name` | Nama repositori bare, seperti `example-repo` |606| `vcs.repository.name` | Nama repositori bare, seperti `example-repo` |

571| `vcs.provider.name` | `github`, `gitlab`, `bitbucket`, atau `gitea` saat Claude Code mengenali host remote atau bentuk URL sebagai salah satu penyedia tersebut; dihilangkan sebaliknya |607| `vcs.provider.name` | `github`, `gitlab`, `bitbucket`, atau `gitea` ketika Claude Code mengenali host remote atau bentuk URL sebagai salah satu penyedia tersebut; dihilangkan sebaliknya |

608 

609Nilai diubah menjadi huruf kecil, dan kredensial, string kueri, dan fragmen dari URL remote tidak pernah muncul di dalamnya. Atribut dihilangkan ketika sesi tidak memiliki remote `origin`, ketika remote tidak berbentuk URL, atau ketika satu-satunya repositori yang menutup adalah direktori home Anda.

572 610 

573Nilai diubah menjadi huruf kecil, dan kredensial, string kueri, dan fragmen dari URL remote tidak pernah muncul di dalamnya. Atribut dihilangkan saat sesi tidak memiliki remote `origin`, saat remote tidak berbentuk URL, atau saat satu-satunya repositori yang menutup adalah direktori home Anda.611Untuk mendapatkan atribut ini dari [sesi cloud](/docs/id/claude-code-on-the-web), atur variabel telemetri, termasuk `OTEL_METRICS_INCLUDE_REPOSITORY`, pada [lingkungan cloud](/docs/id/cloud-environments#set-environment-variables)-nya. Juga izinkan domain kolektor Anda di [akses jaringan](/docs/id/cloud-environments#network-access) lingkungan.

574 612 

575Kunci `vcs.*` yang Anda deklarasikan dalam [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) menggantikan nilai yang diturunkan untuk kunci itu. Jika Anda mendeklarasikan `vcs.repository.url.full`, Claude Code tidak pernah membaca remote dan hanya melaporkan kunci yang Anda deklarasikan.613Kunci `vcs.*` yang Anda deklarasikan dalam [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) menggantikan nilai yang diturunkan untuk kunci tersebut. Jika Anda mendeklarasikan `vcs.repository.url.full`, Claude Code tidak pernah membaca remote dan hanya melaporkan kunci yang Anda deklarasikan.

576 614 

577Atribut mengalir hanya ke pengekspor Anda sendiri; telemetri Anthropic menghilangkan setiap kunci `vcs.*`.615Jika klon HTTPS dan SSH dari satu repositori melaporkan nilai yang berbeda, seperti pada instalasi yang di-host sendiri yang URL klon HTTPS-nya membawa awalan path yang URL SSH tidak memiliki, deklarasikan `vcs.repository.url.full` dalam `OTEL_RESOURCE_ATTRIBUTES` bersama dengan setiap kunci `vcs.*` lainnya yang ingin Anda laporkan. Setiap klon kemudian melaporkan identitas yang Anda deklarasikan.

616 

617Atribut hanya mengalir ke eksporter Anda sendiri; telemetri Anthropic menghilangkan setiap kunci `vcs.*`.

578 618 

579<h3 id="metrics">619<h3 id="metrics">

580 Metrik620 Metrik

581</h3>621</h3>

582 622 

583Claude Code mengekspor metrik berikut. Kolom Unit menunjukkan string unit OpenTelemetry yang dilampirkan pada setiap metrik; metrik count tidak membawa satuan apa pun.623Claude Code mengekspor metrik berikut. Kolom Unit menunjukkan string unit OpenTelemetry yang dilampirkan ke setiap metrik; metrik penghitung tidak membawa apa pun.

584 624 

585| Nama Metrik | Deskripsi | Unit |625| Nama Metrik | Deskripsi | Unit |

586| - | - | - |626| - | - | - |

587| `claude_code.session.count` | Jumlah sesi CLI yang dimulai | none |627| `claude_code.session.count` | Jumlah sesi CLI yang dimulai | none |

588| `claude_code.lines_of_code.count` | Jumlah baris kode yang dimodifikasi | none |628| `claude_code.lines_of_code.count` | Jumlah baris kode yang dimodifikasi | none |

589| `claude_code.pull_request.count` | Jumlah permintaan tarik yang dibuat | none |629| `claude_code.pull_request.count` | Jumlah pull request yang dibuat | none |

590| `claude_code.commit.count` | Jumlah komit git yang dibuat | none |630| `claude_code.commit.count` | Jumlah git commit yang dibuat | none |

591| `claude_code.cost.usage` | Biaya sesi Claude Code | USD |631| `claude_code.cost.usage` | Biaya sesi Claude Code | USD |

592| `claude_code.token.usage` | Jumlah token yang digunakan | tokens |632| `claude_code.token.usage` | Jumlah token yang digunakan | tokens |

593| `claude_code.code_edit_tool.decision` | Jumlah keputusan izin alat pengeditan kode | none |633| `claude_code.code_edit_tool.decision` | Jumlah keputusan izin alat pengedit kode | none |

594| `claude_code.active_time.total` | Total waktu aktif | s |634| `claude_code.active_time.total` | Total waktu aktif | s |

595 635 

596Saat `prometheus` adalah satu-satunya pengekspor yang tercantum dalam `OTEL_METRICS_EXPORTER`, Claude Code menghilangkan unit `USD`, `tokens`, dan `s` dari metrik yang diekspor sehingga scrape tetap dalam format teks Prometheus yang valid. Nama metrik tidak berubah, dan konfigurasi yang menggabungkan pengekspor, seperti `otlp,prometheus`, menyimpan unit. Sebelum v2.1.216, scrape Prometheus menyertakan baris `# UNIT` khusus OpenMetrics yang beberapa scraper menolak.636Ketika `prometheus` adalah satu-satunya eksporter yang terdaftar dalam `OTEL_METRICS_EXPORTER`, Claude Code menghilangkan unit `USD`, `tokens`, dan `s` dari metrik yang diekspor sehingga scrape tetap format teks Prometheus yang valid. Nama metrik tidak berubah, dan konfigurasi yang menggabungkan eksporter, seperti `otlp,prometheus`, menyimpan unit. Sebelum v2.1.216, scrape Prometheus menyertakan baris `# UNIT` khusus OpenMetrics yang beberapa scraper menolak.

597 637 

598<h3 id="metric-details">638<h3 id="metric-details">

599 Detail metrik639 Detail metrik

600</h3>640</h3>

601 641 

602Setiap metrik mencakup atribut standar yang tercantum di atas. Metrik dengan atribut khusus konteks tambahan dicatat di bawah ini.642Setiap metrik menyertakan atribut standar yang tercantum di atas. Metrik dengan atribut konteks tambahan dicatat di bawah.

603 643 

604<h4 id="session-counter">644<h4 id="session-counter">

605 Penghitung sesi645 Penghitung sesi


610**Atribut**:650**Atribut**:

611 651 

612* Semua [atribut standar](#standard-attributes)652* Semua [atribut standar](#standard-attributes)

613* `start_type`: Bagaimana sesi dimulai. Salah satu dari `"fresh"`, `"resume"`, `"continue"`, atau `"agents_view"`. Nilai `"agents_view"` mengidentifikasi proses dashboard `claude agents`, antarmuka lokal yang diluncurkan pengguna daripada sesi percakapan. Filter pada nilai ini untuk memisahkan peluncuran proses UI dari sesi percakapan di dasbor Anda.653* `start_type`: Bagaimana sesi dimulai. Salah satu dari `"fresh"`, `"resume"`, `"continue"`, atau `"agents_view"`. Nilai `"agents_view"` mengidentifikasi proses dashboard `claude agents`, UI lokal yang diluncurkan pengguna daripada sesi percakapan. Filter pada nilai ini untuk memisahkan peluncuran proses UI dari sesi percakapan di dashboard Anda.

614 654 

615<h4 id="lines-of-code-counter">655<h4 id="lines-of-code-counter">

616 Penghitung baris kode656 Penghitung baris kode

617</h4>657</h4>

618 658 

619Ditingkatkan saat kode ditambahkan atau dihapus.659Ditingkatkan ketika kode ditambahkan atau dihapus.

620 660 

621**Atribut**:661**Atribut**:

622 662 

623* Semua [atribut standar](#standard-attributes)663* Semua [atribut standar](#standard-attributes)

624* `type`: (`"added"`, `"removed"`)664* `type`: (`"added"`, `"removed"`)

625* `model`: Pengidentifikasi model untuk model yang membuat perubahan (misalnya, "claude-sonnet-5")665* `model`: Pengenal model untuk model yang membuat perubahan (misalnya, "claude-sonnet-5")

626 666 

627<h4 id="pull-request-counter">667<h4 id="pull-request-counter">

628 Penghitung permintaan tarik668 Penghitung pull request

629</h4>669</h4>

630 670 

631Ditingkatkan saat Claude Code membuat permintaan tarik atau merge request melalui perintah shell atau alat MCP.671Ditingkatkan ketika Claude Code membuat pull request atau merge request melalui perintah shell atau alat MCP.

632 672 

633**Atribut**:673**Atribut**:

634 674 

635* Semua [atribut standar](#standard-attributes)675* Semua [atribut standar](#standard-attributes)

636 676 

637<h4 id="commit-counter">677<h4 id="commit-counter">

638 Penghitung komit678 Penghitung commit

639</h4>679</h4>

640 680 

641Ditingkatkan saat membuat komit git melalui Claude Code.681Ditingkatkan saat membuat git commit melalui Claude Code.

642 682 

643**Atribut**:683**Atribut**:

644 684 


650 690 

651Ditingkatkan setelah setiap permintaan API.691Ditingkatkan setelah setiap permintaan API.

652 692 

693Atribut `agent.name`, `skill.name`, `plugin.name`, `mcp_server.name`, dan `mcp_tool.name` masing-masing menyunting beberapa nama menjadi placeholder `"custom"` atau `"third-party"` secara default. Jika Anda mengatur `OTEL_LOG_TOOL_DETAILS=1`, mereka membawa nama asli sebagai gantinya. Sebelum v2.1.273, penghitung biaya dan token serta peristiwa `api_request`, `api_error`, dan `api_refusal` membawa nilai yang disunting bahkan dengan `OTEL_LOG_TOOL_DETAILS=1` diatur.

694 

653**Atribut**:695**Atribut**:

654 696 

655* Semua [atribut standar](#standard-attributes)697* Semua [atribut standar](#standard-attributes)

656* `model`: Pengidentifikasi model (misalnya, "claude-sonnet-5")698* `model`: Pengenal model (misalnya, "claude-sonnet-5")

657* `query_source`: Kategori subsistem yang mengeluarkan permintaan. Salah satu dari `"main"`, `"subagent"`, atau `"auxiliary"`699* `query_source`: Kategori subsistem yang mengeluarkan permintaan. Salah satu dari `"main"`, `"subagent"`, atau `"auxiliary"`

658* `speed`: `"fast"` saat permintaan menggunakan mode cepat. Tidak ada sebaliknya700* `speed`: `"fast"` ketika permintaan menggunakan mode cepat. Tidak ada sebaliknya

659* `effort`: [Tingkat effort](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan: `"low"`, `"medium"`, `"high"`, `"xhigh"`, atau `"max"`. Tidak ada saat model tidak mendukung effort.701* `effort`: [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan: `"low"`, `"medium"`, `"high"`, `"xhigh"`, atau `"max"`. Tidak ada ketika Claude Code tidak mengirim tingkat upaya, misalnya pada model yang tidak mendukung upaya.

660* `agent.name`: Jenis subagent yang mengeluarkan permintaan. Nama agen built-in dan agen dari plugin marketplace resmi muncul verbatim. Nama agen yang ditentukan pengguna lainnya diganti dengan `"custom"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur. Tidak ada saat permintaan tidak dikeluarkan oleh jenis subagent bernama.702* `agent.name`: Jenis subagen yang mengeluarkan permintaan. Nama agen bawaan dan agen dari plugin marketplace resmi muncul verbatim. Nama agen yang ditentukan pengguna lainnya diganti dengan `"custom"`. Tidak ada ketika permintaan tidak dikeluarkan oleh jenis subagen bernama.

661* `skill.name`: Skill aktif untuk permintaan, diatur oleh alat Skill, perintah `/`, atau diwarisi oleh subagent yang dihasilkan. Nama skill built-in, bundled, yang ditentukan pengguna, dan plugin marketplace resmi muncul verbatim. Nama skill plugin pihak ketiga diganti dengan `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur. Tidak ada saat tidak ada skill yang aktif.703* `skill.name`: Skill aktif untuk permintaan, diatur oleh alat Skill atau perintah `/`, atau diwarisi oleh subagen yang dihasilkan. Nama skill bawaan, bundel, yang ditentukan pengguna, dan plugin marketplace resmi muncul verbatim. Nama skill plugin pihak ketiga diganti dengan `"third-party"`. Tidak ada ketika tidak ada skill yang aktif.

662* `plugin.name`: Plugin pemilik saat skill atau subagent aktif disediakan oleh plugin. Nama plugin marketplace resmi muncul verbatim. Nama plugin pihak ketiga diganti dengan `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur. Tidak ada saat skill atau subagent tidak memiliki plugin pemilik.704* `plugin.name`: Plugin pemilik ketika skill aktif atau subagen disediakan oleh plugin. Nama plugin marketplace resmi muncul verbatim. Nama plugin pihak ketiga diganti dengan `"third-party"`. Tidak ada ketika skill maupun subagen memiliki plugin pemilik.

663* `marketplace.name`: Marketplace tempat plugin pemilik diinstal. Hanya dipancarkan untuk plugin marketplace resmi. Tidak ada sebaliknya.705* `marketplace.name`: Marketplace tempat plugin pemilik diinstal. Hanya dipancarkan untuk plugin marketplace resmi, bahkan dengan `OTEL_LOG_TOOL_DETAILS=1` diatur. Tidak ada sebaliknya.

664* `mcp_server.name`: Server MCP yang alatnya berjalan dalam giliran yang menghasilkan permintaan ini. Nama server built-in, claude.ai-proxied, dan official-registry muncul verbatim. Nama server yang dikonfigurasi pengguna diganti dengan `"custom"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur. Tidak ada saat tidak ada alat MCP yang berjalan. Sebelum v2.1.222, Claude Code menetapkan atribut ini pada setiap permintaan setelah panggilan alat MCP, bukan hanya pada permintaan yang menggunakan hasil alat, jadi dasbor yang mengagregasinya menunjukkan penurunan setelah Anda upgrade.706* `mcp_server.name`: Server MCP yang hasil alat ini dikonsumsi permintaan. Nama server bawaan, yang di-proxy claude.ai, dan registry resmi muncul verbatim. Nama server yang dikonfigurasi pengguna diganti dengan `"custom"`. Tidak ada ketika permintaan tidak mengonsumsi hasil alat MCP. Sebelum v2.1.222, Claude Code menetapkan atribut ini pada setiap permintaan setelah panggilan alat MCP, bukan hanya pada permintaan yang mengonsumsi hasil alat, jadi dashboard yang mengagregasinya menunjukkan penurunan setelah Anda upgrade.

665* `mcp_tool.name`: Alat MCP yang berjalan dalam giliran yang menghasilkan permintaan ini, dengan redaksi yang sama dan perilaku versi sebagai `mcp_server.name`. Tidak ada saat tidak ada alat MCP yang berjalan.707* `mcp_tool.name`: Alat MCP yang hasil ini dikonsumsi permintaan, dengan perilaku penyuntingan dan versi yang sama dengan `mcp_server.name`. Tidak ada ketika permintaan tidak mengonsumsi hasil alat MCP.

666 708 

667<h4 id="token-counter">709<h4 id="token-counter">

668 Penghitung token710 Penghitung token


674 716 

675* Semua [atribut standar](#standard-attributes)717* Semua [atribut standar](#standard-attributes)

676* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)718* `type`: (`"input"`, `"output"`, `"cacheRead"`, `"cacheCreation"`)

677* `model`: Pengidentifikasi model (misalnya, "claude-sonnet-5")719* `model`: Pengenal model (misalnya, "claude-sonnet-5")

678* `query_source`: Kategori subsistem yang mengeluarkan permintaan. Salah satu dari `"main"`, `"subagent"`, atau `"auxiliary"`720* `query_source`: Kategori subsistem yang mengeluarkan permintaan. Salah satu dari `"main"`, `"subagent"`, atau `"auxiliary"`

679* `speed`: `"fast"` saat permintaan menggunakan mode cepat. Tidak ada sebaliknya721* `speed`: `"fast"` ketika permintaan menggunakan mode cepat. Tidak ada sebaliknya

680* `effort`: [Tingkat effort](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan. Lihat [Penghitung biaya](#cost-counter) untuk detail.722* `effort`: [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan. Lihat [Penghitung biaya](#cost-counter) untuk detail.

681* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribusi skill, plugin, agen, dan MCP untuk permintaan. Lihat [Penghitung biaya](#cost-counter) untuk definisi dan perilaku redaksi.723* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribusi skill, plugin, agen, dan MCP untuk permintaan. Lihat [Penghitung biaya](#cost-counter) untuk definisi dan perilaku penyuntingan.

682 724 

683<h4 id="code-edit-tool-decision-counter">725<h4 id="code-edit-tool-decision-counter">

684 Penghitung keputusan alat pengeditan kode726 Penghitung keputusan alat pengedit kode

685</h4>727</h4>

686 728 

687Ditingkatkan saat pengguna menerima atau menolak penggunaan alat Edit, Write, atau NotebookEdit.729Ditingkatkan ketika pengguna menerima atau menolak penggunaan alat Edit, Write, atau NotebookEdit.

688 730 

689**Atribut**:731**Atribut**:

690 732 

691* Semua [atribut standar](#standard-attributes)733* Semua [atribut standar](#standard-attributes)

692* `tool_name`: Nama alat (`"Edit"`, `"Write"`, `"NotebookEdit"`)734* `tool_name`: Nama alat (`"Edit"`, `"Write"`, `"NotebookEdit"`)

693* `decision`: Keputusan pengguna (`"accept"`, `"reject"`)735* `decision`: Keputusan pengguna (`"accept"`, `"reject"`)

694* `source`: Sumber keputusan. Salah satu dari `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"`, atau `"user_reject"`. Lihat [Acara keputusan alat](#tool-decision-event) untuk mengetahui apa arti setiap nilai.736* `source`: Dari mana keputusan berasal. Salah satu dari `"config"`, `"hook"`, `"user_permanent"`, `"user_temporary"`, `"user_abort"`, atau `"user_reject"`. Lihat [Peristiwa keputusan alat](#tool-decision-event) untuk apa arti setiap nilai.

695* `language`: Bahasa pemrograman file yang diedit, seperti `"TypeScript"`, `"Python"`, `"JavaScript"`, atau `"Markdown"`. Mengembalikan `"unknown"` untuk ekstensi file yang tidak dikenali.737* `language`: Bahasa pemrograman file yang diedit, seperti `"TypeScript"`, `"Python"`, `"JavaScript"`, atau `"Markdown"`. Mengembalikan `"unknown"` untuk ekstensi file yang tidak dikenali.

696 738 

697<h4 id="active-time-counter">739<h4 id="active-time-counter">

698 Penghitung waktu aktif740 Penghitung waktu aktif

699</h4>741</h4>

700 742 

701Melacak waktu aktual yang dihabiskan secara aktif menggunakan Claude Code, tidak termasuk waktu idle. Metrik ini ditingkatkan selama interaksi pengguna, seperti mengetik dan membaca respons, dan selama pemrosesan CLI, seperti eksekusi alat dan pembuatan respons AI.743Melacak waktu aktual yang dihabiskan untuk menggunakan Claude Code secara aktif, tidak termasuk waktu idle. Metrik ini ditingkatkan selama interaksi pengguna, seperti mengetik dan membaca respons, dan selama pemrosesan CLI, seperti eksekusi alat dan pembuatan respons AI.

702 744 

703**Atribut**:745**Atribut**:

704 746 


706* `type`: `"user"` untuk interaksi keyboard, `"cli"` untuk eksekusi alat dan respons AI748* `type`: `"user"` untuk interaksi keyboard, `"cli"` untuk eksekusi alat dan respons AI

707 749 

708<h3 id="events">750<h3 id="events">

709 Acara751 Peristiwa

710</h3>752</h3>

711 753 

712Claude Code mengekspor acara berikut melalui log/acara OpenTelemetry (saat `OTEL_LOGS_EXPORTER` dikonfigurasi):754Claude Code mengekspor peristiwa berikut melalui log/peristiwa OpenTelemetry (ketika `OTEL_LOGS_EXPORTER` dikonfigurasi):

713 755 

714<h4 id="event-correlation-attributes">756<h4 id="event-correlation-attributes">

715 Atribut korelasi acara757 Atribut korelasi peristiwa

716</h4>758</h4>

717 759 

718Saat pengguna mengirimkan prompt, Claude Code dapat membuat beberapa panggilan API dan menjalankan beberapa alat. Atribut `prompt.id` memungkinkan Anda menghubungkan semua acara tersebut kembali ke prompt tunggal yang memicunya.760Ketika pengguna mengirimkan prompt, Claude Code dapat membuat beberapa panggilan API dan menjalankan beberapa alat. Atribut `prompt.id` memungkinkan Anda menghubungkan semua peristiwa tersebut kembali ke prompt tunggal yang memicunya.

719 761 

720| Atribut | Deskripsi |762| Atribut | Deskripsi |

721| - | - |763| - | - |

722| `prompt.id` | Pengidentifikasi UUID v4 yang menghubungkan semua acara yang dihasilkan saat memproses prompt pengguna tunggal |764| `prompt.id` | Pengenal UUID v4 yang menghubungkan semua peristiwa yang dihasilkan saat memproses prompt pengguna tunggal |

723| `event.sequence` | Penghitung berbasis 0 untuk mengurutkan acara, dihitung per proses Claude Code daripada per sesi |765| `event.sequence` | Penghitung berbasis 0 untuk mengurutkan peristiwa, dihitung per proses Claude Code daripada per sesi |

724| `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` |766| `message.uuid` | UUID pesan seperti yang disimpan dalam transkrip sesi, file `~/.claude/projects/*/*.jsonl`. Hadir pada `assistant_response`, pada `api_response_body`, dan pada `user_prompt` kecuali untuk pengiriman perintah, yang dapat menghasilkan nol atau banyak pesan. Pada `assistant_response` dan `api_response_body`, ini adalah entri transkrip akhir respons, yang `parentUuid` giliran berikutnya rantai dari. Memerlukan Claude Code v2.1.214 atau lebih baru, atau v2.1.274 atau lebih baru pada `api_response_body` |

725| `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 |767| `request_id` | ID yang ditetapkan server dari permintaan API, dibaca dari header respons `request-id`, seperti `req_011...`. Pada respons tanpa header `request-id`, seperti pada [Amazon Bedrock](/docs/id/amazon-bedrock), nilai berasal dari header `x-amzn-requestid` sebagai gantinya. Hadir pada `api_request`, `api_error`, `api_refusal`, `assistant_response`, dan `api_response_body` ketika respons membawa salah satu header. Cocok dengan atribut yang sama pada span trace `llm_request`. Sumber `x-amzn-requestid` memerlukan Claude Code v2.1.282 atau lebih baru |

768| `client_request_id` | UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`. Hadir pada `api_request` dan `api_error` pada koneksi API pihak pertama; tidak ada pada backend penyedia pihak ketiga dan ketika permintaan diulang melalui fallback non-streaming. Memasangkan permintaan dengan responsnya dan tetap tersedia untuk kegagalan seperti timeout yang tidak pernah menghasilkan `request_id` server. Cocok dengan atribut yang sama pada span trace `llm_request`. Memerlukan Claude Code v2.1.214 atau lebih baru |

726 769 

727Untuk 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.770Untuk melacak semua aktivitas yang dipicu oleh prompt tunggal, filter peristiwa Anda berdasarkan nilai `prompt.id` tertentu. Ini mengembalikan peristiwa user\_prompt, peristiwa api\_request apa pun, dan peristiwa tool\_result apa pun yang terjadi saat memproses prompt tersebut.

728 771 

729`event.sequence` dimulai pada 0 setiap kali proses Claude Code dimulai dan menghitung naik untuk kehidupan proses itu. Terus menghitung di seluruh `/clear`, yang menetapkan `session.id` baru. Jika Anda [melanjutkan sesi tanpa forking](/docs/id/how-claude-code-works#resume-or-fork-sessions), sesi menyimpan `session.id`-nya tetapi mengambil nilai `event.sequence`-nya dari proses yang melanjutkannya, jadi dalam satu sesi acara yang lebih baru dapat membawa nilai yang lebih rendah daripada acara yang lebih awal, atau mengulangi satu. Untuk mengurutkan acara sesi, urutkan berdasarkan `event.timestamp` dan gunakan `event.sequence` untuk mengurutkan acara yang berbagi stempel waktu.772`event.sequence` dimulai pada 0 setiap kali proses Claude Code dimulai dan menghitung untuk kehidupan proses tersebut. Terus menghitung di seluruh `/clear`, yang menetapkan `session.id` baru. Jika Anda [melanjutkan sesi tanpa forking](/docs/id/how-claude-code-works#resume-or-fork-sessions), sesi menyimpan `session.id`-nya tetapi mengambil nilai `event.sequence`-nya dari proses yang melanjutkannya, jadi dalam satu sesi peristiwa yang lebih baru dapat membawa nilai yang lebih rendah daripada yang lebih awal, atau mengulangi satu. Untuk mengurutkan peristiwa sesi, urutkan berdasarkan `event.timestamp` dan gunakan `event.sequence` untuk mengurutkan peristiwa yang berbagi timestamp.

730 773 

731Untuk 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:774Untuk rekonstruksi tingkat pesan, setiap kelas peristiwa membawa kunci yang cocok dengan bidang dalam transkrip sesi. Format entri transkrip adalah [internal ke 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:

732 775 

733* `message.uuid` pada `user_prompt`, `assistant_response`, dan `api_response_body`776* `message.uuid` pada `user_prompt`, `assistant_response`, dan `api_response_body`

734* `request_id` pada acara API, disimpan sebagai `requestId` pada entri asisten transkrip777* `request_id` pada peristiwa API, disimpan sebagai `requestId` pada entri asisten transkrip

735* `tool_use_id` pada acara `tool_result` dan `tool_decision`778* `tool_use_id` pada peristiwa `tool_result` dan `tool_decision`

736 779 

737<h4 id="user-prompt-event">780<h4 id="user-prompt-event">

738 Acara prompt pengguna781 Peristiwa prompt pengguna

739</h4>782</h4>

740 783 

741Dicatat saat pengguna mengirimkan prompt.784Dicatat ketika pengguna mengirimkan prompt.

742 785 

743**Nama Acara**: `claude_code.user_prompt`786**Nama Peristiwa**: `claude_code.user_prompt`

744 787 

745**Atribut**:788**Atribut**:

746 789 

747* Semua [atribut standar](#standard-attributes)790* Semua [atribut standar](#standard-attributes)

748* `event.name`: `"user_prompt"`791* `event.name`: `"user_prompt"`

749* `event.timestamp`: Stempel waktu ISO 8601792* `event.timestamp`: Timestamp ISO 8601

750* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)793* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

751* `prompt_length`: Panjang prompt794* `prompt_length`: Panjang prompt

752* `prompt`: Konten prompt. Diredaksi secara default. Atur `OTEL_LOG_USER_PROMPTS=1` untuk menyertakannya795* `prompt`: Konten prompt. Disunting secara default. Atur `OTEL_LOG_USER_PROMPTS=1` untuk menyertakannya

753* `message.uuid`: UUID pesan pengguna yang dihasilkan, cocok dengan entri transkrip yang disimpan. Tidak ada pada command dispatches, yang dapat menghasilkan nol atau banyak pesan. Memerlukan Claude Code v2.1.214 atau lebih baru796* `message.uuid`: UUID pesan pengguna yang dihasilkan, cocok dengan entri transkrip yang disimpan. Tidak ada pada pengiriman perintah, yang dapat menghasilkan nol atau banyak pesan. Memerlukan Claude Code v2.1.214 atau lebih baru

754* `command_name`: Nama perintah saat prompt memanggil satu. Nama perintah built-in dan bundled seperti `compact` atau `debug` dipancarkan apa adanya; alias seperti `reset` dipancarkan sebagai yang diketik daripada nama kanonik. Nama perintah custom, plugin, dan MCP runtuh menjadi `custom` atau `mcp` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur797* `command_name`: Nama perintah ketika prompt memanggil satu. Nama perintah bawaan dan bundel seperti `compact` atau `debug` dipancarkan apa adanya; alias seperti `reset` dipancarkan seperti yang diketik daripada nama kanonik. Nama perintah kustom, plugin, dan MCP runtuh menjadi `custom` atau `mcp` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur

755* `command_source`: Asal perintah saat ada: `builtin`, `custom`, atau `mcp`. Perintah yang disediakan plugin melaporkan sebagai `custom`798* `command_source`: Asal perintah saat ada: `builtin`, `custom`, atau `mcp`. Perintah yang disediakan plugin melaporkan sebagai `custom`

756 799 

757<h4 id="assistant-response-event">800<h4 id="assistant-response-event">

758 Acara respons asisten801 Peristiwa respons asisten

759</h4>802</h4>

760 803 

761Dicatat setelah setiap permintaan API yang mengembalikan konten teks dari model. Hanya blok teks respons yang disertakan; blok thinking dan blok tool-use dikecualikan. Memerlukan Claude Code v2.1.193 atau lebih baru.804Dicatat setelah setiap permintaan API yang mengembalikan konten teks dari model. Hanya blok teks respons yang disertakan; blok pemikiran dan blok penggunaan alat dikecualikan. Memerlukan Claude Code v2.1.193 atau lebih baru.

762 805 

763**Nama Acara**: `claude_code.assistant_response`806**Nama Peristiwa**: `claude_code.assistant_response`

764 807 

765**Atribut**:808**Atribut**:

766 809 

767* Semua [atribut standar](#standard-attributes)810* Semua [atribut standar](#standard-attributes)

768* `event.name`: `"assistant_response"`811* `event.name`: `"assistant_response"`

769* `event.timestamp`: Stempel waktu ISO 8601812* `event.timestamp`: Timestamp ISO 8601

770* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)813* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

771* `response_length`: Panjang teks respons dalam karakter814* `response_length`: Panjang teks respons dalam karakter

772* `response`: Teks respons, dipotong pada batas konten (60 KB secara default). Diredaksi menjadi `<REDACTED>` secara default. Atur `OTEL_LOG_ASSISTANT_RESPONSES=1` untuk menyertakannya. Saat `OTEL_LOG_ASSISTANT_RESPONSES` tidak diatur, `OTEL_LOG_USER_PROMPTS` mengontrolnya sebagai gantinya, jadi atur `OTEL_LOG_ASSISTANT_RESPONSES=0` untuk menjaga respons diredaksi saat logging prompt aktif815* `response`: Teks respons, dipotong pada batas konten (60 KB secara default). Disunting menjadi `<REDACTED>` secara default. Atur `OTEL_LOG_ASSISTANT_RESPONSES=1` untuk menyertakannya. Ketika `OTEL_LOG_ASSISTANT_RESPONSES` tidak diatur, `OTEL_LOG_USER_PROMPTS` mengontrolnya sebagai gantinya, jadi atur `OTEL_LOG_ASSISTANT_RESPONSES=0` untuk menjaga respons disunting saat pencatatan prompt aktif

773* `model`: Pengidentifikasi model (misalnya, "claude-sonnet-5")816* `model`: Pengenal model (misalnya, "claude-sonnet-5")

774* `request_id`: ID permintaan API Anthropic dari header `request-id` respons. Hadir hanya saat API mengembalikan satu817* `request_id`: ID permintaan API, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

775* `message.uuid`: UUID entri transkrip akhir respons. Respons API disimpan sebagai satu entri transkrip per blok konten; ini adalah yang terakhir, yang `parentUuid` giliran berikutnya berantai dari. Memerlukan Claude Code v2.1.214 atau lebih baru818* `message.uuid`: UUID entri transkrip akhir respons. Respons API disimpan sebagai satu entri transkrip per blok konten; ini adalah yang terakhir, yang `parentUuid` giliran berikutnya rantai dari. Memerlukan Claude Code v2.1.214 atau lebih baru

776* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagent819* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen

777 820 

778<h4 id="tool-result-event">821<h4 id="tool-result-event">

779 Acara hasil alat822 Peristiwa hasil alat

780</h4>823</h4>

781 824 

782Dicatat saat alat menyelesaikan eksekusi. Tidak dipancarkan jika panggilan alat ditolak; lihat [Acara keputusan alat](#tool-decision-event) untuk penolakan.825Dicatat ketika alat menyelesaikan eksekusi. Tidak dipancarkan jika panggilan alat ditolak; lihat [Peristiwa keputusan alat](#tool-decision-event) untuk penolakan.

783 826 

784**Nama Acara**: `claude_code.tool_result`827**Nama Peristiwa**: `claude_code.tool_result`

785 828 

786**Atribut**:829**Atribut**:

787 830 

788* Semua [atribut standar](#standard-attributes)831* Semua [atribut standar](#standard-attributes)

789* `event.name`: `"tool_result"`832* `event.name`: `"tool_result"`

790* `event.timestamp`: Stempel waktu ISO 8601833* `event.timestamp`: Timestamp ISO 8601

791* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)834* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

792* `tool_name`: Nama alat835* `tool_name`: Nama alat

793* `tool_use_id`: Pengidentifikasi unik untuk invokasi alat ini. Cocok dengan `tool_use_id` yang diteruskan ke hooks, memungkinkan korelasi antara acara OTel dan data yang ditangkap hook.836* `tool_use_id`: Pengenal unik untuk invokasi alat ini. Cocok dengan `tool_use_id` yang dilewatkan ke hooks, memungkinkan korelasi antara peristiwa OTel dan data yang ditangkap hook.

794* `success`: `"true"` atau `"false"`837* `success`: `"true"` atau `"false"`

795* `duration_ms`: Waktu eksekusi dalam milidetik838* `duration_ms`: Waktu eksekusi dalam milidetik

796* `error_type`: String kategori kesalahan saat alat gagal, seperti `"Error:ENOENT"` atau `"ShellError"`839* `error_type`: String kategori kesalahan ketika alat gagal, seperti `"Error:ENOENT"` atau `"ShellError"`

797* `error` (saat `OTEL_LOG_TOOL_DETAILS=1`): Pesan kesalahan lengkap saat alat gagal840* `error` (ketika `OTEL_LOG_TOOL_DETAILS=1`): Pesan kesalahan lengkap ketika alat gagal

798* `decision_type`: Selalu `"accept"`, karena acara ini hanya dipancarkan setelah alat berjalan. Panggilan yang ditolak tidak menghasilkan hasil alat841* `decision_type`: Selalu `"accept"`, karena peristiwa ini hanya dipancarkan setelah alat berjalan. Panggilan yang ditolak tidak menghasilkan hasil alat

799* `decision_source`: Sumber keputusan izin. Salah satu dari `"config"`, `"hook"`, `"user_permanent"`, atau `"user_temporary"`. Lihat [Acara keputusan alat](#tool-decision-event) untuk mengetahui apa arti setiap nilai. Sumber hanya-tolak `"user_abort"` dan `"user_reject"` tidak pernah muncul pada acara ini.842* `decision_source`: Dari mana keputusan izin berasal. Salah satu dari `"config"`, `"hook"`, `"user_permanent"`, atau `"user_temporary"`. Lihat [Peristiwa keputusan alat](#tool-decision-event) untuk apa arti setiap nilai. Sumber khusus penolakan `"user_abort"` dan `"user_reject"` tidak pernah muncul pada peristiwa ini.

800* `tool_input_size_bytes`: Ukuran input alat yang diserialisasi JSON dalam byte843* `tool_input_size_bytes`: Ukuran input alat yang diserialisasi JSON dalam byte

801* `tool_result_size_bytes`: Ukuran hasil alat dalam byte844* `tool_result_size_bytes`: Ukuran hasil alat dalam byte

802* `mcp_server_scope`: Pengidentifikasi cakupan server MCP (untuk alat MCP)845* `mcp_server_scope`: Pengenal cakupan server MCP (untuk alat MCP)

803* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (saat `OTEL_LOG_TOOL_DETAILS=1`): identitas komit dari run `git commit` yang berhasil oleh alat Bash atau PowerShell. `vcs.ref.head.revision` adalah SHA komit, `vcs.ref.head.name` adalah cabang tempat itu dikomit, dan `vcs.ref.head.type` adalah `branch`. Nama dan tipe dihilangkan saat komit dibuat pada HEAD terlepas. Memerlukan Claude Code v2.1.269 atau lebih baru846* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (ketika `OTEL_LOG_TOOL_DETAILS=1`): identitas commit dari run `git commit` yang berhasil oleh alat Bash atau PowerShell. `vcs.ref.head.revision` adalah SHA commit, `vcs.ref.head.name` adalah cabang tempat commit dilakukan, dan `vcs.ref.head.type` adalah `branch`. Nama dan jenis dihilangkan ketika commit dilakukan pada HEAD terlepas. Memerlukan Claude Code v2.1.269 atau lebih baru

804* `tool_parameters` (saat `OTEL_LOG_TOOL_DETAILS=1`): String JSON yang berisi parameter khusus alat. Untuk server built-in Claude Desktop, dalam sesi yang dimiliki Claude Desktop, pasangan `mcp_server_name`/`mcp_tool_name` disertakan bahkan dengan flag off, pengecualian yang sama yang ditulis host seperti [Acara keputusan alat](#tool-decision-event), memerlukan Claude Code v2.1.214 atau lebih baru. Parameter bervariasi menurut alat:847* `tool_parameters` (ketika `OTEL_LOG_TOOL_DETAILS=1`): String JSON yang berisi parameter khusus alat. Untuk server bawaan Claude Desktop, dalam sesi yang dimiliki Claude Desktop, pasangan `mcp_server_name`/`mcp_tool_name` disertakan bahkan dengan flag off, pengecualian yang sama yang ditulis host seperti [Peristiwa keputusan alat](#tool-decision-event), memerlukan Claude Code v2.1.214 atau lebih baru. Parameter bervariasi menurut alat:

805 * Untuk alat Bash: mencakup `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`, dan `git_commit_id` serta `git_branch` saat perintah `git commit` berhasil. `git_commit_id` adalah SHA komit penuh saat komit adalah HEAD dari direktori kerja sesi, dan SHA singkat git sebaliknya. `git_branch` adalah cabang tempat itu dikomit, dihilangkan pada HEAD terlepas848 * Untuk alat Bash: menyertakan `bash_command`, `full_command`, `timeout`, `description`, dan `dangerouslyDisableSandbox`, ditambah `git_commit_id` dan `git_branch` ketika perintah `git commit` berhasil. `git_commit_id` adalah SHA commit lengkap ketika commit adalah HEAD dari direktori kerja sesi, dan SHA singkat git sebaliknya. `git_branch` adalah cabang tempat commit dilakukan, dihilangkan pada HEAD terlepas

806 * Untuk alat Bash ruang kerja aplikasi desktop, yang juga melaporkan `tool_name` sebagai `Bash`: mencakup hanya `bash_command`, `full_command`, dan `timeout`849 * Untuk alat Bash workspace aplikasi desktop, yang juga melaporkan `tool_name` sebagai `Bash`: menyertakan hanya `bash_command`, `full_command`, dan `timeout`

807 * Untuk alat MCP: mencakup `mcp_server_name`, `mcp_tool_name`850 * Untuk alat MCP: menyertakan `mcp_server_name`, `mcp_tool_name`

808 * Untuk alat Skill: mencakup `skill_name`851 * Untuk alat Skill: menyertakan `skill_name`

809 * Untuk alat Agent atau alat Task legacy: mencakup `subagent_type`852 * Untuk alat Agent atau alat Task warisan: menyertakan `subagent_type`

810* `tool_input` (saat `OTEL_LOG_TOOL_DETAILS=1`): Argumen alat yang diserialisasi JSON. Nilai individual di atas 512 karakter dipotong, dan muatan penuh dibatasi hingga \~4 K karakter. Berlaku untuk semua alat termasuk alat MCP.853* `tool_input` (ketika `OTEL_LOG_TOOL_DETAILS=1`): Argumen alat yang diserialisasi JSON. Nilai individual di atas 512 karakter dipotong, dan muatan lengkap dibatasi hingga \~4 K karakter. Berlaku untuk semua alat termasuk alat MCP.

811 854 

812<h4 id="api-request-event">855<h4 id="api-request-event">

813 Acara permintaan API856 Peristiwa permintaan API

814</h4>857</h4>

815 858 

816Dicatat untuk setiap permintaan API ke Claude.859Dicatat untuk setiap permintaan API ke Claude.

817 860 

818**Nama Acara**: `claude_code.api_request`861**Nama Peristiwa**: `claude_code.api_request`

819 862 

820**Atribut**:863**Atribut**:

821 864 

822* Semua [atribut standar](#standard-attributes)865* Semua [atribut standar](#standard-attributes)

823* `event.name`: `"api_request"`866* `event.name`: `"api_request"`

824* `event.timestamp`: Stempel waktu ISO 8601867* `event.timestamp`: Timestamp ISO 8601

825* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)868* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

826* `model`: Model yang digunakan (misalnya, "claude-sonnet-5")869* `model`: Model yang digunakan (misalnya, "claude-sonnet-5")

827* `cost_usd`: Biaya perkiraan dalam USD870* `cost_usd`: Biaya perkiraan dalam USD

828* `cost_usd_micros`: Biaya perkiraan dalam jutaan dolar AS, dipancarkan sebagai integer871* `cost_usd_micros`: Biaya perkiraan dalam jutaan dolar AS, dipancarkan sebagai integer


831* `output_tokens`: Jumlah token output874* `output_tokens`: Jumlah token output

832* `cache_read_tokens`: Jumlah token yang dibaca dari cache875* `cache_read_tokens`: Jumlah token yang dibaca dari cache

833* `cache_creation_tokens`: Jumlah token yang digunakan untuk pembuatan cache876* `cache_creation_tokens`: Jumlah token yang digunakan untuk pembuatan cache

834* `request_id`: ID permintaan API Anthropic dari header `request-id` respons, seperti `"req_011..."`. Hadir hanya saat API mengembalikan satu.877* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).

835* `client_request_id`: UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`; lihat tabel [atribut korelasi acara](#event-correlation-attributes) untuk kapan itu ada. Memerlukan Claude Code v2.1.214 atau lebih baru878* `client_request_id`: UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`; lihat tabel [atribut korelasi peristiwa](#event-correlation-attributes) untuk kapan ada. Memerlukan Claude Code v2.1.214 atau lebih baru

836* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif879* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif

837* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagent880* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen

838* `effort`: [Tingkat effort](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan: `"low"`, `"medium"`, `"high"`, `"xhigh"`, atau `"max"`. Tidak ada saat model tidak mendukung effort.881* `effort`: [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan: `"low"`, `"medium"`, `"high"`, `"xhigh"`, atau `"max"`. Tidak ada ketika Claude Code tidak mengirim tingkat upaya, misalnya pada model yang tidak mendukung upaya.

839* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribusi skill, plugin, agen, dan MCP untuk permintaan. Lihat [Penghitung biaya](#cost-counter) untuk definisi dan perilaku redaksi.882* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribusi skill, plugin, agen, dan MCP untuk permintaan. Lihat [Penghitung biaya](#cost-counter) untuk definisi dan perilaku penyuntingan.

840 883 

841<h4 id="api-error-event">884<h4 id="api-error-event">

842 Acara kesalahan API885 Peristiwa kesalahan API

843</h4>886</h4>

844 887 

845Dicatat saat permintaan API ke Claude gagal.888Dicatat ketika permintaan API ke Claude gagal.

846 889 

847**Nama Acara**: `claude_code.api_error`890**Nama Peristiwa**: `claude_code.api_error`

848 891 

849**Atribut**:892**Atribut**:

850 893 

851* Semua [atribut standar](#standard-attributes)894* Semua [atribut standar](#standard-attributes)

852* `event.name`: `"api_error"`895* `event.name`: `"api_error"`

853* `event.timestamp`: Stempel waktu ISO 8601896* `event.timestamp`: Timestamp ISO 8601

854* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)897* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

855* `model`: Model yang digunakan (misalnya, "claude-sonnet-5")898* `model`: Model yang digunakan (misalnya, "claude-sonnet-5")

856* `error`: Pesan kesalahan899* `error`: Pesan kesalahan

857* `status_code`: Kode status HTTP sebagai angka. Tidak ada untuk kesalahan non-HTTP seperti kegagalan koneksi.900* `status_code`: Kode status HTTP sebagai angka. Tidak ada untuk kesalahan non-HTTP seperti kegagalan koneksi.

858* `duration_ms`: Durasi permintaan dalam milidetik901* `duration_ms`: Durasi permintaan dalam milidetik

859* `attempt`: Jumlah total upaya yang dilakukan, termasuk permintaan awal (`1` berarti tidak ada retry yang terjadi)902* `attempt`: Jumlah total upaya yang dilakukan, termasuk permintaan awal (`1` berarti tidak ada pengulangan yang terjadi)

860* `request_id`: ID permintaan API Anthropic dari header `request-id` respons, seperti `"req_011..."`. Hadir hanya saat API mengembalikan satu.903* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).

861* `client_request_id`: UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`. Tersedia bahkan saat kegagalan seperti timeout atau kesalahan koneksi tidak pernah menghasilkan `request_id` server; lihat tabel [atribut korelasi acara](#event-correlation-attributes) untuk kapan itu ada. Memerlukan Claude Code v2.1.214 atau lebih baru904* `client_request_id`: UUID yang dihasilkan klien dikirim sebagai header permintaan `x-client-request-id`. Tersedia bahkan ketika kegagalan seperti timeout atau kesalahan koneksi tidak pernah menghasilkan `request_id` server; lihat tabel [atribut korelasi peristiwa](#event-correlation-attributes) untuk kapan ada. Memerlukan Claude Code v2.1.214 atau lebih baru

862* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif905* `speed`: `"fast"` atau `"normal"`, menunjukkan apakah mode cepat aktif

863* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagent906* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen

864* `effort`: [Tingkat effort](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan. Tidak ada saat model tidak mendukung effort.907* `effort`: [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan. Tidak ada ketika Claude Code tidak mengirim tingkat upaya, misalnya pada model yang tidak mendukung upaya.

865* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribusi skill, plugin, agen, dan MCP untuk permintaan. Lihat [Penghitung biaya](#cost-counter) untuk definisi dan perilaku redaksi.908* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribusi skill, plugin, agen, dan MCP untuk permintaan. Lihat [Penghitung biaya](#cost-counter) untuk definisi dan perilaku penyuntingan.

866 909 

867<h4 id="api-refusal-event">910<h4 id="api-refusal-event">

868 Acara penolakan API911 Peristiwa penolakan API

869</h4>912</h4>

870 913 

871Dicatat saat permintaan API mengembalikan `stop_reason: "refusal"`. Penolakan tiba pada aliran respons yang berhasil daripada sebagai kesalahan HTTP, jadi acara `api_error` tidak terpicu untuk mereka. Acara ini memungkinkan Anda melacak frekuensi penolakan dan mengelompokkan penolakan berdasarkan atribut yang sama dengan `api_request` dan `api_error`.914Dicatat ketika permintaan API mengembalikan `stop_reason: "refusal"`. Penolakan tiba pada aliran respons yang berhasil daripada sebagai kesalahan HTTP, jadi peristiwa `api_error` tidak terbangkitkan untuk mereka. Peristiwa ini memungkinkan Anda melacak frekuensi penolakan dan mengelompokkan penolakan menurut atribut yang sama dengan `api_request` dan `api_error`.

872 915 

873**Nama Acara**: `claude_code.api_refusal`916**Nama Peristiwa**: `claude_code.api_refusal`

874 917 

875**Atribut**:918**Atribut**:

876 919 

877* Semua [atribut standar](#standard-attributes)920* Semua [atribut standar](#standard-attributes)

878* `event.name`: `"api_refusal"`921* `event.name`: `"api_refusal"`

879* `event.timestamp`: Stempel waktu ISO 8601922* `event.timestamp`: Timestamp ISO 8601

880* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)923* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

881* `model`: Pengidentifikasi model dari permintaan924* `model`: Pengenal model dari permintaan

882* `request_id`: ID permintaan API Anthropic dari header `request-id` respons, seperti `"req_011..."`. Hadir hanya saat API mengembalikan satu.925* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).

883* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagent. Lihat [`api_request`](#api-request-event) untuk definisi.926* `query_source`: Subsistem yang mengeluarkan permintaan, seperti `"repl_main_thread"`, `"compact"`, atau nama subagen. Lihat [`api_request`](#api-request-event) untuk definisi.

884* `speed`: Baik `"fast"` saat [Mode cepat](/docs/id/fast-mode) aktif, atau `"normal"`927* `speed`: Baik `"fast"` ketika [Mode cepat](/docs/id/fast-mode) aktif, atau `"normal"`

885* `attempt`: Nomor upaya retry. Upaya pertama adalah `1`.928* `attempt`: Nomor upaya pengulangan. Upaya pertama adalah `1`.

886* `effort`: [Tingkat effort](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan. Tidak ada saat model tidak mendukung effort.929* `effort`: [Tingkat upaya](/docs/id/model-config#adjust-effort-level) yang diterapkan pada permintaan. Tidak ada ketika Claude Code tidak mengirim tingkat upaya, misalnya pada model yang tidak mendukung upaya.

887* `server_fallback_hop`: `true` saat fallback model server-side API sudah mencoba ulang penolakan ini pada model yang berbeda, jadi pengguna tidak melihat penolakan khusus ini. `false` saat permintaan berakhir dalam penolakan. Satu giliran dapat memancarkan acara hop `true` dan acara akhir `false` yang lebih baru saat model fallback juga menolak.930* `server_fallback_hop`: `true` ketika fallback model server-side API sudah mencoba ulang penolakan ini pada model yang berbeda, jadi pengguna tidak melihat penolakan khusus ini. `false` ketika permintaan berakhir dalam penolakan. Satu giliran dapat memancarkan peristiwa hop `true` dan peristiwa final `false` yang lebih baru ketika model fallback juga menolak.

888* `has_category`: `true` saat respons API membawa `stop_details.category` dari `"cyber"`, `"bio"`, `"frontier_llm"`, atau `"reasoning_extraction"`. `false` saat respons tidak membawa kategori atau nilai di luar set itu. Tidak ada saat `server_fallback_hop` adalah `true`, karena blok hop tidak membawa `stop_details`.931* `has_category`: `true` ketika respons API membawa `stop_details.category` dari `"cyber"`, `"bio"`, `"frontier_llm"`, atau `"reasoning_extraction"`. `false` ketika respons tidak membawa kategori atau nilai di luar set itu. Tidak ada ketika `server_fallback_hop` adalah `true`, karena blok hop tidak membawa `stop_details`.

889* `has_explanation`: `true` saat respons API membawa `stop_details.explanation`, sebaliknya `false`. Tidak ada saat `server_fallback_hop` adalah `true`.932* `has_explanation`: `true` ketika respons API membawa `stop_details.explanation`, sebaliknya `false`. Tidak ada ketika `server_fallback_hop` adalah `true`.

890* `category`: Nilai `stop_details.category` dari respons API. Salah satu dari `"cyber"`, `"bio"`, `"frontier_llm"`, atau `"reasoning_extraction"`. Hanya ada saat `OTEL_LOG_TOOL_DETAILS=1` diatur dan `has_category` adalah `true`.933* `category`: Nilai `stop_details.category` dari respons API. Salah satu dari `"cyber"`, `"bio"`, `"frontier_llm"`, atau `"reasoning_extraction"`. Hanya ada ketika `OTEL_LOG_TOOL_DETAILS=1` diatur dan `has_category` adalah `true`.

891* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribusi skill, plugin, agen, dan MCP untuk permintaan. Lihat [Penghitung biaya](#cost-counter) untuk definisi dan perilaku redaksi.934* `agent.name`, `skill.name`, `plugin.name`, `marketplace.name`, `mcp_server.name`, `mcp_tool.name`: Atribusi skill, plugin, agen, dan MCP untuk permintaan. Lihat [Penghitung biaya](#cost-counter) untuk definisi dan perilaku penyuntingan.

892 935 

893<h4 id="api-request-body-event">936<h4 id="api-request-body-event">

894 Acara badan permintaan API937 Peristiwa badan permintaan API

895</h4>938</h4>

896 939 

897Dicatat untuk setiap upaya permintaan API saat `OTEL_LOG_RAW_API_BODIES` diatur. Satu acara dipancarkan per upaya, jadi retry dengan parameter yang disesuaikan masing-masing menghasilkan acara mereka sendiri.940Dicatat untuk setiap upaya permintaan API ketika `OTEL_LOG_RAW_API_BODIES` diatur. Satu peristiwa dipancarkan per upaya, jadi pengulangan dengan parameter yang disesuaikan masing-masing menghasilkan peristiwa mereka sendiri.

898 941 

899**Nama Acara**: `claude_code.api_request_body`942**Nama Peristiwa**: `claude_code.api_request_body`

900 943 

901**Atribut**:944**Atribut**:

902 945 

903* Semua [atribut standar](#standard-attributes)946* Semua [atribut standar](#standard-attributes)

904* `event.name`: `"api_request_body"`947* `event.name`: `"api_request_body"`

905* `event.timestamp`: Stempel waktu ISO 8601948* `event.timestamp`: Timestamp ISO 8601

906* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)949* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

907* `body`: Parameter permintaan Messages API yang diserialisasi JSON, seperti system prompt, messages, dan tools, dipotong pada batas konten (60 KB secara default). Konten extended-thinking dalam giliran asisten sebelumnya diredaksi. Dipancarkan hanya dalam mode inline (`OTEL_LOG_RAW_API_BODIES=1`).950* `body`: Parameter permintaan Messages API yang diserialisasi JSON, seperti prompt sistem, pesan, dan alat, dipotong pada batas konten (60 KB secara default). Konten pemikiran yang diperpanjang dalam giliran asisten sebelumnya disunting. Hanya dipancarkan dalam mode inline (`OTEL_LOG_RAW_API_BODIES=1`).

908* `body_ref`: Jalur absolut ke file `<dir>/<uuid>.request.json` yang berisi badan yang tidak dipotong. Dipancarkan hanya dalam mode file (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).951* `body_ref`: Jalur absolut ke file `<dir>/<uuid>.request.json` yang berisi badan yang tidak dipotong. Hanya dipancarkan dalam mode file (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).

909* `body_length`: Panjang badan yang tidak dipotong. Byte UTF-8 saat `OTEL_LOG_RAW_API_BODIES=file:<dir>`, atau unit kode UTF-16 saat `=1`952* `body_length`: Panjang badan yang tidak dipotong. Byte UTF-8 ketika `OTEL_LOG_RAW_API_BODIES=file:<dir>`, atau unit kode UTF-16 ketika `=1`

910* `body_truncated`: `"true"` saat pemotongan inline terjadi. Tidak ada dalam mode file dan saat tidak ada pemotongan yang terjadi.953* `body_truncated`: `"true"` ketika pemotongan inline terjadi. Tidak ada dalam mode file dan ketika tidak ada pemotongan yang terjadi.

911* `model`: Pengidentifikasi model dari parameter permintaan954* `model`: Pengenal model dari parameter permintaan

912* `query_source`: Subsistem yang mengeluarkan permintaan (misalnya, `"compact"`)955* `query_source`: Subsistem yang mengeluarkan permintaan (misalnya, `"compact"`)

913* `request_body_id`: UUID yang mengidentifikasi badan permintaan upaya ini. Acara [`api_response_body`](#api-response-body-event) untuk upaya yang berhasil membawa nilai yang sama, sehingga Anda dapat memasangkan respons dengan permintaan yang tepat yang menghasilkannya. Memerlukan Claude Code v2.1.274 atau lebih baru956* `request_body_id`: UUID yang mengidentifikasi badan permintaan upaya ini. Peristiwa [`api_response_body`](#api-response-body-event) untuk upaya yang berhasil membawa nilai yang sama, jadi Anda dapat memasangkan respons dengan permintaan yang tepat yang menghasilkannya. Memerlukan Claude Code v2.1.274 atau lebih baru

914 957 

915<h4 id="api-response-body-event">958<h4 id="api-response-body-event">

916 Acara badan respons API959 Peristiwa badan respons API

917</h4>960</h4>

918 961 

919Dicatat untuk setiap respons API yang berhasil saat `OTEL_LOG_RAW_API_BODIES` diatur.962Dicatat untuk setiap respons API yang berhasil ketika `OTEL_LOG_RAW_API_BODIES` diatur.

920 963 

921Dalam mode file (`OTEL_LOG_RAW_API_BODIES=file:<dir>`), Claude Code juga menambahkan satu baris JSON ke `<dir>/index.jsonl` untuk setiap respons yang berhasil, dengan bidang `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file`, dan `response_file`. Bacanya untuk menemukan file permintaan dan respons di balik pesan transkrip tertentu tanpa menanyakan backend telemetri Anda. File indeks memerlukan Claude Code v2.1.274 atau lebih baru.964Dalam mode file (`OTEL_LOG_RAW_API_BODIES=file:<dir>`), Claude Code juga menambahkan satu baris JSON ke `<dir>/index.jsonl` untuk setiap respons yang berhasil, dengan bidang `timestamp`, `session_id`, `query_source`, `model`, `request_id`, `message_id`, `message_uuid`, `request_file`, dan `response_file`. Bacanya untuk menemukan file permintaan dan respons di balik pesan transkrip tertentu tanpa menanyakan backend telemetri Anda. File indeks memerlukan Claude Code v2.1.274 atau lebih baru.

922 965 

923**Nama Acara**: `claude_code.api_response_body`966**Nama Peristiwa**: `claude_code.api_response_body`

924 967 

925**Atribut**:968**Atribut**:

926 969 

927* Semua [atribut standar](#standard-attributes)970* Semua [atribut standar](#standard-attributes)

928* `event.name`: `"api_response_body"`971* `event.name`: `"api_response_body"`

929* `event.timestamp`: Stempel waktu ISO 8601972* `event.timestamp`: Timestamp ISO 8601

930* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)973* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

931* `body`: Respons Messages API yang diserialisasi JSON, termasuk id, content blocks, usage, dan stop reason, dipotong pada batas konten (60 KB secara default). Konten extended-thinking diredaksi. Dipancarkan hanya dalam mode inline (`OTEL_LOG_RAW_API_BODIES=1`).974* `body`: Respons Messages API yang diserialisasi JSON, termasuk id, blok konten, penggunaan, dan alasan berhenti, dipotong pada batas konten (60 KB secara default). Konten pemikiran yang diperpanjang disunting. Hanya dipancarkan dalam mode inline (`OTEL_LOG_RAW_API_BODIES=1`).

932* `body_ref`: Jalur absolut ke file `<dir>/<request_id>.response.json` yang berisi badan yang tidak dipotong. Dipancarkan hanya dalam mode file (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).975* `body_ref`: Jalur absolut ke file `<dir>/<request_id>.response.json` yang berisi badan yang tidak dipotong. Hanya dipancarkan dalam mode file (`OTEL_LOG_RAW_API_BODIES=file:<dir>`).

933* `body_length`: Panjang badan yang tidak dipotong. Byte UTF-8 saat `OTEL_LOG_RAW_API_BODIES=file:<dir>`, atau unit kode UTF-16 saat `=1`976* `body_length`: Panjang badan yang tidak dipotong. Byte UTF-8 ketika `OTEL_LOG_RAW_API_BODIES=file:<dir>`, atau unit kode UTF-16 ketika `=1`

934* `body_truncated`: `"true"` saat pemotongan inline terjadi. Tidak ada dalam mode file dan saat tidak ada pemotongan yang terjadi.977* `body_truncated`: `"true"` ketika pemotongan inline terjadi. Tidak ada dalam mode file dan ketika tidak ada pemotongan yang terjadi.

935* `model`: Pengidentifikasi model978* `model`: Pengenal model

936* `query_source`: Subsistem yang mengeluarkan permintaan979* `query_source`: Subsistem yang mengeluarkan permintaan

937* `request_id`: ID permintaan API Anthropic dari header `request-id` respons, seperti `"req_011..."`. Hadir hanya saat API mengembalikan satu.980* `request_id`: ID permintaan API, seperti `"req_011..."`, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes).

938* `request_body_id`: `request_body_id` dari acara [`api_request_body`](#api-request-body-event) yang dijawab respons ini. Memerlukan Claude Code v2.1.274 atau lebih baru981* `request_body_id`: `request_body_id` dari peristiwa [`api_request_body`](#api-request-body-event) yang respons ini jawab. Memerlukan Claude Code v2.1.274 atau lebih baru

939* `message.id`: ID pesan yang ditetapkan API ke respons, bidang `id` dari badan respons. Memerlukan Claude Code v2.1.274 atau lebih baru982* `message.id`: ID pesan yang API tetapkan untuk respons, bidang `id` dari badan respons. Memerlukan Claude Code v2.1.274 atau lebih baru

940* `message.uuid`: UUID entri transkrip akhir respons. Bersama dengan `request_body_id`, itu menghubungkan pesan transkrip ke badan permintaan dan respons di baliknya. Memerlukan Claude Code v2.1.274 atau lebih baru983* `message.uuid`: UUID entri transkrip akhir respons. Bersama dengan `request_body_id`, ini menghubungkan pesan transkrip dengan badan permintaan dan respons di baliknya. Memerlukan Claude Code v2.1.274 atau lebih baru

941 984 

942<h4 id="tool-decision-event">985<h4 id="tool-decision-event">

943 Acara keputusan alat986 Peristiwa keputusan alat

944</h4>987</h4>

945 988 

946Dicatat saat keputusan izin alat dibuat (terima/tolak).989Dicatat ketika keputusan izin alat dibuat (terima/tolak).

947 990 

948**Nama Acara**: `claude_code.tool_decision`991**Nama Peristiwa**: `claude_code.tool_decision`

949 992 

950**Atribut**:993**Atribut**:

951 994 

952* Semua [atribut standar](#standard-attributes)995* Semua [atribut standar](#standard-attributes)

953* `event.name`: `"tool_decision"`996* `event.name`: `"tool_decision"`

954* `event.timestamp`: Stempel waktu ISO 8601997* `event.timestamp`: Timestamp ISO 8601

955* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)998* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

956* `tool_name`: Nama alat (misalnya, "Read", "Edit", "Write", "NotebookEdit")999* `tool_name`: Nama alat (misalnya, "Read", "Edit", "Write", "NotebookEdit")

957* `tool_use_id`: Pengidentifikasi unik untuk invokasi alat ini. Cocok dengan `tool_use_id` yang diteruskan ke hooks, memungkinkan korelasi antara acara OTel dan data yang ditangkap hook.1000* `tool_use_id`: Pengenal unik untuk invokasi alat ini. Cocok dengan `tool_use_id` yang dilewatkan ke hooks, memungkinkan korelasi antara peristiwa OTel dan data yang ditangkap hook.

958* `decision`: Baik `"accept"` atau `"reject"`1001* `decision`: Baik `"accept"` atau `"reject"`

959* `tool_source`: Selalu ada. Provenance alat, sebagai set nilai yang ditulis CLI tertutup. Memerlukan Claude Code v2.1.214 atau lebih baru1002* `tool_source`: Selalu ada. Asal alat, sebagai set nilai yang ditulis CLI tertutup. Memerlukan Claude Code v2.1.214 atau lebih baru

960 * `"builtin"`: alat CLI sendiri1003 * `"builtin"`: alat CLI itu sendiri

961 * `"mcp"`: server MCP secara umum1004 * `"mcp"`: server MCP secara umum

962 * `"sdk_host_builtin_mcp"`: server in-process built-in ke Claude Desktop itu sendiri, dalam sesi yang dimiliki Claude Desktop. Claude Desktop memiliki sesi yang dimulai dari salah satu entrypoint-nya sendiri, `claude-desktop`, `claude-desktop-3p`, atau `local-agent`, saat sesi itu bukan anak bersarang; sesi bersarang, termasuk sesi yang Claude Code sendiri hasilkan, melaporkan server ini sebagai `"mcp"`1005 * `"sdk_host_builtin_mcp"`: server in-process yang dibangun ke Claude Desktop itu sendiri, dalam sesi yang dimiliki Claude Desktop. Claude Desktop memiliki sesi yang diluncurkannya dari salah satu titik masuk miliknya sendiri, `claude-desktop`, `claude-desktop-3p`, atau `local-agent`, ketika sesi itu bukan anak bersarang; sesi bersarang, termasuk sesi yang Claude Code itu sendiri hasilkan, melaporkan server ini sebagai `"mcp"`

963* `source`: Sumber keputusan:1006* `source`: Dari mana keputusan berasal:

964 * `"config"`: Diputuskan secara otomatis tanpa diminta, berdasarkan pengaturan proyek, aturan izin atau tolak dalam pengaturan pribadi pengguna, kebijakan terkelola perusahaan, flag `--allowedTools` atau `--disallowedTools`, mode izin aktif, hibah berskop sesi dari prompt sebelumnya dalam sesi CLI interaktif yang sama, atau karena alat itu aman secara inheren. Acara tidak menunjukkan sumber mana yang cocok. Claude Code juga melaporkan `"config"` saat permintaan prompt izin itu sendiri gagal, misalnya saat callback [`canUseTool`](/docs/id/agent-sdk/typescript#canusetool) Agent SDK atau alat [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) mengembalikan hasil yang tidak valid, atau saat aliran input ditutup saat permintaan tertunda. Sebelum v2.1.216, Claude Code melaporkan kegagalan ini sebagai `"user_reject"`.1007 * `"config"`: Diputuskan secara otomatis tanpa diminta, berdasarkan pengaturan proyek, aturan izin atau tolak dalam pengaturan pribadi pengguna, kebijakan yang dikelola perusahaan, flag `--allowedTools` atau `--disallowedTools`, mode izin aktif, hibah cakupan sesi dari prompt sebelumnya dalam sesi CLI interaktif yang sama, atau karena alat itu aman secara inheren. Peristiwa tidak menunjukkan sumber mana dari ini yang cocok. Claude Code juga melaporkan `"config"` ketika permintaan prompt izin itu sendiri gagal, misalnya ketika callback [`canUseTool`](/docs/id/agent-sdk/typescript#canusetool) SDK Agent atau alat [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) mengembalikan hasil yang tidak valid, atau ketika aliran input ditutup saat permintaan tertunda. Sebelum v2.1.216, Claude Code melaporkan kegagalan ini sebagai `"user_reject"`.

965 * `"hook"`: Hook `PreToolUse` atau `PermissionRequest` mengembalikan keputusan.1008 * `"hook"`: Hook `PreToolUse` atau `PermissionRequest` mengembalikan keputusan.

966 * `"user_permanent"`: Dipancarkan saat pengguna memilih "Ya, dan jangan tanya lagi untuk ..." saat diminta, yang menyimpan aturan izin ke pengaturan pribadi mereka. Dalam CLI interaktif ini dipancarkan hanya untuk pilihan itu sendiri; panggilan nanti yang cocok dengan aturan tersimpan memancarkan `"config"` sebagai gantinya. Dalam sesi Agent SDK atau non-interaktif `-p`, baik pilihan awal maupun kecocokan aturan nanti memancarkan `"user_permanent"`. Diperlakukan sebagai penerimaan.1009 * `"user_permanent"`: Dipancarkan ketika pengguna memilih "Ya, dan jangan tanya lagi untuk ..." di prompt izin, yang menyimpan aturan izin ke pengaturan pribadi mereka. Dalam CLI interaktif ini hanya dipancarkan untuk pilihan itu sendiri; panggilan kemudian yang cocok dengan aturan yang disimpan memancarkan `"config"` sebagai gantinya. Dalam sesi SDK Agent atau non-interaktif `-p`, baik pilihan awal maupun kecocokan aturan kemudian memancarkan `"user_permanent"`. Diperlakukan sebagai penerimaan.

967 * `"user_temporary"`: Dipancarkan saat pengguna memilih "Ya" saat diminta untuk persetujuan satu kali, atau memilih opsi yang memberikan akses untuk sisa sesi pada prompt pengeditan atau pembacaan file. Dalam CLI interaktif ini dipancarkan hanya untuk pilihan itu sendiri; panggilan nanti yang diizinkan oleh hibah berskop sesi itu memancarkan `"config"` sebagai gantinya. Dalam sesi Agent SDK atau non-interaktif `-p`, baik pilihan maupun kecocokan nanti memancarkan `"user_temporary"`. Diperlakukan sebagai penerimaan.1010 * `"user_temporary"`: Dipancarkan ketika pengguna memilih "Ya" di prompt izin untuk persetujuan satu kali, atau memilih opsi yang memberikan akses untuk sisa sesi pada prompt edit atau baca file. Dalam CLI interaktif ini hanya dipancarkan untuk pilihan itu sendiri; panggilan kemudian yang diizinkan oleh hibah cakupan sesi itu memancarkan `"config"` sebagai gantinya. Dalam sesi SDK Agent atau non-interaktif `-p`, baik pilihan maupun kecocokan kemudian memancarkan `"user_temporary"`. Diperlakukan sebagai penerimaan.

968 * `"user_abort"`: Dipancarkan saat pengguna menutup prompt izin tanpa menjawab. Dalam sesi Agent SDK dan non-interaktif `-p`, ini termasuk mengganggu giliran saat permintaan izin `canUseTool` atau `--permission-prompt-tool` tertunda; sebelum v2.1.216, Claude Code melaporkan gangguan itu sebagai `"user_reject"`. Diperlakukan sebagai penolakan.1011 * `"user_abort"`: Dipancarkan ketika pengguna menutup prompt izin tanpa menjawab. Dalam sesi SDK Agent dan non-interaktif `-p`, ini termasuk mengganggu giliran saat permintaan izin `canUseTool` atau `--permission-prompt-tool` tertunda; sebelum v2.1.216, Claude Code melaporkan gangguan itu sebagai `"user_reject"`. Diperlakukan sebagai penolakan.

969 * `"user_reject"`: Dipancarkan saat pengguna memilih "Tidak" saat diminta. Dalam CLI interaktif ini dipancarkan hanya untuk pilihan itu sendiri; panggilan yang cocok dengan aturan penolakan dalam pengaturan pribadi mereka memancarkan `"config"` sebagai gantinya. Dalam sesi Agent SDK atau non-interaktif `-p`, panggilan yang cocok dengan aturan penolakan dalam pengaturan pribadi memancarkan `"user_reject"`. Diperlakukan sebagai penolakan.1012 * `"user_reject"`: Dipancarkan ketika pengguna memilih "Tidak" saat diminta. Dalam CLI interaktif ini hanya dipancarkan untuk pilihan itu sendiri; panggilan yang cocok dengan aturan tolak dalam pengaturan pribadi pengguna memancarkan `"config"` sebagai gantinya. Dalam sesi SDK Agent atau non-interaktif `-p`, panggilan yang cocok dengan aturan tolak dalam pengaturan pribadi memancarkan `"user_reject"`. Diperlakukan sebagai penolakan.

970* `tool_parameters` (saat `OTEL_LOG_TOOL_DETAILS=1`): String JSON yang berisi parameter khusus alat. Bentuk yang sama dengan [Acara hasil alat](#tool-result-event), minus bidang pasca-eksekusi seperti `git_commit_id`. Nilai mungkin berbeda dari `tool_result` untuk panggilan yang diterima jika keputusan izin menulis ulang input alat melalui `updatedInput`. Gunakan atribut ini untuk melihat perintah mana yang ditolak saat `decision` adalah `"reject"`.1013* `tool_parameters` (ketika `OTEL_LOG_TOOL_DETAILS=1`): String JSON yang berisi parameter khusus alat. Bentuk yang sama dengan [Peristiwa hasil alat](#tool-result-event), minus bidang pasca-eksekusi seperti `git_commit_id`. Nilai dapat berbeda dari `tool_result` untuk panggilan yang diterima jika keputusan izin menulis ulang input alat melalui `updatedInput`. Gunakan atribut ini untuk melihat perintah mana yang ditolak ketika `decision` adalah `"reject"`.

971 * Untuk alat `"sdk_host_builtin_mcp"`: `mcp_server_name` dan `mcp_tool_name` disertakan bahkan saat `OTEL_LOG_TOOL_DETAILS` off, karena aplikasi host mendefinisikan nama ini; tanpanya, panggilan yang ditolak ke salah satu server built-in ini tidak dapat dikaitkan pada aliran default. Untuk server MCP yang dikonfigurasi pengguna, `tool_name` acara selalu literal `"mcp_tool"`, dan nama server dan alat muncul hanya dalam `tool_parameters` dengan flag on; konten argumen memerlukan flag di mana-mana. Memerlukan Claude Code v2.1.214 atau lebih baru1014 * Untuk alat `"sdk_host_builtin_mcp"`: `mcp_server_name` dan `mcp_tool_name` disertakan bahkan ketika `OTEL_LOG_TOOL_DETAILS` off, karena aplikasi host mendefinisikan nama ini; tanpanya, panggilan yang ditolak ke salah satu server bawaan ini tidak dapat dikaitkan pada aliran default. Untuk server MCP yang dikonfigurasi pengguna, `tool_name` peristiwa selalu literal `"mcp_tool"`, dan nama server dan alat muncul hanya dalam `tool_parameters` dengan flag on; konten argumen memerlukan flag di mana-mana. Memerlukan Claude Code v2.1.214 atau lebih baru

972 * Untuk alat Bash: mencakup `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. Alat bash ruang kerja aplikasi desktop juga melaporkan `tool_name` sebagai `Bash`, tetapi hanya mencakup `bash_command`, `full_command`, dan `timeout`1015 * Untuk alat Bash: menyertakan `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`. Alat bash workspace aplikasi desktop juga melaporkan `tool_name` sebagai `Bash`, tetapi hanya menyertakan `bash_command`, `full_command`, dan `timeout`

973 * Untuk alat MCP: mencakup `mcp_server_name`, `mcp_tool_name`1016 * Untuk alat MCP: menyertakan `mcp_server_name`, `mcp_tool_name`

974 * Untuk alat Skill: mencakup `skill_name`1017 * Untuk alat Skill: menyertakan `skill_name`

975 * Untuk alat Agent atau alat Task legacy: mencakup `subagent_type`1018 * Untuk alat Agent atau alat Task warisan: menyertakan `subagent_type`

976 1019 

977<h4 id="permission-mode-changed-event">1020<h4 id="permission-mode-changed-event">

978 Acara mode izin berubah1021 Peristiwa mode izin berubah

979</h4>1022</h4>

980 1023 

981Dicatat saat mode izin berubah, misalnya dari siklus Shift+Tab, keluar dari plan mode, atau pemeriksaan gate mode otomatis.1024Dicatat ketika mode izin berubah, misalnya dari siklus Shift+Tab, keluar dari mode rencana, atau pemeriksaan gerbang mode otomatis.

982 1025 

983**Nama Acara**: `claude_code.permission_mode_changed`1026**Nama Peristiwa**: `claude_code.permission_mode_changed`

984 1027 

985**Atribut**:1028**Atribut**:

986 1029 

987* Semua [atribut standar](#standard-attributes)1030* Semua [atribut standar](#standard-attributes)

988* `event.name`: `"permission_mode_changed"`1031* `event.name`: `"permission_mode_changed"`

989* `event.timestamp`: Stempel waktu ISO 86011032* `event.timestamp`: Timestamp ISO 8601

990* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1033* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

991* `from_mode`: Mode izin sebelumnya, misalnya `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, atau `"bypassPermissions"`1034* `from_mode`: Mode izin sebelumnya, misalnya `"default"`, `"plan"`, `"acceptEdits"`, `"auto"`, atau `"bypassPermissions"`

992* `to_mode`: Mode izin baru1035* `to_mode`: Mode izin baru

993* `trigger`: Apa yang menyebabkan perubahan. Salah satu dari `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"`, atau `"auto_opt_in"`. Tidak ada saat transisi berasal dari SDK atau bridge1036* `trigger`: Apa yang menyebabkan perubahan. Salah satu dari `"shift_tab"`, `"exit_plan_mode"`, `"auto_gate_denied"`, atau `"auto_opt_in"`. Tidak ada ketika transisi berasal dari SDK atau bridge

994 1037 

995<h4 id="auth-event">1038<h4 id="auth-event">

996 Acara auth1039 Peristiwa auth

997</h4>1040</h4>

998 1041 

999Dicatat saat `/login` atau `/logout` selesai.1042Dicatat ketika `/login` atau `/logout` selesai.

1000 1043 

1001**Nama Acara**: `claude_code.auth`1044**Nama Peristiwa**: `claude_code.auth`

1002 1045 

1003**Atribut**:1046**Atribut**:

1004 1047 

1005* Semua [atribut standar](#standard-attributes)1048* Semua [atribut standar](#standard-attributes)

1006* `event.name`: `"auth"`1049* `event.name`: `"auth"`

1007* `event.timestamp`: Stempel waktu ISO 86011050* `event.timestamp`: Timestamp ISO 8601

1008* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1051* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1009* `action`: `"login"` atau `"logout"`1052* `action`: `"login"` atau `"logout"`

1010* `success`: `"true"` atau `"false"`1053* `success`: `"true"` atau `"false"`

1011* `auth_method`: Metode autentikasi, seperti `"oauth"`1054* `auth_method`: Metode autentikasi, seperti `"oauth"`

1012* `error_category`: Jenis kesalahan kategori saat tindakan gagal. Pesan kesalahan mentah tidak pernah disertakan1055* `error_category`: Jenis kesalahan kategori ketika tindakan gagal. Pesan kesalahan mentah tidak pernah disertakan

1013* `status_code`: Kode status HTTP sebagai string saat tindakan gagal dengan kesalahan HTTP1056* `status_code`: Kode status HTTP sebagai string ketika tindakan gagal dengan kesalahan HTTP

1014 1057 

1015<h4 id="mcp-server-connection-event">1058<h4 id="mcp-server-connection-event">

1016 Acara koneksi server MCP1059 Peristiwa koneksi server MCP

1017</h4>1060</h4>

1018 1061 

1019Dicatat saat server MCP terhubung, terputus, atau gagal terhubung.1062Dicatat ketika server MCP terhubung, terputus, atau gagal terhubung.

1020 1063 

1021**Nama Acara**: `claude_code.mcp_server_connection`1064**Nama Peristiwa**: `claude_code.mcp_server_connection`

1022 1065 

1023**Atribut**:1066**Atribut**:

1024 1067 

1025* Semua [atribut standar](#standard-attributes)1068* Semua [atribut standar](#standard-attributes)

1026* `event.name`: `"mcp_server_connection"`1069* `event.name`: `"mcp_server_connection"`

1027* `event.timestamp`: Stempel waktu ISO 86011070* `event.timestamp`: Timestamp ISO 8601

1028* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1071* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1029* `status`: `"connected"`, `"failed"`, atau `"disconnected"`1072* `status`: `"connected"`, `"failed"`, atau `"disconnected"`

1030* `transport_type`: Transport server, seperti `"stdio"`, `"sse"`, atau `"http"`1073* `transport_type`: Transport server, seperti `"stdio"`, `"sse"`, atau `"http"`

1031* `server_scope`: Cakupan server dikonfigurasi di, seperti `"user"`, `"project"`, atau `"local"`1074* `server_scope`: Cakupan server dikonfigurasi di, seperti `"user"`, `"project"`, atau `"local"`

1032* `duration_ms`: Durasi upaya koneksi dalam milidetik1075* `duration_ms`: Durasi upaya koneksi dalam milidetik

1033* `error_code`: Kode kesalahan saat koneksi gagal1076* `error_code`: Kode kesalahan ketika koneksi gagal

1034* `is_plugin`: `true` saat server disediakan oleh plugin, `false` sebaliknya1077* `is_plugin`: `true` ketika server disediakan oleh plugin, `false` sebaliknya

1035* `plugin_id_hash` (saat `is_plugin` adalah `true`): Hash stabil dari nama plugin dan marketplace, untuk mengelompokkan acara berdasarkan plugin tanpa mengekspos nama. Claude Code menghitungnya seperti yang dijelaskan di bawah [acara plugin dimuat](#plugin-loaded-event)1078* `plugin_id_hash` (ketika `is_plugin` adalah `true`): Hash stabil dari nama plugin dan marketplace, untuk mengelompokkan peristiwa menurut plugin tanpa mengekspos nama. Claude Code menghitungnya seperti dijelaskan di bawah [peristiwa plugin dimuat](#plugin-loaded-event)

1036* `plugin.name` (saat `is_plugin` adalah `true`): Nama plugin yang menyediakan server. Untuk plugin pihak ketiga ini adalah string literal `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1`; ini melindungi nama plugin pihak ketiga dari muncul dalam log secara default. Plugin dari sumber Anthropic resmi selalu diidentifikasi berdasarkan nama. Atribut `plugin_id_hash` dan `plugin.name` mengalir ke backend monitoring Anda sendiri dan tidak dikirim ke Anthropic1079* `plugin.name` (ketika `is_plugin` adalah `true`): Nama plugin yang menyediakan server. Untuk plugin pihak ketiga ini adalah string literal `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1`; ini melindungi nama plugin pihak ketiga dari muncul dalam log secara default. Plugin dari sumber Anthropic resmi selalu diidentifikasi menurut nama. Atribut `plugin_id_hash` dan `plugin.name` mengalir ke backend pemantauan Anda sendiri dan tidak dikirim ke Anthropic

1037* `server_name` (saat `OTEL_LOG_TOOL_DETAILS=1`): Nama server yang dikonfigurasi1080* `server_name` (ketika `OTEL_LOG_TOOL_DETAILS=1`): Nama server yang dikonfigurasi

1038* `error` (saat `OTEL_LOG_TOOL_DETAILS=1`): Pesan kesalahan lengkap saat koneksi gagal1081* `error` (ketika `OTEL_LOG_TOOL_DETAILS=1`): Pesan kesalahan lengkap ketika koneksi gagal

1039 1082 

1040<h4 id="internal-error-event">1083<h4 id="internal-error-event">

1041 Acara kesalahan internal1084 Peristiwa kesalahan internal

1042</h4>1085</h4>

1043 1086 

1044Dicatat saat Claude Code menangkap kesalahan internal yang tidak terduga. Hanya nama kelas kesalahan dan kode gaya errno yang dicatat. Pesan kesalahan dan stack trace tidak pernah disertakan. Acara ini tidak dipancarkan saat berjalan terhadap Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry, atau saat `DISABLE_ERROR_REPORTING` diatur.1087Dicatat ketika Claude Code menangkap kesalahan internal yang tidak terduga. Hanya nama kelas kesalahan dan kode gaya errno yang dicatat. Pesan kesalahan dan stack trace tidak pernah disertakan. Peristiwa ini tidak dipancarkan saat berjalan terhadap Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry, atau ketika `DISABLE_ERROR_REPORTING` diatur.

1045 1088 

1046**Nama Acara**: `claude_code.internal_error`1089**Nama Peristiwa**: `claude_code.internal_error`

1047 1090 

1048**Atribut**:1091**Atribut**:

1049 1092 

1050* Semua [atribut standar](#standard-attributes)1093* Semua [atribut standar](#standard-attributes)

1051* `event.name`: `"internal_error"`1094* `event.name`: `"internal_error"`

1052* `event.timestamp`: Stempel waktu ISO 86011095* `event.timestamp`: Timestamp ISO 8601

1053* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1096* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1054* `error_name`: Nama kelas kesalahan, seperti `"TypeError"` atau `"SyntaxError"`1097* `error_name`: Nama kelas kesalahan, seperti `"TypeError"` atau `"SyntaxError"`

1055* `error_code`: Kode errno Node.js seperti `"ENOENT"` saat ada pada kesalahan1098* `error_code`: Kode errno Node.js seperti `"ENOENT"` saat ada pada kesalahan

1056 1099 

1057<h4 id="plugin-installed-event">1100<h4 id="plugin-installed-event">

1058 Acara plugin terinstal1101 Peristiwa plugin diinstal

1059</h4>1102</h4>

1060 1103 

1061Dicatat saat plugin selesai menginstal, dari perintah CLI `claude plugin install` dan UI interaktif `/plugin`.1104Dicatat ketika plugin selesai diinstal, dari perintah CLI `claude plugin install` dan UI `/plugin` interaktif.

1062 1105 

1063**Nama Acara**: `claude_code.plugin_installed`1106**Nama Peristiwa**: `claude_code.plugin_installed`

1064 1107 

1065**Atribut**:1108**Atribut**:

1066 1109 

1067* Semua [atribut standar](#standard-attributes)1110* Semua [atribut standar](#standard-attributes)

1068* `event.name`: `"plugin_installed"`1111* `event.name`: `"plugin_installed"`

1069* `event.timestamp`: Stempel waktu ISO 86011112* `event.timestamp`: Timestamp ISO 8601

1070* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1113* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1071* `marketplace.is_official`: `"true"` jika marketplace adalah marketplace Anthropic resmi, `"false"` sebaliknya1114* `marketplace.is_official`: `"true"` jika marketplace adalah marketplace Anthropic resmi, `"false"` sebaliknya

1072* `install.trigger`: `"cli"` atau `"ui"`1115* `install.trigger`: `"cli"` atau `"ui"`

1073* `plugin.name`: Nama plugin yang diinstal. Untuk marketplace pihak ketiga ini disertakan hanya saat `OTEL_LOG_TOOL_DETAILS=1`1116* `plugin.name`: Nama plugin yang diinstal. Untuk marketplace pihak ketiga ini disertakan hanya ketika `OTEL_LOG_TOOL_DETAILS=1`

1074* `plugin.version`: Versi plugin saat dideklarasikan dalam entri marketplace. Untuk marketplace pihak ketiga ini disertakan hanya saat `OTEL_LOG_TOOL_DETAILS=1`1117* `plugin.version`: Versi plugin saat dideklarasikan dalam entri marketplace. Untuk marketplace pihak ketiga ini disertakan hanya ketika `OTEL_LOG_TOOL_DETAILS=1`

1075* `marketplace.name`: Marketplace plugin diinstal dari. Untuk marketplace pihak ketiga ini disertakan hanya saat `OTEL_LOG_TOOL_DETAILS=1`1118* `marketplace.name`: Marketplace tempat plugin diinstal. Untuk marketplace pihak ketiga ini disertakan hanya ketika `OTEL_LOG_TOOL_DETAILS=1`

1076 1119 

1077<h4 id="plugin-loaded-event">1120<h4 id="plugin-loaded-event">

1078 Acara plugin dimuat1121 Peristiwa plugin dimuat

1079</h4>1122</h4>

1080 1123 

1081Dicatat sekali per plugin yang diaktifkan saat startup sesi. Gunakan acara ini untuk menginventarisasi plugin mana yang aktif di seluruh armada Anda, sebagai pelengkap `plugin_installed` yang mencatat tindakan instalasi itu sendiri.1124Dicatat sekali per plugin yang diaktifkan pada awal sesi. Gunakan peristiwa ini untuk menginventarisasi plugin mana yang aktif di seluruh armada Anda, sebagai pelengkap `plugin_installed` yang mencatat tindakan instalasi itu sendiri.

1082 1125 

1083**Nama Acara**: `claude_code.plugin_loaded`1126**Nama Peristiwa**: `claude_code.plugin_loaded`

1084 1127 

1085**Atribut**:1128**Atribut**:

1086 1129 

1087* Semua [atribut standar](#standard-attributes)1130* Semua [atribut standar](#standard-attributes)

1088* `event.name`: `"plugin_loaded"`1131* `event.name`: `"plugin_loaded"`

1089* `event.timestamp`: Stempel waktu ISO 86011132* `event.timestamp`: Timestamp ISO 8601

1090* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1133* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1091* `plugin.name`: nama plugin. Untuk plugin di luar marketplace resmi dan bundel built-in nilainya adalah `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1`1134* `plugin.name`: nama plugin. Untuk plugin di luar marketplace resmi dan bundel bawaan nilainya adalah `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1`

1092* `marketplace.name`: marketplace tempat plugin diinstal, saat diketahui. Diredaksi menjadi `"third-party"` di bawah kondisi yang sama dengan `plugin.name`1135* `marketplace.name`: marketplace tempat plugin diinstal, saat diketahui. Disunting menjadi `"third-party"` di bawah kondisi yang sama dengan `plugin.name`

1093* `plugin.version`: versi dari manifest plugin. Disertakan hanya saat nama tidak diredaksi dan manifest mendeklarasikan versi1136* `plugin.version`: versi dari manifes plugin. Disertakan hanya ketika nama tidak disunting dan manifes mendeklarasikan versi

1094* `plugin.scope`: kategori provenance untuk plugin: `"official"`, `"community"`, `"org"`, `"user-local"`, atau `"default-bundle"`1137* `plugin.scope`: kategori asal untuk plugin: `"official"`, `"community"`, `"org"`, `"user-local"`, atau `"default-bundle"`

1095* `enabled_via`: bagaimana plugin menjadi diaktifkan: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, atau `"user-install"`. Nilai `"admin-install"` berarti plugin diatur sebagai required atau auto-install untuk organisasi Anda di [**Pengaturan Organisasi > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory). Sebelum v2.1.246, Claude Code melaporkan plugin ini sebagai `"user-install"` atau `"seed-mount"`1138* `enabled_via`: bagaimana plugin menjadi diaktifkan: `"default-enable"`, `"org-policy"`, `"admin-install"`, `"seed-mount"`, atau `"user-install"`. Nilai `"admin-install"` berarti plugin diatur ke wajib atau auto-install untuk organisasi Anda dalam [**Pengaturan Organisasi > Plugin & skill**](https://claude.ai/admin-settings/skills?tab=inventory). Sebelum v2.1.246, Claude Code melaporkan plugin ini sebagai `"user-install"` atau `"seed-mount"`

1096* `plugin_id_hash`: hash deterministik dari nama plugin dan marketplace, dikirim hanya ke pengekspor yang dikonfigurasi. Memungkinkan Anda menghitung berapa banyak plugin pihak ketiga yang berbeda dimuat di seluruh armada Anda tanpa merekam nama mereka. Untuk [plugin yang disinkronkan dari claude.ai](/docs/id/plugins/loading#synced-plugins), Claude Code menghash nama plugin dengan nama marketplace yang dilaporkan claude.ai untuk plugin, atau dengan `synced` sebaliknya. Sebelum v2.1.246, Claude Code tidak menggunakan nama marketplace yang dilaporkan claude.ai dalam hash1139* `plugin_id_hash`: hash deterministik dari nama plugin dan marketplace, dikirim hanya ke eksporter yang dikonfigurasi. Memungkinkan Anda menghitung plugin pihak ketiga yang berbeda dimuat di seluruh armada tanpa merekam nama mereka. Untuk [plugin yang disinkronkan dari claude.ai](/docs/id/plugins/loading#synced-plugins), Claude Code menghash nama plugin dengan nama marketplace yang claude.ai laporkan untuk plugin, atau dengan `synced` sebaliknya. Sebelum v2.1.246, Claude Code tidak menggunakan nama marketplace yang claude.ai laporkan dalam hash

1097* `has_hooks`: apakah plugin berkontribusi hooks1140* `has_hooks`: apakah plugin berkontribusi hooks

1098* `has_mcp`: apakah plugin berkontribusi server MCP1141* `has_mcp`: apakah plugin berkontribusi server MCP

1099* `host_owned_mcp`: `true` saat host SDK mengelola koneksi MCP plugin ini dan Claude Code melewati pembacaan konfigurasi server MCP plugin, `false` sebaliknya. Memerlukan Claude Code v2.1.172 atau lebih baru1142* `host_owned_mcp`: `true` ketika host SDK mengelola koneksi MCP plugin ini dan Claude Code melewati membaca konfigurasi server MCP plugin, `false` sebaliknya. Memerlukan Claude Code v2.1.172 atau lebih baru

1100* `skill_path_count`: jumlah direktori skill yang dideklarasikan plugin1143* `skill_path_count`: jumlah direktori skill yang plugin deklarasikan

1101* `command_path_count`: jumlah direktori perintah yang dideklarasikan plugin1144* `command_path_count`: jumlah direktori perintah yang plugin deklarasikan

1102* `agent_path_count`: jumlah direktori agen yang dideklarasikan plugin1145* `agent_path_count`: jumlah direktori agen yang plugin deklarasikan

1103* `safe_mode`: `"true"` saat sesi dimulai dengan [`--safe-mode`](/docs/id/cli-reference), `"false"` sebaliknya. Dalam mode aman acara ini melaporkan inventaris yang dikonfigurasi saja; perintah, skill, hooks, dan server MCP plugin tidak dimuat. Memerlukan Claude Code v2.1.169 atau lebih baru1146* `safe_mode`: `"true"` ketika sesi dimulai dengan [`--safe-mode`](/docs/id/cli-reference), `"false"` sebaliknya. Dalam mode aman peristiwa ini melaporkan inventaris yang dikonfigurasi hanya; perintah, skill, hooks, dan server MCP plugin tidak dimuat. Memerlukan Claude Code v2.1.169 atau lebih baru

1104 1147 

1105<h4 id="skill-activated-event">1148<h4 id="skill-activated-event">

1106 Acara skill diaktifkan1149 Peristiwa skill diaktifkan

1107</h4>1150</h4>

1108 1151 

1109Dicatat saat skill dipanggil, baik Claude memanggilnya melalui alat Skill atau Anda menjalankannya sebagai perintah `/`.1152Dicatat ketika skill dipanggil, apakah Claude memanggilnya melalui alat Skill atau Anda menjalankannya sebagai perintah `/`.

1110 1153 

1111**Nama Acara**: `claude_code.skill_activated`1154**Nama Peristiwa**: `claude_code.skill_activated`

1112 1155 

1113**Atribut**:1156**Atribut**:

1114 1157 

1115* Semua [atribut standar](#standard-attributes)1158* Semua [atribut standar](#standard-attributes)

1116* `event.name`: `"skill_activated"`1159* `event.name`: `"skill_activated"`

1117* `event.timestamp`: Stempel waktu ISO 86011160* `event.timestamp`: Timestamp ISO 8601

1118* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1161* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1119* `skill.name`: Nama skill. Untuk skill yang ditentukan pengguna dan plugin pihak ketiga nilainya adalah placeholder `"custom_skill"` kecuali `OTEL_LOG_TOOL_DETAILS=1`1162* `skill.name`: Nama skill. Untuk skill yang ditentukan pengguna dan plugin pihak ketiga nilainya adalah placeholder `"custom_skill"` kecuali `OTEL_LOG_TOOL_DETAILS=1`

1120* `invocation_trigger`: Bagaimana skill dipicu (`"user-slash"`, `"claude-proactive"`, atau `"nested-skill"`)1163* `invocation_trigger`: Bagaimana skill dipicu (`"user-slash"`, `"claude-proactive"`, atau `"nested-skill"`)

1121* `skill.source`: Tempat skill dimuat dari (misalnya, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)1164* `skill.source`: Dari mana skill dimuat (misalnya, `"bundled"`, `"userSettings"`, `"projectSettings"`, `"plugin"`)

1122* `skill.kind`: `"workflow"` saat skill adalah skill workflow. Tidak ada sebaliknya1165* `skill.kind`: `"workflow"` ketika skill adalah skill workflow. Tidak ada sebaliknya

1123* `plugin.name` (saat `OTEL_LOG_TOOL_DETAILS=1` atau plugin dari marketplace resmi): Nama plugin pemilik saat skill disediakan oleh plugin1166* `plugin.name` (ketika `OTEL_LOG_TOOL_DETAILS=1` atau plugin dari marketplace resmi): Nama plugin pemilik ketika skill disediakan oleh plugin

1124* `marketplace.name` (saat `OTEL_LOG_TOOL_DETAILS=1` atau plugin dari marketplace resmi): Marketplace plugin pemilik diinstal dari, saat skill disediakan oleh plugin1167* `marketplace.name` (ketika `OTEL_LOG_TOOL_DETAILS=1` atau plugin dari marketplace resmi): Marketplace tempat plugin pemilik diinstal, saat skill disediakan oleh plugin

1125 1168 

1126<h4 id="at-mention-event">1169<h4 id="at-mention-event">

1127 Acara mention @1170 Peristiwa penyebutan @

1128</h4>1171</h4>

1129 1172 

1130Dicatat saat Claude Code menyelesaikan mention `@` dalam prompt. Tidak setiap mention memancarkan acara: jalur early-exit seperti penolakan izin, file berukuran besar, lampiran referensi PDF, dan kegagalan listing direktori kembali tanpa logging.1173Dicatat ketika Claude Code menyelesaikan penyebutan `@` dalam prompt. Tidak setiap penyebutan memancarkan peristiwa: jalur keluar awal seperti penolakan izin, file yang terlalu besar, lampiran referensi PDF, dan kegagalan daftar direktori kembali tanpa pencatatan.

1131 1174 

1132**Nama Acara**: `claude_code.at_mention`1175**Nama Peristiwa**: `claude_code.at_mention`

1133 1176 

1134**Atribut**:1177**Atribut**:

1135 1178 

1136* Semua [atribut standar](#standard-attributes)1179* Semua [atribut standar](#standard-attributes)

1137* `event.name`: `"at_mention"`1180* `event.name`: `"at_mention"`

1138* `event.timestamp`: Stempel waktu ISO 86011181* `event.timestamp`: Timestamp ISO 8601

1139* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1182* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1140* `mention_type`: Jenis mention (`"file"`, `"directory"`, `"agent"`, `"mcp_resource"`, `"peer"`). Nilai `"peer"` berarti Anda menyebutkan [salah satu sesi Claude Code lain Anda](/docs/id/cross-session-messaging). Memerlukan Claude Code v2.1.232 atau lebih baru1183* `mention_type`: Jenis penyebutan (`"file"`, `"directory"`, `"agent"`, `"mcp_resource"`, `"peer"`). Nilai `"peer"` berarti Anda menyebutkan [salah satu sesi Claude Code lain Anda](/docs/id/cross-session-messaging). Memerlukan Claude Code v2.1.232 atau lebih baru

1141* `success`: Apakah mention berhasil diselesaikan (`"true"` atau `"false"`)1184* `success`: Apakah penyebutan diselesaikan dengan berhasil (`"true"` atau `"false"`)

1142 1185 

1143<h4 id="api-retries-exhausted-event">1186<h4 id="api-retries-exhausted-event">

1144 Acara retry API habis1187 Peristiwa pengulangan API habis

1145</h4>1188</h4>

1146 1189 

1147Dicatat sekali saat permintaan API gagal setelah lebih dari satu upaya. Dipancarkan bersama acara `api_error` terakhir.1190Dicatat sekali ketika permintaan API gagal setelah lebih dari satu upaya. Dipancarkan bersama peristiwa `api_error` akhir.

1148 1191 

1149**Nama Acara**: `claude_code.api_retries_exhausted`1192**Nama Peristiwa**: `claude_code.api_retries_exhausted`

1150 1193 

1151**Atribut**:1194**Atribut**:

1152 1195 

1153* Semua [atribut standar](#standard-attributes)1196* Semua [atribut standar](#standard-attributes)

1154* `event.name`: `"api_retries_exhausted"`1197* `event.name`: `"api_retries_exhausted"`

1155* `event.timestamp`: Stempel waktu ISO 86011198* `event.timestamp`: Timestamp ISO 8601

1156* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1199* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1157* `model`: Model yang digunakan1200* `model`: Model yang digunakan

1158* `error`: Pesan kesalahan terakhir1201* `error`: Pesan kesalahan akhir

1159* `status_code`: Kode status HTTP sebagai angka. Tidak ada untuk kesalahan non-HTTP.1202* `status_code`: Kode status HTTP sebagai angka. Tidak ada untuk kesalahan non-HTTP.

1160* `total_attempts`: Jumlah total upaya yang dilakukan1203* `total_attempts`: Jumlah total upaya yang dilakukan

1161* `total_retry_duration_ms`: Total waktu wall-clock di semua upaya1204* `total_retry_duration_ms`: Total waktu dinding di seluruh upaya

1162* `speed`: `"fast"` atau `"normal"`1205* `speed`: `"fast"` atau `"normal"`

1163 1206 

1164<h4 id="hook-registered-event">1207<h4 id="hook-registered-event">

1165 Acara hook terdaftar1208 Peristiwa hook terdaftar

1166</h4>1209</h4>

1167 1210 

1168Dicatat sekali per hook yang dikonfigurasi saat startup sesi. Gunakan acara ini untuk menginventarisasi hook mana yang aktif di seluruh armada Anda, sebagai pelengkap acara `hook_execution_start` dan `hook_execution_complete` per eksekusi.1211Dicatat sekali per hook yang dikonfigurasi pada awal sesi. Gunakan peristiwa ini untuk menginventarisasi hook mana yang aktif di seluruh armada Anda, sebagai pelengkap peristiwa `hook_execution_start` dan `hook_execution_complete` per-eksekusi.

1169 1212 

1170**Nama Acara**: `claude_code.hook_registered`1213**Nama Peristiwa**: `claude_code.hook_registered`

1171 1214 

1172**Atribut**:1215**Atribut**:

1173 1216 

1174* Semua [atribut standar](#standard-attributes)1217* Semua [atribut standar](#standard-attributes)

1175* `event.name`: `"hook_registered"`1218* `event.name`: `"hook_registered"`

1176* `event.timestamp`: Stempel waktu ISO 86011219* `event.timestamp`: Timestamp ISO 8601

1177* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1220* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1178* `hook_event`: jenis acara hook, seperti `"PreToolUse"` atau `"PostToolUse"`1221* `hook_event`: jenis peristiwa hook, seperti `"PreToolUse"` atau `"PostToolUse"`

1179* `hook_type`: jenis implementasi hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, atau `"agent"`1222* `hook_type`: jenis implementasi hook: `"command"`, `"prompt"`, `"mcp_tool"`, `"http"`, atau `"agent"`

1180* `hook_source`: tempat hook didefinisikan: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, atau `"pluginHook"`1223* `hook_source`: di mana hook didefinisikan: `"userSettings"`, `"projectSettings"`, `"localSettings"`, `"flagSettings"`, `"policySettings"`, atau `"pluginHook"`

1181* `safe_mode`: `"true"` saat sesi dimulai dengan [`--safe-mode`](/docs/id/cli-reference), `"false"` sebaliknya. Memerlukan Claude Code v2.1.169 atau lebih baru1224* `safe_mode`: `"true"` ketika sesi dimulai dengan [`--safe-mode`](/docs/id/cli-reference), `"false"` sebaliknya. Memerlukan Claude Code v2.1.169 atau lebih baru

1182* `hook_matcher` (saat `OTEL_LOG_TOOL_DETAILS=1`): string matcher dari konfigurasi hook, saat satu diatur1225* `hook_matcher` (ketika `OTEL_LOG_TOOL_DETAILS=1`): string matcher dari konfigurasi hook, saat satu diatur

1183* `plugin.name` (saat `hook_source` adalah `"pluginHook"`): nama plugin yang berkontribusi. Untuk plugin di luar marketplace resmi dan bundel built-in nilainya adalah `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1`1226* `plugin.name` (ketika `hook_source` adalah `"pluginHook"`): nama plugin yang berkontribusi. Untuk plugin di luar marketplace resmi dan bundel bawaan nilainya adalah `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1`

1184* `plugin_id_hash` (saat `hook_source` adalah `"pluginHook"`): hash deterministik dari nama plugin dan marketplace, dikirim hanya ke pengekspor yang dikonfigurasi. Memungkinkan Anda menghitung plugin yang berkontribusi berbeda tanpa merekam nama mereka. Claude Code menghitungnya seperti yang dijelaskan di bawah [acara plugin dimuat](#plugin-loaded-event)1227* `plugin_id_hash` (ketika `hook_source` adalah `"pluginHook"`): hash deterministik dari nama plugin dan marketplace, dikirim hanya ke eksporter yang dikonfigurasi. Memungkinkan Anda menghitung plugin yang berkontribusi berbeda tanpa merekam nama mereka. Claude Code menghitungnya seperti dijelaskan di bawah [peristiwa plugin dimuat](#plugin-loaded-event)

1185 1228 

1186<h4 id="hook-execution-start-event">1229<h4 id="hook-execution-start-event">

1187 Acara mulai eksekusi hook1230 Peristiwa awal eksekusi hook

1188</h4>1231</h4>

1189 1232 

1190Dicatat saat satu atau lebih hooks mulai dieksekusi untuk acara hook.1233Dicatat ketika satu atau lebih hook mulai mengeksekusi untuk peristiwa hook.

1191 1234 

1192**Nama Acara**: `claude_code.hook_execution_start`1235**Nama Peristiwa**: `claude_code.hook_execution_start`

1193 1236 

1194**Atribut**:1237**Atribut**:

1195 1238 

1196* Semua [atribut standar](#standard-attributes)1239* Semua [atribut standar](#standard-attributes)

1197* `event.name`: `"hook_execution_start"`1240* `event.name`: `"hook_execution_start"`

1198* `event.timestamp`: Stempel waktu ISO 86011241* `event.timestamp`: Timestamp ISO 8601

1199* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1242* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1200* `hook_event`: Jenis acara hook, seperti `"PreToolUse"` atau `"PostToolUse"`1243* `hook_event`: Jenis peristiwa hook, seperti `"PreToolUse"` atau `"PostToolUse"`

1201* `hook_name`: Nama hook lengkap termasuk matcher, seperti `"PreToolUse:Write"`1244* `hook_name`: Nama hook lengkap termasuk matcher, seperti `"PreToolUse:Write"`

1202* `num_hooks`: Jumlah perintah hook yang cocok1245* `num_hooks`: Jumlah perintah hook yang cocok

1203* `managed_only`: `"true"` saat hanya hooks kebijakan terkelola yang diizinkan1246* `managed_only`: `"true"` ketika hanya hook kebijakan yang dikelola yang diizinkan

1204* `hook_source`: `"policySettings"` atau `"merged"`1247* `hook_source`: `"policySettings"` atau `"merged"`

1205* `safe_mode`: `"true"` saat sesi dimulai dengan [`--safe-mode`](/docs/id/cli-reference), `"false"` sebaliknya. Memerlukan Claude Code v2.1.169 atau lebih baru1248* `safe_mode`: `"true"` ketika sesi dimulai dengan [`--safe-mode`](/docs/id/cli-reference), `"false"` sebaliknya. Memerlukan Claude Code v2.1.169 atau lebih baru

1206* `hook_definitions`: Konfigurasi hook yang diserialisasi JSON. Disertakan hanya saat detailed beta tracing dan `OTEL_LOG_TOOL_DETAILS=1` keduanya diaktifkan1249* `hook_definitions`: Konfigurasi hook yang diserialisasi JSON. Disertakan hanya ketika pelacakan beta terperinci dan `OTEL_LOG_TOOL_DETAILS=1` keduanya diaktifkan

1207 1250 

1208<h4 id="hook-execution-complete-event">1251<h4 id="hook-execution-complete-event">

1209 Acara eksekusi hook selesai1252 Peristiwa lengkap eksekusi hook

1210</h4>1253</h4>

1211 1254 

1212Dicatat saat semua hooks untuk acara hook selesai.1255Dicatat ketika semua hook untuk peristiwa hook telah selesai.

1213 1256 

1214**Nama Acara**: `claude_code.hook_execution_complete`1257**Nama Peristiwa**: `claude_code.hook_execution_complete`

1215 1258 

1216**Atribut**:1259**Atribut**:

1217 1260 

1218* Semua [atribut standar](#standard-attributes)1261* Semua [atribut standar](#standard-attributes)

1219* `event.name`: `"hook_execution_complete"`1262* `event.name`: `"hook_execution_complete"`

1220* `event.timestamp`: Stempel waktu ISO 86011263* `event.timestamp`: Timestamp ISO 8601

1221* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1264* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1222* `hook_event`: Jenis acara hook1265* `hook_event`: Jenis peristiwa hook

1223* `hook_name`: Nama hook lengkap termasuk matcher1266* `hook_name`: Nama hook lengkap termasuk matcher

1224* `num_hooks`: Jumlah perintah hook yang cocok1267* `num_hooks`: Jumlah perintah hook yang cocok

1225* `num_success`: Jumlah yang selesai dengan sukses1268* `num_success`: Jumlah yang selesai dengan berhasil

1226* `num_blocking`: Jumlah yang mengembalikan keputusan blocking1269* `num_blocking`: Jumlah yang mengembalikan keputusan pemblokiran

1227* `num_non_blocking_error`: Jumlah yang gagal tanpa blocking1270* `num_non_blocking_error`: Jumlah yang gagal tanpa memblokir

1228* `num_cancelled`: Jumlah dibatalkan sebelum selesai1271* `num_cancelled`: Jumlah dibatalkan sebelum penyelesaian

1229* `total_duration_ms`: Durasi wall-clock dari semua hooks yang cocok1272* `total_duration_ms`: Durasi dinding semua hook yang cocok

1230* `stdout_chars`: Total karakter stdout di seluruh hooks yang cocok yang berhasil. Memerlukan Claude Code v2.1.280 atau lebih baru1273* `stdout_chars`: Total karakter stdout di seluruh hook yang cocok yang berhasil. Memerlukan Claude Code v2.1.280 atau lebih baru

1231* `additional_context_chars`: Total karakter `additionalContext` yang dikembalikan oleh hooks yang cocok. Memerlukan Claude Code v2.1.280 atau lebih baru1274* `additional_context_chars`: Total karakter `additionalContext` yang dikembalikan oleh hook yang cocok. Memerlukan Claude Code v2.1.280 atau lebih baru

1232* `system_message_chars`: Total karakter `systemMessage` yang dikembalikan oleh hooks yang cocok. Memerlukan Claude Code v2.1.280 atau lebih baru1275* `system_message_chars`: Total karakter `systemMessage` yang dikembalikan oleh hook yang cocok. Memerlukan Claude Code v2.1.280 atau lebih baru

1233* `initial_user_message_chars`: Total karakter `initialUserMessage` yang dikembalikan oleh hooks yang cocok. Memerlukan Claude Code v2.1.280 atau lebih baru1276* `initial_user_message_chars`: Total karakter `initialUserMessage` yang dikembalikan oleh hook yang cocok. Memerlukan Claude Code v2.1.280 atau lebih baru

1234* `num_outputs_persisted`: Jumlah output hook di atas [batas 10.000 karakter](/docs/id/hooks#json-output) yang disimpan Claude Code ke file. Memerlukan Claude Code v2.1.280 atau lebih baru1277* `num_outputs_persisted`: Jumlah output hook di atas [batas 10.000 karakter](/docs/id/hooks#json-output) yang Claude Code simpan ke file. Memerlukan Claude Code v2.1.280 atau lebih baru

1235* `managed_only`: `"true"` saat hanya hooks kebijakan terkelola yang diizinkan1278* `managed_only`: `"true"` ketika hanya hook kebijakan yang dikelola yang diizinkan

1236* `hook_source`: `"policySettings"` atau `"merged"`1279* `hook_source`: `"policySettings"` atau `"merged"`

1237* `safe_mode`: `"true"` saat sesi dimulai dengan [`--safe-mode`](/docs/id/cli-reference), `"false"` sebaliknya. Memerlukan Claude Code v2.1.169 atau lebih baru1280* `safe_mode`: `"true"` ketika sesi dimulai dengan [`--safe-mode`](/docs/id/cli-reference), `"false"` sebaliknya. Memerlukan Claude Code v2.1.169 atau lebih baru

1238* `hook_definitions`: Konfigurasi hook yang diserialisasi JSON. Disertakan hanya saat detailed beta tracing dan `OTEL_LOG_TOOL_DETAILS=1` keduanya diaktifkan1281* `hook_definitions`: Konfigurasi hook yang diserialisasi JSON. Disertakan hanya ketika pelacakan beta terperinci dan `OTEL_LOG_TOOL_DETAILS=1` keduanya diaktifkan

1239 1282 

1240<h4 id="hook-plugin-metrics-event">1283<h4 id="hook-plugin-metrics-event">

1241 Acara metrik plugin hook1284 Peristiwa metrik plugin hook

1242</h4>1285</h4>

1243 1286 

1244Dicatat saat hook plugin marketplace resmi memancarkan metrik per-invokasi. Hanya plugin yang diinstal dari marketplace Anthropic resmi yang dapat memancarkan ini. Plugin marketplace pihak ketiga dan hook yang dikonfigurasi pengguna tidak memancarkan ke acara ini. Gunakan acara ini untuk memantau perilaku plugin seperti tingkat penemuan, biaya, dan durasi dari stack observabilitas Anda sendiri.1287Dicatat ketika hook plugin marketplace resmi memancarkan metrik per-invokasi. Hanya plugin yang diinstal dari marketplace Anthropic resmi yang dapat memancarkan ini. Plugin marketplace pihak ketiga dan hook yang dikonfigurasi pengguna tidak memancarkan ke peristiwa ini. Gunakan peristiwa ini untuk memantau perilaku plugin seperti tingkat penemuan, biaya, dan durasi dari stack observabilitas Anda sendiri.

1245 1288 

1246**Nama Acara**: `claude_code.hook_plugin_metrics`1289**Nama Peristiwa**: `claude_code.hook_plugin_metrics`

1247 1290 

1248**Atribut**:1291**Atribut**:

1249 1292 

1250* Semua [atribut standar](#standard-attributes)1293* Semua [atribut standar](#standard-attributes)

1251* `event.name`: `"hook_plugin_metrics"`1294* `event.name`: `"hook_plugin_metrics"`

1252* `event.timestamp`: Stempel waktu ISO 86011295* `event.timestamp`: Timestamp ISO 8601

1253* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1296* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1254* `plugin_id`: pengidentifikasi plugin dalam bentuk `<name>@<marketplace>`1297* `plugin_id`: pengenal plugin dalam bentuk `<name>@<marketplace>`

1255* `hook_event`: jenis acara hook yang memancarkan metrik1298* `hook_event`: jenis peristiwa hook yang memancarkan metrik

1256* Hingga 20 kunci metrik yang dipancarkan plugin. Nama cocok dengan `^[a-z][a-z0-9_]{0,39}$`. Nilai adalah boolean atau angka.1299* Hingga 20 kunci metrik yang dipancarkan plugin. Nama cocok dengan `^[a-z][a-z0-9_]{0,39}$`. Nilai adalah boolean atau angka.

1257 1300 

1258<h4 id="compaction-event">1301<h4 id="compaction-event">

1259 Acara pemadatan1302 Peristiwa pemadatan

1260</h4>1303</h4>

1261 1304 

1262Dicatat saat pemadatan percakapan selesai.1305Dicatat ketika pemadatan percakapan selesai.

1263 1306 

1264**Nama Acara**: `claude_code.compaction`1307**Nama Peristiwa**: `claude_code.compaction`

1265 1308 

1266**Atribut**:1309**Atribut**:

1267 1310 

1268* Semua [atribut standar](#standard-attributes)1311* Semua [atribut standar](#standard-attributes)

1269* `event.name`: `"compaction"`1312* `event.name`: `"compaction"`

1270* `event.timestamp`: Stempel waktu ISO 86011313* `event.timestamp`: Timestamp ISO 8601

1271* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1314* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1272* `trigger`: `"auto"` atau `"manual"`1315* `trigger`: `"auto"` atau `"manual"`

1273* `success`: `"true"` atau `"false"`1316* `success`: `"true"` atau `"false"`

1274* `duration_ms`: Durasi pemadatan1317* `duration_ms`: Durasi pemadatan

1275* `pre_tokens`: Jumlah token perkiraan sebelum pemadatan1318* `pre_tokens`: Jumlah token perkiraan sebelum pemadatan

1276* `post_tokens`: Jumlah token perkiraan setelah pemadatan1319* `post_tokens`: Jumlah token perkiraan setelah pemadatan

1277* `error`: Pesan kesalahan saat pemadatan gagal1320* `error`: Pesan kesalahan ketika pemadatan gagal

1278* `precompute_reuse`: Hanya diatur saat `trigger` adalah `"manual"`. Auto-compaction dapat menyiapkan ringkasan di latar belakang sebelum jendela konteks penuh, dan atribut ini mencatat apakah `/compact` menggunakan kembali ringkasan yang disiapkan itu. `"hit"` berarti itu digunakan kembali; `"miss_custom_instructions"`, `"miss_hook"`, dan `"miss_not_ready"` memberikan alasan ringkasan segar dihitung sebagai gantinya. Memerlukan Claude Code v2.1.153 atau lebih baru1321* `precompute_reuse`: Hanya diatur ketika `trigger` adalah `"manual"`. Pemadatan otomatis dapat menyiapkan ringkasan di latar belakang sebelum jendela konteks penuh, dan atribut ini mencatat apakah `/compact` menggunakan kembali ringkasan yang disiapkan itu. `"hit"` berarti itu digunakan kembali; `"miss_custom_instructions"`, `"miss_hook"`, dan `"miss_not_ready"` memberikan alasan ringkasan segar dihitung sebagai gantinya. Memerlukan Claude Code v2.1.153 atau lebih baru

1279 1322 

1280<h4 id="subagent-completed-event">1323<h4 id="subagent-completed-event">

1281 Acara subagent selesai1324 Peristiwa subagen selesai

1282</h4>1325</h4>

1283 1326 

1284Dicatat saat [subagent](/docs/id/sub-agents) selesai dan mengembalikan hasilnya ke percakapan yang memulainya. Gunakan untuk menggabungkan penggunaan alat dan waktu run berdasarkan jenis subagent; untuk rollup token atau biaya, gunakan [penghitung token](#token-counter) dan [penghitung biaya](#cost-counter) yang disaring ke `query_source` `"subagent"`, karena `total_tokens` acara ini hanya mencakup permintaan akhir. Kategori `"subagent"` juga menghitung permintaan dari hooks berbasis agen, yang tidak memancarkan acara subagent.1327Dicatat ketika [subagen](/docs/id/sub-agents) selesai dan mengembalikan hasilnya ke percakapan yang memulainya. Gunakan untuk menggabungkan penggunaan alat dan waktu run menurut jenis subagen; untuk penggabungan token atau biaya, gunakan [penghitung token](#token-counter) dan [penghitung biaya](#cost-counter) yang disaring ke `query_source` `"subagent"`, karena `total_tokens` peristiwa ini mencakup hanya permintaan akhir. Kategori `"subagent"` juga menghitung permintaan dari hook berbasis agen, yang tidak memancarkan peristiwa subagen.

1285 1328 

1286**Nama Acara**: `claude_code.subagent_completed`1329**Nama Peristiwa**: `claude_code.subagent_completed`

1287 1330 

1288**Atribut**:1331**Atribut**:

1289 1332 

1290* Semua [atribut standar](#standard-attributes)1333* Semua [atribut standar](#standard-attributes)

1291* `event.name`: `"subagent_completed"`1334* `event.name`: `"subagent_completed"`

1292* `event.timestamp`: Stempel waktu ISO 86011335* `event.timestamp`: Timestamp ISO 8601

1293* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1336* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1294* `agent_type`: Jenis subagent. Nama agen built-in dan agen dari plugin marketplace resmi muncul verbatim; nama agen lainnya diganti dengan `"custom"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur1337* `agent_type`: Jenis subagen. Nama agen bawaan dan agen dari plugin marketplace resmi muncul verbatim; nama agen lainnya diganti dengan `"custom"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur

1295* `agent.source`: Tempat definisi agen berasal: `built-in`, `plugin`, atau sumber pengaturan yang mendefinisikan agen khusus, seperti `userSettings` atau `projectSettings`1338* `agent.source`: Dari mana definisi agen berasal: `built-in`, `plugin`, atau sumber pengaturan yang mendefinisikan agen kustom, seperti `userSettings` atau `projectSettings`

1296* `is_built_in`: Apakah subagent adalah jenis agen built-in1339* `is_built_in`: Apakah subagen adalah jenis agen bawaan

1297* `is_async`: Apakah subagent berjalan di [latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background)1340* `is_async`: Apakah subagen berjalan di [latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background)

1298* `total_tokens`: Jejak token permintaan API akhir subagent: token input, pembuatan cache, pembacaan cache, dan output permintaan itu, kira-kira ukuran konteks subagent saat selesai. Bukan jumlah di seluruh run1341* `total_tokens`: Jejak token dari permintaan API akhir subagen: token input, pembuatan cache, pembacaan cache, dan output permintaan itu saja, kira-kira ukuran konteks subagen saat penyelesaian. Bukan jumlah di seluruh run

1299* `total_tool_uses`: Jumlah panggilan alat yang dibuat subagent di seluruh run1342* `total_tool_uses`: Jumlah panggilan alat yang dibuat subagen di seluruh run

1300* `duration_ms`: Waktu run dalam milidetik1343* `duration_ms`: Waktu run dalam milidetik

1301* `model`: Model yang diselesaikan subagent untuk dijalankan1344* `model`: Model yang diselesaikan subagen untuk dijalankan

1302* `final_model`: Model yang menghasilkan respons akhir subagent, yang berbeda dari `model` setelah switch mid-run seperti fallback. Memerlukan Claude Code v2.1.212 atau lebih baru1345* `final_model`: Model yang menghasilkan respons akhir subagen, yang berbeda dari `model` setelah switch mid-run seperti fallback. Memerlukan Claude Code v2.1.212 atau lebih baru

1303* `model_swapped`: Apakah lebih dari satu model melayani permintaan subagent. Memerlukan Claude Code v2.1.212 atau lebih baru1346* `model_swapped`: Apakah lebih dari satu model melayani permintaan subagen. Memerlukan Claude Code v2.1.212 atau lebih baru

1304* `plugin_id_hash`, `plugin.name`: Ada untuk agen yang disediakan plugin. Nama plugin marketplace resmi muncul verbatim; nama plugin lainnya diganti dengan `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur1347* `plugin_id_hash`, `plugin.name`: Ada untuk agen yang disediakan plugin. Nama plugin marketplace resmi muncul verbatim; nama plugin lainnya diganti dengan `"third-party"` kecuali `OTEL_LOG_TOOL_DETAILS=1` diatur

1305 1348 

1306<h4 id="feedback-survey-event">1349<h4 id="feedback-survey-event">

1307 Acara survei umpan balik1350 Peristiwa survei umpan balik

1308</h4>1351</h4>

1309 1352 

1310Dicatat saat survei kualitas sesi ditampilkan atau dijawab. Lihat [Survei kualitas sesi](/docs/id/data-usage#session-quality-surveys) untuk mengetahui apa yang dikumpulkan survei dan cara mengontrolnya.1353Dicatat ketika survei kualitas sesi ditampilkan atau dijawab. Lihat [Survei kualitas sesi](/docs/id/data-usage#session-quality-surveys) untuk apa yang dikumpulkan survei dan cara mengontrolnya.

1311 1354 

1312**Nama Acara**: `claude_code.feedback_survey`1355**Nama Peristiwa**: `claude_code.feedback_survey`

1313 1356 

1314**Atribut**:1357**Atribut**:

1315 1358 

1316* Semua [atribut standar](#standard-attributes)1359* Semua [atribut standar](#standard-attributes)

1317* `event.name`: `"feedback_survey"`1360* `event.name`: `"feedback_survey"`

1318* `event.timestamp`: Stempel waktu ISO 86011361* `event.timestamp`: Timestamp ISO 8601

1319* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1362* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1320* `event_type`: Acara siklus hidup survei, misalnya `"appeared"`, `"responded"`, atau `"transcript_prompt_appeared"`1363* `event_type`: Peristiwa siklus hidup survei, misalnya `"appeared"`, `"responded"`, atau `"transcript_prompt_appeared"`

1321* `appearance_id`: ID unik yang menghubungkan acara yang dipancarkan untuk satu instance survei1364* `appearance_id`: ID unik yang menghubungkan peristiwa yang dipancarkan untuk satu instance survei

1322* `survey_type`: Survei mana yang menghasilkan acara. `"session"` adalah prompt rating "Bagaimana Claude melakukannya?"1365* `survey_type`: Survei mana yang menghasilkan peristiwa. `"session"` adalah prompt rating "Bagaimana Claude melakukannya?"

1323* `response`: Pilihan pengguna pada acara `responded`1366* `response`: Pilihan pengguna pada peristiwa `responded`

1324* `enabled_via_override`: `true` saat [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/id/env-vars) diatur. Dipancarkan sebagai boolean, bukan string. Hadir pada acara survei `session`. Filter pada atribut ini untuk mengkonfirmasi override diterapkan di seluruh armada1367* `enabled_via_override`: `true` ketika [`CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL`](/docs/id/env-vars) diatur. Dipancarkan sebagai boolean, bukan string. Ada pada peristiwa survei `session`. Filter pada atribut ini untuk mengkonfirmasi override diterapkan di seluruh armada

1325 1368 

1326<h4 id="retention-sweep-event">1369<h4 id="retention-sweep-event">

1327 Acara penyapuan retensi1370 Peristiwa sapuan retensi

1328</h4>1371</h4>

1329 1372 

1330Dicatat sekali per run penyapuan pembersihan retensi, yang menghapus [transkrip sesi dan data aplikasi lainnya](/docs/id/claude-directory#cleaned-up-automatically) yang lebih lama dari pengaturan [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays). Claude Code menjalankan penyapuan di latar belakang paling banyak sekali per sesi, dan run yang tidak menghapus apa pun masih memancarkan acara. Jika Claude Code menjalankan penyapuan dalam sesi apa pun di mesin yang sama dalam 24 jam terakhir, itu menunda penyapuan sesi ini setidaknya 10 menit, jadi sesi yang keluar lebih cepat tidak memancarkan apa pun. Saat Anda menjalankan `claude -p` dengan `--bare`, Claude Code tidak menjalankan penyapuan dan tidak memancarkan apa pun.1373Dicatat sekali per run sapuan pembersihan retensi, yang menghapus [transkrip sesi dan data aplikasi lainnya](/docs/id/claude-directory#cleaned-up-automatically) lebih lama dari pengaturan [`cleanupPeriodDays`](/docs/id/settings-reference#cleanupperioddays). Claude Code menjalankan sapuan di latar belakang paling banyak sekali per sesi, dan run yang tidak menghapus apa pun masih memancarkan peristiwa. Jika Claude Code menjalankan sapuan dalam sesi apa pun pada mesin yang sama dalam 24 jam terakhir, itu menunda sapuan sesi ini setidaknya 10 menit, jadi sesi yang keluar lebih cepat tidak memancarkan apa pun. Ketika Anda menjalankan `claude -p` dengan `--bare`, Claude Code tidak menjalankan sapuan dan tidak memancarkan apa pun.

1331 1374 

1332Seperti setiap acara OTel di halaman ini, itu hanya pergi ke backend telemetri yang Anda konfigurasi. Memerlukan Claude Code v2.1.227 atau lebih baru.1375Seperti setiap peristiwa OTel di halaman ini, itu hanya pergi ke backend telemetri yang Anda konfigurasi. Memerlukan Claude Code v2.1.227 atau lebih baru.

1333 1376 

1334Saat Claude Code tidak dapat dengan aman menentukan periode retensi, itu menghentikan penyapuan dan memancarkan acara dengan `result` diatur ke `"skipped"` dan `skip_reason`. Saat [pengaturan terkelola](/docs/id/server-managed-settings) menetapkan `cleanupPeriodDays`, nilai terkelola menjepit periode retensi dan penyapuan berjalan bahkan saat file pengaturan dalam cakupan prioritas lebih rendah rusak atau tidak valid. Saat `managed-settings.json` itu sendiri tidak dapat dibaca, Claude Code masih menghentikan penyapuan kecuali [tingkat terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) memasok `cleanupPeriodDays` dari tempat lain, seperti pengaturan terkelola server atau drop-in `managed-settings.d/` di samping file yang rusak. Atribut penghitung penghapusan ada hanya saat `result` adalah `"complete"`.1377Ketika Claude Code tidak dapat dengan aman menentukan periode retensi, itu menjeda sapuan dan memancarkan peristiwa dengan `result` diatur ke `"skipped"` dan `skip_reason`. Ketika [pengaturan yang dikelola](/docs/id/server-managed-settings) menetapkan `cleanupPeriodDays`, nilai yang dikelola menjepit periode retensi dan sapuan berjalan bahkan ketika file pengaturan dalam cakupan prioritas lebih rendah rusak atau tidak valid. Ketika `managed-settings.json` itu sendiri tidak dapat dibaca, Claude Code masih menjeda sapuan kecuali [tingkat yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) memasok `cleanupPeriodDays` dari tempat lain, seperti pengaturan yang dikelola server atau drop-in `managed-settings.d/` di samping file yang rusak. Atribut penghitung penghapusan ada hanya ketika `result` adalah `"complete"`.

1335 1378 

1336**Nama Acara**: `claude_code.retention_sweep`1379**Nama Peristiwa**: `claude_code.retention_sweep`

1337 1380 

1338**Atribut**:1381**Atribut**:

1339 1382 

1340* Semua [atribut standar](#standard-attributes)1383* Semua [atribut standar](#standard-attributes)

1341* `event.name`: `"retention_sweep"`1384* `event.name`: `"retention_sweep"`

1342* `event.timestamp`: Stempel waktu ISO 86011385* `event.timestamp`: Timestamp ISO 8601

1343* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1386* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1344* `result`: `"complete"` saat penyapuan berjalan, `"skipped"` saat Claude Code menghentikannya1387* `result`: `"complete"` ketika sapuan berjalan, `"skipped"` ketika Claude Code menjeda itu

1345* `period_days`: Nilai `cleanupPeriodDays` dari pengaturan yang digabungkan, dalam hari, atau `30` saat tidak ada sumber yang menetapkannya. Pada acara yang dilewati, nilai yang akan digunakan penyapuan, dihitung dari sumber pengaturan yang dapat dibaca Claude Code1388* `period_days`: Nilai `cleanupPeriodDays` dari pengaturan yang digabungkan, dalam hari, atau `30` ketika tidak ada sumber yang menetapkannya. Pada peristiwa yang dilewati, nilai yang akan digunakan sapuan, dihitung dari sumber pengaturan yang dapat dibaca Claude Code

1346* `used_default`: `"true"` saat tidak ada sumber pengaturan yang dapat dibaca yang menetapkan `cleanupPeriodDays`, `"false"` sebaliknya. Pada acara lengkap, `"true"` berarti default 30 hari diterapkan1389* `used_default`: `"true"` ketika tidak ada sumber pengaturan yang dapat dibaca yang menetapkan `cleanupPeriodDays`, `"false"` sebaliknya. Pada peristiwa lengkap, `"true"` berarti default 30 hari diterapkan

1347* `skip_reason`: Mengapa Claude Code menghentikan penyapuan. Ada hanya saat `result` adalah `"skipped"`:1390* `skip_reason`: Mengapa Claude Code menjeda sapuan. Ada hanya ketika `result` adalah `"skipped"`:

1348 * `"user_source_disabled"`: Pengaturan pengguna dikecualikan, misalnya oleh flag [`--setting-sources`](/docs/id/cli-reference#cli-flags) atau opsi [`settingSources`](/docs/id/agent-sdk/typescript#options) SDK, dan tidak ada sumber yang diaktifkan yang menyediakan `cleanupPeriodDays`1391 * `"user_source_disabled"`: Pengaturan pengguna dikecualikan, misalnya oleh flag [`--setting-sources`](/docs/id/cli-reference#cli-flags) atau opsi [`settingSources`](/docs/id/agent-sdk/typescript#options) SDK, dan tidak ada sumber yang diaktifkan yang menyediakan `cleanupPeriodDays`

1349 * `"settings_unknowable"`: File pengaturan tidak dapat dibaca atau diuraikan, jadi `cleanupPeriodDays` atau `desktopSessionCleanupPeriodDays` mungkin diatur ke nilai yang tidak dapat dilihat Claude Code1392 * `"settings_unknowable"`: File pengaturan tidak dapat dibaca atau diuraikan, jadi `cleanupPeriodDays` atau `desktopSessionCleanupPeriodDays` mungkin diatur ke nilai yang tidak dapat dilihat Claude Code

1350 * `"settings_invalid_key_set"`: Pengaturan memiliki kesalahan validasi dan `cleanupPeriodDays` atau `desktopSessionCleanupPeriodDays` secara eksplisit diatur, jadi fallback ke default dapat menghapus atau menyimpan file terhadap pengaturan itu1393 * `"settings_invalid_key_set"`: Pengaturan memiliki kesalahan validasi dan `cleanupPeriodDays` atau `desktopSessionCleanupPeriodDays` secara eksplisit diatur, jadi kembali ke default dapat menghapus atau menyimpan file terhadap pengaturan itu

1351* `transcripts_deleted`: Jumlah transkrip sesi, file `~/.claude/projects/*/*.jsonl` tingkat atas, yang dihapus penyapuan1394* `transcripts_deleted`: Jumlah transkrip sesi, file `~/.claude/projects/*/*.jsonl` tingkat atas, yang dihapus sapuan

1352* `transcripts_exempted_desktop`: Jumlah transkrip melewati periode retensi yang disimpan penyapuan di bawah [aturan Claude Desktop dan Cowork](/docs/id/claude-directory#cleaned-up-automatically). Ini tidak dihitung menuju `files_past_cutoff`. Memerlukan Claude Code v2.1.248 atau lebih baru1395* `transcripts_exempted_desktop`: Jumlah transkrip melewati periode retensi yang disimpan sapuan di bawah [aturan Claude Desktop dan Cowork](/docs/id/claude-directory#cleaned-up-automatically). Ini tidak dihitung menuju `files_past_cutoff`. Memerlukan Claude Code v2.1.248 atau lebih baru

1353* `session_files_deleted`: Jumlah artefak yang dihapus penyapuan file sesi: transkrip plus file pendamping per sesi seperti sidecars, recordings, dan hasil alat1396* `session_files_deleted`: Jumlah artefak yang dihapus sapuan file sesi: transkrip ditambah file pendamping per-sesi seperti sidecars, rekaman, dan hasil alat

1354* `artifacts_deleted`: Total item yang dihapus penyapuan di seluruh direktori data yang dicakupnya, termasuk file sesi. Beberapa penyapuan menghitung pohon direktori yang dihapus seluruhnya sebagai satu item dan beberapa pass pembersihan tidak berkontribusi pada penghitung, jadi perlakukan nilai sebagai lantai daripada hitungan file yang tepat1397* `artifacts_deleted`: Total item yang dihapus sapuan di seluruh direktori data yang dicakupnya, termasuk file sesi. Beberapa sapuan menghitung pohon direktori yang dihapus seluruhnya sebagai satu item dan beberapa pass pembersihan tidak berkontribusi pada penghitung, jadi perlakukan nilai sebagai lantai daripada hitungan file yang tepat

1355* `files_retained_fresh`: File yang diperiksa dan ditinggalkan di tempat karena masih dalam periode retensi. Hanya penyapuan per-file yang menghitung ini, jadi nilainya adalah lantai; nilai bukan nol adalah keadaan tunak normal1398* `files_retained_fresh`: File yang diperiksa dan ditinggalkan di tempat karena masih dalam periode retensi. Hanya sapuan per-file yang menghitung ini, jadi nilainya adalah lantai; nilai bukan nol adalah keadaan stabil normal

1356* `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 gantinya1399* `files_past_cutoff`: File lebih lama dari periode retensi yang gagal dihapus sapuan, 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

1357* `error_count`: Jumlah kesalahan yang dihadapi penyapuan saat membuat daftar atau menghapus file1400* `error_count`: Jumlah kesalahan yang dihadapi sapuan saat mendaftar atau menghapus file

1358 1401 

1359<h4 id="managed-settings-resolved-event">1402<h4 id="managed-settings-resolved-event">

1360 Acara pengaturan terkelola diselesaikan1403 Peristiwa pengaturan yang dikelola diselesaikan

1361</h4>1404</h4>

1362 1405 

1363Dicatat 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`.1406Dicatat dengan [pengaturan yang dikelola](/docs/id/managed-settings) yang diselesaikan sesi: sekali pada awal sesi, lagi ketika pengaturan yang dikelola atau [pembantu kebijakan](/docs/id/managed-settings#compute-the-policy-with-a-helper-program) berubah keadaannya selama sesi, dan ketika Claude Code menolak untuk memulai atau mengakhiri sesi untuk salah satu alasan yang tercantum atribut `error.type`.

1364Gunakan 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.1407Gunakan peristiwa ini untuk menemukan mesin yang berjalan pada sumber yang dikelola yang tidak terduga, mesin yang pembantu kebijakan-nya gagal, dan alasan mesin menolak untuk memulai.

1365Memerlukan Claude Code v2.1.274 atau lebih baru.1408Memerlukan Claude Code v2.1.274 atau lebih baru.

1366 1409 

1367Secara 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`:1410Secara default, peristiwa membawa sumber yang dikelola dan keadaan pembantu kebijakan tetapi bukan pengaturan itu sendiri. Untuk menambahkan atribut `managed_settings.settings` yang disunting dan digest `managed_settings.resolved_sha256`, atur `OTEL_LOG_MANAGED_SETTINGS=1`:

1368 1411 

1369* 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.1412* Aturnya dalam blok `env` pengaturan yang dikelola, pengaturan pengguna, atau `--settings`, atau dalam lingkungan tempat Anda meluncurkan Claude Code. Nilai dalam pengaturan proyek atau lokal tidak mengaktifkannya, karena repositori yang diklon dapat menulisnya.

1370* 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.1413* Pengaturan yang dikelola server dapat menetapkannya tanpa menampilkan [dialog persetujuan keamanan](/docs/id/server-managed-settings#security-approval-dialogs), karena variabel hanya menambahkan kebijakan yang disunting organisasi Anda ke peristiwa yang organisasi Anda sudah terima.

1371 1414 

1372Dalam sesi interaktif dalam folder yang belum Anda [percayai](/docs/id/permissions#what-runs-before-you-trust-a-folder), Claude Code tidak mengekspor acara penolakan.1415Dalam sesi interaktif dalam folder yang belum Anda [percayai](/docs/id/permissions#what-runs-before-you-trust-a-folder), Claude Code tidak mengekspor peristiwa penolakan.

1373 1416 

1374**Nama Acara**: `claude_code.managed_settings_resolved`1417**Nama Peristiwa**: `claude_code.managed_settings_resolved`

1375 1418 

1376**Atribut**:1419**Atribut**:

1377 1420 

1378* Semua [atribut standar](#standard-attributes)1421* Semua [atribut standar](#standard-attributes)

1379* `event.name`: `"managed_settings_resolved"`1422* `event.name`: `"managed_settings_resolved"`

1380* `event.timestamp`: Stempel waktu ISO 86011423* `event.timestamp`: Timestamp ISO 8601

1381* `event.sequence`: penghitung per-proses untuk mengurutkan acara, dijelaskan di bawah [Atribut korelasi acara](#event-correlation-attributes)1424* `event.sequence`: penghitung per-proses untuk mengurutkan peristiwa, dijelaskan di bawah [Atribut korelasi peristiwa](#event-correlation-attributes)

1382* `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` off1425* `managed_settings.trigger`: `"startup"` untuk peristiwa awal sesi, `"change"` ketika pengaturan yang dikelola atau keadaan pembantu kebijakan berubah nanti dalam sesi, atau `"refused"` ketika kebijakan pengaturan yang dikelola menghentikan sesi. Claude Code mengirim peristiwa `change` hanya ketika atribut berbeda dari peristiwa terakhir yang dikirimnya, dan nilai pengaturan yang berubah dihitung bahkan ketika `OTEL_LOG_MANAGED_SETTINGS` off

1383* `error.type`: mengapa Claude Code menghentikan sesi. Ada hanya pada acara `refused`:1426* `error.type`: mengapa Claude Code menghentikan sesi. Ada hanya pada peristiwa `refused`:

1384 * `"helper_failed"`: [run helper kebijakan gagal](/docs/id/settings-reference#helper-failures)1427 * `"helper_failed"`: [run pembantu kebijakan gagal](/docs/id/settings-reference#helper-failures)

1385 * `"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 organisasi1428 * `"policy_invalid"`: pengaturan yang dikelola berisi kesalahan yang menghentikan Claude Code dari memulai, atau sumber admin gagal dimuat, jadi Claude Code tidak dapat memeriksa penegakan login organisasi

1386 * `"consent_rejected"`: pengguna menolak [dialog persetujuan keamanan](/docs/id/server-managed-settings#security-approval-dialogs) untuk pengaturan terkelola server1429 * `"consent_rejected"`: pengguna menolak [dialog persetujuan keamanan](/docs/id/server-managed-settings#security-approval-dialogs) untuk pengaturan yang dikelola server

1387 * `"force_refresh_failed"`: pengambilan pengaturan yang [`forceRemoteSettingsRefresh`](/docs/id/settings-reference#forceremotesettingsrefresh) perlukan gagal1430 * `"force_refresh_failed"`: pengambilan pengaturan yang [`forceRemoteSettingsRefresh`](/docs/id/settings-reference#forceremotesettingsrefresh) perlukan gagal

1388 * `"gateway_rejected"`: [gateway aplikasi Claude](/docs/id/claude-apps-gateway) menjawab beban pengaturan terkelola dengan HTTP 4031431 * `"gateway_rejected"`: [gateway aplikasi Claude](/docs/id/claude-apps-gateway) menjawab beban pengaturan yang dikelola dengan HTTP 403

1389 * `"version_below_minimum"`: versi Claude Code ini di bawah [`requiredMinimumVersion`](/docs/id/settings-reference#requiredminimumversion) atau di atas [`requiredMaximumVersion`](/docs/id/settings-reference#requiredmaximumversion)1432 * `"version_below_minimum"`: versi Claude Code ini di bawah [`requiredMinimumVersion`](/docs/id/settings-reference#requiredminimumversion) atau di atas [`requiredMaximumVersion`](/docs/id/settings-reference#requiredmaximumversion)

1390 * `"_OTHER"`: beban pengaturan terkelola gateway aplikasi Claude gagal karena alasan lain1433 * `"_OTHER"`: beban pengaturan yang dikelola gateway aplikasi Claude gagal karena alasan lain

1391* `managed_settings.sources`: setiap sumber terkelola yang memberikan setidaknya satu [kunci kebijakan](/docs/id/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/managed-settings#let-an-embedding-host-add-policy) memasok pengaturan, dan `"hkcu"` untuk [nilai registri Windows HKCU](/docs/id/managed-settings#where-each-mechanism-stores-the-policy) saat Claude Code [membacanya](/docs/id/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 kebijakan1434* `managed_settings.sources`: setiap sumber yang dikelola yang memberikan setidaknya satu [kunci kebijakan](/docs/id/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 yang dikelola dan drop-in, `"parent"` ketika [host embedding](/docs/id/managed-settings#let-an-embedding-host-add-policy) memasok pengaturan, dan `"hkcu"` untuk [nilai registri Windows HKCU](/docs/id/managed-settings#where-each-mechanism-stores-the-policy) ketika Claude Code [membacanya](/docs/id/managed-settings#how-claude-code-combines-managed-sources). Sumber yang hanya membawa kunci kontrol, atau yang tidak dapat dibaca Claude Code, tidak terdaftar. Dipancarkan sebagai array string, kosong ketika tidak ada sumber yang dikelola memberikan kunci kebijakan

1392* `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 kunci1435* `managed_settings.source_behavior`: nilai [`managedSourcesBehavior`](/docs/id/settings-reference#managedsourcesbehavior) yang dibaca Claude Code, `"first-wins"` atau `"merge"`. `"first-wins"` ketika tidak ada sumber yang menetapkan kunci

1393* `managed_settings.helper.state`: status helper kebijakan yang dikonfigurasi sumber MDM atau file yang dipilih:1436* `managed_settings.helper.state`: keadaan pembantu kebijakan yang sumber MDM atau file yang dipilih konfigurasi:

1394 * `"ok"`: output helper melayani sebagai pengaturan terkelola1437 * `"ok"`: output pembantu berfungsi sebagai pengaturan yang dikelola

1395 * `"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-kasusnya1438 * `"bad_path"`, `"not_a_file"`, `"exit_nonzero"`, `"timed_out"`, `"oversize"`, `"parse_failed"`, `"envelope_invalid"`, atau `"schema_rejected"`: run terakhir pembantu gagal. [Kegagalan pembantu](/docs/id/settings-reference#helper-failures) menjelaskan kasus

1396 * `"none"`: tidak ada helper yang dikonfigurasi, atau sumber yang mengonfigurasinya bukan kebijakan MDM atau file pengaturan terkelola1439 * `"none"`: tidak ada pembantu yang dikonfigurasi, atau sumber yang mengonfigurasinya bukan kebijakan MDM atau file pengaturan yang dikelola

1397* `managed_settings.helper.applied`: `"output"` saat output helper sendiri melayani sebagai pengaturan terkelola, `"none"` saat tidak1440* `managed_settings.helper.applied`: `"output"` sementara output pembantu itu sendiri berfungsi sebagai pengaturan yang dikelola, `"none"` ketika tidak

1398* `managed_settings.helper.entry`: `"policyHelper"` saat Claude Code memilih [`policyHelper`](/docs/id/settings-reference#policyhelper). Tidak ada saat memilih tidak ada helper1441* `managed_settings.helper.entry`: `"policyHelper"` ketika Claude Code memilih [`policyHelper`](/docs/id/settings-reference#policyhelper). Tidak ada ketika tidak memilih pembantu

1399* `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` diatur1442* `managed_settings.helper.path`: [`path`](/docs/id/settings-reference#policyhelper-path) yang dikonfigurasi pembantu. Ada kapan pun Claude Code memilih pembantu, apakah atau tidak `OTEL_LOG_MANAGED_SETTINGS` diatur

1400* `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`1443* `managed_settings.resolved_sha256` (ketika `OTEL_LOG_MANAGED_SETTINGS=1`): SHA-256 dari pengaturan yang dikelola yang diselesaikan sebelum penyuntingan, diserialisasi sebagai JSON dengan kunci yang diurutkan secara rekursif dan tanpa spasi. 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 ketika tidak ada pengaturan yang dikelola yang diselesaikan, dan pada peristiwa `refused`

1401* `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:1444* `managed_settings.settings` (ketika `OTEL_LOG_MANAGED_SETTINGS=1`): nama dan bentuk pengaturan yang dikelola yang diselesaikan sebagai string JSON, dengan nilai yang disunting. Tidak ada pada peristiwa `refused`. Claude Code membangunnya dari skema pengaturannya:

1402 1445 

1403 * Nama pengaturan yang skema deklarasikan diekspor, dan kunci yang tidak dideklarasikan ditinggalkan1446 * Nama pengaturan yang skema deklarasikan diekspor, dan kunci yang tidak dideklarasikan ditinggalkan

1404 * 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]"`1447 * 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]"`

1405 * Setiap string lainnya, seperti `model`, `apiKeyHelper`, setiap nilai `env`, setiap URL, dan setiap perintah, diekspor sebagai `"[REDACTED]"`1448 * Setiap string lainnya, seperti `model`, `apiKeyHelper`, setiap nilai `env`, setiap URL, dan setiap perintah, diekspor sebagai `"[REDACTED]"`

1406 * 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 perintah1449 * 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 path-nya tanpa pola perintah

1407 * Daftar menyimpan panjangnya, dengan setiap entri diredaksi oleh aturan yang sama1450 * Daftar menyimpan panjangnya, dengan setiap entri disunting oleh aturan yang sama

1408 * 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]"`1451 * Aturan `permissions.allow`, `permissions.deny`, atau `permissions.ask` diekspor sebagai nama alat-nya dengan konten yang disunting, seperti `Read([REDACTED])`, ketika alat dibangun ke versi Claude Code ini atau merupakan referensi `mcp__` seperti `mcp__jira__create_issue`. Aturan lainnya diekspor sebagai `"[REDACTED]"`

1409 * 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]"`1452 * Hook 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]"`

1410 1453 

1411 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])"]}}`.1454 Misalnya, pengaturan yang dikelola 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])"]}}`.

1412 1455 

1413 Claude Code memotong nilai pada 8 KB UTF-8, dan nilai yang dipotong bukan JSON yang valid1456 Claude Code memotong nilai pada 8 KB UTF-8, dan nilai yang dipotong bukan JSON yang valid

1414* `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 string1457* `managed_settings.settings_truncated` (ketika `managed_settings.settings` ada): `true` ketika Claude Code memotong `managed_settings.settings` pada 8 KB, `false` sebaliknya. Dipancarkan sebagai boolean, bukan string

1415 1458 

1416<h2 id="interpret-metrics-and-events-data">1459<h2 id="interpret-metrics-and-events-data">

1417 Menafsirkan data metrik dan acara1460 Menafsirkan data metrik dan acara


1499 1542 

1500[Atribut standar](#standard-attributes) pada setiap acara mencakup identitas pengguna yang diautentikasi: `user.email`, `user.account_uuid`, `user.account_id`, dan `organization.id` saat masuk dengan akun Claude atau, dalam [sesi cloud](/docs/id/claude-code-on-the-web), ketika kredensial sesi itu sendiri membawanya, ditambah `user.id` dan `session.id` per-sesi. `user.id` adalah pengidentifikasi berskop instalasi, kecuali pada sesi [Claude apps gateway](/docs/id/claude-apps-gateway), di mana ini adalah subjek IdP dari token yang dikeluarkan gateway.1543[Atribut standar](#standard-attributes) pada setiap acara mencakup identitas pengguna yang diautentikasi: `user.email`, `user.account_uuid`, `user.account_id`, dan `organization.id` saat masuk dengan akun Claude atau, dalam [sesi cloud](/docs/id/claude-code-on-the-web), ketika kredensial sesi itu sendiri membawanya, ditambah `user.id` dan `session.id` per-sesi. `user.id` adalah pengidentifikasi berskop instalasi, kecuali pada sesi [Claude apps gateway](/docs/id/claude-apps-gateway), di mana ini adalah subjek IdP dari token yang dikeluarkan gateway.

1501 1544 

1502Panggilan alat MCP, perintah Bash, dan pengeditan file oleh karena itu dikaitkan dengan pengembang yang memulai sesi. Claude Code tidak bertindak di bawah akun layanan terpisah; identitas yang dicatat pada setiap acara adalah akun Claude pengembang itu sendiri, atau identitas IdP pengembang pada sesi [Claude apps gateway](/docs/id/claude-apps-gateway).1545Dalam sesi yang dimulai pengembang, panggilan alat MCP, perintah Bash, dan pengeditan file oleh karena itu dikaitkan dengan pengembang tersebut. Claude Code tidak bertindak di bawah akun layanan terpisah di sana; identitas yang dicatat pada setiap acara adalah akun Claude pengembang itu sendiri, atau identitas IdP pengembang pada sesi [Claude apps gateway](/docs/id/claude-apps-gateway). Dalam sesi saluran Claude Tag, Claude bekerja sebagai [identitas bersama](/docs/id/cloud-environments#set-the-environment-a-claude-tag-channel-uses) organisasi Anda.

1503 1546 

1504Saat Claude Code diautentikasi dengan kunci API langsung, atau terhadap Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry, tidak ada akun Claude dalam sesi dan hanya `user.id` dan `session.id` yang diisi. Dalam penerapan ini, lampirkan identitas pengguna sendiri dengan `OTEL_RESOURCE_ATTRIBUTES`, atur per pengguna melalui file [pengaturan terkelola](#administrator-configuration) atau pembungkus peluncuran. Sesi Claude apps gateway tidak memerlukan apa pun dari ini: CLI mencap identitas IdP secara otomatis, seperti yang dijelaskan dalam [Atribut standar](#standard-attributes).1547Saat Claude Code diautentikasi dengan kunci API langsung, atau terhadap Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry, tidak ada akun Claude dalam sesi dan hanya `user.id` dan `session.id` yang diisi. Dalam penerapan ini, lampirkan identitas pengguna sendiri dengan `OTEL_RESOURCE_ATTRIBUTES`, atur per pengguna melalui file [pengaturan terkelola](#administrator-configuration) atau pembungkus peluncuran. Sesi Claude apps gateway tidak memerlukan apa pun dari ini: CLI mencap identitas IdP secara otomatis, seperti yang dijelaskan dalam [Atribut standar](#standard-attributes).

1505 1548 


1563}1606}

1564```1607```

1565 1608 

1566Untuk mengonfirmasi acara tiba, kirimkan prompt dalam sesi yang berjalan di bawah konfigurasi ini dan periksa SIEM Anda untuk acara `claude_code.user_prompt`. Jika tidak ada yang tiba, jalankan `claude --debug` dan periksa log debug untuk kesalahan ekspor `[3P telemetry]`.1609Untuk mengonfirmasi acara tiba, kirimkan prompt dalam sesi yang berjalan di bawah konfigurasi ini dan periksa SIEM Anda untuk acara `claude_code.user_prompt`. Jika tidak ada yang tiba, jalankan Claude Code dengan `claude --debug-file <path>` dan periksa log itu untuk kesalahan ekspor `[3P telemetry]`.

1567 1610 

1568<h2 id="backend-considerations">1611<h2 id="backend-considerations">

1569 Pertimbangan backend1612 Pertimbangan backend


1633 * Acara `tool_result` dan `tool_decision` menyertakan atribut `tool_parameters` dengan perintah Bash, nama server MCP dan alat, dan nama skill. Bidang seperti `full_command` dipancarkan tanpa pemotongan1676 * Acara `tool_result` dan `tool_decision` menyertakan atribut `tool_parameters` dengan perintah Bash, nama server MCP dan alat, dan nama skill. Bidang seperti `full_command` dipancarkan tanpa pemotongan

1634 * Acara `tool_result` juga menyertakan atribut `tool_input` dengan jalur file, URL, pola pencarian, dan argumen lainnya. Nilai individual di atas 512 karakter dipotong dan total dibatasi hingga \~4 K karakter1677 * Acara `tool_result` juga menyertakan atribut `tool_input` dengan jalur file, URL, pola pencarian, dan argumen lainnya. Nilai individual di atas 512 karakter dipotong dan total dibatasi hingga \~4 K karakter

1635 * Acara `user_prompt` menyertakan `command_name` verbatim untuk perintah custom, plugin, dan MCP1678 * Acara `user_prompt` menyertakan `command_name` verbatim untuk perintah custom, plugin, dan MCP

1679 * [Penghitung biaya dan token](#cost-counter) dan acara `api_request`, `api_error`, dan `api_refusal` membawa nama agen, skill, plugin, dan server MCP dan alat yang sebenarnya dalam atribut atribusi mereka

1636 * Trace spans menyertakan atribut `tool_input` yang sama dan atribut yang diturunkan dari input seperti `file_path`, dengan pemotongan yang sama dengan `tool_input`1680 * Trace spans menyertakan atribut `tool_input` yang sama dan atribut yang diturunkan dari input seperti `file_path`, dengan pemotongan yang sama dengan `tool_input`

1637* Konten alat tidak dicatat dalam trace spans secara default. Untuk menyertakannya, atur `OTEL_LOG_TOOL_CONTENT=1`. Span `claude_code.tool` kemudian membawa acara span [`tool.output`](#tool-output-span-event) dengan konten file mentah dan output perintah Bash, dipotong pada batas konten (60 KB secara default) per atribut. Konten alat juga menjangkau spans melalui [`new_context`, yang gatenya berbeda per span](#new-context-gates). Konfigurasikan backend telemetri Anda untuk memfilter atau menyunting atribut ini sesuai kebutuhan1681* Konten alat tidak dicatat dalam trace spans secara default. Untuk menyertakannya, atur `OTEL_LOG_TOOL_CONTENT=1`. Span `claude_code.tool` kemudian membawa acara span [`tool.output`](#tool-output-span-event) dengan konten file mentah, output perintah Bash, dan apa yang dikembalikan alat MCP, WebFetch, dan WebSearch, dipotong pada batas konten (60 KB secara default) per atribut. Hasil dari alat MCP, WebFetch, dan WebSearch memerlukan Claude Code v2.1.283 atau lebih baru. Konten alat juga menjangkau spans melalui [`new_context`, yang gatenya berbeda per span](#new-context-gates). Konfigurasikan backend telemetri Anda untuk memfilter atau menyunting atribut ini sesuai kebutuhan

1638* Badan permintaan dan respons API Anthropic Messages mentah tidak dicatat secara default. Untuk menyertakannya, atur `OTEL_LOG_RAW_API_BODIES` di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Ini diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Badan berisi riwayat percakapan lengkap, termasuk system prompt, setiap giliran pengguna dan asisten sebelumnya, dan hasil alat, jadi mengaktifkan ini menyiratkan persetujuan untuk semua yang akan diungkapkan oleh flag konten `OTEL_LOG_*` lainnya. Claude Code selalu menyunting konten extended-thinking Claude dari badan ini, terlepas dari pengaturan lain. Nilai yang Anda atur menentukan bagaimana Claude Code mengirimkan badan:1682* Badan permintaan dan respons API Anthropic Messages mentah tidak dicatat secara default. Untuk menyertakannya, atur `OTEL_LOG_RAW_API_BODIES` di shell, pengaturan pengguna, atau pengaturan terkelola Anda. Ini diabaikan dalam [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env). Badan berisi riwayat percakapan lengkap, termasuk system prompt, setiap giliran pengguna dan asisten sebelumnya, dan hasil alat, jadi mengaktifkan ini menyiratkan persetujuan untuk semua yang akan diungkapkan oleh flag konten `OTEL_LOG_*` lainnya. Claude Code selalu menyunting konten extended-thinking Claude dari badan ini, terlepas dari pengaturan lain. Nilai yang Anda atur menentukan bagaimana Claude Code mengirimkan badan:

1639 * Dengan `=1`, Claude Code memancarkan acara log `api_request_body` dan `api_response_body` untuk setiap panggilan API. Atribut `body` acara membawa muatan yang diserialisasi JSON, dipotong pada batas konten (60 KB secara default)1683 * Dengan `=1`, Claude Code memancarkan acara log `api_request_body` dan `api_response_body` untuk setiap panggilan API. Atribut `body` acara membawa muatan yang diserialisasi JSON, dipotong pada batas konten (60 KB secara default)

1640 * Dengan `=file:<dir>`, Claude Code menulis badan yang tidak dipotong ke file `.request.json` dan `.response.json` di bawah direktori tersebut, dan acara membawa jalur `body_ref` sebagai gantinya dari badan inline. Kirim direktori dengan pengumpul log atau sidecar daripada melalui aliran telemetri.1684 * Dengan `=file:<dir>`, Claude Code menulis badan yang tidak dipotong ke file `.request.json` dan `.response.json` di bawah direktori tersebut, dan acara membawa jalur `body_ref` sebagai gantinya dari badan inline. Kirim direktori dengan pengumpul log atau sidecar daripada melalui aliran telemetri.

overview.md +3 −1

Details

18 <Tab title="Terminal">18 <Tab title="Terminal">

19 CLI lengkap untuk bekerja dengan Claude Code langsung di terminal Anda. Edit file, jalankan perintah, dan kelola seluruh proyek Anda dari baris perintah.19 CLI lengkap untuk bekerja dengan Claude Code langsung di terminal Anda. Edit file, jalankan perintah, dan kelola seluruh proyek Anda dari baris perintah.

20 20 

21 Untuk menginstal Claude Code, gunakan salah satu metode berikut:21 Untuk menginstal Claude Code, buka terminal dan jalankan perintah untuk sistem Anda. Jika Anda belum pernah menggunakan terminal sebelumnya, [panduan terminal](/docs/id/terminal-guide) menunjukkan cara membukanya dan menempel perintahnya.

22 22 

23 <Tabs>23 <Tabs>

24 <Tab title="Native Install (Direkomendasikan)">24 <Tab title="Native Install (Direkomendasikan)">


40 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd40 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

41 ```41 ```

42 42 

43 Ketika penginstal selesai, buka jendela terminal baru dan jalankan `claude --version`. Instalasi yang berfungsi dengan baik mencetak nomor versi. Jika shell Anda mengatakan `claude` tidak ditemukan atau tidak dikenali, direktori instalasi belum ada di PATH Anda: lihat [Perbaiki PATH Anda](/docs/id/troubleshoot-install#command-not-found-claude-after-installation).

44 

43 Jika Anda melihat `The token '&&' is not a valid statement separator`, Anda berada di PowerShell, bukan CMD. Jika Anda melihat `'irm' is not recognized as an internal or external command`, Anda berada di CMD, bukan PowerShell. Prompt Anda menunjukkan `PS C:\` ketika Anda berada di PowerShell dan `C:\` tanpa `PS` ketika Anda berada di CMD.45 Jika Anda melihat `The token '&&' is not a valid statement separator`, Anda berada di PowerShell, bukan CMD. Jika Anda melihat `'irm' is not recognized as an internal or external command`, Anda berada di CMD, bukan PowerShell. Prompt Anda menunjukkan `PS C:\` ketika Anda berada di PowerShell dan `C:\` tanpa `PS` ketika Anda berada di CMD.

44 46 

45 Jika perintah instalasi gagal dengan `syntax error near unexpected token '<'`, `403`, atau kesalahan curl lainnya, lihat [Troubleshoot installation](/docs/id/troubleshoot-install#find-your-error) untuk mencocokkan kesalahan dengan perbaikan dan untuk metode instalasi alternatif.47 Jika perintah instalasi gagal dengan `syntax error near unexpected token '<'`, `403`, atau kesalahan curl lainnya, lihat [Troubleshoot installation](/docs/id/troubleshoot-install#find-your-error) untuk mencocokkan kesalahan dengan perbaikan dan untuk metode instalasi alternatif.

permission-modes.md +154 −59

Details

8 8 

9Mode izin menetapkan tindakan mana yang dapat dilakukan Claude dalam sesi tanpa meminta Anda terlebih dahulu. Dalam mode Manual, Claude Code berhenti dan meminta Anda sebelum sebagian besar tindakan yang mengedit file, menjalankan perintah shell, atau menjangkau jaringan. Dalam [mode auto](#eliminate-prompts-with-auto-mode), model kedua, pengklasifikasi, meninjau tindakan sebagai gantinya Anda; [bagaimana pengklasifikasi mengevaluasi tindakan](#how-the-classifier-evaluates-actions) mencantumkan tindakan mana yang ditinjau dan mana yang melewatinya.9Mode izin menetapkan tindakan mana yang dapat dilakukan Claude dalam sesi tanpa meminta Anda terlebih dahulu. Dalam mode Manual, Claude Code berhenti dan meminta Anda sebelum sebagian besar tindakan yang mengedit file, menjalankan perintah shell, atau menjangkau jaringan. Dalam [mode auto](#eliminate-prompts-with-auto-mode), model kedua, pengklasifikasi, meninjau tindakan sebagai gantinya Anda; [bagaimana pengklasifikasi mengevaluasi tindakan](#how-the-classifier-evaluates-actions) mencantumkan tindakan mana yang ditinjau dan mana yang melewatinya.

10 10 

11Pada paket Pro, Max, dan Team, mode izin awal bawaan adalah mode auto. [Mode mana yang dimulai sesi](#which-mode-a-session-starts-in) mencakup permukaan dan pengaturan yang mengubah mode izin awal. Anda juga dapat mengubah mode izin sesi yang sedang berjalan kapan saja.11Dengan Claude Code v2.1.283 atau lebih baru, mode auto adalah mode izin awal bawaan untuk sesi terminal interaktif dan VS Code. Pada versi sebelumnya, ini adalah mode izin awal bawaan hanya pada paket Pro, Max, dan Team. [Mode mana yang dimulai sesi](#which-mode-a-session-starts-in) mencakup permukaan dan pengaturan yang mengubah mode izin awal. Anda juga dapat mengubah mode izin sesi yang sedang berjalan kapan saja.

12 12 

13<h2 id="available-modes">13<h2 id="available-modes">

14 Mode yang tersedia14 Mode yang tersedia


57| Tinjau setiap tindakan sendiri | Mode Manual: `claude --permission-mode default` | Tidak ada | Pekerjaan sensitif, kode yang tidak familiar |57| Tinjau setiap tindakan sendiri | Mode Manual: `claude --permission-mode default` | Tidak ada | Pekerjaan sensitif, kode yang tidak familiar |

58| Iterasi lokal dengan lebih sedikit prompt, tanpa pengklasifikasi | Mode Manual ditambah sandbox Bash dalam [mode auto-allow](/docs/id/sandboxing#sandbox-modes): `claude --permission-mode default`, kemudian jalankan `/sandbox` dan pilih auto-allow | Sandbox Bash bawaan, di macOS, Linux, dan WSL2 | Aturan deny masih berlaku, dan aturan ask yang menyebutkan perintah, seperti `Bash(git push *)`, masih meminta. Untuk mengaktifkan sandbox dari file pengaturan sebagai gantinya, atur [`sandbox.enabled`](/docs/id/settings-reference#sandbox-enabled) ke `true` |58| Iterasi lokal dengan lebih sedikit prompt, tanpa pengklasifikasi | Mode Manual ditambah sandbox Bash dalam [mode auto-allow](/docs/id/sandboxing#sandbox-modes): `claude --permission-mode default`, kemudian jalankan `/sandbox` dan pilih auto-allow | Sandbox Bash bawaan, di macOS, Linux, dan WSL2 | Aturan deny masih berlaku, dan aturan ask yang menyebutkan perintah, seperti `Bash(git push *)`, masih meminta. Untuk mengaktifkan sandbox dari file pengaturan sebagai gantinya, atur [`sandbox.enabled`](/docs/id/settings-reference#sandbox-enabled) ke `true` |

59| Jelajahi sebelum mengubah apa pun | `claude --permission-mode plan` | Tidak ada | Claude Code memblokir pengeditan sampai Anda [menyetujui rencana](#review-and-approve-a-plan) |59| Jelajahi sebelum mengubah apa pun | `claude --permission-mode plan` | Tidak ada | Claude Code memblokir pengeditan sampai Anda [menyetujui rencana](#review-and-approve-a-plan) |

60| Bekerja hands-off dalam mode auto | `claude --permission-mode auto`, [mode izin awal bawaan](#which-mode-a-session-starts-in) pada Pro, Max, dan Team | Tidak ada; sandbox atau kontainer menambah pertahanan berlapis | Memerlukan [model yang didukung](#eliminate-prompts-with-auto-mode), dan organisasi Anda dapat [mematikan mode auto](#eliminate-prompts-with-auto-mode) |60| Bekerja hands-off dalam mode auto | `claude --permission-mode auto`, [mode izin awal bawaan](#which-mode-a-session-starts-in) dengan v2.1.283 atau lebih baru | Tidak ada; sandbox atau kontainer menambah pertahanan berlapis | Memerlukan [model yang didukung](#eliminate-prompts-with-auto-mode), dan organisasi Anda dapat [mematikan mode auto](#eliminate-prompts-with-auto-mode) |

61| Jalankan di CI dengan allowlist yang tepat | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Tidak ada di luar apa yang disediakan runner CI Anda | [Cloud sessions](/docs/id/claude-code-on-the-web) mengabaikan `dontAsk` dari file pengaturan |61| Jalankan di CI dengan allowlist yang tepat | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | Tidak ada di luar apa yang disediakan runner CI Anda | [Cloud sessions](/docs/id/claude-code-on-the-web) mengabaikan `dontAsk` dari file pengaturan |

62| Jalankan sepenuhnya tanpa pengawasan di dalam kontainer | `claude -p "<prompt>" --dangerously-skip-permissions` | Diperlukan: kontainer, VM, atau [runtime sandbox](/docs/id/sandbox-environments#sandbox-runtime); di Linux dan macOS, jalankan sebagai [pengguna non-root](#skip-all-checks-with-bypasspermissions-mode) | Cloud sessions mengabaikan mode ini dari file pengaturan. Dalam jalankan `-p` ini, [beberapa panggilan yang masih akan meminta](#skip-all-checks-with-bypasspermissions-mode) ditolak sebagai gantinya |62| Jalankan sepenuhnya tanpa pengawasan di dalam kontainer | `claude -p "<prompt>" --dangerously-skip-permissions` | Diperlukan: kontainer, VM, atau [runtime sandbox](/docs/id/sandbox-environments#sandbox-runtime); di Linux dan macOS, jalankan sebagai [pengguna non-root](#skip-all-checks-with-bypasspermissions-mode) | Cloud sessions mengabaikan mode ini dari file pengaturan. Dalam jalankan `-p` ini, [beberapa panggilan yang masih akan meminta](#skip-all-checks-with-bypasspermissions-mode) ditolak sebagai gantinya |

63 63 


81 81 

82Default `auto` bawaan memerlukan Claude Code v2.1.228 atau lebih baru di macOS, Linux, dan WSL, dan v2.1.233 atau lebih baru di Windows asli. Pada versi sebelumnya, default bawaan adalah Manual.82Default `auto` bawaan memerlukan Claude Code v2.1.228 atau lebih baru di macOS, Linux, dan WSL, dan v2.1.233 atau lebih baru di Windows asli. Pada versi sebelumnya, default bawaan adalah Manual.

83 83 

84Default bawaan bergantung pada cara Anda menjalankan Claude Code, pada paket Anda, dan pada apakah Claude Code dapat mengambil flag fiturnya. Baris pertama yang cocok dengan sesi Anda berlaku. Tabel mencakup sesi yang Anda mulai di terminal atau melalui ekstensi VS Code; untuk aplikasi desktop dan claude.ai, lihat tab Desktop dan Web dalam [Alihkan mode izin](#switch-permission-modes).84Default bawaan bergantung pada cara Anda menjalankan Claude Code. Baris pertama yang cocok dengan sesi Anda berlaku. Tabel mencakup sesi yang Anda mulai di terminal atau melalui ekstensi VS Code; untuk aplikasi desktop dan claude.ai, lihat tab Desktop dan Web dalam [Alihkan mode izin](#switch-permission-modes).

85 85 

86| Cara Anda menjalankan Claude Code | Mode izin awal bawaan |86| Cara Anda menjalankan Claude Code | Mode izin awal bawaan |

87| :- | :- |87| :- | :- |

88| File pengaturan apa pun menetapkan `disableAutoMode` ke `"disable"` | `default` |88| File pengaturan apa pun menetapkan `disableAutoMode` ke `"disable"` | `default` |

89| [Pengambilan flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching) mati | `default` |

90| [Sesi pertama Anda setelah Anda memasang Claude Code atau upgrade](/docs/id/env-vars#first-session-after-an-install-or-upgrade) ke versi yang menambahkan default ini, kecuali, setelah instalasi segar, Claude Code mengambil flag tepat waktu | `default` |

91| `claude -p` atau [Agent SDK](/docs/id/agent-sdk/permissions) | `default` |89| `claude -p` atau [Agent SDK](/docs/id/agent-sdk/permissions) | `default` |

92| Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), atau sesi [Claude apps gateway](/docs/id/claude-apps-gateway) yang masuk | `default` |90| Di terminal atau melalui [ekstensi VS Code](/docs/id/vs-code) | `auto` dengan Claude Code v2.1.283 atau lebih baru; pada versi sebelumnya, `auto` pada paket Pro, Max, atau Team dalam sesi yang [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), dan `default` sebaliknya |

93| Paket Pro, Max, atau Team, di terminal atau melalui [ekstensi VS Code](/docs/id/vs-code) | `auto` |

94| Paket Enterprise atau kunci API Claude Console | `default` |

95 91 

96Ketika pengambilan flag fitur mati, atau dalam [sesi pertama setelah instalasi atau upgrade](/docs/id/env-vars#first-session-after-an-install-or-upgrade) di mana flag belum tiba, ekstensi VS Code mengabaikan setiap file pengaturan saat memilih mode izin awal.92Dalam [sesi pertama Anda setelah instalasi atau upgrade](/docs/id/env-vars#first-session-after-an-install-or-upgrade), Claude Code dapat memilih mode izin awal sebelum flag fiturnya tiba. Sesi itu dapat dimulai dalam mode izin yang berbeda dari yang diberikan tabel, dan sesi berikutnya Anda cocok dengan tabel.

97 93 

98Ketika flag, file pengaturan, atau default bawaan memilih `auto` tetapi mode auto tidak tersedia untuk sesi, Claude Code memulai sesi dalam Manual sebagai gantinya. Mode auto tidak tersedia ketika sesi tidak memenuhi [persyaratan ketersediaan](#eliminate-prompts-with-auto-mode), seperti file pengaturan mematikannya atau model yang tidak mendukungnya, atau ketika Anthropic telah mematikannya sisi server.94Ketika flag, file pengaturan, atau default bawaan memilih `auto` tetapi mode auto tidak tersedia untuk sesi, Claude Code memulai sesi dalam Manual sebagai gantinya. Mode auto tidak tersedia ketika sesi tidak memenuhi [persyaratan ketersediaan](#eliminate-prompts-with-auto-mode), seperti file pengaturan mematikannya atau model yang tidak mendukungnya, atau ketika Anthropic telah mematikannya sisi server.

99 95 


177 173 

178 1. `claudeCode.initialPermissionMode`174 1. `claudeCode.initialPermissionMode`

179 2. Mode yang terakhir Anda pilih dari indikator mode, jika itu Manual, Edit secara otomatis, atau Auto. Memilih Plan atau Bypass permissions berlaku hanya untuk percakapan itu175 2. Mode yang terakhir Anda pilih dari indikator mode, jika itu Manual, Edit secara otomatis, atau Auto. Memilih Plan atau Bypass permissions berlaku hanya untuk percakapan itu

180 3. `permissions.defaultMode` dari [pengaturan terkelola](/docs/id/managed-settings) atau `~/.claude/settings.json`, pada paket Pro, Max, dan Team dengan [pengambilan flag fitur](#which-mode-a-session-starts-in) tersedia176 3. `permissions.defaultMode` dari [pengaturan terkelola](/docs/id/managed-settings) atau `~/.claude/settings.json`

181 4. [Default bawaan](#which-mode-a-session-starts-in) untuk paket, penyedia, dan pengaturan organisasi Anda177 4. [Default bawaan](#which-mode-a-session-starts-in) untuk paket, penyedia, dan pengaturan organisasi Anda

182 178 

183 Ekstensi tidak pernah membaca `.claude/settings.json` atau `.claude/settings.local.json` proyek untuk mode izin awal, dan dalam percakapan yang tidak memenuhi kondisi item 3 itu tidak membaca file pengaturan sama sekali. Ketika `claudeCode.claudeProcessWrapper` diatur, item 3 dan 4 juga tidak berlaku: percakapan itu dimulai dalam Manual kecuali item 1 atau item 2 menetapkan mode izin.179 Ekstensi tidak pernah membaca `.claude/settings.json` atau `.claude/settings.local.json` proyek untuk mode izin awal. Ketika `claudeCode.claudeProcessWrapper` diatur, item 3 dan 4 tidak berlaku: percakapan itu dimulai dalam Manual kecuali item 1 atau item 2 menetapkan mode izin.

180 

181 Sebelum v2.1.283, item 3 berlaku hanya pada paket Pro, Max, dan Team dalam sesi yang [mengambil flag fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching).

184 182 

185 Auto muncul di indikator mode ketika [mode auto tersedia](#eliminate-prompts-with-auto-mode).183 Auto muncul di indikator mode ketika [mode auto tersedia](#eliminate-prompts-with-auto-mode).

186 184 


214 Gunakan dropdown mode di sebelah kotak prompt di [claude.ai/code](https://claude.ai/code) atau di aplikasi mobile. Prompt izin muncul di claude.ai untuk persetujuan. Mode mana yang muncul bergantung pada di mana sesi berjalan:212 Gunakan dropdown mode di sebelah kotak prompt di [claude.ai/code](https://claude.ai/code) atau di aplikasi mobile. Prompt izin muncul di claude.ai untuk persetujuan. Mode mana yang muncul bergantung pada di mana sesi berjalan:

215 213 

216 * **[Sesi cloud](/docs/id/claude-code-on-the-web)**: Accept edits, Plan, dan Auto. Accept edits sesuai dengan mode `default`: sesi cloud pra-menyetujui pengeditan file terlepas dari mode, jadi dropdown menampilkan Accept edits alih-alih Manual. Sesi cloud masih menghormati `defaultMode: "acceptEdits"` dari pengaturan. Mode Auto muncul hanya ketika organisasi Anda mengizinkannya dan model yang dipilih mendukungnya. Bypass permissions tidak tersedia.214 * **[Sesi cloud](/docs/id/claude-code-on-the-web)**: Accept edits, Plan, dan Auto. Accept edits sesuai dengan mode `default`: sesi cloud pra-menyetujui pengeditan file terlepas dari mode, jadi dropdown menampilkan Accept edits alih-alih Manual. Sesi cloud masih menghormati `defaultMode: "acceptEdits"` dari pengaturan. Mode Auto muncul hanya ketika organisasi Anda mengizinkannya dan model yang dipilih mendukungnya. Bypass permissions tidak tersedia.

217 * **[Sesi Remote Control](/docs/id/remote-control)** di mesin lokal Anda: Manual, Accept edits, dan Plan. Anda tidak dapat memilih Auto atau Bypass permissions dari aplikasi.215 * **[Sesi Remote Control](/docs/id/remote-control)** di mesin lokal Anda: Manual, Accept edits, dan Plan untuk sesi yang Anda mulai sendiri, dan Anda tidak dapat memilih Auto atau Bypass permissions dari aplikasi. Untuk thread proyek yang berjalan di komputer Anda, lihat [Jalankan thread di komputer Anda sendiri](/docs/id/claude-projects#run-a-thread-on-your-own-computer).

218 * Kecuali untuk Bypass permissions, dropdown menampilkan mode izin yang sesi lokal gunakan, termasuk yang diatur dari terminal. Itu diperbarui ketika mode izin berubah di aplikasi atau di terminal. Sesi tidak pernah melaporkan Bypass permissions ke claude.ai, jadi beralih ke dalamnya dari terminal tidak mengubah apa yang ditampilkan dropdown.216 * Kecuali untuk Bypass permissions, dropdown menampilkan mode izin yang sesi lokal gunakan, termasuk yang diatur dari terminal. Itu diperbarui ketika mode izin berubah di aplikasi atau di terminal.

219 * Sesi yang dihosting oleh [aplikasi desktop](/docs/id/desktop) atau [ekstensi VS Code](/docs/id/vs-code) melaporkan perubahan mode izin ke claude.ai saat terjadi, sama seperti sesi yang dihosting di terminal.217 * Sesi yang dihosting oleh [aplikasi desktop](/docs/id/desktop) atau [ekstensi VS Code](/docs/id/vs-code) melaporkan perubahan mode izin ke claude.ai saat terjadi, sama seperti sesi yang dihosting di terminal.

220 * Sebelum v2.1.202, sesi yang terhubung dengan `/remote-control` atau `claude --remote-control` tidak melaporkan mode mereka sama sekali, jadi claude.ai dan aplikasi mobile dapat menampilkan mode yang sesi tidak gunakan. Ketidaksesuaian hanya mempengaruhi label. Claude Code menghasilkan prompt izin dari mode izin aktual sesi, dan mereka masih muncul di aplikasi untuk persetujuan.218 * Sebelum v2.1.202, sesi yang terhubung dengan `/remote-control` atau `claude --remote-control` tidak melaporkan mode izin mereka sama sekali, jadi claude.ai dan aplikasi mobile dapat menampilkan mode izin yang sesi tidak gunakan. Ketidaksesuaian hanya mempengaruhi label. Claude Code menghasilkan prompt izin dari mode izin aktual sesi, dan mereka masih muncul di aplikasi untuk persetujuan.

221 219 

222 Untuk Remote Control, mesin lokal yang menjalankan sesi harus masuk dengan akun claude.ai Anda; kunci API tidak didukung. Anda juga dapat menetapkan mode izin awal saat meluncurkan sesi lokal itu:220 Untuk Remote Control, mesin lokal yang menjalankan sesi harus masuk dengan akun claude.ai Anda; kunci API tidak didukung. Anda juga dapat menetapkan mode izin awal saat meluncurkan sesi lokal itu:

223 221 


233 231 

234Mode `acceptEdits` memungkinkan Claude membuat dan mengedit file di direktori kerja Anda tanpa meminta. Bilah status menunjukkan `⏵⏵ accept edits on` saat mode ini aktif.232Mode `acceptEdits` memungkinkan Claude membuat dan mengedit file di direktori kerja Anda tanpa meminta. Bilah status menunjukkan `⏵⏵ accept edits on` saat mode ini aktif.

235 233 

236Selain pengeditan file, mode `acceptEdits` auto-approve perintah Bash filesystem umum: `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp`, dan `sed`. Perintah ini juga auto-approved ketika diawali dengan variabel lingkungan aman seperti `LANG=C` atau `NO_COLOR=1`, atau pembungkus proses seperti `timeout`, `nice`, atau `nohup`. Seperti pengeditan file, auto-approval hanya berlaku untuk jalur di dalam direktori kerja Anda atau `additionalDirectories`. Jalur di luar cakupan itu, penulisan ke [jalur yang dilindungi](#protected-paths), penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths), dan semua perintah Bash lainnya kecuali [set bawaan read-only](/docs/id/permissions#read-only-commands) masih meminta.234Selain pengeditan file, mode `acceptEdits` auto-approve perintah Bash filesystem umum: `mkdir`, `touch`, `rm`, `rmdir`, `mv`, `cp`, dan `sed`. Perintah ini juga auto-approved ketika diawali dengan variabel lingkungan aman seperti `LANG=C` atau `NO_COLOR=1`, atau pembungkus proses seperti `timeout`, `nice`, atau `nohup`. Seperti pengeditan file, auto-approval hanya berlaku untuk jalur di dalam direktori kerja Anda atau `additionalDirectories`.

235 

236Setiap jalur juga melalui [pemeriksaan symlink](/docs/id/permissions#symlinks), jadi penulisan yang diselesaikan di luar cakupan itu tidak auto-approved juga. Jalur di luar cakupan itu, penulisan ke [jalur yang dilindungi](#protected-paths), penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths), dan semua perintah Bash lainnya kecuali [set bawaan read-only](/docs/id/permissions#read-only-commands) masih meminta.

237 237 

238Ketika [alat PowerShell](/docs/id/tools-reference#powershell-tool) diaktifkan, mode `acceptEdits` juga auto-approve `Set-Content`, `Add-Content`, `Clear-Content`, dan `Remove-Item` pada jalur dalam cakupan, bersama dengan alias umum mereka. Aturan cakupan dan jalur yang dilindungi yang sama berlaku, dan `Remove-Item` mendapat [pemeriksaannya sendiri](#remove-item-in-powershell). Argumen posisional yang berisi karakter kutip, seperti apostrof dalam `Set-Content .\notes.txt "It's done"`, masih meminta bahkan pada jalur dalam cakupan, karena Claude Code tidak dapat secara statis memvalidasi argumen yang pembacaan kutip dan tidak dikutipnya berbeda. Lewatkan konten melalui parameter bernama seperti `-Value` untuk menghindari prompt.238Ketika [alat PowerShell](/docs/id/tools-reference#powershell-tool) diaktifkan, mode `acceptEdits` juga auto-approve `Set-Content`, `Add-Content`, `Clear-Content`, dan `Remove-Item` pada jalur dalam cakupan, bersama dengan alias umum mereka. Aturan cakupan dan jalur yang dilindungi yang sama berlaku, dan `Remove-Item` mendapat [pemeriksaannya sendiri](#remove-item-in-powershell). Argumen posisional yang berisi karakter kutip, seperti apostrof dalam `Set-Content .\notes.txt "It's done"`, masih meminta bahkan pada jalur dalam cakupan, karena Claude Code tidak dapat secara statis memvalidasi argumen yang pembacaan kutip dan tidak dikutipnya berbeda. Lewatkan konten melalui parameter bernama seperti `-Value` untuk menghindari prompt.

239 239 


246```246```

247 247 

248<h2 id="analyze-before-you-edit-with-plan-mode">248<h2 id="analyze-before-you-edit-with-plan-mode">

249 Analisis sebelum Anda mengedit dengan mode rencana249 Analisis sebelum Anda mengedit dengan Plan Mode

250</h2>250</h2>

251 251 

252Plan Mode memberi tahu Claude untuk meneliti dan mengusulkan perubahan tanpa membuatnya. Claude membaca file, menjalankan perintah shell untuk menjelajahi, dan menulis rencana, tetapi tidak mengedit sumber Anda. Kecuali dalam sesi terminal interaktif dengan [bypass permissions tersedia](#skip-all-checks-with-bypasspermissions-mode), pengeditan tetap diblokir sampai Anda menyetujui rencana.252Plan Mode memberi tahu Claude untuk meneliti dan mengusulkan perubahan tanpa membuatnya. Claude membaca file, menjalankan perintah shell untuk menjelajahi, dan menulis rencana, tetapi tidak mengedit sumber Anda. Kecuali dalam sesi terminal interaktif dengan [bypass permissions tersedia](#skip-all-checks-with-bypasspermissions-mode), pengeditan tetap diblokir sampai Anda menyetujui rencana.

253 253 

254Ketika [auto mode](/docs/id/auto-mode-config) tersedia dan pengaturan `useAutoModeDuringPlan` aktif, yang merupakan default, pengklasifikasi meninjau perintah shell selama perencanaan alih-alih meminta Anda. Perintah yang disetujui berjalan, dan yang ditolak diblokir. Jika tidak, perintah di luar [set bawaan read-only](/docs/id/permissions#read-only-commands) meminta persetujuan, termasuk ketika [auto-allow mode](/docs/id/sandboxing#sandbox-modes) sandbox diaktifkan. Dalam sesi terminal interaktif dengan bypass permissions tersedia, baik pengklasifikasi maupun prompt tidak berlaku untuk perintah perencanaan; [Lewati semua pemeriksaan dengan bypassPermissions mode](#skip-all-checks-with-bypasspermissions-mode) mencakup beberapa hal yang masih meminta di sana. Dalam v2.1.212 hingga v2.1.217, sesi tanpa bypass permissions meminta untuk setiap perintah di luar set read-only, apakah atau tidak auto mode tersedia.254Apa yang terjadi pada perintah shell selama perencanaan tergantung pada sesi, dan yang pertama dari kasus-kasus ini yang cocok berlaku:

255 

256* **Sesi terminal interaktif dengan bypass permissions tersedia**: baik pengklasifikasi maupun prompt tidak berlaku untuk perintah perencanaan. [Lewati semua pemeriksaan dengan bypassPermissions mode](#skip-all-checks-with-bypasspermissions-mode) mencakup beberapa hal yang masih meminta di sana.

257* **[Auto mode](/docs/id/auto-mode-config) tersedia dan pengaturan `useAutoModeDuringPlan` aktif**, yang merupakan default: pengklasifikasi meninjau perintah shell selain [critical-path removals](#critical-paths) alih-alih meminta Anda. Perintah yang disetujui berjalan, dan yang ditolak diblokir.

258* **Auto mode tidak tersedia, atau `useAutoModeDuringPlan` mati**: perintah di luar [set bawaan read-only](/docs/id/permissions#read-only-commands) meminta persetujuan, termasuk ketika [auto-allow mode](/docs/id/sandboxing#sandbox-modes) sandbox diaktifkan.

255 259 

256Masukkan mode rencana dengan menekan `Shift+Tab` atau mengawali prompt tunggal dengan `/plan`. Anda juga dapat memulai dalam mode rencana dari CLI:260Masukkan Plan Mode dengan menekan `Shift+Tab` atau mengawali prompt tunggal dengan `/plan`. Anda juga dapat memulai dalam Plan Mode dari CLI:

257 261 

258```bash theme={null}262```bash theme={null}

259claude --permission-mode plan263claude --permission-mode plan

260```264```

261 265 

262Tekan `Shift+Tab` lagi untuk meninggalkan mode rencana tanpa menyetujui rencana.266Tekan `Shift+Tab` lagi untuk meninggalkan Plan Mode tanpa menyetujui rencana.

263 267 

264<h3 id="review-and-approve-a-plan">268<h3 id="review-and-approve-a-plan">

265 Tinjau dan setujui rencana269 Tinjau dan setujui rencana


267 271 

268Ketika rencana siap, Claude menyajikannya dan menanyakan cara melanjutkan. Dari prompt itu Anda dapat memilih:272Ketika rencana siap, Claude menyajikannya dan menanyakan cara melanjutkan. Dari prompt itu Anda dapat memilih:

269 273 

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.274* **Ya, dan gunakan auto mode**: setujui dan mulai dalam [auto mode](#eliminate-prompts-with-auto-mode). Jika auto mode 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.275* **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.276* **Tidak, terus merencanakan**: tetap dalam Plan Mode dan beri tahu Claude apa yang harus diubah.

273 277 

274Menyetujui rencana keluar dari mode rencana dan mengalihkan sesi ke mode izin yang dijelaskan setiap opsi persetujuan, sehingga Claude mulai mengedit. Untuk merencanakan lagi, siklus kembali ke mode rencana dengan `Shift+Tab`, atau awali prompt berikutnya dengan `/plan`.278Menyetujui rencana keluar dari Plan Mode dan mengalihkan sesi ke mode izin yang dijelaskan setiap opsi persetujuan, sehingga Claude mulai mengedit. Untuk merencanakan lagi, siklus kembali ke Plan Mode dengan `Shift+Tab`, atau awali prompt berikutnya dengan `/plan`.

275 279 

276Tekan `Ctrl+G` untuk membuka rencana yang diusulkan di editor teks default Anda dan mengeditnya langsung sebelum Claude melanjutkan. Ketika [`showClearContextOnPlanAccept`](/docs/id/settings-reference#showclearcontextonplanaccept) diaktifkan, daftar mendapat opsi pertama yang menyetujui rencana dan menghapus konteks perencanaan.280Tekan `Ctrl+G` untuk membuka rencana yang diusulkan di editor teks default Anda dan mengeditnya langsung sebelum Claude melanjutkan. Ketika [`showClearContextOnPlanAccept`](/docs/id/settings-reference#showclearcontextonplanaccept) diaktifkan, daftar mendapat opsi pertama yang menyetujui rencana dan menghapus konteks perencanaan.

277 281 

278Menerima rencana juga memberi sesi [judul yang dihasilkan](/docs/id/sessions#name-your-sessions) berdasarkan rencana, kecuali Anda telah menamai sesi.282Menerima rencana juga memberi sesi [judul yang dihasilkan](/docs/id/sessions#name-your-sessions) berdasarkan rencana, kecuali Anda telah menamai sesi.

279 283 

280<h3 id="set-plan-mode-as-the-default">284<h3 id="set-plan-mode-as-the-default">

281 Atur mode rencana sebagai default285 Atur Plan Mode sebagai default

282</h3>286</h3>

283 287 

284Untuk membuat mode rencana default untuk sesi terminal proyek, atur `defaultMode` ke `plan` dalam `.claude/settings.json`, ditempatkan seperti contoh di bawah [Mulai dalam mode izin yang berbeda](#start-in-a-different-mode) menunjukkan. Percakapan yang dimulai [ekstensi VS Code](/docs/id/vs-code) tidak membaca pengaturan proyek untuk mode izin awal. Di sana, atur `claudeCode.initialPermissionMode` ke `plan` dalam pengaturan pengguna VS Code Anda sebagai gantinya.288Untuk membuat Plan Mode default untuk sesi terminal proyek, atur `defaultMode` ke `plan` dalam `.claude/settings.json`, ditempatkan seperti contoh di bawah [Mulai dalam mode izin yang berbeda](#start-in-a-different-mode) menunjukkan. Percakapan yang dimulai [ekstensi VS Code](/docs/id/vs-code) tidak membaca pengaturan proyek untuk mode izin awal. Di sana, atur `claudeCode.initialPermissionMode` ke `plan` dalam pengaturan pengguna VS Code Anda sebagai gantinya.

285 289 

286<h2 id="eliminate-prompts-with-auto-mode">290<h2 id="eliminate-prompts-with-auto-mode">

287 Hilangkan permintaan izin dengan mode otomatis291 Hilangkan permintaan izin dengan mode otomatis


289 293 

290Mode otomatis memungkinkan Claude untuk dieksekusi tanpa permintaan izin rutin. Model pengklasifikasi terpisah meninjau tindakan sebelum dijalankan, memblokir apa pun yang melampaui permintaan Anda, menargetkan infrastruktur yang tidak dikenali, atau tampak didorong oleh konten bermusuhan yang dibaca Claude. [Aturan ask](/docs/id/permissions#manage-permissions) eksplisit masih memaksa permintaan.294Mode otomatis memungkinkan Claude untuk dieksekusi tanpa permintaan izin rutin. Model pengklasifikasi terpisah meninjau tindakan sebelum dijalankan, memblokir apa pun yang melampaui permintaan Anda, menargetkan infrastruktur yang tidak dikenali, atau tampak didorong oleh konten bermusuhan yang dibaca Claude. [Aturan ask](/docs/id/permissions#manage-permissions) eksplisit masih memaksa permintaan.

291 295 

292Pada paket Pro, Max, dan Team, mode otomatis adalah [mode izin awal bawaan](#which-mode-a-session-starts-in).296Dengan Claude Code v2.1.283 atau lebih baru, mode otomatis adalah [mode izin awal bawaan](#which-mode-a-session-starts-in) untuk sesi terminal interaktif dan VS Code di setiap paket dan penyedia. Pada versi sebelumnya, ini adalah mode izin awal bawaan hanya pada paket Pro, Max, dan Team.

293 297 

294Pengklasifikasi juga meninjau setiap pesan yang dikirim Claude ke agen lain dengan [`SendMessage`](/docs/id/tools-reference), baik teks biasa atau pesan [tim agen](/docs/id/agent-teams) terstruktur, sebelum Claude Code mengirimkannya, baik dalam mode otomatis maupun dalam [mode rencana saat pengklasifikasi meninjau perintah](#analyze-before-you-edit-with-plan-mode); tinjauan pengiriman memerlukan Claude Code v2.1.222 atau lebih baru.298Pengklasifikasi juga meninjau setiap pesan yang dikirim Claude ke agen lain dengan [`SendMessage`](/docs/id/tools-reference), baik teks biasa atau pesan [tim agen](/docs/id/agent-teams) terstruktur, sebelum Claude Code mengirimkannya, baik dalam mode otomatis maupun dalam [mode rencana saat pengklasifikasi meninjau perintah](#analyze-before-you-edit-with-plan-mode); tinjauan pengiriman memerlukan Claude Code v2.1.222 atau lebih baru.

295 299 

296Pengklasifikasi juga meninjau dan menyetujui atau memblokir penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths), seperti `rm -rf /` dan `rm -rf ~`, termasuk ketika penghapusan berada di dalam substitusi perintah atau proses.300Secara default, pengklasifikasi tidak meninjau penghapusan `rm` dan `rmdir` yang menargetkan jalur kritis, seperti `rm -rf /` atau `rm -rf ~`. [Jalur kritis](#critical-paths) mencakup apa yang terjadi pada mereka dalam setiap mode izin.

297 301 

298Mode otomatis juga mendorong Claude untuk terus bekerja tanpa berhenti untuk pertanyaan klarifikasi, meskipun Claude masih bertanya ketika permintaan Anda atau keterampilan secara eksplisit bergantung padanya. Untuk perilaku otonom yang lebih kuat dalam mode yang masih meminta Anda, atur [gaya output Proaktif](/docs/id/output-styles) sebagai gantinya.302Mode otomatis juga mendorong Claude untuk terus bekerja tanpa berhenti untuk pertanyaan klarifikasi, meskipun Claude masih bertanya ketika permintaan Anda atau keterampilan secara eksplisit bergantung padanya. Untuk perilaku otonom yang lebih kuat dalam mode yang masih meminta Anda, atur [gaya output Proaktif](/docs/id/output-styles) sebagai gantinya.

299 303 


305 309 

306* **Paket**: Semua paket.310* **Paket**: Semua paket.

307* **Organisasi**: pada Team dan Enterprise, mode otomatis tersedia secara default. Administrator dapat mematikannya untuk organisasi dengan menetapkan `permissions.disableAutoMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings).311* **Organisasi**: pada Team dan Enterprise, mode otomatis tersedia secara default. Administrator dapat mematikannya untuk organisasi dengan menetapkan `permissions.disableAutoMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings).

308* **Model**: pada Anthropic API dan [Claude Platform di AWS](/docs/id/claude-platform-on-aws), Claude Opus 4.6 atau lebih baru, Sonnet 4.6 atau lebih baru, atau [model Fable](/docs/id/model-config#work-with-fable). Di Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, hanya Claude Sonnet 5, Opus 4.7 atau lebih baru, dan model Fable. Model yang lebih lama, termasuk Sonnet 4.5, Opus 4.5, Haiku, dan model claude-3, tidak didukung di penyedia mana pun.312* **Model**: pada Anthropic API dan [Claude Platform di AWS](/docs/id/claude-platform-on-aws), Claude Opus 4.6 atau lebih baru, Sonnet 4.6 atau lebih baru, atau [model Fable](/docs/id/model-config#work-with-fable). Di Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, hanya Claude Sonnet 5 atau lebih baru, Opus 4.7 atau lebih baru, dan model Fable. Model yang lebih lama, termasuk Sonnet 4.5, Opus 4.5, Haiku, dan model claude-3, tidak didukung di penyedia mana pun.

309* **Penyedia**: tersedia secara default pada Anthropic API, Claude Platform di AWS, Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi gateway aplikasi Claude yang masuk.313* **Penyedia**: tersedia secara default pada Anthropic API, Claude Platform di AWS, Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi gateway aplikasi Claude yang masuk.

310 314 

311Jika Claude Code melaporkan mode otomatis tidak tersedia, pertama periksa persyaratan ini dan apakah file pengaturan apa pun menetapkan [`disableAutoMode`](/docs/id/settings-reference#disableautomode). Anthropic juga dapat mematikan mode otomatis di sisi server, atau server dapat menolak mode otomatis untuk akun Anda. Sesi yang menerima salah satu jawaban menjaga mode otomatis tetap mati sampai sesi berakhir, jadi mulai sesi baru nanti.315Jika Claude Code melaporkan mode otomatis tidak tersedia, pertama periksa persyaratan ini dan apakah file pengaturan apa pun menetapkan [`disableAutoMode`](/docs/id/settings-reference#disableautomode). Anthropic juga dapat mematikan mode otomatis di sisi server, atau server dapat menolak mode otomatis untuk akun Anda. Sesi yang menerima salah satu jawaban menjaga mode otomatis tetap mati sampai sesi berakhir, jadi mulai sesi baru nanti.


318 Mode otomatis di Bedrock, Agent Platform, atau Foundry322 Mode otomatis di Bedrock, Agent Platform, atau Foundry

319</h3>323</h3>

320 324 

321Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Agent Platform Google Cloud](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, mode otomatis muncul dalam siklus `Shift+Tab` secara default. Muncul dalam siklus tidak mengubah mode izin yang dimulai sesi: di penyedia ini, sesi terminal dimulai dalam [`defaultMode`](/docs/id/settings-reference#permissions-defaultmode) Anda, yang Manual kecuali Anda mengubahnya, dan percakapan dalam [ekstensi VS Code](/docs/id/vs-code) dimulai dalam Manual kecuali `claudeCode.initialPermissionMode` atau mode yang Anda pilih dalam ekstensi menetapkan satu. Hanya Claude Sonnet 5, Opus 4.7 atau lebih baru, dan model Fable yang didukung di penyedia ini.325Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Agent Platform Google Cloud](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, mode otomatis tersedia secara default. Dengan Claude Code v2.1.283 atau lebih baru, ini juga merupakan [mode izin awal bawaan](#which-mode-a-session-starts-in) untuk sesi terminal interaktif dan [VS Code](/docs/id/vs-code). Untuk memilih mode izin awal sendiri, atur `permissions.defaultMode` seperti [Mulai dalam mode izin yang berbeda](#start-in-a-different-mode) menjelaskan, atau pilih mode izin dari indikator mode ekstensi VS Code.

322 326 

323Untuk membuat mode otomatis mode izin awal default, atur `"permissions": {"defaultMode": "auto"}` dalam pengaturan pengguna atau terkelola. Dalam sesi yang dimulai ekstensi VS Code, pilih **Auto** dari indikator mode sebagai gantinya. [Beralih mode izin](#switch-permission-modes) mencakup apa yang mengalahkan pilihan itu.327Hanya Claude Sonnet 5 atau lebih baru, Opus 4.7 atau lebih baru, dan model Fable yang didukung di penyedia ini. Pada model lain apa pun, sesi dimulai dalam Manual sebagai gantinya.

324 

325Pemeriksaan [`/doctor`](/docs/id/commands#all-commands) menyarankan default pengaturan pengguna ini di penyedia ini dengan cara yang sama seperti pada Anthropic API.

326 328 

327Untuk mencegah pengembang menggunakan mode otomatis, atur `disableAutoMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings). Ini menghapus `auto` dari siklus `Shift+Tab`, dan sesi yang dimulai dengan `--permission-mode auto` dimulai dalam Manual sebagai gantinya. Sesi yang sudah berjalan dalam mode otomatis meninggalkannya ketika pengaturan mencapai sesi itu dari [sumber yang diterapkan admin](/docs/id/managed-settings#which-managed-source-claude-code-uses), dan menampilkan `auto mode disabled by settings`. Sebelum v2.1.251, sesi yang berjalan menjaga mode otomatis sampai berakhir.329Untuk mencegah pengembang menggunakan mode otomatis, atur `disableAutoMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings). Ini menghapus `auto` dari siklus `Shift+Tab`, dan sesi yang dimulai dengan `--permission-mode auto` dimulai dalam Manual sebagai gantinya. Sesi yang sudah berjalan dalam mode otomatis meninggalkannya ketika pengaturan mencapai sesi itu dari [sumber yang diterapkan admin](/docs/id/managed-settings#which-managed-source-claude-code-uses), dan menampilkan `auto mode disabled by settings`. Sebelum v2.1.251, sesi yang berjalan menjaga mode otomatis sampai berakhir.

328 330 


343* **Server tidak meninjau sesi**: respons selesai tanpa hasil tinjauan, atau server menjawab bahwa itu tidak meninjau sesi ini. Penyebab paling umum adalah gateway LLM atau proxy yang menghilangkan permintaan untuk tinjauan atau hasilnya, dan platform, wilayah, atau kredensial yang belum memiliki pemeriksaan sisi server. Claude Code kembali ke permintaan pengklasifikasi sendiri. Setelah fallback itu berlaku untuk sisa sesi, itu menunjukkan [pemberitahuan tentang biaya permintaan pengklasifikasi](/docs/id/auto-mode-classifier-billing) pada akun di mana permintaan tersebut ditagih.345* **Server tidak meninjau sesi**: respons selesai tanpa hasil tinjauan, atau server menjawab bahwa itu tidak meninjau sesi ini. Penyebab paling umum adalah gateway LLM atau proxy yang menghilangkan permintaan untuk tinjauan atau hasilnya, dan platform, wilayah, atau kredensial yang belum memiliki pemeriksaan sisi server. Claude Code kembali ke permintaan pengklasifikasi sendiri. Setelah fallback itu berlaku untuk sisa sesi, itu menunjukkan [pemberitahuan tentang biaya permintaan pengklasifikasi](/docs/id/auto-mode-classifier-billing) pada akun di mana permintaan tersebut ditagih.

344* **Server tidak memberikan vonis untuk tindakan**: Claude Code menolak tindakan daripada menjalankannya tanpa tinjauan. Pada koneksi apa pun, ini terjadi ketika respons berakhir sebelum hasil tinjauan tiba atau hasil tiba dalam bentuk yang tidak dapat dibaca Claude Code. Gateway LLM atau proxy yang memotong respons pendek atau menulis ulang hasilnya dapat menyebabkan salah satu. Pada koneksi langsung ke Anthropic API, itu juga terjadi ketika pemeriksaan server gagal untuk tindakan, misalnya dengan waktu habis. [Server tidak mengembalikan vonis keamanan](/docs/id/errors#the-server-returned-no-safety-verdict) mencakup pesan penolakan, apa yang terjadi ketika penolakan berulang, dan apa yang harus dilakukan.346* **Server tidak memberikan vonis untuk tindakan**: Claude Code menolak tindakan daripada menjalankannya tanpa tinjauan. Pada koneksi apa pun, ini terjadi ketika respons berakhir sebelum hasil tinjauan tiba atau hasil tiba dalam bentuk yang tidak dapat dibaca Claude Code. Gateway LLM atau proxy yang memotong respons pendek atau menulis ulang hasilnya dapat menyebabkan salah satu. Pada koneksi langsung ke Anthropic API, itu juga terjadi ketika pemeriksaan server gagal untuk tindakan, misalnya dengan waktu habis. [Server tidak mengembalikan vonis keamanan](/docs/id/errors#the-server-returned-no-safety-verdict) mencakup pesan penolakan, apa yang terjadi ketika penolakan berulang, dan apa yang harus dilakukan.

345 347 

346Untuk melewati permintaan ke server dan selalu menggunakan permintaan pengklasifikasi Claude Code sendiri, atur [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/id/env-vars). Pada koneksi langsung ke Anthropic API, variabel memerlukan Claude Code v2.1.281 atau lebih baru. Menetapkannya ke `1` di sana mengaktifkan tinjauan server dalam sesi yang belum memilikinya, seperti sesi `-p` atau Agent SDK, kecuali Anda juga menetapkan `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Jika Anda menetapkan `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` dan membiarkan `CLAUDE_CODE_AUTO_MODE_SERVER` tidak ditetapkan, Claude Code juga berhenti meminta server.348Untuk melewati permintaan ke server dan selalu menggunakan permintaan pengklasifikasi Claude Code sendiri, atur [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/id/env-vars). Pada koneksi langsung ke Anthropic API, variabel memerlukan Claude Code v2.1.281 atau lebih baru. Menetapkannya ke `1` di sana mengaktifkan tinjauan server dalam sesi yang belum memilikinya, seperti sesi `-p` atau Agent SDK, kecuali Anda juga menetapkan `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`. Jika Anda menetapkan `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` dan membiarkan `CLAUDE_CODE_AUTO_MODE_SERVER` tidak ditetapkan, Claude Code juga berhenti meminta server, kecuali seperti [Nonaktifkan kemampuan pra-rilis](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) menjelaskan.

347 349 

348<h3 id="what-the-classifier-blocks-by-default">350<h3 id="what-the-classifier-blocks-by-default">

349 Apa yang diblokir pengklasifikasi secara default351 Apa yang diblokir pengklasifikasi secara default


407Claude Code v2.1.205 dan lebih baru juga memblokir ini secara default:409Claude Code v2.1.205 dan lebih baru juga memblokir ini secara default:

408 410 

409* Menulis ke transkrip sesi Claude Code, file riwayat `.jsonl` di bawah `~/.claude/projects/` atau direktori konfigurasi Anda yang dikonfigurasi, baik secara langsung maupun melalui perintah shell. Aturan juga mencakup baris metadata yang Claude Code tambahkan ke setiap entri transkrip untuk pemeriksaannya sendiri. Membaca transkrip tidak diblokir411* Menulis ke transkrip sesi Claude Code, file riwayat `.jsonl` di bawah `~/.claude/projects/` atau direktori konfigurasi Anda yang dikonfigurasi, baik secara langsung maupun melalui perintah shell. Aturan juga mencakup baris metadata yang Claude Code tambahkan ke setiap entri transkrip untuk pemeriksaannya sendiri. Membaca transkrip tidak diblokir

410* Penghapusan paksa rekursif seperti `rm -rf "$VAR"` atau `Remove-Item -Recurse -Force $dir` yang targetnya adalah variabel shell, atau glob yang berakar pada satu, yang tidak ditugaskan di mana pun dalam percakapan yang dilihat pengklasifikasi. Nilai datang hanya dari output perintah sebelumnya, yang tidak pernah diterima pengklasifikasi, jadi pengklasifikasi tidak dapat memverifikasi target penghapusan terhadap aturan penghapusan lainnya. Blok menghapus ketika Anda menyebutkan jalur pasti yang dihapus, atau ketika Claude menjalankan kembali penghapusan dengan jalur literal yang diselesaikan ditulis ke dalam perintah. Penghapusan yang targetnya dapat diselesaikan pengklasifikasi tidak terpengaruh. Target `Remove-Item` yang merupakan `*` telanjang atau berakhir dalam `/*` atau `\*` tidak pernah mencapai pengklasifikasi: Claude Code [menolaknya langsung](#remove-item-in-powershell)412* Penghapusan paksa rekursif seperti `rm -rf "$VAR"` atau `Remove-Item -Recurse -Force $dir` yang targetnya adalah variabel shell yang tidak ditugaskan di mana pun dalam percakapan yang dilihat pengklasifikasi, atau glob yang berakar pada satu. Nilai datang hanya dari output perintah sebelumnya, yang tidak pernah diterima pengklasifikasi, jadi pengklasifikasi tidak dapat memverifikasi target penghapusan terhadap aturan penghapusan lainnya. Blok menghapus ketika Anda menyebutkan jalur pasti yang dihapus, atau ketika Claude menjalankan kembali penghapusan dengan jalur literal yang diselesaikan ditulis ke dalam perintah. Penghapusan yang targetnya dapat diselesaikan pengklasifikasi tidak terpengaruh.

413 

414 Glob langsung di bawah variabel, seperti dalam `rm -rf "$VAR"/*`, adalah [jalur kritis](#critical-paths) sebagai gantinya. Target `Remove-Item` yang merupakan `*` telanjang atau berakhir dalam `/*` atau `\*` tidak pernah mencapai pengklasifikasi: Claude Code [menolaknya langsung](#remove-item-in-powershell).

411 415 

412Claude Code v2.1.257 dan lebih baru juga memblokir ini secara default:416Claude Code v2.1.257 dan lebih baru juga memblokir ini secara default:

413 417 


457* **Terus izinkan**: pembacaan berjalan, pembacaan kemudian di luar direktori kerja berjalan seperti sebelumnya, dan Claude Code mencatat jawaban Anda sehingga permintaan tidak muncul lagi461* **Terus izinkan**: pembacaan berjalan, pembacaan kemudian di luar direktori kerja berjalan seperti sebelumnya, dan Claude Code mencatat jawaban Anda sehingga permintaan tidak muncul lagi

458* **Blokir mulai sekarang**: pembacaan ditolak, dan Claude Code menetapkan [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) ke `true` dalam pengaturan pengguna Anda, yang membuat alat file menolak pembacaan tersebut dalam setiap sesi kemudian dan setiap mode izin. Untuk membiarkan Claude membaca jalur tersebut nanti, tambahkan direktorinya dengan `/add-dir` atau hapus pengaturannya.462* **Blokir mulai sekarang**: pembacaan ditolak, dan Claude Code menetapkan [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) ke `true` dalam pengaturan pengguna Anda, yang membuat alat file menolak pembacaan tersebut dalam setiap sesi kemudian dan setiap mode izin. Untuk membiarkan Claude membaca jalur tersebut nanti, tambahkan direktorinya dengan `/add-dir` atau hapus pengaturannya.

459* **Tanya lagi lain kali**: pembacaan ditolak, dan pembacaan berikutnya di luar direktori kerja meminta lagi463* **Tanya lagi lain kali**: pembacaan ditolak, dan pembacaan berikutnya di luar direktori kerja meminta lagi

464* **Ya, tetapi tanya lagi lain kali**: pembacaan berjalan, tidak ada yang disimpan, dan pembacaan berikutnya di luar direktori kerja meminta lagi

460 465 

461<h3 id="boundaries-you-state-in-conversation">466<h3 id="boundaries-you-state-in-conversation">

462 Batas yang Anda nyatakan dalam percakapan467 Batas yang Anda nyatakan dalam percakapan


482 487 

483Ketika mode otomatis tidak dapat menyetujui tindakan sesi Anda, apa yang terjadi tergantung pada kasusnya:488Ketika mode otomatis tidak dapat menyetujui tindakan sesi Anda, apa yang terjadi tergantung pada kasusnya:

484 489 

485* **Tindakan yang diblokir**: Claude Code menampilkan pemberitahuan dan mencantumkan tindakan dalam `/permissions` di bawah tab **Recently denied**, di mana Anda dapat menekan `r` untuk mencoba ulang dengan persetujuan manual. Ketika pengklasifikasi menghasilkan [tidak ada vonis pada tindakan](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action), karena pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi sendiri atau responsnya tidak diuraikan, Claude Code menolak tindakan tanpa pemberitahuan atau entri **Recently denied**.490* **Tindakan yang diblokir**: Claude Code menampilkan pemberitahuan dan mencantumkan tindakan dalam `/permissions` di bawah tab **Recently denied**, di mana Anda dapat menekan `r` untuk mencoba ulang dengan persetujuan manual.

486* **Blok berulang**: jika pengklasifikasi memblokir tindakan 3 kali berturut-turut atau 20 kali total, mode otomatis berhenti dan Claude Code melanjutkan permintaan. Menyetujui tindakan yang diminta melanjutkan mode otomatis. Ambang batas ini tidak dapat dikonfigurasi. Tindakan yang diizinkan apa pun mengatur ulang penghitung berturut-turut, sementara penghitung total bertahan untuk sesi dan mengatur ulang hanya ketika batasnya sendiri memicu fallback. Claude Code tidak menghitung penolakan terhadap ambang batas apa pun ketika [pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action); entri tertaut mencakup cara Claude Code menangani penolakan tersebut.491* **Blok berulang**: jika pengklasifikasi memblokir tindakan 3 kali berturut-turut atau 20 kali total, mode otomatis berhenti dan Claude Code melanjutkan permintaan. Menyetujui tindakan yang diminta melanjutkan mode otomatis. Lihat [Ambang batas blok berulang](#repeated-block-thresholds) untuk cara blok dihitung.

487* **Sesi yang tidak dapat meminta**: lari `-p` [non-interaktif](/docs/id/headless) tanpa [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tidak memiliki permintaan untuk kembali. Ketika blok berulang mencapai ambang batas, tindakan tidak berjalan dan Claude terus bekerja. Hal yang sama berlaku ketika [pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code tidak menghentikan lari dalam kedua kasus.492* **Tidak ada vonis dari pengklasifikasi**: ketika pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi sendiri, atau respons pengklasifikasi tidak diuraikan, Claude Code menolak tindakan tanpa pemberitahuan atau entri **Recently denied**. Lihat [Mode otomatis tidak dapat menentukan keamanan tindakan](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action) untuk pesan setiap kasus menunjukkan dan apa yang harus dilakukan.

488* **Tidak ada vonis dari server**: di bawah [tinjauan pengklasifikasi sisi server](#server-side-classifier-review), Claude Code menolak tindakan yang server tidak memberikan vonis, dan menghentikan giliran setelah sepuluh respons berturut-turut tanpa vonis. Lihat [Server tidak mengembalikan vonis keamanan](/docs/id/errors#the-server-returned-no-safety-verdict).493* **Tidak ada vonis dari server**: di bawah [tinjauan pengklasifikasi sisi server](#server-side-classifier-review), Claude Code menolak tindakan yang server tidak memberikan vonis, dan menghentikan giliran setelah sepuluh respons berturut-turut tanpa vonis. Lihat [Server tidak mengembalikan vonis keamanan](/docs/id/errors#the-server-returned-no-safety-verdict).

489* **Beralih mode selama pemeriksaan**: jika Anda beralih mode izin saat pemeriksaan pengklasifikasi tertunda, Claude Code membuang vonis yang mode baru tidak akan diminta daripada menerapkannya: Anda diminta persetujuan sebagai gantinya, atau tindakan ditolak otomatis dalam [mode `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).494* **Beralih mode selama pemeriksaan**: jika Anda beralih mode izin saat pemeriksaan pengklasifikasi tertunda, Claude Code membuang vonis yang mode baru tidak akan diminta daripada menerapkannya: Anda diminta persetujuan sebagai gantinya, atau tindakan ditolak otomatis dalam [mode `dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).

490 495 

496<h4 id="repeated-block-thresholds">

497 Ambang batas blok berulang

498</h4>

499 

500Ambang batas 3 blok berturut-turut dan 20 blok total tidak dapat dikonfigurasi. Penghitung total bertahan untuk sesi dan mengatur ulang hanya ketika batasnya sendiri memicu fallback. Claude Code tidak menghitung penolakan terhadap ambang batas apa pun ketika pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi sendiri.

501 

502Lari `-p` [non-interaktif](/docs/id/headless) tanpa [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tidak memiliki permintaan untuk kembali. Ketika blok berulang mencapai ambang batas, tindakan tidak berjalan dan Claude terus bekerja. Claude Code tidak menghentikan lari.

503 

491Blok berulang biasanya berarti pengklasifikasi kehilangan konteks tentang infrastruktur Anda. Gunakan `/feedback` untuk melaporkan positif palsu, atau biarkan administrator [mengonfigurasi infrastruktur terpercaya](/docs/id/auto-mode-config).504Blok berulang biasanya berarti pengklasifikasi kehilangan konteks tentang infrastruktur Anda. Gunakan `/feedback` untuk melaporkan positif palsu, atau biarkan administrator [mengonfigurasi infrastruktur terpercaya](/docs/id/auto-mode-config).

492 505 

506<h3 id="how-auto-mode-evaluates-actions">

507 Bagaimana mode otomatis mengevaluasi tindakan

508</h3>

509 

510Bagian berikut mencakup urutan Claude Code mengevaluasi tindakan, bagaimana pengklasifikasi meninjau pekerjaan subagen, dan apa yang ditambahkan panggilan pengklasifikasi dalam biaya dan latensi.

511 

493<span id="how-the-classifier-evaluates-actions" />512<span id="how-the-classifier-evaluates-actions" />

494 513 

495<AccordionGroup>514<AccordionGroup>


497 Setiap tindakan melalui urutan keputusan tetap. Langkah pertama yang cocok menang:516 Setiap tindakan melalui urutan keputusan tetap. Langkah pertama yang cocok menang:

498 517 

499 1. Tindakan yang cocok dengan [aturan allow, ask, atau deny](/docs/id/permissions#manage-permissions) Anda diselesaikan segera, dengan pengecualian ini:518 1. Tindakan yang cocok dengan [aturan allow, ask, atau deny](/docs/id/permissions#manage-permissions) Anda diselesaikan segera, dengan pengecualian ini:

500 * Penulisan ke [jalur yang dilindungi](#protected-paths) rute ke pengklasifikasi bahkan ketika aturan allow cocok, dan begitu juga penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths) dalam Claude Code v2.1.218 dan lebih baru519 * Penulisan ke [jalur yang dilindungi](#protected-paths) rute ke pengklasifikasi bahkan ketika aturan allow cocok

520 * Tidak ada aturan allow yang menyetujui penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths)

501 * Alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool) meminta Anda langsung bahkan ketika aturan allow cocok, dan begitu juga alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code521 * Alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool) meminta Anda langsung bahkan ketika aturan allow cocok, dan begitu juga alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code

502 * Perintah shell yang membawa [domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) juga rute ke pengklasifikasi bahkan ketika aturan allow cocok, karena aturan menyetujui perintah, bukan hostnya522 * Perintah shell yang membawa [domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) juga rute ke pengklasifikasi bahkan ketika aturan allow cocok, karena aturan menyetujui perintah, bukan hostnya

503 * Aturan ask yang cocok pada konten perintah, seperti `Bash(git push *)`, kembali ke permintaan izin523 * Aturan ask yang cocok pada konten perintah, seperti `Bash(git push *)`, kembali ke permintaan izin

524 * Penulisan yang [pemeriksaan symlink](/docs/id/permissions#symlinks) selesaikan ke jalur yang dilindungi meminta Anda ketika jalur yang diminta Claude bukan sendiri yang dilindungi

504 2. Tindakan hanya-baca dan pengeditan file di direktori kerja Anda disetujui otomatis, kecuali penulisan ke [jalur yang dilindungi](#protected-paths) dan [pembacaan pertama di luar direktori kerja](#first-read-outside-the-working-directories), yang meminta Anda525 2. Tindakan hanya-baca dan pengeditan file di direktori kerja Anda disetujui otomatis, kecuali penulisan ke [jalur yang dilindungi](#protected-paths) dan [pembacaan pertama di luar direktori kerja](#first-read-outside-the-working-directories), yang meminta Anda

505 * Dalam sesi dengan [tinjauan pengklasifikasi sisi server](#server-side-classifier-review), perintah hanya-baca dan [sandboxed](/docs/id/sandboxing#sandbox-modes) shell menunggu tinjauan itu dan diblokir jika itu menandainya526 * Dalam sesi dengan [tinjauan pengklasifikasi sisi server](#server-side-classifier-review), perintah hanya-baca dan [sandboxed](/docs/id/sandboxing#sandbox-modes) shell menunggu tinjauan itu dan diblokir jika itu menandainya

506 3. Semuanya yang lain pergi ke pengklasifikasi. Alat konektor dan alat MCP `requiresUserInteraction` yang meminta Anda langsung dalam langkah 1 tidak pernah mencapai pengklasifikasi, jadi baik persetujuan yang diperlukan org maupun langkah persetujuan tidak disetujui otomatis527 * Penulisan di dalam direktori kerja Anda yang [pemeriksaan symlink](/docs/id/permissions#symlinks) selesaikan ke lokasi di luar itu meminta Anda

528 3. Semuanya yang lain pergi ke pengklasifikasi, terlepas dari [penghapusan jalur kritis](#critical-paths) di bawah penanganan default mereka. Alat konektor dan alat MCP `requiresUserInteraction` yang meminta Anda langsung dalam langkah 1 tidak pernah mencapai pengklasifikasi, jadi baik persetujuan yang diperlukan org maupun langkah persetujuan tidak disetujui otomatis

507 4. Jika pengklasifikasi memblokir, Claude menerima alasan dan mencoba alternatif. Dalam sebagian besar sesi alasan menyebutkan aturan yang cocok pengklasifikasi, seperti `[Data Exfiltration]`, daripada memberikan penjelasan tertulis; lihat [Tinjauan penolakan](/docs/id/auto-mode-config#review-denials)529 4. Jika pengklasifikasi memblokir, Claude menerima alasan dan mencoba alternatif. Dalam sebagian besar sesi alasan menyebutkan aturan yang cocok pengklasifikasi, seperti `[Data Exfiltration]`, daripada memberikan penjelasan tertulis; lihat [Tinjauan penolakan](/docs/id/auto-mode-config#review-denials)

508 530 

509 Saat memasuki mode otomatis, aturan allow luas yang memberikan eksekusi kode arbitrer dijatuhkan:531 Saat memasuki mode otomatis, aturan allow luas yang memberikan eksekusi kode arbitrer dijatuhkan:


568 590 

569Mode `bypassPermissions` menonaktifkan prompt izin dan pemeriksaan keamanan sehingga panggilan alat dijalankan segera, termasuk penulisan ke [jalur yang dilindungi](#protected-paths).591Mode `bypassPermissions` menonaktifkan prompt izin dan pemeriksaan keamanan sehingga panggilan alat dijalankan segera, termasuk penulisan ke [jalur yang dilindungi](#protected-paths).

570 592 

571[Tindakan yang tidak ada mode auto-approve](#actions-no-mode-auto-approves) masih meminta dalam mode ini.593[Tindakan yang tidak ada mode auto-approve](#actions-no-mode-auto-approves) masih meminta dalam mode ini. [Remove-Item di PowerShell](#remove-item-in-powershell) penolakan juga berlaku dalam mode ini.

572 594 

573Dua perlindungan [pesan lintas sesi](/docs/id/cross-session-messaging) masih berlaku dalam mode ini, dan dalam sesi mode rencana terminal interaktif di mana bypass permissions tersedia:595Dua perlindungan [pesan lintas sesi](/docs/id/cross-session-messaging) masih berlaku dalam mode ini, dan dalam sesi mode rencana terminal interaktif di mana bypass permissions tersedia:

574 596 


593 615 

594Claude Code menolak `bypassPermissions` dalam sesi yang Anda mulai dengan [`--restricted`](/docs/id/cli-reference#cli-flags). `--restricted` memerlukan Claude Code v2.1.248 atau lebih baru.616Claude Code menolak `bypassPermissions` dalam sesi yang Anda mulai dengan [`--restricted`](/docs/id/cli-reference#cli-flags). `--restricted` memerlukan Claude Code v2.1.248 atau lebih baru.

595 617 

596Pertama kali Anda memulai sesi interaktif dengan mode ini diaktifkan, Claude Code menampilkan dialog peringatan yang meminta Anda menerima tanggung jawab untuk tindakan yang diambil tanpa pemeriksaan izin. Claude Code menyimpan penerimaan Anda ke pengaturan pengguna, jadi dialog muncul hanya sekali. Jika Anda menolak, Claude Code keluar. Dalam [mode non-interaktif](/docs/id/headless) tidak ada dialog yang ditampilkan, dan [sesi latar belakang](/docs/id/agent-view) yang dimulai dengan `--bg` ditolak sampai Anda telah menerima dialog dalam sesi interaktif.618Pertama kali Anda memulai sesi interaktif dengan mode ini diaktifkan, Claude Code menampilkan dialog peringatan yang meminta Anda menerima tanggung jawab untuk tindakan yang diambil tanpa pemeriksaan izin:

619 

620* **Jika Anda menerima**: Claude Code menetapkan `skipDangerousModePermissionPrompt` ke `true` dalam `~/.claude/settings.json`, sehingga sesi berikutnya melewati dialog. Untuk melihat dialog lagi, hapus kunci dari file tersebut atau atur ke `false`. Referensi [`skipDangerousModePermissionPrompt`](/docs/id/settings-reference#skipdangerousmodepermissionprompt) mencantumkan file pengaturan lainnya di mana Anda atau organisasi Anda dapat mengaturnya.

621* **Jika Anda menolak**: Claude Code keluar.

622 

623Dalam [mode non-interaktif](/docs/id/headless) tidak ada dialog yang ditampilkan, dan [sesi latar belakang](/docs/id/agent-view) yang dimulai dengan `--bg` ditolak sampai Anda telah menerima dialog dalam sesi interaktif.

597 624 

598Di Linux dan macOS, Claude Code menolak untuk memulai dalam mode ini saat berjalan sebagai root atau di bawah `sudo`:625Di Linux dan macOS, Claude Code menolak untuk memulai dalam mode ini saat berjalan sebagai root atau di bawah `sudo`:

599 626 


603 630 

604Pemeriksaan dilewati secara otomatis di dalam sandbox yang dikenali. Untuk menjalankan secara otonom dalam kontainer, gunakan konfigurasi [dev container](/docs/id/devcontainer), yang menjalankan Claude Code sebagai pengguna non-root.631Pemeriksaan dilewati secara otomatis di dalam sandbox yang dikenali. Untuk menjalankan secara otonom dalam kontainer, gunakan konfigurasi [dev container](/docs/id/devcontainer), yang menjalankan Claude Code sebagai pengguna non-root.

605 632 

606[Claude Code di web](/docs/id/claude-code-on-the-web) tidak menghormati `defaultMode: "bypassPermissions"` atau `"dontAsk"` dari file pengaturan Anda, jadi pengaturan yang diperiksa dalam repositori tidak dapat memulai sesi cloud dalam mode bypass-permissions. Pengaturan diabaikan secara diam-diam dan sesi dimulai dalam mode izin yang ditampilkan di dropdown mode sebagai gantinya. Lihat [Alihkan mode izin](#switch-permission-modes) untuk mode mana yang ditawarkan sesi cloud.633[Sesi cloud](/docs/id/claude-code-on-the-web) tidak menghormati `defaultMode: "bypassPermissions"` atau `"dontAsk"` dari file pengaturan Anda, jadi pengaturan yang diperiksa dalam repositori tidak dapat memulai sesi cloud dalam mode bypass-permissions. Pengaturan diabaikan secara diam-diam dan sesi dimulai dalam mode izin yang ditampilkan di dropdown mode sebagai gantinya. Lihat [Alihkan mode izin](#switch-permission-modes) untuk mode mana yang ditawarkan sesi cloud.

607 634 

608<Warning>635<Warning>

609 `bypassPermissions` tidak menawarkan perlindungan terhadap injeksi prompt atau tindakan yang tidak diinginkan. Untuk pemeriksaan keamanan latar belakang dengan jauh lebih sedikit prompt, gunakan [mode auto](#eliminate-prompts-with-auto-mode) sebagai gantinya. Administrator dapat memblokir mode ini dengan mengatur `permissions.disableBypassPermissionsMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings).636 `bypassPermissions` tidak menawarkan perlindungan terhadap injeksi prompt atau tindakan yang tidak diinginkan. Untuk pemeriksaan keamanan latar belakang dengan jauh lebih sedikit prompt, gunakan [mode auto](#eliminate-prompts-with-auto-mode) sebagai gantinya. Administrator dapat memblokir mode ini dengan mengatur `permissions.disableBypassPermissionsMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings).


625 652 

626Dalam sesi yang dimulai dengan [`--restricted`](/docs/id/cli-reference#cli-flags), yang memerlukan Claude Code v2.1.248 atau lebih baru, pengklasifikasi tidak dapat menyetujui penulisan jalur yang dilindungi.653Dalam sesi yang dimulai dengan [`--restricted`](/docs/id/cli-reference#cli-flags), yang memerlukan Claude Code v2.1.248 atau lebih baru, pengklasifikasi tidak dapat menyetujui penulisan jalur yang dilindungi.

627 654 

628Aturan [`permissions.allow`](/docs/id/permissions#manage-permissions) dalam file pengaturan tidak pra-menyetujui penulisan jalur yang dilindungi. Pemeriksaan keamanan berjalan sebelum Claude Code mengevaluasi aturan allow dari pengaturan, jadi entri seperti `Edit(.claude/**)` dalam `~/.claude/settings.json` atau `.claude/settings.json` tidak mengubah hasil per-mode dalam tabel di atas. Dalam mode yang meminta, prompt untuk penulisan `.claude/` menawarkan **Ya, dan izinkan Claude untuk mengedit pengaturannya sendiri untuk sesi ini**, yang menyetujui penulisan `.claude/` berikutnya dalam sesi itu tanpa meminta lagi.655Dalam mode yang merutekan penulisan jalur yang dilindungi ke pengklasifikasi, penulisan yang [pemeriksaan symlink](/docs/id/permissions#symlinks) selesaikan ke jalur yang dilindungi meminta Anda sebagai gantinya ketika jalur yang diminta Claude bukan sendiri dilindungi.

656 

657Aturan [`permissions.allow`](/docs/id/permissions#manage-permissions) dalam file pengaturan tidak pra-menyetujui penulisan jalur yang dilindungi. Pemeriksaan keamanan berjalan sebelum Claude Code mengevaluasi aturan allow dari pengaturan, jadi entri seperti `Edit(.claude/**)` dalam `~/.claude/settings.json` atau `.claude/settings.json` tidak mengubah hasil per-mode dalam tabel di atas. Dalam mode permisi yang meminta, prompt untuk penulisan ke folder `.claude/` proyek atau ke `~/.claude/` dapat menawarkan salah satu opsi yang dibatasi sesi ini:

658 

659* Untuk folder `.claude/` proyek: **Ya, dan izinkan Claude untuk mengedit file di folder .claude proyek ini untuk sesi ini**

660* Untuk `~/.claude/`: **Ya, dan izinkan Claude untuk mengedit file di folder \~/.claude-nya untuk sesi ini**

629 661 

630Direktori yang dilindungi:662Direktori yang dilindungi:

631 663 


656 Jalur kritis688 Jalur kritis

657</h2>689</h2>

658 690 

691Jalur kritis adalah direktori yang Claude Code lindungi dari perintah `rm` dan `rmdir`, seperti akar filesystem, direktori home Anda, dan direktori kerja Anda.

692 

659Claude Code tidak pernah membiarkan aturan [`permissions.allow`](/docs/id/permissions#manage-permissions) atau hook [`PreToolUse`](/docs/id/permissions#extend-permissions-with-hooks) yang mengembalikan `"allow"` menyetujui perintah `rm` atau `rmdir` yang menargetkan jalur kritis, bahkan dalam mode yang melewati prompt lain. Pemutus sirkuit ini menjaga terhadap kesalahan model. Aturan deny yang cocok masih memblokir perintah sepenuhnya.693Claude Code tidak pernah membiarkan aturan [`permissions.allow`](/docs/id/permissions#manage-permissions) atau hook [`PreToolUse`](/docs/id/permissions#extend-permissions-with-hooks) yang mengembalikan `"allow"` menyetujui perintah `rm` atau `rmdir` yang menargetkan jalur kritis, bahkan dalam mode yang melewati prompt lain. Pemutus sirkuit ini menjaga terhadap kesalahan model. Aturan deny yang cocok masih memblokir perintah sepenuhnya.

660 694 

661Apa yang terjadi sebagai gantinya bergantung pada mode izin Anda:695Apa yang terjadi sebagai gantinya [bergantung pada mode izin Anda](#critical-path-removals-in-each-permission-mode). `Remove-Item` dan built-in penghapusan `cmd` memiliki pemeriksaan mereka sendiri, yang tercakup dalam [Remove-Item dalam PowerShell](#remove-item-in-powershell).

662 696 

663| Mode | Apa yang dilakukan Claude Code dengan penghapusan jalur kritis |697<h3 id="which-paths-are-critical">

664| :- | :- |698 Jalur mana yang kritis

665| `default`, `acceptEdits` | Meminta Anda untuk menyetujuinya |699</h3>

666| `plan` | Meminta Anda untuk menyetujuinya. Dengan [mode auto tersedia selama perencanaan](#analyze-before-you-edit-with-plan-mode) dan tidak ada bypass permissions tersedia, mengirimkannya ke pengklasifikasi sebagai gantinya |

667| `auto` | Mengirimkannya ke [pengklasifikasi](#eliminate-prompts-with-auto-mode) |

668| `dontAsk` | Menolaknya |

669| `bypassPermissions` | Meminta Anda untuk menyetujuinya |

670 

671Jika [aturan ask](/docs/id/permissions#manage-permissions) eksplisit cocok dengan perintah, Claude Code meminta Anda bahkan dalam mode `auto`. Dalam mode yang meminta, hook [`PermissionRequest`](/docs/id/hooks#permissionrequest) dapat menjawab prompt dengan cara yang menjawab apa pun yang lain.

672 700 

673Claude Code memperlakukan target `rm` atau `rmdir` sebagai jalur kritis ketika itu adalah salah satu dari yang berikut:701Claude Code memperlakukan target `rm` atau `rmdir` sebagai jalur kritis ketika itu adalah salah satu dari yang berikut:

674 702 


679* Direktori kerja Anda dan induknya707* Direktori kerja Anda dan induknya

680* Direktori kerja tambahan Anda dan induk mereka, tetapi hanya ketika penghapusan adalah glob di bawah salah satu dari mereka, seperti `rm -rf <dir>/*`. `rm -rf <dir>` pada direktori itu sendiri tidak memicu pemeriksaan ini708* Direktori kerja tambahan Anda dan induk mereka, tetapi hanya ketika penghapusan adalah glob di bawah salah satu dari mereka, seperti `rm -rf <dir>/*`. `rm -rf <dir>` pada direktori itu sendiri tidak memicu pemeriksaan ini

681 709 

682Claude 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.710<h3 id="other-targets-that-count-as-critical-paths">

711 Target lain yang dihitung sebagai jalur kritis

712</h3>

713 

714Claude Code juga memperlakukan target `rm` dan `rmdir` berikut sebagai jalur kritis. Kolom terakhir mengatakan mengapa masing-masing dihitung.

683 715 

684Prompt untuk kasus variabel ini menamai `rm` yang ditandai dan mengatakan cara menulis ulangnya sehingga pemeriksaan lulus:716| Target | Contoh | Mengapa dihitung |

717| :- | :- | :- |

718| Glob atau garis miring di bawah variabel shell | `rm -rf "$DIR"/*` | Perintah menjadi penghapusan dari akar filesystem ketika variabel kosong |

719| Bentuk yang sama di bawah parameter posisional seperti `$1` atau `$@`, ketika tidak ada dalam perintah yang memberikannya nilai | `rm -rf "$1"/*` | Perintah berkembang menjadi penghapusan dari akar |

720| Variabel shell diikuti oleh satu nama direktori tingkat atas umum, seperti `mnt`, `tmp`, `usr`, atau `Users` | `rm -rf "$TMPDIR/mnt"` | Ketika variabel berkembang kosong, perintah menghapus `/mnt` |

721| Variabel yang perintah yang sama tetapkan dari substitusi pencetakan direktori, seperti `$(pwd)` atau `$(git rev-parse --show-toplevel)` | `D=$(pwd); rm -rf "$D"` | Nilainya dapat menamai direktori kerja atau akar repositori Anda |

722| Target yang hanya output dari substitusi perintah, ketika `rm` bersifat rekursif | `rm -rf "$(pwd)"` | Claude Code tidak dapat memeriksa target sebelum perintah berjalan |

723| Substitusi perintah di akhir setelah jalur kritis | `rm -rf ~/$(cmd)` | Claude Code memeriksa jalur yang akan tetap jika substitusi berkembang kosong, di sini direktori home Anda |

724| Target yang hanya garis miring terbalik | `rm -rf "\\"` | Git Bash di Windows membaca garis miring terbalik tunggal sebagai akar drive saat ini, jadi pemeriksaan berlaku di setiap platform |

725 

726Untuk mematikan pemeriksaan pada target yang hanya output substitusi perintah, atur [`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1`](/docs/id/env-vars#variables) dalam lingkungan yang meluncurkan Claude Code.

727 

728<h3 id="removals-inside-nested-commands-and-inline-scripts">

729 Penghapusan di dalam perintah bersarang dan skrip inline

730</h3>

731 

732Claude Code juga melihat ke dalam konstruksi ini:

733 

734* **Perintah bersarang**: subshell dengan `(...)`, grup brace dengan `{ ...; }`, substitusi perintah dengan `$(...)` atau backtick, atau substitusi proses dengan `<(...)`. 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.

735* **Skrip inline**: Claude Code memeriksa skrip yang dilewatkan ke shell seperti `sh -c` atau `bash -c` untuk variabel shell dan parameter posisional [target](#other-targets-that-count-as-critical-paths).

736 * Ketika skrip dikutip ganda, shell yang memanggil berkembang variabelnya sebelum shell dalam menerima skrip. Dalam `find . -name '*.tmp' -exec sh -c "rm -rf \"$1\"/*" _ {} \;`, perintah berkembang menjadi penghapusan dari akar filesystem sekali per kecocokan, dan Claude Code memperlakukannya sebagai penghapusan jalur kritis.

737 * Skrip yang dikutip tunggal yang mengikat `$1` ke nilai nyata, seperti `sh -c 'rm -rf "$1"/*' _ {}` lakukan, tidak ditandai.

738 

739<h3 id="rewrite-a-flagged-command">

740 Tulis ulang perintah yang ditandai

741</h3>

685 742 

686* 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 literal743Cara menulis ulang perintah sehingga lulus pemeriksaan bergantung pada mana dari [target lain](#other-targets-that-count-as-critical-paths) yang digunakannya:

687* Untuk variabel yang biasanya diatur, seperti `$HOME`, gunakan jalur literal

688 744 

689Penghapusan yang ekspansinya semuanya dilindungi dengan cara itu bukan penghapusan jalur kritis, jadi dalam mode `bypassPermissions` itu berjalan tanpa prompt.745* **Glob atau garis miring di bawah 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. Penghapusan yang ekspansinya semuanya dilindungi dengan cara itu lulus pemeriksaan ini, jadi dalam mode `bypassPermissions` itu berjalan tanpa prompt kecuali pemeriksaan [jalur kritis](#critical-paths) lain menandainya.

746* **Glob atau garis miring di bawah variabel yang biasanya diatur, seperti `$HOME`**: gunakan jalur literal.

747* **Variabel yang ditetapkan dari substitusi pencetakan direktori**: gunakan jalur literal. Penjaga `"${D:?}"` tidak menghapus pemeriksaan ini, karena variabel tidak kosong.

748* **Target yang hanya output substitusi perintah**: jalankan substitusi sendiri terlebih dahulu, kemudian hapus jalur literal yang dicetak. Prompt memberi tahu Claude untuk melakukan hal yang sama.

690 749 

691Menyembunyikan 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.750Untuk glob atau garis miring di bawah variabel, prompt menamai `rm` yang ditandai dan mengatakan cara menulis ulangnya sehingga pemeriksaan lulus.

751 

752<h3 id="critical-path-removals-in-each-permission-mode">

753 Penghapusan jalur kritis di setiap mode izin

754</h3>

755 

756Apa yang Claude Code lakukan dengan penghapusan jalur kritis bergantung pada mode izin Anda:

757 

758| Mode | Hasil |

759| :- | :- |

760| `default`, `acceptEdits` | Meminta Anda untuk menyetujuinya |

761| `plan` | Meminta Anda untuk menyetujuinya. Ketika [pengklasifikasi meninjau perintah selama perencanaan](#analyze-before-you-edit-with-plan-mode) dan tidak ada bypass permissions tersedia, menanganinya seperti dalam mode `auto` |

762| `auto` | Meminta Anda untuk menyetujuinya di terminal, dengan [batas waktu](#time-limits-and-denials-in-auto-and-bypasspermissions-modes). Di tempat lain, menolaknya |

763| `dontAsk` | Menolaknya |

764| `bypassPermissions` | Meminta Anda untuk menyetujuinya, dengan batas waktu di terminal |

765 

766Jika [aturan ask](/docs/id/permissions#manage-permissions) eksplisit cocok dengan perintah, Claude Code meminta Anda sebagai gantinya, bahkan dalam mode `auto` dan tanpa batas waktu. Dalam mode yang meminta, hook [`PermissionRequest`](/docs/id/hooks#permissionrequest) dapat menjawab prompt.

767 

768<h3 id="time-limits-and-denials-in-auto-and-bypasspermissions-modes">

769 Batas waktu dan penolakan dalam mode auto dan bypassPermissions

770</h3>

771 

772Dalam mode `auto` dan `bypassPermissions`, prompt terminal untuk penghapusan jalur kritis menampilkan hitungan mundur dua menit:

773 

774* Jika hitungan mundur habis sebelum Anda menjawab, Claude Code menolak perintah dan memberi tahu Claude apa yang harus dilakukan sebagai gantinya, sehingga sesi tanpa pengawasan terus bekerja.

775* Tekan tombol apa pun saat prompt terbuka untuk menghentikan hitungan mundur dan membuat prompt tetap menunggu jawaban Anda.

776* Setelah tiga prompt ini habis tanpa jawaban dalam sesi, Claude Code berhenti menampilkannya dan menolak penghapusan jalur kritis lebih lanjut segera. Mengirim pesan baru memulai hitungan ulang.

777 

778Dalam mode `auto`, di mana pun Claude Code tidak dapat menampilkan prompt terminal kepada Anda, itu menolak perintah segera, misalnya dalam [run non-interaktif](/docs/id/headless) dengan `-p`, dalam sesi [Agent SDK](/docs/id/agent-sdk/permissions), dan dalam panel chat ekstensi VS Code dan aplikasi Desktop. Penolakan memberi tahu Claude untuk melaporkan apa yang ingin dihapus dan membiarkan penghapusan kepada Anda.

779 

780Penanganan `auto` dan `bypassPermissions` memerlukan Claude Code v2.1.281 atau lebih baru. Untuk mematikannya, atur [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1`](/docs/id/env-vars#variables) dalam lingkungan yang meluncurkan Claude Code. Dalam mode `auto`, penghapusan jalur kritis kemudian pergi ke pengklasifikasi sebagai gantinya, dan dalam mode `bypassPermissions` prompt tidak memiliki batas waktu.

692 781 

693<h3 id="remove-item-in-powershell">782<h3 id="remove-item-in-powershell">

694 Remove-Item dalam PowerShell783 Remove-Item dalam PowerShell

695</h3>784</h3>

696 785 

697Ketika Anda mengaktifkan [alat PowerShell](/docs/id/tools-reference#powershell-tool), Claude Code memberikan `Remove-Item` pemeriksaannya sendiri, terpisah dari daftar jalur kritis `rm`. Hasilnya bergantung pada target, dan kasus pertama yang cocok berlaku:786Ketika Anda mengaktifkan [alat PowerShell](/docs/id/tools-reference#powershell-tool), Claude Code memberikan `Remove-Item` dan built-in `cmd` `rd`, `rmdir`, `del`, dan `erase` pemeriksaan mereka sendiri, terpisah dari daftar jalur kritis `rm`. Untuk `Remove-Item`, hasilnya bergantung pada target, dan kasus pertama yang cocok berlaku:

698 787 

699* **Jalur sistem**: akar filesystem dan direktori tingkat atasnya, akar drive dan direktori tingkat atas mereka, dan direktori home Anda. Claude Code menolak perintah di setiap mode, tanpa bertanya kepada Anda.788* **Jalur sistem**: akar filesystem dan direktori tingkat atasnya, akar drive dan direktori tingkat atas mereka, dan direktori home Anda. Claude Code menolak perintah di setiap mode, tanpa bertanya kepada Anda.

700* **Wildcard**: bare `*`, atau target apa pun yang berakhir dalam `/*` atau `\*`, termasuk glob di bawah variabel shell seperti `$dir/*`. Claude Code menolak perintah di setiap mode, tanpa bertanya kepada Anda, sebelum [pengklasifikasi](#eliminate-prompts-with-auto-mode) melihatnya.789* **Wildcard**: bare `*`, atau target apa pun yang berakhir dalam `/*` atau `\*`, termasuk glob di bawah variabel shell seperti `$dir/*`. Claude Code menolak perintah di setiap mode, tanpa bertanya kepada Anda, sebelum [pengklasifikasi](#eliminate-prompts-with-auto-mode) melihatnya.

701* **Direktori kerja Anda atau salah satu induknya, dengan `-Recurse`**: Claude Code memperlakukan perintah seperti apa pun yang memerlukan persetujuan dalam mode izin Anda, jadi itu meminta Anda dalam mode yang meminta, mengirimkannya ke pengklasifikasi dalam mode `auto`, dan menolaknya dalam mode `dontAsk`. Mode `bypassPermissions` melewati pemeriksaan ini.790* **Direktori kerja Anda atau salah satu induknya, dengan `-Recurse`**: Claude Code memperlakukan perintah seperti apa pun yang memerlukan persetujuan dalam mode izin Anda, jadi itu meminta Anda dalam mode yang meminta, mengirimkannya ke pengklasifikasi dalam mode `auto`, dan menolaknya dalam mode `dontAsk`. Mode `bypassPermissions` melewati pemeriksaan ini.

702 791 

792Kasus jalur sistem juga berlaku untuk `rd`, `rmdir`, `del`, dan `erase` ketika Claude menjalankannya melalui `cmd`, seperti dalam `cmd /c rd /s /q C:\Users`. Secara default, Claude Code menolak perintah seperti itu di setiap mode, tanpa bertanya kepada Anda. Pemeriksaan `cmd` ini memerlukan Claude Code v2.1.283 atau lebih baru.

793 

794Saat menilai target `cmd`, Claude Code memperlakukan variabel PowerShell yang mengikuti teks literal sebagai kosong. Itu membuat `cmd /c rd /s /q "C:\$name"` penghapusan `C:\`, jadi itu juga ditolak. Wildcard di akhir dihitung sebagai folder yang dikosongkannya, jadi `cmd /c del /q C:\*` ditolak dan `cmd /c del /q dist\*` dalam proyek Anda tidak.

795 

796Untuk mematikan pemeriksaan `cmd`, atur [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY=1`](/docs/id/env-vars#variables) dalam lingkungan yang meluncurkan Claude Code. Claude Code mengabaikan variabel ini dalam blok `env` file pengaturan. `Remove-Item` pada jalur sistem tetap ditolak bagaimanapun juga.

797 

703<h2 id="see-also">798<h2 id="see-also">

704 Lihat juga799 Lihat juga

705</h2>800</h2>

permissions.md +70 −41

Details

242 242 

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

244 244 

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.245Ketika Anda menyetujui perintah gabungan dengan "Ya, dan jangan tanya lagi", Claude Code menyimpan aturan terpisah untuk setiap subperintah yang memerlukan persetujuan, bukan aturan tunggal 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.

246 246 

247<h4 id="process-wrappers">247<h4 id="process-wrappers">

248 Pembungkus248 Pembungkus


278 Perintah baca-saja278 Perintah baca-saja

279</h4>279</h4>

280 280 

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. Dalam mode otomatis, perintah-perintah ini juga dapat menunggu tinjauan pengklasifikasi; lihat [bagaimana pengklasifikasi mengevaluasi tindakan](/docs/id/permission-modes#how-the-classifier-evaluates-actions).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) pagar. 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. Dalam mode otomatis, perintah-perintah ini juga dapat menunggu tinjauan pengklasifikasi; lihat [bagaimana pengklasifikasi mengevaluasi tindakan](/docs/id/permission-modes#how-the-classifier-evaluates-actions).

282 282 

283Pengalihan seperti `ls > out.txt` menambahkan pemeriksaan pada target. Lihat [Pengalihan](#redirections).283Pengalihan seperti `ls > out.txt` menambahkan pemeriksaan pada target. Lihat [Pengalihan](#redirections).

284 284 


287Dalam mode Manual, perintah dari himpunan ini masih meminta dalam kasus-kasus ini:287Dalam mode Manual, perintah dari himpunan ini masih meminta dalam kasus-kasus ini:

288 288 

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

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.290* **`docker` 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.

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.291* **`file` dengan flag pembuka jalur**: `file` meminta ketika melewatkan `-m`/`--magic-file` atau `-f`/`--files-from`, karena flag-flag itu membuat `file` membuka jalur yang dinamai dalam nilai flag.

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

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

294 294 


307 307 

308 Untuk penyaringan URL yang lebih andal, pertimbangkan:308 Untuk penyaringan URL yang lebih andal, pertimbangkan:

309 309 

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)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 menurut jalur atau di dalam `sh -c`, jadi pasangkan dengan [daftar izin jaringan sandbox](/docs/id/sandboxing#network-isolation) ketika pembatasan harus berlaku; lihat [apa yang tidak cocok dengan aturan Bash](#bash-rule-limits)

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

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

313 313 


320 320 

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

322 322 

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.323* **Pengalihan output**: untuk `> file`, `>> file`, atau `2> file`, pemeriksaan mencakup aturan izin dan tolak `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.

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.324* **Pengalihan input**: untuk `< file`, pemeriksaan mencakup aturan izin dan tolak `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.

325 325 

326Target 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 deskriptor file seperti `2>&1` dan `<&3`, dan here-docs dan here-strings.

327 327 

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.328Claude Code juga memeriksa file yang ditulis perintah `tee`, termasuk dalam pipeline seperti `make | tee build.log`. Pemeriksaan mencakup aturan izin dan tolak `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.

329 329 

330<h3 id="powershell">330<h3 id="powershell">

331 PowerShell331 PowerShell


355 Read dan Edit355 Read dan Edit

356</h3>356</h3>

357 357 

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.358Untuk memblokir alat file Claude dari membaca file atau direktori, tambahkan aturan tolak `Read` untuk jalurnya, seperti `Read(./.env)` atau `Read(./secrets/**)`; [Kecualikan file sensitif](/docs/id/settings-reference#exclude-sensitive-files) memiliki contoh siap tempel.

359 359 

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.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 pilihan dan konteks file terbuka yang [IDE](/docs/id/vs-code#the-built-in-ide-mcp-server) yang terhubung bagikan dengan Claude.

361 361 

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.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 yang lebih baru pada edit, dan v2.1.228 atau yang lebih baru pada write.

363 363 

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.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 tingkat alat di mana-mana. Memerlukan Claude Code v2.1.210 atau yang lebih baru.

365 365 

366<Warning>366<Warning>

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

368</Warning>368</Warning>

369 369 

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

381</Warning>381</Warning>

382 382 

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:383Pola `/path` berlabuh di direktori yang terkait dengan sumber pengaturan yang mendefinisikannya, jadi aturan yang sama cocok dengan lokasi berbeda tergantung di mana Anda meletakkannya:

384 384 

385| Aturan didefinisikan dalam | `/path` diselesaikan ke |385| Aturan didefinisikan dalam | `/path` diselesaikan ke |

386| :- | :- |386| :- | :- |


402 402 

403* `Edit(/docs/**)`: edit dalam `<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/`

404* `Read(~/.zshrc)`: membaca `.zshrc` direktori rumah Anda404* `Read(~/.zshrc)`: membaca `.zshrc` direktori rumah Anda

405* `Edit(//tmp/scratch.txt)`: edit jalur absolut `/tmp/scratch.txt`405* `Edit(//tmp/scratch.txt)`: mengedit jalur absolut `/tmp/scratch.txt`

406* `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 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

407 407 

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


431 └── lib.js431 └── lib.js

432```432```

433 433 

434| Aturan | Cocok dengan `src/app.ts` | Cocok dengan `vendor/pkg/src/lib.js` |434| Aturan | Cocok `src/app.ts` | Cocok `vendor/pkg/src/lib.js` |

435| :- | :- | :- |435| :- | :- | :- |

436| `Edit(src/**)` sebagai aturan izin | Ya | Tidak |436| `Edit(src/**)` sebagai aturan izin | Ya | Tidak |

437| `Edit(src/**)` sebagai aturan tolak atau tanya | Ya | Ya |437| `Edit(src/**)` sebagai aturan tolak atau tanya | Ya | Ya |


448 448 

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

450 450 

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.451Pola tolak atau tanya yang dimulai dengan `!` adalah negasi gitignore. Aturan ini mengukir jalur yang cocok dari aturan `path` atau `./path` yang terdaftar 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 terdaftar pertama tidak mengukir apa pun.

452 452 

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

454 454 

455Dua batas mempersempit apa yang dapat diukir pola `!`:455Dua batas mempersempit apa yang dapat diukir pola `!`:

456 456 

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/**)`.457* Claude Code membaca pola `!` relatif terhadap direktori saat ini bahkan ketika `/`, `~/`, atau `//` mengikuti `!`, jadi pola tidak dapat menjangkau aturan berlabuh dengan salah satu awalan itu. `Read(!~/notes/public/**)` tidak mengukir apa pun dari `Read(~/notes/**)`.

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

459 459 

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.460<h4 id="symlinks">

461 Symlink

462</h4>

461 463 

462* **Aturan izin**: berlaku hanya ketika jalur symlink dan targetnya cocok. Symlink di dalam direktori yang diizinkan yang menunjuk ke luar masih meminta Anda.464Ketika jalur file yang diminta Claude melewati symlink, pemeriksaan izin mencakup dua jalur: yang diminta Claude dan file yang diselesaikannya. Ini berlaku untuk tautan simbolis di macOS, Linux, dan Windows, dan ke junction direktori di Windows.

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.

464 465 

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.466<h5 id="how-rules-match-a-symlinked-path">

467 Bagaimana aturan cocok dengan jalur yang disymlink

468</h5>

466 469 

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).470Aturan izin dan tolak memperlakukan jalur yang diminta dan file yang diselesaikannya secara berbeda:

471 

472* **Aturan izin**: berlaku hanya ketika jalur yang diminta dan file yang diselesaikannya cocok. Pembacaan melalui symlink di dalam direktori yang diizinkan yang menunjuk ke luar tidak cocok dengan aturan.

473* **Aturan tolak**: berlaku ketika jalur yang diminta atau file yang diselesaikannya cocok. Symlink yang menunjuk ke file yang ditolak ditolak sendiri. Misalnya, dengan `Read(./project/**)` diizinkan dan `Read(~/.ssh/**)` ditolak, symlink di `./project/key` menunjuk ke `~/.ssh/id_rsa` diblokir: target gagal aturan izin dan cocok dengan aturan tolak.

474 

475Di 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.

468 476 

469Grep dan Glob mencari direktori yang argumen `path` diselesaikan. Claude Code menerapkan aturan tolak `Read` ke direktori itu.477Grep dan Glob mencari direktori yang argumen `path` diselesaikan. Claude Code menerapkan aturan tolak `Read` ke direktori itu.

470 478 

479<h5 id="writes-through-a-symlink">

480 Penulisan melalui symlink

481</h5>

482 

483Jika jalur yang diminta Claude untuk diedit atau ditulis adalah symlink itu sendiri, alat Edit dan Write [menolak penulisan dan mengarahkan Claude ke target tautan](/docs/id/errors#refusing-after-a-symlink-changed).

484 

485Penulisan masih dapat melewati symlink ketika direktori di jalan ke file adalah symlink, atau ketika perintah Bash atau PowerShell melakukan penulisan. Untuk penulisan itu, apa yang terjadi bergantung pada di mana file yang diselesaikan penulisan duduk relatif terhadap [direktori kerja](#working-directories) Anda dan [jalur terlindungi](/docs/id/permission-modes#protected-paths):

486 

487* **Diselesaikan di luar direktori kerja**: ketika jalur yang diminta berada di dalam direktori kerja Anda dan file yang diselesaikannya tidak, penulisan tidak disetujui otomatis dalam [mode `acceptEdits`](/docs/id/permission-modes#auto-approve-file-edits-with-acceptedits-mode). Dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), kecuali aturan izin menyetujui penulisan, Anda diminta untuk itu daripada pengklasifikasi memutuskan. Prompt menamai jalur yang diselesaikan penulisan.

488* **Diselesaikan ke jalur terlindungi yang tidak dinamai jalur yang diminta**: [tabel jalur terlindungi](/docs/id/permission-modes#protected-paths) memberikan hasil untuk setiap mode izin, kecuali bahwa di mana tabel merutekan penulisan ke pengklasifikasi, penulisan ini meminta Anda sebagai gantinya.

489 

490<h5 id="paths-that-can’t-be-resolved-or-that-change">

491 Jalur yang tidak dapat diselesaikan atau yang berubah

492</h5>

493 

494Ketika Claude Code tidak dapat menentukan di mana jalur mengarah di disk, misalnya karena symlink di atasnya membentuk loop, alat Read, Edit, dan Write [menolak operasi](/docs/id/errors#refusing-after-a-symlink-changed).

495 

496Ketika alat kemudian membuka file yang disetujui, itu [mengkonfirmasi bahwa jalur masih diselesaikan ke lokasi yang disetujui pemeriksaan izin](/docs/id/errors#refusing-after-a-symlink-changed).

497 

471<h3 id="webfetch">498<h3 id="webfetch">

472 WebFetch499 WebFetch

473</h3>500</h3>


476 503 

477* `WebFetch(domain:example.com)` cocok dengan permintaan ke `example.com`504* `WebFetch(domain:example.com)` cocok dengan permintaan ke `example.com`

478* `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 sendiri505* `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

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)506* `WebFetch(domain:*)` cocok dengan setiap domain. Aturan ini tidak sama dengan aturan `WebFetch` telanjang; lihat [Izinkan atau tolak setiap pengambilan](#allow-or-deny-every-fetch)

480 507 

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.508Di 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.

482 509 

483Wildcard dalam aturan `WebFetch` memerlukan Claude Code v2.1.172 atau lebih baru untuk mencocokkan fetch.510Wildcard dalam aturan `WebFetch` memerlukan Claude Code v2.1.172 atau yang lebih baru untuk mencocokkan pengambilan.

484 511 

485<h4 id="allow-or-deny-every-fetch">512<h4 id="allow-or-deny-every-fetch">

486 Izinkan atau tolak setiap fetch513 Izinkan atau tolak setiap pengambilan

487</h4>514</h4>

488 515 

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.516Aturan `WebFetch` telanjang adalah nama alat tanpa bagian `domain:`, seperti `"deny": ["WebFetch"]`. Baik itu maupun `WebFetch(domain:*)` mencakup setiap URL, tetapi Claude Code menerapkannya secara 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.

490 517 

491Setiap baris menunjukkan apa yang dilakukan aturan dalam daftar `allow` dan dalam daftar `deny`:518Setiap baris menunjukkan apa yang dilakukan aturan dalam daftar `allow` dan dalam daftar `deny`:

492 519 

493| Aturan | Dalam `allow` | Dalam `deny` |520| Aturan | Dalam `allow` | Dalam `deny` |

494| :- | :- | :- |521| :- | :- | :- |

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. |522| `WebFetch` | Claude mengambil tanpa meminta Anda. Tidak mengubah host mana yang dapat dijangkau perintah yang disandbox. | Claude Code menghapus alat `WebFetch`, jadi Claude tidak dapat mengambil sama sekali. Tidak mengubah host mana yang dapat dijangkau perintah yang disandbox. |

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. |523| `WebFetch(domain:*)` | Claude mengambil tanpa meminta Anda, dan perintah yang disandbox dapat menjangkau host apa pun. | Claude Code menyimpan alat dan menolak setiap pengambilan, dan perintah yang disandbox tidak dapat menjangkau host apa pun. |

497 524 

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.525Dua bentuk juga berbeda pada pembacaan [artefak](/docs/id/artifacts), halaman yang alat Artifact menerbitkan di claude.ai. Aturan tolak atau tanya `WebFetch` telanjang tidak berlaku untuk 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.

499 526 

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.527Ketika aturan memblokir pembacaan, penolakan menamai aturan. Sebelum v2.1.268, aturan tolak `WebFetch` telanjang memblokir setiap pembacaan artefak, dan aturan tanya telanjang meminta sebelum setiap pembacaan.

501 528 

502Untuk membiarkan Claude fetch dengan bebas sambil menjaga daftar allowlist sandbox seperti apa adanya, gunakan bentuk telanjang. `settings.json` ini melakukan itu:529Untuk membiarkan Claude mengambil dengan bebas sambil menjaga daftar izin sandbox seperti apa adanya, gunakan bentuk telanjang. `settings.json` ini melakukan itu:

503 530 

504```json theme={null}531```json theme={null}

505{532{


509}536}

510```537```

511 538 

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.539Ketika Anda meminta Claude untuk mengambil halaman, itu mengambil tanpa prompt. Ketika Anda meminta itu menjalankan `curl` [disandbox](/docs/id/sandboxing) terhadap host di luar daftar izin sandbox, Claude Code masih meminta Anda untuk host itu, karena aturan telanjang tidak menambahkan host ke daftar izin.

513 540 

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.541Dalam [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.

515 542 


523* `mcp__puppeteer__*` menggunakan sintaks wildcard dan juga cocok dengan semua alat dari server `puppeteer`550* `mcp__puppeteer__*` menggunakan sintaks wildcard dan juga cocok dengan semua alat dari server `puppeteer`

524* `mcp__puppeteer__puppeteer_navigate` cocok dengan alat `puppeteer_navigate` yang disediakan oleh server `puppeteer`551* `mcp__puppeteer__puppeteer_navigate` cocok dengan alat `puppeteer_navigate` yang disediakan oleh server `puppeteer`

525 552 

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>`.553Jika organisasi Anda telah menetapkan alat [konektor claude.ai](/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>`.

527 554 

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`.555Dalam 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 pengambilan web. 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`.

529 556 

530<h3 id="agent-subagents">557<h3 id="agent-subagents">

531 Agent (subagents)558 Agent (subagent)

532</h3>559</h3>

533 560 

534Gunakan aturan `Agent(AgentName)` untuk mengontrol [subagent](/docs/id/sub-agents) mana yang dapat digunakan Claude:561Gunakan aturan `Agent(AgentName)` untuk mengontrol [subagent](/docs/id/sub-agents) mana yang dapat digunakan Claude:


551 Cd578 Cd

552</h3>579</h3>

553 580 

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.581Aturan `Cd` mengontrol direktori mana yang dapat dipindahkan sesi oleh perintah [`/cd`](/docs/id/commands). `Cd` bukan alat yang dapat dipanggil model: Claude tidak dapat memanggilnya, dan aturan berlaku hanya ketika Anda menjalankan `/cd` sendiri.

555 582 

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.583Aturan 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.

557 584 

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.585Menambahkan aturan izin `Cd` apa pun beralih `/cd` ke mode daftar izin: 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.

559 586 

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.587Pola jalur berbagi jangkar `//`, `~/`, dan `/` dari [aturan Read dan Edit](#read-and-edit), tetapi pencocokan berlabuh ke 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.

561 588 

562| Aturan | Cocok | Tidak cocok |589| Aturan | Cocok | Tidak cocok |

563| - | - | - |590| - | - | - |


705 732 

706Claude Code menampilkan dialog kepercayaan hanya dalam sesi interaktif. Jalankan `claude -p` atau sesi SDK tidak pernah menampilkannya, dan mempercayai folder induk tidak dihitung untuk aturan ini, jadi [Apa yang berjalan sebelum Anda mempercayai folder](#what-runs-before-you-trust-a-folder) mengatakan konten repositori mana yang masih digunakan Claude Code dalam masing-masing dari dua situasi tersebut.733Claude Code menampilkan dialog kepercayaan hanya dalam sesi interaktif. Jalankan `claude -p` atau sesi SDK tidak pernah menampilkannya, dan mempercayai folder induk tidak dihitung untuk aturan ini, jadi [Apa yang berjalan sebelum Anda mempercayai folder](#what-runs-before-you-trust-a-folder) mengatakan konten repositori mana yang masih digunakan Claude Code dalam masing-masing dari dua situasi tersebut.

707 734 

735Sebelum memulai atau memulai ulang [sesi latar belakang](/docs/id/agent-view), Claude Code juga memeriksa kepercayaan ruang kerja untuk direktori tempat sesi berjalan. Jika Anda menjalankan `claude --bg` dari terminal di direktori yang belum Anda percayai, dialog kepercayaan muncul terlebih dahulu dan sesi dimulai setelah Anda menerimanya. Di mana tidak ada dialog yang dapat muncul, seperti dalam skrip, perintah keluar dengan kesalahan [`Workspace not trusted`](/docs/id/errors#workspace-not-trusted-when-dispatching-a-background-session) sebagai gantinya.

736 

708<h3 id="when-your-local-settings-file-needs-trust">737<h3 id="when-your-local-settings-file-needs-trust">

709 Ketika file pengaturan lokal Anda memerlukan kepercayaan738 Ketika file pengaturan lokal Anda memerlukan kepercayaan

710</h3>739</h3>

platforms.md +1 −1

Details

53| | Pemicu | Claude berjalan di | Pengaturan | Terbaik untuk |53| | Pemicu | Claude berjalan di | Pengaturan | Terbaik untuk |

54| :- | :- | :- | :- | :- |54| :- | :- | :- | :- | :- |

55| [Dispatch](/docs/id/desktop#sessions-from-dispatch) | Kirim pesan tugas dari aplikasi mobile Claude | Mesin Anda (Desktop) | [Pasangkan aplikasi mobile dengan Desktop](https://support.claude.com/en/articles/13947068) | Mendelegasikan pekerjaan saat Anda pergi, pengaturan minimal |55| [Dispatch](/docs/id/desktop#sessions-from-dispatch) | Kirim pesan tugas dari aplikasi mobile Claude | Mesin Anda (Desktop) | [Pasangkan aplikasi mobile dengan Desktop](https://support.claude.com/en/articles/13947068) | Mendelegasikan pekerjaan saat Anda pergi, pengaturan minimal |

56| [Remote Control](/docs/id/remote-control) | Jalankan sesi yang sedang berjalan dari [claude.ai/code](https://claude.ai/code) atau aplikasi mobile Claude | Mesin Anda (CLI atau VS Code) | Jalankan `claude remote-control` | Mengarahkan pekerjaan yang sedang berlangsung dari perangkat lain |56| [Remote Control](/docs/id/remote-control) | Jalankan sesi yang sedang berjalan dari [claude.ai/code](https://claude.ai/code) atau aplikasi mobile Claude | Mesin Anda (CLI, Desktop, atau VS Code) | Jalankan [`claude remote-control` atau `/remote-control`](/docs/id/remote-control#start-a-remote-control-session) | Mengarahkan pekerjaan yang sedang berlangsung dari perangkat lain |

57| [Channels](/docs/id/channels) | Dorong acara dari aplikasi chat seperti Telegram atau Discord, atau server Anda sendiri | Mesin Anda (CLI) | [Instal plugin channel](/docs/id/channels#quickstart) atau [buat milik Anda sendiri](/docs/id/channels-reference) | Bereaksi terhadap acara eksternal seperti kegagalan CI atau pesan chat |57| [Channels](/docs/id/channels) | Dorong acara dari aplikasi chat seperti Telegram atau Discord, atau server Anda sendiri | Mesin Anda (CLI) | [Instal plugin channel](/docs/id/channels#quickstart) atau [buat milik Anda sendiri](/docs/id/channels-reference) | Bereaksi terhadap acara eksternal seperti kegagalan CI atau pesan chat |

58| [Slack](/docs/id/slack) | Sebutkan `@Claude` di saluran tim | Cloud Anthropic | [Instal aplikasi Slack](/docs/id/slack#setting-up-claude-code-in-slack) dengan [Claude Code di web](/docs/id/claude-code-on-the-web) diaktifkan | PR dan ulasan dari chat tim |58| [Slack](/docs/id/slack) | Sebutkan `@Claude` di saluran tim | Cloud Anthropic | [Instal aplikasi Slack](/docs/id/slack#setting-up-claude-code-in-slack) dengan [Claude Code di web](/docs/id/claude-code-on-the-web) diaktifkan | PR dan ulasan dari chat tim |

59| [Self-hosted environments](/docs/id/self-hosted-environments) | Mulai [sesi cloud](/docs/id/claude-code-on-the-web) dan pilih lingkungan organisasi Anda | Infrastruktur organisasi Anda | [Terapkan runner](/docs/id/self-hosted-environments-quickstart), pada paket Team dan Enterprise | Sesi cloud yang harus berjalan di dalam jaringan Anda |59| [Self-hosted environments](/docs/id/self-hosted-environments) | Mulai [sesi cloud](/docs/id/claude-code-on-the-web) dan pilih lingkungan organisasi Anda | Infrastruktur organisasi Anda | [Terapkan runner](/docs/id/self-hosted-environments-quickstart), pada paket Team dan Enterprise | Sesi cloud yang harus berjalan di dalam jaringan Anda |

plugin-evals.md +30 −15

Details

16* Menangkap regresi saat Anda mengubah plugin atau model baru dirilis16* Menangkap regresi saat Anda mengubah plugin atau model baru dirilis

17* Melihat apa yang dikontribusikan plugin dibandingkan tanpa plugin17* Melihat apa yang dikontribusikan plugin dibandingkan tanpa plugin

18 18 

19Halaman ini untuk penulis plugin dan skill yang memiliki plugin yang berfungsi dan ingin menguji perilakunya, dan untuk tim yang gating perubahan plugin di CI. Format kasusnya terpisah dari file `evals/evals.json` yang digunakan [plugin skill-creator](/docs/id/skills#run-evals-with-skill-creator). Untuk membuat plugin, lihat [Buat plugin](/docs/id/plugins/create); untuk memeriksa file plugin untuk kesalahan sintaks dan skema daripada perilakunya, gunakan [`claude plugin validate`](/docs/id/plugins/cli-reference#plugin-validate).19Halaman ini untuk penulis plugin dan skill yang memiliki plugin yang berfungsi dan ingin menguji perilakunya, dan untuk tim yang gating perubahan plugin di CI. Untuk melakukan iterasi pada satu skill di dalam percakapan Claude Code, [plugin skill-creator](/docs/id/skills#run-evals-with-skill-creator) menjalankan perbandingan serupa dengan format `evals/evals.json` miliknya sendiri, dan tidak ada alat yang membaca file kasus milik alat lainnya. Untuk membuat plugin, lihat [Buat plugin](/docs/id/plugins/create); untuk memeriksa file plugin untuk kesalahan sintaks dan skema daripada perilakunya, gunakan [`claude plugin validate`](/docs/id/plugins/cli-reference#plugin-validate).

20 20 

21<Note>21<Note>

22 Setiap eval run dan setiap judge grader adalah panggilan model nyata pada akun Anda, dihitung terhadap penggunaan rencana Anda atau tagihan API Anda, jadi periksa [persyaratan](#requirements) terlebih dahulu. Kemudian [buat suite eval pertama Anda](#create-your-first-eval-suite), atau buka [Jalankan evals di CI](#run-evals-in-ci) jika Anda sudah memilikinya.22 Setiap eval run dan setiap judge grader adalah panggilan model nyata pada akun Anda, dihitung terhadap penggunaan rencana Anda atau tagihan API Anda, jadi periksa [persyaratan](#requirements) terlebih dahulu. Kemudian [buat suite eval pertama Anda](#create-your-first-eval-suite), atau buka [Jalankan evals di CI](#run-evals-in-ci) jika Anda sudah memilikinya.


29Untuk menjalankan plugin evals Anda memerlukan:29Untuk menjalankan plugin evals Anda memerlukan:

30 30 

31* Claude Code v2.1.269 atau lebih baru. Jalankan `claude --version` untuk memeriksa dan `claude update` untuk upgrade.31* Claude Code v2.1.269 atau lebih baru. Jalankan `claude --version` untuk memeriksa dan `claude update` untuk upgrade.

32* Git 2.31 atau lebih baru, jika git terinstal. Jalankan `git --version` untuk memeriksa. Dengan git yang lebih lama, `claude plugin eval` [berhenti sebelum menjalankan kasus apa pun](#git-is-too-old-for-claude-plugin-eval). Tanpa git, ini berjalan secara normal.

32* Direktori plugin dengan manifest `plugin.json` atau `.claude-plugin/plugin.json`, atau [plugin direktori skills](/docs/id/plugins/loading#plugins-shared-through-a-repository).33* Direktori plugin dengan manifest `plugin.json` atau `.claude-plugin/plugin.json`, atau [plugin direktori skills](/docs/id/plugins/loading#plugins-shared-through-a-repository).

33* Autentikasi dan penyedia model yang sama dengan sesi Claude Code normal Anda. Eval runs, grader yang dinilai judge, dan `claude plugin eval init` memanggil model dengan kredensial Anda, jadi mereka dihitung terhadap batas penggunaan rencana Anda atau tagihan API Anda. Ketika perintah melaporkan biaya, angka tersebut adalah [perkiraan harga daftar](/docs/id/costs) dari panggilan tersebut.34* Autentikasi dan penyedia model yang sama dengan sesi Claude Code normal Anda. Eval runs, grader yang dinilai judge, dan `claude plugin eval init` memanggil model dengan kredensial Anda, jadi mereka dihitung terhadap batas penggunaan rencana Anda atau tagihan API Anda. Ketika perintah melaporkan biaya, angka tersebut adalah [perkiraan harga daftar](/docs/id/costs) dari panggilan tersebut.

34 35 


438| 130 | Terputus. Hasil parsial ditulis |439| 130 | Terputus. Hasil parsial ditulis |

439| 143 | Dihentikan, seperti oleh timeout CI |440| 143 | Dihentikan, seperti oleh timeout CI |

440 441 

441Masalah menulis atau menerbitkan laporan HTML tidak pernah mengubah kode keluar.442Delta with-minus-without dilaporkan tetapi tidak pernah mengubah kode keluar, dan begitu juga masalah menulis atau menerbitkan laporan HTML.

442 443 

443Untuk melihat mengapa kasus mencetak skor rendah, jalankan secara lokal tanpa `--json` sehingga kemajuan per-run dan baris grader mencetak.444Untuk melihat mengapa kasus mencetak skor rendah, jalankan secara lokal tanpa `--json` sehingga kemajuan per-run dan baris grader mencetak.

444 445 


684 685 

685Ini adalah run pertama terhadap direktori yang Claude Code belum percayai, dan tidak dapat bertanya karena stdin atau stdout bukan terminal, Anda melewati `--json`, atau variabel lingkungan `CI` diatur ke nilai true seperti `true`. Jalankan `claude plugin eval <dir>` sekali dalam terminal dan jawab prompt, atau lewati `--trust-plugin` jika Anda mempercayai kode dan suite plugin. Lihat [Apa yang dapat diakses run](#security).686Ini adalah run pertama terhadap direktori yang Claude Code belum percayai, dan tidak dapat bertanya karena stdin atau stdout bukan terminal, Anda melewati `--json`, atau variabel lingkungan `CI` diatur ke nilai true seperti `true`. Jalankan `claude plugin eval <dir>` sekali dalam terminal dan jawab prompt, atau lewati `--trust-plugin` jika Anda mempercayai kode dan suite plugin. Lihat [Apa yang dapat diakses run](#security).

686 687 

688<h3 id="git-is-too-old-for-claude-plugin-eval">

689 "is too old for claude plugin eval"

690</h3>

691 

692`git` pada `PATH` Anda lebih lama dari 2.31, jadi `claude plugin eval` berhenti sebelum menjalankan kasus apa pun dan keluar 1 dengan pesan yang menyebutkan versi Anda:

693 

694```text theme={null}

695git 2.30 is too old for claude plugin eval: it ignores the environment configuration (GIT_CONFIG_COUNT, added in git 2.31) that switches off the repository's git hooks and helper programs for the run. Install git 2.31 or newer.

696```

697 

698Untuk setiap run, Claude Code mematikan git hooks, credential helpers, dan program lain yang konfigurasi git repositori dapat mulai. Hal ini dilakukan melalui konfigurasi lingkungan yang git baca hanya dari versi 2.31. Git yang lebih lama mengabaikan konfigurasi itu, jadi suite berhenti daripada mencetak run di mana program-program itu dapat dieksekusi. Instal git 2.31 atau lebih baru dan jalankan suite lagi.

699 

700Sebelum v2.1.283, `claude plugin eval` tidak memeriksa versi git, dan pada git yang lebih lama suite berjalan dengan program-program itu tetap aktif.

701 

687<h3 id="no-eval-cases-found">702<h3 id="no-eval-cases-found">

688 "No eval cases found"703 "No eval cases found"

689</h3>704</h3>


691Tidak ada `<case>/prompt.md` atau `<case>/case.yaml` yang ada di bawah direktori eval yang berlaku, atau filter `--case` dan `--tag` Anda tidak cocok dengan kasus apa pun. Jalankan dari root plugin, atau jalankan `claude plugin eval init` untuk membuat suite.706Tidak ada `<case>/prompt.md` atau `<case>/case.yaml` yang ada di bawah direktori eval yang berlaku, atau filter `--case` dan `--tag` Anda tidak cocok dengan kasus apa pun. Jalankan dari root plugin, atau jalankan `claude plugin eval init` untuk membuat suite.

692 707 

693<h3 id="the-baseline-arm-shows-no-plugin-or-delta-is-zero">708<h3 id="the-baseline-arm-shows-no-plugin-or-delta-is-zero">

694 Arm baseline menunjukkan tidak ada plugin, atau delta adalah nol709 The baseline arm shows no plugin, or delta is zero

695</h3>710</h3>

696 711 

697Jika ringkasan tidak memiliki kolom `W/OUT`, atau kasus gagal dengan "ablation requested but no plugin resolved", tidak ada plugin yang ditemukan untuk kasus. Tambahkan `plugins: ["../.."]` ke kasus, memberikan jalur dari direktori kasus ke direktori plugin.712Jika ringkasan tidak memiliki kolom `W/OUT`, atau kasus gagal dengan "ablation requested but no plugin resolved", tidak ada plugin yang ditemukan untuk kasus. Tambahkan `plugins: ["../.."]` ke kasus, memberikan jalur dari direktori kasus ke direktori plugin.


699Jika plugin memang dimuat dan `Δ` masih mendekati nol dengan grader `tool_used: Skill` Anda gagal, itu biasanya temuan nyata, berarti `description` skill tidak memicu pada frasa prompt. Sesuaikan deskripsi dan jalankan ulang suite yang sama.714Jika plugin memang dimuat dan `Δ` masih mendekati nol dengan grader `tool_used: Skill` Anda gagal, itu biasanya temuan nyata, berarti `description` skill tidak memicu pada frasa prompt. Sesuaikan deskripsi dan jalankan ulang suite yang sama.

700 715 

701<h3 id="agent-type-’-’-not-found-for-one-of-your-plugin’s-agents">716<h3 id="agent-type-’-’-not-found-for-one-of-your-plugin’s-agents">

702 "Agent type '...' not found" untuk salah satu agen plugin Anda717 "Agent type '...' not found" for one of your plugin's agents

703</h3>718</h3>

704 719 

705Secara default setiap kasus berjalan baik dengan plugin Anda maupun tanpanya, dan run tanpanya adalah [baseline tanpa plugin](#the-no-plugin-baseline). Ketika Claude mengirimkan salah satu agen plugin Anda dalam run baseline, panggilan alat Agent gagal dengan `Agent type '<plugin>:<agent-name>' not found. Available agents: ...`. Daftar hanya menamai agen yang ada tanpa plugin, seperti [subagen bawaan](/docs/id/sub-agents#built-in-subagents).720Secara default setiap kasus berjalan baik dengan plugin Anda maupun tanpanya, dan run tanpanya adalah [baseline tanpa plugin](#the-no-plugin-baseline). Ketika Claude mengirimkan salah satu agen plugin Anda dalam run baseline, panggilan alat Agent gagal dengan `Agent type '<plugin>:<agent-name>' not found. Available agents: ...`. Daftar hanya menamai agen yang ada tanpa plugin, seperti [subagen bawaan](/docs/id/sub-agents#built-in-subagents).


709Dalam run dengan plugin Anda dimuat, kasus yang mencantumkan `Agent` dalam `allowed_tools` dapat mengirimkan salah satu agen plugin Anda dengan nama yang diberi namespace, seperti `my-plugin:code-reviewer` untuk agen `code-reviewer` dalam plugin bernama `my-plugin`. Untuk melewati run baseline, lewati `--ablation none`.724Dalam run dengan plugin Anda dimuat, kasus yang mencantumkan `Agent` dalam `allowed_tools` dapat mengirimkan salah satu agen plugin Anda dengan nama yang diberi namespace, seperti `my-plugin:code-reviewer` untuk agen `code-reviewer` dalam plugin bernama `my-plugin`. Untuk melewati run baseline, lewati `--ablation none`.

710 725 

711<h3 id="everything-scores-zero-although-the-right-files-were-produced">726<h3 id="everything-scores-zero-although-the-right-files-were-produced">

712 Semuanya mencetak nol meskipun file yang benar diproduksi727 Everything scores zero although the right files were produced

713</h3>728</h3>

714 729 

715Grader Anda menargetkan `files`, daftar jalur yang dibuat, ketika Anda bermaksud konten file. Gunakan `{ source: file, path: <path> }` sebagai `target` atau `focus`. Terpisah, `file_exists` menghitung hanya file yang dibuat selama run, jadi file yang dibuat scaffold atau yang hanya diedit Claude tidak terlihat; nilai kontennya, atau gunakan `tool_used` pada `Edit`.730Grader Anda menargetkan `files`, daftar jalur yang dibuat, ketika Anda bermaksud konten file. Gunakan `{ source: file, path: <path> }` sebagai `target` atau `focus`. Terpisah, `file_exists` menghitung hanya file yang dibuat selama run, jadi file yang dibuat scaffold atau yang hanya diedit Claude tidak terlihat; nilai kontennya, atau gunakan `tool_used` pada `Edit`.

716 731 

717<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">732<h3 id="a-regex-over-the-trace-doesn’t-match-text-i-can-see">

718 Regex atas trace tidak cocok dengan teks yang dapat saya lihat733 A regex over the trace doesn't match text I can see

719</h3>734</h3>

720 735 

721* **Target yang salah**: `target` default adalah `last_message`, bukan trace.736* **Wrong target**: `target` default adalah `last_message`, bukan trace.

722* **Escaping JSON**: ketika Anda menargetkan `trace`, itu JSON per baris, jadi kutipan muncul sebagai `\"`.737* **JSON escaping**: ketika Anda menargetkan `trace`, itu JSON per baris, jadi kutipan muncul sebagai `\"`.

723* **Sintaks regex**: regex menggunakan sintaks JavaScript, jadi letakkan `i` di `flags` daripada menulis `(?i)`.738* **Regex syntax**: regex menggunakan sintaks JavaScript, jadi letakkan `i` di `flags` daripada menulis `(?i)`.

724 739 

725<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">740<h3 id="tools-are-denied-mcp-tools-are-missing-or-bash-won’t-run">

726 Alat ditolak, alat MCP hilang, atau Bash tidak akan berjalan741 Tools are denied, MCP tools are missing, or Bash won't run

727</h3>742</h3>

728 743 

729Apa pun di luar set read-only memerlukan grant Anda, seperti `--allow-tools Bash Write`. Server MCP pribadi Anda tidak pernah dimuat dalam run. Server plugin sendiri tidak dimulai kecuali Anda [opt in](#mock-mcp-servers), dan alatnya kemudian juga memerlukan grant `--allow-tools "mcp__plugin_<plugin>_<server>__*"`; alat yang dimock tidak memerlukan keduanya.744Apa pun di luar set read-only memerlukan grant Anda, seperti `--allow-tools Bash Write`. Server MCP pribadi Anda tidak pernah dimuat dalam run. Server plugin sendiri tidak dimulai kecuali Anda [opt in](#mock-mcp-servers), dan alatnya kemudian juga memerlukan grant `--allow-tools "mcp__plugin_<plugin>_<server>__*"`; alat yang dimock tidak memerlukan keduanya.

730 745 

731<h3 id="the-run-exits-1-but-the-results-look-fine">746<h3 id="the-run-exits-1-but-the-results-look-fine">

732 Run keluar 1 tetapi hasilnya terlihat baik747 The run exits 1 but the results look fine

733</h3>748</h3>

734 749 

735Default `--threshold` adalah 1.0, jadi perintah keluar 1 ketika kasus apa pun mencetak di bawah sempurna. Atur ambang yang cocok dengan skor yang Anda perlukan. Keluar 1 juga mencakup file kasus yang gagal dimuat, yang dilaporkan di stderr di atas tabel.750Default `--threshold` adalah 1.0, jadi perintah keluar 1 ketika kasus apa pun mencetak di bawah sempurna. Atur ambang yang cocok dengan skor yang Anda perlukan. Keluar 1 juga mencakup file kasus yang gagal dimuat, yang dilaporkan di stderr di atas tabel.

736 751 

737<h3 id="json-output-path-must-end-in-json">752<h3 id="json-output-path-must-end-in-json">

738 "--json output path must end in .json"753 `--json output path must end in .json`

739</h3>754</h3>

740 755 

741Anda menempatkan target setelah `--json`, jadi itu dibaca sebagai jalur output. Letakkan target terlebih dahulu, seperti dalam `claude plugin eval . --json`, atau berikan `--json` jalur `.json` eksplisit.756Anda menempatkan target setelah `--json`, jadi itu dibaca sebagai jalur output. Letakkan target terlebih dahulu, seperti dalam `claude plugin eval . --json`, atau berikan `--json` jalur `.json` eksplisit.

742 757 

743<h3 id="a-grader-shows-passed-false-under-a-run-that-scored-1-0">758<h3 id="a-grader-shows-passed-false-under-a-run-that-scored-1-0">

744 Grader menunjukkan passed: false di bawah run yang mencetak 1.0759 A grader shows passed: false under a run that scored 1.0

745</h3>760</h3>

746 761 

747Grader itu dikecualikan dari skor dengan desain dalam run dua-arm, dan field `scored`-nya adalah `false`. Lihat [Bandingkan dengan baseline tanpa plugin](#compare-against-a-no-plugin-baseline).762Grader itu dikecualikan dari skor dengan desain dalam run dua-arm, dan field `scored`-nya adalah `false`. Lihat [Bandingkan dengan baseline tanpa plugin](#compare-against-a-no-plugin-baseline).

748 763 

749<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">764<h3 id="runs-fail-with-a-usage-limit-or-rate-limit-error-partway-through">

750 Run gagal dengan kesalahan batas penggunaan atau batas laju setengah jalan765 Runs fail with a usage-limit or rate-limit error partway through

751</h3>766</h3>

752 767 

753Jika akun Anda mencapai batas penggunaan rencana atau batas laju API saat suite berjalan, setiap run kemudian berakhir dengan kesalahan itu, dinilai pada apa yang dihasilkannya, dan biasanya mencetak 0. Suite masih selesai dan tidak ditandai `partial`, jadi hasilnya dapat terlihat seperti regresi. Periksa kolom `NOTES` atau `cases[].arms.with[].error` dalam JSON untuk pesan batas sebelum mempercayai skor, kemudian jalankan ulang setelah batas disetel ulang, dengan `--runs 1` atau filter `--case` jika Anda perlu tetap di bawahnya.768Jika akun Anda mencapai batas penggunaan rencana atau batas laju API saat suite berjalan, setiap run kemudian berakhir dengan kesalahan itu, dinilai pada apa yang dihasilkannya, dan biasanya mencetak 0. Suite masih selesai dan tidak ditandai `partial`, jadi hasilnya dapat terlihat seperti regresi. Periksa kolom `NOTES` atau `cases[].arms.with[].error` dalam JSON untuk pesan batas sebelum mempercayai skor, kemudian jalankan ulang setelah batas disetel ulang, dengan `--runs 1` atau filter `--case` jika Anda perlu tetap di bawahnya.

754 769 

755<h3 id="runs-time-out-or-hit-the-turn-cap">770<h3 id="runs-time-out-or-hit-the-turn-cap">

756 Run timeout atau mencapai batas turn771 Runs time out or hit the turn cap

757</h3>772</h3>

758 773 

759Default adalah 10 turn dan 300 detik. Naikkan `max_turns` dan `timeout_seconds` dalam kasus untuk tugas yang memerlukan lebih banyak, dan gunakan `--max-cost-usd` sebagai batas biaya daripada batas per-run yang ketat.774Default adalah 10 turn dan 300 detik. Naikkan `max_turns` dan `timeout_seconds` dalam kasus untuk tugas yang memerlukan lebih banyak, dan gunakan `--max-cost-usd` sebagai batas biaya daripada batas per-run yang ketat.

Details

132 Langkah berikutnya132 Langkah berikutnya

133</h2>133</h2>

134 134 

135* [Publish and distribute a plugin](/docs/id/plugins/publish): rute ke setiap marketplace, termasuk marketplace resmi, yang hint memerlukan135* [Publish and distribute a plugin](/docs/id/plugins/publish): rute untuk mendistribusikan plugin, termasuk marketplace resmi, yang diperlukan oleh hint

136* [Plugin commands reference](/docs/id/plugins/cli-reference#plugin-install): perintah shell yang memasang plugin yang sama di luar sesi136* [Plugin commands reference](/docs/id/plugins/cli-reference#plugin-install): perintah shell yang memasang plugin yang sama di luar sesi

Details

163 163 

164Claude Code mencetak `Successfully uninstalled plugin: formatter (scope: project)`. Ketika plugin tidak diinstal di cakupan itu, perintah mencetak baris yang dimulai `Failed to uninstall plugin "formatter@my-marketplace":` dan keluar `1`.164Claude Code mencetak `Successfully uninstalled plugin: formatter (scope: project)`. Ketika plugin tidak diinstal di cakupan itu, perintah mencetak baris yang dimulai `Failed to uninstall plugin "formatter@my-marketplace":` dan keluar `1`.

165 165 

166Jika baris kegagalan berlanjut dengan `"formatter" was not uninstalled:`, Claude Code tidak dapat mengonfirmasi bahwa pengaturan cakupan tidak lagi menghidupkan plugin, jadi plugin tetap diinstal dengan semua yang disimpannya. Dengan `--json`, hasil membawa `failureCode: "settings_still_on"`. Pemeriksaan pengaturan ini memerlukan Claude Code v2.1.282 atau lebih baru.

167 

168<h4 id="what-an-uninstall-deletes-and-keeps">

169 Apa yang dihapus dan disimpan uninstall

170</h4>

171 

172Ketika Anda mencopot plugin dari cakupan terakhir yang diinstal, Claude Code juga menghapus [opsi dan rahasia](/docs/id/plugins/manifest-reference#user-configuration) plugin yang disimpan dan direktori datanya, `~/.claude/plugins/data/<id>/`. Ada tiga pengecualian:

173 

174* Dengan `--keep-data`, direktori data tetap

175* Ketika plugin yang diinstal lain menggunakan folder yang sama, seperti yang ID-nya berbeda dari yang ini hanya dalam huruf besar, direktori data tetap

176* Ketika Claude Code tidak dapat membaca daftar plugin yang diinstal kembali setelah menghapus plugin dari cakupan itu, opsi, rahasia, dan direktori data semuanya tetap, karena plugin mungkin masih diinstal di cakupan lain. Uninstall masih berhasil. Pesan mencantumkan apa yang tetap dan cara menghapusnya, dan dengan `--json` hasil membawa `savedKept: "install_records_unreadable"`

177 

178Dengan `--json`, `keptData` melaporkan apakah direktori tetap, dan `/plugin` menunjukkan `· data preserved` ketika itu terjadi. Untuk direktori yang tetap tanpa `--keep-data`, pelaporan ini memerlukan Claude Code v2.1.281 atau lebih baru. Field `savedKept` memerlukan Claude Code v2.1.282 atau lebih baru.

179 

166<h3 id="plugin-enable">180<h3 id="plugin-enable">

167 plugin enable181 plugin enable

168</h3>182</h3>


246 260 

247| Flag | Deskripsi |261| Flag | Deskripsi |

248| :- | :- |262| :- | :- |

249| `-s, --scope <scope>` | Cakupan untuk diperbarui: `user`, `project`, `local`, atau `managed`. Default ke cakupan tempat plugin diinstal |263| `-s, --scope <scope>` | Cakupan untuk diperbarui: `user`, `project`, `local`, atau `managed`. Terdeteksi otomatis ketika dihilangkan |

250| `-y, --yes` | Terima perintah instal yang berubah dari plugin [command-source](/docs/id/plugins/host-marketplace), tanpa prompt. Diperlukan ketika stdin atau stdout bukan TTY, kecuali Anda melewatkan `--accept-command`. Memerlukan Claude Code v2.1.229 atau lebih baru |264| `-y, --yes` | Terima perintah instal yang berubah dari plugin [command-source](/docs/id/plugins/host-marketplace), tanpa prompt. Diperlukan ketika stdin atau stdout bukan TTY, kecuali Anda melewatkan `--accept-command`. Memerlukan Claude Code v2.1.229 atau lebih baru |

251| `--accept-command <sha256>` | Terima perintah yang dideklarasikan marketplace yang `sha256` sebelumnya [`--json` run](#plugin-json-result) dilaporkan dalam `shownCommand`, sebagai pengganti `-y`. Tidak dapat digabungkan dengan `-y`. Memerlukan Claude Code v2.1.271 atau lebih baru |265| `--accept-command <sha256>` | Terima perintah yang dideklarasikan marketplace yang `sha256` sebelumnya [`--json` run](#plugin-json-result) dilaporkan dalam `shownCommand`, sebagai pengganti `-y`. Tidak dapat digabungkan dengan `-y`. Memerlukan Claude Code v2.1.271 atau lebih baru |

252| `--json` | Cetak hasil sebagai satu objek JSON pada baris terakhir stdout, dalam [format yang sama seperti `plugin install --json`](#plugin-json-result). Memerlukan Claude Code v2.1.268 atau lebih baru |266| `--json` | Cetak hasil sebagai satu objek JSON pada baris terakhir stdout, dalam [format yang sama seperti `plugin install --json`](#plugin-json-result). Memerlukan Claude Code v2.1.268 atau lebih baru |

253 267 

268Jika Anda menghilangkan `--scope`, perintah memperbarui plugin di cakupan paling spesifik yang diinstal untuk proyek saat ini, memeriksa lokal, proyek, pengguna, kemudian terkelola.

269 

270Sebelum v2.1.281, perintah menggunakan `user` ketika Anda menghilangkan `--scope`, jadi memperbarui plugin yang diinstal hanya di cakupan proyek atau lokal gagal dengan `Plugin "<name>" is not installed at scope user`. Pada versi itu, lewatkan `--scope`.

271 

254`managed` adalah satu-satunya cakupan yang dapat Anda perbarui tetapi tidak instal. Untuk plugin yang diinstal admin, lihat [Kelola plugin untuk organisasi Anda](/docs/id/plugins/org).272`managed` adalah satu-satunya cakupan yang dapat Anda perbarui tetapi tidak instal. Untuk plugin yang diinstal admin, lihat [Kelola plugin untuk organisasi Anda](/docs/id/plugins/org).

255 273 

256Perbarui plugin:274Perbarui plugin:

Details

413 413 

414 * **Membangun plugin pertama Anda**: mulai dengan [Buat plugin](/docs/id/plugins/create)414 * **Membangun plugin pertama Anda**: mulai dengan [Buat plugin](/docs/id/plugins/create)

415 * **Memasang plugin orang lain**: lihat [Pasang plugins](/docs/id/plugins/install)415 * **Memasang plugin orang lain**: lihat [Pasang plugins](/docs/id/plugins/install)

416 * **Pengguna plugin Anda berada di claude.ai atau di Cowork**: serangkaian komponen yang berbeda dimuat di sana. Lihat [Plugins di claude.ai dan di Cowork](https://claude.com/docs/plugins/overview)416 * **Pengguna plugin Anda berada di claude.ai atau di Cowork**: serangkaian komponen yang berbeda dimuat di sana. Lihat [Struktur plugin dan pengujian](https://claude.com/docs/plugins/build) dan [tabel dukungan komponen](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)

417</Note>417</Note>

418 418 

419<h2 id="explore-the-plugin-directory">419<h2 id="explore-the-plugin-directory">


436 436 

437<PluginExplorer>437<PluginExplorer>

438 <Piece id="manifest">438 <Piece id="manifest">

439 [Manifest](/docs/id/plugins/manifest-reference) adalah file `plugin.json` di direktori `.claude-plugin/` plugin. Ini berisi metadata plugin dan nilai `userConfig` yang diminta Claude Code kepada pengguna. Hanya `name` yang diperlukan. Di sini, `description` adalah teks yang dilihat pengguna untuk plugin di `/plugin`, dan `version` membuat pengguna tetap pada versi itu sampai Anda mengubahnya:439 [Manifest](/docs/id/plugins/manifest-reference) adalah file `plugin.json` di direktori `.claude-plugin/` plugin. Ini berisi metadata plugin dan nilai `userConfig` yang diminta Claude Code kepada pengguna. Claude Code memuat plugin tanpa satu, tetapi [direktori Anthropic](/docs/id/plugins/publish#submit-to-anthropics-directory) memerlukan satu. Di dalam file, hanya `name` yang diperlukan. Di sini, `description` adalah teks yang dilihat pengguna untuk plugin di `/plugin`, dan `version` membuat pengguna tetap pada versi itu sampai Anda mengubahnya:

440 440 

441 ```json theme={null}441 ```json theme={null}

442 {442 {


838 Jangkau pengguna di claude.ai dan Cowork838 Jangkau pengguna di claude.ai dan Cowork

839</h4>839</h4>

840 840 

841Server stdio lokal, seperti server `db` di bawah [Server MCP](#mcp-servers), berjalan di Claude Code dan dalam sesi Cowork yang berjalan di mesin Anda di aplikasi Claude Desktop, tetapi bukan di claude.ai. Untuk menjangkau pengguna di sana juga, referensikan server jarak jauh dengan URL `https://`-nya, yang claude.ai dan Cowork tawarkan kepada pengguna sebagai konektor.841Server stdio lokal, seperti server `db` di bawah [Server MCP](#mcp-servers), berjalan di Claude Code dan dalam sesi Cowork yang berjalan di mesin Anda di aplikasi Claude Desktop, tetapi bukan di claude.ai. Untuk menjangkau pengguna di sana juga, referensikan server jarak jauh dengan URL `https://`-nya, yang claude.ai dan Cowork tawarkan kepada pengguna sebagai konektor, seperti yang ditunjukkan [Bundle an MCP connector with its skill](https://claude.com/docs/plugins/build#bundle-an-mcp-connector-with-its-skill).

842 842 

843<h4 id="server-names-tool-names-and-reloads">843<h4 id="server-names-tool-names-and-reloads">

844 Nama server, nama tool, dan reload844 Nama server, nama tool, dan reload


918 918 

919Direktori `bin/` plugin datang setelah entri `PATH` pengguna sendiri, jadi plugin tidak dapat menaungi `git`, `ls`, atau perintah sistem lainnya.919Direktori `bin/` plugin datang setelah entri `PATH` pengguna sendiri, jadi plugin tidak dapat menaungi `git`, `ls`, atau perintah sistem lainnya.

920 920 

921claude.ai dan Cowork tidak memasang plugin yang memiliki direktori `bin/` level atas, termasuk yang Anda [distribusikan melalui pengaturan organisasi claude.ai](/docs/id/plugins/host-marketplace#distribute-through-organization-settings).921claude.ai dan Cowork tidak memasang plugin yang memiliki direktori `bin/` level atas, termasuk yang Anda [distribusikan melalui pengaturan organisasi claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory).

922 922 

923<h3 id="default-settings">923<h3 id="default-settings">

924 Pengaturan default924 Pengaturan default

Details

15 15 

16 * **Memasang plugin orang lain**: lihat [Install plugins](/docs/id/plugins/install)16 * **Memasang plugin orang lain**: lihat [Install plugins](/docs/id/plugins/install)

17 * **Tidak yakin Anda memerlukan plugin**: lihat [Decide whether you need a plugin](/docs/id/plugins/overview#decide-whether-you-need-a-plugin) di overview17 * **Tidak yakin Anda memerlukan plugin**: lihat [Decide whether you need a plugin](/docs/id/plugins/overview#decide-whether-you-need-a-plugin) di overview

18 * **Pengguna plugin Anda berada di claude.ai atau di Cowork**: folder yang sama dipasang di sana dengan subset komponen yang berbeda. Lihat [Plugins on claude.ai and in Cowork](https://claude.com/docs/plugins/overview)18 * **Pengguna plugin Anda berada di claude.ai atau di Cowork**: folder yang sama dipasang di sana dengan subset komponen yang berbeda. Lihat [Plugin structure and testing](https://claude.com/docs/plugins/build) dan [component support table](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)

19</Note>19</Note>

20 20 

21Mulai dari bagian yang sesuai dengan apa yang sudah Anda miliki:21Mulai dari bagian yang sesuai dengan apa yang sudah Anda miliki:


132 132 

133Plugin dimuat hanya dalam sesi yang Anda mulai dengan `--plugin-dir`. Untuk terus bekerja padanya tanpa flag, atau untuk menguji build `.zip`, lihat [Develop without a marketplace](#develop-without-a-marketplace).133Plugin dimuat hanya dalam sesi yang Anda mulai dengan `--plugin-dir`. Untuk terus bekerja padanya tanpa flag, atau untuk menguji build `.zip`, lihat [Develop without a marketplace](#develop-without-a-marketplace).

134 134 

135Untuk membuat Claude scaffold dan memeriksa plugin yang lebih besar dengan Anda, [install](/docs/id/plugins/install#install-a-plugin) plugin `plugin-dev` Anthropic dari marketplace `claude-plugins-official`, yang menambahkan skills dan agents untuk menulis komponen seperti skills, hooks, dan MCP servers dan untuk memvalidasi plugin yang selesai. Setelah diinstal, jalankan `/plugin-dev:create-plugin` diikuti dengan deskripsi plugin yang ingin Anda buat, dan Claude akan memandu Anda melalui desain, pembuatan, dan validasinya.

136 

135<h3 id="share-the-plugin">137<h3 id="share-the-plugin">

136 Bagikan plugin Anda138 Bagikan plugin Anda

137</h3>139</h3>


140 142 

141* **Kirimkan langsung ke beberapa orang**: berikan mereka direktori plugin atau `.zip` darinya, dan tidak ada yang perlu dipublikasikan. Lihat [Share a plugin without a marketplace](/docs/id/plugins/publish#share-a-plugin-without-a-marketplace).143* **Kirimkan langsung ke beberapa orang**: berikan mereka direktori plugin atau `.zip` darinya, dan tidak ada yang perlu dipublikasikan. Lihat [Share a plugin without a marketplace](/docs/id/plugins/publish#share-a-plugin-without-a-marketplace).

142* **Daftarkan di marketplace Anda sendiri**: rekan kerja menambahkan marketplace Anda sekali dan memasang plugin berdasarkan nama, dan mereka menerima update Anda. Lihat [Publish through your own marketplace](/docs/id/plugins/publish#publish-through-your-own-marketplace).144* **Daftarkan di marketplace Anda sendiri**: rekan kerja menambahkan marketplace Anda sekali dan memasang plugin berdasarkan nama, dan mereka menerima update Anda. Lihat [Publish through your own marketplace](/docs/id/plugins/publish#publish-through-your-own-marketplace).

143* **Kirimkan ke community marketplace Anthropic**: setelah terdaftar, siapa pun yang menambahkan marketplace itu dapat memasangnya. Lihat [Submit to the community marketplace](/docs/id/plugins/publish#submit-to-the-community-marketplace).145* **Kirimkan ke directory Anthropic**: setelah lulus review, orang dapat menambahkannya di claude.ai dan di Cowork, dan itu mencapai Claude Code melalui akun mereka. Lihat [Submit to Anthropic's directory](/docs/id/plugins/publish#submit-to-anthropics-directory).

144 146 

145<h3 id="plugin-layout">147<h3 id="plugin-layout">

146 Plugin layout148 Plugin layout


201 203 

202Jika folder tidak memiliki direktori `.claude-plugin/` dan tidak memiliki komponen plugin di tingkat atasnya, Claude Code memperlakukannya sebagai folder plugin. Setiap subfolder langsung yang memiliki manifest `.claude-plugin/plugin.json` kemudian dimuat sebagai plugin terpisah. Semua yang lain di folder dilewati tanpa kesalahan, termasuk subfolder yang tidak memiliki manifest. Jika plugin di folder tidak dimuat, periksa bahwa subfoldernya memiliki `.claude-plugin/plugin.json`.204Jika folder tidak memiliki direktori `.claude-plugin/` dan tidak memiliki komponen plugin di tingkat atasnya, Claude Code memperlakukannya sebagai folder plugin. Setiap subfolder langsung yang memiliki manifest `.claude-plugin/plugin.json` kemudian dimuat sebagai plugin terpisah. Semua yang lain di folder dilewati tanpa kesalahan, termasuk subfolder yang tidak memiliki manifest. Jika plugin di folder tidak dimuat, periksa bahwa subfoldernya memiliki `.claude-plugin/plugin.json`.

203 205 

206Anda juga dapat melewatkan folder yang menyimpan `.claude-plugin/marketplace.json` di samping folder pluginnya. Selama direktori `.claude-plugin/` itu tidak menyimpan `plugin.json`, folder plugin masih dimuat. Tidak ada yang diinstal atau diaktifkan dari file marketplace, karena Claude Code tidak membacanya. Memuat plugin dari folder seperti itu memerlukan Claude Code v2.1.281 atau lebih baru.

207 

204Dalam sesi interaktif, Anda juga dapat menambah dan menghapus plugin di folder setelah startup:208Dalam sesi interaktif, Anda juga dapat menambah dan menghapus plugin di folder setelah startup:

205 209 

206* Subfolder yang Anda tambahkan dimuat sebagai plugin baru setelah manifestnya ada.210* Subfolder yang Anda tambahkan dimuat sebagai plugin baru setelah manifestnya ada.


417 421 

418* [Plugin components](/docs/id/plugins/components): tambahkan agents, hooks, MCP servers, LSP servers, dan user configuration ke plugin Anda422* [Plugin components](/docs/id/plugins/components): tambahkan agents, hooks, MCP servers, LSP servers, dan user configuration ke plugin Anda

419* [Test plugins with evals](/docs/id/plugin-evals): tulis kasus eval dan jalankan dengan `claude plugin eval` untuk memeriksa seberapa andal plugin memandu perilaku Claude423* [Test plugins with evals](/docs/id/plugin-evals): tulis kasus eval dan jalankan dengan `claude plugin eval` untuk memeriksa seberapa andal plugin memandu perilaku Claude

420* [Publish a plugin](/docs/id/plugins/publish): versi itu, masukkan ke marketplace, dan kirimkan ke community marketplace424* [Publish a plugin](/docs/id/plugins/publish): versi itu, masukkan ke marketplace, dan kirimkan untuk ditinjau

421* [Plugins on claude.ai and in Cowork](https://claude.com/docs/plugins/overview): folder plugin yang sama dipasang di claude.ai dan di Cowork. Beberapa komponen hanya Claude Code425* [Plugin structure and testing](https://claude.com/docs/plugins/build): folder plugin yang sama dipasang di claude.ai dan di Cowork. Beberapa komponen hanya Claude Code, dan [tabel dukungan komponen](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) mencantumkan mana yang dimuat di setiap permukaan

422* [Plugin manifest reference](/docs/id/plugins/manifest-reference): setiap field `plugin.json`, aturan path, dan direktori426* [Plugin manifest reference](/docs/id/plugins/manifest-reference): setiap field `plugin.json`, aturan path, dan direktori

423* [Skills](/docs/id/skills): tulis skills yang disediakan plugin Anda427* [Skills](/docs/id/skills): tulis skills yang disediakan plugin Anda

424* [Anthropic's plugins in the claude-code repository](https://github.com/anthropics/claude-code/tree/main/plugins): contoh lengkap yang dikerjakan dari layout di halaman ini, seperti `feature-dev` dan `code-review`428* [Anthropic's plugins in the claude-code repository](https://github.com/anthropics/claude-code/tree/main/plugins): contoh lengkap yang dikerjakan dari layout di halaman ini, seperti `feature-dev` dan `code-review`

Details

14 Kasus-kasus ini tercakup di halaman lain:14 Kasus-kasus ini tercakup di halaman lain:

15 15 

16 * **Berbagi satu plugin dengan beberapa orang**: kirimkan mereka direktori plugin atau `.zip` darinya. Lihat [Bagikan plugin tanpa marketplace](/docs/id/plugins/publish#share-a-plugin-without-a-marketplace).16 * **Berbagi satu plugin dengan beberapa orang**: kirimkan mereka direktori plugin atau `.zip` darinya. Lihat [Bagikan plugin tanpa marketplace](/docs/id/plugins/publish#share-a-plugin-without-a-marketplace).

17 * **Menawarkan plugin kepada semua orang**: kirimkan ke marketplace komunitas Anthropic. Lihat [Kirim ke marketplace komunitas](/docs/id/plugins/publish#submit-to-the-community-marketplace).17 * **Menawarkan plugin kepada semua orang**: kirimkan ke marketplace komunitas Anthropic. Lihat [Kirim ke marketplace komunitas](/docs/id/plugins/publish#submit-to-anthropics-directory).

18 * **Menggunakan plugin sendiri**: muat dengan `--plugin-dir` atau simpan di direktori skills Anda. Lihat [Kembangkan tanpa marketplace](/docs/id/plugins/create#develop-without-a-marketplace).18 * **Menggunakan plugin sendiri**: muat dengan `--plugin-dir` atau simpan di direktori skills Anda. Lihat [Kembangkan tanpa marketplace](/docs/id/plugins/create#develop-without-a-marketplace).

19</Note>19</Note>

20 20 

Details

89Organization sync lebih ketat tentang repositori daripada `/plugin marketplace add`:89Organization sync lebih ketat tentang repositori daripada `/plugin marketplace add`:

90 90 

91* **Marketplace repository**: di github.com dan gitlab.com, harus pribadi atau internal91* **Marketplace repository**: di github.com dan gitlab.com, harus pribadi atau internal

92* **Plugin sources**: setiap plugin source harus bertipe `github`, `url`, atau `git-subdir`, atau [relative path](/docs/id/plugins/marketplace-reference#relative-path-plugin-source) yang dimulai dengan `./`92* **Plugin sources**: organization sync hanya menerima beberapa [source types](/docs/id/plugins/marketplace-reference#plugin-sources)

93* **Top-level `bin/` directory**: claude.ai menolak plugin yang memilikinya dan mensinkronkan sisa marketplace. Pesan kesalahan dimulai dengan `Plugin contains a top-level bin/ directory`. Simpan executable di direktori lain, seperti `scripts/`, dan referensikan sebagai `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` dari hooks atau konfigurasi server MCP Anda93* **Top-level `bin/` directory**: claude.ai menolak plugin yang memilikinya dan mensinkronkan sisa marketplace. Pesan kesalahan dimulai dengan `Plugin contains a top-level bin/ directory`. Simpan executable di direktori lain, seperti `scripts/`, dan referensikan sebagai `${CLAUDE_PLUGIN_ROOT}/scripts/<name>` dari hooks atau konfigurasi server MCP Anda

94 94 

95Lihat [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) untuk workflow admin.95[Sync your organization's plugins from a repository](https://claude.com/docs/plugins/org-sync) di claude.com mencantumkan source yang diterima, setup GitLab, dan error `bin/`, dan [Manage plugins for your organization](https://claude.com/docs/plugins/admin) mencakup workflow admin.

96 96 

97<h2 id="grant-access-to-a-private-marketplace">97<h2 id="grant-access-to-a-private-marketplace">

98 Grant access to a private marketplace98 Grant access to a private marketplace


113 113 

114Untuk host GitHub Enterprise Server, pengguna memerlukan akses git ke host itu dari mesin mereka. Lihat [Plugin marketplaces on GHES](/docs/id/github-enterprise-server#plugin-marketplaces-on-ghes) untuk apa yang setiap permukaan Claude Code butuhkan untuk mencapai marketplace yang dihosting GHES.114Untuk host GitHub Enterprise Server, pengguna memerlukan akses git ke host itu dari mesin mereka. Lihat [Plugin marketplaces on GHES](/docs/id/github-enterprise-server#plugin-marketplaces-on-ghes) untuk apa yang setiap permukaan Claude Code butuhkan untuk mencapai marketplace yang dihosting GHES.

115 115 

116Jika Anda mendistribusikan melalui **Organization settings > Plugins & skills** di claude.ai sebagai gantinya, kredensial git pengguna Anda tidak terlibat. Lihat [Distribute through organization settings](#distribute-through-organization-settings) untuk plugin source mana yang dapat pribadi di sana.116Jika Anda mendistribusikan melalui **Organization settings > Plugins & skills** di claude.ai sebagai gantinya, kredensial git pengguna Anda tidak terlibat. Lihat [Distribute through organization settings](#distribute-through-organization-settings).

117 117 

118<h3 id="serve-users-who-have-no-git-host-account">118<h3 id="serve-users-who-have-no-git-host-account">

119 Serve users who have no git-host account119 Serve users who have no git-host account

Details

143Cakupan instalasi plugin memutuskan siapa yang mendapatkan plugin dan file pengaturan mana yang mencatat sebagai diaktifkan:143Cakupan instalasi plugin memutuskan siapa yang mendapatkan plugin dan file pengaturan mana yang mencatat sebagai diaktifkan:

144 144 

145* **User scope**: plugin diaktifkan untuk Anda di setiap proyek di mesin ini. Entri masuk di `enabledPlugins` di `~/.claude/settings.json`.145* **User scope**: plugin diaktifkan untuk Anda di setiap proyek di mesin ini. Entri masuk di `enabledPlugins` di `~/.claude/settings.json`.

146* **Project scope**: plugin diaktifkan untuk semua orang yang bekerja di repository ini. Entri masuk di `.claude/settings.json`, yang Anda commit.146* **Project scope**: plugin diaktifkan untuk semua orang yang bekerja di repository ini. Entri masuk di `.claude/settings.json`, yang Anda commit. Melakukan commit entri itu mengaktifkan plugin untuk kolaborator Anda tetapi tidak mengunduhnya ke mesin mereka, jadi setiap kolaborator juga menjalankan `claude plugin install <name>@<marketplace> --scope project` sekali; lihat [Enabled in project settings but not installed](/docs/id/plugins/loading#enabled-in-project-settings-but-not-installed).

147* **Local scope**: plugin diaktifkan untuk Anda di repository ini saja. Entri masuk di `.claude/settings.local.json`.147* **Local scope**: plugin diaktifkan untuk Anda di repository ini saja. Entri masuk di `.claude/settings.local.json`.

148 148 

149Beberapa plugin diatur oleh penulis mereka untuk mulai dimatikan, melalui bidang [`defaultEnabled`](/docs/id/plugins/manifest-reference#defaultenabled). Plugin seperti itu diinstal tetapi tetap mati sampai Anda mengaktifkannya dengan `claude plugin enable <name>` di shell Anda, atau dari tab **Installed** dari `/plugin` dalam sesi.149Beberapa plugin diatur oleh penulis mereka untuk mulai dimatikan, melalui bidang [`defaultEnabled`](/docs/id/plugins/manifest-reference#defaultenabled). Plugin seperti itu diinstal tetapi tetap mati sampai Anda mengaktifkannya dengan `claude plugin enable <name>` di shell Anda, atau dari tab **Installed** dari `/plugin` dalam sesi.

Details

100 100 

101Dalam sesi terminal, skill, agent, hooks, server MCP, dan server LSP plugin yang disinkronkan semuanya dimuat, dengan kepercayaan yang sama seperti plugin marketplace yang Anda instal.101Dalam sesi terminal, skill, agent, hooks, server MCP, dan server LSP plugin yang disinkronkan semuanya dimuat, dengan kepercayaan yang sama seperti plugin marketplace yang Anda instal.

102 102 

103Untuk komponen yang dimuat Cowork, lihat [Plugin di claude.ai dan di Cowork](https://claude.com/docs/plugins/overview) di claude.com.103Untuk komponen yang dimuat Cowork, lihat [tabel dukungan komponen](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) di claude.com.

104 104 

105Plugin yang disinkronkan dimuat dalam sesi Cowork dan dalam sesi terminal di mana Anda masuk dengan akun claude.ai Anda:105Plugin yang disinkronkan dimuat dalam sesi Cowork dan dalam sesi terminal di mana Anda masuk dengan akun claude.ai Anda:

106 106 


184| Path | Apa yang disimpannya |184| Path | Apa yang disimpannya |

185| :- | :- |185| :- | :- |

186| `cache/<marketplace>/<plugin>/<version>/` | Satu direktori per versi plugin marketplace yang terinstal. `<plugin>` adalah nama entri marketplace dan `<version>` adalah [versi yang diselesaikan](#versions-and-updates). `${CLAUDE_PLUGIN_ROOT}` menunjuk ke direktori ini |186| `cache/<marketplace>/<plugin>/<version>/` | Satu direktori per versi plugin marketplace yang terinstal. `<plugin>` adalah nama entri marketplace dan `<version>` adalah [versi yang diselesaikan](#versions-and-updates). `${CLAUDE_PLUGIN_ROOT}` menunjuk ke direktori ini |

187| `data/<plugin-id>/` | Direktori persisten plugin, diekspos sebagai `${CLAUDE_PLUGIN_DATA}`. Untuk cara `<plugin-id>` dibentuk, lihat [Path variables and persistent data](/docs/id/plugins/components#path-variables-and-persistent-data). Claude Code membuatnya ketika komponen plugin pertama kali menggunakannya dan menyimpannya di seluruh pembaruan. Claude Code menghapusnya ketika Anda mencopot plugin dari scope terakhirnya, kecuali Anda melewatkan `--keep-data` |187| `data/<plugin-id>/` | Direktori persisten plugin, diekspos sebagai `${CLAUDE_PLUGIN_DATA}`. Untuk cara `<plugin-id>` dibentuk, lihat [Path variables and persistent data](/docs/id/plugins/components#path-variables-and-persistent-data). Claude Code membuatnya ketika komponen plugin pertama kali menggunakannya dan menyimpannya di seluruh pembaruan. Secara default, Claude Code menghapusnya ketika Anda mencopot plugin dari scope terakhirnya. Untuk `--keep-data` dan kasus lain di mana itu tetap ada, lihat [plugin uninstall](/docs/id/plugins/cli-reference#plugin-uninstall) |

188| `marketplaces/<name>/` | Klon atau unduhan marketplace yang ditambahkan dari GitHub, host Git lain, atau URL. Marketplace yang ditambahkan dari sumber `file` atau `directory` lokal tidak memiliki salinan di sini, dan `installLocation` dalam `known_marketplaces.json` adalah path yang Anda berikan |188| `marketplaces/<name>/` | Klon atau unduhan marketplace yang ditambahkan dari GitHub, host Git lain, atau URL. Marketplace yang ditambahkan dari sumber `file` atau `directory` lokal tidak memiliki salinan di sini, dan `installLocation` dalam `known_marketplaces.json` adalah path yang Anda berikan |

189| `synced/` | Plugin yang Claude Code [sinkronkan dari akun claude.ai Anda](#synced-plugins) |189| `synced/` | Plugin yang Claude Code [sinkronkan dari akun claude.ai Anda](#synced-plugins) |

190| `.trash/` | Plugin yang sinkronisasi claude.ai hapus, seperti setelah Anda mematikannya di claude.ai atau berhenti menyinkronkan |190| `.trash/` | Plugin yang sinkronisasi claude.ai hapus, seperti setelah Anda mematikannya di claude.ai atau berhenti menyinkronkan |

Details

116* **`Validation passed with warnings`**: manifest dimuat, tetapi validator menemukan sesuatu untuk diperbaiki, seperti field tingkat atas yang tidak diketahui yang Claude Code hapus, `name` yang bukan kebab-case, atau `version`, `description`, atau `author` yang hilang. Lewatkan `--strict` untuk mengubah peringatan menjadi kegagalan di CI116* **`Validation passed with warnings`**: manifest dimuat, tetapi validator menemukan sesuatu untuk diperbaiki, seperti field tingkat atas yang tidak diketahui yang Claude Code hapus, `name` yang bukan kebab-case, atau `version`, `description`, atau `author` yang hilang. Lewatkan `--strict` untuk mengubah peringatan menjadi kegagalan di CI

117* **`Validation failed`**: manifest memiliki ketidakcocokan tipe, path yang hilang atau keluar dari root plugin, atau kunci yang tidak diketahui di dalam opsi `userConfig`, entri `channels`, config `lspServers`, atau entri `monitors`. Claude Code melaporkan masalah yang sama saat memuat plugin117* **`Validation failed`**: manifest memiliki ketidakcocokan tipe, path yang hilang atau keluar dari root plugin, atau kunci yang tidak diketahui di dalam opsi `userConfig`, entri `channels`, config `lspServers`, atau entri `monitors`. Claude Code melaporkan masalah yang sama saat memuat plugin

118 118 

119Perintah juga memeriksa setiap entri server MCP yang dideklarasikan plugin dalam `.mcp.json`, dalam file `.json` yang dinamai [`mcpServers`](#mcpservers), atau inline dalam `plugin.json`. Pemeriksaan MCP ini memerlukan Claude Code v2.1.281 atau lebih baru dan mencakup:

120 

121* **Errors**: entri yang Claude Code akan hapus saat memuat plugin, referensi `${user_config.KEY}` ke opsi yang tidak dideklarasikan manifest, dan `url` jarak jauh yang bukan URL absolut yang valid

122* **Warnings**: `http://` atau `ws://` URL ke host non-loopback, dan nilai header yang terlihat seperti kredensial literal

123 

119<h2 id="fields">124<h2 id="fields">

120 Fields125 Fields

121</h2>126</h2>


387 Containment and existence392 Containment and existence

388</h3>393</h3>

389 394 

390Setiap path komponen harus diselesaikan di dalam root plugin dan harus ada. `claude plugin validate` tidak memeriksa path `outputStyles`, `lspServers`, `monitors`, atau `themes`, jadi path yang buruk di field tersebut gagal hanya saat plugin dimuat:395Setiap path komponen harus diselesaikan di dalam root plugin dan harus ada. `claude plugin validate` memeriksa path di bawah setiap kunci komponen:

391 396 

392* **Containment**: path yang diselesaikan di luar root plugin tidak dimuat, dan tab **Errors** `/plugin` menampilkan `<component> path escapes plugin directory: <path>`. Path yang berisi `..` adalah kasus biasa, dan `claude plugin validate` melaporkannya sebagai `Path contains ".." which could be a path traversal attempt`397* **Containment**: path yang diselesaikan di luar root plugin tidak dimuat, dan tab **Errors** `/plugin` menampilkan `<component> path escapes plugin directory: <path>`. Path yang berisi `..` adalah kasus biasa, dan `claude plugin validate` melaporkan kesalahan `Path contains ".." which could be a path traversal attempt`

393* **Existence**: path yang tidak ada tidak dimuat, dan tab **Errors** `/plugin` menampilkan `<component> path not found: <path>`. `claude plugin validate` melaporkannya sebagai `Path not found`398* **Existence**: path yang tidak ada tidak dimuat, dan tab **Errors** `/plugin` menampilkan `<component> path not found: <path>`. `claude plugin validate` melaporkan kesalahan `Path not found`

399 

400Untuk path `outputStyles`, `lspServers`, `monitors`, dan `themes`, pemeriksaan `claude plugin validate` memerlukan Claude Code v2.1.283 atau lebih baru.

394 401 

395<h3 id="how-each-key-combines-with-its-default-location">402<h3 id="how-each-key-combines-with-its-default-location">

396 How each key combines with its default location403 How each key combines with its default location


548```555```

549 556 

550<h2 id="environment-variables">557<h2 id="environment-variables">

551 Environment variables558 Variabel lingkungan

552</h2>559</h2>

553 560 

554Claude Code menyediakan tiga variabel path ke komponen plugin. Referensikan sebagai `${NAME}` di field yang tercantum di bawah [Where each variable resolves](#where-each-variable-resolves), dan bacanya sebagai variabel lingkungan dalam proses yang menerimanya.561Claude Code menyediakan tiga variabel path ke komponen plugin. Referensikan sebagai `${NAME}` di field yang tercantum di bawah [Where each variable resolves](#where-each-variable-resolves), dan bacanya sebagai variabel lingkungan dalam proses yang menerimanya.


561 568 

562`${CLAUDE_PLUGIN_ROOT}` berubah saat plugin diperbarui, jadi jangan tulis state di sana. Untuk di mana root bergerak dan kapan direktori lama dibersihkan, lihat [halaman loading](/docs/id/plugins/loading).569`${CLAUDE_PLUGIN_ROOT}` berubah saat plugin diperbarui, jadi jangan tulis state di sana. Untuk di mana root bergerak dan kapan direktori lama dibersihkan, lihat [halaman loading](/docs/id/plugins/loading).

563 570 

564Saat Anda mencopot plugin dari tempat terakhir diinstal, direktori `${CLAUDE_PLUGIN_DATA}` dihapus kecuali Anda melewatkan [`--keep-data`](/docs/id/plugins/cli-reference).571Secara default, Claude Code menghapus direktori `${CLAUDE_PLUGIN_DATA}` saat Anda mencopot plugin dari tempat terakhir diinstal. Untuk `--keep-data` dan kasus lain di mana direktori tetap ada, lihat [plugin uninstall](/docs/id/plugins/cli-reference#plugin-uninstall).

565 572 

566<h3 id="where-each-variable-resolves">573<h3 id="where-each-variable-resolves">

567 Where each variable resolves574 Where each variable resolves


589* **Hook commands**: gunakan [exec form](/docs/id/hooks#exec-form-and-shell-form) dengan `args` sehingga setiap path adalah satu argumen tanpa quoting596* **Hook commands**: gunakan [exec form](/docs/id/hooks#exec-form-and-shell-form) dengan `args` sehingga setiap path adalah satu argumen tanpa quoting

590* **Shell-form hooks dan monitor commands**: bungkus variabel dalam tanda kutip ganda sehingga path dengan spasi tetap satu kata597* **Shell-form hooks dan monitor commands**: bungkus variabel dalam tanda kutip ganda sehingga path dengan spasi tetap satu kata

591 598 

599Jika Anda meninggalkan salah satu variabel ini di luar tanda kutip dalam perintah bentuk shell dalam file hooks, `claude plugin validate` akan memperingatkan tentang hal itu kecuali hook menetapkan [`shell`](/docs/id/hooks#command-hook-fields) ke `"powershell"`.

600 

592Hook bentuk shell ini menjalankan skrip yang dikemas dengan plugin:601Hook bentuk shell ini menjalankan skrip yang dikemas dengan plugin:

593 602 

594```json theme={null}603```json theme={null}


629| Workflows | `workflows/` | File workflow `.js` |638| Workflows | `workflows/` | File workflow `.js` |

630| Themes | `themes/` | File tema JSON |639| Themes | `themes/` | File tema JSON |

631| Monitors | `monitors/monitors.json` | Array monitors |640| Monitors | `monitors/monitors.json` | Array monitors |

632| Executables | `bin/` | File di sini ada di `PATH` tool Bash saat plugin diaktifkan, jadi Claude menjalankannya sebagai perintah bare. claude.ai dan Cowork tidak menginstal plugin yang memiliki direktori ini, termasuk yang Anda [distribusikan melalui pengaturan organisasi claude.ai](/docs/id/plugins/host-marketplace#distribute-through-organization-settings) |641| Executables | `bin/` | File di sini ada di `PATH` tool Bash saat plugin diaktifkan, jadi Claude menjalankannya sebagai perintah bare. claude.ai dan Cowork tidak menginstal plugin yang memiliki direktori ini, termasuk yang Anda [distribusikan melalui pengaturan organisasi claude.ai](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory) |

633| Settings | `settings.json` | Default `agent` dan `subagentStatusLine` diterapkan saat plugin diaktifkan |642| Settings | `settings.json` | Default `agent` dan `subagentStatusLine` diterapkan saat plugin diaktifkan |

634 643 

635Plugin yang menggunakan setiap lokasi default, ditambah folder `scripts/` yang dipanggil hook-nya, diatur seperti ini:644Plugin yang menggunakan setiap lokasi default, ditambah folder `scripts/` yang dipanggil hook-nya, diatur seperti ini:

Details

47* **Nama marketplace resmi**: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `life-sciences`, `knowledge-work-plugins`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, dan `claude-tag-plugins`. Dicadangkan kecuali marketplace berasal dari `github` atau `git` [sumber marketplace](#marketplace-sources) di bawah `github.com/anthropics/`.47* **Nama marketplace resmi**: `claude-code-marketplace`, `claude-code-plugins`, `claude-plugins-official`, `anthropic-marketplace`, `anthropic-plugins`, `agent-skills`, `anthropic-agent-skills`, `life-sciences`, `knowledge-work-plugins`, `claude-for-legal`, `claude-for-financial-services`, `financial-services-plugins`, `first-party-plugins`, dan `claude-tag-plugins`. Dicadangkan kecuali marketplace berasal dari `github` atau `git` [sumber marketplace](#marketplace-sources) di bawah `github.com/anthropics/`.

48* **Nama marketplace komunitas**: `claude-community`, `claude-plugins-community`, dan `healthcare`. Dicadangkan di bawah aturan yang sama dengan nama resmi.48* **Nama marketplace komunitas**: `claude-community`, `claude-plugins-community`, dan `healthcare`. Dicadangkan di bawah aturan yang sama dengan nama resmi.

49* **Nama direktori plugin**: `anthropic-plugin-directory` dan `claude-plugin-directory`. Dicadangkan di bawah aturan yang sama dengan nama resmi.49* **Nama direktori plugin**: `anthropic-plugin-directory` dan `claude-plugin-directory`. Dicadangkan di bawah aturan yang sama dengan nama resmi.

50* **Nama yang menyamar sebagai marketplace resmi**: nama seperti `official-claude-plugins` atau `claude-plugins-v2`, dan nama apa pun yang berisi karakter non-ASCII. Kesalahannya adalah `Marketplace name impersonates an official Anthropic/Claude marketplace`. Karakter kontrol atau pemformatan bidirectional dalam nama juga melaporkan `Marketplace name cannot contain control or bidirectional-formatting characters`.50* **Nama yang menyamar sebagai marketplace resmi**: nama seperti `official-claude-plugins` atau `claude-plugins-v2`, dan nama apa pun yang berisi karakter non-ASCII. Kesalahannya adalah `Marketplace name impersonates an official Anthropic/Claude marketplace`. Karakter kontrol atau pemformatan bidirectional dalam nama juga melaporkan `Marketplace name cannot contain control or bidirectional-formatting characters`. Marketplace yang sudah terdaftar di bawah nama seperti itu berhenti dimuat, bersama dengan pluginnya.

51* <span id="reserved-name-spellings" />**Ejaan lain dari nama yang dicadangkan**: nama yang berbeda dari nama yang dicadangkan hanya dengan titik di akhir, atau dengan simbol selain garis bawah sebagai pengganti tanda hubung, jadi `claude.code.plugins` dihitung sebagai `claude-code-plugins`. `claude plugin validate` menerima nama seperti itu; menambahkan marketplace gagal dengan [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/id/errors#marketplace-name-is-another-spelling-of-a-reserved-name), dan marketplace yang sudah terdaftar di bawah satu berhenti dimuat. Pemeriksaan ini memerlukan Claude Code v2.1.280 atau lebih baru.51* <span id="reserved-name-spellings" />**Ejaan lain dari nama yang dicadangkan**: nama yang berbeda dari nama yang dicadangkan hanya dengan titik di akhir, atau dengan simbol selain garis bawah sebagai pengganti tanda hubung, jadi `claude.code.plugins` dihitung sebagai `claude-code-plugins`. `claude plugin validate` menerima nama seperti itu; menambahkan marketplace gagal dengan [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/id/errors#marketplace-name-is-another-spelling-of-a-reserved-name), dan marketplace yang sudah terdaftar di bawah satu berhenti dimuat. Pemeriksaan ini memerlukan Claude Code v2.1.280 atau lebih baru.

52* **Nama yang Claude Code gunakan untuk plugin yang tidak berasal dari marketplace**: `inline` untuk plugin yang dimuat dengan [`--plugin-dir`](/docs/id/cli-reference), `builtin` untuk plugin bawaan, `skills-dir` untuk plugin yang dimuat otomatis dari [`.claude/skills/`](/docs/id/skills), dan `synced` untuk plugin yang disinkronkan dari akun claude.ai Anda. `claude-plugin-test` juga dicadangkan. `skills-dir` juga muncul sebagai `{"source": "skills-dir"}` dalam `strictKnownMarketplaces` dan `blockedMarketplaces`, dijelaskan di bawah [Nilai sumber yang valid hanya dalam daftar kebijakan](#source-values-valid-only-in-policy-lists).52* **Nama yang Claude Code gunakan untuk plugin yang tidak berasal dari marketplace**: `inline` untuk plugin yang dimuat dengan [`--plugin-dir`](/docs/id/cli-reference), `builtin` untuk plugin bawaan, `skills-dir` untuk plugin yang dimuat otomatis dari [`.claude/skills/`](/docs/id/skills), dan `synced` untuk plugin yang disinkronkan dari akun claude.ai Anda. `claude-plugin-test` juga dicadangkan. `skills-dir` juga muncul sebagai `{"source": "skills-dir"}` dalam `strictKnownMarketplaces` dan `blockedMarketplaces`, dijelaskan di bawah [Nilai sumber yang valid hanya dalam daftar kebijakan](#source-values-valid-only-in-policy-lists).

53* **`npm`, `pip`, `uv`, `cargo`, `github`, dan `gh`**: dicadangkan dalam huruf apa pun. Pemeriksaan ini memerlukan Claude Code v2.1.275 atau lebih baru.53* **`npm`, `pip`, `uv`, `cargo`, `github`, dan `gh`**: dicadangkan dalam huruf apa pun. Pemeriksaan ini memerlukan Claude Code v2.1.275 atau lebih baru.

54* **Nama yang dimulai dengan `claudeai-`**: dicadangkan untuk marketplace yang dihosting di claude.ai. `claude plugin marketplace add` menolak marketplace lain apa pun yang menggunakannya dengan `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.54* **Nama yang dimulai dengan `claudeai-`**: dicadangkan untuk marketplace yang dihosting di claude.ai. `claude plugin marketplace add` menolak marketplace lain apa pun yang menggunakannya dengan `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`.

55 55 

56Ketika marketplace yang terdaftar berhenti dimuat karena namanya meniru nama resmi, `claude plugin list` dan `/plugin` melaporkan `Claude Code refuses the marketplace name "<name>"`. Pesan tersebut memberi tahu Anda untuk menghapus marketplace. Menghapusnya juga mencopot plugin-nya dan menghapus data yang disimpan. Pesan penolakan bernama ini memerlukan Claude Code v2.1.282 atau lebih baru.

57 

56<h2 id="top-level-fields">58<h2 id="top-level-fields">

57 Field tingkat atas59 Field tingkat atas

58</h2>60</h2>

Details

96* **Mereka adalah rekan kerja yang dapat Anda tanyai**: Claude Code setiap pengguna menunjukkan kepada mereka apakah mereka masih menggunakan plugin, di empat tempat: panel [`/plugin`](#not-used-recently-in-/plugin), [`/skill-doctor`](#find-skills-that-never-run), [`/doctor`](#unused-plugins-in-/doctor), dan [`/usage`](#usage-share-in-/usage). Keempat perintah ini dijalankan pengguna di prompt Claude Code dalam sesi di mesin mereka sendiri.96* **Mereka adalah rekan kerja yang dapat Anda tanyai**: Claude Code setiap pengguna menunjukkan kepada mereka apakah mereka masih menggunakan plugin, di empat tempat: panel [`/plugin`](#not-used-recently-in-/plugin), [`/skill-doctor`](#find-skills-that-never-run), [`/doctor`](#unused-plugins-in-/doctor), dan [`/usage`](#usage-share-in-/usage). Keempat perintah ini dijalankan pengguna di prompt Claude Code dalam sesi di mesin mereka sendiri.

97* **Tidak satupun**: Anda tidak memiliki sinyal penggunaan dari Claude Code untuk plugin tersebut.97* **Tidak satupun**: Anda tidak memiliki sinyal penggunaan dari Claude Code untuk plugin tersebut.

98 98 

99Untuk penggunaan plugin yang terdaftar dalam direktori Anthropic, lihat [Track published plugin usage](https://claude.com/docs/connectors/building/after-publishing#track-published-plugin-usage) di claude.com.

100 

99<h3 id="not-used-recently-in-/plugin">101<h3 id="not-used-recently-in-/plugin">

100 Not used recently in `/plugin`102 Not used recently in `/plugin`

101</h3>103</h3>

plugins/org.md +2 −1

Details

14 Kasus-kasus ini tercakup di halaman lain:14 Kasus-kasus ini tercakup di halaman lain:

15 15 

16 * **Menginstal plugin untuk diri sendiri**: mulai dari [Install plugins](/docs/id/plugins/install)16 * **Menginstal plugin untuk diri sendiri**: mulai dari [Install plugins](/docs/id/plugins/install)

17 * **Mengontrol plugin mana yang dapat digunakan anggota di claude.ai dan Cowork**: lihat [Manage plugins for your organization](https://support.claude.com/en/articles/13837433) di pusat bantuan17 * **Mengontrol plugin mana yang dapat digunakan anggota di claude.ai dan Cowork**: lihat [Manage plugins for your organization](https://claude.com/docs/plugins/admin) di claude.com

18 * **Meluncurkan satu plugin ke claude.ai, Cowork, dan Claude Code bersama-sama**: lihat [Choose a rollout route](https://claude.com/docs/plugins/org-rollout#choose-a-rollout-route) di claude.com

18 * **Halaman plugin di pengaturan admin claude.ai**: [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) mengaktifkan plugin untuk akun claude.ai anggota, dan yang tersebut mencapai Claude Code sebagai [synced plugins](/docs/id/plugins/loading#synced-plugins). Ini tidak menetapkan salah satu kunci di halaman ini19 * **Halaman plugin di pengaturan admin claude.ai**: [**Organization settings > Plugins & skills**](https://claude.ai/admin-settings/skills?tab=inventory) mengaktifkan plugin untuk akun claude.ai anggota, dan yang tersebut mencapai Claude Code sebagai [synced plugins](/docs/id/plugins/loading#synced-plugins). Ini tidak menetapkan salah satu kunci di halaman ini

19</Note>20</Note>

20 21 

Details

9Plugin Claude Code adalah direktori skill, agent, hooks, server MCP, atau komponen lainnya yang Claude Code pasang dan muat sebagai satu unit. Sebagian besar plugin berasal dari marketplace, yang merupakan katalog yang mencantumkan plugin dan tempat mengambil masing-masing. Anda juga dapat memuat plugin dari folder yang diberikan seseorang kepada Anda, atau [membangun plugin Anda sendiri](/docs/id/plugins/create).9Plugin Claude Code adalah direktori skill, agent, hooks, server MCP, atau komponen lainnya yang Claude Code pasang dan muat sebagai satu unit. Sebagian besar plugin berasal dari marketplace, yang merupakan katalog yang mencantumkan plugin dan tempat mengambil masing-masing. Anda juga dapat memuat plugin dari folder yang diberikan seseorang kepada Anda, atau [membangun plugin Anda sendiri](/docs/id/plugins/create).

10 10 

11<Note>11<Note>

12 Jika Anda menggunakan chat claude.ai atau Cowork dan bukan Claude Code, lihat [Plugin di claude.ai dan di Cowork](https://claude.com/docs/plugins/overview).12 Mulai di claude.com sebagai gantinya jika salah satu dari ini menggambarkan Anda:

13 

14 * **Anda menggunakan chat claude.ai atau Cowork dan bukan Claude Code**: lihat [Plugin di claude.ai dan di Cowork](https://claude.com/docs/plugins/overview)

15 * **Anda membangun server MCP dan menginginkannya di direktori Anthropic**: lihat [Publikasikan ke direktori](https://claude.com/docs/directory/publish)

13</Note>16</Note>

14 17 

15Untuk mencoba plugin sekarang, jalankan `/plugin` dalam sesi terminal Claude Code dan pasang satu dari tab **Discover**, yang mencantumkan plugin dari marketplace resmi Anthropic dan marketplace apa pun yang telah Anda tambahkan. Dari sana:18Untuk mencoba plugin sekarang, jalankan `/plugin` dalam sesi terminal Claude Code dan pasang satu dari tab **Discover**, yang mencantumkan plugin dari marketplace resmi Anthropic dan marketplace apa pun yang telah Anda tambahkan. Dari sana:


122Sesi cloud, termasuk satu di browser di claude.ai/code, tidak memuat plugin dalam pengaturan lokal Anda. Untuk langkah pemasangan di terminal, VS Code, dan aplikasi desktop, dan untuk apa yang dimuat sesi cloud, lihat [Install a plugin](/docs/id/plugins/install#install-a-plugin).125Sesi cloud, termasuk satu di browser di claude.ai/code, tidak memuat plugin dalam pengaturan lokal Anda. Untuk langkah pemasangan di terminal, VS Code, dan aplikasi desktop, dan untuk apa yang dimuat sesi cloud, lihat [Install a plugin](/docs/id/plugins/install#install-a-plugin).

123 126 

124<Note>127<Note>

125 Format plugin yang sama juga dipasang di claude.ai dan di Cowork, di mana set komponen yang berbeda dimuat. Untuk permukaan tersebut, lihat [Plugins on claude.ai and in Cowork](https://claude.com/docs/plugins/overview) di claude.com.128 Format plugin yang sama juga dipasang di claude.ai dan di Cowork, di mana set komponen yang berbeda dimuat. Untuk permukaan tersebut, lihat [Plugins on claude.ai and in Cowork](https://claude.com/docs/plugins/overview) di claude.com dan [tabel dukungan komponennya](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app).

126</Note>129</Note>

127 130 

128<h2 id="next-steps">131<h2 id="next-steps">


135 138 

136Setelah Anda memasang atau membangun plugin, halaman-halaman ini mencakup apa yang akan datang:139Setelah Anda memasang atau membangun plugin, halaman-halaman ini mencakup apa yang akan datang:

137 140 

138* **Bagikan apa yang Anda bangun**: [Publish and distribute a plugin](/docs/id/plugins/publish)141* **Bagikan apa yang Anda bangun**: [Publish and distribute a plugin](/docs/id/plugins/publish), melalui marketplace Anda sendiri atau [direktori Anthropic](/docs/id/plugins/publish#submit-to-anthropics-directory)

139* **Periksa apakah itu berfungsi dan digunakan**: [Test plugins with evals](/docs/id/plugin-evals) dan [Measure plugin cost and usage](/docs/id/plugins/measure)142* **Periksa apakah itu berfungsi dan digunakan**: [Test plugins with evals](/docs/id/plugin-evals) dan [Measure plugin cost and usage](/docs/id/plugins/measure)

140* **Jalankan marketplace untuk tim Anda**: [Create a marketplace](/docs/id/plugins/create-marketplace), kemudian [Host and maintain a marketplace](/docs/id/plugins/host-marketplace)143* **Jalankan marketplace untuk tim Anda**: [Create a marketplace](/docs/id/plugins/create-marketplace), kemudian [Host and maintain a marketplace](/docs/id/plugins/host-marketplace)

141* **Tetapkan kebijakan plugin untuk organisasi**: [Manage plugins for your organization](/docs/id/plugins/org)144* **Tetapkan kebijakan plugin untuk organisasi**: [Manage plugins for your organization](/docs/id/plugins/org)

plugins/publish.md +21 −18

Details

4 4 

5# Publikasikan dan distribusikan plugin5# Publikasikan dan distribusikan plugin

6 6 

7> Publikasikan plugin Claude Code melalui marketplace Anda sendiri atau marketplace komunitas Anthropic, dengan daftar periksa pra-rilis dan cara pengguna mendapatkan pembaruan.7> Publikasikan plugin Claude Code melalui marketplace Anda sendiri atau direktori Anthropic, dengan daftar periksa pra-rilis dan cara pengguna mendapatkan pembaruan.

8 8 

9Mempublikasikan plugin Claude Code berarti mencantumkannya di marketplace, katalog JSON yang mencantumkan plugin dan tempat mengambil masing-masing plugin, sehingga orang lain dapat memasangnya berdasarkan nama dan menerima pembaruan Anda. Anda dapat menjalankan marketplace Anda sendiri atau mengirimkan plugin Anda ke marketplace komunitas Anthropic. Untuk berbagi plugin tanpa mempublikasikannya, kirimkan direktori plugin atau `.zip` darinya kepada orang-orang untuk dimuat sendiri.9Mempublikasikan plugin Claude Code berarti mencantumkannya di marketplace, katalog JSON yang mencantumkan plugin dan tempat mengambil masing-masing plugin, sehingga orang lain dapat memasangnya berdasarkan nama dan menerima pembaruan Anda. Anda dapat menjalankan marketplace Anda sendiri atau mengirimkan plugin Anda ke direktori Anthropic. Untuk berbagi plugin tanpa mempublikasikannya, kirimkan direktori plugin atau `.zip` darinya kepada orang-orang untuk dimuat sendiri.

10 10 

11Halaman ini adalah untuk penulis plugin yang berfungsi dan siap untuk membagikannya.11Halaman ini adalah untuk penulis plugin yang berfungsi dan siap untuk membagikannya.

12 12 


29| :- | :- | :- | :- |29| :- | :- | :- | :- |

30| [Tanpa marketplace](#share-a-plugin-without-a-marketplace) | Orang-orang yang Anda kirimkan folder plugin atau `.zip` darinya | Folder plugin | Tidak ada. Mereka memuat salinan yang Anda kirimkan |30| [Tanpa marketplace](#share-a-plugin-without-a-marketplace) | Orang-orang yang Anda kirimkan folder plugin atau `.zip` darinya | Folder plugin | Tidak ada. Mereka memuat salinan yang Anda kirimkan |

31| [Marketplace Anda sendiri](#publish-through-your-own-marketplace) | Siapa pun yang dapat menjangkau repositori, yang dapat berupa repositori pribadi yang dapat dikloning tim Anda | Repositori git atau host lain dengan `.claude-plugin/marketplace.json` yang mencantumkan plugin Anda | Mati |31| [Marketplace Anda sendiri](#publish-through-your-own-marketplace) | Siapa pun yang dapat menjangkau repositori, yang dapat berupa repositori pribadi yang dapat dikloning tim Anda | Repositori git atau host lain dengan `.claude-plugin/marketplace.json` yang mencantumkan plugin Anda | Mati |

32| [Marketplace komunitas Anthropic](#submit-to-the-community-marketplace) | Siapa pun yang menambahkan `anthropics/claude-plugins-community` | Pengajuan melalui formulir pengajuan direktori plugin | Mati |32| [Direktori Anthropic](#submit-to-anthropics-directory) | Orang-orang yang menambahkannya di claude.ai atau di Cowork. Ini juga dimuat dalam sesi Claude Code mereka melalui [sinkronisasi akun](/docs/id/plugins/loading#synced-plugins) | Repositori GitHub yang menyimpan plugin dan paket claude.ai berbayar untuk dikirimkan dari | Ya, setelah versi yang Anda dorong dipublikasikan |

33 33 

34Auto-update adalah pengaturan per-marketplace di sisi pengguna yang mengambil versi baru di latar belakang.34Auto-update adalah pengaturan per-marketplace di sisi pengguna yang mengambil versi baru di latar belakang.

35 35 


141 141 

142[Pasang plugin](/docs/id/plugins/install) mencakup perintah sisi pengguna, dan [kapan auto-update berjalan](/docs/id/plugins/loading#when-auto-update-runs) mencakup waktu.142[Pasang plugin](/docs/id/plugins/install) mencakup perintah sisi pengguna, dan [kapan auto-update berjalan](/docs/id/plugins/loading#when-auto-update-runs) mencakup waktu.

143 143 

144<h2 id="submit-to-the-community-marketplace">144<h2 id="submit-to-anthropics-directory">

145 Kirimkan ke marketplace komunitas145 Kirimkan ke direktori Anthropic

146</h2>146</h2>

147 147 

148Marketplace komunitas Anthropic, `claude-community`, adalah marketplace publik yang mencantumkan plugin yang dikirimkan melalui formulir pengajuan direktori plugin.148Direktori Anthropic adalah katalog yang dijelajahi orang di claude.ai dan di Cowork untuk menambahkan plugin dan konektor. Satu daftar di sana menjangkau orang di claude.ai, di Cowork, dan di Claude Code. Anda mengirimkan dari portal pengembang di [claude.ai/directory/manage](https://claude.ai/directory/manage); [Persiapkan untuk tinjauan](https://claude.com/docs/directory/publish#prepare-for-review) di claude.com menjelaskan apa yang terjadi pada setiap versi sebelum dipublikasikan.

149 149 

150Pengguna menambahkan marketplace komunitas dalam sesi Claude Code dengan `/plugin marketplace add anthropics/claude-plugins-community` dan memasang darinya sebagai `@claude-community`.150Pengiriman memerlukan paket claude.ai berbayar. Di Pro dan Max Anda mengirimkan dari akun Anda sendiri. Di Team dan Enterprise, seorang Owner dapat mengirimkan, dan di Enterprise seorang Owner juga dapat memberikan izin **Directory** kepada anggota lain melalui peran khusus di bawah **Organization settings > Roles**. Lihat [Konfirmasi bahwa Anda dapat mengirimkan ke direktori](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory).

151 151 

152Untuk cara marketplace komunitas berbeda dari marketplace resmi, lihat [Marketplace Anthropic](/docs/id/plugins/anthropic-marketplaces).152Langkah-langkah pengiriman, pemeriksaan yang harus dilalui setiap versi, dan apa yang terjadi setelah Anda mempublikasikan didokumentasikan di claude.com, karena sama di mana pun permukaan pengguna Anda berada:

153 153 

154Untuk mengirimkan plugin Anda ke marketplace komunitas, gunakan salah satu formulir dalam aplikasi:154* [Publikasikan ke direktori](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory): apa yang dapat Anda kirimkan dan siapa yang dapat mengirimkannya

155* [Kirimkan plugin](https://claude.com/docs/plugins/submit#submit-a-plugin): langkah-langkah portal dan [memperbarui plugin yang dipublikasikan](https://claude.com/docs/plugins/submit#update-a-published-plugin)

156* [Daftar periksa pra-pengiriman plugin](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit): pemeriksaan yang harus dijalankan dan diperbaiki sebelum Anda mengirimkan

157* [Pindahkan pengiriman sebelumnya ke portal pengembang](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal): apa yang harus dilakukan jika Anda mengirimkan plugin melalui salah satu formulir pengiriman sebelumnya, sebelum portal ada

155 158 

156* **claude.ai**: [claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)159Sebelum Anda membuka portal, validasi secara lokal dan periksa komponen mana dari Anda yang dimuat di luar Claude Code:

157* **Console**: [platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

158 160 

159Formulir claude.ai memerlukan organisasi Team atau Enterprise dan izin Directory, yang dipegang Owner secara default. Penulis individual yang bukan bagian dari organisasi Team atau Enterprise dapat menggunakan formulir Console sebagai gantinya.161* **Jalankan `claude plugin validate ./your-plugin --strict` di shell Anda**: ganti `./your-plugin` dengan jalur ke direktori plugin Anda. Perintah menangkap kesalahan manifest secara lokal; [plugin validate](/docs/id/plugins/cli-reference#plugin-validate) mencantumkan file mana yang dibaca setiap kali dijalankan. Portal menerapkan aturan direktori tambahan yang tidak diperiksa CLI, jadi jalankan lokal yang bersih tidak menjamin validasi portal yang bersih.

162* **Periksa apa yang dimuat di mana**: beberapa komponen plugin hanya Claude Code dan tidak dimuat di claude.ai atau di Cowork. [Tabel dukungan komponen](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) mencantumkan setiap komponen menurut aplikasi, sehingga Anda tahu apa yang akan diterima pengguna di luar Claude Code.

160 163 

161Di shell Anda, jalankan `claude plugin validate ./your-plugin` secara lokal sebelum Anda mengirimkan, mengganti `./your-plugin` dengan jalur ke direktori plugin Anda. Ketika validasi lulus, Claude Code mencetak `✔ Validation passed`, atau `✔ Validation passed with warnings` jika ada peringatan. Peringatan tidak gagal validasi; tambahkan `--strict` untuk memperlakukan mereka sebagai kesalahan.164Marketplace resmi Anthropic, `claude-plugins-official`, tidak menerima pengiriman melalui portal direktori. Jika Anda bekerja dengan kontak mitra Anthropic, tanyakan tentang daftar marketplace resmi.

162 165 

163Plugin yang tercantum muncul di katalog [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community), dalam hampir setiap kasus disematkan ke SHA commit tertentu.166<h3 id="how-a-listed-plugin-reaches-claude-code-users">

164 167 Bagaimana plugin yang terdaftar menjangkau pengguna Claude Code

165Mungkin ada penundaan antara pengajuan dan plugin Anda muncul di `marketplace.json`. Untuk memeriksa apakah plugin Anda dapat dipasang, cari namanya di [katalog komunitas](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).168</h3>

166 169 

167Marketplace resmi, `claude-plugins-official`, tidak menerima pengajuan melalui formulir ini. Jika Anda bekerja dengan kontak mitra Anthropic, tanyakan tentang daftar marketplace resmi.170Seseorang yang memasang plugin Anda dari direktori di claude.ai memilikinya di akun mereka, dan Claude Code memuatnya sebagai `<name>@synced`. [Plugin yang disinkronkan dari claude.ai](/docs/id/plugins/loading#synced-plugins) mencakup apa yang mereka lihat dan bagaimana mereka mematikannya.

168 171 

169<h2 id="ship-updates-renames-and-removals">172<h2 id="ship-updates-renames-and-removals">

170 Kirim pembaruan, penggantian nama, dan penghapusan173 Kirim pembaruan, penggantian nama, dan penghapusan


174 Rilis versi baru177 Rilis versi baru

175</h3>178</h3>

176 179 

177Jika Anda mempublikasikan melalui marketplace Anda sendiri dan `plugin.json` Anda menetapkan `version`, tingkatkan dan dorong. Pengguna yang menjalankan `claude plugin update` atau memiliki auto-update aktif kemudian menerima versi baru, seperti dijelaskan di bawah [Kirim pembaruan kepada pengguna](#ship-updates-to-users).180Jika Anda mempublikasikan melalui marketplace Anda sendiri dan `plugin.json` Anda menetapkan `version`, tingkatkan dan dorong. Pengguna yang menjalankan `claude plugin update` atau memiliki auto-update aktif kemudian menerima versi baru, seperti dijelaskan di bawah [Kirim pembaruan kepada pengguna](#ship-updates-to-users). Untuk daftar direktori, lihat [Perbarui plugin yang dipublikasikan](https://claude.com/docs/plugins/submit#update-a-published-plugin).

178 181 

179<h3 id="tag-a-release">182<h3 id="tag-a-release">

180 Tag rilis183 Tag rilis

Details

118 118 

119Di shell Anda, jalankan [`claude plugin uninstall <plugin>`](/docs/id/plugins/cli-reference#plugin-uninstall) dengan `--scope` tempat Anda menginstalnya. Kemudian periksa apa yang dihapus uninstall dan apa yang ditinggalkannya:119Di shell Anda, jalankan [`claude plugin uninstall <plugin>`](/docs/id/plugins/cli-reference#plugin-uninstall) dengan `--scope` tempat Anda menginstalnya. Kemudian periksa apa yang dihapus uninstall dan apa yang ditinggalkannya:

120 120 

121* **Data persisten**: ketika itu adalah scope terakhir plugin diinstal, uninstalling juga menghapus direktori data persisten plugin, kecuali Anda melewatkan `--keep-data`.121* **Data persisten**: secara default, ketika itu adalah scope terakhir plugin diinstal, uninstalling juga menghapus direktori data persisten plugin. Untuk `--keep-data` dan kasus-kasus lain di mana itu tetap, lihat [plugin uninstall](/docs/id/plugins/cli-reference#plugin-uninstall).

122* **File cache**: file plugin tetap di disk di bawah `~/.claude/plugins/cache/` selama 14 hari sebelum [background sweep menghapusnya](/docs/id/plugins/loading#cleanup-of-previous-versions). Setelah Anda menghapus plugin terakhir Anda, direktori yatim piatu tetap sampai Anda menginstal yang lain. Untuk menghapus file sekarang, hapus direktori plugin di bawah `~/.claude/plugins/cache/<marketplace>/<plugin>/` sendiri.122* **File cache**: file plugin tetap di disk di bawah `~/.claude/plugins/cache/` selama 14 hari sebelum [background sweep menghapusnya](/docs/id/plugins/loading#cleanup-of-previous-versions). Setelah Anda menghapus plugin terakhir Anda, direktori yatim piatu tetap sampai Anda menginstal yang lain. Untuk menghapus file sekarang, hapus direktori plugin di bawah `~/.claude/plugins/cache/<marketplace>/<plugin>/` sendiri.

123* **Marketplace**: jika Anda juga tidak mempercayai pemilik marketplace, [hapus marketplace](/docs/id/plugins/install#manage-marketplaces) juga, yang menghapus setiap plugin yang Anda instal darinya.123* **Marketplace**: jika Anda juga tidak mempercayai pemilik marketplace, [hapus marketplace](/docs/id/plugins/install#manage-marketplaces) juga, yang menghapus setiap plugin yang Anda instal darinya.

124 124 

Details

676 `Failed to load hooks from <path>` and hooks that don't fire676 `Failed to load hooks from <path>` and hooks that don't fire

677</h3>677</h3>

678 678 

679Hooks plugin tidak berjalan. Baik tab **Errors** menunjukkan kegagalan beban untuk mereka, hooks memuat dan Anda melihat pemberitahuan `<Event> hook error` dalam transkrip, atau hook memuat tanpa kesalahan dan tidak pernah menyala.679Hooks plugin tidak berjalan, atau salah satu memblokir tindakan. Baik tab **Errors** menunjukkan kegagalan beban untuk mereka, hooks memuat dan Anda melihat pemberitahuan `<Event> hook error` atau kesalahan pemblokiran dalam transkrip, atau hook memuat tanpa kesalahan dan tidak pernah menyala.

680 680 

681<h4 id="hooks-fail-to-load">681<h4 id="hooks-fail-to-load">

682 Hooks fail to load682 Hooks fail to load


693 693 

694Pemberitahuan bentuk `... hook error: Failed with non-blocking status code: <stderr>` berarti hook berjalan dan command-nya gagal. Misalnya, `Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found` berarti shell yang Claude Code spawn tidak dapat menemukan `node`. Instal, atau pastikan itu ada di `PATH` dari terminal yang Anda mulai `claude` dari.694Pemberitahuan bentuk `... hook error: Failed with non-blocking status code: <stderr>` berarti hook berjalan dan command-nya gagal. Misalnya, `Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found` berarti shell yang Claude Code spawn tidak dapat menemukan `node`. Instal, atau pastikan itu ada di `PATH` dari terminal yang Anda mulai `claude` dari.

695 695 

696Jika stderr menunjukkan path plugin terpotong di spasi, command bentuk shell hook menggunakan `${CLAUDE_PLUGIN_ROOT}` di luar tanda kutip dan path instalasi berisi spasi. Bungkus variabel dalam tanda kutip ganda atau gunakan [exec form](/docs/id/hooks#exec-form-and-shell-form). Untuk menemukan variabel yang tidak dikutip, jalankan `claude plugin validate` pada direktori plugin dan cari [peringatan quoting](/docs/id/plugins/manifest-reference#quoting-and-path-separators)-nya.

697 

696Untuk kesalahan lain apa pun, jalankan command hook sendiri dari direktori plugin untuk melihat output lengkap, atau tangkap stderr lengkap dengan [debug logging](/docs/id/hooks#debug-hooks).698Untuk kesalahan lain apa pun, jalankan command hook sendiri dari direktori plugin untuk melihat output lengkap, atau tangkap stderr lengkap dengan [debug logging](/docs/id/hooks#debug-hooks).

697 699 

700<h4 id="a-plugin-hook-blocks-a-tool-call-or-prompt">

701 A plugin hook blocks a tool call or prompt

702</h4>

703 

704Hook yang keluar dengan kode 2 [memblokir tindakan yang dijalankannya](/docs/id/hooks#exit-code-2). Ketika hook plugin memblokir dengan cara ini dan stderr-nya adalah pesan pemblokiran, kesalahan berakhir dengan `This hook comes from the <plugin> plugin.` sehingga Anda tahu plugin mana yang harus dinonaktifkan atau diperbaiki. Sebelum v2.1.281, kesalahan tidak menyebutkan plugin.

705 

706Jika pesan itu menunjukkan path plugin terpotong di spasi, terapkan [perbaikan `${CLAUDE_PLUGIN_ROOT}` yang tidak dikutip](#hook-error-notices-in-the-transcript).

707 

698<h4 id="hook-loads-but-never-fires">708<h4 id="hook-loads-but-never-fires">

699 Hook loads but never fires709 Hook loads but never fires

700</h4>710</h4>

prompt-caching.md +31 −19

Details

37Dua pengaturan tidak muncul dalam tabel layer tetapi masih mempengaruhi apa yang tetap di-cache:37Dua pengaturan tidak muncul dalam tabel layer tetapi masih mempengaruhi apa yang tetap di-cache:

38 38 

39* **Model**: setiap model memiliki cache-nya sendiri. Mengganti model menghitung ulang seluruh permintaan bahkan ketika kontennya identik. Lihat [Switching models](#switching-models) di bawah.39* **Model**: setiap model memiliki cache-nya sendiri. Mengganti model menghitung ulang seluruh permintaan bahkan ketika kontennya identik. Lihat [Switching models](#switching-models) di bawah.

40* **Effort level**: pada sebagian besar model, setiap effort level memiliki cache-nya sendiri, jadi mengubah effort di tengah sesi menghitung ulang seluruh permintaan. Pada Opus 5.5 dan Fable 5.1 dengan API key atau langganan Claude, cache tetap utuh secara default. Lihat [Changing effort level](#changing-effort-level) di bawah.40* **Effort level**: pada sebagian besar model, setiap effort level memiliki cache-nya sendiri, jadi mengubah effort di tengah sesi menghitung ulang seluruh permintaan. Pada Opus 5.5, Sonnet 5.5, dan Fable 5.1 dengan API key atau langganan Claude, cache tetap utuh secara default. Lihat [Changing effort level](#changing-effort-level) di bawah.

41 41 

42<Tip>42<Tip>

43 Pilih model dan effort level Anda di awal sesi, kemudian simpan `/compact` untuk istirahat alami di antara tugas. Semakin sedikit perubahan yang Anda buat di tengah tugas, semakin tinggi cache hit rate Anda.43 Pilih model dan effort level Anda di awal sesi, kemudian simpan `/compact` untuk istirahat alami di antara tugas. Semakin sedikit perubahan yang Anda buat di tengah tugas, semakin tinggi cache hit rate Anda.


75* [Switching models](#switching-models)75* [Switching models](#switching-models)

76* [Changing effort level](#changing-effort-level)76* [Changing effort level](#changing-effort-level)

77* [Turning on fast mode](#turning-on-fast-mode)77* [Turning on fast mode](#turning-on-fast-mode)

78* [Connecting or disconnecting an MCP server](#connecting-or-disconnecting-an-mcp-server)78* [Connecting or removing an MCP server](#connecting-or-removing-an-mcp-server)

79* [Enabling or disabling a plugin](#enabling-or-disabling-a-plugin)79* [Enabling or disabling a plugin](#enabling-or-disabling-a-plugin)

80* [Denying an entire tool](#denying-an-entire-tool)80* [Denying an entire tool](#denying-an-entire-tool)

81* [Compacting the conversation](#compacting-the-conversation)81* [Compacting the conversation](#compacting-the-conversation)


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, 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.99[Automatic model fallback](/docs/id/model-config#automatic-model-fallback) pada model Fable, Opus 5.5, Sonnet 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 


106 106 

107Pada sebagian besar model, mengubah [effort level](/docs/id/model-config#adjust-effort-level) di tengah sesi berarti permintaan berikutnya membaca seluruh riwayat percakapan tanpa cache hits. Saat cache masih hangat, Claude Code meminta Anda untuk mengonfirmasi perubahan terlebih dahulu.107Pada sebagian besar model, mengubah [effort level](/docs/id/model-config#adjust-effort-level) di tengah sesi berarti permintaan berikutnya membaca seluruh riwayat percakapan tanpa cache hits. Saat cache masih hangat, Claude Code meminta Anda untuk mengonfirmasi perubahan terlebih dahulu.

108 108 

109Pada Opus 5.5 dan Fable 5.1 dengan API key atau langganan Claude, mengubah effort menjaga cache, dan Claude Code menerapkan level baru tanpa bertanya. Ini tidak berlaku pada Amazon Bedrock, Google Cloud's Agent Platform, atau [Claude apps gateway](/docs/id/claude-apps-gateway), atau ketika Anda menetapkan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) atau organisasi Anda memiliki konfigurasi HIPAA.109Pada Opus 5.5, Sonnet 5.5, dan Fable 5.1 dengan API key atau langganan Claude, mengubah effort menjaga cache, dan Claude Code menerapkan level baru tanpa bertanya. Ini tidak berlaku pada Amazon Bedrock, Google Cloud's Agent Platform, atau [Claude apps gateway](/docs/id/claude-apps-gateway), atau ketika Anda menetapkan [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/id/llm-gateway-protocol#disable-pre-release-capabilities) atau organisasi Anda memiliki konfigurasi HIPAA.

110 110 

111Sebelum v2.1.260, mengubah effort pada Fable 5.1 dengan API key atau langganan Claude juga membatalkan cache.111Sebelum v2.1.260, mengubah effort pada Fable 5.1 dengan API key atau langganan Claude juga membatalkan cache.

112 112 


118 118 

119Biaya berlaku sekali per percakapan. Setelah putaran fast mode pertama, Claude Code terus mengirim header dan hanya memvariasikan pengaturan kecepatan permintaan, yang bukan bagian dari cache key. Mematikan fast mode, [fallback otomatis ke kecepatan standar](/docs/id/fast-mode#handle-rate-limits) setelah rate limit, dan mengaktifkannya kembali nanti semua menjaga cache. Jika Anda [kehabisan kredit penggunaan](/docs/id/fast-mode#handle-rate-limits) di tengah sesi, Claude Code mencoba kembali setiap permintaan fast mode yang ditolak dengan kecepatan standar dengan cara yang sama, jadi fallback ini juga menjaga cache. `/clear` dan `/compact` mengatur ulang ini, karena mereka membangun kembali cache pada titik-titik tersebut bagaimanapun.119Biaya berlaku sekali per percakapan. Setelah putaran fast mode pertama, Claude Code terus mengirim header dan hanya memvariasikan pengaturan kecepatan permintaan, yang bukan bagian dari cache key. Mematikan fast mode, [fallback otomatis ke kecepatan standar](/docs/id/fast-mode#handle-rate-limits) setelah rate limit, dan mengaktifkannya kembali nanti semua menjaga cache. Jika Anda [kehabisan kredit penggunaan](/docs/id/fast-mode#handle-rate-limits) di tengah sesi, Claude Code mencoba kembali setiap permintaan fast mode yang ditolak dengan kecepatan standar dengan cara yang sama, jadi fallback ini juga menjaga cache. `/clear` dan `/compact` mengatur ulang ini, karena mereka membangun kembali cache pada titik-titik tersebut bagaimanapun.

120 120 

121<h3 id="connecting-or-disconnecting-an-mcp-server">121<h3 id="connecting-or-removing-an-mcp-server">

122 Connecting or disconnecting an MCP server122 Connecting or removing an MCP server

123</h3>123</h3>

124 124 

125Definisi tool berada di lapisan system prompt, jadi cache membatalkan ketika set definisi tool dalam permintaan berubah antar putaran. Mengalihkan [advisor tool](/docs/id/advisor) adalah pengecualian: definisinya berada setelah breakpoint cache, jadi mengaktifkan atau menonaktifkan `/advisor` menjaga prefiks yang di-cache tetap utuh. Apakah perubahan [MCP server](/docs/id/mcp) melakukan ini tergantung pada apakah toolnya ditangguhkan oleh [tool search](/docs/id/mcp#scale-with-mcp-tool-search) atau dimuat ke dalam prefiks:125Definisi tool berada di lapisan system prompt, jadi cache membatalkan ketika set definisi tool dalam permintaan berubah antar putaran. Mengalihkan [advisor tool](/docs/id/advisor) adalah pengecualian: definisinya berada setelah breakpoint cache, jadi mengaktifkan atau menonaktifkan `/advisor` menjaga prefiks yang di-cache tetap utuh. Apakah perubahan [MCP server](/docs/id/mcp) melakukan ini tergantung pada apakah [tool search](/docs/id/mcp#scale-with-mcp-tool-search) menunda tools sesi MCP, default pada model yang didukung:

126 126 

127* **Deferred tools**, default pada model yang didukung: server yang terhubung, terputus, atau mengubah daftar toolnya hanya menambahkan konten baru dan tidak mengganggu apa pun yang sudah di-cache.127* **Tools deferred**: Claude Code menjaga daftar tool dari permintaan pertama percakapan untuk seluruh percakapan, jadi server yang terhubung atau terputus di tengah sesi tidak mengganggu apa pun yang sudah di-cache. Server yang selesai terhubung setelah permintaan pertama menyediakan toolnya sebagai definisi yang ditunda yang Claude muat sesuai permintaan.

128* **Tools loaded into the prefix**: perubahan apa pun pada mereka membatalkan cache. Ini terjadi ketika [tool search tidak tersedia atau dinonaktifkan](/docs/id/mcp#configure-tool-search), seperti pada model Google Cloud's Agent Platform lebih awal dari generasi Claude 4.5, dengan gateway `ANTHROPIC_BASE_URL` kustom, atau pada [deployment Microsoft Foundry yang dihosting di Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) setelah Claude Code mendeteksi bahwa deployment menolak tool search. Ini juga terjadi untuk server atau tool yang ditandai [`alwaysLoad`](/docs/id/mcp#exempt-a-server-from-deferral), dan untuk definisi yang disimpan di depan oleh [threshold-based loading](/docs/id/mcp#configure-tool-search).128* **Tools loaded upfront**: menambahkan definisi membatalkan cache, dan begitu juga menghapus satu dengan sengaja. Ini berlaku ketika tool search [di bawah threshold `auto`-nya, dinonaktifkan, atau tidak tersedia](/docs/id/mcp#configure-tool-search), seperti pada model Google Cloud's Agent Platform lebih awal dari generasi Claude 4.5, dengan gateway `ANTHROPIC_BASE_URL` kustom, atau pada [deployment Microsoft Foundry yang dihosting di Azure](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options) setelah Claude Code mendeteksi bahwa deployment menolak tool search.

129 129 

130Ketika tools dimuat ke dalam prefiks, penyebab paling umum dari pembatalan adalah server yang terhubung atau terputus di tengah sesi, yang dapat terjadi tanpa tindakan apa pun dari pihak Anda: proses server stdio keluar, sesi HTTP kedaluwarsa, atau server [reconnects automatically after a transient failure](/docs/id/mcp#automatic-reconnection). Server yang terhubung juga dapat mendorong [dynamic tool update](/docs/id/mcp#dynamic-tool-updates) yang mengubah daftar toolnya.130Tanpa tool search, apakah perubahan server di tengah sesi membatalkan cache tergantung pada apa yang berubah. Untuk setiap perubahan, tabel ini memberikan apakah cache dipertahankan dan apa yang terjadi pada definisi tool dalam permintaan berikutnya.

131 

132| Perubahan di tengah sesi | Cache | Definisi tool dalam permintaan berikutnya |

133| - | - | - |

134| Server terhubung, atau [dynamic tool update](/docs/id/mcp#dynamic-tool-updates) menambahkan tools | Dibatalkan | Definisi baru ditambahkan |

135| Server keluar tanpa tindakan apa pun dari pihak Anda, seperti proses server stdio keluar | Dipertahankan | Definisi server tetap tidak berubah. Panggilan ke salah satu toolnya mengembalikan error sebagai gantinya menjalankan |

136| Server remote [reconnects automatically](/docs/id/mcp#automatic-reconnection) setelah koneksinya terputus | Dipertahankan, kecuali permintaan yang dikirim saat server reconnects menambahkan tool `WaitForMcpServers`, yang membatalkan cache sekali | Definisi server tetap tidak berubah. Permintaan yang dikirim saat server reconnects dapat menambahkan `WaitForMcpServers` ketika percakapan belum mencantumnya, dan tool kemudian tetap tercantum untuk sisa percakapan |

137| Anda menghapus tool dengan sengaja, seperti dengan [deny rule](#denying-an-entire-tool) atau dengan menonaktifkan servernya di `/mcp` | Dibatalkan | Definisi dihapus |

138 

139Ketika Anda melanjutkan percakapan yang toolnya dimuat ke dalam prefiks, salah satu server MCP-nya masih dapat terhubung saat permintaan pertama keluar. Jika transkrip mencatat definisi tool server itu, permintaan itu mencakupnya seperti yang dicatat, jadi tidak berubah ketika server selesai terhubung dengan tools yang sama.

131 140 

132Mengedit konfigurasi MCP Anda tidak dengan sendirinya mengubah cache. Konfigurasi baru hanya berlaku setelah restart, yaitu ketika server terhubung atau terputus.141Mengedit konfigurasi MCP Anda tidak dengan sendirinya mengubah cache. Konfigurasi baru hanya berlaku setelah restart, yaitu ketika server terhubung atau terputus.

133 142 


147 Plugins that provide MCP servers156 Plugins that provide MCP servers

148</h4>157</h4>

149 158 

150Ketika Anda mengaktifkan atau menonaktifkan plugin yang menyediakan [MCP servers](/docs/id/plugins/components#mcp-servers), Claude Code mengikuti aturan yang sama seperti ketika Anda [connect or disconnect an MCP server](#connecting-or-disconnecting-an-mcp-server):159Ketika Anda mengaktifkan atau menonaktifkan plugin yang menyediakan [MCP servers](/docs/id/plugins/components#mcp-servers), Claude Code mengikuti aturan yang sama seperti ketika Anda [connect or remove an MCP server](#connecting-or-removing-an-mcp-server).

151 

152* Jika Claude Code menunda tools server, itu menjaga cache.

153* Jika Claude Code memuatnya ke dalam prefiks, permintaan berikutnya membaca ulang seluruh percakapan.

154 160 

155<h4 id="code-intelligence-plugins">161<h4 id="code-intelligence-plugins">

156 Code intelligence plugins162 Code intelligence plugins


244 Mengedit file di repositori Anda250 Mengedit file di repositori Anda

245</h3>251</h3>

246 252 

247Konten file memasuki konteks hanya ketika Claude membacanya, dan pembacaan menambahkan ke percakapan. Mengedit file yang sebelumnya dibaca Claude tidak secara retroaktif mengubah pembacaan sebelumnya dalam riwayat. Sebaliknya, Claude Code menambahkan `<system-reminder>` yang mencatat file berubah, dan Claude membacanya kembali jika diperlukan.253Konten file memasuki konteks hanya ketika Claude membacanya, dan pembacaan menambahkan ke percakapan. Mengedit file yang sebelumnya dibaca Claude tidak secara retroaktif mengubah pembacaan sebelumnya dalam riwayat. Sebaliknya, Claude Code menambahkan [`<system-reminder>`](/docs/id/glossary#system-reminder) yang mencatat file berubah, dan Claude membacanya kembali jika diperlukan.

248 254 

249<h3 id="editing-claude-md-mid-session">255<h3 id="editing-claude-md-mid-session">

250 Mengedit CLAUDE.md di tengah sesi256 Mengedit CLAUDE.md di tengah sesi


354 Cakupan cache360 Cakupan cache

355</h2>361</h2>

356 362 

357Di Claude Code, cache secara efektif dicakup ke satu mesin dan direktori. Setiap percakapan membawa direktori kerja, platform, shell, dan versi OS, dan prompt sistem menamai jalur auto-memory Anda, jadi dua sesi di direktori berbeda membangun prefix berbeda dan melewatkan cache satu sama lain. Itu termasuk worktrees dari repositori yang sama, karena setiap worktree memiliki direktori kerjanya sendiri.363Di Claude Code, cache secara efektif dicakup ke satu mesin dan direktori. Prompt sistem menanamkan jalur auto memory Anda, dan percakapan dibuka dengan pengumuman direktori kerja, platform, shell, dan versi OS. Dua sesi di direktori berbeda oleh karena itu membangun prefix berbeda dan melewatkan cache satu sama lain.

358 364 

359Sesi yang Anda jalankan secara paralel di direktori yang sama membangun prefix yang cocok dan membaca cache satu sama lain. Sesi berurutan berbagi prefix hanya ketika snapshot status git yang diambil pada startup cocok, karena setiap percakapan juga membawa cabang dan commit terbaru dari snapshot itu.365Sesi yang Anda jalankan secara paralel di direktori yang sama membangun prefix yang cocok dan membaca cache satu sama lain. Sesi berurutan berbagi prefix hanya ketika snapshot status git yang diambil pada startup cocok, karena setiap percakapan juga membawa cabang dan commit terbaru dari snapshot itu.

360 366 

361Cache API yang mendasarinya lebih luas. Cache diisolasi di antara organisasi, dan pada beberapa penyedia, [di antara workspace dalam organisasi](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-storage-and-sharing). Dalam batas-batas itu, setiap dua permintaan dengan model dan prefix yang sama membaca cache yang sama. Untuk pemanggil Agent SDK yang menjalankan armada proses otomatis, lihat [improve prompt caching across users and machines](/docs/id/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) untuk menekan bagian per-mesin dari prompt sistem dan berbagi cache di seluruh mesin.367Cache API yang mendasarinya lebih luas. Cache diisolasi di antara organisasi, dan pada beberapa penyedia, [di antara workspace dalam organisasi](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-storage-and-sharing). Dalam batas-batas itu, setiap dua permintaan dengan model dan prefix yang sama membaca cache yang sama. Untuk pemanggil Agent SDK yang menjalankan armada proses otomatis, lihat [improve prompt caching across users and machines](/docs/id/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) untuk memindahkan lokasi auto memory keluar dari prompt sistem dan berbagi entri cache prompt sistem di seluruh pengguna dan mesin.

362 368 

363<h2 id="check-cache-performance">369<h2 id="check-cache-performance">

364 Periksa kinerja cache370 Periksa kinerja cache


369| Field | Arti |375| Field | Arti |

370| - | - |376| - | - |

371| `cache_creation_input_tokens` | Token yang ditulis ke cache pada giliran ini, ditagih dengan tarif penulisan cache |377| `cache_creation_input_tokens` | Token yang ditulis ke cache pada giliran ini, ditagih dengan tarif penulisan cache |

372| `cache_read_input_tokens` | Token yang disajikan dari cache pada giliran ini, ditagih dengan [tarif token cache](/docs/id/about-claude/pricing) model, di bawah tarif input standar |378| `cache_read_input_tokens` | Token yang disajikan dari cache pada giliran ini, ditagih dengan [tarif token cache](https://platform.claude.com/docs/en/about-claude/pricing) model, di bawah tarif input standar |

373 379 

374Rasio baca-ke-kreasi yang tinggi berarti caching berfungsi dengan baik. Jika kreasi tetap tinggi giliran demi giliran, sesuatu berubah dalam prefix Anda. Bagian [actions that invalidate the cache](#actions-that-invalidate-the-cache) mencantumkan penyebab umum.380Rasio baca-ke-kreasi yang tinggi berarti caching berfungsi dengan baik. Jika kreasi tetap tinggi giliran demi giliran, sesuatu berubah dalam prefix Anda. Bagian [actions that invalidate the cache](#actions-that-invalidate-the-cache) mencantumkan penyebab umum.

375 381 


405| Variable | Efek |411| Variable | Efek |

406| - | - |412| - | - |

407| `DISABLE_PROMPT_CACHING` | Nonaktifkan untuk semua model |413| `DISABLE_PROMPT_CACHING` | Nonaktifkan untuk semua model |

408| `DISABLE_PROMPT_CACHING_HAIKU` | Nonaktifkan untuk Haiku saja |414| `DISABLE_PROMPT_CACHING_HAIKU` | Nonaktifkan untuk model Haiku default |

409| `DISABLE_PROMPT_CACHING_SONNET` | Nonaktifkan untuk Sonnet saja |415| `DISABLE_PROMPT_CACHING_SONNET` | Nonaktifkan untuk Sonnet saja |

410| `DISABLE_PROMPT_CACHING_OPUS` | Nonaktifkan untuk Opus saja |416| `DISABLE_PROMPT_CACHING_OPUS` | Nonaktifkan untuk Opus saja |

411| `DISABLE_PROMPT_CACHING_FABLE` | Nonaktifkan untuk Fable saja |417| `DISABLE_PROMPT_CACHING_FABLE` | Nonaktifkan untuk Fable saja |

412 418 

419`DISABLE_PROMPT_CACHING_HAIKU` berlaku untuk model Haiku default, model yang alias `haiku` selesaikan. Ini menonaktifkan caching di mana pun model itu berjalan, termasuk percakapan utama ketika itu adalah model utama Anda. Mencakup percakapan utama memerlukan Claude Code v2.1.283 atau lebih baru.

420 

421Variabel ini juga mencakup model latar belakang yang Anda atur dengan variabel `ANTHROPIC_SMALL_FAST_MODEL` yang sudah usang, ketika model itu berbeda dari model utama Anda.

422 

423Versi Haiku yang berbeda yang Anda pin sebagai model utama Anda tetap mempertahankan caching; atur `DISABLE_PROMPT_CACHING` untuk menonaktifkan caching untuk itu.

424 

413Untuk menetapkan kebijakan caching di seluruh organisasi, masukkan salah satu dari ini atau [TTL variables](#cache-lifetime) dalam blok `env` dari [managed settings](/docs/id/managed-settings). Untuk penggunaan normal, biarkan caching diaktifkan.425Untuk menetapkan kebijakan caching di seluruh organisasi, masukkan salah satu dari ini atau [TTL variables](#cache-lifetime) dalam blok `env` dari [managed settings](/docs/id/managed-settings). Untuk penggunaan normal, biarkan caching diaktifkan.

414 426 

415<h2 id="related-resources">427<h2 id="related-resources">

quickstart.md +4 −2

Details

27 Langkah 1: Instal Claude Code27 Langkah 1: Instal Claude Code

28</h2>28</h2>

29 29 

30Untuk menginstal Claude Code, gunakan salah satu metode berikut:30Untuk menginstal Claude Code, buka terminal dan jalankan perintah untuk sistem Anda. Jika Anda belum pernah menggunakan terminal sebelumnya, [panduan terminal](/docs/id/terminal-guide) menunjukkan cara membukanya dan menempel perintahnya.

31 31 

32<Tabs>32<Tabs>

33 <Tab title="Native Install (Direkomendasikan)">33 <Tab title="Native Install (Direkomendasikan)">


49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

50 ```50 ```

51 51 

52 Ketika penginstal selesai, buka jendela terminal baru dan jalankan `claude --version`. Instalasi yang berfungsi dengan baik mencetak nomor versi. Jika shell Anda mengatakan `claude` tidak ditemukan atau tidak dikenali, direktori instalasi belum ada di PATH Anda: lihat [Perbaiki PATH Anda](/docs/id/troubleshoot-install#command-not-found-claude-after-installation).

53 

52 Jika Anda melihat `The token '&&' is not a valid statement separator`, Anda berada di PowerShell, bukan CMD. Jika Anda melihat `'irm' is not recognized as an internal or external command`, Anda berada di CMD, bukan PowerShell. Prompt Anda menunjukkan `PS C:\` ketika Anda berada di PowerShell dan `C:\` tanpa `PS` ketika Anda berada di CMD.54 Jika Anda melihat `The token '&&' is not a valid statement separator`, Anda berada di PowerShell, bukan CMD. Jika Anda melihat `'irm' is not recognized as an internal or external command`, Anda berada di CMD, bukan PowerShell. Prompt Anda menunjukkan `PS C:\` ketika Anda berada di PowerShell dan `C:\` tanpa `PS` ketika Anda berada di CMD.

53 55 

54 Jika perintah instalasi gagal dengan `syntax error near unexpected token '<'`, `403`, atau kesalahan curl lainnya, lihat [Troubleshoot installation](/docs/id/troubleshoot-install#find-your-error) untuk mencocokkan kesalahan dengan perbaikan dan untuk metode instalasi alternatif.56 Jika perintah instalasi gagal dengan `syntax error near unexpected token '<'`, `403`, atau kesalahan curl lainnya, lihat [Troubleshoot installation](/docs/id/troubleshoot-install#find-your-error) untuk mencocokkan kesalahan dengan perbaikan dan untuk metode instalasi alternatif.


187 189 

188Claude Code menemukan file yang sesuai dan menampilkan perubahan kepada Anda. Jika diminta sebelum membuat perubahan, pilih **Ya** untuk menyetujui.190Claude Code menemukan file yang sesuai dan menampilkan perubahan kepada Anda. Jika diminta sebelum membuat perubahan, pilih **Ya** untuk menyetujui.

189 191 

190Mode Auto adalah [mode izin awal bawaan](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk sesi terminal interaktif pada paket Pro, Max, dan Team: pengklasifikasi meninjau tindakan alih-alih Anda, dan Claude mengedit sebagian besar file dan menjalankan sebagian besar perintah tanpa bertanya. Pada paket lain, mode Manual adalah mode izin awal bawaan. Untuk sesi yang Anda mulai tepat setelah instalasi, lihat [Sesi pertama setelah instalasi atau upgrade](/docs/id/env-vars#first-session-after-an-install-or-upgrade).192Dengan Claude Code v2.1.283 atau lebih baru, mode auto adalah [mode izin awal bawaan](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk sesi terminal interaktif: pengklasifikasi meninjau tindakan alih-alih Anda, dan Claude mengedit sebagian besar file dan menjalankan sebagian besar perintah tanpa bertanya. Pada versi sebelumnya, mode auto adalah mode izin awal bawaan hanya pada paket Pro, Max, dan Team. Untuk sesi yang Anda mulai tepat setelah instalasi, lihat [Sesi pertama setelah instalasi atau upgrade](/docs/id/env-vars#first-session-after-an-install-or-upgrade).

191 193 

192<Note>194<Note>

193 Pengaturan Anda atau organisasi Anda dapat menetapkan mode izin awal yang berbeda. [Mode izin mana yang dimulai sesi](/docs/id/permission-modes#which-mode-a-session-starts-in) mencantumkan apa yang dilakukan. Tekan `Shift+Tab` kapan saja untuk beralih mode izin sesi yang Anda gunakan.195 Pengaturan Anda atau organisasi Anda dapat menetapkan mode izin awal yang berbeda. [Mode izin mana yang dimulai sesi](/docs/id/permission-modes#which-mode-a-session-starts-in) mencantumkan apa yang dilakukan. Tekan `Shift+Tab` kapan saja untuk beralih mode izin sesi yang Anda gunakan.

remote-control.md +173 −180

Details

6 6 

7> Lanjutkan sesi Claude Code lokal dari ponsel, tablet, atau browser apa pun menggunakan Remote Control. Bekerja dengan claude.ai/code dan aplikasi Claude mobile.7> Lanjutkan sesi Claude Code lokal dari ponsel, tablet, atau browser apa pun menggunakan Remote Control. Bekerja dengan claude.ai/code dan aplikasi Claude mobile.

8 8 

9<Note>

10 Remote Control tersedia di semua paket. Di Tim dan Enterprise, Remote Control dimatikan secara default sampai Pemilik mengaktifkan toggle Remote Control di [pengaturan admin Claude Code](https://claude.ai/admin-settings/claude-code).

11</Note>

12 

13Remote Control menghubungkan [claude.ai/code](https://claude.ai/code) atau aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) dan [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) ke sesi Claude Code yang berjalan di mesin Anda. Mulai tugas di meja Anda, kemudian lanjutkan dari ponsel Anda di sofa atau browser di komputer lain.9Remote Control menghubungkan [claude.ai/code](https://claude.ai/code) atau aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) dan [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude) ke sesi Claude Code yang berjalan di mesin Anda. Mulai tugas di meja Anda, kemudian lanjutkan dari ponsel Anda di sofa atau browser di komputer lain.

14 10 

15Ketika Anda memulai sesi Remote Control di mesin Anda, Claude terus berjalan secara lokal sepanjang waktu, jadi eksekusi kode dan akses sistem file Anda tetap berada di mesin Anda. Dengan Remote Control Anda dapat:11Ketika Anda memulai sesi Remote Control di mesin Anda, Claude terus berjalan secara lokal sepanjang waktu, jadi eksekusi kode dan akses sistem file Anda tetap berada di mesin Anda. Dengan Remote Control Anda dapat:


17* **Gunakan lingkungan lokal penuh Anda dari jarak jauh**: sistem file, [MCP servers](/docs/id/mcp), alat, dan konfigurasi proyek Anda tetap tersedia, dan mengetik `@` melengkapi otomatis jalur file dari proyek lokal Anda.13* **Gunakan lingkungan lokal penuh Anda dari jarak jauh**: sistem file, [MCP servers](/docs/id/mcp), alat, dan konfigurasi proyek Anda tetap tersedia, dan mengetik `@` melengkapi otomatis jalur file dari proyek lokal Anda.

18* **Bekerja dari kedua permukaan sekaligus**: percakapan dan kemajuan [subagents](/docs/id/sub-agents) dan [dynamic workflows](/docs/id/workflows) tetap tersinkronisasi di semua perangkat yang terhubung, sehingga Anda dapat mengirim pesan dari terminal, browser, dan ponsel Anda secara bergantian.14* **Bekerja dari kedua permukaan sekaligus**: percakapan dan kemajuan [subagents](/docs/id/sub-agents) dan [dynamic workflows](/docs/id/workflows) tetap tersinkronisasi di semua perangkat yang terhubung, sehingga Anda dapat mengirim pesan dari terminal, browser, dan ponsel Anda secara bergantian.

19* **Kirim gambar dan file dari ponsel atau browser Anda**: lampirkan foto atau file di aplikasi Claude atau di claude.ai/code, dengan atau tanpa keterangan. Claude melihat foto yang dilampirkan secara langsung sebagai bagian dari pesan Anda. Claude Code mengunduh file lain ke mesin Anda dan meneruskannya ke Claude sebagai referensi file `@`.15* **Kirim gambar dan file dari ponsel atau browser Anda**: lampirkan foto atau file di aplikasi Claude atau di claude.ai/code, dengan atau tanpa keterangan. Claude melihat foto yang dilampirkan secara langsung sebagai bagian dari pesan Anda. Claude Code mengunduh file lain ke mesin Anda dan meneruskannya ke Claude sebagai referensi file `@`.

20* **Bertahan dari gangguan**: jika laptop Anda tidur atau jaringan Anda terputus, Claude Code terhubung kembali secara otomatis ketika mesin Anda kembali online. Saat koneksi sedang dibangun kembali, Claude Code mengantrikan pesan, prompt izin, dan pembaruan status dari subagents dan workflows, dan mengirimkannya setelah koneksi pulih.16* **Bertahan dari gangguan**: jika laptop Anda tidur atau jaringan Anda terputus, Claude Code terhubung kembali secara otomatis ketika mesin Anda kembali online.

21 

22Tidak seperti [Claude Code di web](/docs/id/claude-code-on-the-web), yang berjalan di infrastruktur cloud, sesi Remote Control berjalan langsung di mesin Anda dan berinteraksi dengan sistem file lokal Anda. Antarmuka web dan mobile hanyalah jendela ke sesi lokal tersebut.

23 17 

24Halaman ini mencakup pengaturan, cara memulai dan terhubung ke sesi, dan bagaimana Remote Control dibandingkan dengan Claude Code di web.18Tidak seperti [sesi cloud](/docs/id/claude-code-on-the-web), yang berjalan di infrastruktur cloud, sesi Remote Control berjalan langsung di mesin Anda dan berinteraksi dengan sistem file lokal Anda. Antarmuka web dan mobile hanyalah jendela ke sesi lokal tersebut, jadi komputer Anda harus tetap menyala dan proses `claude` harus terus berjalan.

25 19 

26<h2 id="requirements">20<h2 id="requirements">

27 Persyaratan21 Persyaratan


33* **Autentikasi**: jalankan `claude` dan gunakan `/login` untuk masuk melalui claude.ai jika Anda belum melakukannya. Tanpa login yang memenuhi syarat, `claude remote-control` keluar dengan kesalahan, sementara `claude --remote-control` tetap memulai sesi interaktif dan menampilkan notifikasi kegagalan Remote Control segera setelah peluncuran.27* **Autentikasi**: jalankan `claude` dan gunakan `/login` untuk masuk melalui claude.ai jika Anda belum melakukannya. Tanpa login yang memenuhi syarat, `claude remote-control` keluar dengan kesalahan, sementara `claude --remote-control` tetap memulai sesi interaktif dan menampilkan notifikasi kegagalan Remote Control segera setelah peluncuran.

34* **Titik akhir API**: tidak tersedia di salah satu konfigurasi berikut:28* **Titik akhir API**: tidak tersedia di salah satu konfigurasi berikut:

35 * Anda menggunakan Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.29 * Anda menggunakan Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry.

36 * Anda menunjukkan [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) ke host selain `api.anthropic.com`, seperti [gateway LLM](/docs/id/llm-gateway) atau proxy. Batalkan pengaturan variabel untuk menggunakan Remote Control. Sebelum v2.1.196, Claude Code memungkinkan Remote Control dengan `ANTHROPIC_BASE_URL` khusus.30 * Anda menunjukkan [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) ke host selain `api.anthropic.com`, seperti [gateway LLM](/docs/id/llm-gateway) atau proxy. Batalkan pengaturan variabel untuk menggunakan Remote Control.

37 * Anda masuk melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway) perusahaan.31 * Anda masuk melalui [gateway aplikasi Claude](/docs/id/claude-apps-gateway) perusahaan.

38* **Evaluasi bendera fitur**: [`DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, dan `DISABLE_GROWTHBOOK`](/docs/id/env-vars) masing-masing menonaktifkan evaluasi bendera fitur yang bergantung pada ketersediaan Remote Control. Batalkan pengaturan variabel di mana pun variabel tersebut diatur, di lingkungan shell Anda atau di blok `env` dari [file `settings.json`](/docs/id/settings-reference#all-settings), untuk menggunakan Remote Control.32* **Evaluasi bendera fitur**: jika Anda menetapkan [variabel lingkungan yang mematikan evaluasi bendera fitur](/docs/id/env-vars#features-that-need-feature-flag-fetching), apakah Remote Control tersedia tergantung pada yang mana:

39* **Kepercayaan ruang kerja**: jalankan `claude` di direktori proyek Anda setidaknya sekali untuk menerima dialog kepercayaan ruang kerja. Dialog kepercayaan startup tidak pernah menyimpan kepercayaan untuk direktori beranda Anda, jadi mulai Remote Control dari direktori proyek.33 * Jika Anda menetapkan `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` atau `DISABLE_GROWTHBOOK`, Remote Control tidak tersedia. Batalkan pengaturan variabel di mana pun variabel tersebut diatur, di lingkungan shell Anda atau di blok `env` dari [file `settings.json`](/docs/id/settings-reference#all-settings), untuk menggunakan Remote Control.

34 * Jika Anda hanya menetapkan `DISABLE_TELEMETRY` atau `DO_NOT_TRACK`, Remote Control tetap tersedia kecuali organisasi Anda memerlukan [Perangkat Terpercaya](#trusted-devices). Jika demikian, batalkan pengaturan variabel untuk menggunakan Remote Control. Menggunakan Remote Control dengan salah satu variabel yang ditetapkan memerlukan Claude Code v2.1.283 atau lebih baru.

35* **Kepercayaan ruang kerja**: di direktori yang belum Anda percayai, `claude remote-control` mencetak apa yang dipercayai dan meminta `Trust <directory>? [y/N]` sebelum dimulai. Menjawab `y` menyimpan pilihan, kecuali di direktori beranda Anda, di mana kepercayaan tidak pernah disimpan dan pertanyaan kembali pada setiap run. Ketika input atau output standarnya bukan terminal, perintah tidak dapat bertanya dan keluar dengan kesalahan [`Workspace not trusted`](/docs/id/errors#workspace-not-trusted-when-starting-remote-control).

40 36 

41<h2 id="start-a-remote-control-session">37<h2 id="start-a-remote-control-session">

42 Mulai sesi Remote Control38 Mulai sesi Remote Control

43</h2>39</h2>

44 40 

45Anda dapat memulai sesi Remote Control dari CLI atau ekstensi VS Code. CLI menawarkan tiga mode invokasi; VS Code menggunakan perintah `/remote-control`.41Anda dapat memulai sesi Remote Control dari CLI, [aplikasi Claude Desktop](/docs/id/desktop), atau ekstensi VS Code. CLI menawarkan tiga mode invokasi; aplikasi Desktop dan VS Code menggunakan perintah `/remote-control`.

46 42 

47<Tabs>43<Tabs>

48 <Tab title="Mode server">44 <Tab title="Server mode">

49 Di direktori proyek Anda, jalankan:45 Di direktori proyek Anda, jalankan:

50 46 

51 ```bash theme={null}47 ```bash theme={null}

52 claude remote-control48 claude remote-control

53 ```49 ```

54 50 

55 Sampai Anda menerima konfirmasi satu kali Remote Control, `claude remote-control` menjelaskan apa yang dilakukannya dan menanyakan `Enable Remote Control? (y/n)` sebelum memulai server. Jawab `y` untuk menerima dan memulai server. Jika Anda menolak, Claude Code keluar tanpa memulai server dan menanyakan lagi saat berikutnya Anda menjalankan perintah.51 Sampai Anda menerima konfirmasi satu kali Remote Control, `claude remote-control` menjelaskan apa yang dilakukannya dan menanyakan `Enable Remote Control? (y/n)` sebelum memulai server. Jawab `y` untuk menerima dan memulai server. Jika Anda menolak, Claude Code keluar tanpa memulai server dan menanyakan lagi saat Anda menjalankan perintah berikutnya.

56 52 

57 Proses tetap berjalan di terminal Anda dalam mode server, menunggu koneksi jarak jauh. Ini menampilkan URL sesi yang dapat Anda gunakan untuk [terhubung dari perangkat lain](#connect-from-another-device), dan Anda dapat menekan spacebar untuk menampilkan kode QR untuk akses cepat dari ponsel Anda. Saat sesi jarak jauh aktif, terminal menampilkan status koneksi dan aktivitas alat.53 Proses tetap berjalan di terminal Anda dalam mode server, menunggu koneksi jarak jauh. Ini menampilkan URL sesi yang dapat Anda gunakan untuk [terhubung dari perangkat lain](#connect-from-another-device), dan Anda dapat menekan spacebar untuk menampilkan kode QR untuk akses cepat dari ponsel Anda. Saat sesi jarak jauh aktif, terminal menampilkan status koneksi dan aktivitas alat.

58 54 

59 Bendera yang tersedia:55 Flag yang tersedia:

60 56 

61 | Bendera | Deskripsi |57 | Flag | Deskripsi |

62 | - | - |58 | - | - |

63 | `--name "My Project"` | Tetapkan judul sesi khusus yang terlihat dalam daftar sesi di claude.ai/code. |59 | `--name "My Project"` | Tetapkan judul sesi khusus yang terlihat dalam daftar sesi di claude.ai/code. |

64 | `--remote-control-session-name-prefix <prefix>` | Awalan untuk nama sesi yang dibuat secara otomatis ketika tidak ada nama eksplisit yang ditetapkan. Default adalah nama mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Atur `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` untuk efek yang sama. |60 | `--remote-control-session-name-prefix <prefix>` | Awalan untuk nama sesi yang dibuat secara otomatis ketika tidak ada nama eksplisit yang ditetapkan. Default ke nama host mesin Anda, menghasilkan nama seperti `myhost-graceful-unicorn`. Atur `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` untuk efek yang sama. |

65 | `-c`, `--continue` | Bawa kembali sesi yang dimulai server terakhir di direktori ini, alih-alih membuat yang baru. Lihat [Resume sesi setelah menghentikan server](#resume-sessions-after-stopping-the-server). Tidak dapat digabungkan dengan `--session-id`, `--spawn`, `--capacity`, atau `--create-session-in-dir`. Memerlukan Claude Code v2.1.200 atau lebih baru; versi sebelumnya menolak bendera sebagai argumen yang tidak dikenal. |61 | `-c`, `--continue` | Bawa kembali sesi yang dimulai server terakhir di direktori ini, bukan membuat yang baru. Lihat [Resume sessions after stopping the server](#resume-sessions-after-stopping-the-server). Tidak dapat digabungkan dengan `--session-id`, `--spawn`, `--capacity`, atau `--create-session-in-dir`. Memerlukan Claude Code v2.1.200 atau lebih baru. |

66 | `--session-id <id>` | Bawa kembali satu sesi berdasarkan ID-nya. Lihat [Resume sesi setelah menghentikan server](#resume-sessions-after-stopping-the-server). Tidak dapat digabungkan dengan `--continue`, `--spawn`, `--capacity`, atau `--create-session-in-dir`. Memerlukan Claude Code v2.1.200 atau lebih baru; versi sebelumnya menolak bendera sebagai argumen yang tidak dikenal. |62 | `--session-id <id>` | Bawa kembali satu sesi berdasarkan ID-nya. Lihat [Resume sessions after stopping the server](#resume-sessions-after-stopping-the-server). Tidak dapat digabungkan dengan `--continue`, `--spawn`, `--capacity`, atau `--create-session-in-dir`. Memerlukan Claude Code v2.1.200 atau lebih baru. |

67 | `--spawn <mode>` | Bagaimana server membuat sesi.<br />• `same-dir` (default): semua sesi berbagi direktori kerja saat ini, sehingga dapat bertentangan jika mengedit file yang sama.<br />• `worktree`: setiap sesi sesuai permintaan mendapatkan [git worktree](/docs/id/worktrees) miliknya sendiri. Memerlukan repositori git.<br />• `session`: mode sesi tunggal. Melayani tepat satu sesi dan menolak koneksi tambahan. Atur saat startup saja.<br />Tekan `w` saat runtime untuk beralih antara `same-dir` dan `worktree`. |63 | `--spawn <mode>` | Bagaimana server membuat sesi.<br />• `same-dir` (default): semua sesi berbagi direktori kerja saat ini, sehingga dapat bertentangan jika mengedit file yang sama.<br />• `worktree`: setiap sesi sesuai permintaan mendapatkan [git worktree](/docs/id/worktrees) miliknya sendiri. Memerlukan repositori git.<br />• `session`: mode sesi tunggal. Melayani tepat satu sesi dan menolak koneksi tambahan. Atur saat startup saja.<br />Tekan `w` saat runtime untuk beralih antara `same-dir` dan `worktree`. |

68 | `--capacity <N>` | Jumlah maksimum sesi bersamaan. Default adalah 32. Tidak dapat digunakan dengan `--spawn=session`. |64 | `--capacity <N>` | Jumlah maksimum sesi bersamaan. Default adalah 32. Tidak dapat digunakan dengan `--spawn=session`. |

69 | `--[no-]create-session-in-dir` | Buat sesi sebelumnya di direktori saat ini ketika server dimulai, sehingga Anda memiliki tempat untuk mengetik segera. Dalam mode `worktree` sesi ini tetap berada di direktori saat ini sementara sesi sesuai permintaan mendapatkan worktree terisolasi. Aktif secara default. Jika Anda melewatkan `--no-create-session-in-dir` untuk memulai tanpa ada, Claude Code mengarsipkan sesi server ketika Anda menghentikannya, jadi tidak ada yang dapat [dilanjutkan](#resume-sessions-after-stopping-the-server). |65 | `--[no-]create-session-in-dir` | Buat sesi di direktori saat ini ketika server dimulai, sehingga Anda memiliki tempat untuk mengetik segera. Dalam mode `worktree` sesi ini tetap berada di direktori saat ini sementara sesi sesuai permintaan mendapatkan worktree terisolasi. Aktif secara default. Jika Anda melewatkan `--no-create-session-in-dir` untuk memulai tanpa sesi, Claude Code mengarsipkan sesi server saat Anda menghentikannya, sehingga tidak ada yang dapat [dilanjutkan](#resume-sessions-after-stopping-the-server). |

70 | `--permission-mode <mode>` | Atur [mode izin](/docs/id/permission-modes) awal untuk sesi server, seperti `acceptEdits`. Menerima `manual` sebagai alias untuk `default`; mode yang tidak dikenali menghentikan server saat startup dan mencantumkan mode yang valid. |66 | `--permission-mode <mode>` | Atur [mode izin](/docs/id/permission-modes) awal untuk sesi server, seperti `acceptEdits`. Menerima `manual` sebagai alias untuk `default`; mode yang tidak dikenali menghentikan server saat startup dan mencantumkan mode yang valid. |

67 | `--chrome` / `--no-chrome` | Aktifkan atau matikan [integrasi Chrome](/docs/id/chrome) di sesi yang dibuat server, sehingga Claude dapat menggunakan Chrome di mesin Anda saat Anda bekerja dari perangkat lain. Tanpa salah satu flag, sesi yang dimulai server sebelumnya dan sesi apa pun yang Anda mulai sendiri dari claude.ai/code atau aplikasi Claude dimulai dengan Chrome mati, bahkan jika Anda [mengaktifkan Chrome secara default](/docs/id/chrome#enable-chrome-by-default). Sesi yang dimulai server untuk salah satu [project](/docs/id/claude-projects) thread Anda mengikuti pengaturan itu sebagai gantinya, kecuali dalam mode `bypassPermissions`. Memerlukan Claude Code v2.1.273 atau lebih baru. |

68 | `-d`, `--debug[=<filter>]` | Aktifkan logging debug untuk server, secara opsional disaring berdasarkan kategori. Lewatkan filter hanya dalam bentuk `=`, seperti `--debug=api,hooks`. Memerlukan Claude Code v2.1.282 atau lebih baru. |

71 | `--debug-file <path>` | Tulis log debug ke file yang diberikan. |69 | `--debug-file <path>` | Tulis log debug ke file yang diberikan. |

72 | `--verbose` | Tampilkan log koneksi dan sesi terperinci. |70 | `--verbose` | Tampilkan log koneksi dan sesi terperinci. |

73 | `--sandbox` / `--no-sandbox` | Aktifkan atau nonaktifkan [sandboxing](/docs/id/sandboxing) untuk isolasi sistem file dan jaringan. Dimatikan secara default. |71 | `--sandbox` / `--no-sandbox` | Aktifkan atau nonaktifkan [sandboxing](/docs/id/sandboxing) untuk isolasi sistem file dan jaringan. Dimatikan secara default. |

74 72 

75 Berikan bendera ini setelah `remote-control`.73 Berikan flag ini setelah `remote-control`.

76 74 

77 Jika Anda melewatkan bendera global `claude` sebelum `remote-control`, atau skrip wrapper menambahkan satu, Claude Code tidak membawa bendera ke sesi yang dibuat server. Claude Code membiarkan bendera melewati hanya ketika menjatuhkannya diketahui tidak mengubah apa yang dapat dilakukan sesi tersebut, seperti `--verbose` atau `--model`. Untuk bendera lainnya, seperti `--settings`, Claude Code [menolak untuk memulai](/docs/id/errors#not-carried-over-to-the-sessions-remote-control-starts) dan menyebutkan bendera yang akan dihapus. Sebelum v2.1.248, opsi apa pun sebelum `remote-control` membuat Claude Code menolak bendera setelahnya dengan kesalahan `unknown option`.75 Jika Anda melewatkan flag global `claude` sebelum `remote-control`, atau skrip wrapper menambahkan satu, Claude Code tidak membawa flag ke sesi yang dibuat server. Claude Code membiarkan flag melewati hanya ketika menjatuhkannya diketahui tidak mengubah apa yang dapat dilakukan sesi tersebut, seperti `--verbose` atau `--model`. Untuk flag lainnya, seperti `--settings`, Claude Code [menolak untuk memulai](/docs/id/errors#not-carried-over-to-the-sessions-remote-control-starts) dan menyebutkan flag yang akan dihapus.

78 76 

79 Claude Code memeriksa kelayakan Remote Control sebelum mencetak bantuan, jadi `claude remote-control --help` mengembalikan kesalahan alih-alih daftar bendera ini ketika Anda tidak masuk dengan akun yang memenuhi syarat.77 Claude Code memeriksa kelayakan Remote Control sebelum mencetak bantuan, jadi `claude remote-control --help` mengembalikan kesalahan bukan daftar flag ini ketika Anda tidak masuk dengan akun yang memenuhi syarat.

80 </Tab>78 </Tab>

81 79 

82 <Tab title="Sesi interaktif">80 <Tab title="Interactive session">

83 Untuk memulai sesi Claude Code interaktif normal dengan Remote Control diaktifkan, gunakan bendera `--remote-control` (atau `--rc`):81 Untuk memulai sesi Claude Code interaktif normal dengan Remote Control diaktifkan, gunakan flag `--remote-control` (atau `--rc`):

84 82 

85 ```bash theme={null}83 ```bash theme={null}

86 claude --remote-control84 claude --remote-control

87 ```85 ```

88 86 

89 Secara opsional berikan nama untuk sesi:87 Secara opsional lewatkan nama untuk sesi:

90 88 

91 ```bash theme={null}89 ```bash theme={null}

92 claude --remote-control "My Project"90 claude --remote-control "My Project"

93 ```91 ```

94 92 

95 Ini memberi Anda sesi interaktif penuh di terminal Anda yang juga dapat Anda kontrol dari claude.ai atau aplikasi Claude. Tidak seperti `claude remote-control` (mode server), Anda dapat mengetik pesan secara lokal sementara sesi juga tersedia dari jarak jauh.93 Ini memberi Anda sesi interaktif penuh di terminal Anda yang juga dapat Anda kontrol dari claude.ai atau aplikasi Claude. Tidak seperti `claude remote-control` (server mode), Anda dapat mengetik pesan secara lokal sementara sesi juga tersedia dari jarak jauh.

96 </Tab>94 </Tab>

97 95 

98 <Tab title="Dari sesi yang ada">96 <Tab title="From an existing session">

99 Jika Anda sudah dalam sesi Claude Code dan ingin melanjutkannya dari jarak jauh, gunakan perintah `/remote-control` (atau `/rc`):97 Jika Anda sudah berada dalam sesi Claude Code dan ingin melanjutkannya dari jarak jauh, gunakan perintah `/remote-control` (atau `/rc`):

100 98 

101 ```text theme={null}99 ```text theme={null}

102 /remote-control100 /remote-control

103 ```101 ```

104 102 

105 Berikan nama sebagai argumen untuk menetapkan judul sesi khusus:103 Lewatkan nama sebagai argumen untuk menetapkan judul sesi khusus:

106 104 

107 ```text theme={null}105 ```text theme={null}

108 /remote-control My Project106 /remote-control My Project

109 ```107 ```

110 108 

111 Ini memulai sesi Remote Control yang membawa riwayat percakapan saat ini.109 Ini memulai sesi Remote Control yang membawa riwayat percakapan Anda saat ini.

112 110 

113 Sampai Anda menerima konfirmasi satu kali Remote Control, dialog muncul sebelum `/remote-control` terhubung. Pilih **Enable Remote Control** untuk menerima dan terhubung. Jika Anda memilih **Never mind** atau menekan Esc, Claude Code tidak terhubung dan menanyakan lagi saat berikutnya Anda menjalankan `/remote-control`.111 Sampai Anda menerima konfirmasi satu kali Remote Control, dialog muncul sebelum `/remote-control` terhubung. Pilih **Enable Remote Control** untuk menerima dan terhubung. Jika Anda memilih **Never mind** atau menekan Esc, Claude Code tidak terhubung dan menanyakan lagi saat Anda menjalankan `/remote-control` berikutnya.

114 112 

115 Bendera `--verbose`, `--sandbox`, dan `--no-sandbox` tidak tersedia dengan perintah ini.113 Flag `--verbose`, `--sandbox`, dan `--no-sandbox` tidak tersedia dengan perintah ini.

116 </Tab>114 </Tab>

117 115 

118 <Tab title="VS Code">116 <Tab title="VS Code">

119 Di [ekstensi VS Code Claude Code](/docs/id/vs-code), ketik `/remote-control` atau `/rc` di kotak prompt.117 Di [ekstensi Claude Code VS Code](/docs/id/vs-code), ketik `/remote-control` atau `/rc` di kotak prompt.

120 118 

121 ```text theme={null}119 ```text theme={null}

122 /remote-control120 /remote-control


126 124 

127 Tidak seperti CLI, perintah VS Code tidak menerima argumen nama atau menampilkan kode QR. Judul sesi berasal dari riwayat percakapan Anda atau prompt pertama.125 Tidak seperti CLI, perintah VS Code tidak menerima argumen nama atau menampilkan kode QR. Judul sesi berasal dari riwayat percakapan Anda atau prompt pertama.

128 </Tab>126 </Tab>

129</Tabs>

130 127 

131<h3 id="check-connection-status">128 <Tab title="Desktop app">

132 Periksa status koneksi129 Dalam sesi lokal di [tab Code aplikasi Claude Desktop](/docs/id/desktop), ketik `/remote-control` atau `/rc` di kotak prompt.

133</h3>

134 130 

135Dalam sesi interaktif, saat Remote Control terhubung, terminal menampilkan indikator `/rc active` yang menautkan ke sesi di claude.ai. Indikator disembunyikan ketika terminal terlalu sempit untuk menampilkannya. Untuk melihat URL sesi dan kode QR untuk [terhubung dari perangkat lain](#connect-from-another-device), jalankan `/remote-control` lagi untuk membuka panel status. Panel juga memungkinkan Anda memutuskan sambungan Remote Control sementara sesi lokal Anda terus berjalan.131 ```text theme={null}

132 /remote-control

133 ```

136 134 

137<span id="session-ended-elsewhere" />Jika koneksi gagal dalam sesi interaktif, indikator berubah untuk menunjukkan kegagalan, dan Claude Code menampilkan alasan dalam notifikasi dan menambahkannya ke percakapan. Jalankan `/remote-control` untuk terhubung kembali, kecuali alasan mengatakan sesi berubah di tempat lain:135 Setelah sesi terhubung, temukan di daftar sesi di [claude.ai/code](https://claude.ai/code). Untuk memutuskan sambungan, jalankan `/remote-control` lagi.

138 136 

139* **Koneksi lain mengambil alih sesi ini**: perangkat lain atau sesi Claude Code sekarang memilikinya. Jalankan `/remote-control` hanya jika Anda ingin mengambilnya kembali.137 Untuk mengaktifkan Remote Control untuk setiap sesi secara default, lihat [Enable Remote Control for all sessions](#enable-remote-control-for-all-sessions).

140* **Sesi ini diakhiri atau diarsipkan dari perangkat atau aplikasi lain**: jalankan `/remote-control` hanya jika Anda menginginkannya kembali. Claude Code membuka kembali sesi yang diarsipkan.138 </Tab>

141* **Server tidak lagi melaporkan sesi ini**: mungkin telah dihapus dari perangkat atau aplikasi lain.139</Tabs>

142 140 

143<h3 id="session-url-reminders">141<h3 id="check-connection-status">

144 Pengingat URL sesi142 Check connection status

145</h3>143</h3>

146 144 

147Saat Remote Control terhubung, Claude Code mengingatkan Anda tentang URL sesi ketika beralih ke ponsel atau browser membantu paling banyak, sehingga Anda tidak harus menemukan tautan di `/remote-control`. Pengingat muncul di atas kotak prompt pada salah satu momen ini:145Dalam sesi interaktif, saat Remote Control terhubung, terminal menampilkan indikator `/rc active` yang menautkan ke sesi di claude.ai. Indikator disembunyikan ketika terminal terlalu sempit untuk menampilkannya. Untuk melihat URL sesi dan kode QR untuk [terhubung dari perangkat lain](#connect-from-another-device), jalankan `/remote-control` lagi untuk membuka panel status. Panel juga memungkinkan Anda memutuskan sambungan Remote Control sementara sesi lokal Anda terus berjalan.

148 146 

149* **Giliran panjang**: ketika giliran berjalan lebih lama dari ambang batas yang disetel server, Claude Code menampilkan notifikasi **Still working** dengan tautan **Check in from your phone**, sehingga Anda dapat mengikuti giliran dari ponsel atau browser Anda alih-alih menunggu di terminal. Claude Code menghapusnya ketika giliran berakhir.147<span id="session-ended-elsewhere" />Jika koneksi gagal dalam sesi interaktif, indikator berubah untuk menunjukkan kegagalan, dan Claude Code menampilkan alasannya dalam notifikasi dan menambahkannya ke percakapan. Jalankan `/remote-control` untuk terhubung kembali, kecuali alasannya mengatakan sesi berubah di tempat lain:

150* **Prompt izin berulang**: setelah Anda menjawab beberapa [prompt izin](/docs/id/permissions) dalam sesi, notifikasi **Approve tool calls from your phone** menampilkan URL sesi. Claude Code menghapusnya ketika giliran berikutnya dimulai.

151 148 

152Pengingat dapat muncul di sesi apa pun yang terhubung, termasuk sesi di mana Remote Control [terhubung secara otomatis](#enable-remote-control-for-all-sessions). Mereka tidak muncul setiap kali kondisi ini terjadi, dan masing-masing hanya muncul beberapa kali total di seluruh sesi. Anda tidak dapat mengonfigurasi atau mematikannya; masing-masing menghapus sendiri.149* **Another connection took over this session**: perangkat lain atau sesi Claude Code sekarang memilikinya. Jalankan `/remote-control` hanya jika Anda ingin mengambilnya kembali.

150* **This session was ended or archived from another device or app**: jalankan `/remote-control` hanya jika Anda menginginkan sesi kembali. Claude Code membuka kembali sesi yang diarsipkan.

151* **The server no longer reports this session**: mungkin telah dihapus dari perangkat atau aplikasi lain.

153 152 

154<h3 id="connect-from-another-device">153<h3 id="connect-from-another-device">

155 Terhubung dari perangkat lain154 Connect from another device

156</h3>155</h3>

157 156 

158Setelah sesi Remote Control aktif, Anda memiliki beberapa cara untuk terhubung dari perangkat lain:157Setelah sesi Remote Control aktif, Anda memiliki beberapa cara untuk terhubung dari perangkat lain:

159 158 

160* **Buka URL sesi** di browser apa pun untuk langsung ke sesi di [claude.ai/code](https://claude.ai/code).159* **Buka URL sesi** di browser apa pun untuk langsung ke sesi di [claude.ai/code](https://claude.ai/code).

161* **Pindai kode QR** yang ditampilkan bersama URL sesi untuk membukanya langsung di aplikasi Claude. Dengan `claude remote-control`, tekan spacebar untuk beralih tampilan kode QR.160* **Pindai kode QR** yang ditampilkan bersama URL sesi untuk membukanya langsung di aplikasi Claude. Dengan `claude remote-control`, tekan spacebar untuk mengalihkan tampilan kode QR.

162* **Buka [claude.ai/code](https://claude.ai/code) atau aplikasi Claude** dan temukan sesi berdasarkan nama dalam daftar sesi. Di aplikasi mobile Claude, ketuk **Code** dalam navigasi untuk mencapai daftar sesi. Sesi Remote Control menampilkan ikon komputer dengan titik status hijau saat online.161* **Buka [claude.ai/code](https://claude.ai/code) atau aplikasi Claude** dan temukan sesi berdasarkan nama dalam daftar sesi. Di aplikasi Claude mobile, ketuk **Code** dalam navigasi untuk mencapai daftar sesi. Sesi Remote Control menampilkan ikon komputer dengan titik status hijau saat online.

163 162 

164Ketika Anda terhubung, perangkat menampilkan subagen dan alur kerja apa pun yang sudah dijalankan sesi di latar belakang. Hentikan salah satu dari perangkat, dan Claude Code menghentikan tugas itu di mesin Anda.163Saat Anda terhubung, perangkat menampilkan subagen dan alur kerja apa pun yang sudah dijalankan sesi di latar belakang. Hentikan salah satunya dari perangkat, dan Claude Code menghentikan tugas itu di mesin Anda.

165 164 

166Judul sesi jarak jauh dipilih dalam urutan ini:165Judul sesi jarak jauh dipilih dalam urutan ini:

167 166 

1681. Nama yang Anda berikan ke `--name`, `--remote-control`, atau `/remote-control`1671. Nama yang Anda lewatkan ke `--name`, `--remote-control`, atau `/remote-control`

1692. Judul yang Anda tetapkan dengan `/rename`1682. Judul yang Anda atur dengan `/rename`

1703. Pesan bermakna terakhir dalam riwayat percakapan yang ada1693. Pesan bermakna terakhir dalam riwayat percakapan yang ada

1714. Nama yang dibuat secara otomatis seperti `myhost-graceful-unicorn`, di mana `myhost` adalah nama mesin Anda atau awalan yang Anda tetapkan dengan `--remote-control-session-name-prefix`1704. Nama yang dibuat secara otomatis seperti `myhost-graceful-unicorn`, di mana `myhost` adalah nama host mesin Anda atau awalan yang Anda atur dengan `--remote-control-session-name-prefix`

172 

173Jika Anda tidak menetapkan nama eksplisit, Claude Code memperbarui judul untuk mencerminkan prompt Anda setelah Anda mengirimnya. Claude Code mencocokkan judul yang dibuat secara otomatis dengan bahasa percakapan Anda, atau pengaturan [`language`](/docs/id/settings-reference#language) jika satu dikonfigurasi.

174 171 

175Ketika Anda mengganti nama sesi dari claude.ai atau aplikasi Claude, Claude Code juga memperbarui judul lokal yang ditampilkan di `claude --resume`. Claude Code menerapkan penggantian nama yang sama ke nama sesi yang ditampilkan di bilah prompt, dan dalam daftar `claude agents` ketika sesi [berjalan di latar belakang](/docs/id/agent-view). Sebelum v2.1.221, penggantian nama dari daftar sesi di claude.ai atau di aplikasi Claude hanya memperbarui judul, dan CLI menyimpan nama sesi sebelumnya; `/rename`, yang berjalan di CLI itu sendiri, menetapkan nama pada versi apa pun.172Jika Anda tidak menetapkan nama eksplisit, Claude Code memperbarui judul untuk mencerminkan prompt Anda setelah Anda mengirimnya. Saat Anda mengganti nama sesi dari claude.ai atau aplikasi Claude, Claude Code juga memperbarui judul lokal yang ditampilkan di `claude --resume`.

176 173 

177Jika Anda belum memiliki aplikasi Claude, jalankan `/mobile` di dalam Claude Code untuk menampilkan kode QR untuk [claude.ai/mobile](https://claude.ai/mobile), yang membuka app store yang tepat untuk ponsel Anda.174Jika Anda belum memiliki aplikasi Claude, jalankan `/mobile` di dalam Claude Code untuk menampilkan kode QR untuk [claude.ai/mobile](https://claude.ai/mobile), yang membuka app store yang tepat untuk ponsel Anda.

178 175 

179<h3 id="what-connected-devices-see">176<h3 id="what-connected-devices-see">

180 Apa yang dilihat perangkat yang terhubung177 What connected devices see

181</h3>178</h3>

182 179 

183Perangkat yang terhubung menampilkan percakapan di terminal Anda saat terjadi. Kasus-kasus ini melampaui pesan biasa:180Perangkat yang terhubung menampilkan percakapan di terminal Anda saat terjadi. Kasus-kasus ini melampaui pesan biasa:

184 181 

185* **Pemadatan dan `/clear`**: saat Claude Code [memadatkan percakapan](/docs/id/context-window#what-survives-compaction), perangkat yang terhubung menampilkan kemajuan dan kemudian di mana percakapan dipadatkan. Ketika Anda menjalankan `/clear`, percakapan direset pada perangkat yang terhubung juga.182* **Compaction and `/clear`**: saat Claude Code [memadatkan percakapan](/docs/id/context-window#what-survives-compaction), perangkat yang terhubung menampilkan kemajuan dan kemudian di mana percakapan dipadatkan. Saat Anda menjalankan `/clear`, percakapan direset pada perangkat yang terhubung juga.

186* **Beralih percakapan dengan `/resume`**: perangkat yang terhubung tidak menerima judul percakapan yang dialihkan atau riwayat sebelumnya, tetapi pesan baru di kedua arah pergi ke dan dari percakapan mana pun yang terbuka di terminal Anda. Untuk bekerja pada percakapan asli dari perangkat lagi, jalankan `/resume` di terminal Anda dan beralih kembali ke itu.183* **Switching conversations with `/resume`**: perangkat yang terhubung tidak menerima judul percakapan yang dialihkan atau riwayat sebelumnya, tetapi pesan baru di kedua arah pergi ke dan dari percakapan mana pun yang terbuka di terminal Anda. Untuk bekerja pada percakapan asli dari perangkat lagi, jalankan `/resume` di terminal Anda dan beralih kembali ke sana.

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.184* **Pulling a session with `/teleport`**: saat 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.185* **Messages from your other sessions**: dengan [cross-session messaging](/docs/id/cross-session-messaging), koneksi yang sama membawa pesan antara sesi Anda sendiri di mesin berbeda dan dari [sesi cloud](/docs/id/claude-code-on-the-web) Anda.

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.186* **Diff of your changes**: saat direktori sesi berada di repositori git, panel diff perangkat yang terhubung menampilkan perubahan Anda. Di cabang yang memiliki commit di depan cabang default repositori, panel menampilkan perubahan sejak cabang terpisah darinya, termasuk edit yang belum dilakukan. Di cabang default itu sendiri, atau di cabang yang tidak di depan, panel hanya menampilkan perubahan yang belum dilakukan.

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`.187* **Model**: saat Anda memilih [model](/docs/id/model-config) dari perangkat yang terhubung, Claude Code menjalankan sesi pada model itu. Memerlukan Claude Code v2.1.238 atau lebih baru. Model yang Anda pilih dari kontrol model perangkat hanya berlaku untuk sesi saat ini. Saat Anda mengirim `/model <name>` dari perangkat ke sesi interaktif, Claude Code juga menetapkan default Anda untuk sesi 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.188* **Effort level**: saat Anda menetapkan [effort level](/docs/id/model-config#adjust-effort-level) dari perangkat yang terhubung, dengan `/effort` atau kontrol effort perangkat, Claude Code menerapkannya ke sesi di mesin Anda. Jika Anda menyematkan level dengan `CLAUDE_CODE_EFFORT_LEVEL`, sesi menyimpan level itu, dan Claude Code menolak pilihan berbeda dari kontrol effort. Memilih level dari kontrol effort memerlukan Claude Code v2.1.234 atau lebih baru di mesin Anda.

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.189* **Reconnecting after a connection failure**: jalankan `/remote-control` untuk terhubung kembali. Jika pemadatan menulis ulang percakapan atau Anda beralih percakapan dengan `/resume` sementara itu, Claude Code mengarsipkan sesi server yang digunakannya bukan meninggalkannya dalam daftar sesi. Anda masih dapat menemukannya dengan [memfilter sesi yang diarsipkan](/docs/id/claude-code-on-the-web#archive-sessions). Beralih percakapan saat perangkat masih terhubung tidak mengarsipkan sesi.

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.

194* **Tingkat upaya**: ketika Anda menetapkan [tingkat upaya](/docs/id/model-config#adjust-effort-level) dari perangkat yang terhubung, dengan `/effort` atau kontrol upaya perangkat, Claude Code menerapkannya ke sesi di mesin Anda, dan claude.ai/code menampilkan tingkat yang digunakan sesi. Jika Anda menyematkan tingkat dengan `CLAUDE_CODE_EFFORT_LEVEL`, sesi menyimpan tingkat itu, dan Claude Code menolak pilihan berbeda dari kontrol upaya. Memilih tingkat dari kontrol upaya memerlukan Claude Code v2.1.234 atau lebih baru di mesin Anda.

195* **Terhubung kembali setelah kegagalan koneksi**: jalankan `/remote-control` untuk terhubung kembali. Jika pemadatan menulis ulang percakapan atau Anda beralih percakapan dengan `/resume` sementara itu, Claude Code mengarsipkan sesi server yang digunakannya alih-alih meninggalkannya dalam daftar sesi. Anda masih dapat menemukannya dengan [memfilter sesi yang diarsipkan](/docs/id/claude-code-on-the-web#archive-sessions). Beralih percakapan saat perangkat masih terhubung tidak mengarsipkan sesi.

196 190 

197<h3 id="enable-remote-control-for-all-sessions">191<h3 id="enable-remote-control-for-all-sessions">

198 Aktifkan Remote Control untuk semua sesi192 Enable Remote Control for all sessions

199</h3>193</h3>

200 194 

201Remote Control hanya diaktifkan ketika Anda secara eksplisit menjalankan `claude remote-control`, `claude --remote-control`, atau `/remote-control`, kecuali auto-connect diaktifkan. Untuk mengaktifkannya secara otomatis untuk setiap sesi interaktif, jalankan `/config` di dalam Claude Code dan atur **Enable Remote Control for all sessions**. Toggle mengambil tiga nilai:195Remote Control hanya diaktifkan saat Anda secara eksplisit menjalankan `claude remote-control`, `claude --remote-control`, atau `/remote-control`, kecuali auto-connect diaktifkan. Untuk mengaktifkan auto-connect untuk setiap sesi interaktif, jalankan `/config` di dalam Claude Code dan atur **Enable Remote Control for all sessions**. Toggle mengambil tiga nilai:

202 196 

203* **`true`**: terhubung secara otomatis ketika sesi interaktif dimulai.197* **`true`**: terhubung secara otomatis saat sesi interaktif dimulai.

204* **`false`**: matikan auto-connect, meskipun `true` dari [pengaturan terkelola](/docs/id/managed-settings) mengungguli itu, karena Claude Code menyimpan pilihan ke pengaturan pengguna Anda. Sebuah `false` dalam pengaturan proyek atau lokal (`.claude/settings.json`, `.claude/settings.local.json`) mematikan auto-connect bahkan atas `true` yang dikelola.198* **`false`**: matikan auto-connect, meskipun `true` dari [managed settings](/docs/id/managed-settings) mengalahkannya, karena Claude Code menyimpan pilihan ke pengaturan pengguna Anda. Sebuah `false` dalam pengaturan proyek atau lokal (`.claude/settings.json`, `.claude/settings.local.json`) mematikan auto-connect bahkan di atas `true` yang dikelola.

205* **`default`**: hapus pilihan Anda dan ikuti default admin organisasi Anda jika satu diatur, jika tidak default Claude Code saat ini.199* **`default`**: hapus pilihan Anda dan ikuti default admin organisasi Anda jika ada yang ditetapkan, jika tidak Claude Code default saat ini.

206 200 

207Toggle yang sama muncul di luar CLI:201Toggle yang sama muncul di luar CLI:

208 202 

209* **Aplikasi Desktop**: **Settings > Claude Code > Enable remote control by default**.203* **Desktop app**: **Settings > Claude Code > Enable remote control by default**.

210* **Ekstensi VS Code**: **Enable Remote Control for all sessions** di bagian Settings [menu perintah](/docs/id/vs-code#use-the-prompt-box). Memerlukan Claude Code v2.1.203 atau lebih baru.204* **VS Code extension**: **Enable Remote Control for all sessions** dalam bagian Settings [command menu](/docs/id/vs-code#use-the-prompt-box).

211 205 

212Untuk mengaktifkan auto-connect dari file pengaturan, atur [`remoteControlAtStartup`](/docs/id/settings-reference#remotecontrolatstartup) ke `true` dalam `~/.claude/settings.json` pengguna Anda atau dalam [pengaturan terkelola](/docs/id/managed-settings). Dalam pengaturan proyek atau lokal (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code menghormati `false` dan mematikan auto-connect untuk repositori itu, tetapi mengabaikan `true`, sehingga file yang diperiksa tidak dapat mengaktifkan Remote Control untuk semua orang yang membuka repositori.206Untuk mengaktifkan auto-connect dari file pengaturan, atur [`remoteControlAtStartup`](/docs/id/settings-reference#remotecontrolatstartup) ke `true` dalam `~/.claude/settings.json` pengguna Anda atau dalam [managed settings](/docs/id/managed-settings). Dalam pengaturan proyek atau lokal (`.claude/settings.json`, `.claude/settings.local.json`), Claude Code menghormati `false` dan mematikan auto-connect untuk repositori itu, tetapi mengabaikan `true`, sehingga file yang diperiksa tidak dapat mengaktifkan Remote Control untuk semua orang yang membuka repositori.

213 207 

214Auto-connect masuk dengan akun claude.ai Anda sendiri, jadi sesi yang dimulainya hanya muncul di aplikasi Claude akun Anda sendiri dan tidak memberikan akses kepada siapa pun.208Auto-connect masuk dengan akun claude.ai Anda sendiri, jadi sesi yang dimulainya hanya muncul di aplikasi Claude akun Anda sendiri dan tidak memberikan akses kepada siapa pun.

215 209 

216Dengan pengaturan ini aktif, setiap proses Claude Code interaktif mendaftarkan satu sesi jarak jauh. Jika Anda menjalankan beberapa instance, masing-masing mendapatkan sesi jarak jauh sendiri. Untuk menjalankan beberapa sesi bersamaan dari satu proses, gunakan [mode server](#start-a-remote-control-session) sebagai gantinya.210Dengan pengaturan ini aktif, setiap proses Claude Code interaktif mendaftarkan satu sesi jarak jauh. Jika Anda menjalankan beberapa instance, masing-masing mendapatkan sesi jarak jauhnya sendiri. Untuk menjalankan beberapa sesi bersamaan dari satu proses, gunakan [server mode](#start-a-remote-control-session) sebagai gantinya.

217 211 

218<h3 id="resume-sessions-after-stopping-the-server">212<h3 id="resume-sessions-after-stopping-the-server">

219 Resume sesi setelah menghentikan server213 Resume sessions after stopping the server

220</h3>214</h3>

221 215 

222Ketika Anda menghentikan `claude remote-control` dengan Ctrl+C, sesi yang dilayaninya berhenti merespons dari ponsel atau browser Anda. Selama Anda tidak menjalankan `claude remote-control` lain di direktori yang sama dan tidak memulai yang ini dengan `--no-create-session-in-dir`, Claude Code tidak mengarsipkannya. Untuk membawanya kembali, jalankan salah satu perintah ini di direktori yang sama:216Saat Anda menghentikan `claude remote-control` dengan Ctrl+C, sesi yang dilayaninya berhenti merespons dari ponsel atau browser Anda. Selama Anda tidak menjalankan `claude remote-control` lain di direktori yang sama dan tidak memulai yang ini dengan `--no-create-session-in-dir`, Claude Code tidak mengarsipkannya. Untuk membawanya kembali, jalankan salah satu perintah ini di direktori yang sama:

223 217 

224* **`claude remote-control`**: membawa kembali setiap sesi yang dilayani server.218* **`claude remote-control`**: membawa kembali setiap sesi yang dilayani server.

225* **`claude remote-control --continue`**: membawa kembali hanya sesi yang dimulai server, dan keluar ketika sesi itu berakhir. Jika direktori ini tidak memiliki catatan, Claude Code menggunakan yang terbaru dari worktree git lain repositori ini.219* **`claude remote-control --continue`**: membawa kembali hanya sesi yang dimulai server, dan keluar saat sesi itu berakhir. Jika direktori ini tidak memiliki catatan, Claude Code menggunakan yang terbaru dari worktree git lain repositori ini.

226* **`claude remote-control --session-id <id>`**: membawa kembali hanya sesi yang ID-nya Anda lewatkan, dan keluar ketika sesi itu berakhir. ID adalah bagian dari URL sesi di claude.ai/code antara `/code/` dan `?` apa pun.220* **`claude remote-control --session-id <id>`**: membawa kembali hanya sesi yang ID-nya Anda lewatkan, dan keluar saat sesi itu berakhir. ID adalah bagian dari URL sesi di claude.ai/code antara `/code/` dan `?` apa pun.

227 221 

228Perintah ini bekerja selama sekitar empat jam setelah server berhenti. Setelah itu, jalankan `claude remote-control` untuk memulai sesi baru. Jika Anda mengarsipkan sesi sementara itu, `--continue` dan `--session-id` membatalkan arsipnya pada Claude Code v2.1.228 atau lebih baru.222Perintah ini bekerja selama sekitar empat jam setelah server berhenti. Setelah itu, jalankan `claude remote-control` untuk memulai sesi baru. Jika Anda mengarsipkan sesi sementara itu, `--continue` dan `--session-id` membatalkan arsip pada Claude Code v2.1.228 atau lebih baru.

229 223 

230Untuk membawa kembali sesi yang Anda mulai dengan `claude --remote-control` atau `/remote-control`, lanjutkan percakapan dengan `claude --continue` atau `claude --resume`. Apakah Claude Code terhubung kembali, dan ke sesi mana, tergantung pada [catatan koneksi ulang](#resume-outcomes) percakapan.224Untuk membawa kembali sesi yang Anda mulai dengan `claude --remote-control` atau `/remote-control`, lanjutkan percakapan dengan `claude --continue` atau `claude --resume`. Jika Remote Control tidak terhubung kembali, lihat [Couldn't reconnect to your Remote Control session](#couldnt-reconnect-to-your-remote-control-session).

231 225 

232Jika Anda melanjutkan percakapan di terminal kedua sementara yang pertama masih memiliki Remote Control aktif, Claude Code mencetak pemberitahuan di terminal kedua dan membiarkan Remote Control mati di sana alih-alih mengambil sesi dari yang pertama. Saat Remote Control tetap mati di sana, Claude di terminal itu tidak melihat [sesi Anda di mesin lain](/docs/id/cross-session-messaging#see-which-sessions-claude-can-reach), dan mereka tidak dapat menjangkaunya. Jalankan `/remote-control` di terminal kedua untuk memindahkan Remote Control ke sana.226Jika Anda melanjutkan percakapan di terminal kedua sementara yang pertama masih memiliki Remote Control aktif, Claude Code mencetak pemberitahuan `Remote Control not started here` di terminal kedua dan membiarkan Remote Control mati di sana bukan mengambil sesi dari yang pertama. Jalankan `/remote-control` di terminal kedua untuk memindahkan Remote Control ke sana.

233 227 

234Ketika Anda melanjutkan percakapan di Claude Desktop atau ekstensi IDE yang memiliki Remote Control aktif, Claude Code melampirkannya kembali ke sesi claude.ai yang ada alih-alih menambahkan yang baru ke daftar sesi.228Saat Anda melanjutkan percakapan di Claude Desktop atau ekstensi IDE yang memiliki Remote Control aktif, Claude Code melampirkannya kembali ke sesi claude.ai yang ada bukan menambahkan yang baru ke daftar sesi.

235 229 

236<h2 id="connection-and-security">230<h2 id="connection-and-security">

237 Koneksi dan keamanan231 Koneksi dan keamanan


239 233 

240Sesi Claude Code lokal Anda membuat permintaan HTTPS keluar saja dan tidak pernah membuka port masuk di mesin Anda. Ketika Anda memulai Remote Control, sesi tersebut mendaftarkan dengan API Anthropic dan polling untuk pekerjaan. Ketika Anda terhubung dari perangkat lain, server merutekan pesan antara klien web atau mobile dan sesi lokal Anda melalui koneksi streaming.234Sesi Claude Code lokal Anda membuat permintaan HTTPS keluar saja dan tidak pernah membuka port masuk di mesin Anda. Ketika Anda memulai Remote Control, sesi tersebut mendaftarkan dengan API Anthropic dan polling untuk pekerjaan. Ketika Anda terhubung dari perangkat lain, server merutekan pesan antara klien web atau mobile dan sesi lokal Anda melalui koneksi streaming.

241 235 

242Semua lalu lintas berjalan melalui API Anthropic melalui TLS, keamanan transportasi yang sama seperti sesi Claude Code apa pun. Koneksi menggunakan beberapa kredensial berumur pendek, masing-masing dibatasi untuk satu tujuan dan kedaluwarsa secara independen. Ketika kredensial pendaftaran server `claude remote-control` kedaluwarsa, server mendaftarkan dengan API Anthropic lagi dan terus melayani sesinya.236Semua lalu lintas berjalan melalui API Anthropic melalui TLS, keamanan transportasi yang sama seperti sesi Claude Code apa pun. Koneksi menggunakan beberapa kredensial berumur pendek, masing-masing dibatasi untuk satu tujuan dan kedaluwarsa secara independen.

243 237 

244Saat Remote Control terhubung, transkrip sesi, termasuk pesan Anda, respons Claude, dan aktivitas alat, disimpan di server Anthropic. Transkrip yang disimpan menjaga percakapan tetap sinkron di seluruh perangkat Anda dan memungkinkan sesi untuk terhubung kembali setelah gangguan jaringan. Eksekusi dan akses sistem file tetap berada di mesin Anda, dan transkrip yang disimpan dipertahankan sesuai dengan kebijakan [Penggunaan data](/docs/id/data-usage).238Saat Remote Control terhubung, transkrip sesi, termasuk pesan Anda, respons Claude, dan aktivitas alat, disimpan di server Anthropic. Transkrip yang disimpan menjaga percakapan tetap sinkron di seluruh perangkat Anda dan memungkinkan sesi untuk terhubung kembali setelah gangguan jaringan. Eksekusi dan akses sistem file tetap berada di mesin Anda, dan transkrip yang disimpan dipertahankan sesuai dengan kebijakan [Penggunaan data](/docs/id/data-usage).

245 239 


309Untuk perangkat yang hilang atau dicuri, anggota menghapusnya dari halaman ini. Jika anggota tidak dapat masuk, admin dapat menggunakan **Sign out everywhere** di konsol admin untuk mencabut setiap sesi dan perangkat terdaftar untuk anggota itu, setelah itu anggota mendaftarkan ulang perangkat yang masih mereka miliki.303Untuk perangkat yang hilang atau dicuri, anggota menghapusnya dari halaman ini. Jika anggota tidak dapat masuk, admin dapat menggunakan **Sign out everywhere** di konsol admin untuk mencabut setiap sesi dan perangkat terdaftar untuk anggota itu, setelah itu anggota mendaftarkan ulang perangkat yang masih mereka miliki.

310 304 

311<h2 id="remote-control-vs-cloud-sessions">305<h2 id="remote-control-vs-cloud-sessions">

312 Remote Control vs cloud sessions306 Remote Control vs sesi cloud

313</h2>307</h2>

314 308 

315Remote Control dan [cloud sessions](/docs/id/claude-code-on-the-web) keduanya menggunakan antarmuka claude.ai/code. Perbedaan utamanya adalah di mana sesi berjalan: Remote Control dieksekusi di mesin Anda, sehingga MCP servers lokal, alat, dan konfigurasi proyek Anda tetap tersedia. Sesi cloud dieksekusi di infrastruktur cloud, dikelola oleh Anthropic secara default.309Remote Control dan [sesi cloud](/docs/id/claude-code-on-the-web) keduanya menggunakan antarmuka claude.ai/code. Perbedaan utamanya adalah di mana sesi berjalan: Remote Control dieksekusi di mesin Anda, sehingga server MCP lokal, alat, dan konfigurasi proyek Anda tetap tersedia. Sesi cloud dieksekusi pada infrastruktur cloud, dikelola oleh Anthropic secara default.

316 310 

317Gunakan Remote Control ketika Anda sedang dalam pekerjaan lokal dan ingin terus melanjutkan dari perangkat lain. Gunakan sesi cloud ketika Anda ingin memulai tugas tanpa pengaturan lokal apa pun, bekerja pada repo yang tidak Anda miliki klonnya, atau menjalankan beberapa tugas secara paralel.311Gunakan Remote Control ketika Anda sedang berada di tengah pekerjaan lokal dan ingin melanjutkan dari perangkat lain. Gunakan sesi cloud ketika Anda ingin memulai tugas tanpa penyiapan lokal apa pun, bekerja pada repo yang tidak Anda miliki klonnya, atau menjalankan beberapa tugas secara paralel. Sebuah [proyek](/docs/id/claude-projects) menggabungkan keduanya: thread-nya berjalan di cloud, dan menggunakan Remote Control untuk [menjalankan thread di komputer Anda](/docs/id/claude-projects#run-a-thread-on-your-own-computer) ketika Anda memintanya di sana.

312 

313Claude Code menawarkan beberapa cara untuk bekerja ketika Anda tidak berada di terminal. Mereka berbeda dalam hal apa yang memicu pekerjaan, di mana Claude berjalan, dan berapa banyak yang perlu Anda atur.

314 

315| | Pemicu | Claude berjalan di | Pengaturan | Terbaik untuk |

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

317| [Dispatch](/docs/id/desktop#sessions-from-dispatch) | Kirim pesan tugas dari aplikasi mobile Claude | Mesin Anda (Desktop) | [Pasangkan aplikasi mobile dengan Desktop](https://support.claude.com/en/articles/13947068) | Mendelegasikan pekerjaan saat Anda pergi, pengaturan minimal |

318| [Remote Control](/docs/id/remote-control) | Jalankan sesi yang sedang berjalan dari [claude.ai/code](https://claude.ai/code) atau aplikasi mobile Claude | Mesin Anda (CLI, Desktop, atau VS Code) | Jalankan [`claude remote-control` atau `/remote-control`](/docs/id/remote-control#start-a-remote-control-session) | Mengarahkan pekerjaan yang sedang berlangsung dari perangkat lain |

319| [Channels](/docs/id/channels) | Dorong acara dari aplikasi chat seperti Telegram atau Discord, atau server Anda sendiri | Mesin Anda (CLI) | [Instal plugin channel](/docs/id/channels#quickstart) atau [buat milik Anda sendiri](/docs/id/channels-reference) | Bereaksi terhadap acara eksternal seperti kegagalan CI atau pesan chat |

320| [Slack](/docs/id/slack) | Sebutkan `@Claude` di saluran tim | Cloud Anthropic | [Instal aplikasi Slack](/docs/id/slack#setting-up-claude-code-in-slack) dengan [Claude Code di web](/docs/id/claude-code-on-the-web) diaktifkan | PR dan ulasan dari chat tim |

321| [Self-hosted environments](/docs/id/self-hosted-environments) | Mulai [sesi cloud](/docs/id/claude-code-on-the-web) dan pilih lingkungan organisasi Anda | Infrastruktur organisasi Anda | [Terapkan runner](/docs/id/self-hosted-environments-quickstart), pada paket Team dan Enterprise | Sesi cloud yang harus berjalan di dalam jaringan Anda |

322| [Scheduled tasks](/docs/id/scheduled-tasks) | Atur jadwal | [CLI](/docs/id/scheduled-tasks), [Desktop](/docs/id/desktop-scheduled-tasks), atau [cloud](/docs/id/routines) | Pilih frekuensi | Otomasi berulang seperti ulasan harian |

318 323 

319<h2 id="mobile-push-notifications">324<h2 id="mobile-push-notifications">

320 Notifikasi push mobile325 Notifikasi push mobile


324 329 

325Claude memutuskan kapan harus push. Biasanya mengirim satu ketika tugas yang berjalan lama selesai atau ketika memerlukan keputusan dari Anda untuk melanjutkan. Anda juga dapat meminta push dalam prompt Anda, misalnya `notify me when the tests finish`. Selain dua toggle on/off di bawah, tidak ada konfigurasi per-event.330Claude memutuskan kapan harus push. Biasanya mengirim satu ketika tugas yang berjalan lama selesai atau ketika memerlukan keputusan dari Anda untuk melanjutkan. Anda juga dapat meminta push dalam prompt Anda, misalnya `notify me when the tests finish`. Selain dua toggle on/off di bawah, tidak ada konfigurasi per-event.

326 331 

327Untuk menyiapkan notifikasi push mobile:332Untuk mengatur notifikasi push mobile:

328 333 

329<Steps>334<Steps>

330 <Step title="Instal aplikasi Claude mobile">335 <Step title="Install the Claude mobile app">

331 Unduh aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) atau [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude).336 Unduh aplikasi Claude untuk [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) atau [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude).

332 </Step>337 </Step>

333 338 

334 <Step title="Masuk dengan akun Claude Code Anda">339 <Step title="Sign in with your Claude Code account">

335 Gunakan akun dan organisasi yang sama yang Anda gunakan untuk Claude Code di terminal.340 Gunakan akun dan organisasi yang sama yang Anda gunakan untuk Claude Code di terminal.

336 </Step>341 </Step>

337 342 

338 <Step title="Izinkan notifikasi">343 <Step title="Allow notifications">

339 Terima prompt izin notifikasi dari sistem operasi.344 Terima prompt izin notifikasi dari sistem operasi.

340 </Step>345 </Step>

341 346 

342 <Step title="Aktifkan push di Claude Code">347 <Step title="Enable push in Claude Code">

343 Di terminal Anda, jalankan `/config` dan aktifkan **Push when Claude decides** untuk notifikasi proaktif, **Push when actions required** untuk prompt izin dan pertanyaan, atau keduanya.348 Di terminal Anda, jalankan `/config` dan aktifkan **Push when Claude decides** untuk notifikasi proaktif, **Push when actions required** untuk prompt izin dan pertanyaan, atau keduanya.

344 </Step>349 </Step>

345</Steps>350</Steps>


350* Di iOS, Focus modes dan notification summaries dapat menekan atau menunda push. Periksa Settings → Notifications → Claude.355* Di iOS, Focus modes dan notification summaries dapat menekan atau menunda push. Periksa Settings → Notifications → Claude.

351* Di Android, optimasi baterai yang agresif dapat menunda pengiriman. Kecualikan aplikasi Claude dari optimasi baterai di pengaturan sistem.356* Di Android, optimasi baterai yang agresif dapat menunda pengiriman. Kecualikan aplikasi Claude dari optimasi baterai di pengaturan sistem.

352 357 

353Claude Code melewatkan notifikasi push mobile saat Anda mengetik atau fokus pada terminal yang terhubung. Mulai dari v2.1.181, Anda dapat mengatur [`CLAUDE_CLIENT_PRESENCE_FILE`](/docs/id/env-vars) ke jalur file penanda untuk memperluas ini ke kapan saja Anda berada di mesin, bahkan di jendela lain: notifikasi dilewatkan saat file ada. Konfigurasikan pendengar kunci layar atau alat serupa untuk membuat file saat layar Anda membuka kunci dan menghapusnya saat layar Anda terkunci.358Claude Code melewati notifikasi push mobile saat Anda mengetik atau fokus pada terminal yang terhubung. Untuk memperluas ini ke kapan saja Anda berada di mesin, bahkan di jendela lain, atur [`CLAUDE_CLIENT_PRESENCE_FILE`](/docs/id/env-vars) ke jalur file penanda: notifikasi dilewati saat file ada. Konfigurasikan pendengar kunci layar atau alat serupa untuk membuat file saat layar Anda membuka kunci dan menghapusnya saat layar Anda mengunci.

354 359 

355<h2 id="limitations">360<h2 id="limitations">

356 Keterbatasan361 Keterbatasan

357</h2>362</h2>

358 363 

359* **Satu sesi jarak jauh per proses interaktif**: di luar mode server, setiap instans Claude Code mendukung satu sesi jarak jauh pada satu waktu. Gunakan [mode server](#start-a-remote-control-session) untuk menjalankan beberapa sesi bersamaan dari satu proses.364* **Satu sesi jarak jauh per proses interaktif**: di luar server mode, setiap instans Claude Code mendukung satu sesi jarak jauh pada satu waktu. Gunakan [server mode](#start-a-remote-control-session) untuk menjalankan beberapa sesi bersamaan dari satu proses.

360* **Proses lokal harus tetap berjalan**: Remote Control berjalan sebagai proses lokal. Jika Anda menutup terminal, keluar dari VS Code, atau menghentikan proses `claude` dengan cara lain, sesi akan offline sampai Anda [membawanya kembali](#resume-sessions-after-stopping-the-server). Kecuali Claude sedang menjalankan tugas, claude.ai dan aplikasi Claude menampilkan sesi sebagai offline dalam hitungan detik setelah proses keluar. Untuk menjaga sesi tetap berjalan di mesin jarak jauh setelah Anda memutuskan sambungan SSH, mulai di dalam `tmux` atau `screen`.365* **Proses lokal harus tetap berjalan**: Remote Control berjalan sebagai proses lokal. Jika Anda menutup terminal, keluar dari Desktop app atau VS Code, atau menghentikan proses `claude` dengan cara lain, sesi akan offline sampai Anda [membawanya kembali](#resume-sessions-after-stopping-the-server). Untuk menjaga sesi tetap berjalan di mesin jarak jauh setelah Anda memutuskan SSH, mulai di dalam `tmux` atau `screen`.

361* **Sesi yang mogok dalam mode server**: jika sesi yang dilayani oleh `claude remote-control` mogok, kirimkan pesan kepadanya dari perangkat yang terhubung. Claude Code melayaninya lagi. Anda tidak perlu memulai ulang server. Memerlukan Claude Code v2.1.238 atau lebih baru.366* **Sesi yang mogok dalam server mode**: jika sesi yang dilayani oleh `claude remote-control` mogok, kirimkan pesan kepadanya dari perangkat yang terhubung. Claude Code melayaninya lagi. Anda tidak perlu memulai ulang server. Memerlukan Claude Code v2.1.238 atau lebih baru.

362* **Penolakan HTTP 403 pada sesi yang terhubung**: setelah sesi interaktif terhubung, Claude Code terus mencoba ulang hingga tiga menit ketika sesuatu antara mesin Anda dan server Anthropic menjawab dengan HTTP 403, yang dapat terjadi setelah perubahan VPN atau jaringan. Jika penolakan berlangsung lebih lama, Claude Code memutuskan sambungan, dan alasannya menunjukkan apa yang menolak: tepi jaringan, atau proxy, VPN, atau firewall di jaringan Anda sendiri.367* **Penolakan HTTP 403 pada sesi yang terhubung**: setelah sesi interaktif terhubung, Claude Code terus mencoba ulang hingga tiga menit ketika sesuatu antara mesin Anda dan server Anthropic menjawab dengan HTTP 403, yang dapat terjadi setelah perubahan VPN atau jaringan. Jika penolakan berlangsung lebih lama, Claude Code memutuskan sambungan, dan alasannya menunjukkan apa yang menolak: tepi jaringan, atau proxy, VPN, atau firewall di jaringan Anda sendiri.

363* **Pemadaman jaringan yang berkepanjangan**: jika mesin Anda aktif tetapi tidak dapat menjangkau jaringan, apa yang Anda lakukan selanjutnya tergantung pada mode:368* **Pemadaman jaringan yang berkepanjangan**: jika mesin Anda aktif tetapi tidak dapat menjangkau jaringan, apa yang Anda lakukan selanjutnya tergantung pada mode:

364 * **Mode server**: Claude Code menyerah setelah kira-kira 10 menit dan proses `claude remote-control` keluar. Jalankan `claude remote-control` lagi untuk memulai sesi baru.369 * **Server mode**: Claude Code menyerah setelah kira-kira 10 menit dan proses `claude remote-control` keluar. Jalankan `claude remote-control` lagi untuk memulai sesi baru.

365 * **Sesi interaktif**: terus bekerja secara lokal. Claude Code mencoba ulang selama pemadaman berlangsung dan terhubung kembali secara otomatis ketika jaringan kembali.370 * **Sesi interaktif**: terus bekerja secara lokal. Claude Code mencoba ulang selama pemadaman berlangsung dan terhubung kembali secara otomatis ketika jaringan kembali.

366* **Detak jantung kehadiran gagal**: jika sesi interaktif terputus dengan `could not reach the Remote Control server for about 30 minutes`, jalankan `/remote-control` untuk terhubung kembali. Claude Code menampilkan pesan ini hanya ketika detak jantung kehadiran sesi telah gagal sementara sisa koneksi tetap aktif; sesi didaftarkan ulang selama kira-kira 30 menit sebelum terputus.371* **Detak jantung kehadiran gagal**: jika sesi interaktif terputus dengan `could not reach the Remote Control server for about 30 minutes`, jalankan `/remote-control` untuk terhubung kembali.

367* **Dialog yang diteruskan kedaluwarsa**: Claude Code membuat prompt izin dan pertanyaan `AskUserQuestion` tetap terbuka sampai Anda menjawabnya. Ketika Claude Code meneruskan dialog jenis lain ke sesi jarak jauh, seperti prompt pilihan model yang ditampilkan setelah penolakan keselamatan, ia menunggu lima menit secara default, kemudian menutup dialog dan melanjutkan dengan default tanpa tindakan dialog. Atur [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry) untuk menyesuaikan atau menonaktifkan batas waktu. Memerlukan Claude Code v2.1.224 atau lebih baru.372* **Dialog yang diteruskan kedaluwarsa**: Claude Code membuat prompt izin dan pertanyaan `AskUserQuestion` tetap terbuka sampai Anda menjawabnya. Ketika Claude Code meneruskan dialog jenis lain ke sesi jarak jauh, seperti prompt pilihan model yang ditampilkan setelah penolakan keselamatan, ia menunggu lima menit secara default, kemudian menutup dialog dan melanjutkan dengan default tanpa tindakan dialog. Atur [`dialogExpiry`](/docs/id/settings-reference#dialogexpiry) untuk menyesuaikan atau menonaktifkan batas waktu. Memerlukan Claude Code v2.1.224 atau lebih baru.

368* **Prompt persetujuan kredit penggunaan Fable tidak diteruskan**: Claude Code menampilkan prompt persetujuan kredit penggunaan [Fable](/docs/id/model-config#fable-and-usage-credits) pertengahan sesi hanya di tempat sesi berjalan, bukan di perangkat Anda. Ketika sesi berjalan di terminal dan tidak ada yang menjawab sebelum Claude Code menutup prompt, giliran berakhir tanpa mengirim permintaan; lihat [The prompt to confirm went unanswered](/docs/id/errors#the-prompt-to-confirm-went-unanswered).373* **Prompt persetujuan kredit penggunaan Fable tidak diteruskan**: Claude Code menampilkan [prompt persetujuan kredit penggunaan Fable](/docs/id/model-config#fable-and-usage-credits) pertengahan sesi hanya di tempat sesi berjalan, bukan di perangkat Anda. Ketika sesi berjalan di terminal dan tidak ada yang menjawab sebelum Claude Code menutup prompt, giliran berakhir tanpa mengirim permintaan; lihat [The prompt to confirm went unanswered](/docs/id/errors#the-prompt-to-confirm-went-unanswered).

369* **Beberapa perintah hanya lokal**: perintah yang hanya berjalan di antarmuka terminal, seperti `/plugin` atau `/resume`, hanya berfungsi dari CLI lokal, terlepas dari apakah Anda meneruskan argumen atau tidak. Berikut ini berfungsi dari mobile dan web:374* **Beberapa perintah hanya lokal**: perintah yang hanya berjalan di antarmuka terminal, seperti `/plugin` atau `/resume`, hanya berfungsi dari CLI lokal, terlepas dari apakah Anda meneruskan argumen atau tidak. Berikut ini berfungsi dari mobile dan web:

370 * Perintah keluaran teks: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, dan `/reload-plugins`. `/usage-credits` mencetak URL penagihan alih-alih membuka browser. `/reload-plugins` hanya berfungsi ketika sesi berjalan di terminal interaktif; sesi tanpa satu menolaknya.375 * Perintah keluaran teks: `/compact`, `/clear`, `/context`, `/usage`, `/exit`, `/usage-credits`, `/recap`, dan `/reload-plugins`. `/usage-credits` mencetak URL penagihan alih-alih membuka browser. `/reload-plugins` hanya berfungsi ketika sesi berjalan di terminal interaktif; sesi tanpa satu menolaknya.

371 * `/model`, `/effort`, `/fast`, `/color`, dan `/rename`: teruskan nilai sebagai argumen, misalnya `/model sonnet` atau `/effort high`. Dari mobile dan web, `/model` dan `/effort` mengambil argumen sebagai pengganti pemilih terminal atau slider.376 * `/model`, `/effort`, `/fast`, `/color`, dan `/rename`: teruskan nilai sebagai argumen, misalnya `/model sonnet` atau `/effort high`. Dari mobile dan web, `/model` dan `/effort` mengambil argumen sebagai pengganti pemilih terminal atau slider.

372 * `/mcp`: dari aplikasi mobile, mengembalikan ringkasan teks status server alih-alih membuka pemilih. Di web, `/mcp` sendiri membuka direktori [konektor claude.ai](/docs/id/mcp#use-mcp-servers-from-claude-ai) alih-alih mengembalikan ringkasan. [Subperintah](/docs/id/commands#all-commands) `reconnect`, `enable`, dan `disable` berfungsi dari keduanya. Tidak seperti CLI lokal, `/mcp reconnect` tanpa nama server menghubungkan kembali setiap server yang telah gagal atau memerlukan autentikasi.377 * `/mcp`: dari aplikasi mobile, mengembalikan ringkasan teks status server alih-alih membuka pemilih. Di web, `/mcp` sendiri membuka direktori [claude.ai connectors](/docs/id/mcp#use-mcp-servers-from-claude-ai) alih-alih mengembalikan ringkasan. [Subperintah](/docs/id/commands#all-commands) `reconnect`, `enable`, dan `disable` berfungsi dari keduanya. Tidak seperti CLI lokal, `/mcp reconnect` tanpa nama server menghubungkan kembali setiap server yang telah gagal atau memerlukan autentikasi.

373 * `/config`: dari aplikasi mobile, teruskan `key=value` untuk menetapkan pengaturan, atau jalankan tanpa argumen untuk membuat daftar kunci yang dapat Anda atur. Di web, `/config` membuka bagian Claude Code dari pengaturan Anda, dan mengabaikan teks setelah perintah.378 * `/config`: dari aplikasi mobile, teruskan `key=value` untuk menetapkan pengaturan, atau jalankan tanpa argumen untuk membuat daftar kunci yang dapat Anda atur. Di web, `/config` membuka bagian Claude Code dari pengaturan Anda, dan mengabaikan teks setelah perintah.

374 * Di Team dan Enterprise, `/usage-credits` dari mobile atau web tidak mengirim [permintaan kredit penggunaan ke admin Anda](/docs/id/costs#add-usage-credits-to-your-subscription). Pengiriman memerlukan konfirmasi yang hanya muncul di CLI interaktif, jadi perintah memberi tahu Anda untuk menjalankannya di sana. Sebelum v2.1.211, bentuk teks mengirim permintaan tanpa konfirmasi.379 * Di Team dan Enterprise, `/usage-credits` dari mobile atau web tidak mengirim [permintaan usage-credits ke admin Anda](/docs/id/costs#add-usage-credits-to-your-subscription). Pengiriman memerlukan konfirmasi yang hanya muncul di CLI interaktif, jadi perintah memberi tahu Anda untuk menjalankannya di sana.

375 * `/autocompact`, dari v2.1.221: teruskan ukuran jendela sebagai argumen, misalnya `/autocompact 500k`. Tanpa argumen, ia mencetak ukuran jendela saat ini sebagai teks alih-alih membuka dialog yang ditampilkan perintah dalam sesi terminal.380 * `/autocompact`, dari v2.1.221: teruskan ukuran jendela sebagai argumen, misalnya `/autocompact 500k`. Tanpa argumen, ia mencetak ukuran jendela saat ini sebagai teks alih-alih membuka dialog yang ditampilkan perintah dalam sesi terminal.

376 * `/advisor`, dari v2.1.260: teruskan model sebagai argumen, misalnya `/advisor opus`, atau teruskan `off` untuk mematikan penasihat. Kedua bentuk berlaku untuk sesi saat ini saja dan membiarkan default yang disimpan tidak berubah. Tanpa argumen, ia mencetak penasihat saat ini sebagai teks alih-alih membuka pemilih.381 * `/advisor`, dari v2.1.260: teruskan model sebagai argumen, misalnya `/advisor opus`, atau teruskan `off` untuk mematikan advisor. Kedua bentuk berlaku untuk sesi saat ini saja dan meninggalkan default yang disimpan tidak berubah. Tanpa argumen, ia mencetak advisor saat ini sebagai teks alih-alih membuka pemilih.

377 * `/output-style`, dari v2.1.269: teruskan nama gaya sebagai argumen, misalnya `/output-style concise`, atau jalankan tanpa argumen untuk membuat daftar gaya. Dari mobile dan web, Anda hanya dapat membuat daftar dan memilih [gaya bawaan](/docs/id/output-styles#built-in-output-styles). Untuk menggunakan [gaya kustom](/docs/id/output-styles#create-a-custom-output-style), pilih di sesi itu sendiri.382 * `/output-style`, dari v2.1.269: teruskan nama gaya sebagai argumen, misalnya `/output-style concise`, atau jalankan tanpa argumen untuk membuat daftar gaya. Dari mobile dan web, Anda hanya dapat membuat daftar dan memilih [gaya bawaan](/docs/id/output-styles#built-in-output-styles). Untuk menggunakan [gaya kustom](/docs/id/output-styles#create-a-custom-output-style), pilih di sesi itu sendiri.

383 * `/focus`, dari v2.1.281: teruskan `on` atau `off` sebagai argumen, misalnya `/focus on`, atau jalankan tanpa argumen untuk mengalihkan [tampilan fokus](/docs/id/commands#all-commands). Kedua bentuk berlaku untuk sesi saat ini saja dan meninggalkan pilihan yang disimpan tidak berubah.

378 384 

379<h2 id="troubleshooting">385<h2 id="troubleshooting">

380 Pemecahan Masalah386 Troubleshooting

381</h2>387</h2>

382 388 

383<h3 id="remote-control-requires-a-claude-ai-subscription">389<h3 id="remote-control-requires-a-claude-ai-subscription">

384 "Remote Control memerlukan langganan claude.ai"390 "Remote Control requires a claude.ai subscription"

385</h3>391</h3>

386 392 

387Anda tidak masuk dengan akun claude.ai, atau kredensial lain mengambil alih login Anda. Pesan ini mengambil salah satu bentuk berikut:393Anda tidak masuk dengan akun claude.ai, atau kredensial lain mengambil alih login Anda. Pesan ini mengambil salah satu bentuk berikut:

388 394 

389* Tidak masuk, dari `/remote-control` atau `--remote-control`: `Remote Control requires a claude.ai subscription.` atau `/remote-control requires a claude.ai subscription.`395* Keluar, dari `/remote-control` atau `--remote-control`: `Remote Control requires a claude.ai subscription.` atau `/remote-control requires a claude.ai subscription.`

390* Tidak masuk, dari `claude remote-control`: `You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`396* Keluar, dari `claude remote-control`: `You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`

391* Masuk, tetapi kunci API atau token sedang digunakan: `Remote Control requires claude.ai subscription auth.` diikuti oleh kredensial yang digunakan, seperti `ANTHROPIC_API_KEY is set, so this session is using API-key auth`. Pengaturan `apiKeyHelper` dan `ANTHROPIC_AUTH_TOKEN` dinamai dengan cara yang sama.397* Masuk, tetapi API key atau token sedang digunakan: `Remote Control requires claude.ai subscription auth.` diikuti oleh kredensial yang digunakan, seperti `ANTHROPIC_API_KEY is set, so this session is using API-key auth`. Pengaturan `apiKeyHelper` dan `ANTHROPIC_AUTH_TOKEN` dinamai dengan cara yang sama.

392 

393Jalankan `claude auth login` dan pilih opsi claude.ai. Jika pesan menyebutkan `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN`, hapus di mana pun diatur: lingkungan shell Anda atau blok `env` dari [file pengaturan](/docs/id/settings-reference#env). Jika menyebutkan `apiKeyHelper`, hapus pengaturan tersebut.

394 398 

395Sebelum v2.1.206, menjalankan `/remote-control` saat tidak masuk melaporkan `Unknown command: /remote-control` alih-alih pesan ini.399Jalankan `claude auth login` dan pilih opsi claude.ai. Jika pesan menyebutkan `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN`, hapusnya di mana pun itu diatur: lingkungan shell Anda atau blok `env` dari [file pengaturan](/docs/id/settings-reference#env). Jika menyebutkan `apiKeyHelper`, hapus pengaturan itu.

396 400 

397<h3 id="remote-control-requires-a-full-scope-login-token">401<h3 id="remote-control-requires-a-full-scope-login-token">

398 "Remote Control memerlukan token login dengan cakupan penuh"402 "Remote Control requires a full-scope login token"

399</h3>403</h3>

400 404 

401Anda diautentikasi dengan token berumur panjang dari `claude setup-token` atau variabel lingkungan `CLAUDE_CODE_OAUTH_TOKEN`. Token ini hanya dapat membuat permintaan model, jadi token ini tidak dapat membuat sesi Remote Control. Jalankan `claude auth login` untuk autentikasi dengan token sesi cakupan penuh sebagai gantinya.405Anda diautentikasi dengan token jangka panjang dari `claude setup-token` atau variabel lingkungan `CLAUDE_CODE_OAUTH_TOKEN`. Token ini hanya dapat membuat permintaan model, jadi mereka tidak dapat membuat sesi Remote Control. Jalankan `claude auth login` untuk mengautentikasi dengan token sesi full-scope sebagai gantinya.

402 406 

403<h3 id="unable-to-determine-your-organization-for-remote-control-eligibility">407<h3 id="unable-to-determine-your-organization-for-remote-control-eligibility">

404 "Tidak dapat menentukan organisasi Anda untuk kelayakan Remote Control"408 "Unable to determine your organization for Remote Control eligibility"

405</h3>409</h3>

406 410 

407Informasi akun cache Anda sudah usang atau tidak lengkap. Jalankan `claude auth login` untuk menyegarkannya.411Informasi akun yang disimpan dalam cache Anda sudah usang atau tidak lengkap. Jalankan `claude auth login` untuk menyegarkannya.

408 412 

409<h3 id="remote-control-isn’t-enabled-for-this-account">413<h3 id="remote-control-isn’t-enabled-for-this-account">

410 "Remote Control belum diaktifkan untuk akun ini"414 "Remote Control isn't enabled for this account"

411</h3>415</h3>

412 416 

413Claude Code memeriksa ketersediaan Remote Control untuk akun yang Anda masuki dan pemeriksaan kembali mati. Penyebab biasanya adalah hak akses cache yang sudah ketinggalan zaman setelah perubahan paket. Jalankan `claude auth logout` kemudian `claude auth login` untuk menyegarkannya, dan perbarui Claude Code jika Anda menggunakan versi lama.417Claude Code memeriksa ketersediaan Remote Control untuk akun yang Anda masuki dan pemeriksaan kembali mati. Penyebab biasanya adalah hak yang disimpan dalam cache yang sudah ketinggalan zaman setelah perubahan paket. Jalankan `claude auth logout` kemudian `claude auth login` untuk menyegarkannya, dan perbarui Claude Code jika Anda menggunakan versi lama.

414 418 

415Jalankan `claude doctor` untuk melihat pemeriksaan kelayakan individual mana yang gagal. Konflik variabel lingkungan, pemeriksaan yang tidak dapat dijangkau, dan pengaturan Remote Control organisasi Anda masing-masing menghasilkan pesan mereka sendiri, jadi kesalahan ini berarti pemeriksaan tingkat akun itu sendiri.419Jalankan `claude doctor` untuk melihat pemeriksaan kelayakan individu mana yang gagal. Konflik variabel lingkungan, pemeriksaan yang tidak dapat dijangkau, dan pengaturan Remote Control organisasi Anda masing-masing menghasilkan pesan mereka sendiri, jadi kesalahan ini berarti pemeriksaan tingkat akun itu sendiri.

416 420 

417Sebelum v2.1.239, pesan ini berbunyi "Remote Control is not yet enabled for your account". Sebelum v2.1.154, variabel yang menonaktifkan evaluasi feature-flag, seperti `DISABLE_TELEMETRY` atau `DO_NOT_TRACK`, juga menghasilkan pesan ini; entri "Remote Control memerlukan evaluasi feature-flag" di bawah mencakup konfigurasi tersebut.421Sebelum v2.1.239, pesan ini berbunyi "Remote Control is not yet enabled for your account".

418 422 

419<h3 id="couldn’t-verify-remote-control-eligibility">423<h3 id="couldn’t-verify-remote-control-eligibility">

420 "Tidak dapat memverifikasi kelayakan Remote Control"424 "Couldn't verify Remote Control eligibility"

421</h3>425</h3>

422 426 

423Claude Code tidak dapat menjangkau layanan feature-flag untuk memeriksa apakah Remote Control diaktifkan untuk akun Anda, biasanya karena Anda offline atau proxy memblokir permintaan. Coba lagi setelah Anda memiliki akses jaringan, atau jalankan `claude doctor` untuk detail. Pesan terkait "Tidak dapat memverifikasi kebijakan Remote Control organisasi Anda" berarti Claude Code tidak dapat membaca kebijakan tersebut, dan memiliki perbaikan yang sama. Kedua pesan ditambahkan di v2.1.178.427Claude Code tidak dapat menjangkau layanan feature-flag untuk memeriksa apakah Remote Control diaktifkan untuk akun Anda, biasanya karena Anda offline atau proxy memblokir permintaan. Coba lagi setelah Anda memiliki akses jaringan, atau jalankan `claude doctor` untuk detail. Pesan terkait "Couldn't verify your organization's Remote Control policy" berarti Claude Code mengalami kesalahan membaca kebijakan itu, dan memiliki perbaikan yang sama.

424 428 

425<h3 id="remote-control-requires-feature-flag-evaluation">429<h3 id="remote-control-requires-feature-flag-evaluation">

426 "Remote Control memerlukan evaluasi feature-flag"430 "Remote Control requires feature-flag evaluation"

427</h3>431</h3>

428 432 

429Salah satu variabel ini diatur: [`DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, atau `DISABLE_GROWTHBOOK`](/docs/id/env-vars). Masing-masing menonaktifkan evaluasi feature-flag yang ketersediaan Remote Control bergantung padanya, dan pesan lengkap menyebutkan variabel yang Claude Code temukan. Batalkan pengaturan variabel tersebut di mana pun diatur, di lingkungan shell Anda atau di blok `env` dari file [`settings.json`](/docs/id/settings-reference#all-settings). Pada versi sebelum 2.1.154, konfigurasi yang sama menghasilkan "Remote Control is not yet enabled for your account" sebagai gantinya.433[Variabel lingkungan](/docs/id/env-vars#features-that-need-feature-flag-fetching) yang mematikan evaluasi feature-flag diatur, dan pesan lengkap menyebutkan variabel yang ditemukan Claude Code. Pada versi sebelum 2.1.154, konfigurasi yang sama menghasilkan "Remote Control is not yet enabled for your account" sebagai gantinya. Apa yang harus dilakukan tergantung pada variabel yang disebutkan pesan:

434 

435* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` atau `DISABLE_GROWTHBOOK`**: batalkan pengaturan variabel di mana pun itu diatur, di lingkungan shell Anda atau di blok `env` dari file [`settings.json`](/docs/id/settings-reference#all-settings).

436* **`DISABLE_TELEMETRY` atau `DO_NOT_TRACK`**: pada paket Pro, Max, Team, atau Enterprise dengan `DISABLE_GROWTHBOOK` tidak diatur, variabel ini meninggalkan Remote Control tersedia kecuali organisasi Anda memerlukan [Trusted Devices](#trusted-devices). Jika demikian, batalkan pengaturan variabel di mana pun itu diatur untuk menggunakan Remote Control. Dari v2.1.154 hingga v2.1.282, salah satu variabel menghasilkan pesan ini, jadi perbarui Claude Code ke v2.1.283 atau lebih baru.

430 437 

431<h3 id="remote-control-is-only-available-when-using-claude-via-api-anthropic-com">438<h3 id="remote-control-is-only-available-when-using-claude-via-api-anthropic-com">

432 "Remote Control hanya tersedia saat menggunakan Claude melalui api.anthropic.com"439 "Remote Control is only available when using Claude via api.anthropic.com"

433</h3>440</h3>

434 441 

435Sesi tidak berbicara langsung ke API Anthropic, jadi tidak ada backend claude.ai untuk dipasangkan. Ini terjadi di Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry. Ini juga terjadi ketika [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) menunjuk ke host selain `api.anthropic.com`, seperti [gateway LLM](/docs/id/llm-gateway) atau proxy, bahkan jika Anda masuk dengan claude.ai. Sebelum v2.1.196, Claude Code tidak menampilkan pesan ini untuk `ANTHROPIC_BASE_URL` kustom. Lihat [referensi kesalahan](/docs/id/errors#remote-control-requires-the-anthropic-api) untuk daftar penyebab lengkap.442Sesi tidak berbicara langsung ke Anthropic API, yang diperlukan Remote Control. Ini terjadi pada Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry. Ini juga terjadi ketika [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) menunjuk ke host selain `api.anthropic.com`, seperti [LLM gateway](/docs/id/llm-gateway) atau proxy, bahkan jika Anda masuk dengan claude.ai. Lihat [referensi kesalahan](/docs/id/errors#remote-control-requires-the-anthropic-api) untuk daftar penyebab lengkap.

436 443 

437Pesan menyebutkan apa yang mengarahkan sesi jauh dari API Anthropic, seperti `CLAUDE_CODE_USE_BEDROCK` atau `ANTHROPIC_BASE_URL` kustom. Jika Anda memiliki login claude.ai yang memenuhi syarat, batalkan pengaturan variabel yang disebutkan, hapus dari kunci `env` di [pengaturan](/docs/id/settings) jika Anda menetapkannya di sana, dan mulai ulang sesi. Sebelum v2.1.219, pesan hanya berupa kalimat di header bagian ini, jadi pada versi yang lebih lama periksa lingkungan Anda sendiri untuk variabel penyedia seperti `CLAUDE_CODE_USE_BEDROCK` dan `CLAUDE_CODE_USE_VERTEX`, dan untuk `ANTHROPIC_BASE_URL`.444Pesan menyebutkan apa yang mengarahkan sesi jauh dari Anthropic API, seperti `CLAUDE_CODE_USE_BEDROCK` atau `ANTHROPIC_BASE_URL` kustom. Jika Anda memiliki login claude.ai yang memenuhi syarat, batalkan pengaturan variabel yang disebutkan, hapusnya dari kunci `env` di [pengaturan](/docs/id/settings) jika Anda menetapkannya di sana, dan mulai ulang sesi.

438 445 

439<h3 id="remote-control-is-disabled-by-your-organization’s-policy">446<h3 id="remote-control-is-disabled-by-your-organization’s-policy">

440 "Remote Control dinonaktifkan oleh kebijakan organisasi Anda"447 "Remote Control is disabled by your organization's policy"

441</h3>448</h3>

442 449 

443Kebijakan memblokir Remote Control, atau Claude Code tidak dapat memuat kebijakan organisasi Anda di mesin ini dan terus menjaga Remote Control tetap mati untuk sementara. Periksa penyebab ini secara berurutan:450Kebijakan memblokir Remote Control. Periksa penyebab ini secara berurutan:

451 

452* **Kesalahan menyebutkan `disableRemoteControl`**: administrator IT Anda telah menonaktifkan Remote Control di perangkat ini melalui [pengaturan terkelola](/docs/id/managed-settings), terlepas dari toggle organisasi-lebar dan bagaimana Anda masuk.

453* **Paket claude.ai Anda adalah Pro atau Max**: Claude Code masih masuk di bawah organisasi Team atau Enterprise dari login sebelumnya, jadi itu memeriksa kebijakan Remote Control organisasi itu. Jalankan `/status` untuk melihat paket dan organisasi mana yang digunakan sign-in Anda. Jalankan `claude auth logout` kemudian `claude auth login` untuk masuk lagi di bawah paket Anda saat ini.

454* **Pesan tidak mengatakan untuk menghubungi admin organisasi Anda**: organisasi Anda memiliki konfigurasi HIPAA yang tidak kompatibel dengan Remote Control, dan `/status` mencantumkan `HIPAA` di baris `Compliance` nya. Dalam keadaan ini toggle Remote Control panel admin diarsir, jadi Owner tidak dapat mengubahnya di sana. Hubungi dukungan Anthropic untuk membahas opsi. Sebelum v2.1.267, kasus ini menunjukkan "Remote Control isn't available for your organization due to its compliance policy" sebagai gantinya.

455* **Jika tidak, Owner belum mengaktifkannya untuk organisasi Anda**: Remote Control mati secara default pada paket Team dan Enterprise. Owner dapat mengaktifkannya di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) dengan mengaktifkan toggle **Remote Control**. Toggle ini adalah pengaturan organisasi sisi server.

456 

457Sebelum v2.1.281, pesan ini juga muncul ketika Claude Code belum memuat kebijakan organisasi Anda di mesin ini, misalnya setelah memulai offline. Versi yang lebih baru melaporkan keadaan itu sebagai [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control) sebagai gantinya.

458 

459<h3 id="couldnt-verify-your-organizations-policy-for-remote-control">

460 "Couldn't verify your organization's policy for remote control"

461</h3>

462 

463Claude Code tidak dapat mengambil kebijakan organisasi Anda dan tidak memiliki salinan yang disimpan di mesin ini untuk digunakan sebagai gantinya, jadi itu membuat Remote Control tetap mati sampai dapat mengkonfirmasi bahwa organisasi Anda mengizinkannya. Ini biasanya terjadi ketika Anda memulai Claude Code offline atau sebelum VPN terhubung, atau ketika proxy mengganggu permintaan. Pada koneksi lambat itu juga dapat muncul saat permintaan pertama masih dalam penerbangan.

464 

465Pesan ini mengambil salah satu bentuk berikut:

444 466 

445* **Kesalahan menyebutkan `disableRemoteControl`**: administrator IT Anda telah menonaktifkan Remote Control di perangkat ini melalui [pengaturan yang dikelola](/docs/id/managed-settings), terlepas dari toggle organisasi-lebar dan bagaimana Anda masuk.467* Dari `/remote-control`, `claude remote-control`, atau `claude --remote-control`: `Couldn't verify your organization's policy for remote control. Check your network connection and try again.`

446* **Paket claude.ai Anda adalah Pro atau Max**: Claude Code masih masuk di bawah organisasi Team atau Enterprise dari login sebelumnya, jadi memeriksa kebijakan Remote Control organisasi tersebut. Jalankan `/status` untuk melihat paket dan organisasi mana yang digunakan sign-in Anda. Jalankan `claude auth logout` kemudian `claude auth login` untuk masuk lagi di bawah paket Anda saat ini.468* Dari [auto-connect](#enable-remote-control-for-all-sessions) ketika sesi dimulai: `couldn't verify your organization's policy — check your network connection and try again`, diawali dengan `Remote Control failed` dalam notifikasi dan `Remote Control disconnected` dalam percakapan. Sesi kemudian meninggalkan Remote Control mati.

447* **Kebijakan organisasi tidak dimuat di mesin ini**: jalankan `claude doctor` dan baca baris `Organization policy`. Jika baris menunjukkan kebijakan tidak dimuat, itulah yang membuat Remote Control tetap mati. Sebelum v2.1.261, `claude doctor` tidak mencetak baris ini.469 

448* **Pesan tidak mengatakan untuk menghubungi admin organisasi Anda**: organisasi Anda memiliki konfigurasi HIPAA yang tidak kompatibel dengan Remote Control, dan `/status` mencantumkan `HIPAA` di baris `Compliance` nya. Dalam keadaan ini toggle Remote Control panel admin berwarna abu-abu, jadi Pemilik tidak dapat mengubahnya di sana. Hubungi dukungan Anthropic untuk membahas opsi. Sebelum v2.1.267, kasus ini menampilkan "Remote Control isn't available for your organization due to its compliance policy" sebagai gantinya.470Pulihkan koneksi jaringan Anda, kemudian jalankan `/remote-control` atau jalankan perintah lagi. Setiap upaya memeriksa kebijakan lagi, jadi Anda tidak perlu memulai ulang Claude Code. Jika pesan terus muncul, jalankan `claude doctor` dan baca baris `Organization policy` nya, yang mengatakan mengapa kebijakan tidak dimuat.

449* **Jika tidak, Pemilik belum mengaktifkannya untuk organisasi Anda**: Remote Control dimatikan secara default di paket Team dan Enterprise. Pemilik dapat mengaktifkannya di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) dengan mengaktifkan toggle **Remote Control**. Toggle ini adalah pengaturan organisasi sisi server.471 

472Sebelum v2.1.281, keadaan ini menunjukkan `Remote Control is disabled by your organization's policy` sebagai gantinya.

450 473 

451<h3 id="remote-credentials-fetch-failed">474<h3 id="remote-credentials-fetch-failed">

452 "Remote credentials fetch failed"475 "Remote credentials fetch failed"

453</h3>476</h3>

454 477 

455Claude Code tidak dapat memperoleh kredensial berumur pendek dari API Anthropic untuk membuat koneksi. Jalankan kembali dengan `--verbose` untuk melihat kesalahan lengkapnya:478Claude Code tidak dapat memperoleh kredensial jangka pendek dari Anthropic API untuk membuat koneksi. Jalankan ulang dengan `--verbose` untuk melihat kesalahan lengkap:

456 479 

457```bash theme={null}480```bash theme={null}

458claude remote-control --verbose481claude remote-control --verbose


460 483 

461Penyebab umum:484Penyebab umum:

462 485 

463* Tidak masuk: jalankan `claude` dan gunakan `/login` untuk autentikasi dengan akun claude.ai Anda. Autentikasi kunci API tidak didukung untuk Remote Control.486* Tidak masuk: jalankan `claude` dan gunakan `/login` untuk mengautentikasi dengan akun claude.ai Anda. Autentikasi API key tidak didukung untuk Remote Control.

464* Masalah jaringan atau proxy: firewall atau proxy dapat memblokir permintaan HTTPS keluar. Remote Control memerlukan akses ke API Anthropic di port 443.487* Masalah jaringan atau proxy: firewall atau proxy dapat memblokir permintaan HTTPS keluar. Remote Control memerlukan akses ke Anthropic API di port 443.

465* Pembuatan sesi gagal: jika Anda juga melihat `Session creation failed — see debug log`, kegagalan terjadi lebih awal dalam pengaturan. Periksa bahwa langganan Anda aktif.488* Pembuatan sesi gagal: jika Anda juga melihat `Session creation failed — see debug log`, kegagalan terjadi lebih awal dalam setup. Periksa bahwa langganan Anda aktif.

466 

467Token login yang sudah usang tidak menyebabkan kesalahan ini. Ketika API Anthropic menolak token yang disimpan, misalnya karena proses Claude Code lain sudah menyegarkannya, Claude Code menyegarkan token dan mencoba lagi dengan sendirinya. Sebelum v2.1.224, token yang sudah usang gagal startup Remote Control dengan pesan ini, jadi sesi yang diatur untuk [terhubung secara otomatis](#enable-remote-control-for-all-sessions) dapat gagal secara berkala saat peluncuran.

468 489 

469<h3 id="couldn’t-reconnect-to-your-remote-control-session">490<h3 id="couldnt-reconnect-to-your-remote-control-session">

470 "Tidak dapat terhubung kembali ke sesi Remote Control Anda"491 "Couldn't reconnect to your Remote Control session"

471</h3>492</h3>

472 493 

473Ketika Anda melanjutkan percakapan dengan `claude --resume` atau `claude --continue`, Claude Code terhubung kembali ke sesi Remote Control yang tercatat dalam percakapan tersebut. Pesan ini berarti koneksi ulang gagal karena alasan yang mungkin bersifat sementara, seperti gangguan jaringan atau kesalahan server, jadi Claude Code tidak dapat mengkonfirmasi apakah sesi jarak jauh masih ada.494Ketika Anda melanjutkan percakapan dengan `claude --resume` atau `claude --continue`, Claude Code terhubung kembali ke sesi Remote Control yang dicatat dalam percakapan itu. Pesan ini berarti reconnection gagal karena alasan yang mungkin bersifat sementara, seperti gangguan jaringan atau kesalahan server, jadi Claude Code tidak dapat mengkonfirmasi apakah sesi jarak jauh masih ada.

474 

475Jalankan `/remote-control` untuk mencoba koneksi lagi, atau mulai sesi baru dengan `claude --remote-control` untuk membuat sesi Remote Control baru. Sesi lokal Anda terus berjalan tanpa Remote Control untuk sementara.

476 

477<span id="resume-outcomes" />Ketika Anda melanjutkan, Anda juga dapat mendapatkan salah satu hasil ini alih-alih pesan ini:

478 

479* **Server melaporkan sesi yang tercatat hilang, atau catatan koneksi ulang menyebutkan akun yang berbeda**: Claude Code mengikuti apa yang dikatakan catatan koneksi ulang percakapan:

480 * **Catatan menyebutkan akun yang Anda masuki**: Claude Code memulai sesi pengganti dengan nama yang dibuat secara otomatis dan meninggalkan pesan sebelumnya dari percakapan. Anda mendapatkan ini setelah Anda menghapus sesi dari claude.ai atau aplikasi Claude, misalnya.

481 * **Catatan menyebutkan akun yang berbeda**: Claude Code memulai sesi baru tanpa pesan sebelumnya dari percakapan dan tanpa menampilkan pesan, terlepas dari apakah sesi yang tercatat masih ada.

482 * **Catatan tidak mengatakan akun mana yang memiliki sesi, atau Claude Code tidak dapat membaca sign-in yang disimpan Anda**: Claude Code menampilkan [`Previous session is unavailable — run /remote-control to start a new one`](#previous-session-is-unavailable) alih-alih pesan ini, tidak memulai apa pun, dan menghapus catatan dari percakapan.

483* **Anda mematikan Remote Control sebelum melanjutkan**: kecuali aplikasi yang menghosting Claude Code telah memberitahu bahwa aplikasi memiliki sesi claude.ai, Claude Code menghapus catatan koneksi ulang ketika Anda mematikan Remote Control dari [panel status](#check-connection-status) CLI, ekstensi VS Code, atau host yang dibangun di [Agent SDK](/docs/id/agent-sdk/overview), jadi tidak terhubung kembali. Ketika aplikasi pemilik mematikannya, Claude Code menyimpan catatan dan terhubung kembali.

484* **Claude Code lain di mesin ini masih memiliki sesi**: Anda melihat pemberitahuan yang dimulai dengan `Remote Control not started here`, dan Claude Code [meninggalkan Remote Control mati di sesi yang dilanjutkan](#resume-sessions-after-stopping-the-server). Jalankan `/remote-control` di sana untuk memindahkannya.

485 495 

486<span id="reconnect-history" />Sebelum v2.1.232, Claude Code merespons berbeda ketika server melaporkan sesi yang tercatat hilang. Dari v2.1.227 hingga v2.1.231, Claude Code menolak untuk memulai pengganti bahkan ketika catatan cocok dengan akun Anda. Melalui v2.1.226, Claude Code memulai pengganti terlepas dari apakah catatan cocok dengan akun Anda, dan di v2.1.224 hingga v2.1.226 membuatnya di bawah akun yang masuk di mesin itu, tidak pernah akun lain, tanpa mengunggah pesan sebelumnya dari percakapan ke dalamnya. Sebelum v2.1.200, Claude Code membuat sesi baru setelah kegagalan koneksi ulang apa pun.496Jalankan `/remote-control` untuk mencoba ulang koneksi, atau mulai sesi baru dengan `claude --remote-control` untuk membuat sesi Remote Control baru. Sesi lokal Anda terus berjalan tanpa Remote Control sementara itu.

487 497 

488<h3 id="previous-session-is-unavailable">498<h3 id="previous-session-is-unavailable">

489 "Previous session is unavailable — run /remote-control to start a new one"499 "Previous session is unavailable — run /remote-control to start a new one"


491 501 

492Claude Code tidak dapat membawa kembali sesi Remote Control sebelumnya dan berhenti alih-alih memulai sesi baru dengan sendirinya. Anda dapat melihat pesan ini setelah Anda melanjutkan percakapan dengan `claude --resume` atau `claude --continue`, atau setelah Claude Code [terhubung kembali dengan sendirinya setelah putus](/docs/id/errors#remote-control-couldnt-refresh-your-login).502Claude Code tidak dapat membawa kembali sesi Remote Control sebelumnya dan berhenti alih-alih memulai sesi baru dengan sendirinya. Anda dapat melihat pesan ini setelah Anda melanjutkan percakapan dengan `claude --resume` atau `claude --continue`, atau setelah Claude Code [terhubung kembali dengan sendirinya setelah putus](/docs/id/errors#remote-control-couldnt-refresh-your-login).

493 503 

494Jalankan `/remote-control` untuk memulai sesi Remote Control baru di bawah login saat ini; sesi lokal Anda terus berjalan tanpa Remote Control untuk sementara. Pesan terkait `Remote Control could not verify the signed-in account — run /remote-control to reconnect` memiliki perbaikan yang sama; Claude Code menampilkannya ketika akun yang masuk berubah atau tidak dapat dibaca antara memvalidasinya dan terhubung kembali. Jika Anda menjalankan `/remote-control` setelah `Previous session is unavailable` tanpa memulai ulang Claude Code terlebih dahulu, Claude Code meninggalkan pesan sebelumnya dari percakapan di luar sesi baru.504Jalankan `/remote-control` untuk memulai sesi Remote Control baru di bawah login saat ini; sesi lokal Anda terus berjalan tanpa Remote Control sementara itu. Pesan terkait `Remote Control could not verify the signed-in account — run /remote-control to reconnect` memiliki perbaikan yang sama. Jika Anda menjalankan `/remote-control` setelah `Previous session is unavailable` tanpa memulai ulang Claude Code terlebih dahulu, Claude Code meninggalkan pesan sebelumnya dari percakapan di luar sesi baru.

495 

496Saat melanjutkan, Claude Code [memulai sesi baru sebagai penggantinya](#resume-outcomes) hanya jika catatan koneksi ulang percakapan menyebutkan akun yang memiliki sesi, karena server melaporkan sesi yang Anda hapus dan sesi yang dimiliki oleh akun lain dengan cara yang sama. Claude Code sebelum v2.1.227 tidak mencatat akun itu, dan Claude Code tidak dapat memeriksa catatan ketika tidak dapat membaca sign-in yang disimpan Anda. Claude Code sebelum v2.1.232 menampilkan `Remote Control could not resume the previous session under the current login — run /remote-control to start fresh` sebagai gantinya, di [serangkaian kasus yang berbeda](#reconnect-history).

497 505 

498<h3 id="remote-control-got-an-unexpected-server-response">506<h3 id="remote-control-got-an-unexpected-server-response">

499 "Remote Control got an unexpected server response"507 "Remote Control got an unexpected server response"

500</h3>508</h3>

501 509 

502Server Remote Control menerima permintaan tetapi membalas dalam bentuk yang versi Claude Code ini tidak dapat baca, saat membuat sesi jarak jauh atau mengambil kredensialnya. Mencoba lagi pada versi yang sama gagal dengan cara yang sama. Jalankan `claude update`, kemudian jalankan `/remote-control` untuk terhubung kembali. Pesan ini ditambahkan di v2.1.225.510Server Remote Control menerima permintaan tetapi membalas dalam bentuk yang versi Claude Code ini tidak dapat baca, saat membuat sesi jarak jauh atau mengambil kredensialnya. Mencoba ulang pada versi yang sama gagal dengan cara yang sama. Jalankan `claude update`, kemudian jalankan `/remote-control` untuk terhubung kembali.

503 511 

504<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">512<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">

505 "Organisasi Anda memerlukan Perangkat Terpercaya untuk Remote Control, tetapi perangkat ini tidak terdaftar"513 "Your organization requires Trusted Devices for Remote Control, but this device is not enrolled"

506</h3>514</h3>

507 515 

508Organisasi Anda telah mengaktifkan [Perangkat Terpercaya](#trusted-devices) dan mesin ini belum terdaftar. Jalankan `/login` di Claude Code. Pendaftaran terjadi sebagai bagian dari masuk, dan tidak ada perintah pendaftaran terpisah.516Organisasi Anda telah mengaktifkan [Trusted Devices](#trusted-devices) dan mesin ini belum terdaftar. Jalankan `/login` di Claude Code. Pendaftaran terjadi sebagai bagian dari sign-in, dan tidak ada perintah pendaftaran terpisah.

509 517 

510<h3 id="session-expired-for-trusted-device-check">518<h3 id="session-expired-for-trusted-device-check">

511 "session expired for trusted-device check"519 "session expired for trusted-device check"

512</h3>520</h3>

513 521 

514Masuk Anda lebih dari 18 jam yang lalu. Jalankan `/login` di Claude Code, atau konfirmkan dengan Face ID, Touch ID, Windows Hello, atau passkey ketika claude.ai atau aplikasi mobile meminta Anda. Lihat [Perangkat Terpercaya](#trusted-devices).522Sign-in Anda lebih dari 18 jam yang lalu. Jalankan `/login` di Claude Code, atau konfirmasi dengan Face ID, Touch ID, Windows Hello, atau passkey ketika claude.ai atau aplikasi mobile meminta Anda. Lihat [Trusted Devices](#trusted-devices).

515 

516<h2 id="choose-the-right-approach">

517 Pilih pendekatan yang tepat

518</h2>

519 

520Claude Code menawarkan beberapa cara untuk bekerja ketika Anda tidak berada di terminal. Mereka berbeda dalam hal apa yang memicu pekerjaan, di mana Claude berjalan, dan berapa banyak yang perlu Anda atur.

521 

522| | Pemicu | Claude berjalan di | Pengaturan | Terbaik untuk |

523| :- | :- | :- | :- | :- |

524| [Dispatch](/docs/id/desktop#sessions-from-dispatch) | Kirim pesan tugas dari aplikasi mobile Claude | Mesin Anda (Desktop) | [Pasangkan aplikasi mobile dengan Desktop](https://support.claude.com/en/articles/13947068) | Mendelegasikan pekerjaan saat Anda pergi, pengaturan minimal |

525| [Remote Control](/docs/id/remote-control) | Jalankan sesi yang sedang berjalan dari [claude.ai/code](https://claude.ai/code) atau aplikasi mobile Claude | Mesin Anda (CLI atau VS Code) | Jalankan `claude remote-control` | Mengarahkan pekerjaan yang sedang berlangsung dari perangkat lain |

526| [Channels](/docs/id/channels) | Dorong acara dari aplikasi chat seperti Telegram atau Discord, atau server Anda sendiri | Mesin Anda (CLI) | [Instal plugin channel](/docs/id/channels#quickstart) atau [buat milik Anda sendiri](/docs/id/channels-reference) | Bereaksi terhadap acara eksternal seperti kegagalan CI atau pesan chat |

527| [Slack](/docs/id/slack) | Sebutkan `@Claude` di saluran tim | Cloud Anthropic | [Instal aplikasi Slack](/docs/id/slack#setting-up-claude-code-in-slack) dengan [Claude Code di web](/docs/id/claude-code-on-the-web) diaktifkan | PR dan ulasan dari chat tim |

528| [Self-hosted environments](/docs/id/self-hosted-environments) | Mulai [sesi cloud](/docs/id/claude-code-on-the-web) dan pilih lingkungan organisasi Anda | Infrastruktur organisasi Anda | [Terapkan runner](/docs/id/self-hosted-environments-quickstart), pada paket Team dan Enterprise | Sesi cloud yang harus berjalan di dalam jaringan Anda |

529| [Scheduled tasks](/docs/id/scheduled-tasks) | Atur jadwal | [CLI](/docs/id/scheduled-tasks), [Desktop](/docs/id/desktop-scheduled-tasks), atau [cloud](/docs/id/routines) | Pilih frekuensi | Otomasi berulang seperti ulasan harian |

530 523 

531<h2 id="related-resources">524<h2 id="related-resources">

532 Sumber daya terkait525 Sumber daya terkait

routines.md +3 −2

Details

59Ketika jadwal rutinitas atau **Run now** memulai jalankan, Claude menerbitkan kembali artifact yang ada tanpa bertanya hanya ketika semua hal ini berlaku:59Ketika jadwal rutinitas atau **Run now** memulai jalankan, Claude menerbitkan kembali artifact yang ada tanpa bertanya hanya ketika semua hal ini berlaku:

60 60 

61* Anda dapat mengedit artifact dan itu milik organisasi Anda sendiri61* Anda dapat mengedit artifact dan itu milik organisasi Anda sendiri

62* Artifact tidak dibagikan secara publik, dan tidak dibagikan dengan orang-orang tertentu atau organisasi Anda dengan versi terbaru dipilih sebagai versi yang dilihat penonton62* Artifact tidak dibagikan secara publik

63* Jika artifact dibagikan dengan orang-orang tertentu atau organisasi Anda, penontonnya tidak secara otomatis melihat setiap versi baru

63* Penerbitan hanya membawa halaman, tanpa file pendukung atau apa pun yang ditambahkan, dan tidak memaksa versi yang lebih baru64* Penerbitan hanya membawa halaman, tanpa file pendukung atau apa pun yang ditambahkan, dan tidak memaksa versi yang lebih baru

64* Halaman tidak memiliki hibah yang melampaui halaman, seperti [panggilan konektor](/docs/id/artifacts#pull-live-data-with-mcp-connectors)65* Halaman tidak memiliki hibah yang melampaui halaman, seperti [panggilan konektor](/docs/id/artifacts#pull-live-data-with-mcp-connectors)

65 66 


151 152 

152Pemicu jadwal menjalankan rutinitas dengan frekuensi berulang, atau sekali pada waktu masa depan tertentu. Pilih frekuensi preset di bagian **Select a trigger**: per jam, harian, hari kerja, atau mingguan. Waktu dimasukkan dalam zona lokal Anda dan dikonversi secara otomatis, sehingga rutinitas berjalan pada waktu dinding jam itu terlepas dari di mana infrastruktur cloud berada.153Pemicu jadwal menjalankan rutinitas dengan frekuensi berulang, atau sekali pada waktu masa depan tertentu. Pilih frekuensi preset di bagian **Select a trigger**: per jam, harian, hari kerja, atau mingguan. Waktu dimasukkan dalam zona lokal Anda dan dikonversi secara otomatis, sehingga rutinitas berjalan pada waktu dinding jam itu terlepas dari di mana infrastruktur cloud berada.

153 154 

154Jalankan mungkin dimulai beberapa menit setelah waktu terjadwal karena stagger. Offset konsisten untuk setiap rutinitas.155Jika Anda menjadwalkan jalankan tepat pada jam, seperti 9:00, jalankan dapat dimulai beberapa menit terlambat. Untuk memulai dekat dengan waktu terjadwal, pilih beberapa menit setelah jam, misalnya 9:07.

155 156 

156Untuk interval khusus seperti setiap dua jam atau tanggal pertama setiap bulan, pilih preset terdekat dalam formulir, lalu jalankan `/schedule update` di CLI untuk menetapkan ekspresi cron spesifik. Interval minimum adalah satu jam; ekspresi yang berjalan lebih sering ditolak.157Untuk interval khusus seperti setiap dua jam atau tanggal pertama setiap bulan, pilih preset terdekat dalam formulir, lalu jalankan `/schedule update` di CLI untuk menetapkan ekspresi cron spesifik. Interval minimum adalah satu jam; ekspresi yang berjalan lebih sering ditolak.

157 158 

Details

117Di Linux dan WSL2, runtime menerapkan hibah tulis hanya ke jalur yang sudah ada. Dalam lingkungan baru, buat jalur konfigurasi Claude Code sebelum peluncuran pertama:117Di Linux dan WSL2, runtime menerapkan hibah tulis hanya ke jalur yang sudah ada. Dalam lingkungan baru, buat jalur konfigurasi Claude Code sebelum peluncuran pertama:

118 118 

119```bash theme={null}119```bash theme={null}

120mkdir -p ~/.claude && echo '{}' > ~/.claude.json120mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }

121```121```

122 122 

123Setelah file pengaturan sudah ada, luncurkan Claude Code dengan `npx` dan berikan `claude` sebagai perintah untuk dibungkus:123Setelah file pengaturan sudah ada, luncurkan Claude Code dengan `npx` dan berikan `claude` sebagai perintah untuk dibungkus:

sandboxing.md +7 −6

Details

42 </Step>42 </Step>

43 43 

44 <Step title="Jalankan perintah Bash">44 <Step title="Jalankan perintah Bash">

45 Minta Claude untuk menjalankan perintah, seperti build atau test suite. Secara default, perintah di dalam sandbox dapat menulis ke direktori kerja, direktori temp sesi, dan [direktori apa pun yang telah Anda tambahkan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) dengan `--add-dir`, `/add-dir`, atau `permissions.additionalDirectories`.45 Minta Claude untuk menjalankan perintah, seperti build atau test suite. Secara default, perintah di dalam sandbox dapat menulis ke direktori kerja, [direktori temp per-pengguna](/docs/id/env-vars), dan [direktori apa pun yang telah Anda tambahkan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) dengan `--add-dir`, `/add-dir`, atau `permissions.additionalDirectories`.

46 46 

47 Pertama kali perintah memerlukan domain jaringan baru, Claude Code meminta persetujuan; dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), Claude malah menamai host yang dibutuhkan perintah [pada perintah itu sendiri](#per-command-allowed-domains-in-auto-mode) untuk pengklasifikasi ditinjau bersama dengannya.47 Pertama kali perintah memerlukan domain jaringan baru, Claude Code meminta persetujuan; dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), Claude malah menamai host yang dibutuhkan perintah [pada perintah itu sendiri](#per-command-allowed-domains-in-auto-mode) untuk pengklasifikasi ditinjau bersama dengannya.

48 48 


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.182Direktori temp per-pengguna 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 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.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.

185 185 


189 189 

190Sesuaikan perilaku sandbox melalui file `settings.json` Anda. Lihat [Settings](/docs/id/settings-reference#sandbox-settings) untuk referensi konfigurasi lengkap.190Sesuaikan perilaku sandbox melalui file `settings.json` Anda. Lihat [Settings](/docs/id/settings-reference#sandbox-settings) untuk referensi konfigurasi lengkap.

191 191 

192Secara default, perintah sandboxed dapat menulis ke direktori kerja saat ini, direktori temp sesi, dan [direktori apa pun yang telah Anda tambahkan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) dengan `--add-dir`, `/add-dir`, atau `permissions.additionalDirectories`. Jika perintah subprocess seperti `kubectl`, `terraform`, atau `npm` perlu menulis di luar direktori tersebut, gunakan `sandbox.filesystem.allowWrite` untuk memberikan akses ke jalur tertentu:192Secara default, perintah sandboxed dapat menulis ke direktori kerja saat ini, direktori temp per-pengguna, dan [direktori apa pun yang telah Anda tambahkan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) dengan `--add-dir`, `/add-dir`, atau `permissions.additionalDirectories`. Jika perintah subprocess seperti `kubectl`, `terraform`, atau `npm` perlu menulis di luar direktori tersebut, gunakan `sandbox.filesystem.allowWrite` untuk memberikan akses ke jalur tertentu:

193 193 

194```json theme={null}194```json theme={null}

195{195{


309 309 

310Dua hal lain berubah:310Dua hal lain berubah:

311 311 

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.312* Perintah sandboxed mewarisi `$TMPDIR` shell Anda daripada direktori temp per-pengguna, karena setiap direktori temp dapat ditulis dan Claude Code tidak lagi mengarahkan perintah ke yang per-pengguna.

313 313 

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

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


528 528 

529Alat Bash sandboxed membatasi akses sistem file ke direktori tertentu:529Alat Bash sandboxed membatasi akses sistem file ke direktori tertentu:

530 530 

531* **Perilaku penulisan default**: akses baca dan tulis ke direktori kerja saat ini dan subdirektorinya, direktori apa pun yang telah Anda tambahkan dengan `--add-dir`, `/add-dir`, atau [`permissions.additionalDirectories`](/docs/id/settings-reference#permissions-additionaldirectories), ditambah direktori temp sesi yang ditunjuk oleh `$TMPDIR`531* **Perilaku penulisan default**: akses baca dan tulis ke direktori kerja saat ini dan subdirektorinya, direktori apa pun yang telah Anda tambahkan dengan `--add-dir`, `/add-dir`, atau [`permissions.additionalDirectories`](/docs/id/settings-reference#permissions-additionaldirectories), ditambah direktori temp per-pengguna yang ditunjuk oleh `$TMPDIR`

532* **Perilaku pembacaan default**: akses baca ke seluruh komputer, kecuali direktori tertentu yang ditolak. Perhatikan bahwa default ini masih memungkinkan pembacaan file kredensial seperti `~/.aws/credentials` dan `~/.ssh/`. Gunakan [`sandbox.credentials`](#protect-credentials) untuk memblokir pembacaan file-file ini dan membatalkan penetapan variabel lingkungan rahasia, atau tambahkan jalur ke `denyRead`.532* **Perilaku pembacaan default**: akses baca ke seluruh komputer, kecuali direktori tertentu yang ditolak. Perhatikan bahwa default ini masih memungkinkan pembacaan file kredensial seperti `~/.aws/credentials` dan `~/.ssh/`. Gunakan [`sandbox.credentials`](#protect-credentials) untuk memblokir pembacaan file-file ini dan membatalkan penetapan variabel lingkungan rahasia, atau tambahkan jalur ke `denyRead`.

533* **Akses terblokir**: tidak dapat memodifikasi file di luar direktori kerja, direktori yang ditambahkan, dan direktori temp sesi tanpa izin eksplisit, termasuk file konfigurasi shell seperti `~/.bashrc` dan binari sistem di `/bin/`533* **Blok baca**: dengan [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) aktif, perintah sandboxed juga kehilangan akses baca ke direktori home Anda dan direktori lain yang menyimpan file pengguna, terlepas dari jalur yang [Perintah sandboxed di bawah blok](/docs/id/settings-reference#sandboxed-commands-under-the-block) daftarkan. Bagian itu juga mengatakan kapan bagian blok ini tidak berlaku.

534* **Akses terblokir**: tidak dapat memodifikasi file di luar direktori kerja, direktori yang ditambahkan, dan direktori temp per-pengguna tanpa izin eksplisit, termasuk file konfigurasi shell seperti `~/.bashrc` dan binari sistem di `/bin/`

534* **Git worktrees**: ketika direktori kerja adalah [linked git worktree](/docs/id/worktrees), sandbox juga memungkinkan penulisan ke direktori `.git` bersama dari repositori utama sehingga perintah seperti `git commit` dapat memperbarui refs dan indeks. Penulisan ke `hooks/` dan `config` di dalam direktori tersebut tetap ditolak.535* **Git worktrees**: ketika direktori kerja adalah [linked git worktree](/docs/id/worktrees), sandbox juga memungkinkan penulisan ke direktori `.git` bersama dari repositori utama sehingga perintah seperti `git commit` dapat memperbarui refs dan indeks. Penulisan ke `hooks/` dan `config` di dalam direktori tersebut tetap ditolak.

535* **Dapat dikonfigurasi**: tentukan jalur yang diizinkan dan ditolak khusus melalui pengaturan536* **Dapat dikonfigurasi**: tentukan jalur yang diizinkan dan ditolak khusus melalui pengaturan

536 537 

security.md +2 −1

Details

128 128 

129* **Mesin virtual terisolasi**: Setiap sesi cloud berjalan di VM yang terisolasi dan dikelola Anthropic129* **Mesin virtual terisolasi**: Setiap sesi cloud berjalan di VM yang terisolasi dan dikelola Anthropic

130* **Kontrol akses jaringan**: Akses jaringan dibatasi secara default dan dapat dikonfigurasi untuk dinonaktifkan atau hanya mengizinkan domain tertentu130* **Kontrol akses jaringan**: Akses jaringan dibatasi secara default dan dapat dikonfigurasi untuk dinonaktifkan atau hanya mengizinkan domain tertentu

131* **Perlindungan kredensial**: Autentikasi ditangani melalui proxy aman yang menggunakan kredensial bersisir di dalam sandbox, yang kemudian diterjemahkan ke token autentikasi GitHub aktual Anda131* **Perlindungan kredensial**: Kredensial GitHub disimpan terenkripsi di server Anthropic dan tidak pernah masuk ke VM sesi. VM menyimpan kredensial berumur pendek yang dibatasi untuk sesi tersebut, dan lalu lintas GitHub melewati [proxy Anthropic](/docs/id/cloud-environments#github-proxy) yang melampirkan kredensial GitHub di sisi server. Lihat [opsi autentikasi GitHub](/docs/id/claude-code-on-the-web#github-authentication-options) untuk cara Anda memberikan akses

132* **Pembatasan cabang**: Operasi git push dibatasi pada cabang kerja saat ini132* **Pembatasan cabang**: Operasi git push dibatasi pada cabang kerja saat ini

133* **Pencatatan audit**: Semua operasi di sesi cloud dicatat untuk kepatuhan dan tujuan audit133* **Pencatatan audit**: Semua operasi di sesi cloud dicatat untuk kepatuhan dan tujuan audit

134* **Pembersihan otomatis**: VM sesi diklaim kembali setelah periode tidak aktif134* **Pembersihan otomatis**: VM sesi diklaim kembali setelah periode tidak aktif

135* **Penghapusan**: Anda dapat [menghapus sesi](/docs/id/claude-code-on-the-web#delete-sessions) kapan saja. Lihat [Alur data eksekusi cloud](/docs/id/data-usage#cloud-execution-data-flow-and-dependencies) untuk mengetahui apa yang Anthropic simpan untuk sesi cloud

135 136 

136Untuk detail lebih lanjut tentang eksekusi cloud, lihat [Gunakan Claude Code di cloud](/docs/id/claude-code-on-the-web); untuk mengonfigurasi akses jaringan untuk sesi cloud, lihat [Konfigurasi lingkungan cloud](/docs/id/cloud-environments#network-access).137Untuk detail lebih lanjut tentang eksekusi cloud, lihat [Gunakan Claude Code di cloud](/docs/id/claude-code-on-the-web); untuk mengonfigurasi akses jaringan untuk sesi cloud, lihat [Konfigurasi lingkungan cloud](/docs/id/cloud-environments#network-access).

137 138 

Details

222| Variabel | Deskripsi |222| Variabel | Deskripsi |

223| :- | :- |223| :- | :- |

224| `CLAUDE_RUNNER_WORK_ORDER_FILE` | Jalur ke file temp yang berisi JWT pesanan kerja yang ditandatangani yang didaftarkan runner baru. Dihapus setelah hook keluar. Jangan catat isi file. |224| `CLAUDE_RUNNER_WORK_ORDER_FILE` | Jalur ke file temp yang berisi JWT pesanan kerja yang ditandatangani yang didaftarkan runner baru. Dihapus setelah hook keluar. Jangan catat isi file. |

225| `CLAUDE_RUNNER_ORDER_ID` | Kunci idempotency yang buram, unik per permintaan pemijahan dan aman untuk nama sumber daya Kubernetes. Gunakan sebagai kunci dedup provisioner Anda. |225| `CLAUDE_RUNNER_ORDER_ID` | Kunci idempotency yang buram, unik per permintaan pemijahan dan aman untuk nama sumber daya Kubernetes. Gunakan hanya order ID sebagai kunci dedup provisioner Anda. |

226| `CLAUDE_RUNNER_SESSION_ID` | Sesi yang diminta ini untuk. Kosong untuk permintaan pre-warming, yang boot runner standby sebelum sesi spesifik apa pun ketika [`--min-idle`](/docs/id/self-hosted-environments-reference#orchestrator-cli-flags) diatur, jadi jangan asumsikan variabel diatur. |226| `CLAUDE_RUNNER_SESSION_ID` | Sesi yang diminta ini untuk. Ini berulang pada setiap permintaan ulang untuk sesi, jadi gunakan untuk logging dan routing, bukan sebagai kunci dedup. Kosong untuk permintaan pre-warming, yang boot runner standby sebelum sesi spesifik apa pun ketika [`--min-idle`](/docs/id/self-hosted-environments-reference#orchestrator-cli-flags) diatur, jadi jangan asumsikan variabel diatur. |

227| `CLAUDE_RUNNER_SESSION_UUID` | ID sesi yang sama dalam bentuk UUID kanonik. Kosong untuk permintaan pre-warming. |227| `CLAUDE_RUNNER_SESSION_UUID` | ID sesi yang sama dalam bentuk UUID kanonik. Kosong untuk permintaan pre-warming. |

228| `CLAUDE_RUNNER_ATTEMPT` | Berapa banyak permintaan pemijahan yang dimiliki sesi ini. `0` untuk permintaan pre-warming. |228| `CLAUDE_RUNNER_ATTEMPT` | Berapa banyak permintaan pemijahan yang dimiliki sesi ini. `0` untuk permintaan pre-warming. |

229| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | Waktu server dari header HTTP `Date` respons polling. Ketika hook memverifikasi `exp` JWT pesanan kerja, bandingkan terhadap nilai ini daripada jam lokal untuk mentoleransi skew. Kosong ketika gateway menghilangkan header. |229| `CLAUDE_RUNNER_ORDER_SERVER_TIME` | Waktu server dari header HTTP `Date` respons polling. Ketika hook memverifikasi `exp` JWT pesanan kerja, bandingkan terhadap nilai ini daripada jam lokal untuk mentoleransi skew. Kosong ketika gateway menghilangkan header. |


245 245 

246Kontrak memiliki empat aturan yang agnostik provisioner:246Kontrak memiliki empat aturan yang agnostik provisioner:

247 247 

2481. **Jadilah idempoten pada `CLAUDE_RUNNER_ORDER_ID`.** Pengiriman ulang permintaan yang sama harus memijahkan paling banyak satu runner. Turunkan nama sumber daya deterministik dari ID dan biarkan platform Anda menolak duplikat.2481. **Jadilah idempoten pada `CLAUDE_RUNNER_ORDER_ID`.** Pengiriman ulang permintaan yang sama harus memijahkan paling banyak satu runner. Turunkan nama sumber daya deterministik dari order ID dan biarkan platform Anda menolak duplikat. Jangan kunci pada `CLAUDE_RUNNER_SESSION_ID` sebagai gantinya. Setiap permintaan ulang untuk sesi membawa ID sesi yang sama dengan order ID baru, jadi beban kerja yang dinamai atau dideduplikasi oleh ID sesi dibuat sekali dan tidak pernah lagi untuk sesi itu.

2492. **Jangan coba ulang beban kerja.** Satu ID pesanan berarti paling banyak satu beban kerja yang dibuat. Jika runner tidak pernah mendaftar, Anthropic meminta ulang dengan ID pesanan segar setelah `--expected-spawn-seconds`.2492. **Jangan coba ulang beban kerja.** Satu ID pesanan berarti paling banyak satu beban kerja yang dibuat. Jika runner tidak pernah mendaftar, Anthropic meminta ulang dengan ID pesanan segar setelah `--expected-spawn-seconds`.

2503. **Gunakan kontrak kode keluar.** Keluar 0 berarti dikirimkan. Keluar 1 berarti kegagalan yang dapat dicoba ulang; sesi mundur dan ditawarkan kembali. Keluar 2 atau lebih tinggi berarti tidak dapat dicoba ulang; sesi diblokir dari pemijahan lagi sampai [Owner](/docs/id/cloud-environments#organization-shared-environments) memilih **Retry** di atasnya di tab **Activity** lingkungan. Pada keluar bukan nol, ekor stderr hook muncul di sana sebagai alasan kegagalan, jadi tulis kesalahan yang dapat ditindaklanjuti ke stderr dan jangan pernah rahasia. Untuk permintaan pre-warming tidak ada sesi untuk gagal: orchestrator mencatat keluar bukan nol secara lokal saja, dan server meminta ulang pemijahan setelah sewa.2503. **Gunakan kontrak kode keluar.** Keluar 0 berarti dikirimkan. Keluar 1 berarti kegagalan yang dapat dicoba ulang; sesi mundur dan ditawarkan kembali. Keluar 2 atau lebih tinggi berarti tidak dapat dicoba ulang; sesi diblokir dari pemijahan lagi sampai [Owner](/docs/id/cloud-environments#organization-shared-environments) memilih **Retry** di atasnya di tab **Activity** lingkungan. Pada keluar bukan nol, ekor stderr hook muncul di sana sebagai alasan kegagalan, jadi tulis kesalahan yang dapat ditindaklanjuti ke stderr dan jangan pernah rahasia. Untuk permintaan pre-warming tidak ada sesi untuk gagal: orchestrator mencatat keluar bukan nol secara lokal saja, dan server meminta ulang pemijahan setelah sewa.

2514. **Atur `--expected-spawn-seconds` ke setidaknya waktu boot p99 Anda.** Ini adalah sewa server-side. Semua replika orchestrator harus menggunakan nilai yang sama.2514. **Atur `--expected-spawn-seconds` ke setidaknya waktu boot p99 Anda.** Ini adalah sewa server-side. Semua replika orchestrator harus menggunakan nilai yang sama.

252 252 

253Semua yang ditulis hook ke stdout atau stderr muncul dalam log orchestrator dengan kredensial secara otomatis diredaksi. Jika sesi tetap antri, periksa badan `/healthz` orchestrator untuk hitungan antrian, kemudian buka tab **Activity** lingkungan Anda di [halaman admin **Cloud environments**](https://claude.ai/admin-settings/cloud-environments): perluas sesi yang gagal di sana untuk kesalahan pemijahan, dan pilih **Retry** untuk memintanya ulang.253Semua yang ditulis hook ke stdout atau stderr muncul dalam log orchestrator dengan kredensial secara otomatis diredaksi. Jika sesi tetap antri, periksa badan `/healthz` orchestrator untuk hitungan antrian, kemudian buka tab **Activity** lingkungan Anda di [halaman admin **Cloud environments**](https://claude.ai/admin-settings/cloud-environments): perluas sesi yang gagal di sana untuk kesalahan pemijahan, dan pilih **Retry** untuk memintanya ulang.

254 254 

255Sesi yang tetap antri tanpa kesalahan pemijahan di tab **Activity** dapat berarti hook dikunci pada ID sesi. Untuk mengonfirmasi, periksa apakah platform Anda memiliki beban kerja untuk permintaan pemijahan pertama sesi itu dan tidak ada untuk permintaan ulang. Jika demikian, kunci beban kerja pada `CLAUDE_RUNNER_ORDER_ID` sebagai gantinya.

256 

255<h2 id="mcp-servers">257<h2 id="mcp-servers">

256 Server MCP258 Server MCP

257</h2>259</h2>


277 279 

278Sesi mewarisi lingkungan runner, jadi atur [`ENABLE_TOOL_SEARCH`](/docs/id/mcp#scale-with-mcp-tool-search) di sana untuk mengontrol pencarian alat MCP untuk setiap sesi yang dihasilkan runner; halaman MCP mencakup nilainya.280Sesi mewarisi lingkungan runner, jadi atur [`ENABLE_TOOL_SEARCH`](/docs/id/mcp#scale-with-mcp-tool-search) di sana untuk mengontrol pencarian alat MCP untuk setiap sesi yang dihasilkan runner; halaman MCP mencakup nilainya.

279 281 

282<h3 id="turn-off-built-in-session-tools">

283 Matikan alat sesi bawaan

284</h3>

285 

286Bidang kontrol Anthropic melampirkan server MCP-nya sendiri, bernama Claude Code Remote, ke sesi cloud. Claude menggunakan alat server untuk menjadwalkan [rutinitas](/docs/id/routines), memulai dan mengarahkan sesi cloud lainnya, melampirkan lebih banyak repositori, dan mengikuti aktivitas permintaan tarik.

287 

288Untuk mematikan seluruh server, tambahkan [aturan penolakan tingkat server](/docs/id/permissions#mcp) ke pengaturan Anda. Bidang kontrol mendaftarkan server di bawah salah satu dari tiga nama, tergantung pada cara sesi dibuat. Claude Code mencocokkan nama dalam aturan dengan tepat, termasuk huruf besar-kecil, jadi tulis aturan sekali per nama seperti yang ditunjukkan:

289 

290```json theme={null}

291{

292 "permissions": {

293 "deny": [

294 "mcp__Claude_Code_Remote",

295 "mcp__claude-code-remote",

296 "mcp__bf7c680d-5fdc-5ef4-b4a0-abadb619bf0a"

297 ]

298 }

299}

300```

301 

302Aturan yang menamai seluruh server mencakup alat yang diperoleh server nanti juga. Untuk mematikan satu alat dan menyimpan sisanya, tambahkan dua garis bawah lagi dan nama alat ke setiap aturan, seperti dalam `mcp__Claude_Code_Remote__add_repo`. Untuk memblokir server agar tidak terhubung sama sekali daripada menghapus alatnya, tambahkan tiga nama tanpa awalan `mcp__` sebagai entri `serverName` di bawah [`deniedMcpServers`](/docs/id/managed-mcp#policy-based-control-with-allowlists-and-denylists) sebagai gantinya.

303 

304Letakkan aturan dalam [pengaturan yang dikelola server](/docs/id/server-managed-settings) untuk menjangkau setiap sesi tanpa perubahan pada runner, atau dalam `~/.claude/settings.json` di runner. [Izin dan persetujuan alat](#permissions-and-tool-approval) menjelaskan bagaimana pengaturan di runner mencapai sesi.

305 

306Untuk mengonfirmasi bahwa aturan berlaku, mulai sesi di lingkungan dan minta Claude untuk mencantumkan alat MCP-nya. Claude Code menghapus alat yang ditolak dari konteks Claude, sehingga alat yang ditolak tidak ada dalam jawabannya.

307 

280<h2 id="prompt-sessions-to-push-their-work">308<h2 id="prompt-sessions-to-push-their-work">

281 Prompt sesi untuk mendorong pekerjaan mereka309 Prompt sesi untuk mendorong pekerjaan mereka

282</h2>310</h2>

Details

220ENTRYPOINT ["claude"]220ENTRYPOINT ["claude"]

221```221```

222 222 

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). Runner memerlukan Claude Code versi 2.1.224 atau lebih baru. Bangun gambar, 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.267 -t <your-registry>/claude-runner:latest .226docker build \

227 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \

228 -t <your-registry>/claude-runner:latest .

227```229```

228 230 

231Substitusi perintah mencari nomor rilis `stable` saat ini dan meneruskannya sebagai argumen build, jadi menjalankan perintah yang sama setelah rilis stabil baru membangun ulang lapisan unduhan dengan biner yang lebih baru. Untuk menyematkan rilis tertentu untuk build yang dapat direproduksi, teruskan nomor versi langsung sebagai `CLAUDE_CODE_VERSION`. Ganti `stable` dengan `latest` dalam URL pencarian ketika Anda memerlukan rilis yang lebih baru dari saluran stabil, seperti yang [diperlukan model yang baru diluncurkan](/docs/id/model-config).

232 

229<h2 id="size-cpu-and-memory-for-sessions">233<h2 id="size-cpu-and-memory-for-sessions">

230 Ukuran CPU dan memori untuk sesi234 Ukuran CPU dan memori untuk sesi

231</h2>235</h2>

Details

220 220 

221Pengiriman yang dikelola server menambahkan perilaku ini:221Pengiriman yang dikelola server menambahkan perilaku ini:

222 222 

223* Cache di `~/.claude/remote-settings.json` menyimpan payload yang diselamatkan dengan entri tidak valid dihapus, terlepas dari nilai `cleanupPeriodDays` dan `desktopSessionCleanupPeriodDays` yang tidak valid, yang tetap dalam salinan yang di-cache dan tidak pernah diterapkan.223* Startup yang berjalan pada cache di `~/.claude/remote-settings.json` memperlakukan entri tidak valid dengan cara yang dilakukan pengambilan yang menulis cache:

224* Ketika tidak ada bidang dalam payload yang dapat diselamatkan dan payload bukan hanya kunci retensi tersebut, Claude Code menolak payload, menyimpan pengaturan cache yang terakhir diterima, dan menulis `Remote settings: Settings validation failed - no fields could be salvaged` ke log debug. Dengan `forceRemoteSettingsRefresh` diatur, CLI keluar sebagai gantinya.224 * Entri yang gagal validasi tetap dihapus.

225 * [Kunci yang gagal tertutup](/docs/id/managed-settings#keys-that-fail-closed) menyimpan nilai yang lebih ketat.

226 * Nilai `cleanupPeriodDays` atau `desktopSessionCleanupPeriodDays` yang tidak valid tetap dalam salinan yang di-cache dan tidak pernah diterapkan.

227* Claude Code tidak menerapkan apa pun dari payload dan membiarkan cache tidak berubah ketika ketiga hal ini semuanya benar:

228 

229 * Setiap pengaturan dalam payload gagal validasi.

230 * Tidak ada satupun dari mereka yang kembali ke nilai yang lebih ketat.

231 * Payload menyimpan kunci selain dua kunci retensi tersebut.

232 

233 Pemberitahuan startup, `/status`, dan `claude doctor` kemudian melaporkan [beban gagal](/docs/id/errors#remote-managed-settings-failed-to-load) dengan penyebab `no setting in the server response could be applied as written`, dan entri tersebut mengatakan kebijakan mana yang dijalankan sesi. Klien yang [memberlakukan startup tertutup gagal](#enforce-fail-closed-startup) keluar pada startup sebagai gantinya.

225* [Dialog persetujuan keamanan](#security-approval-dialogs) mengevaluasi payload yang diselamatkan, jadi entri tidak valid yang dilucuti tidak pernah disajikan untuk persetujuan dan tidak pernah dieksekusi.234* [Dialog persetujuan keamanan](#security-approval-dialogs) mengevaluasi payload yang diselamatkan, jadi entri tidak valid yang dilucuti tidak pernah disajikan untuk persetujuan dan tidak pernah dieksekusi.

226 235 

227Untuk men-debug masalah pengiriman, jalankan `claude --debug-file <path>` dan cari log untuk `Remote settings`. Validasi perubahan payload dengan `claude doctor` pada mesin uji sebelum meluncurkannya ke organisasi.236Untuk men-debug masalah pengiriman, jalankan `claude --debug-file <path>` dan cari log untuk `Remote settings`. Validasi perubahan payload dengan `claude doctor` pada mesin uji sebelum meluncurkannya ke organisasi.

sessions.md +4 −3

Details

8 8 

9Sesi adalah percakapan yang disimpan yang terikat pada direktori proyek. Claude Code menyimpannya secara lokal saat Anda bekerja, sehingga Anda dapat melanjutkan dari tempat Anda berhenti, membuat cabang untuk mencoba pendekatan berbeda, atau beralih antar tugas.9Sesi adalah percakapan yang disimpan yang terikat pada direktori proyek. Claude Code menyimpannya secara lokal saat Anda bekerja, sehingga Anda dapat melanjutkan dari tempat Anda berhenti, membuat cabang untuk mencoba pendekatan berbeda, atau beralih antar tugas.

10 10 

11[Aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions), [Claude Code di web](/docs/id/claude-code-on-the-web), dan [ekstensi VS Code](/docs/id/vs-code#resume-past-conversations) masing-masing mempertahankan riwayat sesi mereka sendiri. Halaman ini mencakup CLI.11[Aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions), [claude.ai/code](/docs/id/claude-code-on-the-web), dan [ekstensi VS Code](/docs/id/vs-code#resume-past-conversations) masing-masing mempertahankan daftar sesi mereka sendiri, dan aplikasi desktop juga dapat [melanjutkan sesi CLI](/docs/id/desktop#coming-from-the-cli). Halaman ini mencakup CLI.

12 12 

13<h2 id="resume-a-session">13<h2 id="resume-a-session">

14 Lanjutkan sesi14 Lanjutkan sesi


43* Mode izin: jika Anda melanjutkan dari terminal dengan `claude --continue`, `claude --resume <session-id>`, atau `claude --resume <name>` ketika nama cocok dengan satu sesi, tanpa `-p`, Claude Code memulihkan mode izin yang ada di sesi, kecuali dalam kasus di [mode izin saat melanjutkan](#permission-mode-on-resume), yang juga mencakup pemilih sesi, `/resume`, dan melanjutkan dengan `claude -p`. Teruskan `--permission-mode` atau `--dangerously-skip-permissions` untuk mengganti mode yang dipulihkan.43* Mode izin: jika Anda melanjutkan dari terminal dengan `claude --continue`, `claude --resume <session-id>`, atau `claude --resume <name>` ketika nama cocok dengan satu sesi, tanpa `-p`, Claude Code memulihkan mode izin yang ada di sesi, kecuali dalam kasus di [mode izin saat melanjutkan](#permission-mode-on-resume), yang juga mencakup pemilih sesi, `/resume`, dan melanjutkan dengan `claude -p`. Teruskan `--permission-mode` atau `--dangerously-skip-permissions` untuk mengganti mode yang dipulihkan.

44* Tujuan aktif: [tujuan](/docs/id/goal#resume-with-an-active-goal) yang masih aktif ketika sesi berakhir terbawa; hitungan giliran, pengatur waktu, dan baseline pengeluaran token-nya disetel ulang.44* Tujuan aktif: [tujuan](/docs/id/goal#resume-with-an-active-goal) yang masih aktif ketika sesi berakhir terbawa; hitungan giliran, pengatur waktu, dan baseline pengeluaran token-nya disetel ulang.

45* Tugas terjadwal: [tugas yang belum kedaluwarsa](/docs/id/scheduled-tasks#limitations) dipulihkan. Tugas Bash latar belakang dan monitor tidak.45* Tugas terjadwal: [tugas yang belum kedaluwarsa](/docs/id/scheduled-tasks#limitations) dipulihkan. Tugas Bash latar belakang dan monitor tidak.

46* Pekerjaan latar belakang: [subagen latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background), perintah Bash latar belakang, atau [alur kerja](/docs/id/workflows) yang berakhir dengan proses sebelumnya muncul dalam transkrip yang dilanjutkan sebagai catatan bahwa itu tidak selesai. Claude Code tidak memulai giliran dari catatan tersebut; Claude membacanya dengan prompt Anda berikutnya.

46 47 

47Tidak setiap bendera konfigurasi dari peluncuran asli dipulihkan. Jika sesi bergantung pada `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model`, atau direktori yang ditambahkan dengan `--add-dir`, teruskan lagi saat Anda melanjutkan; direktori yang ditambahkan pertengahan sesi dengan `/add-dir` juga tidak dipulihkan, meskipun pemilih sesi masih menggunakannya untuk menemukan sesi. File pengaturan standar, seperti `settings.json` dan `settings.local.json`, dibaca ulang saat peluncuran, sehingga konfigurasi yang berada di dalamnya tidak perlu dilewatkan lagi. Untuk `--system-prompt` dan `--append-system-prompt`, lihat [Bendera prompt sistem dalam percakapan yang dilanjutkan](/docs/id/cli-reference#system-prompt-flags-in-resumed-conversations).48Tidak setiap bendera konfigurasi dari peluncuran asli dipulihkan. Jika sesi bergantung pada `--mcp-config`, `--settings`, `--plugin-dir`, `--fallback-model`, atau direktori yang ditambahkan dengan `--add-dir`, teruskan lagi saat Anda melanjutkan; direktori yang ditambahkan pertengahan sesi dengan `/add-dir` juga tidak dipulihkan, meskipun pemilih sesi masih menggunakannya untuk menemukan sesi. File pengaturan standar, seperti `settings.json` dan `settings.local.json`, dibaca ulang saat peluncuran, sehingga konfigurasi yang berada di dalamnya tidak perlu dilewatkan lagi. Untuk `--system-prompt` dan `--append-system-prompt`, lihat [Bendera prompt sistem dalam percakapan yang dilanjutkan](/docs/id/cli-reference#system-prompt-flags-in-resumed-conversations).

48 49 


76 77 

77Jalankan `claude -p --resume` atau `claude -p --continue` dilanjutkan dalam mode rencana hanya ketika keempat kondisi berlaku:78Jalankan `claude -p --resume` atau `claude -p --continue` dilanjutkan dalam mode rencana hanya ketika keempat kondisi berlaku:

78 79 

79* Anda meneruskan [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags), sehingga Claude Code dapat menyajikan rencana untuk persetujuan80* Anda meneruskan [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) dan tidak meneruskan [`--permission-prompts none`](/docs/id/headless#turn-off-permission-prompts-in-unattended-runs), sehingga Claude Code dapat menyajikan rencana untuk persetujuan

80* Anda tidak meneruskan `--permission-mode` atau `--dangerously-skip-permissions`81* Anda tidak meneruskan `--permission-mode` atau `--dangerously-skip-permissions`

81* Anda tidak meneruskan `--fork-session`82* Anda tidak meneruskan `--fork-session`

82* Jalankan tidak dimulai melalui [saluran](/docs/id/channels)83* Jalankan tidak dimulai melalui [saluran](/docs/id/channels)


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 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) |136| Dari aplikasi desktop | Ubah nama sesi di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions) |

136 137 

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.138Setelah Anda memberi nama sesi melalui rute CLI atau dari claude.ai, kembali ke sesi tersebut dengan `claude --resume <name>` atau `/resume <name>`; sesi aplikasi desktop dilanjutkan di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions). Lihat [Resume a session](#resume-a-session) untuk mengetahui bagaimana perilaku resolusi nama di seluruh worktrees.

138 139 

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.140Ketika 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 141 

settings.md +1 −1

Details

809 809 

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

811* **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.811* **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.

812* **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.812* **Pengaturan yang dikelola**: file `managed-settings.json` atau profil MDM di perangkat Anda tidak mencapai sesi cloud. [Pengaturan yang dikelola server](/docs/id/server-managed-settings) organisasi Anda melakukannya; [cakupan permukaan](/docs/id/model-config#surface-coverage) mencantumkan sesi cloud mana yang menerimanya. [Lingkungan yang di-host sendiri](/docs/id/self-hosted-environments) juga membaca file pengaturan yang dikelola dalam gambar runner-nya. [Bagaimana Claude Code menggabungkan sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) mengatakan kapan file itu berlaku.

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

814 814 

815[Apa yang dibawa dari pengaturan Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup) mencantumkan sisanya: `CLAUDE.md`, skills, server MCP, plugins, dan kredensial.815[Apa yang dibawa dari pengaturan Anda](/docs/id/cloud-environments#what-carries-over-from-your-setup) mencantumkan sisanya: `CLAUDE.md`, skills, server MCP, plugins, dan kredensial.

settings-reference.md +327 −118

Details

620| [`autoScrollEnabled`](#autoscrollenabled) | [Ikuti output baru](/docs/id/fullscreen#auto-follow) ke bawah dalam rendering fullscreen | Interface and terminal | Any file |620| [`autoScrollEnabled`](#autoscrollenabled) | [Ikuti output baru](/docs/id/fullscreen#auto-follow) ke bawah dalam rendering fullscreen | Interface and terminal | Any file |

621| [`autoUpdatesChannel`](#autoupdateschannel) | Ikuti [saluran rilis](/docs/id/setup#configure-release-channel) stabil daripada terbaru | Updates and versioning | Any file |621| [`autoUpdatesChannel`](#autoupdateschannel) | Ikuti [saluran rilis](/docs/id/setup#configure-release-channel) stabil daripada terbaru | Updates and versioning | Any file |

622| [`availableModels`](#availablemodels) | [Batasi model mana](/docs/id/model-config#restrict-model-selection) yang dapat dipilih orang | Model dan respons | Any file |622| [`availableModels`](#availablemodels) | [Batasi model mana](/docs/id/model-config#restrict-model-selection) yang dapat dipilih orang | Model dan respons | Any file |

623| [`availableModelsMatch`](#availablemodelsmatch) | Buat setiap entri ID model `availableModels` [hanya mengizinkan versi yang dinamainya](/docs/id/model-config#block-specific-models-or-versions) | Model dan respons | Managed |

623| [`awaySummaryEnabled`](#awaysummaryenabled) | Matikan [ringkasan sesi](/docs/id/interactive-mode#session-recap) yang ditampilkan ketika Anda kembali ke terminal | Remote, desktop, and notifications | Any file |624| [`awaySummaryEnabled`](#awaysummaryenabled) | Matikan [ringkasan sesi](/docs/id/interactive-mode#session-recap) yang ditampilkan ketika Anda kembali ke terminal | Remote, desktop, and notifications | Any file |

624| [`awsAuthRefresh`](#awsauthrefresh) | Segarkan [kredensial Bedrock](/docs/id/amazon-bedrock#advanced-credential-configuration) yang kedaluwarsa di `.aws` dengan perintah Anda sendiri | Authentication and providers | Any file |625| [`awsAuthRefresh`](#awsauthrefresh) | Segarkan [kredensial Bedrock](/docs/id/amazon-bedrock#advanced-credential-configuration) yang kedaluwarsa di `.aws` dengan perintah Anda sendiri | Authentication and providers | Any file |

625| [`awsCredentialExport`](#awscredentialexport) | Sediakan [kredensial Bedrock](/docs/id/amazon-bedrock#advanced-credential-configuration) sebagai JSON dari perintah Anda sendiri | Authentication and providers | Any file |626| [`awsCredentialExport`](#awscredentialexport) | Sediakan [kredensial Bedrock](/docs/id/amazon-bedrock#advanced-credential-configuration) sebagai JSON dari perintah Anda sendiri | Authentication and providers | Any file |


629| [`blockedMarketplaces`](#blockedmarketplaces) | Blokir sumber [marketplace plugin](/docs/id/plugins/overview) untuk organisasi Anda | Plugins and skills | Managed |630| [`blockedMarketplaces`](#blockedmarketplaces) | Blokir sumber [marketplace plugin](/docs/id/plugins/overview) untuk organisasi Anda | Plugins and skills | Managed |

630| [`browserExternalPageTools`](#browserexternalpagetools) | Tetap tidak aktifkan alat Claude di halaman eksternal dalam pane Browser [desktop](/docs/id/desktop) | Tools | Managed |631| [`browserExternalPageTools`](#browserexternalpagetools) | Tetap tidak aktifkan alat Claude di halaman eksternal dalam pane Browser [desktop](/docs/id/desktop) | Tools | Managed |

631| [`channelsEnabled`](#channelsenabled) | Izinkan [channel](/docs/id/channels#enable-channels-for-your-organization) untuk organisasi Anda | Plugins and skills | Managed |632| [`channelsEnabled`](#channelsenabled) | Izinkan [channel](/docs/id/channels#enable-channels-for-your-organization) untuk organisasi Anda | Plugins and skills | Managed |

633| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | Nyalakan [integrasi Chrome](/docs/id/chrome) dalam setiap sesi CLI interaktif tanpa melewatkan `--chrome` | Global config settings | Global config |

632| [`claudeMd`](#claudemd) | Injeksikan instruksi [CLAUDE.md](/docs/id/memory#deploy-organization-wide-claude-md) di seluruh organisasi dari pengaturan yang dikelola | Memory and context | Managed |634| [`claudeMd`](#claudemd) | Injeksikan instruksi [CLAUDE.md](/docs/id/memory#deploy-organization-wide-claude-md) di seluruh organisasi dari pengaturan yang dikelola | Memory and context | Managed |

633| [`claudeMdExcludes`](#claudemdexcludes) | Lewati file [CLAUDE.md](/docs/id/memory#exclude-specific-claude-md-files) tertentu ketika memori dimuat | Memory and context | Any file |635| [`claudeMdExcludes`](#claudemdexcludes) | Lewati file [CLAUDE.md](/docs/id/memory#exclude-specific-claude-md-files) tertentu ketika memori dimuat | Memory and context | Any file |

634| [`cleanupPeriodDays`](#cleanupperioddays) | Pilih berapa hari Claude Code menyimpan [transkrip](/docs/id/data-usage#data-retention) sebelum menghapusnya | Privacy and telemetry | Any file |636| [`cleanupPeriodDays`](#cleanupperioddays) | Pilih berapa hari Claude Code menyimpan [transkrip](/docs/id/data-usage#data-retention) sebelum menghapusnya | Privacy and telemetry | Any file |

635| [`companyAnnouncements`](#companyannouncements) | Tampilkan pengumuman organisasi Anda saat startup | Interface and terminal | Any file |637| [`companyAnnouncements`](#companyannouncements) | Tampilkan pengumuman organisasi Anda saat startup | Interface and terminal | Any file |

638| [`copyFullResponse`](#copyfullresponse) | Buat [`/copy`](/docs/id/commands) menyalin respons lengkap tanpa menampilkan pemilih blok kode | Global config settings | Global config |

636| [`copyOnSelect`](#copyonselect) | Matikan penyalinan otomatis teks yang Anda pilih dengan mouse dalam [rendering fullscreen](/docs/id/fullscreen#use-the-mouse) dan tampilan agent | Global config settings | Global config |639| [`copyOnSelect`](#copyonselect) | Matikan penyalinan otomatis teks yang Anda pilih dengan mouse dalam [rendering fullscreen](/docs/id/fullscreen#use-the-mouse) dan tampilan agent | Global config settings | Global config |

637| [`crossSessionInbound`](#crosssessioninbound) | Pilih apakah Claude Code mengirimkan [pesan dari sesi lain Anda](/docs/id/cross-session-messaging#control-inbound-messages), menampilkan pemberitahuan tanpa mengirimkannya, atau menolaknya | Agents, sessions, and worktrees | Any file |640| [`crossSessionInbound`](#crosssessioninbound) | Pilih apakah Claude Code mengirimkan [pesan dari sesi lain Anda](/docs/id/cross-session-messaging#control-inbound-messages), menampilkan pemberitahuan tanpa mengirimkannya, atau menolaknya | Agents, sessions, and worktrees | Any file |

638| [`defaultShell`](#defaultshell) | Pilih apakah Bash atau PowerShell menjalankan perintah shell yang Anda ketik dengan awalan [`!`](/docs/id/interactive-mode#shell-mode-with-prefix) | Interface and terminal | Any file |641| [`defaultShell`](#defaultshell) | Pilih apakah Bash atau PowerShell menjalankan perintah shell yang Anda ketik dengan awalan [`!`](/docs/id/interactive-mode#shell-mode-with-prefix) | Interface and terminal | Any file |

642| [`defaultToAgentsView`](#defaulttoagentsview) | Buka [tampilan agent](/docs/id/agent-view) daripada percakapan baru ketika Anda menjalankan `claude` tanpa argumen | Global config settings | Global config |

639| [`deniedMcpServers`](#deniedmcpservers) | Blokir server [MCP](/docs/id/mcp) tertentu berdasarkan URL, perintah, atau nama | MCP | Any file |643| [`deniedMcpServers`](#deniedmcpservers) | Blokir server [MCP](/docs/id/mcp) tertentu berdasarkan URL, perintah, atau nama | MCP | Any file |

644| [`deniedModels`](#deniedmodels) | [Blokir model tertentu](/docs/id/model-config#block-specific-models-or-versions), bahkan yang `availableModels` izinkan | Model dan respons | Managed |

640| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | Atur batas usia dalam hari untuk [transkrip Claude Desktop dan Cowork](/docs/id/claude-directory#cleaned-up-automatically) | Privacy and telemetry | User or managed |645| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | Atur batas usia dalam hari untuk [transkrip Claude Desktop dan Cowork](/docs/id/claude-directory#cleaned-up-automatically) | Privacy and telemetry | User or managed |

641| [`dialogExpiry`](#dialogexpiry) | Atur berapa lama Claude Code menunggu [Remote Control](/docs/id/remote-control) atau host SDK menjawab dialog yang diteruskan sebelum membatalkan dialog | Interface and terminal | User or managed |646| [`dialogExpiry`](#dialogexpiry) | Atur berapa lama Claude Code menunggu [Remote Control](/docs/id/remote-control) atau host SDK menjawab dialog yang diteruskan sebelum membatalkan dialog | Interface and terminal | User or managed |

642| [`diffTool`](#difftool) | Pilih apakah perubahan file yang diusulkan Claude terbuka di penampil diff [VS Code](/docs/id/vs-code) atau [JetBrains](/docs/id/jetbrains#features) atau tetap di terminal | Global config settings | Global config |647| [`diffTool`](#difftool) | Pilih apakah perubahan file yang diusulkan Claude terbuka di penampil diff [VS Code](/docs/id/vs-code) atau [JetBrains](/docs/id/jetbrains#features) atau tetap di terminal | Global config settings | Global config |


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 |695| [`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 |696| [`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 |

692| [`language`](#language) | Biarkan Claude merespons dalam bahasa selain Inggris | Model dan respons | Any file |697| [`language`](#language) | Biarkan Claude merespons dalam bahasa selain Inggris | Model dan respons | Any file |

698| [`leftArrowOpensAgents`](#leftarrowopensagents) | Matikan pintasan `←` yang [menempatkan sesi di latar belakang dan membuka tampilan agent](/docs/id/agent-view#switch-sessions-without-leaving-the-terminal) | Global config settings | Global config |

693| [`managedMcpServers`](#managedmcpservers) | Sediakan server [MCP](/docs/id/managed-mcp#provide-servers-through-managed-settings) jarak jauh kepada setiap pengguna bersama dengan yang mereka tambahkan | MCP | Managed |699| [`managedMcpServers`](#managedmcpservers) | Sediakan server [MCP](/docs/id/managed-mcp#provide-servers-through-managed-settings) jarak jauh kepada setiap pengguna bersama dengan yang mereka tambahkan | MCP | Managed |

694| [`managedSourcesBehavior`](#managedsourcesbehavior) | Komposisi setiap [sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) yang Anda terapkan daripada menggunakan satu-satunya prioritas tertinggi | Enterprise and managed settings | Managed |700| [`managedSourcesBehavior`](#managedsourcesbehavior) | Komposisi setiap [sumber yang dikelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources) yang Anda terapkan daripada menggunakan satu-satunya prioritas tertinggi | Enterprise and managed settings | Managed |

695| [`maxEffortLevel`](#maxeffortlevel) | Batasi [tingkat usaha](/docs/id/model-config#adjust-effort-level) untuk setiap model atau per model, di setiap penyedia | Model dan respons | Any file |701| [`maxEffortLevel`](#maxeffortlevel) | Batasi [tingkat usaha](/docs/id/model-config#adjust-effort-level) untuk setiap model atau per model, di setiap penyedia | Model dan respons | Any file |

702| [`maxProseWidth`](#maxprosewidth) | Batasi seberapa lebar prosa dalam respons Claude berjalan di terminal yang lebar | Interface and terminal | Any file |

696| [`minimumVersion`](#minimumversion) | Jaga [pembaruan otomatis](/docs/id/setup#pin-a-minimum-version) dari memasang apa pun di bawah versi | Updates and versioning | Any file |703| [`minimumVersion`](#minimumversion) | Jaga [pembaruan otomatis](/docs/id/setup#pin-a-minimum-version) dari memasang apa pun di bawah versi | Updates and versioning | Any file |

697| [`model`](#model) | Ubah [model](/docs/id/model-config#set-a-default-model-for-new-sessions) yang Claude Code mulai | Model dan respons | Any file |704| [`model`](#model) | Ubah [model](/docs/id/model-config#set-a-default-model-for-new-sessions) yang Claude Code mulai | Model dan respons | Any file |

698| [`modelOverrides`](#modeloverrides) | [Petakan ID model](/docs/id/model-config#override-model-ids-per-version) ke ID penyedia Anda, seperti ARN Bedrock | Model dan respons | Any file |705| [`modelOverrides`](#modeloverrides) | [Petakan ID model](/docs/id/model-config#override-model-ids-per-version) ke ID penyedia Anda, seperti ARN Bedrock | Model dan respons | Any file |


713| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Cegah siapa pun memasuki [mode bypassPermissions](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Permission settings | Any file |720| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | Cegah siapa pun memasuki [mode bypassPermissions](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) | Permission settings | Any file |

714| [`plansDirectory`](#plansdirectory) | Pilih tempat [mode plan](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) menulis file rencana | Memory and context | Any file |721| [`plansDirectory`](#plansdirectory) | Pilih tempat [mode plan](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode) menulis file rencana | Memory and context | Any file |

715| [`pluginConfigs`](#pluginconfigs) | Simpan jawaban yang Anda berikan dialog konfigurasi [plugin](/docs/id/plugins/overview) | Plugins and skills | User or managed |722| [`pluginConfigs`](#pluginconfigs) | Simpan jawaban yang Anda berikan dialog konfigurasi [plugin](/docs/id/plugins/overview) | Plugins and skills | User or managed |

716| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Pilih [marketplace](/docs/id/plugins/overview) mana yang dapat menampilkan saran instalasi plugin di `/plugin` | Plugins and skills | Managed |723| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | Pilih [marketplace](/docs/id/plugins/org#restrict-what-users-can-install) mana yang dapat menampilkan saran instalasi plugin di `/plugin` | Plugins and skills | Managed |

717| [`pluginTrustMessage`](#plugintrustmessage) | Tambahkan teks Anda sendiri ke peringatan kepercayaan [plugin](/docs/id/plugins/overview) | Plugins and skills | Managed |724| [`pluginTrustMessage`](#plugintrustmessage) | Tambahkan teks Anda sendiri ke peringatan kepercayaan [plugin](/docs/id/plugins/overview) | Plugins and skills | Managed |

718| [`policyHelper`](#policyhelper) | Jalankan executable yang menghitung [pengaturan yang dikelola](/docs/id/managed-settings#compute-the-policy-with-a-helper-program) saat startup | Enterprise and managed settings | Managed |725| [`policyHelper`](#policyhelper) | Jalankan executable yang menghitung [pengaturan yang dikelola](/docs/id/managed-settings#compute-the-policy-with-a-helper-program) saat startup | Enterprise and managed settings | Managed |

719| [`policyHelper.path`](#policyhelper-path) | Beri nama [executable pembantu](/docs/id/managed-settings#compute-the-policy-with-a-helper-program) yang Claude Code jalankan | Enterprise and managed settings | Managed |726| [`policyHelper.path`](#policyhelper-path) | Beri nama [executable pembantu](/docs/id/managed-settings#compute-the-policy-with-a-helper-program) yang Claude Code jalankan | Enterprise and managed settings | Managed |


724| [`processWrapper`](#processwrapper) | Jalankan proses latar belakang Claude Code melalui [peluncur perusahaan](/docs/id/corporate-launcher) di macOS dan Linux | Agents, sessions, and worktrees | User or managed |731| [`processWrapper`](#processwrapper) | Jalankan proses latar belakang Claude Code melalui [peluncur perusahaan](/docs/id/corporate-launcher) di macOS dan Linux | Agents, sessions, and worktrees | User or managed |

725| [`promptCacheTtl`](#promptcachettl) | Pilih [masa pakai cache prompt](/docs/id/prompt-caching#cache-lifetime) untuk percakapan utama | Model dan respons | Any file |732| [`promptCacheTtl`](#promptcachettl) | Pilih [masa pakai cache prompt](/docs/id/prompt-caching#cache-lifetime) untuk percakapan utama | Model dan respons | Any file |

726| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Sembunyikan [saran prompt](/docs/id/interactive-mode#prompt-suggestions) yang dikelabu dalam kotak input | Interface and terminal | Any file |733| [`promptSuggestionEnabled`](#promptsuggestionenabled) | Sembunyikan [saran prompt](/docs/id/interactive-mode#prompt-suggestions) yang dikelabu dalam kotak input | Interface and terminal | Any file |

734| [`prStatusFooterEnabled`](#prstatusfooterenabled) | Matikan lencana [status tinjauan PR](/docs/id/interactive-mode#pr-review-status) footer prompt dan pemeriksaan pull request di baliknya | Global config settings | Global config |

727| [`prUrlTemplate`](#prurltemplate) | Arahkan tautan PR ke alat tinjauan kode internal daripada github.com | Git and attribution | Any file |735| [`prUrlTemplate`](#prurltemplate) | Arahkan tautan PR ke alat tinjauan kode internal daripada github.com | Git and attribution | Any file |

728| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | Pilih [lingkungan cloud](/docs/id/cloud-environments) default untuk `claude --cloud`; ID `ccpool_` yang di-host sendiri hanya dibaca dari pengaturan pengguna dan yang dikelola serta `--settings` | Remote, desktop, and notifications | Any file |736| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | Pilih [lingkungan cloud](/docs/id/cloud-environments) default untuk `claude --cloud`; ID `ccpool_` yang di-host sendiri hanya dibaca dari pengaturan pengguna dan yang dikelola serta `--settings` | Remote, desktop, and notifications | Any file |

729| [`remoteControlAtStartup`](#remotecontrolatstartup) | Hubungkan [Remote Control](/docs/id/remote-control#enable-remote-control-for-all-sessions) secara otomatis ketika sesi dimulai | Remote, desktop, and notifications | Any file |737| [`remoteControlAtStartup`](#remotecontrolatstartup) | Hubungkan [Remote Control](/docs/id/remote-control#enable-remote-control-for-all-sessions) secara otomatis ketika sesi dimulai | Remote, desktop, and notifications | Any file |


794| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Pilih [masa pakai cache prompt](/docs/id/prompt-caching#cache-lifetime) untuk subagent dan permintaan lain di luar percakapan utama | Model dan respons | Any file |802| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | Pilih [masa pakai cache prompt](/docs/id/prompt-caching#cache-lifetime) untuk subagent dan permintaan lain di luar percakapan utama | Model dan respons | Any file |

795| [`subagentStatusLine`](#subagentstatusline) | Tulis ulang baris dalam tampilan tugas [subagent](/docs/id/sub-agents) dengan perintah Anda sendiri | Interface and terminal | Any file |803| [`subagentStatusLine`](#subagentstatusline) | Tulis ulang baris dalam tampilan tugas [subagent](/docs/id/sub-agents) dengan perintah Anda sendiri | Interface and terminal | Any file |

796| [`switchModelsOnFlag`](#switchmodelsonflag) | Alihkan model secara otomatis atau jeda ketika [pengklasifikasi keamanan](/docs/id/model-config#ask-before-switching) menandai permintaan | Model dan respons | Any file |804| [`switchModelsOnFlag`](#switchmodelsonflag) | Alihkan model secara otomatis atau jeda ketika [pengklasifikasi keamanan](/docs/id/model-config#ask-before-switching) menandai permintaan | Model dan respons | Any file |

797| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Hentikan pemuatan [plugin yang diaktifkan di akun claude.ai Anda](/docs/id/plugins/overview) dan hentikan pengunduhan yang baru | Plugins and skills | User, local, or managed |805| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | Hentikan pemuatan [plugin yang diaktifkan di akun claude.ai Anda](/docs/id/plugins/loading#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 |806| [`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 |807| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | Matikan penyorotan sintaks dalam diff dan blok kode | Interface and terminal | Any file |

800| [`taskOutputMaxChars`](#taskoutputmaxchars) | Dihapus di v2.1.277, bersama dengan alat `TaskOutput` yang disizingnya | Memory and context | Any file |808| [`taskOutputMaxChars`](#taskoutputmaxchars) | Dihapus di v2.1.277, bersama dengan alat `TaskOutput` yang disizingnya | Memory and context | Any file |


833 `advisorModel`841 `advisorModel`

834</h3>842</h3>

835 843 

836Pilih model mana yang menjawab ketika Claude memanggil [alat advisor](/docs/id/advisor) di sisi server. Batalkan pengaturannya untuk mematikan advisor. Advisor harus setidaknya sama mampu dengan model utama Anda. Lihat [Pilih model advisor](/docs/id/advisor#choose-an-advisor-model) untuk pasangan yang diterima dan apa yang terjadi ketika Anda memilih yang tidak diterima.844Pilih model mana yang menjawab ketika Claude memanggil [alat advisor](/docs/id/advisor) di sisi server. Biarkan tidak disetel untuk mematikan advisor. Advisor harus setidaknya sama mampu dengan model utama Anda. Lihat [Pilih model advisor](/docs/id/advisor#choose-an-advisor-model) untuk pasangan yang diterima dan apa yang terjadi ketika Anda memilih yang tidak diterima.

837 845 

838Anda biasanya tidak mengedit kunci ini secara manual. Jalankan `/advisor` untuk membuka pemilih yang menunjukkan pilihan saat ini, model yang dapat memberikan saran, dan **No advisor**. Claude Code menyimpan pilihan Anda ke kunci ini di `~/.claude/settings.json`. Jika Anda memilih dari klien [Remote Control](/docs/id/remote-control) atau dalam sesi yang terhubung ke pekerja jarak jauh, pilihan tersebut hanya berlaku untuk sesi itu dan tidak mengubah kunci ini.846Anda biasanya tidak mengedit kunci ini dengan tangan. Jalankan `/advisor` untuk membuka pemilih yang menunjukkan pilihan saat ini, model yang dapat memberikan saran, dan **Tidak ada advisor**. Claude Code menyimpan pilihan Anda ke kunci ini di `~/.claude/settings.json`. Jika Anda memilih dari klien [Remote Control](/docs/id/remote-control) atau dalam sesi yang terpasang ke pekerja jarak jauh, pilihan berlaku hanya untuk sesi itu dan tidak mengubah kunci ini.

839 847 

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.848Jika akun Anda memerlukan [persetujuan kredit penggunaan](/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 849 

842* **Scope**: [`Any file`](#scopes)850* **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-5"`851* **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 dimatikan852* **Default**: tidak disetel, 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 kembali853* **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 854 

847```json settings.json theme={null}855```json settings.json theme={null}


850}858}

851```859```

852 860 

853Kunci ini tidak berpengaruh pada penyedia di mana advisor [tidak tersedia](/docs/id/advisor#requirements), seperti Amazon Bedrock dan Claude Platform di AWS. `"fable"` memerlukan [akses Fable](/docs/id/advisor#choose-an-advisor-model).861Kunci ini tidak berpengaruh pada penyedia tempat advisor [tidak tersedia](/docs/id/advisor#requirements), seperti Amazon Bedrock dan Claude Platform di AWS. `"fable"` memerlukan [akses Fable](/docs/id/advisor#choose-an-advisor-model).

854 862 

855<h3 id="alwaysthinkingenabled">863<h3 id="alwaysthinkingenabled">

856 `alwaysThinkingEnabled`864 `alwaysThinkingEnabled`

857</h3>865</h3>

858 866 

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.867Matikan [extended thinking](/docs/id/model-config#extended-thinking) untuk setiap sesi dengan menetapkan ini ke `false`. Thinking aktif secara default, jadi `true` tidak mengubah apa pun. Sebagian besar orang menetapkan ini melalui `/config` daripada mengedit file.

860 868 

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.869Pada model yang selalu berpikir, seperti Opus 5.5, Sonnet 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 870 

863* **Scope**: [`Any file`](#scopes)871* **Scope**: [`Any file`](#scopes)

864* **Type**: Boolean872* **Type**: Boolean

865 * `true`: tidak berpengaruh; thinking sudah aktif873 * `true`: tidak berpengaruh; thinking sudah aktif

866 * `false`: Claude Code mematikan extended thinking untuk setiap sesi874 * `false`: Claude Code mematikan extended thinking untuk setiap sesi

867* **Default**: tidak diatur, jadi thinking aktif untuk model yang mendukungnya875* **Default**: tidak disetel, jadi thinking aktif untuk model yang mendukungnya

868* **Per-session overrides**: [`MAX_THINKING_TOKENS`](/docs/id/env-vars) mengambil alih kunci ini untuk satu sesi: `0` mematikan thinking, di bawah batasan model dan penyedia yang sama seperti `false`, dan nilai positif menghidupkan thinking bahkan ketika kunci ini adalah `false`. Pada model adaptive-reasoning angka itu sendiri diabaikan876* **Per-session overrides**: [`MAX_THINKING_TOKENS`](/docs/id/env-vars) mengambil alih kunci ini untuk satu sesi: `0` mematikan thinking, di bawah batasan model dan penyedia yang sama seperti `false`, dan nilai positif menghidupkan thinking bahkan ketika kunci ini `false`. Pada model adaptive-reasoning angka itu sendiri diabaikan

869 877 

870```json settings.json theme={null}878```json settings.json theme={null}

871{879{


877 `availableModels`885 `availableModels`

878</h3>886</h3>

879 887 

880Batasi model mana yang dapat dipilih orang untuk sesi utama, [subagents](/docs/id/sub-agents), [skills](/docs/id/skills), dan [advisor](/docs/id/advisor). Daftar terkelola membatasi `/model`, `--model`, dan kunci `model` dalam file pengembang sendiri; model di luar itu tidak dapat dipilih. Dengan sendirinya ini tidak menyentuh opsi Default; pasangkan dengan [`enforceAvailableModels`](#enforceavailablemodels) untuk itu.888Batasi model mana yang dapat dipilih orang untuk sesi utama, [subagents](/docs/id/sub-agents), [skills](/docs/id/skills), dan [advisor](/docs/id/advisor). Daftar terkelola membatasi `/model`, `--model`, dan kunci `model` dalam file pengembang sendiri; model di luar itu tidak dapat dipilih. Dengan pencocokan awalan default, ini tidak menyentuh opsi Default dengan sendirinya; pasangkan dengan [`enforceAvailableModels`](#enforceavailablemodels) untuk itu.

881 889 

882* **Scope**: [`Any file`](#scopes). Terapkan dalam pengaturan terkelola untuk memberlakukannya untuk organisasi.890* **Scope**: [`Any file`](#scopes). Terapkan dalam pengaturan terkelola untuk memberlakukannya untuk organisasi.

883* **Type**: array alias model atau ID891* **Type**: array alias model atau ID

884* **Default**: tidak diatur, jadi setiap model tersedia892* **Default**: tidak disetel, jadi setiap model tersedia

885 893 

886Contoh ini memungkinkan orang memilih hanya model Sonnet dan Haiku:894Contoh ini memungkinkan orang memilih hanya model Sonnet dan Haiku:

887 895 


891}899}

892```900```

893 901 

894Lihat [Batasi pemilihan model](/docs/id/model-config#restrict-model-selection).902Entri ID model seperti `"claude-opus-5"` juga memungkinkan versi yang lebih baru yang memperpanjangnya, seperti Opus 5.5. Untuk memblokir salah satu versi itu, gunakan [`deniedModels`](#deniedmodels). Untuk membuat setiap entri ID model hanya memungkinkan versi yang dinamainya, gunakan [`availableModelsMatch`](#availablemodelsmatch). Lihat [Batasi pemilihan model](/docs/id/model-config#restrict-model-selection).

903 

904<h3 id="availablemodelsmatch">

905 `availableModelsMatch`

906</h3>

907 

908Pilih bagaimana entri [`availableModels`](#availablemodels) cocok dengan ID model. Secara default entri ID model juga memungkinkan versi yang lebih baru yang memperpanjangnya, jadi `"claude-opus-5"` memungkinkan Opus 5.5. Dengan `"exact"`, setiap entri ID model hanya memungkinkan versi yang dinamainya, jadi versi yang lebih baru dari model itu tetap diblokir sampai Anda mencantumkannya. Memerlukan Claude Code v2.1.283 atau lebih baru.

909 

910* **Scope**: [`Managed`](#scopes). Claude Code mengabaikan kunci dalam pengaturan pengguna, proyek, dan lokal serta dalam `--settings`, dengan peringatan

911* **Type**: string, salah satu dari:

912 * `"prefix"`: entri ID model memungkinkan versinya dan ID model apa pun yang memperpanjangnya dengan segmen lain

913 * `"exact"`: entri ID model hanya memungkinkan versi yang dinamainya, termasuk ID tanggal versi itu, jadi `"claude-opus-5"` memungkinkan Opus 5 tetapi bukan `claude-opus-5-5`. Alias keluarga seperti `"opus"` masih memungkinkan seluruh keluarga, dan entri `best`, `opusplan`, dan `default` diabaikan

914* **Default**: `"prefix"`

915 

916Contoh ini memungkinkan Opus 5 dan Sonnet 5 dan tidak ada rilis yang lebih baru dari keduanya:

917 

918```json managed-settings.json theme={null}

919{

920 "availableModels": ["claude-opus-5", "claude-sonnet-5"],

921 "availableModelsMatch": "exact"

922}

923```

924 

925Dengan `"exact"`, opsi Default juga dibatasi pada model yang tercantum kapan pun daftar menamai setidaknya satu model atau keluarga. Lihat [Blokir model atau versi tertentu](/docs/id/model-config#block-specific-models-or-versions).

926 

927<h3 id="deniedmodels">

928 `deniedModels`

929</h3>

930 

931Blokir model tertentu, dengan atau tanpa daftar [`availableModels`](#availablemodels) dan bahkan ketika daftar itu memungkinkannya. Claude Code menyembunyikan model yang diblokir dari pemilih `/model`, dan model tidak dapat dipilih di mana pun `availableModels` diberlakukan. Sesi pada opsi Default juga tidak menjalankan model yang diblokir, seperti yang dijelaskan [Blokir model atau versi tertentu](/docs/id/model-config#block-specific-models-or-versions). Memerlukan Claude Code v2.1.283 atau lebih baru.

932 

933* **Scope**: [`Managed`](#scopes). Claude Code mengabaikan kunci dalam pengaturan pengguna, proyek, dan lokal serta dalam `--settings`, dengan peringatan

934* **Type**: array alias model atau ID

935 * Alias keluarga seperti `"opus"` memblokir setiap model dalam keluarga itu

936 * ID model seperti `"claude-opus-5-5"` memblokir versi itu dalam setiap ejaan, termasuk ID tanggal dan khusus penyedia

937 * ID model tanpa versi minor, seperti `"claude-opus-5"`, juga memblokir versi minor yang lebih baru seperti Opus 5.5. Tulis `"claude-opus-5-0"` untuk memblokir Opus 5 saja

938 * Entri `best`, `opusplan`, dan `default` diabaikan

939* **Default**: tidak disetel, jadi tidak ada model yang diblokir

940 

941Contoh ini memungkinkan model Opus dan Sonnet dan memblokir Opus 5.5:

942 

943```json managed-settings.json theme={null}

944{

945 "availableModels": ["opus", "sonnet"],

946 "deniedModels": ["claude-opus-5-5"]

947}

948```

949 

950Lihat [Blokir model atau versi tertentu](/docs/id/model-config#block-specific-models-or-versions).

895 951 

896<h3 id="effortlevel">952<h3 id="effortlevel">

897 `effortLevel`953 `effortLevel`

898</h3>954</h3>

899 955 

900Atur [effort level](/docs/id/model-config#adjust-effort-level) default untuk model yang belum Anda simpan levelnya. Level yang lebih rendah lebih cepat dan lebih murah untuk tugas-tugas langsung, dan level yang lebih tinggi bernalar lebih dalam pada masalah kompleks.956Tetapkan [tingkat effort](/docs/id/model-config#adjust-effort-level) default untuk model yang belum Anda simpan tingkatnya. Level yang lebih rendah lebih cepat dan lebih murah pada tugas yang mudah, dan level yang lebih tinggi bernalar lebih dalam pada masalah yang kompleks.

901 957 

902Ketika Anda menjalankan `/effort low`, `medium`, `high`, atau `xhigh` dalam sesi interaktif di mesin Anda, Claude Code menyimpan level untuk model aktif di bawah [`modelSettings`](#modelsettings) daripada menulis kunci ini. Sebelum v2.1.251, `/effort` menulis kunci ini.958Ketika Anda menjalankan `/effort low`, `medium`, `high`, atau `xhigh` dalam sesi interaktif di mesin Anda, Claude Code menyimpan level untuk model aktif di bawah [`modelSettings`](#modelsettings) daripada menulis kunci ini. Sebelum v2.1.251, `/effort` menulis kunci ini.

903 959 

904Dalam file pengaturan yang sama, Claude Code menggunakan level yang disimpan model daripada kunci ini. [`modelSettings`](#modelsettings) menyatakan preseden lintas file.960Dalam file pengaturan yang sama, Claude Code menggunakan level yang disimpan model daripada kunci ini. [`modelSettings`](#modelsettings) menyatakan preseden lintas file.

905 961 

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.962Dalam sesi yang terpasang ke pekerja jarak jauh, dalam jalankan `-p`, dan dalam Agent SDK, `/effort` berlaku hanya untuk sesi itu. [Sesuaikan tingkat effort](/docs/id/model-config#adjust-effort-level) mencantumkan pilihan interaktif yang juga berlaku hanya untuk sesi itu. Pesan yang dicetak `/effort` mengatakan mana yang terjadi.

907 963 

908* **Scope**: [`Any file`](#scopes)964* **Scope**: [`Any file`](#scopes)

909* **Type**: string, salah satu dari:965* **Type**: string, salah satu dari:

910 * `"low"`: penalaran paling sedikit, untuk tugas pendek, terbatas, sensitif latensi yang tidak sensitif intelijen966 * `"low"`: penalaran paling sedikit, untuk tugas pendek, terbatas, sensitif latensi yang bukan sensitif intelijen

911 * `"medium"`: mengurangi penggunaan token untuk pekerjaan sensitif biaya yang dapat menukar beberapa intelijen967 * `"medium"`: mengurangi penggunaan token untuk pekerjaan sensitif biaya yang dapat menukar beberapa intelijen

912 * `"high"`: menyeimbangkan penggunaan token dan intelijen968 * `"high"`: menyeimbangkan penggunaan token dan intelijen

913 * `"xhigh"`: penalaran lebih dalam dengan pengeluaran token lebih tinggi969 * `"xhigh"`: penalaran lebih dalam dengan pengeluaran token yang lebih tinggi

914* **Default**: tidak diatur970* **Default**: tidak disetel

915* **Per-session overrides**: `--effort` mengambil alih kunci ini untuk satu sesi, dan [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/id/env-vars) mengambil alih keduanya971* **Per-session overrides**: `--effort` mengambil alih kunci ini untuk satu sesi, dan [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/id/env-vars) mengambil alih keduanya

916 972 

917```json settings.json theme={null}973```json settings.json theme={null}


920}976}

921```977```

922 978 

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.979Dalam file pengaturan pengguna Anda, `~/.claude/settings.json`, kunci ini adalah bentuk yang lebih lama `/effort` ditulis sebelum menyimpan level per model, dan terus berlaku di mana ia berlaku sebelumnya, pada Opus 5, Fable 5.1, dan model yang lebih awal. Opus 5.5 dan model yang dirilis setelahnya mengabaikannya dan mulai pada default mereka sendiri sampai Anda menyimpan level untuk mereka, yang ditulis `/effort` di bawah [`modelSettings`](#modelsettings). Dalam pengaturan proyek, lokal, dan terkelola, dan dengan `--settings`, kunci ini berlaku untuk setiap model.

924 980 

925<h3 id="enforceavailablemodels">981<h3 id="enforceavailablemodels">

926 `enforceAvailableModels`982 `enforceAvailableModels`

927</h3>983</h3>

928 984 

929Pemilih `/model` memiliki opsi **Default** yang diselesaikan ke [model default organisasi Anda](/docs/id/model-config#organization-default-model) ketika satu berlaku, dan sebaliknya ke default tipe akun Anda. Daftar allowlist [`availableModels`](#availablemodels) membatasi model yang dapat Anda beri nama, tetapi dengan sendirinya meninggalkan **Default** saja, jadi **Default** masih dapat diselesaikan ke model di luar daftar. Kunci ini menutup celah itu. Memerlukan Claude Code v2.1.175 atau lebih baru.985Pemilih `/model` memiliki opsi **Default**, dan [`default` model setting](/docs/id/model-config#default-model-setting) menjelaskan model yang diselesaikannya. Daftar [`availableModels`](#availablemodels) membatasi model yang dapat Anda beri nama, tetapi dengan [pencocokan awalan](#availablemodelsmatch) default itu tidak memetakan ulang default tipe akun Anda, jadi **Default** masih dapat diselesaikan ke model di luar daftar. Kunci ini menutup celah itu. Memerlukan Claude Code v2.1.175 atau lebih baru.

930 986 

931Ketika organisasi Anda menerapkan pengaturan terkelola apa pun, Claude Code membaca kunci ini dari sumber terkelola saja dan mengabaikannya di file lain Anda.987Ketika organisasi Anda menerapkan pengaturan terkelola apa pun, Claude Code membaca kunci ini dari sumber terkelola saja dan mengabaikannya dalam file lain Anda.

932 988 

933* **Scope**: [`Any file`](#scopes)989* **Scope**: [`Any file`](#scopes)

934* **Type**: Boolean990* **Type**: Boolean

935 * `true`: ketika **Default** akan diselesaikan ke model di luar `availableModels`, Claude Code menyelesaikannya ke model pertama yang tersedia dalam daftar991 * `true`: ketika **Default** akan diselesaikan ke model di luar `availableModels`, Claude Code menyelesaikannya ke model pertama yang tersedia dalam daftar

936 * `false`: **Default** diselesaikan seperti biasa, bahkan ke model di luar `availableModels`992 * `false`: kunci ini tidak mengubah cara **Default** diselesaikan

937* **Default**: `false`993* **Default**: `false`

938 994 

939Contoh ini membatasi pilihan bernama ke model Sonnet dan Haiku dan membuat **Default** diselesaikan ke yang pertama dari mereka yang tersedia:995Contoh ini membatasi pilihan bernama ke model Sonnet dan Haiku dan membuat **Default** diselesaikan ke yang pertama dari mereka yang tersedia:


945}1001}

946```1002```

947 1003 

948Kunci ini tidak berpengaruh ketika `availableModels` tidak diatur atau kosong. Lihat [Berlakukan allowlist untuk model Default](/docs/id/model-config#enforce-the-allowlist-for-the-default-model). Memerlukan Claude Code v2.1.175 atau lebih baru.1004Kunci ini tidak berpengaruh ketika `availableModels` tidak disetel atau kosong. Lihat [Berlakukan daftar untuk model Default](/docs/id/model-config#enforce-the-allowlist-for-the-default-model). Memerlukan Claude Code v2.1.175 atau lebih baru.

949 1005 

950<h3 id="fallbackmodel">1006<h3 id="fallbackmodel">

951 `fallbackModel`1007 `fallbackModel`

952</h3>1008</h3>

953 1009 

954Beri nama model cadangan untuk Claude Code coba, secara berurutan, ketika model utama Anda kelebihan beban atau tidak tersedia. Claude Code beralih ke model berikutnya yang tersedia dalam rantai untuk sisa giliran dan menampilkan pemberitahuan. Tanpa rantai, Claude Code mencoba ulang model yang sama dan kemudian menampilkan kesalahan server, dan Anda mencoba ulang atau beralih model sendiri.1010Beri nama model cadangan untuk Claude Code coba, secara berurutan, ketika model utama Anda kelebihan beban atau tidak tersedia. Claude Code beralih ke model yang tersedia berikutnya dalam rantai untuk sisa giliran dan menunjukkan pemberitahuan. Tanpa rantai, Claude Code mencoba ulang model yang sama dan kemudian menampilkan kesalahan server, dan Anda mencoba ulang atau beralih model sendiri.

955 1011 

956Sakelar berarti satu giliran dengan [prompt cache](/docs/id/prompt-caching#switching-models) dingin pada model fallback; pesan berikutnya Anda mencoba model utama terlebih dahulu lagi.1012Beralih berarti satu giliran dengan [cache prompt](/docs/id/prompt-caching#switching-models) dingin pada model fallback; pesan Anda berikutnya mencoba model utama terlebih dahulu lagi.

957 1013 

958* **Scope**: [`Any file`](#scopes)1014* **Scope**: [`Any file`](#scopes)

959* **Type**: array alias model atau ID; `"default"` berkembang ke model default1015* **Type**: array alias model atau ID; `"default"` berkembang ke model default

960* **Default**: tidak diatur, jadi permintaan yang gagal tidak dicoba ulang pada model lain1016* **Default**: tidak disetel, jadi permintaan yang gagal tidak dicoba ulang pada model lain

961* **Per-session overrides**: `--fallback-model` mengambil alih kunci ini untuk satu sesi1017* **Per-session overrides**: `--fallback-model` mengambil alih kunci ini untuk satu sesi

962 1018 

963Contoh ini mencoba Sonnet 5 terlebih dahulu, kemudian Haiku 4.5, ketika model utama Anda gagal:1019Contoh ini mencoba Sonnet 5 terlebih dahulu, kemudian Haiku 4.5, ketika model utama Anda gagal:


968}1024}

969```1025```

970 1026 

971Tidak seperti sebagian besar pengaturan array, kunci ini tidak menggabungkan di seluruh file pengaturan: file dengan preseden tertinggi yang mendefinisikannya memasok seluruh rantai. Jika file proyek Anda menetapkan `["claude-sonnet-5"]` dan file pengguna Anda menetapkan `["claude-haiku-4-5"]`, rantainya adalah `["claude-sonnet-5"]` saja. Claude Code menyimpan paling banyak tiga model yang berbeda yang diizinkan dari daftar dan mengabaikan sisanya. Lihat [Rantai model fallback](/docs/id/model-config#fallback-model-chains).1027Tidak seperti sebagian besar pengaturan array, kunci ini tidak menggabungkan di seluruh file pengaturan: file dengan preseden tertinggi yang mendefinisikannya memasok seluruh rantai. Jika file proyek Anda menetapkan `["claude-sonnet-5"]` dan file pengguna Anda menetapkan `["claude-haiku-4-5"]`, rantainya adalah `["claude-sonnet-5"]` saja. Claude Code menyimpan paling banyak tiga model yang diizinkan berbeda dari daftar dan mengabaikan sisanya. Lihat [Rantai model fallback](/docs/id/model-config#fallback-model-chains).

972 1028 

973<h3 id="fastmode">1029<h3 id="fastmode">

974 `fastMode`1030 `fastMode`

975</h3>1031</h3>

976 1032 

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).1033Hidupkan [fast mode](/docs/id/fast-mode) untuk sesi tempat tersedia, untuk pekerjaan interaktif seperti iterasi cepat atau debugging langsung tempat Anda menginginkan kecepatan dengan biaya yang lebih tinggi per token. Anda biasanya tidak mengedit kunci ini dengan tangan: menjalankan `/fast` menulis `fastMode: true` ke `~/.claude/settings.json`, dan menjalankannya lagi untuk mematikan fast mode menghapus kunci. Fast mode berjalan hanya pada 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 1034 

979* **Scope**: [`Any file`](#scopes)1035* **Scope**: [`Any file`](#scopes)

980* **Type**: Boolean1036* **Type**: Boolean

981 * `true`: Claude Code menghidupkan fast mode untuk sesi di mana tersedia1037 * `true`: Claude Code menghidupkan fast mode untuk sesi tempat tersedia

982 * `false`: fast mode tetap mati1038 * `false`: fast mode tetap mati

983* **Default**: tidak diatur, jadi fast mode mati1039* **Default**: tidak disetel, jadi fast mode mati

984* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/id/env-vars) mematikan fast mode untuk satu sesi, dan kunci ini tidak dapat menghidupkannya kembali1040* **Per-session overrides**: [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/id/env-vars) mematikan fast mode untuk satu sesi, dan kunci ini tidak dapat menghidupkannya kembali

985 1041 

986```json settings.json theme={null}1042```json settings.json theme={null}


993 `fastModePerSessionOptIn`1049 `fastModePerSessionOptIn`

994</h3>1050</h3>

995 1051 

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.1052Biasanya, menjalankan `/fast` menyimpan [`fastMode`](#fastmode) ke pengaturan pengguna seseorang, jadi fast mode aktif di awal setiap sesi yang lebih baru. Tetapkan 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` dalam setiap sesi yang mereka inginkan. Claude Code meninggalkan kunci `fastMode` dalam file mereka, jadi mematikan kunci ini mengembalikan perilaku lama.

997 1053 

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

999 1055 

1000* **Scope**: [`Any file`](#scopes)1056* **Scope**: [`Any file`](#scopes)

1001* **Type**: Boolean1057* **Type**: Boolean

1002 * `true`: `fastMode: true` yang disimpan tidak lagi menghidupkan fast mode di awal sesi, jadi setiap orang menjalankan `/fast` di setiap sesi yang mereka inginkan; `fastMode: true` yang dilewatkan dengan `--settings` masih dihitung untuk sesi itu kecuali pengaturan terkelola menetapkan kunci ini1058 * `true`: `fastMode: true` yang disimpan tidak lagi menghidupkan fast mode di awal sesi, jadi setiap orang menjalankan `/fast` dalam setiap sesi yang mereka inginkan; `fastMode: true` yang dilewatkan dengan `--settings` masih dihitung untuk sesi itu kecuali pengaturan terkelola menetapkan kunci ini

1003 * `false`: `fastMode: true` yang disimpan menghidupkan fast mode di awal setiap sesi kemudian1059 * `false`: `fastMode: true` yang disimpan menghidupkan fast mode di awal setiap sesi yang lebih baru

1004* **Default**: `false`1060* **Default**: `false`

1005 1061 

1006```json settings.json theme={null}1062```json settings.json theme={null}


1015 `language`1071 `language`

1016</h3>1072</h3>

1017 1073 

1018Buat Claude merespons dalam bahasa selain Inggris secara default. Tidak ada daftar tetap untuk respons: Claude Code menambahkan nilai secara verbatim ke prompt sistem sebagai instruksi untuk selalu merespons dalam bahasa itu, jadi nama bahasa apa pun yang dapat dibaca Claude berfungsi. Claude Code tidak memeriksa nilai, jadi nama yang salah eja mencapai Claude seperti yang ditulis daripada menghasilkan kesalahan. Nilai yang sama menetapkan bahasa untuk [voice dictation](/docs/id/voice-dictation#change-the-dictation-language), yang memiliki daftar tetap [bahasa dictation yang didukung](/docs/id/voice-dictation#change-the-dictation-language), dan untuk judul sesi yang dibuat secara otomatis.1074Buat Claude merespons dalam bahasa selain Inggris secara default. Tidak ada daftar tetap untuk respons: Claude Code meneruskan nilai secara harfiah ke Claude sebagai instruksi untuk selalu merespons dalam bahasa itu, jadi nama bahasa apa pun yang dapat dibaca Claude berfungsi. Claude Code tidak memeriksa nilai, jadi nama yang salah eja mencapai Claude seperti yang ditulis daripada menghasilkan kesalahan. Nilai yang sama menetapkan bahasa untuk [voice dictation](/docs/id/voice-dictation#change-the-dictation-language), yang memiliki daftar tetap [bahasa dictation yang didukung](/docs/id/voice-dictation#change-the-dictation-language), dan untuk judul sesi yang dibuat secara otomatis.

1019 1075 

1020* **Scope**: [`Any file`](#scopes)1076* **Scope**: [`Any file`](#scopes)

1021* **Type**: string, nama bahasa apa pun, seperti `"japanese"`, `"spanish"`, atau `"french"`; Claude Code tidak memvalidasinya1077* **Type**: string, nama bahasa apa pun, seperti `"japanese"`, `"spanish"`, atau `"french"`; Claude Code tidak memvalidasinya

1022* **Default**: tidak diatur; judul sesi kemudian cocok dengan bahasa percakapan Anda1078* **Default**: tidak disetel; judul sesi kemudian cocok dengan bahasa percakapan Anda

1023 1079 

1024```json settings.json theme={null}1080```json settings.json theme={null}

1025{1081{


1031 `maxEffortLevel`1087 `maxEffortLevel`

1032</h3>1088</h3>

1033 1089 

1034Batasi [effort level](/docs/id/model-config#adjust-effort-level) yang dapat digunakan sesi, meninggalkan level yang lebih rendah tersedia. Level yang lebih tinggi apa pun berjalan pada batas sebagai gantinya, termasuk dari `/effort`, pemilih `/model`, `--effort`, [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/id/env-vars), frontmatter `effort` skill atau subagent, atau default model itu sendiri. Claude Code menerapkan batas itu sendiri sebelum setiap permintaan, jadi itu berlaku pada setiap penyedia, termasuk Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry. Memerlukan Claude Code v2.1.267 atau lebih baru.1090Batasi [tingkat effort](/docs/id/model-config#adjust-effort-level) yang dapat digunakan sesi, meninggalkan level yang lebih rendah tersedia. Level yang lebih tinggi apa pun berjalan pada batas sebagai gantinya, termasuk dari `/effort`, pemilih `/model`, `--effort`, [`CLAUDE_CODE_EFFORT_LEVEL`](/docs/id/env-vars), frontmatter `effort` skill atau subagent, atau default model itu sendiri. Claude Code menerapkan batas itu sendiri sebelum setiap permintaan, jadi itu berlaku pada setiap penyedia, termasuk Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry. Memerlukan Claude Code v2.1.267 atau lebih baru.

1035 1091 

1036* **Scope**: [`Any file`](#scopes). Terapkan dalam pengaturan terkelola untuk memberlakukannya untuk organisasi. Ketika beberapa scope menetapkan batas, yang terendah berlaku, jadi batas yang ditetapkan dalam satu scope tidak dapat dinaikkan dari scope lain1092* **Scope**: [`Any file`](#scopes). Terapkan dalam pengaturan terkelola untuk memberlakukannya untuk organisasi. Ketika beberapa scope menetapkan batas, yang terendah berlaku, jadi batas yang ditetapkan dalam satu scope tidak dapat dinaikkan dari scope lain

1037* **Type**: string, salah satu dari `"low"`, `"medium"`, `"high"`, `"xhigh"`, atau `"max"`. Nilai `"max"` tidak menetapkan batas1093* **Type**: string, salah satu dari `"low"`, `"medium"`, `"high"`, `"xhigh"`, atau `"max"`. Nilai `"max"` tidak menetapkan batas

1038* **Default**: tidak diatur, jadi tidak ada batas yang berlaku1094* **Default**: tidak disetel, jadi tidak ada batas yang berlaku

1039* **Effect on ultracode**: batas di bawah `xhigh` membuat [ultracode](#ultracode) tidak tersedia pada model yang batas berlaku1095* **Per-model caps**: tambahkan `maxEffortLevel` ke entri [`modelSettings`](#modelsettings) model. Entri itu menggantikan kunci ini untuk model saja dalam sumber pengaturan yang menetapkan keduanya, seperti pengaturan pengguna Anda atau satu [sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources). Tetapkan `"max"` di sana untuk mengecualikan model dari batas sumber itu; Claude Code masih menerapkan batas dari sumber lain

1040* **Per-model caps**: tambahkan `maxEffortLevel` ke entri [`modelSettings`](#modelsettings) model. Entri itu menggantikan kunci ini untuk model saja dalam sumber pengaturan yang menetapkan keduanya, seperti pengaturan pengguna Anda atau satu [sumber terkelola](/docs/id/managed-settings#how-claude-code-combines-managed-sources). Atur `"max"` di sana untuk mengecualikan model dari batas sumber itu; Claude Code masih menerapkan batas dari sumber lain

1041 1096 

1042Contoh ini membatasi setiap model pada `medium` dan mengecualikan Sonnet 4.6:1097Contoh ini membatasi setiap model pada `medium` dan mengecualikan Sonnet 4.6:

1043 1098 


1052}1107}

1053```1108```

1054 1109 

1055Ketika organisasi Anda juga menetapkan [batas effort](/docs/id/model-config#organization-effort-limits) untuk model, batas yang lebih rendah dari dua batas berlaku.1110Ketika organisasi Anda juga menetapkan [batas effort](/docs/id/model-config#organization-effort-limits) untuk model, batas yang lebih rendah dari keduanya berlaku.

1056 1111 

1057<h3 id="model">1112<h3 id="model">

1058 `model`1113 `model`

1059</h3>1114</h3>

1060 1115 

1061Atur model yang digunakan setiap sesi baru, jadi Anda tidak harus memilih satu dengan `/model` setiap kali. Menetapkannya di sini tidak menghentikan Anda dari beralih di tengah sesi. Jika admin Anda menetapkan [model default organisasi](/docs/id/model-config#organization-default-model) untuk mengesampingkan pilihan pengguna, Anda mendapatkan model itu bahkan ketika Anda menetapkan kunci ini dalam pengaturan pengguna, proyek, atau lokal.1116Tetapkan model yang digunakan setiap sesi baru, jadi Anda tidak harus memilih satu dengan `/model` setiap kali. Menetapkannya di sini tidak menghentikan Anda dari beralih di tengah sesi. Jika admin Anda menetapkan [model default organisasi](/docs/id/model-config#organization-default-model) untuk mengesampingkan pilihan pengguna, Anda mendapatkan model itu bahkan ketika Anda menetapkan kunci ini dalam pengaturan pengguna, proyek, atau lokal.

1062 1117 

1063* **Scope**: [`Any file`](#scopes)1118* **Scope**: [`Any file`](#scopes)

1064* **Type**: string, alias model atau ID model lengkap1119* **Type**: string, alias model atau ID model lengkap

1065* **Default**: tidak diatur, jadi Claude Code menggunakan model default akun Anda1120* **Default**: tidak disetel, jadi Claude Code menggunakan model default akun Anda

1066* **Per-session overrides**: `--model` mengambil alih [`ANTHROPIC_MODEL`](/docs/id/env-vars), dan keduanya mengambil alih kunci ini untuk satu sesi, termasuk atas `model` terkelola; daftar [`availableModels`](#availablemodels) masih berlaku untuk pilihan1121* **Per-session overrides**: `--model` mengambil alih [`ANTHROPIC_MODEL`](/docs/id/env-vars), dan keduanya mengambil alih kunci ini untuk satu sesi, termasuk atas `model` terkelola; daftar [`availableModels`](#availablemodels) masih berlaku untuk pilihan

1067 1122 

1068```json settings.json theme={null}1123```json settings.json theme={null}


1081 1136 

1082* **Scope**: [`Any file`](#scopes)1137* **Scope**: [`Any file`](#scopes)

1083* **Type**: object memetakan ID model ke ID model penyedia1138* **Type**: object memetakan ID model ke ID model penyedia

1084* **Default**: tidak diatur1139* **Default**: tidak disetel

1085 1140 

1086Contoh ini merutekan setiap panggilan untuk Opus 4.6 ke profil inferensi Bedrock bernama:1141Contoh ini merutekan setiap panggilan untuk Opus 4.6 ke profil inferensi Bedrock bernama:

1087 1142 


1099 `modelPicker`1154 `modelPicker`

1100</h3>1155</h3>

1101 1156 

1102Daftar model yang ditawarkan pemilih `/model`, dalam urutan yang Anda tulis dan di bawah label yang Anda pilih, jadi pemilih mencantumkan model yang dijalankan organisasi Anda, setelah lineup bawaan atau sebagai gantinya. `model` setiap baris diambil secara verbatim, jadi menerima apa pun yang diterima `--model`: alias seperti `opus`, ID model Anthropic, atau ID format penyedia untuk Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, atau gateway LLM. Memerlukan Claude Code v2.1.242 atau lebih baru.1157Daftar model yang ditawarkan pemilih `/model`, dalam urutan yang Anda tulis dan di bawah label yang Anda pilih, jadi pemilih mencantumkan model yang dijalankan organisasi Anda, setelah barisan bawaan atau sebagai gantinya. `model` setiap baris diambil secara harfiah, jadi itu menerima apa pun yang diterima `--model`: alias seperti `opus`, ID model Anthropic, atau ID format penyedia untuk Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, atau gateway LLM. Memerlukan Claude Code v2.1.242 atau lebih baru.

1103 1158 

1104* **Scope**: [`User or managed`](#scopes). Claude Code membaca kunci dari pengaturan terkelola, `--settings`, dan pengaturan pengguna, dan mengabaikannya dalam pengaturan proyek dan lokal jadi repositori yang Anda klon tidak dapat memberi label ulang pemilih. Yang tertinggi dari ketiga itu yang menetapkan kunci memasok seluruh lineup, dan Claude Code tidak pernah menggabungkan lineup dari dua sumber.1159* **Scope**: [`User or managed`](#scopes). Claude Code membaca kunci dari pengaturan terkelola, `--settings`, dan pengaturan pengguna, dan mengabaikannya dalam pengaturan proyek dan lokal jadi repositori yang Anda klon tidak dapat memberi label ulang pemilih. Yang tertinggi dari ketiga itu yang menetapkan kunci memasok seluruh barisan, dan Claude Code tidak pernah menggabungkan barisan dari dua sumber.

1105* **Type**: object dengan array `options` dari baris dan Boolean `replaceBuiltInOptions` opsional1160* **Type**: object dengan array `options` dari baris dan Boolean `replaceBuiltInOptions` opsional

1106* **Default**: tidak diatur, jadi pemilih menampilkan lineup bawaan1161* **Default**: tidak disetel, jadi pemilih menunjukkan barisan bawaan

1107 1162 

1108Contoh ini menambahkan dua deployment Bedrock setelah lineup bawaan, di bawah nama yang dikenali tim Anda:1163Contoh ini menambahkan dua deployment Bedrock setelah barisan bawaan, di bawah nama yang dikenali tim Anda:

1109 1164 

1110```json managed-settings.json theme={null}1165```json managed-settings.json theme={null}

1111{1166{


1127<span id="modelpicker-replacebuiltinoptions" />1182<span id="modelpicker-replacebuiltinoptions" />

1128 1183 

1129<h4 id="fields-for-modelpicker">1184<h4 id="fields-for-modelpicker">

1130 Fields untuk `modelPicker`1185 Bidang untuk `modelPicker`

1131</h4>1186</h4>

1132 1187 

1133Kunci mengambil dua field, satu untuk baris itu sendiri dan satu untuk apakah mereka menggantikan lineup bawaan atau menambahnya.1188Kunci mengambil dua bidang, satu untuk baris itu sendiri dan satu untuk apakah mereka menggantikan barisan bawaan atau menambahnya.

1134 1189 

1135| Field | Type | Apa yang dilakukannya |1190| Bidang | Tipe | Apa yang dilakukannya |

1136| :- | :- | :- |1191| :- | :- | :- |

1137| `options` | array baris, masing-masing dengan `model` yang diperlukan dan `label` dan `description` opsional | Baris yang ditampilkan pemilih, dalam urutan ini, kecuali baris yang digelapkan bergerak ke bawah. Tanpa `label`, Claude Code memberi judul baris dengan nama bawaan untuk model yang diketahuinya, atau ID model sebaliknya, dan tanpa `description` itu menulis baris kedua generik |1192| `options` | array baris, masing-masing dengan `model` yang diperlukan dan `label`, `description`, dan `behavesAs` opsional | Baris yang ditunjukkan pemilih, dalam urutan ini, kecuali baris yang diarsir pindah ke bawah. Tanpa `label`, Claude Code memberi judul baris dengan nama bawaan untuk model yang diketahuinya, atau ID model sebaliknya, dan tanpa `description` itu menulis baris kedua generik |

1138| `replaceBuiltInOptions` | Boolean, default `false` | Atur ke `true` untuk menampilkan hanya baris ini, **Default**, dan baris untuk model yang sudah digunakan sesi. Biarkan tidak diatur untuk menambahkan baris ini setelah lineup bawaan |1193| `replaceBuiltInOptions` | Boolean, default `false` | Tetapkan ke `true` untuk menunjukkan hanya baris ini, **Default**, dan baris untuk model yang sudah digunakan sesi. Biarkan tidak disetel untuk menambahkan baris ini setelah barisan bawaan |

1194 

1195Entri dalam `options` juga dapat membawa `behavesAs` string opsional di samping `model` nya, yang memerlukan v2.1.257 atau lebih baru. Tetapkan ke ID model yang sudah diketahui versi Claude Code Anda, seperti `claude-opus-4-8`, pada entri yang `model` nya lebih baru dari versi Anda. Claude Code kemudian menerapkan kemampuan model yang diketahui itu dan default effort ke entri daripada memperlakukan modelnya sebagai tidak dikenal. Label entri dan ID model yang dikirim Claude Code dalam permintaan tidak berubah.

1139 1196 

1140Dengan `replaceBuiltInOptions` aktif, Claude Code menyembunyikan setiap baris lain: lineup bawaan, baris yang ditambahkannya untuk entri [`availableModels`](#availablemodels), model yang ditemukan [gateway discovery](/docs/id/llm-gateway-protocol#model-discovery), dan [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/id/model-config#add-a-custom-model-option). Dengan itu mati, Claude Code melewati model yang tercantum yang sudah dicakup lineup bawaan. Label mengubah apa yang ditampilkan pemilih, bukan model mana yang dijalankan Claude Code.1197Dengan `replaceBuiltInOptions` aktif, Claude Code menyembunyikan setiap baris lain: barisan bawaan, baris yang ditambahkannya untuk entri [`availableModels`](#availablemodels), model yang ditemukan [penemuan gateway](/docs/id/llm-gateway-protocol#model-discovery), dan [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/id/model-config#add-a-custom-model-option). Dengan itu mati, Claude Code melewati model yang tercantum yang sudah dicakup barisan bawaan. Label mengubah apa yang ditunjukkan pemilih, bukan model mana yang dijalankan Claude Code.

1141 1198 

1142Daftar allowlist [`availableModels`](#availablemodels) masih berlaku untuk baris ini. Sebelum Anda menambahkan model yang tercantum ke allowlist, baca [Merge behavior](/docs/id/model-config#merge-behavior): ID model tertentu mempersempit entri wildcard keluarganya. Claude Code juga memeriksa setiap baris terhadap sesi sebelum menampilkan pemilih:1199Daftar [`availableModels`](#availablemodels) masih berlaku untuk baris ini. Sebelum Anda menambahkan model yang tercantum ke daftar, baca [Perilaku penggabungan](/docs/id/model-config#merge-behavior): ID model tertentu mempersempit entri wildcard keluarganya. Claude Code juga memeriksa setiap baris terhadap sesi sebelum menunjukkan pemilih:

1143 1200 

1144* **Dropped**: baris yang tidak dapat disajikan Claude Code, seperti model yang pensiun atau model yang tidak memiliki akses organisasi Anda1201* **Dijatuhkan**: baris yang tidak dapat disajikan Claude Code, seperti model yang pensiun atau model yang tidak memiliki akses organisasi Anda

1145* **Grayed out**: baris yang tidak dapat Anda pilih belum, ditampilkan dengan alasannya1202* **Diarsir**: baris yang tidak dapat Anda pilih belum, ditampilkan dengan alasan

1146* **No row survives**: Claude Code menyimpan lineup bawaan, disaring oleh allowlist seperti biasa1203* **Tidak ada baris yang bertahan**: Claude Code menyimpan barisan bawaan, disaring oleh daftar seperti biasa

1147 1204 

1148Claude Code menjatuhkan baris yang tidak dapat diuraikan dan menyimpan sisanya. Lihat [Perbaiki file pengaturan yang rusak](/docs/id/settings#fix-a-broken-settings-file).1205Claude Code menjatuhkan baris yang tidak dapat diuraikan dan menyimpan sisanya. Lihat [Perbaiki file pengaturan yang rusak](/docs/id/settings#fix-a-broken-settings-file).

1149 1206 


1151 `modelPricing`1208 `modelPricing`

1152</h3>1209</h3>

1153 1210 

1154Laporkan pengeluaran pada tarif yang dibayar organisasi Anda daripada harga daftar. Atur ketika organisasi Anda memiliki tarif kontrak, jadi angka dolar yang dilihat pengembang cocok dengan tagihan Anda. Claude Code menerapkan tarif di `/usage`, [baris status](/docs/id/statusline), `total_cost_usd` Agent SDK, batas [`--max-budget-usd`](/docs/id/cli-reference), dan [OpenTelemetry](/docs/id/monitoring-usage) metrik biaya dan acara. Anda memasok tarif: Claude Code tidak membacanya dari kontrak atau Claude Console Anda. Memerlukan Claude Code v2.1.242 atau lebih baru.1211Laporkan pengeluaran pada tarif yang dibayar organisasi Anda daripada harga daftar. Tetapkan ketika organisasi Anda memiliki tarif kontrak, jadi angka dolar yang dilihat pengembang cocok dengan tagihan Anda. Claude Code menerapkan tarif dalam `/usage`, [baris status](/docs/id/statusline), `total_cost_usd` Agent SDK, batas [`--max-budget-usd`](/docs/id/cli-reference), dan [OpenTelemetry](/docs/id/monitoring-usage) metrik biaya dan acara. Anda memasok tarif: Claude Code tidak membacanya dari kontrak atau Claude Console Anda. Memerlukan Claude Code v2.1.242 atau lebih baru.

1155 1212 

1156* **Scope**: [`Managed`](#scopes). Terapkan kunci melalui pengaturan terkelola server, kebijakan MDM, file `managed-settings.json`, atau [helper kebijakan](/docs/id/managed-settings#compute-the-policy-with-a-helper-program). Claude Code mengabaikannya dalam pengaturan pengguna, proyek, dan lokal, di `--settings`, dan di Windows dalam [registri HKCU](/docs/id/managed-settings#where-each-mechanism-stores-the-policy) yang dapat ditulis pengguna. Dengan pengaturan terkelola server, setiap sesi melaporkan biaya pada harga daftar sampai [pengambilan pengaturan](/docs/id/server-managed-settings#fetch-and-caching-behavior) sesi itu telah mengkonfirmasi pengaturan. Aplikasi host yang menyematkan Claude Code dan menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars) dapat memasok tabel miliknya sendiri melalui opsi SDK [`managedSettings`](/docs/id/agent-sdk/typescript#options), yang Claude Code gunakan hanya ketika tidak ada sumber terkelola yang menetapkan kunci dan hanya dalam Claude Code v2.1.246 atau lebih baru.1213* **Scope**: [`Managed`](#scopes). Terapkan kunci melalui pengaturan terkelola server, kebijakan MDM, file `managed-settings.json`, atau [pembantu kebijakan](/docs/id/managed-settings#compute-the-policy-with-a-helper-program). Claude Code mengabaikannya dalam pengaturan pengguna, proyek, dan lokal, dalam `--settings`, dan di Windows dalam [registri HKCU](/docs/id/managed-settings#where-each-mechanism-stores-the-policy) yang dapat ditulis pengguna. Dengan pengaturan terkelola server, setiap sesi melaporkan biaya pada harga daftar sampai [pengambilan pengaturan](/docs/id/server-managed-settings#fetch-and-caching-behavior) sesi itu telah mengkonfirmasi pengaturan. Aplikasi host yang menyematkan Claude Code dan menetapkan [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/id/env-vars) dapat memasok tabel miliknya sendiri melalui opsi SDK [`managedSettings`](/docs/id/agent-sdk/typescript#options), yang Claude Code gunakan hanya ketika tidak ada sumber terkelola yang menetapkan kunci dan hanya dalam Claude Code v2.1.246 atau lebih baru.

1157* **Type**: object dengan `multiplier` opsional dan peta `overrides` opsional1214* **Type**: object dengan `multiplier` opsional dan peta `overrides` opsional

1158* **Default**: tidak diatur, jadi Claude Code melaporkan harga daftar kecuali aplikasi host memasok tabel1215* **Default**: tidak disetel, jadi Claude Code melaporkan harga daftar kecuali aplikasi host memasok tabel

1159 1216 

1160Atur `multiplier` saja untuk diskon datar atau markup, `overrides` saja untuk tarif per model, atau keduanya.1217Tetapkan `multiplier` saja untuk diskon atau markup datar, `overrides` saja untuk tarif per model, atau keduanya.

1161 1218 

1162Contoh ini menetapkan tarif kontrak untuk Sonnet 4.6 dan kemudian mengurangi setiap angka, baris Sonnet disertakan, sebesar 15%:1219Contoh ini menetapkan tarif kontrak untuk Sonnet 4.6 dan kemudian mengurangi setiap angka, baris Sonnet disertakan, sebesar 15%:

1163 1220 


1177}1234}

1178```1235```

1179 1236 

1180Atur `multiplier` di atas 1, hingga 10, untuk menandai setiap angka. Markup memerlukan Claude Code v2.1.271 atau lebih baru. Versi sebelumnya mengabaikan `multiplier` di atas 1 dengan peringatan dan menyimpan sisa pengaturan.1237Tetapkan `multiplier` di atas 1, hingga 10, untuk menandai setiap angka. Markup memerlukan Claude Code v2.1.271 atau lebih baru. Versi yang lebih awal mengabaikan `multiplier` di atas 1 dengan peringatan dan menyimpan sisa pengaturan.

1181 1238 

1182Untuk langkah-langkahnya, termasuk cara mengkonfirmasi tarif berlaku, lihat [Laporkan pengeluaran pada tarif kontrak Anda](/docs/id/costs#report-spend-at-your-contracted-rates).1239Untuk langkah-langkahnya, termasuk cara mengkonfirmasi tarif berlaku, lihat [Laporkan pengeluaran pada tarif kontrak Anda](/docs/id/costs#report-spend-at-your-contracted-rates).

1183 1240 


1186<span id="modelpricing-overrides" />1243<span id="modelpricing-overrides" />

1187 1244 

1188<h4 id="fields-for-modelpricing">1245<h4 id="fields-for-modelpricing">

1189 Fields untuk `modelPricing`1246 Bidang untuk `modelPricing`

1190</h4>1247</h4>

1191 1248 

1192| Field | Type | Apa yang dilakukannya |1249| Bidang | Tipe | Apa yang dilakukannya |

1193| :- | :- | :- |1250| :- | :- | :- |

1194| `multiplier` | angka lebih besar dari 0 dan paling banyak 10 | Menskalakan setiap biaya yang dihitung Claude Code, apakah baris `overrides` mencakupnya atau tidak. Di bawah 1 adalah diskon, di atas 1 adalah markup |1251| `multiplier` | angka lebih besar dari 0 dan paling banyak 10 | Menskalakan setiap biaya yang dihitung Claude Code, apakah baris `overrides` mencakupnya atau tidak. Di bawah 1 adalah diskon, di atas 1 markup |

1195| `overrides` | peta ID model ke objek tarif dengan `input`, `output`, `cacheRead`, dan `cacheWrite`, masing-masing 0 hingga 10000 | Tarif USD-per-juta-token untuk model itu, keempat diperlukan. `cacheWrite` mencakup penulisan cache lima menit dan satu jam. Lihat [Model mana yang berlaku baris modelPricing](#which-models-a-modelpricing-row-applies-to) |1252| `overrides` | peta ID model ke objek tarif dengan `input`, `output`, `cacheRead`, dan `cacheWrite`, masing-masing 0 hingga 10000 | Tarif USD-per-juta-token untuk model itu, keempat diperlukan. `cacheWrite` mencakup penulisan cache lima menit dan satu jam. Lihat [Model mana yang berlaku baris modelPricing](#which-models-a-modelpricing-row-applies-to) |

1196 1253 

1197Claude Code menggunakan tarif baris persis seperti yang Anda tulis, tanpa menambahkan surcharge fast-mode atau [tarif inferensi hanya-AS](https://platform.claude.com/docs/en/about-claude/pricing). Jika Anda juga menetapkan `multiplier`, Claude Code menerapkannya di atas tarif baris. Claude Code menjatuhkan baris dengan tarif yang tidak dapat diuraikan, atau `multiplier` yang tidak dapat diuraikan, dan menyimpan sisanya; lihat [Perbaiki file pengaturan yang rusak](/docs/id/settings#fix-a-broken-settings-file).1254Claude Code menggunakan tarif baris persis seperti yang Anda tulis, tanpa menambahkan surcharge fast-mode atau [tarif inferensi hanya AS](https://platform.claude.com/docs/en/about-claude/pricing). Jika Anda juga menetapkan `multiplier`, Claude Code menerapkannya di atas tarif baris. Claude Code menjatuhkan baris dengan tarif yang tidak dapat diuraikan, atau `multiplier` yang tidak dapat diuraikan, dan menyimpan sisanya; lihat [Perbaiki file pengaturan yang rusak](/docs/id/settings#fix-a-broken-settings-file).

1198 1255 

1199<h4 id="which-models-a-modelpricing-row-applies-to">1256<h4 id="which-models-a-modelpricing-row-applies-to">

1200 Model mana yang berlaku baris `modelPricing`1257 Model mana yang berlaku baris `modelPricing`


1202 1259 

1203Claude Code memutuskan model mana yang berlaku baris dari kunci baris:1260Claude Code memutuskan model mana yang berlaku baris dari kunci baris:

1204 1261 

1205* **ID model bawaan**: kunci yang digunakan Claude Code itu sendiri untuk model bawaan, apakah kunci itu ID model itu sendiri, seperti `claude-sonnet-4-6`, atau ID Bedrock, Agent Platform, atau Foundry-nya. Claude Code menerapkan baris ke setiap ID snapshot bertanggal dan ID khusus penyedia dari model itu.1262* **ID model bawaan**: kunci yang digunakan Claude Code itu sendiri untuk model bawaan, apakah kunci itu ID model itu sendiri, seperti `claude-sonnet-4-6`, atau ID Bedrock, Agent Platform, atau Foundry-nya. Claude Code menerapkan baris ke setiap ID snapshot tanggal dan ID khusus penyedia model itu.

1206* **Kunci lain apa pun**: kunci yang bukan ID model bawaan, seperti alias model gateway. Claude Code menerapkan baris ke ID itu saja. Ketika ID model cocok dengan salah satu kunci Anda persis dan juga jatuh di bawah baris yang dikunci oleh ID model bawaan, Claude Code menggunakan kecocokan persis.1263* **Kunci lain apa pun**: kunci yang bukan ID model bawaan, seperti alias model gateway. Claude Code menerapkan baris ke ID itu saja. Ketika ID model cocok dengan salah satu kunci Anda persis dan juga jatuh di bawah baris yang dikunci oleh ID model bawaan, Claude Code menggunakan kecocokan persis.

1207* **Profil inferensi aplikasi Bedrock**: setelah Claude Code telah menyelesaikan profil ke model yang dirutnya, melalui peta [`modelOverrides`](#modeloverrides) Anda atau pencarian [`bedrock:GetInferenceProfile`](/docs/id/amazon-bedrock#iam-configuration), Claude Code menerapkan baris model itu ke profil.1264* **Profil inferensi aplikasi Bedrock**: setelah Claude Code telah menyelesaikan profil ke model yang dirutekannya, melalui peta [`modelOverrides`](#modeloverrides) Anda atau pencarian [`bedrock:GetInferenceProfile`](/docs/id/amazon-bedrock#iam-configuration), Claude Code menerapkan baris model itu ke profil.

1208 1265 

1209<h3 id="modelsettings">1266<h3 id="modelsettings">

1210 `modelSettings`1267 `modelSettings`

1211</h3>1268</h3>

1212 1269 

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.1270Simpan [tingkat effort](/docs/id/model-config#adjust-effort-level) untuk setiap model yang Anda gunakan. Memerlukan Claude Code v2.1.251 atau lebih baru.

1214 1271 

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.1272Dalam 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 dalam [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 tempat `/effort` berlaku hanya untuk sesi itu.

1216 1273 

1217Edit kunci secara manual untuk mengubah atau menghapus level yang Anda simpan.1274Edit kunci dengan tangan untuk mengubah atau menghapus level yang Anda simpan.

1218 1275 

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.1276`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 tingkat effort](/docs/id/model-config#adjust-effort-level) mencantumkan apa lagi yang dapat mengesampingkan level yang disimpan, seperti `--effort` saat peluncuran.

1220 1277 

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.1278Untuk membatasi effort satu model daripada menetapkan levelnya, tambahkan bidang [`maxEffortLevel`](#maxeffortlevel) ke entri model itu. Bidang memerlukan Claude Code v2.1.267 atau lebih baru.

1222 1279 

1223* **Scope**: [`Any file`](#scopes)1280* **Scope**: [`Any file`](#scopes)

1224* **Type**: object memetakan nama model ke object dengan field `effortLevel`, salah satu dari `"low"`, `"medium"`, `"high"`, atau `"xhigh"`, field [`maxEffortLevel`](#maxeffortlevel), atau keduanya1281* **Type**: object memetakan nama model ke object dengan bidang `effortLevel`, salah satu dari `"low"`, `"medium"`, `"high"`, atau `"xhigh"`, bidang [`maxEffortLevel`](#maxeffortlevel), atau keduanya

1225* **Default**: tidak diatur1282* **Default**: tidak disetel

1226 1283 

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.1284Claude Code menulis setiap entri di bawah nama kanonik model, seperti `claude-opus-5-5`, dan mencocokkan alias model itu, tanggal-akhiran, `[1m]`, dan ID khusus penyedia yang dikenali ke entri yang sama.

1228 1285 

1229Contoh ini menyimpan Opus 5.5 pada `high` sementara model lain menggunakan level yang disimpan atau default mereka sendiri:1286Contoh ini menyimpan Opus 5.5 pada `high` sementara model lain menggunakan level yang disimpan atau default mereka sendiri:

1230 1287 


1244 `outputStyle`1301 `outputStyle`

1245</h3>1302</h3>

1246 1303 

1247Pilih [output style](/docs/id/output-styles) berdasarkan nama. Output style adalah set instruksi yang disimpan yang mengubah peran, nada, dan format output Claude, seperti style Explanatory dan Learning bawaan atau yang Anda tulis sendiri.1304Pilih [gaya output](/docs/id/output-styles) berdasarkan nama. Gaya output adalah set instruksi yang disimpan yang mengubah peran, nada, dan format output Claude, seperti gaya Explanatory dan Learning bawaan atau yang Anda tulis sendiri.

1248 1305 

1249Jika Anda mengubah kunci ini selama sesi, Claude menggunakan style baru mulai dari pesan Anda berikutnya. Untuk apa biaya pesan itu dalam prompt caching, lihat [Mengubah output style](/docs/id/prompt-caching#changing-output-style). Sebelum v2.1.251, edit hanya berlaku setelah Anda menjalankan `/clear` atau memulai sesi baru.1306Jika Anda mengubah kunci ini selama sesi, Claude menggunakan gaya baru mulai dari pesan Anda berikutnya. Untuk apa biaya pesan itu dalam prompt caching, lihat [Mengubah gaya output](/docs/id/prompt-caching#changing-output-style). Sebelum v2.1.251, edit berlaku hanya setelah Anda menjalankan `/clear` atau memulai sesi baru.

1250 1307 

1251* **Scope**: [`Any file`](#scopes)1308* **Scope**: [`Any file`](#scopes)

1252* **Type**: string, nama [bawaan](/docs/id/output-styles#built-in-output-styles) atau [custom](/docs/id/output-styles#create-a-custom-output-style) output style1309* **Type**: string, nama [bawaan](/docs/id/output-styles#built-in-output-styles) atau [kustom](/docs/id/output-styles#create-a-custom-output-style) gaya output

1253* **Default**: tidak diatur, jadi Claude Code menggunakan style default1310* **Default**: tidak disetel, jadi Claude Code menggunakan gaya default

1254 1311 

1255Contoh ini memilih style Explanatory bawaan, yang menambahkan wawasan pendidikan antara tugas:1312Contoh ini memilih gaya Explanatory bawaan, yang menambahkan wawasan pendidikan antara tugas:

1256 1313 

1257```json settings.json theme={null}1314```json settings.json theme={null}

1258{1315{


1264 `promptCacheTtl`1321 `promptCacheTtl`

1265</h3>1322</h3>

1266 1323 

1267Pilih berapa lama [prompt cache](/docs/id/prompt-caching) menyimpan percakapan utama. Kunci ini berlaku untuk giliran interaktif, `-p`, dan Agent SDK Anda, bersama dengan helper yang dijalankan Claude Code secara inline dengannya. Lifetime satu jam menjaga cache tetap hangat di seluruh jeda yang lebih lama, dan API [menagih setiap penulisan cache pada tarif yang lebih tinggi](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) daripada lifetime lima menit. Memerlukan Claude Code v2.1.242 atau lebih baru.1324Pilih berapa lama [prompt cache](/docs/id/prompt-caching) menyimpan percakapan utama. Kunci ini berlaku untuk giliran interaktif, `-p`, dan Agent SDK Anda, bersama dengan pembantu yang dijalankan Claude Code secara inline dengannya. Masa pakai satu jam menjaga cache tetap hangat di seluruh jeda yang lebih lama, dan API [menagih setiap penulisan cache pada tarif yang lebih tinggi](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) daripada masa pakai lima menit. Memerlukan Claude Code v2.1.242 atau lebih baru.

1268 1325 

1269* **Scope**: [`Any file`](#scopes)1326* **Scope**: [`Any file`](#scopes)

1270* **Type**: string, salah satu dari:1327* **Type**: string, salah satu dari:

1271 * `"5m"`: cache menyimpan selama lima menit1328 * `"5m"`: cache menyimpan selama lima menit

1272 * `"1h"`: cache menyimpan selama satu jam1329 * `"1h"`: cache menyimpan selama satu jam

1273* **Default**: tidak diatur, jadi setiap permintaan percakapan utama mendapat [lifetime defaultnya](/docs/id/prompt-caching#which-ttl-each-request-gets)1330* **Default**: tidak disetel, jadi setiap permintaan percakapan utama mendapat [masa pakai defaultnya](/docs/id/prompt-caching#which-ttl-each-request-gets)

1274* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](/docs/id/env-vars) mengambil alih segalanya, kemudian [`CLAUDE_CODE_PROMPT_CACHE_TTL`](/docs/id/env-vars), kemudian kunci ini, dan terakhir [`ENABLE_PROMPT_CACHING_1H`](/docs/id/env-vars)1331* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](/docs/id/env-vars) mengambil alih segalanya, kemudian [`CLAUDE_CODE_PROMPT_CACHE_TTL`](/docs/id/env-vars), kemudian kunci ini, dan terakhir [`ENABLE_PROMPT_CACHING_1H`](/docs/id/env-vars)

1275 1332 

1276Contoh ini menyimpan percakapan utama pada lifetime satu jam dan meninggalkan subagents pada lima menit:1333Contoh ini menyimpan percakapan utama pada masa pakai satu jam dan meninggalkan subagents pada lima menit:

1277 1334 

1278```json settings.json theme={null}1335```json settings.json theme={null}

1279{1336{


1282}1339}

1283```1340```

1284 1341 

1285Untuk apa biaya setiap lifetime, lihat [Cache lifetime](/docs/id/prompt-caching#cache-lifetime).1342Untuk apa biaya setiap masa pakai, lihat [Masa pakai cache](/docs/id/prompt-caching#cache-lifetime).

1286 1343 

1287<h3 id="showthinkingsummaries">1344<h3 id="showthinkingsummaries">

1288 `showThinkingSummaries`1345 `showThinkingSummaries`

1289</h3>1346</h3>

1290 1347 

1291Lihat ringkasan [extended thinking](/docs/id/model-config#extended-thinking) Claude dalam sesi interaktif. Atur jika Anda menginginkan ringkasan lengkap ketika Anda memperluas thinking dengan `Ctrl+O`. Ketika tidak diatur atau `false`, Anthropic API menyensor blok thinking dan Claude Code menampilkan stub yang runtuh; penyedia pihak ketiga tidak menyensor.1348Lihat ringkasan [extended thinking](/docs/id/model-config#extended-thinking) Claude dalam sesi interaktif. Tetapkan jika Anda menginginkan ringkasan lengkap ketika Anda memperluas thinking dengan `Ctrl+O`. Ketika tidak disetel atau `false`, Anthropic API menyensor blok thinking dan Claude Code menunjukkan stub yang runtuh; penyedia pihak ketiga tidak menyensor.

1292 1349 

1293* **Scope**: [`Any file`](#scopes)1350* **Scope**: [`Any file`](#scopes)

1294* **Type**: Boolean1351* **Type**: Boolean

1295 * `true`: Anda melihat ringkasan thinking lengkap ketika Anda memperluas thinking dengan `Ctrl+O`1352 * `true`: Anda melihat ringkasan thinking lengkap ketika Anda memperluas thinking dengan `Ctrl+O`

1296 * `false`: Anthropic API menyensor blok thinking dan Claude Code menampilkan stub yang runtuh1353 * `false`: Anthropic API menyensor blok thinking dan Claude Code menunjukkan stub yang runtuh

1297* **Default**: `false`1354* **Default**: `false`

1298 1355 

1299```json settings.json theme={null}1356```json settings.json theme={null}


1302}1359}

1303```1360```

1304 1361 

1305Penyensoran hanya mengubah apa yang Anda lihat, bukan apa yang dihasilkan model. Untuk mengurangi pengeluaran thinking, [turunkan anggaran atau matikan thinking](/docs/id/model-config#extended-thinking) sebagai gantinya.1362Penyensoran mengubah hanya apa yang Anda lihat, bukan apa yang dihasilkan model. Untuk mengurangi pengeluaran thinking, [turunkan anggaran atau matikan thinking](/docs/id/model-config#extended-thinking) sebagai gantinya.

1306 1363 

1307<h3 id="subagentpromptcachettl">1364<h3 id="subagentpromptcachettl">

1308 `subagentPromptCacheTtl`1365 `subagentPromptCacheTtl`

1309</h3>1366</h3>

1310 1367 

1311Pilih berapa lama [prompt cache](/docs/id/prompt-caching) menyimpan permintaan yang dibuat Claude Code di luar percakapan utama. Kunci ini berlaku untuk [subagents](/docs/id/sub-agents), [workflows](/docs/id/workflows), dan permintaan background dan helper Claude Code sendiri, seperti compaction dan judul sesi. Lifetime satu jam menjaga cache tetap hangat di seluruh jeda yang lebih lama, dan API [menagih setiap penulisan cache pada tarif yang lebih tinggi](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) daripada lifetime lima menit. Memerlukan Claude Code v2.1.242 atau lebih baru.1368Pilih berapa lama [prompt cache](/docs/id/prompt-caching) menyimpan permintaan yang dibuat Claude Code di luar percakapan utama. Kunci ini berlaku untuk [subagents](/docs/id/sub-agents), [workflows](/docs/id/workflows), dan permintaan latar belakang dan pembantu Claude Code sendiri, seperti pemadatan dan judul sesi. Masa pakai satu jam menjaga cache tetap hangat di seluruh jeda yang lebih lama, dan API [menagih setiap penulisan cache pada tarif yang lebih tinggi](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pricing) daripada masa pakai lima menit. Memerlukan Claude Code v2.1.242 atau lebih baru.

1312 1369 

1313* **Scope**: [`Any file`](#scopes)1370* **Scope**: [`Any file`](#scopes)

1314* **Type**: string, salah satu dari:1371* **Type**: string, salah satu dari:

1315 * `"5m"`: cache menyimpan selama lima menit1372 * `"5m"`: cache menyimpan selama lima menit

1316 * `"1h"`: cache menyimpan selama satu jam1373 * `"1h"`: cache menyimpan selama satu jam

1317* **Default**: tidak diatur, jadi setiap permintaan ini mendapat [lifetime defaultnya](/docs/id/prompt-caching#which-ttl-each-request-gets)1374* **Default**: tidak disetel, jadi setiap permintaan ini mendapat [masa pakai defaultnya](/docs/id/prompt-caching#which-ttl-each-request-gets)

1318* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](/docs/id/env-vars) mengambil alih segalanya, kemudian [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](/docs/id/env-vars), kemudian kunci ini, kemudian [`ENABLE_PROMPT_CACHING_1H`](/docs/id/env-vars), yang meminta lifetime satu jam pada setiap permintaan. Untuk di mana nilai frontmatter subagent sendiri berada, lihat [Pilih TTL sendiri](/docs/id/prompt-caching#choose-the-ttl-yourself)1375* **Per-session overrides**: [`FORCE_PROMPT_CACHING_5M`](/docs/id/env-vars) mengambil alih segalanya, kemudian [`CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL`](/docs/id/env-vars), kemudian kunci ini, kemudian [`ENABLE_PROMPT_CACHING_1H`](/docs/id/env-vars), yang meminta masa pakai satu jam pada setiap permintaan. Untuk di mana nilai frontmatter subagent sendiri berada, lihat [Pilih TTL sendiri](/docs/id/prompt-caching#choose-the-ttl-yourself)

1319 1376 

1320Contoh ini memberikan subagents dan permintaan lain di luar percakapan utama lifetime satu jam:1377Contoh ini memberikan subagents dan permintaan lain di luar percakapan utama masa pakai satu jam:

1321 1378 

1322```json settings.json theme={null}1379```json settings.json theme={null}

1323{1380{


1325}1382}

1326```1383```

1327 1384 

1328Kunci ini mencakup permintaan yang tidak dicakup [`promptCacheTtl`](#promptcachettl), jadi atur keduanya untuk memilih lifetime untuk setiap permintaan yang dibuat Claude Code. Untuk bagaimana cache subagent berbeda dari percakapan utama, lihat [Subagents dan cache](/docs/id/prompt-caching#subagents-and-the-cache).1385Kunci ini mencakup permintaan yang tidak dicakup [`promptCacheTtl`](#promptcachettl), jadi tetapkan keduanya untuk memilih masa pakai untuk setiap permintaan yang dibuat Claude Code. Untuk bagaimana cache subagent berbeda dari percakapan utama, lihat [Subagents dan cache](/docs/id/prompt-caching#subagents-and-the-cache).

1329 1386 

1330<h3 id="switchmodelsonflag">1387<h3 id="switchmodelsonflag">

1331 `switchModelsOnFlag`1388 `switchModelsOnFlag`


1333 1390 

1334Pilih apa yang terjadi ketika [pengklasifikasi keamanan menandai permintaan](/docs/id/model-config#automatic-model-fallback): beralih ke model fallback dan lanjutkan, atau jeda sehingga Anda dapat memilih antara beralih dan mengedit prompt.1391Pilih apa yang terjadi ketika [pengklasifikasi keamanan menandai permintaan](/docs/id/model-config#automatic-model-fallback): beralih ke model fallback dan lanjutkan, atau jeda sehingga Anda dapat memilih antara beralih dan mengedit prompt.

1335 1392 

1336* **Scope**: [`Any file`](#scopes). Muncul di `/config` sebagai **Switch models when a message is flagged**.1393* **Scope**: [`Any file`](#scopes). Muncul dalam `/config` sebagai **Switch models when a message is flagged**.

1337* **Type**: Boolean1394* **Type**: Boolean

1338 * `true`: Claude Code beralih ke model fallback dan lanjutkan1395 * `true`: Claude Code beralih ke model fallback dan lanjutkan

1339 * `false`: dalam sesi interaktif Claude Code berhenti sehingga Anda dapat memilih antara beralih dan mengedit prompt; di mana tidak ada dialog yang dapat ditampilkan, seperti jalankan `-p`, permintaan yang ditandai berakhir sebagai kesalahan1396 * `false`: dalam sesi interaktif Claude Code jeda sehingga Anda dapat memilih antara beralih dan mengedit prompt; di mana tidak ada dialog yang dapat ditampilkan, seperti jalankan `-p`, permintaan yang ditandai berakhir sebagai kesalahan

1340* **Default**: `true`, beralih secara otomatis1397* **Default**: `true`, beralih secara otomatis

1341 1398 

1342```json settings.json theme={null}1399```json settings.json theme={null}


1351 `ultracode`1408 `ultracode`

1352</h3>1409</h3>

1353 1410 

1354Mulai sesi dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) aktif. Dengan itu aktif, Claude merencanakan workflow untuk setiap tugas substansial daripada menunggu Anda meminta. Claude merencanakan workflow hanya ketika [dynamic workflows](/docs/id/workflows) diaktifkan untuk Anda, model Anda mendukung effort `xhigh`, dan tidak ada [effort cap](/docs/id/model-config#organization-effort-limits) di bawah `xhigh` yang berlaku. Bagaimanapun, `ultracode: true` menjalankan sesi pada effort `xhigh`, atau pada batas ketika batas effort lebih rendah. Claude Code membaca kunci ini tetapi tidak pernah menulisnya: `/effort ultracode` menghidupkan ultracode untuk sesi saat ini saja.1411Mulai sesi dengan [ultracode](/docs/id/workflows#let-claude-decide-with-ultracode) aktif. Dengan itu aktif, Claude merencanakan workflow untuk setiap tugas substansial daripada menunggu Anda meminta. Claude merencanakan workflows hanya ketika [dynamic workflows](/docs/id/workflows) diaktifkan untuk Anda dan model Anda mendukung effort `xhigh`. Kunci ini tidak mengubah tingkat effort sesi: ultracode berjalan pada level mana pun yang digunakan sesi. Claude Code membaca kunci ini tetapi tidak pernah menulisnya: `/effort ultracode` menghidupkan ultracode hanya untuk sesi saat ini.

1355 1412 

1356* **Scope**: [`Any file`](#scopes)1413* **Scope**: [`Any file`](#scopes)

1357* **Type**: Boolean1414* **Type**: Boolean

1358 * `true`: sesi dimulai pada effort `xhigh`, dengan ultracode aktif ketika dynamic workflows diaktifkan untuk Anda, model Anda mendukung `xhigh`, dan tidak ada effort cap di bawah `xhigh`1415 * `true`: sesi dimulai dengan ultracode aktif ketika dynamic workflows diaktifkan untuk Anda dan model Anda mendukung `xhigh`

1359 * `false`: sesi dimulai dengan ultracode mati1416 * `false`: sesi dimulai dengan ultracode mati

1360* **Default**: tidak diatur, jadi ultracode mati1417* **Default**: tidak disetel, jadi ultracode mati

1361* **Per-session overrides**: `/effort ultracode` menghidupkan ultracode untuk satu sesi tanpa kunci ini. Begitu juga `--effort ultracode`, yang memerlukan Claude Code v2.1.203 atau lebih baru1418* **Per-session overrides**: `/effort ultracode` menghidupkan ultracode untuk satu sesi tanpa kunci ini, dan `/effort ultracode off` mematikannya untuk satu sesi ketika kunci ini `true`. Bendera `--effort ultracode` juga menghidupkannya untuk satu sesi, pada effort `xhigh`, dan memerlukan Claude Code v2.1.203 atau lebih baru

1362 1419 

1363```json settings.json theme={null}1420```json settings.json theme={null}

1364{1421{


1366}1423}

1367```1424```

1368 1425 

1369Ultracode menjalankan sesi pada effort `xhigh` dan mengambil preseden atas `effortLevel` dan entri [`modelSettings`](#modelsettings). Jika [effort cap](/docs/id/model-config#organization-effort-limits) di bawah `xhigh` berlaku untuk model, seperti pengaturan [`maxEffortLevel`](#maxeffortlevel), sesi berjalan pada batas sebagai gantinya dan ultracode tetap mati. Claude kemudian tidak merencanakan workflow dengan sendirinya, dan `/effort` tidak menawarkan `ultracode`. Permintaan kontrol `apply_flag_settings` Agent SDK juga menerima kunci.1426Tingkat effort sesi berasal dari [`effortLevel`](#effortlevel), [`modelSettings`](#modelsettings), dan [sumber effort](/docs/id/model-config#adjust-effort-level) lainnya, dan [batas effort](/docs/id/model-config#organization-effort-limits) seperti [`maxEffortLevel`](#maxeffortlevel) menurunkan level itu tanpa mematikan ultracode. Ini dan bentuk `/effort ultracode off` memerlukan Claude Code v2.1.284 atau lebih baru. Sebelum v2.1.284, `ultracode: true` menjalankan sesi pada effort `xhigh`, dan batas effort di bawah `xhigh` membuat ultracode tidak tersedia. Permintaan kontrol `apply_flag_settings` Agent SDK juga menerima kunci.

1370 1427 

1371<h2 id="permission-settings">1428<h2 id="permission-settings">

1372 Pengaturan izin1429 Pengaturan izin


1489 `useAutoModeDuringPlan`1546 `useAutoModeDuringPlan`

1490</h3>1547</h3>

1491 1548 

1492Pilih apakah Claude Code menggunakan pengklasifikasi mode otomatis untuk meninjau perintah shell dalam mode rencana. Dengan default `true`, pengklasifikasi meninjau setiap perintah selama perencanaan ketika mode otomatis tersedia dan Anda tidak melihat prompt. Atur `false` untuk mendapatkan prompt izin untuk setiap perintah di luar set bawaan hanya-baca. Muncul dalam `/config` sebagai **Use auto mode during plan**.1549Pilih apakah Claude Code menggunakan pengklasifikasi mode otomatis untuk meninjau perintah shell dalam mode rencana. Dengan default `true`, pengklasifikasi meninjau setiap perintah selama perencanaan ketika mode otomatis tersedia dan Anda tidak melihat prompt, kecuali untuk [penghapusan jalur kritis](/docs/id/permission-modes#critical-paths). Atur `false` untuk mendapatkan prompt izin untuk setiap perintah di luar set bawaan hanya-baca. Muncul dalam `/config` sebagai **Use auto mode during plan**.

1493 1550 

1494* **Scope**: [`User, local, or managed`](#scopes). Repositori tidak dapat mematikannya untuk Anda.1551* **Scope**: [`User, local, or managed`](#scopes). Repositori tidak dapat mematikannya untuk Anda.

1495* **Type**: Boolean1552* **Type**: Boolean

1496 * `true`: sama dengan tidak diatur; ketika mode otomatis tersedia, pengklasifikasi meninjau setiap perintah shell selama perencanaan alih-alih meminta Anda. `false` di salah satu file ini masih mematikannya1553 * `true`: sama dengan tidak diatur; ketika mode otomatis tersedia, pengklasifikasi meninjau setiap perintah shell selama perencanaan alih-alih meminta Anda, kecuali [penghapusan jalur kritis](/docs/id/permission-modes#critical-paths). `false` di salah satu file ini masih mematikannya

1497 * `false`: Anda mendapatkan prompt izin untuk setiap perintah di luar set bawaan hanya-baca1554 * `false`: Anda mendapatkan prompt izin untuk setiap perintah di luar set bawaan hanya-baca

1498* **Default**: `true`1555* **Default**: `true`

1499 1556 


1619 `permissions.blockReadsOutsideWorkingDirectories`1676 `permissions.blockReadsOutsideWorkingDirectories`

1620</h3>1677</h3>

1621 1678 

1622Hentikan Claude dari membaca jalur di luar [direktori kerja](/docs/id/permissions#working-directories) sesi dengan alat Read, Grep, Glob, dan LSP, dalam setiap mode izin termasuk `bypassPermissions`. Perintah Bash yang membaca jalur yang cocok melalui perintah file yang dikenali Claude Code, seperti `cat`, meminta Anda bahkan dalam mode otomatis dan mode `bypassPermissions`. Memerlukan Claude Code v2.1.257 atau lebih baru.1679Buat alat file Claude menolak pembacaan di luar [direktori kerja](/docs/id/permissions#working-directories) Anda dalam setiap mode izin, termasuk `bypassPermissions`. Claude Code menolak panggilan `Read`, `Grep`, `Glob`, dan `LSP` pada jalur tersebut dan memberi tahu Claude untuk meminta Anda menambahkan direktori dengan `/add-dir`. File yang dibutuhkan Claude Code sendiri tetap dapat dibaca, seperti keterampilan, plugin, aturan, agen, perintah Anda, dan file memori `CLAUDE.md` di bawah `~/.claude/`. Memerlukan Claude Code v2.1.257 atau lebih baru.

1680 

1681Claude Code tidak menolak perintah shell dengan cara yang sama:

1682 

1683* [Tindakan yang tidak ada mode auto-setujui](/docs/id/permission-modes#actions-no-mode-auto-approves) mencakup kapan perintah shell yang membaca jalur tersebut meminta Anda

1684* [Perintah sandboxed di bawah blokir](#sandboxed-commands-under-the-block) mencakup apa yang dapat dibaca perintah sandboxed

1623 1685 

1624Perintah Bash yang tidak dapat dilacak oleh parser shell, seperti yang mengubah direktori lebih dari sekali atau menjalankan subshell, meminta Anda bahkan dalam mode otomatis dan mode `bypassPermissions`. Prompt muncul bahkan ketika perintah tidak menamai jalur apa pun di luar direktori kerja. Prompt ini tidak berlaku ketika perintah berjalan dalam [sandbox](/docs/id/sandboxing) dan sandbox memberlakukan blokir.1686Perintah Bash yang tidak dapat dilacak oleh parser shell, seperti yang mengubah direktori lebih dari sekali atau menjalankan subshell, meminta Anda bahkan dalam mode otomatis dan mode `bypassPermissions`. Prompt muncul bahkan ketika perintah tidak menamai jalur apa pun di luar direktori kerja. Prompt ini tidak berlaku ketika perintah berjalan dalam [sandbox](/docs/id/sandboxing) dan sandbox memberlakukan blokir.

1625 1687 

1626Claude Code juga menulis `true` di sini ketika Anda memilih untuk memblokir pembacaan tersebut pada [prompt mode otomatis sebelum pembacaan pertama di luar direktori kerja](/docs/id/permission-modes#first-read-outside-the-working-directories).1688Claude Code juga menulis `true` di sini ketika Anda memilih untuk memblokir pembacaan tersebut pada [prompt mode otomatis sebelum pembacaan pertama di luar direktori kerja](/docs/id/permission-modes#first-read-outside-the-working-directories).

1627 1689 

1628* **Scope**: [`Any file`](#scopes). Jika sumber pengaturan apa pun menetapkan `true`, blokir berlaku, jadi file yang diperiksa repositori dapat mengaktifkan blokir untuk proyek tetapi tidak dapat mengangkat blokir yang Anda atur.1690* **Scope**: [`Any file`](#scopes). `true` di file apa pun berlaku, jadi repositori dapat mengaktifkan blokir untuk dirinya sendiri tetapi tidak dapat mengangkat blokir Anda.

1629* **Type**: Boolean1691* **Type**: Boolean

1630 * `true`: pembacaan file di luar direktori kerja diblokir1692 * `true`: alat file Claude menolak pembacaan di luar direktori kerja

1631 * `false`: sama dengan tidak diatur; `true` di file pengaturan lain apa pun masih memblokir1693 * `false`: sama dengan tidak diatur; blokir masih berlaku jika file lain menetapkan `true`

1632* **Default**: tidak diatur, jadi pembacaan di luar direktori kerja mengikuti mode izin dan aturan Anda1694* **Default**: tidak diatur, jadi pembacaan di luar direktori kerja mengikuti [mode izin](/docs/id/permission-modes) Anda

1633 1695 

1634```json settings.json theme={null}1696```json settings.json theme={null}

1635{1697{


1639}1701}

1640```1702```

1641 1703 

1642Jika hanya file pengaturan yang diperiksa repositori yang menambahkan direktori, blokir masih berlaku untuk pembacaan di sana. Ketika [`autoMemoryDirectory`](#automemorydirectory) berasal dari `.claude/settings.json` proyek, atau dari `.claude/settings.local.json` [diperlakukan sebagai disediakan repositori](/docs/id/permissions#when-your-local-settings-file-needs-trust), Claude Code tidak memuat [memori otomatis](/docs/id/memory#storage-location) apa pun dari direktori itu dan tidak menyimpan apa pun ke dalamnya. File yang dibutuhkan Claude Code sendiri tetap dapat dibaca, seperti keterampilan, plugin, aturan, agen, perintah Anda, dan file memori `CLAUDE.md` di bawah `~/.claude/`.1704Direktori yang Anda tambahkan dengan `--add-dir`, `/add-dir`, atau `additionalDirectories` dalam pengaturan pengguna atau terkelola Anda dihitung sebagai direktori kerja untuk blokir. Direktori yang ditambahkan hanya dalam pengaturan repositori tidak dihitung: yang ada di `.claude/settings.json`, dan yang ada di `.claude/settings.local.json` kecuali git melaporkan file itu sebagai tidak dilacak. Dalam direktori yang bukan repositori git, atau ketika git melacak file, Claude Code memperlakukan `.claude/settings.local.json` sebagai pengaturan yang disediakan repositori, jadi letakkan direktori yang ingin Anda tetap dapat dibaca dalam pengaturan pengguna Anda sebagai gantinya.

1705 

1706Ketika [`autoMemoryDirectory`](#automemorydirectory) berasal dari `.claude/settings.json` proyek, atau dari `.claude/settings.local.json` [diperlakukan sebagai disediakan repositori](/docs/id/permissions#when-your-local-settings-file-needs-trust), Claude Code tidak memuat [memori otomatis](/docs/id/memory#storage-location) apa pun dari direktori itu dan tidak menyimpan apa pun ke dalamnya.

1707 

1708Untuk mengangkat blokir, hapus kunci dari setiap file pengaturan yang menetapkannya, kemudian mulai sesi baru.

1709 

1710<h4 id="sandboxed-commands-under-the-block">

1711 Perintah sandboxed di bawah blokir

1712</h4>

1643 1713 

1644Ketika [sandbox](/docs/id/sandboxing) aktif, blokir juga menolak perintah sandboxed akses baca ke direktori home dan akar volume yang dipasang di luar direktori kerja. Percobaan ulang yang memerlukan persetujuan untuk [berjalan di luar sandbox](/docs/id/sandboxing#the-unsandboxed-retry-escape-hatch) meminta Anda bahkan dalam mode `bypassPermissions`. File yang dibaca alat dari direktori home Anda, seperti `~/.gitconfig`, ditolak dengan sisanya; buka kembali jalur spesifik dengan [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) ketika alat membutuhkannya.1714Ketika [sandboxing](/docs/id/sandboxing) aktif, blokir juga mencakup perintah sandboxed. Claude Code menolak mereka akses baca ke direktori home Anda dan ke akar lain yang menyimpan file pengguna: `/Users`, `/home`, `/root`, `/Volumes`, `/mnt`, `/media`, `/run/media`, dan `/srv`. Kemudian membuka kembali direktori kerja, [worktrees](/docs/id/worktrees) yang Claude Code buat dalam sesi, direktori temp sesi, dan bagian dari `~/.claude` yang dibutuhkan perintah, seperti keterampilan dan plugin. Saat blokir berlaku, entri `allowRead` dan `allowWrite` dari pengaturan repositori tidak dihitung.

1645 1715 

1646Ketika direktori kerja sesi adalah [git worktree](/docs/id/worktrees) yang ditautkan, termasuk yang dimasuki Claude Code di tengah sesi, direktori `.git` umum repositori tetap dapat dibaca dan ditulis ke perintah sandboxed, sehingga git terus bekerja di sana.1716Ketika direktori kerja sesi adalah [git worktree](/docs/id/worktrees) yang ditautkan, termasuk yang dimasuki Claude Code di tengah sesi, direktori `.git` umum repositori tetap dapat dibaca dan ditulis ke perintah sandboxed, sehingga git terus bekerja di sana.

1647 1717 

1718Dalam kasus-kasus ini blokir tidak menjangkau perintah sandboxed, sementara alat file Claude terus memberlakukannya:

1719 

1720* Isolasi sistem file dimatikan melalui [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled)

1721* [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) diatur

1722* Jalur direktori tempat Anda memulai Claude Code mengandung karakter glob seperti `*`, `?`, atau `[`

1723 

1724Di bawah blokir, Claude Code membuka kembali file konfigurasi git global Anda ke perintah sandboxed sehingga `git` tetap mempertahankan identitas dan pengaturan Anda:

1725 

1726* `~/.gitconfig`

1727* File `config`, `ignore`, dan `attributes` di bawah `$XDG_CONFIG_HOME/git`, yang default ke `~/.config/git`

1728* File yang dinamai konfigurasi git global Anda melalui `[include]`, `[includeIf]`, `core.excludesFile`, atau `core.attributesFile`

1729 

1730Claude Code menilai setiap file secara terpisah. Ketika file terletak di mana perintah sandboxed dapat menulis, secara langsung atau melalui symlink, Claude Code tidak membuka kembali file yang dinamainya.

1731 

1732Di Linux dan WSL2, file konfigurasi yang merupakan symlink dapat tetap tidak dapat dibaca di jalurnya sendiri, dan `git` kemudian berjalan tanpanya. `~/.git-credentials` dan `$XDG_CONFIG_HOME/git/credentials` tetap diblokir.

1733 

1734Jika file yang dibuka kembali menyimpan rahasia, seperti token `http.extraHeader`, tambahkan jalurnya ke [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread). Entri `denyRead` yang mencakup file selalu mengambil alih pembukaan kembali ini.

1735 

1648<h3 id="permissions-defaultmode">1736<h3 id="permissions-defaultmode">

1649 `permissions.defaultMode`1737 `permissions.defaultMode`

1650</h3>1738</h3>


1970}2058}

1971```2059```

1972 2060 

1973Claude Code menggabungkan entri di setiap scope pengaturan yang dimuat sesi: jalur pengguna, proyek, lokal, dan yang dikelola digabungkan daripada menggantikan satu sama lain, dan Claude Code menambahkan jalur dari aturan izin allow `Edit(...)` Anda. Entri `allowWrite` tidak dapat mengangkat [protected path](/docs/id/sandboxing#protected-paths).2061Claude Code menggabungkan entri `allowWrite` dan jalur dari aturan izin allow `Edit(...)` Anda di setiap scope pengaturan yang dimuat sesi, meninggalkan yang dari pengaturan repositori sementara [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) aktif. Entri `allowWrite` tidak dapat mengangkat [protected path](/docs/id/sandboxing#protected-paths).

1974 2062 

1975<h3 id="sandbox-filesystem-denywrite">2063<h3 id="sandbox-filesystem-denywrite">

1976 `sandbox.filesystem.denyWrite`2064 `sandbox.filesystem.denyWrite`


2041}2129}

2042```2130```

2043 2131 

2044Claude Code menyelesaikan entri `.` ke akar proyek dalam pengaturan proyek dan ke `~/.claude` dalam pengaturan pengguna. Claude Code menggabungkan entri di setiap file pengaturan yang dimuat sesi kecuali [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) diatur.2132Claude Code menyelesaikan entri `.` ke akar proyek dalam pengaturan proyek dan ke `~/.claude` dalam pengaturan pengguna. Claude Code menggabungkan entri di setiap file pengaturan yang dimuat sesi kecuali [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) diatur, dan meninggalkan entri dari pengaturan repositori sementara [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) aktif.

2045 2133 

2046<h3 id="sandbox-filesystem-allowmanagedreadpathsonly">2134<h3 id="sandbox-filesystem-allowmanagedreadpathsonly">

2047 `sandbox.filesystem.allowManagedReadPathsOnly`2135 `sandbox.filesystem.allowManagedReadPathsOnly`


3017* [`CLAUDE_CODE_MESSAGING_SOCKET` dan `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/id/env-vars#variables), yang diekspor Claude Code sendiri, diabaikan dari setiap file. Mengabaikan variabel soket memerlukan Claude Code v2.1.224 atau lebih baru, dan mengabaikan token memerlukan v2.1.228 atau lebih baru.3105* [`CLAUDE_CODE_MESSAGING_SOCKET` dan `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/id/env-vars#variables), yang diekspor Claude Code sendiri, diabaikan dari setiap file. Mengabaikan variabel soket memerlukan Claude Code v2.1.224 atau lebih baru, dan mengabaikan token memerlukan v2.1.228 atau lebih baru.

3018* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/id/sessions#name-the-project-directory-yourself), yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file; memerlukan v2.1.234 atau lebih baru.3106* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/id/sessions#name-the-project-directory-yourself), yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file; memerlukan v2.1.234 atau lebih baru.

3019* [`CLAUDE_CODE_RESTRICTED`](/docs/id/env-vars#variables), yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file.3107* [`CLAUDE_CODE_RESTRICTED`](/docs/id/env-vars#variables), yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file.

3108* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](/docs/id/env-vars#variables), yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file. Variabel memerlukan Claude Code v2.1.283 atau lebih baru.

3109* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` dan `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`](/docs/id/env-vars#variables), yang dibaca Claude Code hanya dari lingkungan peluncuran, diabaikan dari setiap file.

3020 3110 

3021<h3 id="filecheckpointingenabled">3111<h3 id="filecheckpointingenabled">

3022 `fileCheckpointingEnabled`3112 `fileCheckpointingEnabled`


3416* **Type**: string, `"classic"` atau `"readline"`3506* **Type**: string, `"classic"` atau `"readline"`

3417* **Default**: unset3507* **Default**: unset

3418 3508 

3509<h3 id="maxprosewidth">

3510 `maxProseWidth`

3511</h3>

3512 

3513Batasi lebar prosa dalam respons Claude sehingga baris tetap dapat dibaca di terminal lebar. Paragraf, judul, daftar, dan blockquote membungkus dalam jumlah kolom ini, sementara tabel dan blok kode menjaga lebar terminal penuh. Memerlukan Claude Code v2.1.282 atau lebih baru.

3514 

3515* **Scope**: [`Any file`](#scopes)

3516* **Type**: number of terminal columns, a whole number, minimum `40`. Claude Code mengabaikan nilai apa pun yang lain

3517* **Default**: unset, jadi prosa membungkus di tepi terminal

3518 

3519```json settings.json theme={null}

3520{

3521 "maxProseWidth": 80

3522}

3523```

3524 

3419<h3 id="prefersreducedmotion">3525<h3 id="prefersreducedmotion">

3420 `prefersReducedMotion`3526 `prefersReducedMotion`

3421</h3>3527</h3>


4090 4196 

4091* **Scope**: [`Any file`](#scopes)4197* **Scope**: [`Any file`](#scopes)

4092* **Type**: string4198* **Type**: string

4093* **Default**: tidak diatur, jadi Claude Code menambahkan `Co-Authored-By: <name> <noreply@anthropic.com>`. Nama adalah model aktif sesi, seperti `Claude Sonnet 5`.4199* **Default**: tidak diatur, jadi Claude Code menambahkan `Co-Authored-By: <name> <noreply@anthropic.com>`. Nama adalah model yang digunakan saat commit dibuat, seperti `Claude Sonnet 5`. Ketika [subagent](/docs/id/sub-agents) membuat commit, trailer menamai model subagent.

4094 * Ketika Claude Code mengenali model sebagai model Claude tetapi tidak dapat mengkonfirmasi versi pastinya, ia menulis `Claude` saja.4200 * Ketika Claude Code mengenali model sebagai model Claude tetapi tidak dapat mengkonfirmasi versi pastinya, ia menulis `Claude` saja.

4095 * Ketika tidak dapat mencocokkan ID model ke model Claude apa pun, seperti model pihak ketiga yang disajikan melalui [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) kustom, ia menulis `Claude Code`.4201 * Ketika tidak dapat mencocokkan ID model ke model Claude apa pun, seperti model pihak ketiga yang disajikan melalui [`ANTHROPIC_BASE_URL`](/docs/id/env-vars) kustom, ia menulis `Claude Code`.

4096 4202 


5690* **Type**: Boolean5796* **Type**: Boolean

5691 * `true`: Claude Code menghubungkan Remote Control secara otomatis ketika setiap sesi interaktif dimulai5797 * `true`: Claude Code menghubungkan Remote Control secara otomatis ketika setiap sesi interaktif dimulai

5692 * `false`: Claude Code menunggu `/remote-control`5798 * `false`: Claude Code menunggu `/remote-control`

5693* **Default**: unset, jadi auto-connect mengikuti default admin organisasi Anda ketika satu diatur, dan sebaliknya default Claude Code saat ini5799* **Default**: unset, jadi [auto-connect default](/docs/id/remote-control#enable-remote-control-for-all-sessions) berlaku

5694* **Per-session overrides**: `--remote-control` menghidupkan Remote Control untuk satu sesi bahkan ketika kunci ini `false`, dan tidak ada flag yang mematikannya untuk satu sesi5800* **Per-session overrides**: `--remote-control` menghidupkan Remote Control untuk satu sesi bahkan ketika kunci ini `false`, dan tidak ada flag yang mematikannya untuk satu sesi

5695 5801 

5696```json settings.json theme={null}5802```json settings.json theme={null}


5842 5948 

5843Atur URL gateway yang layar Cloud gateway `/login` terhubung, sehingga orang mencapai [cloud gateway](/docs/id/claude-apps-gateway) Anda tanpa mengetik alamatnya. Layar tidak memiliki bidang URL: dengan kunci ini diatur, layar menampilkan URL gateway Anda dan terhubung ketika orang menekan Enter; tanpanya, layar memberi tahu mereka untuk menghubungi administrator IT mereka.5949Atur URL gateway yang layar Cloud gateway `/login` terhubung, sehingga orang mencapai [cloud gateway](/docs/id/claude-apps-gateway) Anda tanpa mengetik alamatnya. Layar tidak memiliki bidang URL: dengan kunci ini diatur, layar menampilkan URL gateway Anda dan terhubung ketika orang menekan Enter; tanpanya, layar memberi tahu mereka untuk menghubungi administrator IT mereka.

5844 5950 

5845Baik kunci ini atau `forceLoginMethod: "gateway"` membuat mesin gateway-only, jadi `/login` membuka di layar Cloud gateway tanpa pemilih metode login. Lihat [Administrator policy requires a Cloud gateway sign-in](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in) untuk apa yang terjadi pada login pihak pertama atau kunci API yang tersisa. Atur kedua kunci sehingga layar terhubung alih-alih menampilkan kesalahan.5951Baik kunci ini atau `forceLoginMethod: "gateway"` membuat mesin gateway-only, kecuali untuk sesi yang memilih penyedia cloud dengan `CLAUDE_CODE_USE_*`. `/login` kemudian membuka di layar Cloud gateway tanpa pemilih metode login. Lihat [Administrator policy requires a Cloud gateway sign-in](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in) untuk apa yang terjadi pada login pihak pertama atau kunci API yang tersisa. Atur kedua kunci sehingga layar terhubung alih-alih menampilkan kesalahan.

5846 5952 

5847* **Scope**: [`Managed`](#scopes). Baca hanya dari sumber di mesin: `managed-settings.json`, plist macOS atau registri Windows HKLM, atau pembantu kebijakan. Claude Code mengabaikannya dalam pengaturan HKCU dan server-terkelola.5953* **Scope**: [`Managed`](#scopes). Baca hanya dari sumber di mesin: `managed-settings.json`, plist macOS atau registri Windows HKLM, atau pembantu kebijakan. Claude Code mengabaikannya dalam pengaturan HKCU dan server-terkelola.

5848* **Type**: string, URL lengkap termasuk skema5954* **Type**: string, URL lengkap termasuk skema


6095 `cleanupPeriodDays`6201 `cleanupPeriodDays`

6096</h3>6202</h3>

6097 6203 

6098Atur berapa hari Claude Code menyimpan [transkrip sesi dan data aplikasi lainnya](/docs/id/claude-directory#cleaned-up-automatically) sebelum menghapusnya. Claude Code menjalankan penghapusan sebagai sapuan latar belakang setelah sesi dimulai, selama dapat dengan aman menentukan periode retensi.6204Atur berapa hari Claude Code menyimpan [transkrip sesi dan data aplikasi lainnya](/docs/id/claude-directory#cleaned-up-automatically) sebelum menghapusnya. Claude Code menjalankan penghapusan sebagai sapuan latar belakang setelah sesi dimulai, selama dapat dengan aman menentukan periode retensi. Sapuan menghapus transkrip tanpa menampilkan pesan, jadi sesi yang belum Anda gunakan lebih lama dari periode retensi tidak lagi muncul di pemilih [`/resume`](/docs/id/sessions#resume-a-session).

6099 6205 

6100* **Scope**: [`Any file`](#scopes)6206* **Scope**: [`Any file`](#scopes)

6101* **Type**: jumlah hari, bilangan bulat, minimum `1`6207* **Type**: jumlah hari, bilangan bulat, minimum `1`


6439 `wslInheritsWindowsSettings`6545 `wslInheritsWindowsSettings`

6440</h3>6546</h3>

6441 6547 

6442Buat Claude Code di WSL membaca pengaturan terkelola dari rantai kebijakan Windows, dengan HKLM dan file pengaturan terkelola Windows mengambil prioritas atas `/etc/claude-code` dan HKCU di bawahnya. Sementara rantai aktif, Claude Code membaca `/etc/claude-code` hanya ketika tidak ada file pengaturan terkelola atau drop-in di bawah `C:\Program Files\ClaudeCode\` yang memberikan [kunci kebijakan](/docs/id/managed-settings#how-claude-code-combines-managed-sources). Atur untuk memperluas kebijakan yang sudah Anda terapkan di Windows ke sesi WSL di mesin yang sama, sehingga mereka mengikuti aturan yang sama seperti sesi host. Claude Code menghormatinya hanya ketika diatur dalam kunci registri HKLM atau dalam file pengaturan terkelola atau drop-in di bawah `C:\Program Files\ClaudeCode\`, keduanya memerlukan admin Windows untuk menulis.6548Buat Claude Code di WSL membaca pengaturan terkelola dari rantai kebijakan Windows, dengan HKLM dan file pengaturan terkelola Windows mengambil prioritas atas `/etc/claude-code` dan HKCU di bawahnya. Sementara rantai aktif, Claude Code membaca `/etc/claude-code` hanya ketika [tidak ada dokumen admin Windows yang ada](/docs/id/managed-settings#present-admin-documents) dalam nilai registri HKLM atau folder `C:\Program Files\ClaudeCode\`. Atur untuk memperluas kebijakan yang sudah Anda terapkan di Windows ke sesi WSL di mesin yang sama, sehingga mereka mengikuti aturan yang sama seperti sesi host. Claude Code menghormatinya hanya ketika diatur dalam kunci registri HKLM atau dalam file pengaturan terkelola atau drop-in di bawah `C:\Program Files\ClaudeCode\`, keduanya memerlukan admin Windows untuk menulis.

6443 6549 

6444* **Scope**: [`Managed`](#scopes). Dalam sumber Windows yang dikontrol admin.6550* **Scope**: [`Managed`](#scopes). Dalam sumber Windows yang dikontrol admin.

6445* **Type**: Boolean6551* **Type**: Boolean

6446 * `true`: Claude Code di WSL membaca pengaturan terkelola dari rantai kebijakan Windows, dan membaca `/etc/claude-code` hanya ketika tidak ada file pengaturan terkelola atau drop-in di bawah `C:\Program Files\ClaudeCode\` yang memberikan [kunci kebijakan](/docs/id/managed-settings#how-claude-code-combines-managed-sources)6552 * `true`: Claude Code di WSL membaca pengaturan terkelola dari rantai kebijakan Windows, dan membaca `/etc/claude-code` hanya ketika tidak ada dokumen admin Windows yang ada

6447 * `false`: WSL membaca hanya `/etc/claude-code`6553 * `false`: WSL membaca hanya `/etc/claude-code`

6448* **Default**: `false`, jadi WSL membaca hanya `/etc/claude-code`6554* **Default**: `false`, jadi WSL membaca hanya `/etc/claude-code`

6449 6555 


6455 6561 

6456Setelah sumber admin mengaktifkan rantai, kebijakan HKCU bergabung dengannya di WSL hanya ketika HKCU juga menetapkan kunci ke `true`. Salinan itu tidak mengaktifkan rantai dengan sendirinya. Sumber Windows yang hanya berisi kunci ini tidak dihitung sebagai sumber kebijakan, jadi sumber prioritas yang lebih rendah masih menyediakan kebijakan. Kunci ini tidak berpengaruh pada Windows asli.6562Setelah sumber admin mengaktifkan rantai, kebijakan HKCU bergabung dengannya di WSL hanya ketika HKCU juga menetapkan kunci ke `true`. Salinan itu tidak mengaktifkan rantai dengan sendirinya. Sumber Windows yang hanya berisi kunci ini tidak dihitung sebagai sumber kebijakan, jadi sumber prioritas yang lebih rendah masih menyediakan kebijakan. Kunci ini tidak berpengaruh pada Windows asli.

6457 6563 

6564Claude Code membaca `true` dan `false` dengan atau tanpa tanda kutip dan membaca `null` sebagai menghapus kunci. Sumber Windows yang dikontrol admin yang menyimpan nilai apa pun yang lain dihitung sebagai [dokumen admin yang ada](/docs/id/managed-settings#present-admin-documents) dengan rantai diaktifkan: baik `/etc/claude-code` maupun HKCU tidak berlaku, dan peringatan startup menyebutkan kunci. Nilai HKLM atau file folder Windows yang ada tetapi tidak dapat dibaca juga menjaga `/etc/claude-code` dari berlaku terlepas dari apakah rantai aktif. Memerlukan Claude Code v2.1.282 atau lebih baru.

6565 

6458<h2 id="global-config-settings">6566<h2 id="global-config-settings">

6459 Pengaturan konfigurasi global6567 Pengaturan konfigurasi global

6460</h2>6568</h2>


6503 6611 

6504Claude Code mengabaikan kunci ini di `settings.json`.6612Claude Code mengabaikan kunci ini di `settings.json`.

6505 6613 

6614<h3 id="claudeinchromedefaultenabled">

6615 `claudeInChromeDefaultEnabled`

6616</h3>

6617 

6618Mulai setiap sesi CLI interaktif dengan [integrasi Chrome](/docs/id/chrome) aktif, tanpa harus melewatkan `--chrome` setiap kali. Jika Anda menjalankan [`claude remote-control`](/docs/id/remote-control), sesi yang dimulainya untuk salah satu thread [project](/docs/id/claude-projects) Anda mengikuti kunci ini juga, kecuali dalam mode `bypassPermissions`. Menjalankan `/chrome` dan memilih **Enabled by default** mengatur kunci ini untuk Anda, seperti yang dijelaskan dalam [Enable Chrome by default](/docs/id/chrome#enable-chrome-by-default). Muncul di `/config` sebagai **Claude in Chrome enabled by default**.

6619 

6620* **Scope**: [`Global config`](#scopes)

6621* **Type**: Boolean

6622 * `true`: Claude Code menghidupkan integrasi Chrome saat sesi CLI interaktif dimulai, seperti yang dilakukannya saat Anda melewatkan `--chrome`

6623 * `false`: sesi CLI interaktif dimulai dengan integrasi Chrome mati, dan Claude Code berhenti [menawarkan untuk mengaturnya](/docs/id/chrome#install-the-extension-when-claude-asks). Lewatkan `--chrome` untuk menghidupkannya untuk satu sesi interaktif

6624* **Default**: unset, jadi integrasi Chrome mati dan Claude Code masih dapat menawarkan untuk mengaturnya

6625* **Per-session overrides**: `--chrome` dan [`--no-chrome`](/docs/id/cli-reference) mengambil alih kunci ini untuk satu sesi interaktif

6626 

6627```json ~/.claude.json theme={null}

6628{

6629 "claudeInChromeDefaultEnabled": true

6630}

6631```

6632 

6633Claude Code mengabaikan kunci ini di `settings.json`.

6634 

6635<h3 id="copyfullresponse">

6636 `copyFullResponse`

6637</h3>

6638 

6639Buat [`/copy`](/docs/id/commands) menyalin respons penuh setiap kali, tanpa picker yang biasanya ditampilkannya saat respons berisi blok kode. Memilih **Always copy full response** di picker tersebut mengatur kunci ini ke `true`. Muncul di `/config` sebagai **Skip the /copy picker**.

6640 

6641* **Scope**: [`Global config`](#scopes)

6642* **Type**: Boolean

6643 * `true`: `/copy` menyalin respons penuh tanpa menampilkan picker

6644 * `false`: saat respons berisi blok kode, `/copy` menampilkan picker di mana Anda memilih satu blok kode atau respons penuh

6645* **Default**: `false`

6646 

6647```json ~/.claude.json theme={null}

6648{

6649 "copyFullResponse": true

6650}

6651```

6652 

6653Claude Code mengabaikan kunci ini di `settings.json`.

6654 

6506<h3 id="copyonselect">6655<h3 id="copyonselect">

6507 `copyOnSelect`6656 `copyOnSelect`

6508</h3>6657</h3>


6523 6672 

6524Claude Code mengabaikan kunci ini di `settings.json`.6673Claude Code mengabaikan kunci ini di `settings.json`.

6525 6674 

6675<h3 id="defaulttoagentsview">

6676 `defaultToAgentsView`

6677</h3>

6678 

6679Buka [agent view](/docs/id/agent-view) alih-alih percakapan baru saat Anda menjalankan `claude` tanpa argumen. Muncul di `/config` sebagai **Open agents view by default** kecuali agent view [dimatikan](#disableagentview).

6680 

6681* **Scope**: [`Global config`](#scopes)

6682* **Type**: Boolean

6683 * `true`: `claude` tanpa argumen membuka agent view, kecuali agent view [dimatikan](#disableagentview)

6684 * `false`: `claude` tanpa argumen memulai percakapan baru

6685* **Default**: `false`

6686 

6687```json ~/.claude.json theme={null}

6688{

6689 "defaultToAgentsView": true

6690}

6691```

6692 

6693Claude Code mengabaikan kunci ini di `settings.json`.

6694 

6526<h3 id="difftool">6695<h3 id="difftool">

6527 `diffTool`6696 `diffTool`

6528</h3>6697</h3>


6577 6746 

6578Claude Code mengabaikan kunci ini di `settings.json`.6747Claude Code mengabaikan kunci ini di `settings.json`.

6579 6748 

6749<h3 id="leftarrowopensagents">

6750 `leftArrowOpensAgents`

6751</h3>

6752 

6753Tekan `←` pada prompt kosong untuk [menempatkan sesi di latar belakang dan membuka agent view](/docs/id/agent-view#switch-sessions-without-leaving-the-terminal). Atur kunci ini ke `false` untuk mematikan pintasan. Muncul di `/config` sebagai **← opens agents** saat agent view tersedia.

6754 

6755* **Scope**: [`Global config`](#scopes)

6756* **Type**: Boolean

6757 * `true`: menekan `←` pada prompt kosong dalam sesi yang Anda mulai di terminal menempatkannya di latar belakang dan membuka agent view

6758 * `false`: Claude Code mematikan pintasan; dalam sesi yang Anda [lampirkan dari agent view](/docs/id/agent-view#attach-to-a-session), `←` pada prompt kosong masih melepaskan

6759* **Default**: `true`

6760 

6761```json ~/.claude.json theme={null}

6762{

6763 "leftArrowOpensAgents": false

6764}

6765```

6766 

6767Claude Code mengabaikan kunci ini di `settings.json`.

6768 

6580<h3 id="permissionexplainerenabled">6769<h3 id="permissionexplainerenabled">

6581 `permissionExplainerEnabled`6770 `permissionExplainerEnabled`

6582</h3>6771</h3>


6591* **Type**: Boolean6780* **Type**: Boolean

6592* **Default**: `true`6781* **Default**: `true`

6593 6782 

6783<h3 id="prstatusfooterenabled">

6784 `prStatusFooterEnabled`

6785</h3>

6786 

6787Tampilkan lencana di footer prompt untuk pull request atau merge request terbuka dari cabang saat ini, dengan garis bawah berwarna yang menunjukkan [statusnya](/docs/id/interactive-mode#pr-review-status). Muncul di `/config` sebagai **Show PR status footer**.

6788 

6789* **Scope**: [`Global config`](#scopes)

6790* **Type**: Boolean

6791 * `true`: footer menampilkan lencana di bawah kondisi dalam [PR review status](/docs/id/interactive-mode#pr-review-status)

6792 * `false`: Claude Code melewati pemeriksaan pull request dan merge request footer dan tidak menampilkan lencana tersebut. Sesi yang Anda [lampirkan dari agent view](/docs/id/agent-view#attach-to-a-session) masih dapat menampilkan tautan biasa ke pull request [yang ditautkan ke sana](/docs/id/agent-view#pull-request-status)

6793* **Default**: `true`

6794 

6795```json ~/.claude.json theme={null}

6796{

6797 "prStatusFooterEnabled": false

6798}

6799```

6800 

6801Claude Code mengabaikan kunci ini di `settings.json`.

6802 

6594<h3 id="teammatedefaultmodel">6803<h3 id="teammatedefaultmodel">

6595 `teammateDefaultModel`6804 `teammateDefaultModel`

6596</h3>6805</h3>

setup.md +3 −3

Details

37 37 

38<Tip>38<Tip>

39 Lebih suka antarmuka grafis? [Aplikasi Desktop](/docs/id/desktop-quickstart) memungkinkan Anda menggunakan Claude Code tanpa terminal. Unduh untuk [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs), atau [Linux](/docs/id/desktop-linux).39 Lebih suka antarmuka grafis? [Aplikasi Desktop](/docs/id/desktop-quickstart) memungkinkan Anda menggunakan Claude Code tanpa terminal. Unduh untuk [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs), [Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs), atau [Linux](/docs/id/desktop-linux).

40 

41 Baru mengenal terminal? Lihat [panduan terminal](/docs/id/terminal-guide) untuk instruksi langkah demi langkah.

42</Tip>40</Tip>

43 41 

44Untuk menginstal Claude Code, gunakan salah satu metode berikut:42Untuk menginstal Claude Code, buka terminal dan jalankan perintah untuk sistem Anda. Jika Anda belum pernah menggunakan terminal sebelumnya, [panduan terminal](/docs/id/terminal-guide) menunjukkan cara membukanya dan menempel perintahnya.

45 43 

46<Tabs>44<Tabs>

47 <Tab title="Native Install (Direkomendasikan)">45 <Tab title="Native Install (Direkomendasikan)">


63 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

64 ```62 ```

65 63 

64 Ketika penginstal selesai, buka jendela terminal baru dan jalankan `claude --version`. Instalasi yang berfungsi dengan baik mencetak nomor versi. Jika shell Anda mengatakan `claude` tidak ditemukan atau tidak dikenali, direktori instalasi belum ada di PATH Anda: lihat [Perbaiki PATH Anda](/docs/id/troubleshoot-install#command-not-found-claude-after-installation).

65 

66 Jika Anda melihat `The token '&&' is not a valid statement separator`, Anda berada di PowerShell, bukan CMD. Jika Anda melihat `'irm' is not recognized as an internal or external command`, Anda berada di CMD, bukan PowerShell. Prompt Anda menunjukkan `PS C:\` ketika Anda berada di PowerShell dan `C:\` tanpa `PS` ketika Anda berada di CMD.66 Jika Anda melihat `The token '&&' is not a valid statement separator`, Anda berada di PowerShell, bukan CMD. Jika Anda melihat `'irm' is not recognized as an internal or external command`, Anda berada di CMD, bukan PowerShell. Prompt Anda menunjukkan `PS C:\` ketika Anda berada di PowerShell dan `C:\` tanpa `PS` ketika Anda berada di CMD.

67 67 

68 Jika perintah instalasi gagal dengan `syntax error near unexpected token '<'`, `403`, atau kesalahan curl lainnya, lihat [Troubleshoot installation](/docs/id/troubleshoot-install#find-your-error) untuk mencocokkan kesalahan dengan perbaikan dan untuk metode instalasi alternatif.68 Jika perintah instalasi gagal dengan `syntax error near unexpected token '<'`, `403`, atau kesalahan curl lainnya, lihat [Troubleshoot installation](/docs/id/troubleshoot-install#find-your-error) untuk mencocokkan kesalahan dengan perbaikan dan untuk metode instalasi alternatif.

skills.md +60 −41

Details

76 </Step>76 </Step>

77 77 

78 <Step title="Tulis SKILL.md">78 <Step title="Tulis SKILL.md">

79 Setiap skill memerlukan file `SKILL.md` dengan dua bagian: frontmatter YAML antara penanda `---` yang memberi tahu Claude kapan menggunakan skill, dan konten markdown dengan instruksi yang diikuti Claude ketika skill berjalan. Nama direktori menjadi perintah yang Anda ketik, dan `description` membantu Claude memutuskan kapan memuat skill secara otomatis.79 Setiap skill memerlukan file `SKILL.md` dengan dua bagian: frontmatter YAML antara penanda `---` yang memberi tahu Claude kapan menggunakan skill, dan konten markdown dengan instruksi yang diikuti Claude ketika skill berjalan. Nama direktori, atau frontmatter `name` ketika Anda menetapkannya, menjadi perintah yang Anda ketik, dan `description` membantu Claude memutuskan kapan memuat skill secara otomatis.

80 80 

81 Simpan ini ke `~/.claude/skills/summarize-changes/SKILL.md`:81 Simpan ini ke `~/.claude/skills/summarize-changes/SKILL.md`:

82 82 


135Folder skill juga mengikuti aturan ini:135Folder skill juga mengikuti aturan ini:

136 136 

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/host-marketplace#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/host-marketplace#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 `synced`**: 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* **Nama yang dicadangkan `anthropic-skills`**: di luar plugin, folder skill atau file perintah yang namanya `anthropic-skills` atau dimulai dengan `anthropic-skills:` tidak dimuat. Lihat [Nama yang dicadangkan untuk synced skills](#names-reserved-for-synced-skills).

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* **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/loading#plugins-shared-through-a-repository) 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* **Folder skill sebagai plugin**: tambahkan `.claude-plugin/plugin.json` ke folder skill dan itu dimuat sebagai [plugin](/docs/id/plugins/loading#plugins-shared-through-a-repository) 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 142 


168 Selesaikan skills yang berbagi nama169 Selesaikan skills yang berbagi nama

169</h3>170</h3>

170 171 

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:172Ketika dua skills berbagi nama, tempat asal masing-masing menentukan yang mana `/name` jalankan. Untuk nama yang ditetapkan oleh field frontmatter `name`, lihat [Bagaimana skill mendapatkan nama perintahnya](#how-a-skill-gets-its-command-name). Tabel mencakup lokasi enterprise, personal, project, nested, plugin, dan claude.ai, skills bundel, dan file perintah:

172 173 

173| Nama yang sama di | Yang mana yang berjalan |174| Nama yang sama di | Yang mana yang berjalan |

174| :- | :- |175| :- | :- |


196 Skills yang disinkronkan dari claude.ai197 Skills yang disinkronkan dari claude.ai

197</h3>198</h3>

198 199 

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`.200Bagian 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 [Tempat synced skills dimuat](#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`.

200 201 

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

202 203 


204 Tempat synced skills dimuat205 Tempat synced skills dimuat

205</h4>206</h4>

206 207 

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.208Dalam sesi Cowork atau cloud, Claude Code memuat skills yang diaktifkan untuk akun claude.ai Anda, dan [Gunakan skills di sesi Cowork dan cloud](#skills-in-cowork-and-cloud-sessions) mengatakan bagaimana memilih skills mana yang sesi itu dapatkan.

208 209 

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.210Di 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.

210 211 


237 238 

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.239Anda 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.

239 240 

240Perintah lain dapat berupa salah satu dari ini:241Dalam menu `/`, `/skills`, dan `/context`, synced skill muncul di bawah nama pendeknya, atau di bawah nama lengkapnya sementara perintah lain menggunakan nama pendek. Jalankan `/skills` di sesi Anda. Catatan di bawah daftar menjelaskan setiap synced skill yang kehilangan nama pendeknya. Jika salah satu personal skills atau file perintah Anda di `~/.claude/` menggunakan nama itu, catatan juga mengatakan apa yang harus diubah nama atau dihapus untuk membebaskannya.

242 

243Dari v2.1.269 hingga v2.1.280, daftar ini menunjukkan setiap synced skill di bawah nama lengkapnya, dan `/skills` tidak memiliki catatan seperti itu; keduanya berubah di v2.1.281.

244 

245Perintah yang menggunakan nama pendek dapat berupa salah satu dari ini:

241 246 

242* Perintah bawaan atau [bundled skill](#bundled-skills), termasuk yang tidak tersedia di sesi Anda, misalnya setelah Anda mematikan bundled skills247* Perintah bawaan atau [bundled skill](#bundled-skills), termasuk yang tidak tersedia di sesi Anda, misalnya setelah Anda mematikan bundled skills

243* Skill di [level lokal apa pun](#where-skills-live) atau file di `.claude/commands/`248* Skill di [level lokal apa pun](#where-skills-live) atau file di `.claude/commands/`


250 255 

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.256Nama 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.

252 257 

258<h4 id="names-reserved-for-synced-skills">

259 Nama yang dicadangkan untuk synced skills

260</h4>

261 

262Claude Code mencadangkan nama `anthropic-skills`, dan setiap nama di dalam namespace itu seperti `anthropic-skills:pdf`, untuk skills yang disinkronkan dari claude.ai, jadi nama lengkap synced skill tidak pernah menjalankan apa pun yang lain. Nama dicadangkan di setiap sesi, apakah atau tidak Anda masuk dengan akun claude.ai.

263 

264* **Folder skill, frontmatter `name`, file atau subfolder di `.claude/commands/`, atau [saved workflow](/docs/id/workflows#save-the-workflow-for-reuse)**: itu tidak dimuat. [Startup notice](/docs/id/errors#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) menamai item pertama untuk diubah nama atau diedit.

265* **Plugin bernama `anthropic-skills`**: itu dimuat. Ketika salah satu skillnya dan synced skill keduanya bernama `<name>`, `/anthropic-skills:<name>` menjalankan synced skill.

266* **MCP server bernama `anthropic-skills`**: itu terhubung dan toolsnya bekerja, tetapi [promptsnya tidak muncul sebagai perintah](/docs/id/mcp#use-mcp-prompts-as-commands). Ubah nama server di konfigurasi MCP Anda untuk mencantumnya.

267 

253<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">268<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">

254 Bagaimana Claude Code menangani frontmatter dari synced skill269 Bagaimana Claude Code menangani frontmatter dari synced skill

255</h4>270</h4>


273 Edit skill selama sesi288 Edit skill selama sesi

274</h3>289</h3>

275 290 

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.291Claude 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.

292 

293Jika Anda membuat direktori skills tingkat atas yang tidak ada ketika sesi dimulai, jalankan [`/reload-skills`](/docs/id/commands#all-commands) untuk mengambil skills yang Anda letakkan di sana. Claude Code tidak mengawasi direktori itu lagi, jadi jalankan `/reload-skills` lagi setelah setiap perubahan di sana nanti.

277 294 

278Live change detection mencakup teks `SKILL.md` saja. Untuk folder skill yang juga merupakan [plugin](/docs/id/plugins/loading#plugins-shared-through-a-repository), perubahan ke `hooks/`, `.mcp.json`, `agents/`, dan `output-styles/` memerlukan `/reload-plugins` untuk berlaku.295Live change detection mencakup teks `SKILL.md` saja. Untuk folder skill yang juga merupakan [plugin](/docs/id/plugins/loading#plugins-shared-through-a-repository), perubahan ke `hooks/`, `.mcp.json`, `agents/`, dan `output-styles/` memerlukan `/reload-plugins` untuk berlaku.

279 296 


360 377 

361| Field | Required | Description |378| Field | Required | Description |

362| :- | :- | :- |379| :- | :- | :- |

363| `name` | No | Display name shown in skill listings. Defaults to the directory name. See [How a skill gets its command name](#how-a-skill-gets-its-command-name) for how the field interacts with the name you type to invoke the skill. |380| `name` | No | Nama perintah yang ditampilkan dalam menu `/`. Default ke nama direktori. Lihat [Bagaimana skill mendapatkan nama perintahnya](#how-a-skill-gets-its-command-name) untuk cara bidang berinteraksi dengan nama yang Anda ketik untuk menginvokasi skill. |

364| `description` | Recommended | What the skill does and when to use it. Claude uses this to decide when to apply the skill. If omitted, uses the first non-empty line of the markdown content. Put the key use case first: the combined `description` and `when_to_use` text is truncated at 1,536 characters in the skill listing to reduce context usage. |381| `description` | Recommended | Apa yang dilakukan skill dan kapan menggunakannya. Claude menggunakan ini untuk memutuskan kapan menerapkan skill. Jika dihilangkan, menggunakan baris non-kosong pertama dari konten markdown. Letakkan kasus penggunaan utama terlebih dahulu: teks gabungan `description` dan `when_to_use` dipotong pada 1.536 karakter dalam daftar skill untuk mengurangi penggunaan konteks. |

365| `when_to_use` | No | Additional context for when Claude should invoke the skill, such as trigger phrases or example requests. Appended to `description` in the skill listing and counts toward the 1,536-character cap. |382| `when_to_use` | No | Konteks tambahan untuk kapan Claude harus menginvokasi skill, seperti frasa pemicu atau permintaan contoh. Ditambahkan ke `description` dalam daftar skill dan dihitung menuju batas 1.536 karakter. |

366| `argument-hint` | No | Hint shown during autocomplete to indicate expected arguments. Example: `[issue-number]` or `[filename] [format]`. |383| `argument-hint` | No | Petunjuk yang ditampilkan selama autocomplete untuk menunjukkan argumen yang diharapkan. Contoh: `[issue-number]` atau `[filename] [format]`. |

367| `arguments` | No | Named positional arguments for [`$name` substitution](#available-string-substitutions) in the skill content. Accepts a space-separated string or a YAML list. Names map to argument positions in order. |384| `arguments` | No | Argumen posisional bernama untuk [`$name` substitution](#available-string-substitutions) dalam konten skill. Menerima string yang dipisahkan spasi atau daftar YAML. Nama memetakan ke posisi argumen secara berurutan. |

368| `disable-model-invocation` | No | Set to `true` to prevent Claude from automatically loading this skill. Use for workflows you want to trigger manually with `/name`. Also prevents the skill from being [preloaded into subagents](/docs/id/sub-agents#preload-skills-into-subagents). As of v2.1.196, also prevents the skill from running when a [scheduled task](/docs/id/scheduled-tasks) fires with the skill as its prompt. Default: `false`. |385| `disable-model-invocation` | No | Atur ke `true` untuk mencegah Claude memuat skill ini secara otomatis. Gunakan untuk alur kerja yang ingin Anda picu secara manual dengan `/name`. Juga mencegah skill dari [dimuat sebelumnya ke dalam subagents](/docs/id/sub-agents#preload-skills-into-subagents). Mulai dari v2.1.196, juga mencegah skill dari berjalan ketika [tugas terjadwal](/docs/id/scheduled-tasks) diaktifkan dengan skill sebagai promptnya. Default: `false`. |

369| `user-invocable` | No | Set to `false` when only Claude should invoke the skill: Claude Code hides it from the `/` menu and doesn't run it when you type `/name`. Use for background knowledge users shouldn't invoke directly. Default: `true`. |386| `user-invocable` | No | Atur ke `false` ketika hanya Claude yang harus menginvokasi skill: Claude Code menyembunyikannya dari menu `/` dan tidak menjalankannya ketika Anda mengetik `/name`. Gunakan untuk pengetahuan latar belakang yang tidak boleh pengguna invokasi secara langsung. Default: `true`. |

370| `allowed-tools` | No | Tools Claude can use without asking permission during the turn that invokes this skill. The grant clears when you send your next message. Accepts a space- or comma-separated string, or a YAML list. See [Pre-approve tools for a skill](#pre-approve-tools-for-a-skill). |387| `allowed-tools` | No | Tools yang dapat Claude gunakan tanpa meminta izin selama giliran yang menginvokasi skill ini. Hibah dihapus ketika Anda mengirim pesan berikutnya. Menerima string yang dipisahkan spasi atau koma, atau daftar YAML. Lihat [Pra-setujui tools untuk skill](#pre-approve-tools-for-a-skill). |

371| `disallowed-tools` | No | Tools removed from Claude's available pool while this skill is active. Use for autonomous skills that should never call certain tools, such as `AskUserQuestion` for a background loop. Accepts a space- or comma-separated string, or a YAML list. The restriction clears when you send your next message. Like deny rules, the field can't remove [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) while any other tool remains. |388| `disallowed-tools` | No | Tools yang dihapus dari pool tools yang tersedia Claude saat skill ini aktif. Gunakan untuk skills otonom yang tidak boleh memanggil tools tertentu, seperti `AskUserQuestion` untuk loop latar belakang. Menerima string yang dipisahkan spasi atau koma, atau daftar YAML. Pembatasan dihapus ketika Anda mengirim pesan berikutnya. Seperti aturan deny, bidang tidak dapat menghapus [`EndConversation`](/docs/id/tools-reference#endconversation-tool-behavior) saat tool lain tetap ada. |

372| `model` | No | Model to use when this skill is active. The override applies for the rest of the current turn and isn't saved to settings. The session model resumes when you send your next prompt. Accepts the same values as [`/model`](/docs/id/model-config), or `inherit` to keep the active model. A value excluded by your organization's [`availableModels`](/docs/id/model-config#restrict-model-selection) allowlist isn't used, and the session keeps its current model. In [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), and in [plan mode while the classifier reviews commands](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), a model that auto mode doesn't support also isn't used, and the session keeps its current model. With `context: fork`, the value sets the [forked subagent's model](#run-skills-in-a-subagent) instead, and an excluded value follows the [same rules as a subagent model override](/docs/id/model-config#restrict-model-selection). |389| `model` | No | Model yang digunakan ketika skill ini aktif. Penggantian berlaku untuk sisa giliran saat ini dan tidak disimpan ke pengaturan. Model sesi dilanjutkan ketika Anda mengirim prompt berikutnya. Menerima nilai yang sama seperti [`/model`](/docs/id/model-config), atau `inherit` untuk menjaga model aktif. Nilai yang dikecualikan oleh daftar izin [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda tidak digunakan, dan sesi menyimpan model saat ini. Dalam [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), dan dalam [mode plan saat classifier meninjau perintah](/docs/id/permission-modes#analyze-before-you-edit-with-plan-mode), model yang tidak didukung mode auto juga tidak digunakan, dan sesi menyimpan model saat ini. Dengan `context: fork`, nilai menetapkan [model subagent yang bercabang](#run-skills-in-a-subagent) sebagai gantinya, dan nilai yang dikecualikan mengikuti [aturan yang sama seperti penggantian model subagent](/docs/id/model-config#restrict-model-selection). |

373| `effort` | No | [Effort level](/docs/id/model-config#adjust-effort-level) when this skill is active. Overrides the session effort level. Default: inherits from session. Options: `low`, `medium`, `high`, `xhigh`, `max`; available levels depend on the model. |390| `effort` | No | [Tingkat effort](/docs/id/model-config#adjust-effort-level) ketika skill ini aktif. Mengganti tingkat effort sesi. Default: mewarisi dari sesi. Opsi: `low`, `medium`, `high`, `xhigh`, `max`; tingkat yang tersedia tergantung pada model. |

374| `context` | No | Set to `fork` to run in a forked subagent context. See [Run skills in a subagent](#run-skills-in-a-subagent). |391| `context` | No | Atur ke `fork` untuk berjalan dalam konteks subagent yang bercabang. Lihat [Jalankan skills dalam subagent](#run-skills-in-a-subagent). |

375| `agent` | No | Which subagent type to use when `context: fork` is set. |392| `agent` | No | Jenis subagent mana yang digunakan ketika `context: fork` diatur. |

376| `background` | No | Only applies with `context: fork`. Set to `false` to wait for the forked subagent's result in the turn that invoked the skill, instead of [running it in the background](#run-skills-in-a-subagent). Default: `true`. Requires Claude Code v2.1.218 or later. |393| `background` | No | Hanya berlaku dengan `context: fork`. Atur ke `false` untuk menunggu hasil subagent yang bercabang dalam giliran yang menginvokasi skill, daripada [menjalankannya di latar belakang](#run-skills-in-a-subagent). Default: `true`. Memerlukan Claude Code v2.1.218 atau lebih baru. |

377| `hooks` | No | Hooks that Claude Code registers when the skill is invoked and keeps running for the rest of the session. See [Hooks in skills and agents](/docs/id/hooks#hooks-in-skills-and-agents) for the configuration format and the `once` option. |394| `hooks` | No | Hooks yang Claude Code daftarkan ketika skill diinvokasi dan terus berjalan untuk sisa sesi. Lihat [Hooks dalam skills dan agents](/docs/id/hooks#hooks-in-skills-and-agents) untuk format konfigurasi dan opsi `once`. |

378| `paths` | No | Glob patterns that limit when this skill is activated. Accepts a comma-separated string or a YAML list. When set, Claude loads the skill automatically only when working with files matching the patterns. Uses the same format as [path-specific rules](/docs/id/memory#path-specific-rules). |395| `paths` | No | Pola glob yang membatasi kapan skill ini diaktifkan. Menerima string yang dipisahkan koma atau daftar YAML. Ketika diatur, Claude memuat skill secara otomatis hanya saat bekerja dengan file yang cocok dengan pola. Menggunakan format yang sama seperti [aturan khusus path](/docs/id/memory#path-specific-rules). |

379| `shell` | No | Shell to use for `` !`command` `` and ` ```! ` blocks in this skill. Accepts `bash` (default) or `powershell`. Setting `powershell` runs inline shell commands via PowerShell when the [PowerShell tool](/id/tools-reference#powershell-tool) is enabled: it's on by default on Windows without Git Bash, on by default with Git Bash for claude.ai and Console accounts, and needs `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` in Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry sessions and on macOS, Linux, and WSL. Set it to `0` to turn the tool off. |396| `shell` | No | Shell yang digunakan untuk `` !`command` `` dan ` ```! ` blocks dalam skill ini. Menerima `bash` (default) atau `powershell`. Mengatur `powershell` menjalankan perintah shell inline melalui PowerShell ketika [tool PowerShell](/id/tools-reference#powershell-tool) diaktifkan: itu aktif secara default di Windows tanpa Git Bash, aktif secara default dengan Git Bash untuk akun claude.ai dan Console, dan memerlukan `CLAUDE_CODE_USE_POWERSHELL_TOOL=1` dalam sesi Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry dan di macOS, Linux, dan WSL. Atur ke `0` untuk mematikan tool. |

380| `metadata` | No | Free-form YAML map for your own key-value data, such as entitlement or catalog fields, read by your own tooling from `SKILL.md`. Claude Code doesn't act on its contents, and drops a value that isn't a map. Don't reuse frontmatter field names such as `paths` as keys. |397| `metadata` | No | Peta YAML bentuk bebas untuk data kunci-nilai Anda sendiri, seperti bidang entitlement atau katalog, dibaca oleh tooling Anda sendiri dari `SKILL.md`. Claude Code tidak bertindak atas isinya, dan menjatuhkan nilai yang bukan peta. Jangan gunakan kembali nama bidang frontmatter seperti `paths` sebagai kunci. |

381| `license` | No | License covering the skill. Part of the [Agent Skills](https://agentskills.io) spec; see [Using skill frontmatter outside Claude Code](#using-skill-frontmatter-outside-claude-code). Claude Code accepts the field but doesn't act on it. |398| `license` | No | Lisensi yang mencakup skill. Bagian dari spesifikasi [Agent Skills](https://agentskills.io); lihat [Menggunakan skill frontmatter di luar Claude Code](#using-skill-frontmatter-outside-claude-code). Claude Code menerima bidang tetapi tidak bertindak atasnya. |

382| `compatibility` | No | Environment requirements for the skill, such as intended products or system prerequisites, as defined by the [Agent Skills](https://agentskills.io) spec; see [Using skill frontmatter outside Claude Code](#using-skill-frontmatter-outside-claude-code). Accepts a string of up to 500 characters. Claude Code accepts the field but doesn't act on it. |399| `compatibility` | No | Persyaratan lingkungan untuk skill, seperti produk yang dimaksudkan atau prasyarat sistem, seperti yang didefinisikan oleh spesifikasi [Agent Skills](https://agentskills.io); lihat [Menggunakan skill frontmatter di luar Claude Code](#using-skill-frontmatter-outside-claude-code). Menerima string hingga 500 karakter. Claude Code menerima bidang tetapi tidak bertindak atasnya. |

383 400 

384<h4 id="using-skill-frontmatter-outside-claude-code">401<h4 id="using-skill-frontmatter-outside-claude-code">

385 Menggunakan skill frontmatter di luar Claude Code402 Menggunakan skill frontmatter di luar Claude Code


406 Bagaimana skill mendapatkan nama perintahnya423 Bagaimana skill mendapatkan nama perintahnya

407</h4>424</h4>

408 425 

409Perintah yang Anda ketik untuk menginvokasi skill berasal dari tempat file skill berada dan, untuk skill plugin, juga dari bidang frontmatter `name`. Dalam skill pribadi atau proyek, `name` hanya menetapkan label tampilan yang ditampilkan dalam daftar skill, dan perintah masih berasal dari nama direktori. Dalam skill plugin, `name` menetapkan segmen terakhir dari perintah dan awalan plugin tetap ada.426Perintah yang Anda ketik untuk menginvokasi skill berasal dari tempat file skill berada dan, untuk direktori skill dan plugin skills, dari bidang frontmatter `name`. Dalam skill pribadi atau proyek, `name` menetapkan perintah yang ditampilkan menu `/` dan yang Anda ketik, kecuali perintah lain sudah menggunakan nama itu. Nama direktori juga menginvokasi skill. Dalam plugin skill, `name` menetapkan segmen terakhir dari perintah dan awalan plugin tetap ada.

410 427 

411Tabel di bawah menunjukkan dari mana nama perintah berasal untuk setiap tata letak:428Tabel di bawah menunjukkan dari mana nama perintah berasal untuk setiap tata letak:

412 429 

413| Skill location | Command name source | Example |430| Skill location | Command name source | Example |

414| :- | :- | :- |431| :- | :- | :- |

415| Skill directory under `~/.claude/skills/` or `.claude/skills/` | Directory name | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |432| Skill directory under `~/.claude/skills/` or `.claude/skills/` | Frontmatter `name` or the directory name | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging`, or `/deploy` with `name: deploy` |

416| [Nested](#where-skills-live) `.claude/skills/` directory, when the name clashes with another skill | Subdirectory path relative to the working directory, then the skill directory name | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |433| [Nested](#where-skills-live) `.claude/skills/` directory, when the directory name clashes with another skill | Subdirectory path relative to the working directory, then the skill directory name | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

417| File under `.claude/commands/` | File name without extension | `.claude/commands/deploy.md` → `/deploy` |434| File under `.claude/commands/` | File name without extension | `.claude/commands/deploy.md` → `/deploy` |

418| File in a subdirectory of `.claude/commands/` | Subdirectory path relative to `commands/` with each `/` replaced by `:`, then the file name without extension | `.claude/commands/frontend/component.md` → `/frontend:component` |435| File in a subdirectory of `.claude/commands/` | Subdirectory path relative to `commands/` with each `/` replaced by `:`, then the file name without extension | `.claude/commands/frontend/component.md` → `/frontend:component` |

419| Plugin `skills/` subdirectory | Frontmatter `name` or the directory name, namespaced by plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, or `/my-plugin:fancy` with `name: fancy` |436| Plugin `skills/` subdirectory | Frontmatter `name` or the directory name, namespaced by plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, or `/my-plugin:fancy` with `name: fancy` |


434 451 

435| Variable | Description |452| Variable | Description |

436| :- | :- |453| :- | :- |

437| `$ARGUMENTS` | All arguments passed when invoking the skill. When no placeholder receives an argument, Claude Code appends them as `ARGUMENTS: <value>`. See [Pass arguments to skills](#pass-arguments-to-skills). |454| `$ARGUMENTS` | Semua argumen yang diteruskan saat menginvokasi skill. Ketika tidak ada placeholder yang menerima argumen, Claude Code menambahkannya sebagai `ARGUMENTS: <value>`. Lihat [Teruskan argumen ke skills](#pass-arguments-to-skills). |

438| `$ARGUMENTS[N]` | Access a specific argument by 0-based index, such as `$ARGUMENTS[0]` for the first argument. |455| `$ARGUMENTS[N]` | Akses argumen tertentu berdasarkan indeks berbasis 0, seperti `$ARGUMENTS[0]` untuk argumen pertama. |

439| `$N` | Shorthand for `$ARGUMENTS[N]`, such as `$0` for the first argument or `$1` for the second. |456| `$N` | Shorthand untuk `$ARGUMENTS[N]`, seperti `$0` untuk argumen pertama atau `$1` untuk argumen kedua. |

440| `$name` | Named argument declared in the [`arguments`](#frontmatter-reference) frontmatter list. Names map to positions in order, so with `arguments: [issue, branch]` the placeholder `$issue` expands to the first argument and `$branch` to the second. |457| `$name` | Argumen bernama yang dideklarasikan dalam daftar frontmatter [`arguments`](#frontmatter-reference). Nama memetakan ke posisi secara berurutan, jadi dengan `arguments: [issue, branch]` placeholder `$issue` berkembang menjadi argumen pertama dan `$branch` menjadi argumen kedua. |

441| `${CLAUDE_SESSION_ID}` | The current session ID. Useful for logging, creating session-specific files, or correlating skill output with sessions. |458| `${CLAUDE_SESSION_ID}` | ID sesi saat ini. Berguna untuk logging, membuat file khusus sesi, atau mengkorelasikan output skill dengan sesi. |

442| `${CLAUDE_EFFORT}` | The current effort level: `low`, `medium`, `high`, `xhigh`, or `max`. Ultracode is not a distinct level and reports as `xhigh`. Use this to adapt skill instructions to the active effort setting. |459| `${CLAUDE_EFFORT}` | Tingkat effort saat ini: `low`, `medium`, `high`, `xhigh`, atau `max`. Gunakan ini untuk menyesuaikan instruksi skill dengan pengaturan effort aktif. |

443| `${CLAUDE_SKILL_DIR}` | The directory containing the skill's `SKILL.md` file. For plugin skills, this is the skill's subdirectory within the plugin, not the plugin root. Use this in bash injection commands to reference scripts or files bundled with the skill, regardless of the current working directory. |460| `${CLAUDE_SKILL_DIR}` | Direktori yang berisi file `SKILL.md` skill. Untuk plugin skills, ini adalah subdirektori skill dalam plugin, bukan akar plugin. Gunakan ini dalam perintah injeksi bash untuk mereferensikan skrip atau file yang disertakan dengan skill, terlepas dari direktori kerja saat ini. |

444| `${CLAUDE_PROJECT_DIR}` | The project root directory. This is the same path [hooks](/docs/id/hooks#reference-scripts-by-path) and MCP servers receive as `CLAUDE_PROJECT_DIR`. Use this to reference project-local scripts or files, such as `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, independent of where the skill is installed. |461| `${CLAUDE_PROJECT_DIR}` | Direktori akar proyek. Ini adalah path yang sama yang [hooks](/docs/id/hooks#reference-scripts-by-path) dan server MCP terima sebagai `CLAUDE_PROJECT_DIR`. Gunakan ini untuk mereferensikan skrip atau file lokal proyek, seperti `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`, terlepas dari tempat skill diinstal. |

445| `${CLAUDE_PLUGIN_ROOT}` | The plugin's installation directory. Substituted only in plugin skills. Use this to reference scripts or files bundled anywhere in the plugin, including resources shared between the plugin's skills. See [plugin environment variables](/docs/id/plugins/manifest-reference#environment-variables). |462| `${CLAUDE_PLUGIN_ROOT}` | Direktori instalasi plugin. Disubstitusi hanya dalam plugin skills. Gunakan ini untuk mereferensikan skrip atau file yang disertakan di mana pun dalam plugin, termasuk sumber daya yang dibagikan antara skills plugin. Lihat [variabel lingkungan plugin](/docs/id/plugins/manifest-reference#environment-variables). |

446| `${CLAUDE_PLUGIN_DATA}` | The plugin's [persistent data directory](/docs/id/plugins/components#path-variables-and-persistent-data), which survives plugin updates. Substituted only in plugin skills. Use this to reference installed dependencies, generated files, or caches that must outlive an update. |463| `${CLAUDE_PLUGIN_DATA}` | [Direktori data persisten](/docs/id/plugins/components#path-variables-and-persistent-data) plugin, yang bertahan dari pembaruan plugin. Disubstitusi hanya dalam plugin skills. Gunakan ini untuk mereferensikan dependensi yang diinstal, file yang dihasilkan, atau cache yang harus bertahan dari pembaruan. |

447 464 

448Claude Code menggantikan `${CLAUDE_SKILL_DIR}` dan `${CLAUDE_PROJECT_DIR}` di dua tempat: konten markdown skill, dan aturan Bash dalam frontmatter [`allowed-tools`](#frontmatter-reference). Dalam skill plugin, Claude Code menggantikan `${CLAUDE_PLUGIN_ROOT}` dan `${CLAUDE_PLUGIN_DATA}` di tempat yang sama. Menggunakan variabel yang sama di kedua tempat memungkinkan skill menjalankan skrip bundel tanpa prompt izin. Skill berikut menunjukkan polanya:465Claude Code menggantikan `${CLAUDE_SKILL_DIR}` dan `${CLAUDE_PROJECT_DIR}` di dua tempat: konten markdown skill, dan aturan Bash dalam frontmatter [`allowed-tools`](#frontmatter-reference). Dalam skill plugin, Claude Code menggantikan `${CLAUDE_PLUGIN_ROOT}` dan `${CLAUDE_PLUGIN_DATA}` di tempat yang sama. Menggunakan variabel yang sama di kedua tempat memungkinkan skill menjalankan skrip bundel tanpa prompt izin. Skill berikut menunjukkan polanya:

449 466 


826Skill(deploy *)843Skill(deploy *)

827```844```

828 845 

829Sintaks izin: `Skill(name)` untuk kecocokan tepat, `Skill(name *)` untuk kecocokan awalan dengan argumen apa pun.846Sintaks izin: `Skill(name)` untuk kecocokan tepat, `Skill(name *)` untuk kecocokan awalan dengan argumen apa pun. Dalam aturan `allow`, awalan di luar [namespace yang dicadangkan untuk skills yang disinkronkan](#names-reserved-for-synced-skills) tidak cocok dengan nama di dalamnya: `Skill(anthropic *)` tidak mencakup `anthropic-skills:pdf`.

830 847 

831Jika aturan `deny` Anda menamai alias atau nama yang tidak memenuhi syarat daripada nama skill itu sendiri, Claude Code masih memblokir skill: dengan `Skill(review)` itu memblokir bundel `/code-review` melalui alias `/review`-nya, dan dengan `Skill(deploy)` itu memblokir [skill bersarang](#where-skills-live) yang terdaftar sebagai `apps/web:deploy` melalui nama yang tidak memenuhi syaratnya. Sebelum v2.1.260, Claude Code tidak memblokir skill bersarang yang terdaftar di bawah nama yang memenuhi syaratnya ketika aturan deny hanya menamai nama yang tidak memenuhi syarat.848Jika aturan `deny` Anda menamai alias atau nama yang tidak memenuhi syarat daripada nama skill itu sendiri, Claude Code masih memblokir skill: dengan `Skill(review)` itu memblokir bundel `/code-review` melalui alias `/review`-nya, dan dengan `Skill(deploy)` itu memblokir [skill bersarang](#where-skills-live) yang terdaftar sebagai `apps/web:deploy` melalui nama yang tidak memenuhi syaratnya. Sebelum v2.1.260, Claude Code tidak memblokir skill bersarang yang terdaftar di bawah nama yang memenuhi syaratnya ketika aturan deny hanya menamai nama yang tidak memenuhi syarat.

832 849 

833Claude Code mencocokkan aturan `allow` hanya terhadap nama skill itu sendiri dan nama dalam invokasi Claude.850Claude Code mencocokkan aturan `allow` hanya terhadap nama skill itu sendiri dan nama dalam invokasi Claude.

834 851 

852Untuk menyetujui [skill yang disinkronkan](#how-synced-skills-behave) tanpa prompt, namai dalam [namespace yang dicadangkan](#names-reserved-for-synced-skills)-nya: `Skill(anthropic-skills:pdf)` menyetujui skill `pdf` yang disinkronkan, dan `Skill(anthropic-skills *)` menyetujui setiap skill yang disinkronkan.

853 

835**Sembunyikan skills individual** dengan menambahkan `disable-model-invocation: true` ke frontmatter mereka. Ini menghapus skill dari konteks Claude sepenuhnya.854**Sembunyikan skills individual** dengan menambahkan `disable-model-invocation: true` ke frontmatter mereka. Ini menghapus skill dari konteks Claude sepenuhnya.

836 855 

837<Note>856<Note>

statusline.md +3 −3

Details

175 175 

176Claude Code menangkap output skrip Anda alih-alih menghubungkannya langsung ke terminal, jadi `tput cols` dan deteksi lebar tingkat bahasa tidak dapat membaca ukuran terminal dari dalam skrip. Baca variabel lingkungan `COLUMNS` dan `LINES` sebagai gantinya. Claude Code menetapkan ini ke dimensi terminal saat ini sebelum menjalankan skrip Anda.176Claude Code menangkap output skrip Anda alih-alih menghubungkannya langsung ke terminal, jadi `tput cols` dan deteksi lebar tingkat bahasa tidak dapat membaca ukuran terminal dari dalam skrip. Baca variabel lingkungan `COLUMNS` dan `LINES` sebagai gantinya. Claude Code menetapkan ini ke dimensi terminal saat ini sebelum menjalankan skrip Anda.

177 177 

178<Note>Baris status berjalan secara lokal dan tidak menggunakan token API. Itu sementara bersembunyi selama interaksi UI tertentu, termasuk saran pelengkapan otomatis, menu bantuan, dan prompt izin.</Note>178<Note>Baris status berjalan secara lokal dan tidak menggunakan token API. Itu sementara bersembunyi selama interaksi UI tertentu, termasuk menu bantuan dan prompt izin.</Note>

179 179 

180<h2 id="available-data">180<h2 id="available-data">

181 Data yang tersedia181 Data yang tersedia


202| `context_window.current_usage` | Jumlah token dari panggilan API terakhir, dijelaskan dalam [bidang jendela konteks](#context-window-fields) |202| `context_window.current_usage` | Jumlah token dari panggilan API terakhir, dijelaskan dalam [bidang jendela konteks](#context-window-fields) |

203| `exceeds_200k_tokens` | Apakah jumlah token total (input, cache, dan output token digabungkan) dari respons API terbaru melebihi 200k. Ini adalah ambang batas tetap terlepas dari ukuran jendela konteks aktual. |203| `exceeds_200k_tokens` | Apakah jumlah token total (input, cache, dan output token digabungkan) dari respons API terbaru melebihi 200k. Ini adalah ambang batas tetap terlepas dari ukuran jendela konteks aktual. |

204| `fast_mode` | Apakah [fast mode](/docs/id/fast-mode) diaktifkan untuk sesi |204| `fast_mode` | Apakah [fast mode](/docs/id/fast-mode) diaktifkan untuk sesi |

205| `effort.level` | Tingkat upaya penalaran saat ini (`low`, `medium`, `high`, `xhigh`, atau `max`). Mencerminkan nilai sesi langsung, termasuk perubahan `/effort` pertengahan sesi. Ultracode bukan tingkat yang berbeda dan melaporkan sebagai `xhigh`. Tidak ada ketika model saat ini tidak mendukung parameter upaya |205| `effort.level` | Tingkat upaya penalaran saat ini (`low`, `medium`, `high`, `xhigh`, atau `max`). Mencerminkan nilai sesi langsung, termasuk perubahan `/effort` pertengahan sesi. Tidak ada ketika model saat ini tidak mendukung parameter upaya |

206| `thinking.enabled` | Apakah pemikiran diperpanjang diaktifkan untuk sesi |206| `thinking.enabled` | Apakah pemikiran diperpanjang diaktifkan untuk sesi |

207| `rate_limits.five_hour.used_percentage`, `rate_limits.seven_day.used_percentage` | Persentase batas laju 5 jam atau 7 hari yang dikonsumsi, dari 0 hingga 100 |207| `rate_limits.five_hour.used_percentage`, `rate_limits.seven_day.used_percentage` | Persentase batas laju 5 jam atau 7 hari yang dikonsumsi, dari 0 hingga 100 |

208| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | Detik epoch Unix ketika jendela batas laju 5 jam atau 7 hari direset |208| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | Detik epoch Unix ketika jendela batas laju 5 jam atau 7 hari direset |


1166* Di Windows dengan Git Bash terinstal, garis miring terbalik dalam jalur `command` kemungkinan besar dikonsumsi sebagai karakter escape sebelum skrip berjalan. Gunakan garis miring ke depan dalam jalur. Lihat [Konfigurasi Windows](#windows-configuration).1166* Di Windows dengan Git Bash terinstal, garis miring terbalik dalam jalur `command` kemungkinan besar dikonsumsi sebagai karakter escape sebelum skrip berjalan. Gunakan garis miring ke depan dalam jalur. Lihat [Konfigurasi Windows](#windows-configuration).

1167* Jika `disableAllHooks` adalah `true` di luar pengaturan terkelola setelah [precedence pengaturan](/docs/id/hooks#disable-or-remove-hooks) diterapkan, Claude Code hanya menjalankan `statusLine` dari pengaturan terkelola, dan tanpa `statusLine` terkelola baris status dinonaktifkan. Hapus pengaturan, atau atur ke `false` dalam file yang mengaturnya, untuk mengaktifkan kembali. Lihat [`disableAllHooks`](/docs/id/settings-reference#disableallhooks).1167* Jika `disableAllHooks` adalah `true` di luar pengaturan terkelola setelah [precedence pengaturan](/docs/id/hooks#disable-or-remove-hooks) diterapkan, Claude Code hanya menjalankan `statusLine` dari pengaturan terkelola, dan tanpa `statusLine` terkelola baris status dinonaktifkan. Hapus pengaturan, atau atur ke `false` dalam file yang mengaturnya, untuk mengaktifkan kembali. Lihat [`disableAllHooks`](/docs/id/settings-reference#disableallhooks).

1168* Jika organisasi Anda mengatur `allowManagedHooksOnly` dalam pengaturan terkelola, baris status kustom Anda hilang tanpa peringatan: Anda hanya dapat mendapatkan baris status dari nilai `statusLine` dalam pengaturan terkelola tersebut. Lihat [apa yang berjalan di bawah `allowManagedHooksOnly`](/docs/id/settings-reference#what-runs-under-allowmanagedhooksonly) untuk perilaku lengkap, dan tanyakan kepada administrator Anda apakah pengaturan ini berlaku untuk Anda.1168* Jika organisasi Anda mengatur `allowManagedHooksOnly` dalam pengaturan terkelola, baris status kustom Anda hilang tanpa peringatan: Anda hanya dapat mendapatkan baris status dari nilai `statusLine` dalam pengaturan terkelola tersebut. Lihat [apa yang berjalan di bawah `allowManagedHooksOnly`](/docs/id/settings-reference#what-runs-under-allowmanagedhooksonly) untuk perilaku lengkap, dan tanyakan kepada administrator Anda apakah pengaturan ini berlaku untuk Anda.

1169* Jalankan `claude --debug` untuk mencatat kode keluar dan stderr dari invokasi baris status pertama dalam sesi1169* Jalankan `claude --debug` untuk mencatat stderr skrip Anda pada setiap invokasi baris status, dan kode keluarnya pada invokasi pertama dalam sesi

1170* Minta Claude untuk membaca file pengaturan Anda dan jalankan perintah `statusLine` secara langsung untuk mengungkap kesalahan1170* Minta Claude untuk membaca file pengaturan Anda dan jalankan perintah `statusLine` secara langsung untuk mengungkap kesalahan

1171 1171 

1172**Baris status menampilkan `--` atau nilai kosong**1172**Baris status menampilkan `--` atau nilai kosong**

sub-agents.md +183 −181

Details

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

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

4 4 

5# Buat subagent khusus5# Buat subagen kustom

6 6 

7> Buat dan gunakan subagent AI khusus di Claude Code untuk alur kerja khusus tugas dan manajemen konteks yang lebih baik.7> Buat dan gunakan subagen AI khusus di Claude Code untuk alur kerja spesifik tugas dan manajemen konteks yang lebih baik.

8 8 

9Subagent adalah asisten AI khusus yang menangani jenis tugas tertentu. Gunakan satu ketika tugas sampingan akan membanjiri percakapan utama Anda dengan hasil pencarian, log, atau konten file yang tidak akan Anda referensikan lagi: subagent melakukan pekerjaan itu dalam konteksnya sendiri dan hanya mengembalikan ringkasan. Tentukan subagent khusus ketika Anda terus menelurkan jenis pekerja yang sama dengan instruksi yang sama.9Subagen adalah asisten AI khusus yang menangani jenis tugas tertentu. Gunakan satu ketika tugas sampingan akan membanjiri percakapan utama Anda dengan hasil pencarian, log, atau konten file yang tidak akan Anda referensikan lagi: subagen melakukan pekerjaan itu dalam konteksnya sendiri dan mengembalikan hanya ringkasannya. Tentukan subagen kustom ketika Anda terus-menerus menjalankan jenis pekerja yang sama dengan instruksi yang sama.

10 10 

11Setiap subagent berjalan di jendela konteksnya sendiri dengan prompt sistem khusus, akses alat tertentu, dan izin independen. Ketika Claude menemukan tugas yang sesuai dengan deskripsi subagent, Claude mendelegasikan ke subagent tersebut, yang bekerja secara independen dan mengembalikan hasil. Untuk melihat penghematan konteks dalam praktik, [visualisasi jendela konteks](/docs/id/context-window) menjelaskan sesi di mana subagent menangani penelitian di jendela terpisahnya sendiri.11Setiap subagen berjalan dalam jendela konteksnya sendiri dengan prompt sistem kustom, akses alat tertentu, dan izin independen. Subagen juga mengirimkan permintaannya sendiri, yang dihitung terhadap [batas penggunaan](/docs/id/costs#plan-usage-breakdown) yang sama dengan percakapan utama Anda. Ketika Claude menemukan tugas yang cocok dengan deskripsi subagen, Claude mendelegasikan ke subagen tersebut, yang bekerja secara independen dan mengembalikan hasil. Untuk melihat penghematan konteks dalam praktik, [visualisasi jendela konteks](/docs/id/context-window) menjelaskan sesi di mana subagen menangani penelitian dalam jendela terpisahnya sendiri.

12 12 

13<Note>13<Note>

14 Subagent bekerja dalam satu sesi. Untuk menjalankan banyak sesi independen secara paralel dan memantaunya dari satu tempat, lihat [agen latar belakang](/docs/id/agent-view). Untuk sesi terpisah yang melewatkan pesan satu sama lain, lihat [pesan lintas sesi](/docs/id/cross-session-messaging). Untuk tim yang terkoordinasi dari sesi yang Claude luncurkan dan awasi, lihat [tim agen](/docs/id/agent-teams).14 Subagen bekerja dalam satu sesi. Untuk menjalankan banyak sesi independen secara paralel dan memantaunya dari satu tempat, lihat [agen latar belakang](/docs/id/agent-view). Untuk sesi terpisah yang mengirimkan pesan satu sama lain, lihat [pesan lintas sesi](/docs/id/cross-session-messaging). Untuk tim sesi yang terkoordinasi yang Claude buat dan awasi, lihat [tim agen](/docs/id/agent-teams).

15</Note>15</Note>

16 16 

17Subagent membantu Anda:17Subagen membantu Anda:

18 18 

19* **Mempertahankan konteks** dengan menjaga eksplorasi dan implementasi di luar percakapan utama Anda19* **Pertahankan konteks** dengan menjaga eksplorasi dan implementasi di luar percakapan utama Anda

20* **Menerapkan batasan** dengan membatasi alat mana yang dapat digunakan subagent20* **Terapkan batasan** dengan membatasi alat mana yang dapat digunakan subagen

21* **Menggunakan kembali konfigurasi** di seluruh proyek dengan subagent tingkat pengguna21* **Gunakan kembali konfigurasi** di seluruh proyek dengan subagen tingkat pengguna

22* **Mengkhususkan perilaku** dengan prompt sistem yang terfokus untuk domain tertentu22* **Spesialisasi perilaku** dengan prompt sistem yang terfokus untuk domain tertentu

23* **Mengontrol biaya** dengan merutekan tugas ke model yang lebih cepat dan lebih murah seperti Haiku23* **Kontrol biaya** dengan merutekan tugas ke model yang lebih cepat dan lebih murah seperti Haiku

24 24 

25Claude menggunakan deskripsi setiap subagent untuk memutuskan kapan mendelegasikan tugas. Ketika Anda membuat subagent, tulis deskripsi yang jelas sehingga Claude tahu kapan menggunakannya.25Claude menggunakan deskripsi setiap subagen untuk memutuskan kapan mendelegasikan tugas. Ketika Anda membuat subagen, tulis deskripsi yang jelas sehingga Claude tahu kapan menggunakannya.

26 26 

27Deskripsi tersebut menggunakan konteks, jadi tetap singkat. Ketika deskripsi gabungan subagent Anda, kecuali yang bawaan, melebihi 15.000 token, Claude Code menampilkan [peringatan saat startup dengan jumlah token total](/docs/id/errors#agent-descriptions-are-over-the-15000-token-limit). Potong bidang `description` subagent Anda, dan pindahkan detail ke prompt sistem setiap subagent, yang hanya dimuat ketika subagent itu berjalan.27Deskripsi tersebut menggunakan konteks, jadi simpan deskripsi tetap singkat. Ketika deskripsi gabungan subagen Anda, kecuali yang bawaan, melebihi 15.000 token, Claude Code menampilkan [peringatan saat startup dengan jumlah token total](/docs/id/errors#agent-descriptions-are-over-the-15000-token-limit). Potong bidang `description` subagen Anda, dan pindahkan detail ke prompt sistem setiap subagen, yang hanya dimuat ketika subagen tersebut berjalan.

28 28 

29<h2 id="built-in-subagents">29<h2 id="built-in-subagents">

30 Subagent bawaan30 Subagent bawaan


160 Konfigurasi subagent160 Konfigurasi subagent

161</h2>161</h2>

162 162 

163Lokasi file subagent menentukan siapa yang dapat mengaksesnya, dan frontmatter-nya menentukan apa yang dapat dilakukannya. Bagian ini mencakup di mana file subagent berada dan setiap bidang yang didukungnya.163Lokasi file subagent menentukan siapa yang dapat menggunakannya, dan frontmatter-nya menentukan apa yang dapat dilakukannya. Bagian ini mencakup tempat file subagent berada dan setiap field yang didukungnya.

164 164 

165<h3 id="choose-the-subagent-scope">165<h3 id="choose-the-subagent-scope">

166 Pilih cakupan subagent166 Pilih cakupan subagent


170 170 

171| Lokasi | Cakupan | Prioritas | Cara membuat |171| Lokasi | Cakupan | Prioritas | Cara membuat |

172| :- | :- | :- | :- |172| :- | :- | :- | :- |

173| Pengaturan terkelola | Seluruh organisasi | 1 (tertinggi) | Digunakan melalui [pengaturan terkelola](/docs/id/settings) |173| Managed settings | Seluruh organisasi | 1 (tertinggi) | Digunakan melalui [managed settings](/docs/id/settings) |

174| Flag CLI `--agents` | Sesi saat ini | 2 | Lewatkan JSON saat meluncurkan Claude Code |174| `--agents` CLI flag | Sesi saat ini | 2 | Lewatkan JSON saat meluncurkan Claude Code |

175| `.claude/agents/` | Proyek saat ini | 3 | Tanyakan Claude, atau buat file secara manual |175| `.claude/agents/` | Proyek saat ini | 3 | Tanya Claude, atau buat file secara manual |

176| `~/.claude/agents/` | Semua proyek Anda | 4 | Tanyakan Claude, atau buat file secara manual |176| `~/.claude/agents/` | Semua proyek Anda | 4 | Tanya Claude, atau buat file secara manual |

177| Direktori `agents/` plugin | Tempat plugin diaktifkan | 5 (terendah) | Diinstal dengan [plugins](/docs/id/plugins/overview) |177| Direktori `agents/` plugin | Tempat plugin diaktifkan | 5 (terendah) | Diinstal dengan [plugins](/docs/id/plugins/overview) |

178 178 

179**Subagent proyek** (`.claude/agents/`) ideal untuk subagent khusus untuk basis kode. Periksa mereka ke kontrol versi sehingga tim Anda dapat menggunakannya dan meningkatkannya secara kolaboratif.179**Subagent proyek** (`.claude/agents/`) ideal untuk subagent yang spesifik untuk codebase. Periksa mereka ke dalam version control sehingga tim Anda dapat menggunakan dan meningkatkannya secara kolaboratif.

180 180 

181Subagent proyek ditemukan dengan berjalan naik dari direktori kerja saat ini, sehingga setiap `.claude/agents/` antara sana dan akar repositori dipindai. Ketika lebih dari satu direktori bersarang ini mendefinisikan `name` yang sama, Claude Code menggunakan definisi yang paling dekat dengan direktori kerja.181Subagent proyek ditemukan dengan berjalan naik dari direktori kerja saat ini, jadi setiap `.claude/agents/` antara sana dan akar repositori dipindai. Ketika lebih dari satu direktori bersarang ini mendefinisikan `name` yang sama, Claude Code menggunakan definisi yang paling dekat dengan direktori kerja.

182 182 

183Ketika Anda menambahkan direktori dengan `--add-dir` atau `/add-dir`, Claude Code juga memuat folder `.claude/agents/` miliknya, bersama dengan subagent proyek Anda. Lihat [Direktori tambahan](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) untuk jenis konfigurasi lain mana yang dimuat dari `--add-dir`. Untuk berbagi subagent di seluruh proyek tanpa `--add-dir`, gunakan `~/.claude/agents/` atau [plugin](/docs/id/plugins/overview).183Ketika Anda menambahkan direktori dengan `--add-dir` atau `/add-dir`, Claude Code juga memuat folder `.claude/agents/` miliknya, bersama dengan subagent proyek Anda. Lihat [Additional directories](/docs/id/permissions#additional-directories-grant-file-access-not-configuration) untuk jenis konfigurasi lain mana yang dimuat dari `--add-dir`. Untuk berbagi subagent di seluruh proyek tanpa `--add-dir`, gunakan `~/.claude/agents/` atau [plugin](/docs/id/plugins/overview).

184 184 

185**Subagent pengguna** (`~/.claude/agents/`) adalah subagent pribadi yang tersedia di semua proyek Anda.185**Subagent pengguna** (`~/.claude/agents/`) adalah subagent pribadi yang tersedia di semua proyek Anda.

186 186 

187Claude Code memindai `.claude/agents/` dan `~/.claude/agents/` secara rekursif, sehingga Anda dapat mengorganisir definisi ke dalam subfolder seperti `agents/review/` atau `agents/research/`. Jalur subdirektori tidak mempengaruhi cara subagent diidentifikasi atau dipanggil, karena identitas hanya berasal dari bidang frontmatter `name`.187Claude Code memindai `.claude/agents/` dan `~/.claude/agents/` secara rekursif, jadi Anda dapat mengorganisir definisi ke dalam subfolder seperti `agents/review/` atau `agents/research/`. Jalur subdirektori tidak mempengaruhi cara subagent diidentifikasi atau dipanggil, karena identitas hanya berasal dari field frontmatter `name`.

188 188 

189Jaga nilai `name` tetap unik di seluruh pohon: jika dua file dalam direktori `.claude/agents/` yang sama, termasuk subfolder-nya, mendeklarasikan nama yang sama, Claude Code memuat hanya satu dari mereka, dipilih berdasarkan urutan pembacaan sistem file daripada prioritas yang terdokumentasi. Di seluruh direktori proyek bersarang, definisi yang paling dekat dengan direktori kerja menang, seperti dijelaskan di atas. Pemeriksaan setup [`/doctor`](/docs/id/commands#all-commands) melaporkan file dalam direktori yang sama yang berbagi nama dan menyarankan untuk mengganti nama atau menghapus semua kecuali satu. Sebelum v2.1.205, `/doctor` membuka layar diagnostik yang mencantumkan duplikat dan menunjukkan definisi mana yang aktif.189Jaga nilai `name` tetap unik di seluruh pohon: jika dua file di bawah direktori `.claude/agents/` yang sama, termasuk subfolder-nya, mendeklarasikan nama yang sama, Claude Code hanya memuat salah satunya, dipilih berdasarkan urutan pembacaan filesystem daripada prioritas yang terdokumentasi. Di seluruh direktori proyek bersarang, definisi yang paling dekat dengan direktori kerja menang, seperti dijelaskan di atas. Pemeriksaan setup [`/doctor`](/docs/id/commands#all-commands) melaporkan file di direktori yang sama yang berbagi nama dan menyarankan untuk mengganti nama atau menghapus semua kecuali satu. Sebelum v2.1.205, `/doctor` membuka layar diagnostik yang mencantumkan duplikat dan menunjukkan definisi mana yang aktif.

190 190 

191Direktori `agents/` plugin juga dipindai secara rekursif. Tidak seperti cakupan proyek dan pengguna, subfolder di dalam direktori `agents/` plugin menjadi bagian dari [pengenal yang dibatasi cakupan](#invoke-subagents-explicitly): file di `agents/review/security.md` dalam plugin `my-plugin` terdaftar sebagai `my-plugin:review:security`.191Direktori `agents/` plugin juga dipindai secara rekursif. Tidak seperti cakupan proyek dan pengguna, subfolder di dalam direktori `agents/` plugin menjadi bagian dari [scoped identifier](#invoke-subagents-explicitly): file di `agents/review/security.md` dalam plugin `my-plugin` terdaftar sebagai `my-plugin:review:security`.

192 192 

193**Subagent yang ditentukan CLI** dilewatkan sebagai JSON saat meluncurkan Claude Code. Mereka hanya ada untuk sesi itu dan tidak disimpan ke disk, menjadikannya berguna untuk pengujian cepat atau skrip otomasi. Anda dapat mendefinisikan beberapa subagent dalam satu panggilan `--agents`:193**Subagent yang didefinisikan CLI** dilewatkan sebagai JSON saat meluncurkan Claude Code. Mereka hanya ada untuk sesi itu dan tidak disimpan ke disk, menjadikannya berguna untuk pengujian cepat atau skrip otomasi. Anda dapat mendefinisikan beberapa subagent dalam satu panggilan `--agents`:

194 194 

195<Tabs>195<Tabs>

196 <Tab title="macOS, Linux, WSL">196 <Tab title="macOS, Linux, WSL">


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. `color` dan `experimental` tidak diterima di sini dan diabaikan daripada ditolak.233Dalam [non-interactive mode](/docs/id/headless), `--agents` juga menerima jalur ke file JSON yang menyimpan objek yang sama, untuk definisi yang terlalu besar untuk dilewatkan di baris perintah. Misalnya, `claude -p --agents ./agents.json "Review my changes"` membaca definisi dari file itu. Dalam sesi interaktif, Claude Code menolak jalur file. Bentuk file memerlukan Claude Code v2.1.281 atau lebih baru.

234 234 

235Setiap kunci tingkat atas dalam JSON adalah nama agen. Jangan mulai nama dengan `-`.235Setiap kunci tingkat atas dalam JSON adalah nama agent, dan nilainya adalah definisi agent itu. Jangan mulai nama dengan `-`. Definisi mengambil field ini:

236 

237* **`prompt`**: system prompt agent, setara dengan badan markdown dalam subagent berbasis file. `prompt` mungkin kosong. Jika Anda memilih agent dengan `prompt` kosong dan tidak ada field `memory` sebagai agent sesi dengan `--agent`, system prompt sesi dibiarkan tidak berubah. `prompt` kosong memerlukan Claude Code v2.1.281 atau lebih baru.

238* **[Field frontmatter](#supported-frontmatter-fields)**: `description`, `tools`, `disallowedTools`, `model`, `permissionMode`, `mcpServers`, `hooks`, `maxTurns`, `skills`, `initialPrompt`, `memory`, `effort`, `background`, `omitClaudeMd`, dan `isolation`.

239* **Field yang diabaikan**: `color` dan `experimental` tidak diterima di sini dan diabaikan daripada ditolak.

236 240 

237Untuk apa yang Claude Code lakukan dengan nilai yang tidak dapat dimuat, dan flag serta variabel lingkungan yang melewati pemeriksaan itu, lihat [`Invalid --agents configuration`](/docs/id/errors#invalid-agents-configuration).241Untuk apa yang Claude Code lakukan dengan nilai yang tidak dapat dimuat, dan flag serta variabel lingkungan yang melewati pemeriksaan itu, lihat [`Invalid --agents configuration`](/docs/id/errors#invalid-agents-configuration).

238 242 

239**Subagent terkelola** digunakan oleh administrator organisasi. Tempatkan file markdown dalam `.claude/agents/` di dalam [direktori pengaturan terkelola](/docs/id/managed-settings#delivery-mechanisms), menggunakan format frontmatter yang sama dengan subagent proyek dan pengguna. Definisi terkelola mengambil alih subagent proyek dan pengguna dengan nama yang sama.243**Subagent yang dikelola** digunakan oleh administrator organisasi. Tempatkan file markdown di `.claude/agents/` di dalam [managed settings directory](/docs/id/managed-settings#delivery-mechanisms), menggunakan format frontmatter yang sama seperti subagent proyek dan pengguna. Definisi yang dikelola mengambil alih subagent proyek dan pengguna dengan nama yang sama.

240 244 

241**Subagent plugin** berasal dari [plugins](/docs/id/plugins/overview) yang telah Anda instal. Mereka dimuat secara otomatis bersama subagent khusus Anda dan muncul dalam typeahead @-mention di bawah nama yang dibatasi cakupan mereka. Lihat [referensi komponen plugin](/docs/id/plugins/components#agents) untuk detail tentang membuat subagent plugin.245**Subagent plugin** berasal dari [plugins](/docs/id/plugins/overview) yang telah Anda instal. Mereka dimuat secara otomatis bersama subagent kustom Anda dan muncul dalam typeahead @-mention di bawah nama cakupan mereka. Lihat [plugin components reference](/docs/id/plugins/components#agents) untuk detail tentang membuat subagent plugin.

242 246 

243<Note>247<Note>

244 Untuk alasan keamanan, subagent plugin tidak mendukung bidang frontmatter `hooks`, `mcpServers`, atau `permissionMode`. Bidang-bidang ini diabaikan saat memuat agen dari plugin. Jika Anda membutuhkannya, salin file agen ke dalam `.claude/agents/` atau `~/.claude/agents/`. Anda juga dapat menambahkan aturan ke [`permissions.allow`](/docs/id/settings-reference#permissions-allow) dalam `settings.json` atau `settings.local.json`, tetapi aturan-aturan ini berlaku untuk seluruh sesi, bukan hanya subagent plugin.248 Untuk alasan keamanan, subagent plugin tidak mendukung field frontmatter `hooks`, `mcpServers`, atau `permissionMode`. Field ini diabaikan saat memuat agent dari plugin. Jika Anda membutuhkannya, salin file agent ke `.claude/agents/` atau `~/.claude/agents/`. Anda juga dapat menambahkan aturan ke [`permissions.allow`](/docs/id/settings-reference#permissions-allow) dalam `settings.json` atau `settings.local.json`, tetapi aturan ini berlaku untuk seluruh sesi, bukan hanya subagent plugin.

245</Note>249</Note>

246 250 

247Definisi subagent dari salah satu cakupan ini juga tersedia untuk [tim agen](/docs/id/agent-teams#use-subagent-definitions-for-teammates): saat menelurkan rekan kerja, Anda dapat mereferensikan jenis subagent, dan Claude Code menerapkan bagian dari definisi itu ke rekan kerja. Lihat [tim agen](/docs/id/agent-teams#use-subagent-definitions-for-teammates) untuk bagian mana yang berlaku di setiap mode tampilan.251Definisi subagent dari salah satu cakupan ini juga tersedia untuk [agent teams](/docs/id/agent-teams#use-subagent-definitions-for-teammates): saat menspawn teammate, Anda dapat mereferensikan tipe subagent, dan Claude Code menerapkan bagian dari definisi itu ke teammate. Lihat [agent teams](/docs/id/agent-teams#use-subagent-definitions-for-teammates) untuk bagian mana yang berlaku di setiap mode tampilan.

248 252 

249<h3 id="write-subagent-files">253<h3 id="write-subagent-files">

250 Tulis file subagent254 Tulis file subagent

251</h3>255</h3>

252 256 

253File subagent menggunakan frontmatter YAML untuk konfigurasi, diikuti oleh prompt sistem dalam Markdown:257File subagent menggunakan YAML frontmatter untuk konfigurasi, diikuti oleh system prompt dalam Markdown:

254 258 

255<Note>259<Note>

256 Claude Code memantau `~/.claude/agents/` dan `.claude/agents/`. Ketika Anda menambah atau mengedit file subagent di disk, atau meminta Claude untuk menulis satu untuk Anda, Claude Code mendeteksi perubahan dalam beberapa detik dan delegasi berikutnya menggunakan definisi yang diperbarui, tanpa perlu restart.260 Claude Code memantau `~/.claude/agents/` dan `.claude/agents/`. Ketika Anda menambah atau mengedit file subagent di disk, atau meminta Claude untuk menulisnya untuk Anda, Claude Code mendeteksi perubahan dalam beberapa detik dan delegasi berikutnya menggunakan definisi yang diperbarui, tanpa perlu restart.

257 261 

258 Tiga kasus masih memerlukan restart:262 Tiga kasus masih memerlukan restart:

259 263 

260 * Pemantau hanya mencakup direktori yang ada ketika sesi dimulai, jadi setelah membuat file agen pertama cakupan dalam direktori `agents` baru, restart untuk memuatnya.264 * Pemantau hanya mencakup direktori yang ada saat sesi dimulai, jadi setelah membuat file agent pertama cakupan di direktori `agents` baru, restart untuk memuatnya.

261 * Claude Code tidak memantau `.claude/agents/` di dalam direktori yang ditambahkan dengan `--add-dir` atau `/add-dir`, jadi setelah menambah atau mengedit subagent di sana, restart untuk memuat perubahan.265 * Claude Code tidak memantau `.claude/agents/` di dalam direktori yang ditambahkan dengan `--add-dir` atau `/add-dir`, jadi setelah menambah atau mengedit subagent di sana, restart untuk memuat perubahan.

262 * Sesi yang dimulai dengan `--disable-slash-commands` tidak memantau direktori ini sama sekali.266 * Sesi yang dimulai dengan `--disable-slash-commands` tidak memantau direktori ini sama sekali.

263</Note>267</Note>


274specific, actionable feedback on quality, security, and best practices.278specific, actionable feedback on quality, security, and best practices.

275```279```

276 280 

277Frontmatter mendefinisikan metadata dan konfigurasi subagent. Badan menjadi prompt sistem yang memandu perilaku subagent. Subagent menerima hanya prompt sistem ini ditambah detail lingkungan dasar seperti direktori kerja, bukan prompt sistem Claude Code lengkap.281Frontmatter mendefinisikan metadata dan konfigurasi subagent. Badan menjadi system prompt yang memandu perilaku subagent. Subagent menerima hanya system prompt ini ditambah detail lingkungan dasar seperti direktori kerja, bukan system prompt Claude Code.

278 282 

279Dalam [mode non-interaktif](/docs/id/headless), lewatkan [`--append-subagent-system-prompt`](/docs/id/cli-reference#cli-flags) untuk menambahkan teks Anda ke akhir prompt sistem setiap subagent, subagent bersarang termasuk, terlepas dari [subagent yang bercabang](#fork-the-current-conversation), yang menggunakan kembali prompt percakapan itu sendiri. Memerlukan Claude Code v2.1.205 atau lebih baru. Jika teks Anda terlalu panjang untuk dilewatkan di baris perintah, simpan ke file dan lewatkan jalur dengan `--append-subagent-system-prompt-file` sebagai gantinya. Flag file memerlukan Claude Code v2.1.261 atau lebih baru.283Dalam [non-interactive mode](/docs/id/headless), lewatkan [`--append-subagent-system-prompt`](/docs/id/cli-reference#cli-flags) untuk menambahkan teks Anda ke akhir system prompt setiap subagent, subagent bersarang termasuk, terlepas dari [forked subagent](#fork-the-current-conversation), yang menggunakan kembali prompt percakapan sendiri. Memerlukan Claude Code v2.1.205 atau lebih baru. Jika teks Anda terlalu panjang untuk dilewatkan di baris perintah, simpan ke file dan lewatkan jalur dengan `--append-subagent-system-prompt-file` sebagai gantinya. Flag file memerlukan Claude Code v2.1.261 atau lebih baru.

280 284 

281Subagent dimulai di direktori kerja saat ini percakapan utama. Dalam subagent, perintah `cd` tidak bertahan antara panggilan alat Bash atau PowerShell dan tidak mempengaruhi direktori kerja percakapan utama. Untuk memberikan subagent salinan repositori yang terisolasi sebagai gantinya, atur [`isolation: worktree`](#supported-frontmatter-fields).285Subagent dimulai di direktori kerja saat ini percakapan utama. Dalam subagent, perintah `cd` tidak bertahan antara panggilan tool Bash atau PowerShell dan tidak mempengaruhi direktori kerja percakapan utama. Untuk memberikan subagent salinan terisolasi dari repositori, atur [`isolation: worktree`](#supported-frontmatter-fields).

282 286 

283Subagent dengan `isolation: worktree` menjalankan perintah Bash dan PowerShell-nya di dalam worktree-nya. Perintah yang direktori kerjanya diselesaikan ke checkout utama Anda, misalnya karena direktori worktree dihapus saat subagent berjalan, gagal dengan kesalahan. Sebelum v2.1.203, perintah seperti itu dapat berjalan di checkout utama.287Subagent dengan `isolation: worktree` menjalankan perintah Bash dan PowerShell-nya di dalam worktree-nya. Perintah yang direktori kerjanya diselesaikan ke checkout utama Anda, misalnya karena direktori worktree dihapus saat subagent berjalan, gagal dengan kesalahan. Sebelum v2.1.203, perintah seperti itu dapat berjalan di checkout utama.

284 288 

285Pemeriksaan direktori kerja ini mencakup seluruh repositori yang berisi direktori tempat Anda meluncurkan Claude Code. Ketika sesi Anda berjalan dalam [worktree](/docs/id/worktrees) yang ditautkan sendiri, pemeriksaan juga mencakup checkout utama yang worktree itu ditautkan darinya. Sebelum v2.1.210, pemeriksaan hanya mencakup direktori peluncuran itu sendiri. Perintah yang direktori kerjanya diselesaikan di tempat lain dalam repositori yang sama, seperti akar repositori ketika Anda meluncurkan Claude Code dari subdirektori monorepo, berjalan di sana sebagai gantinya dari gagal.289Pemeriksaan direktori kerja ini mencakup seluruh repositori yang berisi direktori tempat Anda meluncurkan Claude Code. Ketika sesi Anda berjalan di [worktree](/docs/id/worktrees) tertaut miliknya sendiri, pemeriksaan juga mencakup checkout utama yang worktree itu tertaut darinya. Sebelum v2.1.210, pemeriksaan hanya mencakup direktori peluncuran itu sendiri. Perintah yang direktori kerjanya diselesaikan di tempat lain di repositori yang sama, seperti akar repositori saat Anda meluncurkan Claude Code dari subdirektori monorepo, berjalan di sana sebagai gantinya dari gagal.

286 290 

287Untuk perintah Bash, Claude Code juga memeriksa perintah itu sendiri dalam dua cara:291Untuk perintah Bash, Claude Code juga memeriksa perintah itu sendiri dalam dua cara:

288 292 

289* Ini memblokir perintah yang mengarahkan git ke checkout utama.293* Ini memblokir perintah yang mengarahkan git ke checkout utama.

290* Ini menolak perintah ketika tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap di dalam worktree, misalnya ketika nama perintah dihitung saat runtime.294* Ini menolak perintah ketika tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap di dalam worktree, misalnya ketika nama perintah dihitung saat runtime.

291 295 

292Vektor pengalihan dan aturan bentuk tercantum di bawah [Bagaimana Claude Code memberlakukan isolasi](/docs/id/worktrees#how-claude-code-enforces-isolation). Perintah PowerShell hanya mendapatkan pemeriksaan direktori kerja.296Vektor pengalihan dan aturan bentuk tercantum di bawah [How Claude Code enforces isolation](/docs/id/worktrees#how-claude-code-enforces-isolation). Perintah PowerShell hanya mendapatkan pemeriksaan direktori kerja.

293 297 

294Perintah [Monitor](/docs/id/tools-reference#monitor-tool) melalui pemeriksaan direktori kerja dan konten perintah yang sama dengan perintah Bash.298Perintah [Monitor](/docs/id/tools-reference#monitor-tool) melalui pemeriksaan direktori kerja dan konten perintah yang sama seperti perintah Bash.

295 299 

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).300Ketika 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 [How Claude Code enforces isolation](/docs/id/worktrees#how-claude-code-enforces-isolation).

297 301 

298<h3 id="supported-frontmatter-fields">302<h3 id="supported-frontmatter-fields">

299 Referensi frontmatter303 Referensi frontmatter

300</h3>304</h3>

301 305 

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.306Konfigurasi subagent dengan YAML [frontmatter](/docs/id/glossary#frontmatter) antara penanda `---` di bagian atas file-nya, dan tulis system prompt-nya sebagai Markdown setelah `---` penutup. Hanya `name` dan `description` yang diperlukan.

303 307 

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).308Nama field multi-kata menggunakan camelCase, seperti `maxTurns` dan `disallowedTools`, dan harus cocok dengan tabel persis: Claude Code mengabaikan field yang tidak dikenalinya tanpa melaporkan kesalahan. Untuk mengetahui mengapa file subagent tidak dimuat, lihat [Subagent files Claude Code skips](#subagent-files-claude-code-skips).

305 309 

306| Bidang | Diperlukan | Deskripsi |310| Field | Diperlukan | Deskripsi |

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

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/overview) 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 |312| `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 [plugin-scoped identifiers](/docs/id/plugins/overview) seperti `my-plugin:reviewer`. Claude Code tidak memuat file yang nama-nya berisi satu dan mencatat kesalahan ke debug log. Sebelum v2.1.218, nama seperti itu diterima |

309| `description` | Ya | Kapan Claude harus mendelegasikan ke subagent ini |313| `description` | Ya | Kapan Claude harus mendelegasikan ke subagent ini |

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 |314| `tools` | Tidak | [Tools](#available-tools) yang dapat digunakan subagent, sebagai string yang dipisahkan koma seperti `Read, Grep, Bash` atau daftar YAML. Mewarisi setiap tool yang tersedia untuk subagent jika dihilangkan. Jika tidak ada entri dalam daftar yang diselesaikan ke tool, subagent biasanya [gagal diluncurkan](/docs/id/errors#agent-would-be-spawned-with-zero-tools) dengan kesalahan yang menamai entri. Untuk memuat Skills ke dalam konteks, gunakan field `skills` daripada mencantumkan `Skill` di sini |

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) |315| `disallowedTools` | Tidak | Tools untuk ditolak, dihapus dari daftar yang diwarisi atau ditentukan. Format yang sama seperti `tools`. Entri dengan specifier, seperti `Bash(git push *)`, masih [menghapus seluruh tool](#available-tools) |

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) |316| `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 [subagent model order](#choose-a-model) |

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) |317| `permissionMode` | Tidak | [Permission mode](#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 [plugin subagents](#choose-the-subagent-scope) |

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 |318| `maxTurns` | Tidak | Jumlah maksimum putaran agentic sebelum subagent berhenti. Ketika subagent mencapai batas, Claude Code mengembalikan output-nya ditandai sebagai parsial, dan Claude dapat [melanjutkannya](#resume-subagents) untuk terus. Penandaan parsial memerlukan Claude Code v2.1.246 atau lebih baru |

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| `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 skill proyek, pengguna, dan plugin yang tidak terdaftar melalui tool Skill |

316| `mcpServers` | Tidak | [MCP servers](/docs/id/mcp) tersedia untuk subagent ini. Setiap entri adalah nama server yang mereferensikan server yang sudah dikonfigurasi (misalnya, `"slack"`) atau definisi inline dengan nama server sebagai kunci dan [konfigurasi MCP server](/docs/id/mcp#installing-mcp-servers) lengkap sebagai nilai. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |320| `mcpServers` | Tidak | [MCP servers](/docs/id/mcp) yang tersedia untuk subagent ini. Setiap entri adalah nama server yang mereferensikan server yang sudah dikonfigurasi (misalnya, `"slack"`) atau definisi inline dengan nama server sebagai kunci dan [MCP server config](/docs/id/mcp#installing-mcp-servers) lengkap sebagai nilai. Diabaikan untuk [plugin subagents](#choose-the-subagent-scope) |

317| `hooks` | Tidak | [Lifecycle hooks](#define-hooks-for-subagents) yang dibatasi pada subagent ini. Diabaikan untuk [subagent plugin](#choose-the-subagent-scope) |321| `hooks` | Tidak | [Lifecycle hooks](#define-hooks-for-subagents) yang cakupannya ke subagent ini. Diabaikan untuk [plugin subagents](#choose-the-subagent-scope) |

318| `memory` | Tidak | [Cakupan memori persisten](#enable-persistent-memory): `user`, `project`, atau `local`. Memungkinkan pembelajaran lintas sesi |322| `memory` | Tidak | [Persistent memory scope](#enable-persistent-memory): `user`, `project`, atau `local`. Memungkinkan pembelajaran lintas sesi |

319| `background` | Tidak | Atur ke `true` untuk menjaga subagent ini di latar belakang bahkan ketika Claude meminta untuk menjalankannya di latar depan. Ketika [fork mode](#turn-fork-mode-on-or-off) aktif, Claude Code sudah menjalankan subagent yang Claude hasilkan [di latar belakang](#run-subagents-in-foreground-or-background) |323| `background` | Tidak | Atur ke `true` untuk menjaga subagent ini di latar belakang bahkan ketika Claude meminta untuk menjalankannya di latar depan. Tempat [fork mode](#turn-fork-mode-on-or-off) aktif, Claude Code sudah menjalankan subagent yang Claude hasilkan [di latar belakang](#run-subagents-in-foreground-or-background) |

320| `omitClaudeMd` | Tidak | Atur ke `true` untuk meluncurkan subagent ini tanpa file user, project, dan local CLAUDE.md; [file kebijakan terkelola](/docs/id/memory#how-claude-md-files-load) masih dimuat, kecuali untuk [subagent terkelola](#choose-the-subagent-scope). Gunakan untuk subagent yang mengambil semua yang mereka butuhkan dari [prompt delegasi](#what-loads-at-startup). Diabaikan ketika agen berjalan sebagai agen sesi utama melalui `--agent` atau pengaturan `agent`. Memerlukan Claude Code v2.1.271 atau lebih baru |324| `omitClaudeMd` | Tidak | Atur ke `true` untuk meluncurkan subagent ini tanpa file CLAUDE.md pengguna, proyek, dan lokal; [managed policy files](/docs/id/memory#how-claude-md-files-load) masih dimuat, kecuali untuk [managed subagents](#choose-the-subagent-scope). Gunakan untuk subagent yang mengambil semua yang mereka butuhkan dari [delegation prompt](#what-loads-at-startup). Diabaikan ketika agent berjalan sebagai agent sesi utama melalui `--agent` atau setting `agent`. Memerlukan Claude Code v2.1.271 atau lebih baru |

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 |325| `effort` | Tidak | Tingkat usaha ketika subagent ini aktif. Menimpa tingkat usaha sesi. Default: mewarisi dari sesi. Opsi: `low`, `medium`, `high`, `xhigh`, `max`; level yang tersedia tergantung pada model |

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 |326| `isolation` | Tidak | Atur ke `worktree` untuk menjalankan subagent dalam [git worktree](/docs/id/worktrees) sementara, memberikannya salinan terisolasi dari repositori yang bercabang secara default dari [default branch](/docs/id/worktrees#choose-the-base-branch) Anda daripada `HEAD` sesi induk. Worktree secara otomatis dibersihkan jika subagent tidak membuat perubahan |

323| `color` | Tidak | Warna tampilan untuk subagent dalam daftar tugas dan transkrip. Menerima `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, atau `cyan` |327| `color` | Tidak | Warna tampilan untuk subagent dalam daftar tugas dan transkrip. Menerima `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, atau `cyan` |

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) |328| `initialPrompt` | Tidak | Auto-diajukan sebagai putaran pengguna pertama ketika agent ini berjalan sebagai agent sesi utama (melalui `--agent` atau setting `agent`). [Commands](/docs/id/commands) dan [skills](/docs/id/skills) diproses. Ditambahkan ke prompt apa pun yang disediakan pengguna. Diabaikan untuk [plugin subagents](#choose-the-subagent-scope) |

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 |329| `experimental` | Tidak | Peta opsi eksperimental. Atur kunci `cacheTtl`-nya ke `5m` atau `1h` untuk memilih [prompt cache lifetime](/docs/id/prompt-caching#choose-the-ttl-yourself) untuk permintaan subagent ini, di tempat frontmatter dalam [cache lifetime precedence](/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 field hanya dari file subagent. Memerlukan Claude Code v2.1.248 atau lebih baru |

326 330 

327Tulis `cacheTtl` di dalam peta `experimental`, bukan di tingkat atas frontmatter.331Tulis `cacheTtl` di dalam peta `experimental`, bukan di tingkat atas frontmatter.

328 332 


339 File subagent yang Claude Code lewati343 File subagent yang Claude Code lewati

340</h4>344</h4>

341 345 

342Claude Code melewati file dalam direktori `agents` proyek, pengguna, atau terkelola, atau dalam satu di bawah direktori yang Anda tambahkan dengan `--add-dir`, tanpa melaporkannya dalam sesi, ketika frontmatter memiliki salah satu masalah ini:346Claude Code melewati file dalam direktori `agents` proyek, pengguna, atau yang dikelola, atau dalam satu di bawah direktori yang Anda tambahkan dengan `--add-dir`, tanpa melaporkannya dalam sesi, ketika frontmatter memiliki salah satu masalah ini:

343 347 

344* **Tidak ada `name`**: Claude Code memperlakukan file sebagai dokumentasi yang disimpan di samping agen Anda.348* **Tidak ada `name`**: Claude Code memperlakukan file sebagai dokumentasi yang disimpan di samping agent Anda.

345* **Pembukaan `---` yang bukan baris pertama file**: Claude Code membaca file sebagai tidak memiliki frontmatter dan memperlakukannya sebagai dokumentasi.349* **`---` pembuka yang bukan baris pertama file**: Claude Code membaca file sebagai tidak memiliki frontmatter dan memperlakukannya sebagai dokumentasi.

346* **`name` yang dimulai dengan `-` atau berisi `:`**: Claude Code melewati file dan menulis kesalahan ke debug log. Lihat baris `name` dalam tabel di atas.350* **`name` yang dimulai dengan `-` atau berisi `:`**: Claude Code melewati file dan menulis kesalahan ke debug log. Lihat baris `name` dalam tabel di atas.

347* **`name` tetapi tidak ada `description`**: Claude Code melewati file dan menulis alasannya ke debug log.351* **`name` tetapi tidak ada `description`**: Claude Code melewati file dan menulis alasannya ke debug log.

348* **YAML yang tidak diuraikan**: Claude Code membaca tidak ada bidang dari file, melewatinya, dan menulis kesalahan penguraian ke debug log.352* **YAML yang tidak diuraikan**: Claude Code tidak membaca field dari file, melewatinya, dan menulis kesalahan penguraian ke debug log.

349 353 

350Untuk melihat debug log, jalankan Claude Code dengan `--debug`.354Untuk melihat debug log, jalankan Claude Code dengan `--debug`.

351 355 

352[Subagent plugin](/docs/id/plugins/components#agents) yang frontmatter-nya tidak memiliki `name` atau tidak diuraikan masih dimuat, di bawah nama file-nya.356[Plugin subagent](/docs/id/plugins/components#agents) yang frontmatter-nya tidak memiliki `name` atau tidak diuraikan masih dimuat, di bawah nama file-nya.

353 357 

354<h5 id="check-an-agents-directory-before-a-session">358<h5 id="check-an-agents-directory-before-a-session">

355 Periksa direktori `agents` sebelum sesi359 Periksa direktori `agents` sebelum sesi

356</h5>360</h5>

357 361 

358Untuk menemukan file dalam direktori `agents` yang frontmatter-nya tidak diuraikan, jalankan `claude plugin validate` terhadap direktori, misalnya `.claude/agents` atau `~/.claude/agents`. Claude Code memeriksa hanya [direktori yang Anda beri nama](/docs/id/plugins/cli-reference#validate-a-directory), dan tidak menandai file yang frontmatter-nya diuraikan tetapi tidak memiliki `name`. Memerlukan Claude Code v2.1.233 atau lebih baru.362Untuk menemukan file dalam direktori `agents` yang frontmatter-nya tidak diuraikan, jalankan `claude plugin validate` terhadap direktori, misalnya `.claude/agents` atau `~/.claude/agents`. Claude Code hanya memeriksa [direktori yang Anda namai](/docs/id/plugins/cli-reference#validate-a-directory), dan tidak menandai file yang frontmatter-nya diuraikan tetapi tidak memiliki `name`. Memerlukan Claude Code v2.1.233 atau lebih baru.

359 363 

360<h3 id="choose-a-model">364<h3 id="choose-a-model">

361 Pilih model365 Pilih model

362</h3>366</h3>

363 367 

364Bidang `model` mengontrol model mana yang digunakan subagent:368Field `model` mengontrol model mana yang digunakan subagent:

365 369 

366* **Alias model**: gunakan salah satu alias yang tersedia: `sonnet`, `opus`, `haiku`, atau `fable`370* **Model alias**: gunakan salah satu alias yang tersedia: `sonnet`, `opus`, `haiku`, atau `fable`

367* **ID model lengkap**: gunakan ID model lengkap seperti `claude-opus-5-5` atau `claude-sonnet-5`. Menerima nilai yang sama dengan flag `--model`371* **ID model lengkap**: gunakan ID model lengkap seperti `claude-opus-5-5` atau `claude-sonnet-5`. Menerima nilai yang sama seperti flag `--model`

368* **inherit**: gunakan model yang sama dengan percakapan utama372* **inherit**: gunakan model yang sama seperti percakapan utama

369 373 

370Ketika Claude memanggil subagent, Claude juga dapat melewatkan parameter `model` untuk invokasi spesifik itu. Claude Code menyelesaikan model subagent dalam urutan ini:374Ketika Claude memanggil subagent, ia juga dapat melewatkan parameter `model` untuk invokasi spesifik itu. Claude Code menyelesaikan model subagent dalam urutan ini:

371 375 

3721. Parameter `model` per-invokasi3761. Parameter `model` per-invokasi

3732. Frontmatter `model` definisi subagent, di mana `inherit` memilih model percakapan utama3772. Frontmatter `model` definisi subagent, di mana `inherit` memilih model percakapan utama


376 380 

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):381Dalam 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 382 

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.383* **Model percakapan utama milik keluarga itu**: subagent berjalan pada model persis percakapan utama, termasuk akhiran `[1m]` apa pun, jadi mendapat [extended context](/docs/id/model-config#extended-context) window yang sama seperti 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.384* **Claude Code tidak dapat mengetahui keluarga model percakapan utama, pada [provider selain Anthropic API](/docs/id/third-party-integrations)**: ini dapat terjadi dengan [application inference profile ARN](/docs/id/amazon-bedrock#iam-configuration) di 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 385 

382Alias dalam `CLAUDE_CODE_SUBAGENT_MODEL` selalu diselesaikan ke versi yang ditunjuk alias, bahkan ketika itu menyebutkan keluarga percakapan utama.386Alias dalam `CLAUDE_CODE_SUBAGENT_MODEL` selalu diselesaikan ke versi yang ditunjuk alias, bahkan ketika ia menamai keluarga percakapan utama.

383 387 

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).388Mengatur `CLAUDE_CODE_SUBAGENT_MODEL` dengan sendirinya tidak mengubah model yang dijalankan subagent Explore dan Plan bawaan. Untuk mengubahnya, lihat [Run every subagent on one model](#run-every-subagent-on-one-model).

385 389 

386Sebelum v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` datang pertama dalam urutan ini dan menimpa parameter per-invokasi dan frontmatter, termasuk `model: inherit`.390Sebelum v2.1.251, `CLAUDE_CODE_SUBAGENT_MODEL` datang pertama dalam urutan ini dan menimpa parameter per-invokasi dan frontmatter, termasuk `model: inherit`.

387 391 

388Mengatur variabel ke `inherit` sama dengan membiarkannya tidak diatur. Sebelum v2.1.196, nilai itu memaksa subagent ke model percakapan utama dan mengabaikan sumber lain.392Mengatur variabel ke `inherit` sama dengan membiarkannya tidak diatur. Sebelum v2.1.196, nilai itu memaksa subagent ke model percakapan utama dan mengabaikan sumber lain.

389 393 

390Claude Code memeriksa parameter per-invokasi, frontmatter, dan nilai variabel lingkungan terhadap daftar allowlist [`availableModels`](/docs/id/model-config#restrict-model-selection) organisasi Anda. Untuk nilai yang diblokir, Claude Code mengganti model lain:394Claude Code memeriksa parameter per-invokasi, frontmatter, dan nilai variabel lingkungan terhadap [`availableModels`](/docs/id/model-config#restrict-model-selection) allowlist organisasi Anda. Untuk nilai yang diblokir, ia mengganti model lain:

391 395 

392* Ketika nilai yang diblokir adalah alias keluarga seperti `opus`, Claude Code menjalankan subagent pada versi terbaru keluarga itu yang daftar allowlist izinkan, mengikuti [aturan substitusi dan cakupan penyedia](/docs/id/model-config#restrict-model-selection) yang sama seperti `/model`. Sebelum v2.1.222, Claude Code menjalankan subagent pada model yang diwarisi untuk alias keluarga yang diblokir juga.396* Ketika nilai yang diblokir adalah alias keluarga seperti `opus`, Claude Code menjalankan subagent pada versi terbaru keluarga itu yang allowlist izinkan, mengikuti [substitution rules dan provider scope](/docs/id/model-config#restrict-model-selection) yang sama seperti `/model`. Sebelum v2.1.222, Claude Code menjalankan subagent pada model yang diwarisi untuk alias keluarga yang diblokir juga.

393* Untuk nilai yang diblokir lainnya, pada penyedia di mana substitusi itu tidak beroperasi, atau ketika daftar allowlist tidak mengizinkan versi keluarga apa pun, Claude Code menjalankan subagent pada model yang diwarisi sebagai gantinya. Jika Anda mengatur `CLAUDE_CODE_SUBAGENT_MODEL`, Claude Code mencoba model itu terlebih dahulu, di bawah aturan yang sama ini.397* Untuk nilai yang diblokir lainnya, pada provider di mana substitusi itu tidak beroperasi, atau ketika allowlist tidak mengizinkan versi keluarga, Claude Code menjalankan subagent pada model yang diwarisi sebagai gantinya. Jika Anda mengatur `CLAUDE_CODE_SUBAGENT_MODEL`, Claude Code mencoba model itu terlebih dahulu, di bawah aturan yang sama ini.

394 398 

395Dalam sesi interaktif, Claude Code menampilkan peringatan yang menyebutkan model yang diminta dan model yang dijalankan subagent, untuk substitusi apa pun.399Dalam sesi interaktif, Claude Code menunjukkan peringatan yang menamai model yang diminta dan model yang dijalankan subagent, untuk substitusi apa pun.

396 400 

397Untuk memeriksa model mana yang dijalankan subagent, jalankan [`/tasks`](/docs/id/commands). Claude Code menyebutkan model pada baris subagent, dan menambahkan [tingkat usaha](/docs/id/model-config#adjust-effort-level) ketika definisi subagent, atau skill yang dihasilkannya, menetapkan [`effort`](#supported-frontmatter-fields). Memerlukan Claude Code v2.1.242 atau lebih baru.401Untuk memeriksa model mana yang dijalankan subagent, jalankan [`/tasks`](/docs/id/commands). Claude Code menamai model pada baris subagent, dan menambahkan [effort level](/docs/id/model-config#adjust-effort-level) ketika definisi subagent, atau skill yang difork-nya, mengatur [`effort`](#supported-frontmatter-fields). Memerlukan Claude Code v2.1.242 atau lebih baru.

398 402 

399Parameter `model` per-invokasi juga berlaku ketika subagent [dilanjutkan atau dikirim pesan lanjutan](#resume-subagents), sehingga subagent tetap pada model itu. Sebelum v2.1.211, melanjutkan menghapus nilai per-invokasi dan subagent kembali ke bidang `model` definisinya atau, tanpanya, model percakapan utama.403Parameter `model` per-invokasi juga berlaku ketika subagent [dilanjutkan atau dikirim pesan tindak lanjut](#resume-subagents), jadi subagent tetap pada model itu. Sebelum v2.1.211, melanjutkan menghapus nilai per-invokasi dan subagent kembali ke field `model` definisinya atau, tanpanya, model percakapan utama.

400 404 

401Sejak v2.1.198, subagent juga mewarisi konfigurasi [extended thinking](/docs/id/model-config#extended-thinking) percakapan utama: jika thinking aktif dalam sesi Anda, itu aktif untuk subagent, dan jika itu mati, itu tetap mati. Tidak ada pengaturan thinking per-subagent. Sebelum v2.1.198, subagent berjalan dengan extended thinking dinonaktifkan terlepas dari pengaturan percakapan utama.405Mulai v2.1.198, subagent juga mewarisi konfigurasi [extended thinking](/docs/id/model-config#extended-thinking) percakapan utama: jika thinking aktif dalam sesi Anda, aktif untuk subagent, dan jika mati, tetap mati. Tidak ada pengaturan thinking per-subagent. Sebelum v2.1.198, subagent berjalan dengan extended thinking dinonaktifkan terlepas dari pengaturan percakapan utama.

402 406 

403<h4 id="run-every-subagent-on-one-model">407<h4 id="run-every-subagent-on-one-model">

404 Jalankan setiap subagent pada satu model408 Jalankan setiap subagent pada satu model

405</h4>409</h4>

406 410 

407`CLAUDE_CODE_SUBAGENT_MODEL` adalah default, jadi definisi subagent atau model yang Claude lewatkan masih mengambil alih darinya. Untuk menerapkan satu model ke setiap subagent, [rekan kerja](/docs/id/agent-teams#specify-teammates-and-models), dan [agen workflow](/docs/id/workflows), juga atur `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` ke `1`. Memerlukan Claude Code v2.1.257 atau lebih baru.411`CLAUDE_CODE_SUBAGENT_MODEL` adalah default, jadi definisi subagent atau model yang Claude lewatkan masih mengambil alih. Untuk menerapkan satu model ke setiap subagent, [teammate](/docs/id/agent-teams#specify-teammates-and-models), dan [workflow agent](/docs/id/workflows), juga atur `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` ke `1`. Memerlukan Claude Code v2.1.257 atau lebih baru.

408 412 

409* Jika Anda mengatur kedua variabel, subagent berjalan pada model dalam `CLAUDE_CODE_SUBAGENT_MODEL`.413* Jika Anda mengatur kedua variabel, subagent berjalan pada model dalam `CLAUDE_CODE_SUBAGENT_MODEL`.

410* Jika Anda hanya mengatur `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, subagent berjalan pada model percakapan utama.414* Jika Anda hanya mengatur `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, subagent berjalan pada model percakapan utama.

411 415 

412Misalnya, untuk menjalankan setiap subagent pada Haiku, atur kedua variabel dalam blok `env` [file pengaturan](/docs/id/settings):416Misalnya, untuk menjalankan setiap subagent pada Haiku, atur kedua variabel dalam blok `env` dari [settings file](/docs/id/settings):

413 417 

414```json theme={null}418```json theme={null}

415{419{


422 426 

423Untuk memeriksa bahwa pengaturan berlaku, jalankan [`/tasks`](/docs/id/commands) saat subagent berjalan. Baris subagent menunjukkan model yang dijalankannya.427Untuk memeriksa bahwa pengaturan berlaku, jalankan [`/tasks`](/docs/id/commands) saat subagent berjalan. Baris subagent menunjukkan model yang dijalankannya.

424 428 

425Sementara `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` [aktif](/docs/id/env-vars), Claude Code mengabaikan bidang `model` dari setiap definisi subagent, termasuk subagent Explore dan Plan bawaan, dan Claude tidak dapat melewatkan model ketika memulai subagent. Dua jenis subagent masih berjalan pada model percakapan utama:429Sementara `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` [aktif](/docs/id/env-vars), Claude Code mengabaikan field `model` dari setiap definisi subagent, termasuk subagent Explore dan Plan bawaan, dan Claude tidak dapat melewatkan model saat memulai subagent. Dua jenis subagent masih berjalan pada model percakapan utama:

426 430 

427* [Fork](#fork-the-current-conversation)431* [Fork](#fork-the-current-conversation)

428* [Skill yang berjalan dalam subagent](/docs/id/skills#run-skills-in-a-subagent) dengan `model: inherit`432* [Skill yang berjalan dalam subagent](/docs/id/skills#run-skills-in-a-subagent) dengan `model: inherit`

429 433 

430Ketika Anda hanya mengatur `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, subagent Explore bawaan menyimpan [batas modelnya](#built-in-subagents).434Ketika Anda hanya mengatur `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`, subagent Explore bawaan menjaga [model cap](#built-in-subagents)-nya.

431 435 

432<h3 id="control-subagent-capabilities">436<h3 id="control-subagent-capabilities">

433 Kontrol kemampuan subagent437 Kontrol kemampuan subagent

434</h3>438</h3>

435 439 

436Anda dapat mengontrol apa yang dapat dilakukan subagent melalui akses alat, mode izin, dan aturan bersyarat.440Anda dapat mengontrol apa yang dapat dilakukan subagent melalui akses tool, mode izin, dan aturan bersyarat.

437 441 

438<h4 id="available-tools">442<h4 id="available-tools">

439 Alat yang tersedia443 Tool yang tersedia

440</h4>444</h4>

441 445 

442Subagent mewarisi [alat bawaan](/docs/id/tools-reference) dan alat MCP yang tersedia dalam percakapan utama, dipersempit oleh dua filter: yang pertama menghapus daftar singkat alat dari setiap subagent, dan yang kedua mengurangi set alat bawaan untuk subagent yang berjalan di [latar belakang](#run-subagents-in-foreground-or-background), yang merupakan default. Di macOS, Linux, dan WSL, subagent juga dapat menerima alat Glob dan Grep ketika percakapan utama tidak memilikinya, seperti dijelaskan di bawah [Perilaku alat Glob](/docs/id/tools-reference#glob-tool-behavior). [Fork](#fork-the-current-conversation) melewati kedua filter dan menerima kumpulan alat percakapan utama yang tepat. Filter pertama menghapus alat ini, bahkan ketika tercantum dalam bidang `tools`:446Subagent mewarisi [built-in tools](/docs/id/tools-reference) dan MCP tools yang tersedia dalam percakapan utama, dipersempit oleh dua filter: yang pertama menghapus daftar singkat tool dari setiap subagent, dan yang kedua mengurangi set tool bawaan untuk subagent yang berjalan di [background](#run-subagents-in-foreground-or-background), yang merupakan default. Di macOS, Linux, dan WSL, subagent juga dapat menerima tool Glob dan Grep ketika percakapan utama tidak memilikinya, seperti dijelaskan di bawah [Glob tool behavior](/docs/id/tools-reference#glob-tool-behavior). [Forks](#fork-the-current-conversation) melewati kedua filter dan menerima pool tool persis percakapan utama. Filter pertama menghapus tool ini, bahkan ketika tercantum dalam field `tools`:

443 447 

444* `Agent`, ketika subagent berada di [batas kedalaman](#let-subagents-spawn-their-own-subagents); dalam [fork](#fork-the-current-conversation) alat tetap tercantum tetapi mengembalikan kesalahan sebagai gantinya dari peneluran448* `Agent`, ketika subagent berada di [depth limit](#let-subagents-spawn-their-own-subagents); dalam [fork](#fork-the-current-conversation) tool tetap terdaftar tetapi mengembalikan kesalahan sebagai gantinya dari spawning

445* `AskUserQuestion`449* `AskUserQuestion`

446* `EndConversation`, yang hanya dapat mengakhiri percakapan utama; lihat [Perilaku alat EndConversation](/docs/id/tools-reference#endconversation-tool-behavior)450* `EndConversation`, yang hanya dapat mengakhiri percakapan utama; lihat [EndConversation tool behavior](/docs/id/tools-reference#endconversation-tool-behavior)

447* `EnterPlanMode`451* `EnterPlanMode`

448* `ExitPlanMode`, kecuali [`permissionMode`](#permission-modes) subagent adalah `plan`452* `ExitPlanMode`, kecuali [`permissionMode`](#permission-modes) subagent adalah `plan`

449* `ScheduleWakeup`453* `ScheduleWakeup`

450* `WaitForMcpServers`454* `WaitForMcpServers`

451* `Workflow`455* `Workflow`

452 456 

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).457Filter 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 tool MCP tetapi hanya tool bawaan ini: `Read`, `Grep`, `Glob`, `LSP`, `Bash`, `PowerShell`, `Edit`, `Write`, `NotebookEdit`, `WebFetch`, `WebSearch`, `TodoWrite`, `Skill`, `ToolSearch`, `EnterWorktree`, `ExitWorktree`, `Monitor`, `TaskStop`, `SendMessage`, dan `Artifact`, ditambah [`SubagentHandback`](/docs/id/tools-reference) untuk subagent yang melaporkan melaluinya. Claude Code menghapus setiap tool bawaan lainnya dari subagent latar belakang, baik yang diwarisi atau tercantum dalam field `tools`, jadi definisi yang sama dapat diselesaikan ke tool berbeda di latar depan dan latar belakang. Penghapusan melaporkan tidak ada kesalahan kecuali itu meninggalkan daftar `tools` [diselesaikan ke tidak ada apa-apa](/docs/id/errors#agent-would-be-spawned-with-zero-tools).

454 458 

455Sebelum v2.1.280, subagent latar belakang tidak dapat menggunakan `LSP`.459Sebelum v2.1.280, subagent latar belakang tidak dapat menggunakan `LSP`.

456 460 

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.461[`ListAgents`](/docs/id/cross-session-messaging) mengikuti filter ini seperti tool bawaan apa pun: subagent latar depan mewarisnya dalam sesi di mana cross-session messaging diaktifkan, dan subagent latar belakang tidak menyimpannya.

458 462 

459Rekan kerja dalam [tim agen](/docs/id/agent-teams) juga menyimpan alat tugas dan alat cron: `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `CronCreate`, `CronDelete`, dan `CronList`.463Teammate dalam [agent teams](/docs/id/agent-teams) juga menyimpan task tools dan cron tools: `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `CronCreate`, `CronDelete`, dan `CronList`.

460 464 

461Dalam [sesi tanpa alat Task](/docs/id/tools-reference#task-tool-availability), Claude Code tidak menyediakan alat tugas ke subagent juga, bahkan ketika subagent menjalankan model berbeda. Rekan kerja dalam proses mengikuti sesi Anda dengan cara yang sama, sementara rekan kerja dalam [split pane](/docs/id/agent-teams#choose-a-display-mode) miliknya sendiri berjalan sebagai proses Claude Code terpisah, jadi modelnya sendiri yang memutuskan.465Dalam [sesi tanpa Task tools](/docs/id/tools-reference#task-tool-availability), Claude Code tidak menyediakan task tools ke subagent juga, bahkan ketika subagent menjalankan model berbeda. Teammate in-process mengikuti sesi Anda dengan cara yang sama, sementara teammate dalam [split pane](/docs/id/agent-teams#choose-a-display-mode) miliknya sendiri berjalan sebagai proses Claude Code terpisah, jadi modelnya sendiri yang memutuskan.

462 466 

463Untuk membatasi alat, gunakan bidang `tools` sebagai allowlist atau bidang `disallowedTools` sebagai denylist. Contoh ini menggunakan `tools` untuk secara eksklusif mengizinkan Read, Grep, Glob, dan Bash. Subagent tidak dapat mengedit file, menulis file, atau menggunakan alat MCP apa pun:467Untuk membatasi tool, gunakan field `tools` sebagai allowlist atau field `disallowedTools` sebagai denylist. Contoh ini menggunakan `tools` untuk hanya mengizinkan Read, Grep, Glob, dan Bash. Subagent tidak dapat mengedit file, menulis file, atau menggunakan tool MCP apa pun:

464 468 

465```yaml theme={null}469```yaml theme={null}

466---470---


470---474---

471```475```

472 476 

473Contoh ini menggunakan `disallowedTools` untuk mewarisi setiap alat dari percakapan utama kecuali Write dan Edit. Subagent menyimpan Bash, alat MCP, dan semuanya yang lain:477Contoh ini menggunakan `disallowedTools` untuk mewarisi pool tool subagent kecuali Write dan Edit. Subagent menyimpan Bash, tool MCP, dan sisa pool-nya:

474 478 

475```yaml theme={null}479```yaml theme={null}

476---480---


480---484---

481```485```

482 486 

483Jika keduanya diatur, `disallowedTools` diterapkan terlebih dahulu, kemudian `tools` diselesaikan terhadap kumpulan yang tersisa. Alat yang tercantum di keduanya dihapus.487Jika keduanya diatur, `disallowedTools` diterapkan terlebih dahulu, kemudian `tools` diselesaikan terhadap pool yang tersisa. Tool yang tercantum di keduanya dihapus.

484 488 

485Ketika tidak ada dalam daftar `tools` yang diselesaikan ke alat, misalnya karena setiap entri salah eja atau menyebutkan alat yang tidak tersedia untuk subagent, Claude Code biasanya menolak untuk meluncurkan subagent dan alat Agent mengembalikan kesalahan yang menyebutkan entri yang tidak diselesaikan; lihat [Agent would be spawned with zero tools](/docs/id/errors#agent-would-be-spawned-with-zero-tools) untuk pesan dan cara memperbaiki setiap entri. Sebelum v2.1.208, subagent itu diluncurkan tanpa alat dan dapat mengembalikan hasil yang kosong atau membingungkan.489Ketika tidak ada dalam daftar `tools` yang diselesaikan ke tool, misalnya karena setiap entri salah eja atau menamai tool yang tidak tersedia untuk subagent, Claude Code biasanya menolak untuk meluncurkan subagent dan tool Agent mengembalikan kesalahan yang menamai entri yang tidak diselesaikan; lihat [Agent would be spawned with zero tools](/docs/id/errors#agent-would-be-spawned-with-zero-tools) untuk pesan dan cara memperbaiki setiap entri. Sebelum v2.1.208, subagent itu diluncurkan tanpa tool dan dapat mengembalikan hasil kosong atau membingungkan.

486 490 

487Kedua bidang menerima pola tingkat server MCP selain nama alat yang tepat: `mcp__<server>` atau `mcp__<server>__*` memberikan atau menghapus setiap alat dari server bernama. Dalam `disallowedTools`, `mcp__*` juga menghapus setiap alat MCP dari server apa pun. Contoh ini menghapus setiap alat dari server MCP `github` sambil menyimpan alat dari server lain dan alat bawaan dalam kumpulannya:491Kedua field menerima pola tingkat server MCP sebagai tambahan untuk nama tool yang tepat: `mcp__<server>` atau `mcp__<server>__*` memberikan atau menghapus setiap tool dari server yang dinamai. Dalam `disallowedTools`, `mcp__*` juga menghapus setiap tool MCP dari server apa pun. Contoh ini menghapus setiap tool dari server MCP `github` sambil menyimpan tool dari server lain dan tool bawaan dalam pool-nya:

488 492 

489```yaml theme={null}493```yaml theme={null}

490---494---


494---498---

495```499```

496 500 

497Entri `disallowedTools` dengan penentu, seperti `Bash(git push *)`, masih menghapus seluruh alat dari subagent, bukan hanya perintah yang cocok. Untuk menyimpan Bash dan memblokir perintah tertentu, tambahkan [aturan penolakan Bash](/docs/id/permissions#bash) seperti `Bash(git push *)` ke `permissions.deny` dalam pengaturan Anda. Aturan berlaku untuk percakapan utama dan subagent.501Entri `disallowedTools` dengan specifier, seperti `Bash(git push *)`, masih menghapus seluruh tool dari subagent, bukan hanya perintah yang cocok. Untuk menyimpan Bash dan memblokir perintah spesifik, tambahkan [Bash deny rule](/docs/id/permissions#bash) seperti `Bash(git push *)` ke `permissions.deny` dalam pengaturan Anda. Aturan berlaku untuk percakapan utama dan subagent.

498 502 

499<h4 id="restrict-which-subagents-can-be-spawned">503<h4 id="restrict-which-subagents-can-be-spawned">

500 Batasi subagent mana yang dapat dihasilkan504 Batasi subagent mana yang dapat di-spawn

501</h4>505</h4>

502 506 

503Ketika agen berjalan sebagai thread utama dengan `claude --agent`, agen dapat menelurkan subagent menggunakan alat Agent. Untuk membatasi jenis subagent mana yang dapat dihasilkan, gunakan sintaks `Agent(agent_type)` dalam bidang `tools`.507Ketika agent berjalan sebagai thread utama dengan `claude --agent`, ia dapat menspawn subagent menggunakan tool Agent. Untuk membatasi tipe subagent mana yang dapat di-spawn, gunakan sintaks `Agent(agent_type)` dalam field `tools`.

504 508 

505<Note>Dalam versi 2.1.63, alat Task diganti nama menjadi Agent. Referensi `Task(...)` yang ada dalam pengaturan dan definisi agen masih berfungsi sebagai alias.</Note>509<Note>Dalam versi 2.1.63, tool Task diganti nama menjadi Agent. Referensi `Task(...)` yang ada dalam pengaturan dan definisi agent masih berfungsi sebagai alias.</Note>

506 510 

507```yaml theme={null}511```yaml theme={null}

508---512---


512---516---

513```517```

514 518 

515Ini adalah allowlist: hanya subagent `worker` dan `researcher` yang dapat dihasilkan. Jika agen mencoba menelurkan jenis lain, permintaan gagal dan agen hanya melihat jenis yang diizinkan dalam promptnya. Untuk memblokir agen tertentu sambil mengizinkan semua yang lain, gunakan [`permissions.deny`](#disable-specific-subagents) sebagai gantinya.519Ini adalah allowlist: hanya subagent `worker` dan `researcher` yang dapat di-spawn. Jika agent mencoba menspawn tipe lain, permintaan gagal dan agent hanya melihat tipe yang diizinkan dalam prompt-nya. Untuk memblokir agent spesifik sambil mengizinkan semua yang lain, gunakan [`permissions.deny`](#disable-specific-subagents) sebagai gantinya.

516 520 

517Untuk mengizinkan peneluran subagent apa pun tanpa pembatasan, gunakan `Agent` tanpa tanda kurung:521Untuk mengizinkan spawning subagent apa pun tanpa pembatasan, gunakan `Agent` tanpa tanda kurung:

518 522 

519```yaml theme={null}523```yaml theme={null}

520tools: Agent, Read, Bash524tools: Agent, Read, Bash

521```525```

522 526 

523Jika Anda menghilangkan `Agent` dari daftar `tools` sepenuhnya, agen tidak dapat menelurkan subagent apa pun dengan alat Agent.527Jika Anda menghilangkan `Agent` dari daftar `tools` sepenuhnya, agent tidak dapat menspawn subagent apa pun dengan tool Agent.

524 528 

525Sintaks allowlist `Agent(agent_type)` hanya berlaku untuk agen yang berjalan sebagai thread utama dengan `claude --agent`. Dalam definisi subagent, mencantumkan `Agent` dalam `tools` memungkinkan subagent itu untuk menelurkan subagent bersarang sementara [batas kedalaman](#let-subagents-spawn-their-own-subagents) mengizinkannya, tetapi daftar jenis apa pun di dalam tanda kurung diabaikan.529Sintaks allowlist `Agent(agent_type)` hanya berlaku untuk agent yang berjalan sebagai thread utama dengan `claude --agent`. Dalam definisi subagent, mencantumkan `Agent` dalam `tools` memungkinkan subagent itu menspawn subagent miliknya sendiri sementara [depth limit](#let-subagents-spawn-their-own-subagents) mengizinkannya, tetapi daftar tipe apa pun di dalam tanda kurung diabaikan.

526 530 

527<h4 id="scope-mcp-servers-to-a-subagent">531<h4 id="scope-mcp-servers-to-a-subagent">

528 Cakupan MCP servers ke subagent532 Cakupan MCP server ke subagent

529</h4>533</h4>

530 534 

531Gunakan bidang `mcpServers` untuk memberikan subagent akses ke [MCP](/docs/id/mcp) servers yang tidak tersedia dalam percakapan utama. Server inline yang ditentukan di sini terhubung ketika subagent dimulai, tunduk pada [aturan kepercayaan untuk folder file agen](#inline-server-trust), dan terputus ketika selesai. Referensi string berbagi koneksi sesi induk.535Gunakan field `mcpServers` untuk memberikan subagent akses ke [MCP](/docs/id/mcp) server yang tidak tersedia dalam percakapan utama. Server inline yang didefinisikan di sini terhubung ketika subagent dimulai, tunduk pada [trust rule untuk folder file agent](#inline-server-trust), dan terputus ketika selesai. Referensi string berbagi koneksi sesi induk.

532 536 

533<Note>537<Note>

534 Bidang `mcpServers` berlaku dalam kedua konteks di mana file agen dapat berjalan:538 Field `mcpServers` berlaku dalam kedua konteks di mana file agent dapat berjalan:

535 539 

536 * Sebagai subagent, dihasilkan melalui alat Agent atau @-mention540 * Sebagai subagent, di-spawn melalui tool Agent atau @-mention

537 * Sebagai sesi utama, diluncurkan dengan [`--agent`](#invoke-subagents-explicitly) atau pengaturan `agent`541 * Sebagai sesi utama, diluncurkan dengan [`--agent`](#invoke-subagents-explicitly) atau setting `agent`

538 542 

539 Ketika agen adalah sesi utama, definisi server inline terhubung saat startup bersama server dari [`.mcp.json`](/docs/id/mcp) dan file pengaturan, di bawah [aturan kepercayaan yang sama untuk folder file agen](#inline-server-trust). Dalam `/mcp`, server jarak jauh (HTTP atau SSE) yang telah Anda gunakan sebelumnya dapat menampilkan [status `cached`](/docs/id/mcp#managing-your-servers) sebagai gantinya; Claude Code menghubungkannya ketika Claude pertama kali memanggil salah satu alatnya.543 Ketika agent adalah sesi utama, definisi server inline terhubung saat startup bersama server dari [`.mcp.json`](/docs/id/mcp) dan file pengaturan, di bawah [trust rule yang sama untuk folder file agent](#inline-server-trust). Dalam `/mcp`, server jarak jauh (HTTP atau SSE) yang telah Anda gunakan sebelumnya dapat menunjukkan [`cached` status](/docs/id/mcp#managing-your-servers) sebagai gantinya; Claude Code menghubungkannya ketika Claude pertama kali memanggil salah satu tool-nya.

540</Note>544</Note>

541 545 

542Setiap entri dalam daftar adalah definisi server inline atau string yang mereferensikan MCP server yang sudah dikonfigurasi dalam sesi Anda:546Setiap entri dalam daftar adalah definisi server inline atau string yang mereferensikan MCP server yang sudah dikonfigurasi dalam sesi Anda:


558Use the Playwright tools to navigate, screenshot, and interact with pages.562Use the Playwright tools to navigate, screenshot, and interact with pages.

559```563```

560 564 

561Definisi inline menggunakan skema yang sama dengan entri server `.mcp.json`, dikunci dengan nama server, dan mendukung jenis `stdio`, `http`, `sse`, dan `ws`.565Definisi inline menggunakan skema yang sama seperti entri server `.mcp.json`, dikunci dengan nama server, dan mendukung tipe `stdio`, `http`, `sse`, dan `ws`.

562 566 

563Untuk menjaga MCP server di luar percakapan utama sepenuhnya dan menghindari deskripsi alatnya mengonsumsi konteks di sana, tentukan secara inline di sini daripada di `.mcp.json`. Subagent mendapatkan alat; percakapan induk tidak.567Untuk menjaga MCP server keluar dari percakapan utama sepenuhnya dan menghindari deskripsi tool-nya mengonsumsi konteks di sana, tentukan secara inline di sini daripada di `.mcp.json`. Subagent mendapatkan tool; percakapan induk tidak.

564 568 

565<span id="inline-server-trust" />Claude Code memuat server inline dari file agen dalam direktori `.claude/agents/` proyek Anda, atau dalam direktori `.claude/agents/` direktori `--add-dir`, hanya setelah Anda [mempercayai folder tempat file agen berasal](/docs/id/permissions#what-runs-before-you-trust-a-folder). Sebelum v2.1.238, Claude Code memuat server ini tanpa memeriksa kepercayaan.569<span id="inline-server-trust" />Claude Code memuat server inline dari file agent dalam direktori `.claude/agents/` proyek Anda, atau dalam direktori `.claude/agents/` direktori `--add-dir`, hanya setelah Anda [mempercayai folder tempat file agent berasal](/docs/id/permissions#what-runs-before-you-trust-a-folder). Sebelum v2.1.238, Claude Code memuat server ini tanpa memeriksa kepercayaan.

566 570 

567* **Kepercayaan yang tidak dihitung**: kepercayaan folder induk, dan kepercayaan otomatis yang sesi `-p` atau SDK dapatkan untuk [hooks dalam file pengaturan](/docs/id/permissions#what-runs-before-you-trust-a-folder)571* **Kepercayaan yang tidak dihitung**: kepercayaan folder induk, dan kepercayaan otomatis yang sesi `-p` atau SDK dapatkan untuk [hooks dalam file pengaturan](/docs/id/permissions#what-runs-before-you-trust-a-folder)

568* **Sampai saat itu**: Claude Code melewati setiap server inline dalam file agen itu dan menulis kunci `projects["<path>"].hasTrustDialogAccepted` yang tepat untuk `~/.claude.json` ke debug log572* **Sampai saat itu**: Claude Code melewati setiap server inline dalam file agent itu dan menulis kunci `projects["<path>"].hasTrustDialogAccepted` yang tepat untuk `~/.claude.json` ke debug log

569* **Direktori `--add-dir`**: direktori di luar repositori workspace terpercaya Anda memerlukan entri kepercayaan sendiri, karena file `.claude/agents/` miliknya tidak mewarisi kepercayaan workspace Anda573* **Direktori `--add-dir`**: direktori di luar repositori workspace terpercaya Anda memerlukan entri kepercayaan miliknya sendiri, karena file `.claude/agents/` miliknya tidak mewarisi kepercayaan workspace Anda

570 574 

571Claude Code memuat dua jenis server tanpa memeriksa kepercayaan untuk folder tempat file agen berasal:575Claude Code memuat dua jenis server tanpa memeriksa kepercayaan untuk folder tempat file agent berasal:

572 576 

573* Nama yang mereferensikan server yang sudah Anda konfigurasi577* Nama yang mereferensikan server yang sudah Anda konfigurasi

574* Server inline dalam file agen dari `~/.claude/agents/`, dalam satu yang Anda lewatkan dengan `--agents` atau opsi SDK `agents`, atau dalam satu yang pengaturan terkelola sediakan578* Server inline dalam file agent dari `~/.claude/agents/`, dalam satu yang Anda lewatkan dengan `--agents` atau opsi SDK `agents`, atau dalam satu yang managed settings sediakan

575 579 

576Pembatasan MCP yang berlaku untuk sesi utama juga mencakup server yang dideklarasikan dalam frontmatter subagent:580Pembatasan MCP yang berlaku untuk sesi utama juga mencakup server yang dideklarasikan dalam frontmatter subagent:

577 581 

578* [`--strict-mcp-config`](/docs/id/cli-reference) dan [`--bare`](/docs/id/cli-reference)582* [`--strict-mcp-config`](/docs/id/cli-reference) dan [`--bare`](/docs/id/cli-reference)

579* [Konfigurasi MCP terkelola Enterprise](/docs/id/managed-mcp)583* [Enterprise managed MCP configuration](/docs/id/managed-mcp)

580* [`allowedMcpServers` dan `deniedMcpServers` policies](/docs/id/managed-mcp#policy-based-control-with-allowlists-and-denylists)584* [`allowedMcpServers` dan `deniedMcpServers` policies](/docs/id/managed-mcp#policy-based-control-with-allowlists-and-denylists)

581 585 

582Ketika salah satu dari ini memblokir server, Claude Code melewatinya dan menampilkan peringatan yang menyebutkan server yang diblokir.586Ketika salah satu dari ini memblokir server, Claude Code melewatinya dan menunjukkan peringatan yang menamai server yang diblokir.

583 587 

584Pembatasan pengaturan terkelola berlaku untuk setiap subagent terlepas dari cara pendefinisiannya. `--strict-mcp-config` tidak memfilter server yang Anda lewatkan secara inline melalui `--agents` atau opsi SDK `agents`, karena itu adalah input pemanggil eksplisit.588Pembatasan managed-settings berlaku untuk setiap subagent terlepas dari cara pendefinisiannya. `--strict-mcp-config` tidak memfilter server yang Anda lewatkan inline melalui `--agents` atau opsi SDK `agents`, karena itu adalah input pengguna eksplisit.

585 589 

586<h4 id="permission-modes">590<h4 id="permission-modes">

587 Mode izin591 Mode izin

588</h4>592</h4>

589 593 

590Atur `permissionMode` untuk memilih mode izin yang dijalankan subagent. Gunakan nilai konfigurasi mode, jadi mode Manual adalah `default`. Jika Anda membiarkannya tidak diatur, subagent mewarisi mode percakapan utama, yang dimulai sebagai [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) pada paket Pro, Max, dan Team kecuali pengaturan Anda atau organisasi Anda mengubahnya.594Atur `permissionMode` untuk memilih mode izin yang dijalankan subagent. Gunakan nilai config mode, jadi mode Manual adalah `default`. Jika Anda membiarkannya tidak diatur, subagent mewarisi [mode izin](/docs/id/permission-modes) percakapan utama.

591 595 

592Mode izin percakapan utama memutuskan apakah Claude Code menggunakan nilai yang Anda atur:596Mode izin percakapan utama memutuskan apakah Claude Code menggunakan nilai yang Anda atur:

593 597 

594* Ketika percakapan utama berada dalam `bypassPermissions`, `acceptEdits`, atau [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), subagent berjalan dalam mode yang sama dan Claude Code mengabaikan `permissionMode` yang Anda atur. Di bawah auto mode, pengklasifikasi mengevaluasi panggilan alat subagent dengan aturan blok dan izin percakapan utama. Ketika subagent selesai, pengklasifikasi juga meninjau pekerjaannya dan laporannya yang final sebelum laporan disampaikan, seperti [Bagaimana auto mode menangani subagent](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) menjelaskan.598* Ketika percakapan utama berada dalam `bypassPermissions`, `acceptEdits`, atau [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), subagent berjalan dalam mode yang sama dan Claude Code mengabaikan `permissionMode` yang Anda atur. Di bawah auto mode, classifier mengevaluasi panggilan tool subagent dengan aturan blok dan izin percakapan utama. Ketika subagent selesai, classifier juga meninjau pekerjaan dan laporan finalnya sebelum laporan dikirimkan, seperti [How auto mode handles subagents](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) menjelaskan.

595* Ketika percakapan utama berada dalam mode `default`, `dontAsk`, atau `plan`, subagent berjalan dalam mode izin yang Anda atur, kecuali `bypassPermissions`. Subagent yang mendeklarasikan `bypassPermissions` menyimpan mode percakapan utama sebagai gantinya. Pengecualian `bypassPermissions` memerlukan Claude Code v2.1.267 atau lebih baru.599* Ketika percakapan utama berada dalam mode `default`, `dontAsk`, atau `plan`, subagent berjalan dalam mode izin yang Anda atur, kecuali `bypassPermissions`. Subagent yang mendeklarasikan `bypassPermissions` menyimpan mode percakapan utama sebagai gantinya. Pengecualian `bypassPermissions` memerlukan Claude Code v2.1.267 atau lebih baru.

596 600 

597`permissionMode` menerima nilai ini, dan `manual` sebagai alias untuk `default`:601`permissionMode` menerima nilai ini, dan `manual` sebagai alias untuk `default`:


599| Mode | Perilaku |603| Mode | Perilaku |

600| :- | :- |604| :- | :- |

601| `default` | Mode manual: meminta izin |605| `default` | Mode manual: meminta izin |

602| `acceptEdits` | Auto-terima edit file dan perintah sistem file umum untuk jalur di direktori kerja atau `additionalDirectories` |606| `acceptEdits` | Auto-terima edit file dan perintah filesystem umum untuk path dalam direktori kerja atau `additionalDirectories` |

603| `auto` | [Auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode): pengklasifikasi latar belakang meninjau perintah dan penulisan direktori yang dilindungi |607| `auto` | [Auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode): classifier latar belakang meninjau perintah dan penulisan direktori terlindungi |

604| `dontAsk` | Auto-tolak prompt izin. Alat yang secara eksplisit diizinkan masih berfungsi; `AskUserQuestion`, alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool), dan alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code ditolak bahkan jika Anda telah mengizinkannya |608| `dontAsk` | Auto-tolak prompt izin. Tool yang secara eksplisit diizinkan masih berfungsi; `AskUserQuestion`, tool MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool), dan tool connector [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code ditolak bahkan jika Anda telah mengizinkannya |

605| `bypassPermissions` | [Lewati prompt izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode). Subagent berjalan dalam mode ini hanya ketika percakapan utama melakukannya |609| `bypassPermissions` | [Lewati prompt izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode). Subagent berjalan dalam mode ini hanya ketika percakapan utama melakukannya |

606| `plan` | Plan mode (eksplorasi hanya-baca) |610| `plan` | Plan mode (eksplorasi read-only) |

607 611 

608<h4 id="preload-skills-into-subagents">612<h4 id="preload-skills-into-subagents">

609 Preload skills ke dalam subagent613 Muat skills sebelumnya ke dalam subagent

610</h4>614</h4>

611 615 

612Gunakan bidang `skills` untuk menyuntikkan konten skill ke dalam konteks subagent saat startup. Ini memberikan subagent pengetahuan domain tanpa memerlukan penemuan dan pemuatan skills selama eksekusi.616Gunakan field `skills` untuk menyuntikkan konten skill ke dalam konteks subagent saat startup. Ini memberikan subagent pengetahuan domain tanpa memerlukan untuk menemukan dan memuat skill selama eksekusi.

613 617 

614```yaml theme={null}618```yaml theme={null}

615---619---


623Implement API endpoints. Follow the conventions and patterns from the preloaded skills.627Implement API endpoints. Follow the conventions and patterns from the preloaded skills.

624```628```

625 629 

626Konten lengkap setiap skill yang tercantum disuntikkan ke dalam konteks subagent saat startup. Bidang ini mengontrol skill mana yang dimuat sebelumnya, bukan skill mana yang dapat diakses subagent: tanpanya, subagent masih dapat menemukan dan memanggil project, user, dan plugin skills melalui alat Skill selama eksekusi. Untuk mencegah subagent memanggil skills sama sekali, hilangkan `Skill` dari daftar [`tools`](#available-tools) atau tambahkan ke `disallowedTools`.630Konten lengkap dari setiap skill yang tercantum disuntikkan ke dalam konteks subagent saat startup. Field ini mengontrol skill mana yang dimuat sebelumnya, bukan skill mana yang dapat diakses subagent: tanpanya, subagent masih dapat menemukan dan memanggil skill proyek, pengguna, dan plugin melalui tool Skill selama eksekusi. Untuk mencegah subagent dari memanggil skill sepenuhnya, hilangkan `Skill` dari daftar [`tools`](#available-tools) atau tambahkan ke `disallowedTools`.

627 631 

628Anda tidak dapat preload skills yang menetapkan [`disable-model-invocation: true`](/docs/id/skills#control-who-invokes-a-skill), karena preloading menarik dari set skills yang sama yang dapat diinvokasi Claude. Ini termasuk skill `/verify` bundel: hanya Anda yang dapat menjalankannya, jadi itu juga tidak dapat dimuat sebelumnya.632Anda tidak dapat memuat skill sebelumnya yang mengatur [`disable-model-invocation: true`](/docs/id/skills#control-who-invokes-a-skill), karena memuat sebelumnya menarik dari set skill yang sama yang dapat dipanggil Claude. Ini termasuk skill `/verify` bundel: hanya Anda yang dapat menjalankannya, jadi tidak dapat dimuat sebelumnya juga.

629 633 

630Jika skill yang tercantum hilang atau dinonaktifkan, misalnya oleh kebijakan organisasi Anda, Claude Code melewatinya dan mencatat peringatan ke debug log.634Jika skill yang tercantum hilang atau dinonaktifkan, misalnya oleh kebijakan organisasi Anda, Claude Code melewatinya dan mencatat peringatan ke debug log.

631 635 

632<Note>636<Note>

633 Ini adalah kebalikan dari [menjalankan skill dalam subagent](/docs/id/skills#run-skills-in-a-subagent). Dengan `skills` dalam subagent, subagent mengontrol prompt sistem dan memuat konten skill. Dengan `context: fork` dalam skill, konten skill disuntikkan ke dalam agen yang Anda tentukan. Dalam kedua kasus subagent dimulai tanpa riwayat percakapan Anda.637 Ini adalah kebalikan dari [menjalankan skill dalam subagent](/docs/id/skills#run-skills-in-a-subagent). Dengan `skills` dalam subagent, subagent mengontrol system prompt dan memuat konten skill. Dengan `context: fork` dalam skill, konten skill disuntikkan ke dalam agent yang Anda tentukan. Dalam kedua kasus subagent dimulai tanpa riwayat percakapan Anda.

634</Note>638</Note>

635 639 

636<h4 id="enable-persistent-memory">640<h4 id="enable-persistent-memory">

637 Aktifkan memori persisten641 Aktifkan persistent memory

638</h4>642</h4>

639 643 

640Bidang `memory` memberikan subagent direktori persisten yang bertahan di seluruh percakapan. Subagent menggunakan direktori ini untuk membangun pengetahuan seiring waktu, seperti pola basis kode, wawasan debugging, dan keputusan arsitektur.644Field `memory` memberikan subagent direktori persisten yang bertahan di seluruh percakapan. Subagent menggunakan direktori ini untuk membangun pengetahuan seiring waktu, seperti pola codebase, wawasan debugging, dan keputusan arsitektur.

641 645 

642```yaml theme={null}646```yaml theme={null}

643---647---


650patterns, conventions, and recurring issues you discover.654patterns, conventions, and recurring issues you discover.

651```655```

652 656 

653Pilih cakupan berdasarkan seberapa luas memori harus diterapkan:657Pilih cakupan berdasarkan seberapa luas memory harus berlaku:

654 658 

655| Cakupan | Lokasi | Gunakan ketika |659| Cakupan | Lokasi | Gunakan ketika |

656| :- | :- | :- |660| :- | :- | :- |

657| `user` | `~/.claude/agent-memory/<name-of-agent>/` | subagent harus mengingat pembelajaran di seluruh semua proyek |661| `user` | `~/.claude/agent-memory/<name-of-agent>/` | subagent harus mengingat pembelajaran di seluruh semua proyek |

658| `project` | `.claude/agent-memory/<name-of-agent>/` | pengetahuan subagent spesifik proyek dan dapat dibagikan melalui kontrol versi |662| `project` | `.claude/agent-memory/<name-of-agent>/` | pengetahuan subagent spesifik proyek dan dapat dibagikan melalui version control |

659| `local` | `.claude/agent-memory-local/<name-of-agent>/` | pengetahuan subagent spesifik proyek tetapi tidak boleh diperiksa ke dalam kontrol versi |663| `local` | `.claude/agent-memory-local/<name-of-agent>/` | pengetahuan subagent spesifik proyek tetapi tidak boleh diperiksa ke dalam version control |

660 664 

661Memori subagent adalah bagian dari [auto memory](/docs/id/memory#auto-memory): jika Anda mematikan auto memory, dengan pengaturan `autoMemoryEnabled` atau `CLAUDE_CODE_DISABLE_AUTO_MEMORY`, bidang `memory` tidak berpengaruh dan subagent diluncurkan tanpa instruksi memori atau akses alat memori yang dijelaskan di bawah.665Memory subagent adalah bagian dari [auto memory](/docs/id/memory#auto-memory): jika Anda mematikan auto memory, dengan setting `autoMemoryEnabled` atau `CLAUDE_CODE_DISABLE_AUTO_MEMORY`, field `memory` tidak berpengaruh dan subagent diluncurkan tanpa instruksi memory atau akses tool memory yang dijelaskan di bawah.

662 666 

663Ketika memori diaktifkan:667Ketika memory diaktifkan:

664 668 

665* Prompt sistem subagent mencakup instruksi untuk membaca dan menulis ke direktori memori.669* System prompt subagent mencakup instruksi untuk membaca dan menulis ke direktori memory.

666* Prompt sistem subagent juga mencakup 200 baris pertama atau 25KB dari `MEMORY.md` dalam direktori memori, mana pun yang lebih kecil, dengan instruksi untuk mengkurasi `MEMORY.md` jika melebihi batas itu.670* System prompt subagent juga mencakup 200 baris pertama atau 25KB dari `MEMORY.md` dalam direktori memory, mana pun yang lebih dulu, dengan instruksi untuk mengkurasi `MEMORY.md` jika melebihi batas itu.

667* Alat Read, Write, dan Edit secara otomatis diaktifkan sehingga subagent dapat mengelola file memorinya.671* Tool Read, Write, dan Edit secara otomatis diaktifkan sehingga subagent dapat mengelola file memory-nya.

668 672 

669<h5 id="persistent-memory-tips">673<h5 id="persistent-memory-tips">

670 Tips memori persisten674 Tips persistent memory

671</h5>675</h5>

672 676 

673* `project` adalah cakupan default yang direkomendasikan. Ini membuat pengetahuan subagent dapat dibagikan melalui kontrol versi.677* `project` adalah cakupan default yang direkomendasikan. Ini membuat pengetahuan subagent dapat dibagikan melalui version control.

674* Minta subagent untuk berkonsultasi dengan memorinya sebelum memulai pekerjaan: "Review PR ini, dan periksa memori Anda untuk pola yang telah Anda lihat sebelumnya."678* Minta subagent untuk berkonsultasi dengan memory-nya sebelum memulai pekerjaan: "Review PR ini, dan periksa memory Anda untuk pola yang telah Anda lihat sebelumnya."

675* Minta subagent untuk memperbarui memorinya setelah menyelesaikan tugas: "Sekarang setelah Anda selesai, simpan apa yang Anda pelajari ke memori Anda." Seiring waktu, ini membangun basis pengetahuan yang membuat subagent lebih efektif.679* Minta subagent untuk memperbarui memory-nya setelah menyelesaikan tugas: "Sekarang Anda selesai, simpan apa yang Anda pelajari ke memory Anda." Seiring waktu, ini membangun basis pengetahuan yang membuat subagent lebih efektif.

676* Sertakan instruksi memori langsung dalam file markdown subagent sehingga secara proaktif mempertahankan basis pengetahuannya sendiri:680* Sertakan instruksi memory langsung dalam file markdown subagent sehingga secara proaktif mempertahankan basis pengetahuan miliknya sendiri:

677 681 

678 ```markdown theme={null}682 ```markdown theme={null}

679 Update your agent memory as you discover codepaths, patterns, library683 Update your agent memory as you discover codepaths, patterns, library


686 Aturan bersyarat dengan hooks690 Aturan bersyarat dengan hooks

687</h4>691</h4>

688 692 

689Untuk kontrol yang lebih dinamis atas penggunaan alat, gunakan hooks `PreToolUse` untuk memvalidasi operasi sebelum dijalankan. Ini berguna ketika Anda perlu mengizinkan beberapa operasi alat sambil memblokir yang lain.693Untuk kontrol yang lebih dinamis atas penggunaan tool, gunakan hook `PreToolUse` untuk memvalidasi operasi sebelum dieksekusi. Ini berguna ketika Anda perlu mengizinkan beberapa operasi tool sambil memblokir yang lain.

690 694 

691Contoh ini membuat subagent yang hanya mengizinkan kueri database hanya-baca. Hook `PreToolUse` menjalankan skrip yang ditentukan dalam `command` sebelum setiap perintah Bash dijalankan:695Contoh ini membuat subagent yang hanya mengizinkan kueri database read-only. Hook `PreToolUse` menjalankan skrip yang ditentukan dalam `command` sebelum setiap perintah Bash dieksekusi:

692 696 

693```yaml theme={null}697```yaml theme={null}

694---698---


730 734 

731Untuk menguji aturan, minta subagent untuk menjalankan pernyataan `UPDATE`: skrip keluar dengan kode 2, Claude Code memblokir perintah, dan subagent melihat pesan `Blocked: Only SELECT queries are allowed`.735Untuk menguji aturan, minta subagent untuk menjalankan pernyataan `UPDATE`: skrip keluar dengan kode 2, Claude Code memblokir perintah, dan subagent melihat pesan `Blocked: Only SELECT queries are allowed`.

732 736 

733Lihat [Hook input](/docs/id/hooks#pretooluse-input) untuk skema input lengkap dan [exit codes](/docs/id/hooks#exit-code-output) untuk bagaimana kode keluar mempengaruhi perilaku. Di Windows, tulis skrip hook dalam PowerShell dan tambahkan `shell: powershell` ke entri hook seperti yang ditunjukkan dalam [menjalankan hooks dalam PowerShell](/docs/id/hooks#windows-powershell-tool).737Lihat [Hook input](/docs/id/hooks#pretooluse-input) untuk skema input lengkap dan [exit codes](/docs/id/hooks#exit-code-output) untuk cara exit code mempengaruhi perilaku. Di Windows, tulis skrip hook dalam PowerShell dan tambahkan `shell: powershell` ke entri hook seperti ditunjukkan dalam [running hooks in PowerShell](/docs/id/hooks#windows-powershell-tool).

734 738 

735<h4 id="disable-specific-subagents">739<h4 id="disable-specific-subagents">

736 Nonaktifkan subagent tertentu740 Nonaktifkan subagent spesifik

737</h4>741</h4>

738 742 

739Anda dapat mencegah Claude menggunakan subagent tertentu dengan menambahkannya ke array `deny` dalam [pengaturan](/docs/id/settings-reference#permission-settings) Anda. Gunakan format `Agent(subagent-name)` di mana `subagent-name` cocok dengan bidang nama subagent.743Anda dapat mencegah Claude dari menggunakan subagent spesifik dengan menambahkannya ke array `deny` dalam [settings](/docs/id/settings-reference#permission-settings) Anda. Gunakan format `Agent(subagent-name)` di mana `subagent-name` cocok dengan field name subagent.

740 744 

741```json theme={null}745```json theme={null}

742{746{


746}750}

747```751```

748 752 

749Ini berfungsi untuk subagent bawaan dan khusus. Anda juga dapat menggunakan flag CLI `--disallowedTools`:753Ini berfungsi untuk subagent bawaan dan kustom. Anda juga dapat menggunakan flag CLI `--disallowedTools`:

750 754 

751```bash theme={null}755```bash theme={null}

752claude --disallowedTools "Agent(Explore)"756claude --disallowedTools "Agent(Explore)"

753```757```

754 758 

755Lihat [dokumentasi Permissions](/docs/id/permissions#tool-specific-permission-rules) untuk detail lebih lanjut tentang aturan izin.759Lihat [Permissions documentation](/docs/id/permissions#tool-specific-permission-rules) untuk detail lebih lanjut tentang aturan izin.

756 760 

757<h3 id="define-hooks-for-subagents">761<h3 id="define-hooks-for-subagents">

758 Tentukan hooks untuk subagent762 Tentukan hooks untuk subagent

759</h3>763</h3>

760 764 

761Subagent dapat mendefinisikan [hooks](/docs/id/hooks) yang berjalan selama siklus hidup subagent. Ada dua cara untuk mengonfigurasi hooks:765Subagent dapat mendefinisikan [hooks](/docs/id/hooks) yang berjalan selama lifecycle subagent. Ada dua cara untuk mengonfigurasi hooks:

762 766 

763* **Dalam frontmatter subagent**: tentukan hooks yang hanya berjalan saat subagent tertentu itu aktif767* **Dalam frontmatter subagent**: tentukan hooks yang berjalan hanya saat subagent itu aktif

764* **Dalam `settings.json`**: tentukan hooks tingkat sesi yang juga terjadi di dalam subagent. Peristiwa alat seperti `PreToolUse` dan `PostToolUse` terjadi untuk panggilan alat subagent dengan cara yang sama seperti dalam percakapan utama, dan `SubagentStart` dan `SubagentStop` terjadi ketika subagent dimulai atau selesai768* **Dalam `settings.json`**: tentukan hooks seluruh sesi yang juga menyala di dalam subagent. Peristiwa tool seperti `PreToolUse` dan `PostToolUse` menyala untuk panggilan tool subagent dengan cara yang sama seperti dalam percakapan utama, dan `SubagentStart` dan `SubagentStop` menyala ketika subagent dimulai atau selesai

765 769 

766Hooks dari [file pengaturan, pengaturan kebijakan terkelola, dan plugins](/docs/id/hooks#hook-locations) semuanya berlaku di dalam subagent, jadi hook `PreToolUse` dalam `settings.json` juga berjalan sebelum setiap alat yang digunakan subagent.770Hook dari [file pengaturan, managed policy settings, dan plugins](/docs/id/hooks#hook-locations) semuanya berlaku di dalam subagent, jadi hook `PreToolUse` dalam `settings.json` juga berjalan sebelum setiap tool yang digunakan subagent.

767 771 

768<h4 id="hooks-in-subagent-frontmatter">772<h4 id="hooks-in-subagent-frontmatter">

769 Hooks dalam frontmatter subagent773 Hook dalam frontmatter subagent

770</h4>774</h4>

771 775 

772Tentukan hooks langsung dalam file markdown subagent. Hooks ini hanya berjalan saat subagent spesifik itu aktif dan dibersihkan saat selesai.776Tentukan hooks langsung dalam file markdown subagent. Hook ini hanya berjalan saat subagent spesifik itu aktif dan dibersihkan ketika selesai.

773 777 

774<Note>778<Note>

775 Frontmatter hooks terjadi ketika agen dihasilkan sebagai subagent melalui alat Agent atau @-mention, dan ketika agen berjalan sebagai sesi utama melalui [`--agent`](#invoke-subagents-explicitly) atau pengaturan `agent`. Dalam kasus sesi-utama mereka berjalan bersama hook apa pun yang ditentukan dalam [`settings.json`](/docs/id/hooks).779 Hook frontmatter menyala ketika agent di-spawn sebagai subagent melalui tool Agent atau @-mention, dan ketika agent berjalan sebagai sesi utama melalui [`--agent`](#invoke-subagents-explicitly) atau setting `agent`. Dalam kasus sesi-utama mereka berjalan bersama hook apa pun yang didefinisikan dalam [`settings.json`](/docs/id/hooks).

776</Note>780</Note>

777 781 

778Untuk membiarkan hooks frontmatter subagent tingkat proyek berjalan, terima [dialog kepercayaan workspace](/docs/id/permissions#project-allow-rules-and-workspace-trust) untuk folder yang berisi file agen. Hooks dari subagent tingkat pengguna dalam `~/.claude/agents/` dan dari definisi yang Anda lewatkan dengan `--agents` berjalan tanpa langkah ini. Jika Anda menambahkan folder dengan `--add-dir` dari luar repositori workspace terpercaya Anda, percayai folder itu secara terpisah: hooks `.claude/agents/` miliknya tidak mewarisi kepercayaan workspace Anda.782Untuk membiarkan hook frontmatter subagent tingkat proyek berjalan, terima [workspace trust dialog](/docs/id/permissions#project-allow-rules-and-workspace-trust) untuk folder yang berisi file agent. Hook dari subagent tingkat pengguna dalam `~/.claude/agents/` dan dari definisi yang Anda lewatkan dengan `--agents` berjalan tanpa langkah ini. Jika Anda menambahkan folder dengan `--add-dir` dari luar repositori workspace terpercaya Anda, percayai folder itu secara terpisah: hook `.claude/agents/` miliknya tidak mewarisi kepercayaan workspace. Sampai Anda mempercayai folder, subagent masih berjalan, tetapi Claude Code melewati hook frontmatter-nya dan mencatat kesalahan ke debug log yang menjelaskan cara mempercayai folder. Ini adalah aturan yang lebih ketat daripada untuk hook dalam file pengaturan: mempercayai folder induk tidak cukup, dan sesi `-p` tidak dihitung sebagai terpercaya. [What runs before you trust a folder](/docs/id/permissions#what-runs-before-you-trust-a-folder) membandingkan keduanya. Sebelum v2.1.218, hook frontmatter dapat berjalan dari folder yang belum Anda percayai, termasuk dalam sesi non-interaktif.

779 

780Sampai Anda mempercayai folder, subagent masih berjalan, tetapi Claude Code melewati hooks frontmatter-nya dan mencatat kesalahan ke debug log yang menjelaskan cara mempercayai folder. Ini adalah aturan yang lebih ketat daripada aturan untuk hooks dalam file pengaturan: mempercayai folder induk tidak cukup, dan sesi `-p` tidak dihitung sebagai terpercaya. [What runs before you trust a folder](/docs/id/permissions#what-runs-before-you-trust-a-folder) membandingkan keduanya. Sebelum v2.1.218, hooks frontmatter dapat berjalan dari folder yang belum Anda percayai, termasuk dalam sesi non-interaktif.

781 783 

782Semua [hook events](/docs/id/hooks#hook-events) didukung. Peristiwa paling umum untuk subagent adalah:784Semua [hook events](/docs/id/hooks#hook-events) didukung. Peristiwa paling umum untuk subagent adalah:

783 785 

784| Peristiwa | Input Matcher | Kapan itu terjadi |786| Peristiwa | Input matcher | Kapan menyala |

785| :- | :- | :- |787| :- | :- | :- |

786| `PreToolUse` | Nama alat | Sebelum subagent menggunakan alat |788| `PreToolUse` | Nama tool | Sebelum subagent menggunakan tool |

787| `PostToolUse` | Nama alat | Setelah subagent menggunakan alat |789| `PostToolUse` | Nama tool | Setelah subagent menggunakan tool |

788| `Stop` | (tidak ada) | Ketika subagent selesai (dikonversi ke `SubagentStop` saat runtime) |790| `Stop` | (tidak ada) | Ketika subagent selesai (dikonversi ke `SubagentStop` saat runtime) |

789 791 

790Contoh ini memvalidasi perintah Bash dengan hook `PreToolUse` dan menjalankan linter setelah edit file dengan `PostToolUse`:792Contoh ini memvalidasi perintah Bash dengan hook `PreToolUse` dan menjalankan linter setelah edit file dengan `PostToolUse`:


807---809---

808```810```

809 811 

810Ketika agen dipanggil sebagai subagent, hooks `Stop` dalam frontmatter secara otomatis dikonversi ke peristiwa `SubagentStop`.812Ketika agent dipanggil sebagai subagent, hook `Stop` dalam frontmatter secara otomatis dikonversi ke peristiwa `SubagentStop`.

811 813 

812<h4 id="project-level-hooks-for-subagent-events">814<h4 id="project-level-hooks-for-subagent-events">

813 Hooks tingkat proyek untuk peristiwa subagent815 Hook tingkat proyek untuk peristiwa subagent

814</h4>816</h4>

815 817 

816Konfigurasi hooks dalam `settings.json` yang merespons peristiwa siklus hidup subagent dalam sesi utama.818Konfigurasi hooks dalam `settings.json` yang merespons peristiwa lifecycle subagent dalam sesi utama.

817 819 

818| Peristiwa | Input Matcher | Kapan itu terjadi |820| Peristiwa | Input matcher | Kapan menyala |

819| :- | :- | :- |821| :- | :- | :- |

820| `SubagentStart` | Nama jenis agen | Ketika subagent mulai dijalankan |822| `SubagentStart` | Nama tipe agent | Ketika subagent mulai eksekusi |

821| `SubagentStop` | Nama jenis agen | Ketika subagent selesai |823| `SubagentStop` | Nama tipe agent | Ketika subagent selesai |

822 824 

823Kedua peristiwa mendukung matcher untuk menargetkan jenis agen tertentu berdasarkan nama. Nilai matcher adalah `name` frontmatter agen untuk subagent tingkat proyek dan pengguna, atau pengenal yang dibatasi cakupan plugin seperti `my-plugin:db-agent` untuk [subagent plugin](/docs/id/plugins/components#agents). Nama yang dibatasi cakupan berisi titik dua, sehingga dievaluasi sebagai [ekspresi reguler yang tidak berlabuh](/docs/id/hooks#matcher-patterns); jangkarnya dengan `^` dan `$`, seperti dalam `^my-plugin:db-agent$`, untuk mencocokkan hanya agen itu.825Kedua peristiwa mendukung matcher untuk menargetkan tipe agent spesifik berdasarkan nama. Nilai matcher adalah frontmatter `name` agent untuk subagent tingkat proyek dan pengguna, atau pengenal cakupan plugin seperti `my-plugin:db-agent` untuk [plugin subagents](/docs/id/plugins/components#agents). Nama cakupan berisi titik dua, jadi dievaluasi sebagai [unanchored regular expression](/docs/id/hooks#matcher-patterns); jangkarnya dengan `^` dan `$`, seperti dalam `^my-plugin:db-agent$`, untuk mencocokkan hanya agent itu.

824 826 

825Contoh ini menjalankan skrip setup hanya ketika subagent `db-agent` dimulai, dan skrip cleanup ketika subagent apa pun berhenti:827Contoh ini menjalankan skrip setup hanya ketika subagent `db-agent` dimulai, dan skrip cleanup ketika subagent apa pun berhenti:

826 828 


846}848}

847```849```

848 850 

849Matcher dengan tanda hubung seperti `db-agent` cocok dengan tepat pada Claude Code v2.1.195 atau lebih baru. Pada versi sebelumnya dievaluasi sebagai ekspresi reguler yang tidak berlabuh dan juga terjadi untuk jenis agen apa pun yang berisinya, seperti `prod-db-agent`; jangkarnya sebagai `^db-agent$` pada versi-versi itu.851Matcher dengan tanda hubung seperti `db-agent` cocok persis pada Claude Code v2.1.195 atau lebih baru. Pada versi sebelumnya dievaluasi sebagai unanchored regular expression dan juga menyala untuk tipe agent apa pun yang berisinya, seperti `prod-db-agent`; jangkarnya sebagai `^db-agent$` pada versi itu.

850 852 

851Lihat [Hooks](/docs/id/hooks) untuk format konfigurasi hook lengkap.853Lihat [Hooks](/docs/id/hooks) untuk format konfigurasi hook lengkap.

852 854 


899claude --agent code-reviewer901claude --agent code-reviewer

900```902```

901 903 

902Prompt sistem subagent menggantikan prompt sistem Claude Code default sepenuhnya, dengan cara yang sama [`--system-prompt`](/docs/id/cli-reference) melakukannya. File `CLAUDE.md` dan memori proyek masih dimuat melalui aliran pesan normal, bahkan ketika definisi agen menetapkan [`omitClaudeMd`](#supported-frontmatter-fields).904Kecuali prompt agen [kosong](#choose-the-subagent-scope), prompt sistem subagent menggantikan prompt sistem Claude Code default sepenuhnya, dengan cara yang sama [`--system-prompt`](/docs/id/cli-reference) melakukannya. File `CLAUDE.md` dan memori proyek masih dimuat melalui aliran pesan normal, bahkan ketika definisi agen menetapkan [`omitClaudeMd`](#supported-frontmatter-fields).

903 905 

904Nama agen muncul sebagai `@<name>` di header startup sehingga Anda dapat mengonfirmasi itu aktif.906Nama agen muncul sebagai `@<name>` di header startup sehingga Anda dapat mengonfirmasi itu aktif.

905 907 


1036Setiap subagent mengeksplorasi areanya secara independen, kemudian Claude mensintesis temuan. Ini berfungsi terbaik ketika jalur penelitian tidak saling bergantung.1038Setiap subagent mengeksplorasi areanya secara independen, kemudian Claude mensintesis temuan. Ini berfungsi terbaik ketika jalur penelitian tidak saling bergantung.

1037 1039 

1038<Warning>1040<Warning>

1039 Ketika subagent selesai, hasil mereka kembali ke percakapan utama Anda. Menjalankan banyak subagent yang masing-masing mengembalikan hasil terperinci dapat mengonsumsi konteks yang signifikan.1041 Ketika subagent selesai, hasil mereka kembali ke percakapan utama Anda. Menjalankan banyak subagent yang masing-masing mengembalikan hasil terperinci dapat mengonsumsi konteks yang signifikan, dan setiap subagent menghabiskan token-nya sendiri saat berjalan.

1040</Warning>1042</Warning>

1041 1043 

1042Untuk pekerjaan yang perlu terus berjalan secara paralel atau tidak akan muat dalam satu jendela konteks, jalankan dalam [sesi terpisah](/docs/id/agents) dan biarkan Claude [meneruskan temuan di antara mereka](/docs/id/cross-session-messaging).1044Untuk pekerjaan yang perlu terus berjalan secara paralel atau tidak akan muat dalam satu jendela konteks, jalankan dalam [sesi terpisah](/docs/id/agents) dan biarkan Claude [meneruskan temuan di antara mereka](/docs/id/cross-session-messaging).


1135* **File CLAUDE.md**: setiap level dari [hierarki CLAUDE.md](/docs/id/memory#how-claude-md-files-load) yang dimuat percakapan utama, termasuk `~/.claude/CLAUDE.md`, aturan proyek, `CLAUDE.local.md`, file kebijakan yang dikelola, dan file [`AGENTS.md`](/docs/id/memory#agents-md) apa pun yang dimuat sebagai instruksi proyek. Agen Explore dan Plan bawaan melewati ini. Subagent yang definisinya menetapkan [`omitClaudeMd`](#supported-frontmatter-fields) hanya memuat file kebijakan yang dikelola, atau tidak ada sama sekali ketika definisi berasal dari [pengaturan yang dikelola](#choose-the-subagent-scope).1137* **File CLAUDE.md**: setiap level dari [hierarki CLAUDE.md](/docs/id/memory#how-claude-md-files-load) yang dimuat percakapan utama, termasuk `~/.claude/CLAUDE.md`, aturan proyek, `CLAUDE.local.md`, file kebijakan yang dikelola, dan file [`AGENTS.md`](/docs/id/memory#agents-md) apa pun yang dimuat sebagai instruksi proyek. Agen Explore dan Plan bawaan melewati ini. Subagent yang definisinya menetapkan [`omitClaudeMd`](#supported-frontmatter-fields) hanya memuat file kebijakan yang dikelola, atau tidak ada sama sekali ketika definisi berasal dari [pengaturan yang dikelola](#choose-the-subagent-scope).

1136* **Status Git**: snapshot yang diambil di awal sesi induk. Tidak ada ketika direktori kerja bukan repositori Git atau ketika [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) adalah `false`. Explore dan Plan melewatinya terlepas.1138* **Status Git**: snapshot yang diambil di awal sesi induk. Tidak ada ketika direktori kerja bukan repositori Git atau ketika [`includeGitInstructions`](/docs/id/settings-reference#includegitinstructions) adalah `false`. Explore dan Plan melewatinya terlepas.

1137* **Skills yang dimuat sebelumnya**: konten lengkap dari skill apa pun yang dinamai dalam bidang [`skills`](#preload-skills-into-subagents) agen. Agen bawaan tidak memuat skills sebelumnya.1139* **Skills yang dimuat sebelumnya**: konten lengkap dari skill apa pun yang dinamai dalam bidang [`skills`](#preload-skills-into-subagents) agen. Agen bawaan tidak memuat skills sebelumnya.

1138* **Daftar saudara**: pengingat sistem yang mencantumkan `main` dan setiap agen bernama lainnya dalam sesi, masing-masing nilai `to` yang valid untuk [`SendMessage`](#resume-subagents). Memerlukan Claude Code v2.1.206 atau lebih baru. Daftar muncul hanya ketika alat subagent mencakup `SendMessage` dan setidaknya satu agen lain memiliki nama, baik Claude menamakannya saat memunculkannya atau berjalan sebagai anggota [tim agen](/docs/id/agent-teams). Ini adalah snapshot yang diambil ketika subagent dimulai, jadi agen yang dinamai nanti tidak muncul.1140* **Daftar saudara**: [pengingat sistem](/docs/id/glossary#system-reminder) yang mencantumkan `main` dan setiap agen bernama lainnya dalam sesi, masing-masing nilai `to` yang valid untuk [`SendMessage`](#resume-subagents). Memerlukan Claude Code v2.1.206 atau lebih baru. Daftar muncul hanya ketika alat subagent mencakup `SendMessage` dan setidaknya satu agen lain memiliki nama, baik Claude menamakannya saat memunculkannya atau berjalan sebagai anggota [tim agen](/docs/id/agent-teams). Ini adalah snapshot yang diambil ketika subagent dimulai, jadi agen yang dinamai nanti tidak muncul.

1139 1141 

1140Untuk meluncurkan salah satu subagent Anda sendiri tanpa file CLAUDE.md pengguna, proyek, dan lokal, atur [`omitClaudeMd: true`](#supported-frontmatter-fields) dalam frontmatter atau `--agents` JSON.1142Untuk meluncurkan salah satu subagent Anda sendiri tanpa file CLAUDE.md pengguna, proyek, dan lokal, atur [`omitClaudeMd: true`](#supported-frontmatter-fields) dalam frontmatter atau `--agents` JSON.

1141 1143 

Details

339 ```339 ```

340</CodeGroup>340</CodeGroup>

341 341 

342<h2 id="cap-response-width-in-wide-terminals">

343 Batasi lebar respons di terminal lebar

344</h2>

345 

346Di terminal yang lebar, setiap baris prosa dalam respons Claude berjalan dengan lebar penuh jendela. Untuk membungkus prosa pada jumlah kolom yang ditetapkan, atur [`maxProseWidth`](/docs/id/settings-reference#maxprosewidth) dalam pengaturan Anda.

347 

342<h2 id="paste-large-content">348<h2 id="paste-large-content">

343 Tempel konten besar349 Tempel konten besar

344</h2>350</h2>

Details

13Untuk menambahkan tools kustom, hubungkan [server MCP](/docs/id/mcp). Untuk memperluas Claude dengan alur kerja berbasis prompt yang dapat digunakan kembali, tulis [skill](/docs/id/skills), yang berjalan melalui tool `Skill` yang ada daripada menambahkan entri tool baru.13Untuk menambahkan tools kustom, hubungkan [server MCP](/docs/id/mcp). Untuk memperluas Claude dengan alur kerja berbasis prompt yang dapat digunakan kembali, tulis [skill](/docs/id/skills), yang berjalan melalui tool `Skill` yang ada daripada menambahkan entri tool baru.

14 14 

15<Info>15<Info>

16 Pada paket Pro, Max, dan Team, Claude Code memulai sesi dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), di mana pengklasifikasi memutuskan sebagian besar prompt ini alih-alih Anda. Kolom `Permission required` menunjukkan apakah prompt tool dalam [Mode Manual](/docs/id/permission-modes) untuk path di dalam direktori kerja. Tools akses file yang ditandai Tidak, termasuk `Read`, `Grep`, dan `Glob`, masih meminta path di luar [direktori kerja dan direktori tambahan](/docs/id/permissions#working-directories). `Bash` ditandai Ya tetapi menjalankan set bawaan [perintah read-only](/docs/id/permissions#read-only-commands) tanpa meminta.16 Dalam [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode), pengklasifikasi memutuskan sebagian besar prompt izin alih-alih Anda. Kolom `Permission required` menunjukkan apakah prompt tool dalam [Mode Manual](/docs/id/permission-modes) untuk path di dalam direktori kerja. Tools akses file yang ditandai Tidak, termasuk `Read`, `Grep`, dan `Glob`, masih meminta path di luar [direktori kerja dan direktori tambahan](/docs/id/permissions#working-directories). `Bash` ditandai Ya tetapi menjalankan set bawaan [perintah read-only](/docs/id/permissions#read-only-commands) tanpa meminta.

17</Info>17</Info>

18 18 

19| Tool | Deskripsi | Izin diperlukan |19| Tool | Deskripsi | Izin diperlukan |


27| `CronList` | Mencantumkan semua tugas terjadwal dalam sesi | Tidak |27| `CronList` | Mencantumkan semua tugas terjadwal dalam sesi | Tidak |

28| `Edit` | Membuat pengeditan tertarget ke file tertentu. Lihat [Perilaku tool Edit](#edit-tool-behavior) | Ya |28| `Edit` | Membuat pengeditan tertarget ke file tertentu. Lihat [Perilaku tool Edit](#edit-tool-behavior) | Ya |

29| `EndConversation` | Mengakhiri sesi, dalam kasus langka input penyalahgunaan berkelanjutan atau ketika Anda meminta Claude untuk mendemonstrasikan tool. Memerlukan Claude Code v2.1.213 atau lebih baru. Lihat [Perilaku tool EndConversation](#endconversation-tool-behavior) | Tidak |29| `EndConversation` | Mengakhiri sesi, dalam kasus langka input penyalahgunaan berkelanjutan atau ketika Anda meminta Claude untuk mendemonstrasikan tool. Memerlukan Claude Code v2.1.213 atau lebih baru. Lihat [Perilaku tool EndConversation](#endconversation-tool-behavior) | Tidak |

30| `EnterPlanMode` | Beralih ke mode rencana untuk merancang pendekatan sebelum coding | Tidak |30| `EnterPlanMode` | Beralih ke Plan Mode untuk merancang pendekatan sebelum coding | Tidak |

31| `EnterWorktree` | Membuat [git worktree](/docs/id/worktrees) terisolasi dan beralih ke dalamnya. Berikan `path` untuk beralih ke worktree yang ada alih-alih membuat yang baru. Pada entri pertama target mungkin worktree dari repositori saat ini atau, dalam ruang kerja multi-repo, dari repositori yang bersarang di dalamnya. Sebelum v2.1.203, worktree repositori bersarang ditolak. A `path` di luar `.claude/worktrees/` meminta persetujuan Anda sebelum memasuki, karena memindahkan direktori kerja sesi dan akses tulis ke lokasi tersebut. Pembuatan worktree baru dan path di bawah `.claude/worktrees/` tidak meminta. Sebelum v2.1.206, Claude memasuki path di luar `.claude/worktrees/` tanpa prompt. Dari dalam sesi worktree, atau dari subagent dengan direktori kerja yang disematkan seperti [`isolation: worktree`](/docs/id/sub-agents#supported-frontmatter-fields), hanya bentuk `path` yang tersedia dan target harus berada di bawah `.claude/worktrees/` dari repositori sesi | Ya |31| `EnterWorktree` | Membuat [git worktree](/docs/id/worktrees) terisolasi dan beralih ke dalamnya. Berikan `path` untuk beralih ke worktree yang ada alih-alih membuat yang baru. Pada entri pertama target mungkin worktree dari repositori saat ini atau, dalam ruang kerja multi-repo, dari repositori yang bersarang di dalamnya. Sebelum v2.1.203, worktree repositori bersarang ditolak. A `path` di luar `.claude/worktrees/` meminta persetujuan Anda sebelum memasuki, karena memindahkan direktori kerja sesi dan akses tulis ke lokasi tersebut. Pembuatan worktree baru dan path di bawah `.claude/worktrees/` tidak meminta. Sebelum v2.1.206, Claude memasuki path di luar `.claude/worktrees/` tanpa prompt. Dari dalam sesi worktree, atau dari subagent dengan direktori kerja yang disematkan seperti [`isolation: worktree`](/docs/id/sub-agents#supported-frontmatter-fields), hanya bentuk `path` yang tersedia dan target harus berada di bawah `.claude/worktrees/` dari repositori sesi | Ya |

32| `ExitPlanMode` | Menyajikan rencana untuk persetujuan dan keluar dari mode rencana | Ya |32| `ExitPlanMode` | Menyajikan rencana untuk persetujuan dan keluar dari Plan Mode | Ya |

33| `ExitWorktree` | Keluar dari sesi worktree dan kembali ke direktori asli. Tidak tersedia untuk subagent yang sudah berjalan di direktori kerja mereka sendiri, seperti dengan [`isolation: worktree`](/docs/id/sub-agents#supported-frontmatter-fields) | Tidak |33| `ExitWorktree` | Keluar dari sesi worktree dan kembali ke direktori asli. Tidak tersedia untuk subagent yang sudah berjalan di direktori kerja mereka sendiri, seperti dengan [`isolation: worktree`](/docs/id/sub-agents#supported-frontmatter-fields) | Tidak |

34| `Glob` | Menemukan file berdasarkan pencocokan pola. Tidak ada secara default di macOS, Linux, dan WSL. Lihat [Perilaku tool Glob](#glob-tool-behavior) | Tidak |34| `Glob` | Menemukan file berdasarkan pencocokan pola. Tidak ada secara default di macOS, Linux, dan WSL. Lihat [Perilaku tool Glob](#glob-tool-behavior) | Tidak |

35| `Grep` | Mencari pola dalam konten file. Tidak ada secara default di macOS, Linux, dan WSL. Lihat [Perilaku tool Grep](#grep-tool-behavior) | Tidak |35| `Grep` | Mencari pola dalam konten file. Tidak ada secara default di macOS, Linux, dan WSL. Lihat [Perilaku tool Grep](#grep-tool-behavior) | Tidak |

36| `ListAgents` | Mencantumkan agent yang dapat dihubungi Claude dengan `SendMessage`: subagent dalam sesi, rekan tim [tim agent](/docs/id/agent-teams), sesi Claude Code lokal Anda yang lain, dan, saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control), sesi [Claude Code di web](/docs/id/claude-code-on-the-web) Anda dan sesi Remote Control Anda di mesin lain. Mendukung perintah `/list-agents`. Lihat [pesan lintas-sesi](/docs/id/cross-session-messaging). Memerlukan Claude Code v2.1.224 atau lebih baru, dan muncul hanya dalam sesi di mana [pesan lintas-sesi diaktifkan](/docs/id/cross-session-messaging#availability). Baris rekan tim dan baris pertama yang menunjukkan nama sesi ini sendiri memerlukan v2.1.239 atau lebih baru | Tidak |36| `ListAgents` | Mencantumkan agent yang dapat dihubungi Claude dengan `SendMessage`: subagent dalam sesi, rekan tim [tim agent](/docs/id/agent-teams), sesi Claude Code lokal Anda yang lain, dan, saat sesi ini terhubung ke [Remote Control](/docs/id/remote-control), sesi [Claude Code di web](/docs/id/claude-code-on-the-web) Anda dan sesi Remote Control Anda di mesin lain. Mendukung perintah `/list-agents`. Lihat [pesan lintas-sesi](/docs/id/cross-session-messaging). Memerlukan Claude Code v2.1.224 atau lebih baru, dan muncul hanya dalam sesi di mana [pesan lintas-sesi diaktifkan](/docs/id/cross-session-messaging#availability). Baris rekan tim dan baris pertama yang menunjukkan nama sesi ini sendiri memerlukan v2.1.239 atau lebih baru | Tidak |

37| `ListMcpResourcesTool` | Mencantumkan sumber daya yang diekspos oleh [server MCP](/docs/id/mcp) yang terhubung | Tidak |37| `ListMcpResourcesTool` | Mencantumkan sumber daya yang diekspos oleh [server MCP](/docs/id/mcp) yang terhubung, meninggalkan [sumber daya UI Aplikasi MCP](/docs/id/mcp#reference-mcp-resources), yang merupakan halaman untuk aplikasi host untuk dirender | Tidak |

38| `LSP` | Intelijen kode melalui server bahasa: lompat ke definisi, temukan referensi, laporkan kesalahan tipe dan peringatan. Lihat [Perilaku tool LSP](#lsp-tool-behavior) | Tidak |38| `LSP` | Intelijen kode melalui server bahasa: lompat ke definisi, temukan referensi, laporkan kesalahan tipe dan peringatan. Lihat [Perilaku tool LSP](#lsp-tool-behavior) | Tidak |

39| `Monitor` | Menjalankan perintah di latar belakang dan memberi makan setiap baris output kembali ke Claude, sehingga dapat bereaksi terhadap entri log, perubahan file, atau status yang disurvei di tengah percakapan. Dapat juga membuka WebSocket dan memperlakukan setiap pesan masuk sebagai acara. Lihat [Tool Monitor](#monitor-tool) | Ya |39| `Monitor` | Menjalankan perintah di latar belakang dan memberi makan setiap baris output kembali ke Claude, sehingga dapat bereaksi terhadap entri log, perubahan file, atau status yang disurvei di tengah percakapan. Dapat juga membuka WebSocket dan memperlakukan setiap pesan masuk sebagai acara. Lihat [Tool Monitor](#monitor-tool) | Ya |

40| `NotebookEdit` | Memodifikasi sel notebook Jupyter. Lihat [Perilaku tool NotebookEdit](#notebookedit-tool-behavior) | Ya |40| `NotebookEdit` | Memodifikasi sel notebook Jupyter. Lihat [Perilaku tool NotebookEdit](#notebookedit-tool-behavior) | Ya |


506Read menangani beberapa jenis file di luar teks biasa:506Read menangani beberapa jenis file di luar teks biasa:

507 507 

508* **Gambar**: PNG, JPG, dan format gambar lainnya dikembalikan sebagai konten visual yang dapat dilihat Claude, bukan sebagai byte mentah. Claude Code mengubah ukuran dan mengompresi ulang gambar besar agar sesuai dengan batas ukuran gambar model sebelum mengirimkannya, jadi Claude mungkin melihat versi yang diperkecil dari tangkapan layar besar. Mulai dari v2.1.196, gambar yang masih lebih besar dari 500KB setelah pengubahan ukuran tersebut dikodekan ulang sebagai JPEG dengan kualitas berkurang dengan dimensi pikselnya tidak berubah. Jika Claude melewatkan detail tingkat piksel halus dalam gambar besar, minta untuk memotong wilayah yang diminati terlebih dahulu, misalnya dengan ImageMagick melalui Bash.508* **Gambar**: PNG, JPG, dan format gambar lainnya dikembalikan sebagai konten visual yang dapat dilihat Claude, bukan sebagai byte mentah. Claude Code mengubah ukuran dan mengompresi ulang gambar besar agar sesuai dengan batas ukuran gambar model sebelum mengirimkannya, jadi Claude mungkin melihat versi yang diperkecil dari tangkapan layar besar. Mulai dari v2.1.196, gambar yang masih lebih besar dari 500KB setelah pengubahan ukuran tersebut dikodekan ulang sebagai JPEG dengan kualitas berkurang dengan dimensi pikselnya tidak berubah. Jika Claude melewatkan detail tingkat piksel halus dalam gambar besar, minta untuk memotong wilayah yang diminati terlebih dahulu, misalnya dengan ImageMagick melalui Bash.

509* **PDF**: Claude membaca file `.pdf` pendek secara keseluruhan. Untuk PDF yang lebih panjang dari 10 halaman, file tersebut dibaca dalam rentang dengan parameter `pages`, seperti `"1-5"`, hingga 20 halaman sekaligus.509* **PDFs**: Claude membaca file `.pdf` pendek secara keseluruhan. Untuk PDF yang lebih panjang dari 10 halaman, file tersebut dibaca dalam rentang dengan parameter `pages`, seperti `"1-5"`, hingga 20 halaman sekaligus. Pembacaan rentang halaman merender halaman dengan `pdftoppm` dari poppler-utils, jadi instal dengan `brew install poppler` di macOS atau `apt-get install poppler-utils` di Debian dan Ubuntu. Di Windows dan platform lainnya, instal build poppler yang menempatkan `pdftoppm` di `PATH` Anda. Tanpa itu, pembacaan rentang halaman gagal dengan `pdftoppm is not installed`.

510* **Jupyter notebooks**: File `.ipynb` mengembalikan semua sel dengan keluarannya, termasuk kode, markdown, dan visualisasi. Claude Code menolak untuk membaca file notebook di atas 100 MB; kesalahan memberi tahu Claude cara membaca sebagian dari notebook sebagai gantinya, seperti irisan sel, dengan perintah shell.510* **Jupyter notebooks**: File `.ipynb` mengembalikan semua sel dengan keluarannya, termasuk kode, markdown, dan visualisasi. Claude Code menolak untuk membaca file notebook di atas 100 MB; kesalahan memberi tahu Claude cara membaca sebagian dari notebook sebagai gantinya, seperti irisan sel, dengan perintah shell.

511 511 

512Read hanya membaca file, bukan direktori. Claude mencantumkan isi direktori dengan perintah shell seperti `ls`.512Read hanya membaca file, bukan direktori. Claude mencantumkan isi direktori dengan perintah shell seperti `ls`.

Details

41| `running scripts is disabled on this system` atau `PSSecurityException` | [Izinkan npm shims untuk berjalan](#running-scripts-is-disabled-on-this-system) |41| `running scripts is disabled on this system` atau `PSSecurityException` | [Izinkan npm shims untuk berjalan](#running-scripts-is-disabled-on-this-system) |

42| `Error: claude native binary not installed` | [Selesaikan npm install](#native-binary-not-found-after-npm-install) |42| `Error: claude native binary not installed` | [Selesaikan npm install](#native-binary-not-found-after-npm-install) |

43| `npm error code ENOTEMPTY` selama update atau reinstall | [Hapus direktori paket yang tersisa](#npm-enotempty-during-update-or-reinstall) |43| `npm error code ENOTEMPTY` selama update atau reinstall | [Hapus direktori paket yang tersisa](#npm-enotempty-during-update-or-reinstall) |

44| `'claude' is not recognized` tepat setelah update di Windows | [Pulihkan `claude.exe` dari backup-nya](#claude-exe-missing-after-an-update-on-windows) |

44| Di Windows, perintah install mencetak teks script dan tidak ada yang terinstal | [Jalankan perintah install lengkap](#wrong-install-command-on-windows) |45| Di Windows, perintah install mencetak teks script dan tidak ada yang terinstal | [Jalankan perintah install lengkap](#wrong-install-command-on-windows) |

45| `App unavailable in region` | Claude Code tidak tersedia di negara Anda. Lihat [negara yang didukung](https://www.anthropic.com/supported-countries). |46| `App unavailable in region` | Claude Code tidak tersedia di negara Anda. Lihat [negara yang didukung](https://www.anthropic.com/supported-countries). |

46| `unable to get local issuer certificate` | [Konfigurasi sertifikat CA perusahaan](#tls-or-ssl-connection-errors) |47| `unable to get local issuer certificate` | [Konfigurasi sertifikat CA perusahaan](#tls-or-ssl-connection-errors) |

47| `OAuth error` atau `403 Forbidden` | [Perbaiki authentication](#login-and-authentication) |48| `OAuth error` atau `403 Forbidden` | [Perbaiki authentication](#login-and-authentication) |

49| `Claude Code access has not been granted for this account` | [Dapatkan peran yang mencakup Claude Code](#claude-code-access-has-not-been-granted-for-this-account) |

48| `Unable to connect to Anthropic services` selama setup | Lihat [Unable to connect to Anthropic services](/docs/id/errors#unable-to-connect-to-anthropic-services) dalam referensi Error |50| `Unable to connect to Anthropic services` selama setup | Lihat [Unable to connect to Anthropic services](/docs/id/errors#unable-to-connect-to-anthropic-services) dalam referensi Error |

49| `Could not load the default credentials` atau `Could not load credentials from any providers` | [Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry credentials](#bedrock-agent-platform-or-foundry-credentials-not-loading) |51| `Could not load the default credentials` atau `Could not load credentials from any providers` | [Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry credentials](#bedrock-agent-platform-or-foundry-credentials-not-loading) |

50| `ChainedTokenCredential authentication failed` atau `CredentialUnavailableError` | [Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry credentials](#bedrock-agent-platform-or-foundry-credentials-not-loading) |52| `ChainedTokenCredential authentication failed` atau `CredentialUnavailableError` | [Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry credentials](#bedrock-agent-platform-or-foundry-credentials-not-loading) |


142 source ~/.zshrc144 source ~/.zshrc

143 ```145 ```

144 146 

145 Untuk Bash, default di sebagian besar distribusi Linux:147 Untuk Bash di Linux, di mana ini adalah default di sebagian besar distribusi:

146 148 

147 ```bash theme={null}149 ```bash theme={null}

148 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc150 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

149 source ~/.bashrc151 source ~/.bashrc

150 ```152 ```

151 153 

154 Untuk Bash di macOS, tambahkan baris ke `~/.bash_profile` sebagai gantinya. Terminal di macOS memulai Bash sebagai login shell, yang mengabaikan `~/.bashrc` dan hanya membaca yang pertama dari `~/.bash_profile`, `~/.bash_login`, atau `~/.profile` yang ada. Jika Anda sudah memiliki `~/.bash_login` atau `~/.profile` dan tidak ada `~/.bash_profile`, letakkan baris di file itu daripada membuat `~/.bash_profile`:

155 

156 ```bash theme={null}

157 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile

158 source ~/.bash_profile

159 ```

160 

152 Atau, tutup dan buka kembali terminal Anda.161 Atau, tutup dan buka kembali terminal Anda.

153 162 

154 Untuk shell lain seperti fish atau Nushell, tambahkan `~/.local/bin` ke PATH Anda menggunakan sintaks konfigurasi shell Anda sendiri, kemudian restart terminal Anda.163 Untuk shell lain seperti fish atau Nushell, tambahkan `~/.local/bin` ke PATH Anda menggunakan sintaks konfigurasi shell Anda sendiri, kemudian restart terminal Anda.


593irm https://claude.ai/install.ps1 | iex602irm https://claude.ai/install.ps1 | iex

594```603```

595 604 

605<h3 id="claude-exe-missing-after-an-update-on-windows">

606 `claude.exe` missing after an update on Windows

607</h3>

608 

609Jika terminal Anda melaporkan `'claude' is not recognized` tepat setelah Claude Code diperbarui di Windows, periksa apakah `%USERPROFILE%\.local\bin` masih berisi `claude.exe`. Jika direktori itu tidak ada di PATH Anda sama sekali, lihat [Fix your PATH](#command-not-found-claude-after-installation) sebagai gantinya. Untuk memperbarui di Windows, Claude Code mengganti nama `claude.exe` yang ada ke samping sebagai backup dan memindahkan versi baru ke tempatnya. Jika memindahkan versi baru ke tempat gagal dan Claude Code tidak dapat mengganti nama backup kembali juga, direktori menyimpan backup tetapi tidak memiliki `claude.exe`.

610 

611Backup adalah file di direktori yang sama yang namanya dimulai dengan `claude.exe.old.` diikuti oleh timestamp numerik. Jalankan yang berikut di PowerShell untuk mengganti nama backup terbaru kembali ke `claude.exe`:

612 

613```powershell theme={null}

614Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe

615```

616 

617Kemudian jalankan `claude --version` untuk mengkonfirmasi perbaikan. `claude.exe` yang dipulihkan mencetak nomor versi.

618 

619Jika tidak ada file `claude.exe.old.*`, atau `claude` masih gagal setelah penggantian nama, instal ulang sebagai gantinya:

620 

621```powershell theme={null}

622irm https://claude.ai/install.ps1 | iex

623```

624 

625Sebelum v2.1.281, Claude Code dapat menghapus backup sementara `claude.exe` masih hilang.

626 

596<h3 id="install-killed-on-low-memory-linux-servers">627<h3 id="install-killed-on-low-memory-linux-servers">

597 Install killed on low-memory Linux servers628 Install killed on low-memory Linux servers

598</h3>629</h3>


992* **Anthropic Console users**: konfirmasi akun Anda memiliki role "Claude Code" atau "Developer". Admins menetapkan ini di Anthropic Console di bawah Settings → Members.1023* **Anthropic Console users**: konfirmasi akun Anda memiliki role "Claude Code" atau "Developer". Admins menetapkan ini di Anthropic Console di bawah Settings → Members.

993* **Di belakang proxy**: corporate proxies dapat mengganggu permintaan API. Lihat [network configuration](/docs/id/network-config) untuk setup proxy.1024* **Di belakang proxy**: corporate proxies dapat mengganggu permintaan API. Lihat [network configuration](/docs/id/network-config) untuk setup proxy.

994 1025 

1026<h3 id="claude-code-access-has-not-been-granted-for-this-account">

1027 Claude Code access has not been granted for this account

1028</h3>

1029 

1030Jika halaman sign-in menampilkan `Authorization failed` dengan pesan `Claude Code access has not been granted for this account. Contact your administrator.` setelah Anda login dari Claude Code, organisasi Claude Enterprise Anda telah menetapkan role Anda ke Custom dan tidak ada [custom roles](https://support.claude.com/en/articles/13930452) yang ditetapkan ke grup Anda yang memberikan Claude Code. Pada Custom role, Anda hanya mendapatkan akses dari custom roles tersebut, jadi tidak ada yang dapat Anda ubah di Claude Code yang menyelesaikan error ini.

1031 

1032Untuk mendapatkan akses:

1033 

10341. Minta Owner organisasi Claude Anda untuk menetapkan custom role yang memberikan akses Claude Code ke salah satu grup Anda, atau untuk mengubah role Anda dari Custom ke standard role seperti User. Owners mengelola roles di [role settings](https://claude.ai/admin-settings/roles) organisasi.

10352. Setelah Owner membuat perubahan, jalankan `claude` dan login lagi.

1036 

995<h3 id="this-organization-has-been-disabled-with-an-active-subscription">1037<h3 id="this-organization-has-been-disabled-with-an-active-subscription">

996 This organization has been disabled with an active subscription1038 This organization has been disabled with an active subscription

997</h3>1039</h3>

Details

17| Sesi dimulai dalam mode otomatis, atau Claude mengedit file dan menjalankan perintah tanpa bertanya | [Which mode a session starts in](/docs/id/permission-modes#which-mode-a-session-starts-in) |17| Sesi dimulai dalam mode otomatis, atau Claude mengedit file dan menjalankan perintah tanpa bertanya | [Which mode a session starts in](/docs/id/permission-modes#which-mode-a-session-starts-in) |

18| `API Error: 5xx`, `529 Overloaded`, `429`, kesalahan validasi permintaan | [Error reference](/docs/id/errors) |18| `API Error: 5xx`, `529 Overloaded`, `429`, kesalahan validasi permintaan | [Error reference](/docs/id/errors) |

19| `model not found` atau `you may not have access to it` | [Error reference](/docs/id/errors#theres-an-issue-with-the-selected-model) |19| `model not found` atau `you may not have access to it` | [Error reference](/docs/id/errors#theres-an-issue-with-the-selected-model) |

20| Perintah yang dijalankan Claude gagal dengan `Your disk quota is full`, `is full (ENOSPC)`, atau `Command output was lost` | [Error reference](/docs/id/errors#disk-quota-or-temp-filesystem-is-full) |

20| Ekstensi VS Code tidak terhubung atau tidak mendeteksi Claude | [VS Code integration](/docs/id/vs-code#fix-common-issues) |21| Ekstensi VS Code tidak terhubung atau tidak mendeteksi Claude | [VS Code integration](/docs/id/vs-code#fix-common-issues) |

21| `Claude Code process exited with code 1` di VS Code atau aplikasi SDK | [Error reference](/docs/id/errors#claude-code-process-exited-with-code-n) |22| `Claude Code process exited with code 1` di VS Code atau aplikasi SDK | [Error reference](/docs/id/errors#claude-code-process-exited-with-code-n) |

22| Plugin JetBrains atau IDE tidak terdeteksi | [JetBrains integration](/docs/id/jetbrains#troubleshooting) |23| Plugin JetBrains atau IDE tidak terdeteksi | [JetBrains integration](/docs/id/jetbrains#troubleshooting) |

Details

30 Aktifkan dikte suara30 Aktifkan dikte suara

31</h2>31</h2>

32 32 

33Jalankan `/voice` untuk mengaktifkan dikte. Pertama kali Anda mengaktifkannya, Claude Code menjalankan pemeriksaan mikrofon. Di macOS, ini memicu prompt izin mikrofon sistem untuk terminal Anda jika belum pernah diberikan.33Jalankan `/voice` untuk mengaktifkan dikte. Ketika Anda mengaktifkannya, Claude Code menjalankan pemeriksaan mikrofon. Di macOS, ini memicu prompt izin mikrofon sistem untuk terminal Anda jika belum pernah diberikan.

34 34 

35```35```

36/voice36/voice


190* **`Voice mode requires SoX for audio recording` on Linux**: modul audio native tidak dapat dimuat dan tidak ada fallback yang terinstal. Instal SoX dengan perintah yang ditampilkan dalam pesan kesalahan, misalnya `sudo apt-get install sox`.190* **`Voice mode requires SoX for audio recording` on Linux**: modul audio native tidak dapat dimuat dan tidak ada fallback yang terinstal. Instal SoX dengan perintah yang ditampilkan dalam pesan kesalahan, misalnya `sudo apt-get install sox`.

191* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**: SoX terinstal, tetapi host tidak memiliki perangkat penangkap audio, misalnya server headless atau container. Jalankan Claude Code di mesin yang memiliki mikrofon. Mulai dari v2.1.195, Claude Code di Linux melaporkan pesan ini dalam situasi tersebut; versi sebelumnya meminta Anda untuk menginstal SoX bahkan ketika sudah terinstal.191* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**: SoX terinstal, tetapi host tidak memiliki perangkat penangkap audio, misalnya server headless atau container. Jalankan Claude Code di mesin yang memiliki mikrofon. Mulai dari v2.1.195, Claude Code di Linux melaporkan pesan ini dalam situasi tersebut; versi sebelumnya meminta Anda untuk menginstal SoX bahkan ketika sudah terinstal.

192* **`Voice mode could not find a working audio recorder in WSL`**: WSLg merutekan audio melalui PulseAudio daripada perangkat ALSA, jadi SoX memerlukan backend PulseAudio-nya terinstal secara eksplisit. Jalankan `sudo apt install sox libsox-fmt-pulse`. Menginstal `sox` saja menarik backend ALSA, yang tidak dapat merekam di WSL karena tidak ada perangkat `/dev/snd`.192* **`Voice mode could not find a working audio recorder in WSL`**: WSLg merutekan audio melalui PulseAudio daripada perangkat ALSA, jadi SoX memerlukan backend PulseAudio-nya terinstal secara eksplisit. Jalankan `sudo apt install sox libsox-fmt-pulse`. Menginstal `sox` saja menarik backend ALSA, yang tidak dapat merekam di WSL karena tidak ada perangkat `/dev/snd`.

193* **`Voice input is failing repeatedly and has been paused`**: voice dictation mengalami tiga kegagalan penangkapan dalam 10 detik. Claude Code menjeda dictation hingga 10 detik telah berlalu sejak yang pertama dari kegagalan tersebut. Kegagalan dihitung apakah mikrofon gagal dimulai atau perekam dimulai dan kemudian berhenti tanpa menghasilkan audio apa pun. Ini biasanya berarti mikrofon atau audio stack di host ini tidak dapat menangkap audio, misalnya server headless, shell jarak jauh tanpa passthrough audio, atau izin mikrofon ditolak. Konfirmasi perangkat input yang berfungsi, perbaiki penyebab mendasar dari entri di atas, kemudian picu voice lagi. Sebelum v2.1.202, hanya kegagalan start-up yang diperhitungkan menuju jeda.193* **`Voice input is failing repeatedly and has been paused`**: voice dictation mengalami tiga kegagalan dalam 10 detik. Claude Code menjeda dictation hingga 10 detik telah berlalu sejak yang pertama dari kegagalan tersebut. Ini biasanya berarti mikrofon atau audio stack di host ini tidak dapat menangkap audio, misalnya server headless, shell jarak jauh tanpa passthrough audio, atau izin mikrofon ditolak. Konfirmasi perangkat input yang berfungsi, perbaiki penyebab mendasar dari entri di atas, kemudian picu voice lagi. Sebelum v2.1.202, hanya kegagalan start-up yang diperhitungkan menuju jeda.

194* **Nothing happens when holding `Space` in hold mode**: perhatikan input prompt saat Anda menahan. Jika spasi terus bertambah, voice dictation kemungkinan besar mati; jalankan `/voice hold` untuk mengaktifkannya. Jika hanya satu atau dua spasi muncul dan kemudian tidak ada, voice dictation aktif tetapi deteksi hold tidak terpicu. Deteksi hold memerlukan terminal Anda untuk mengirim key-repeat events, jadi tidak dapat mendeteksi kunci yang ditahan jika key-repeat dinonaktifkan di tingkat OS. Beralih ke tap mode dengan `/voice tap` untuk menghindari persyaratan key-repeat.194* **Nothing happens when holding `Space` in hold mode**: perhatikan input prompt saat Anda menahan. Jika spasi terus bertambah, voice dictation kemungkinan besar mati; jalankan `/voice hold` untuk mengaktifkannya. Jika hanya satu atau dua spasi muncul dan kemudian tidak ada, voice dictation aktif tetapi deteksi hold tidak terpicu. Deteksi hold memerlukan terminal Anda untuk mengirim key-repeat events, jadi tidak dapat mendeteksi kunci yang ditahan jika key-repeat dinonaktifkan di tingkat OS. Beralih ke tap mode dengan `/voice tap` untuk menghindari persyaratan key-repeat.

195* **Tapping `Space` types a space instead of recording in tap mode**: ketukan pertama hanya memulai perekaman ketika input prompt kosong. Hapus input terlebih dahulu, atau periksa bahwa Anda dalam tap mode dengan menjalankan `/voice tap`.195* **Tapping `Space` types a space instead of recording in tap mode**: ketukan pertama hanya memulai perekaman ketika input prompt kosong. Hapus input terlebih dahulu, atau periksa bahwa Anda dalam tap mode dengan menjalankan `/voice tap`.

196* **`No audio detected from microphone`**: perekaman dimulai tetapi menangkap kesunyian. Konfirmasi perangkat input yang benar diatur sebagai default sistem dan tingkat inputnya tidak dibisukan atau mendekati nol. Di Windows, buka Settings → System → Sound → Input dan pilih mikrofon Anda. Di macOS, buka System Settings → Sound → Input.196* **`No audio detected from microphone`**: perekaman dimulai tetapi menangkap kesunyian. Konfirmasi perangkat input yang benar diatur sebagai default sistem dan tingkat inputnya tidak dibisukan atau mendekati nol. Di Windows, buka Settings → System → Sound → Input dan pilih mikrofon Anda. Di macOS, buka System Settings → Sound → Input.

vs-code.md +31 −8

Details

109 109 

110Kotak prompt mendukung beberapa fitur:110Kotak prompt mendukung beberapa fitur:

111 111 

112* **Mode izin**: klik indikator mode di bagian bawah kotak prompt untuk beralih mode izin. Pada paket Pro, Max, dan Team, Auto adalah mode izin bawaan awal. Lihat [bagaimana ekstensi memilih mode izin awal](/docs/id/permission-modes#switch-permission-modes) untuk mengetahui apa yang mengubahnya, dan setiap mode izin yang ditawarkan indikator.112* **Mode izin**: klik indikator mode di bagian bawah kotak prompt untuk beralih mode izin. Dengan Claude Code v2.1.283 atau lebih baru, Auto adalah mode izin bawaan awal, dan pada versi sebelumnya hanya pada paket Pro, Max, dan Team. Lihat [bagaimana ekstensi memilih mode izin awal](/docs/id/permission-modes#switch-permission-modes) untuk mengetahui apa yang mengubahnya, dan setiap mode izin yang ditawarkan indikator.

113 * **Auto**: pengklasifikasi meninjau sebagian besar tindakan alih-alih meminta Anda. Lihat [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk mengetahui apa yang ditinjau dan diblokir.113 * **Auto**: pengklasifikasi meninjau sebagian besar tindakan alih-alih meminta Anda. Lihat [mode auto](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) untuk mengetahui apa yang ditinjau dan diblokir.

114 * **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.

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


123* **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.123* **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.

124 124 

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

126 

127 Ketika [dynamic workflows](/docs/id/workflows) diaktifkan dan model saat ini mendukungnya, switch **Ultracode** muncul di bawah baris **Effort**. Aktifkan untuk membuat Claude merencanakan [workflow](/docs/id/workflows#let-claude-decide-with-ultracode) untuk setiap tugas substansial dalam sesi ini, pada tingkat upaya yang dipilih. Saat aktif, tombol nama model menunjukkan `· Ultracode` setelah tingkatnya. Switch memerlukan Claude Code v2.1.284 atau lebih baru.

126* **Command menu**: klik `/` atau ketik `/` untuk membuka menu perintah. Opsi termasuk melampirkan file, beralih model, dan mengalihkan pemikiran yang diperluas.128* **Command menu**: klik `/` atau ketik `/` untuk membuka menu perintah. Opsi termasuk melampirkan file, beralih model, dan mengalihkan pemikiran yang diperluas.

127 129 

128 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.130 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.


150 152 

151 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.153 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.

152 * 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.154 * 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.

153 * 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.155 * 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. Memerlukan Claude Code v2.1.229 atau lebih baru.

156 

157 Pada penyedia pihak ketiga, atau tanpa kredensial Anthropic, tidak ada yang dikirim. Dialog mengatakan demikian sebelum Anda menulis. Mengirimkan menyimpan laporan sebagai [arsip lokal di bawah `~/.claude/feedback-bundles/`](/docs/id/data-usage#telemetry-services) dengan pola kunci API dan token yang diketahui dihapus. Kirimkan file itu ke perwakilan akun Anthropic Anda atau lampirkan ke permintaan dukungan. Konfirmasi menyebutkan nama file dan menyertakan tombol **Show folder**. Menyimpan laporan di komputer Anda memerlukan Claude Code v2.1.284 atau lebih baru.

154 158 

155 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.159 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. Dengan Claude Code v2.1.284 atau lebih baru, jika Anda menetapkan variabel lingkungan `DISABLE_FEEDBACK_COMMAND` atau `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, umpan balik juga dimatikan dan membuka laporan menunjukkan pemberitahuan itu sebagai gantinya.

156* **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.160* **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.

157* **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.161* **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.

158* **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.162* **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.


181What's in @src/components/ (include a trailing slash for folders)185What's in @src/components/ (include a trailing slash for folders)

182```186```

183 187 

184Untuk PDF besar, Anda dapat meminta Claude membaca halaman tertentu alih-alih seluruh file: satu halaman, rentang seperti halaman 1-10, atau rentang terbuka seperti halaman 3 ke depan.188Untuk PDF besar, Anda dapat meminta Claude membaca halaman tertentu alih-alih seluruh file: satu halaman, rentang seperti halaman 1-10, atau rentang terbuka seperti halaman 3 ke depan. Membaca halaman tertentu memerlukan [poppler-utils](/docs/id/tools-reference#read-tool-behavior) di mesin tempat Claude Code berjalan.

185 189 

186Ketika 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.190Ketika 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.

187 191 


242 </Step>246 </Step>

243 247 

244 <Step title="Select a session to resume">248 <Step title="Select a session to resume">

245 Telusuri atau cari sesi cloud Anda. Klik sesi apa pun untuk mengunduhnya dan melanjutkan percakapan secara lokal.249 Telusuri atau cari sesi. Klik satu untuk melanjutkan percakapan secara lokal.

246 </Step>250 </Step>

247</Steps>251</Steps>

248 252 

249<Note>253<Note>

250 Hanya sesi cloud yang dimulai dengan repositori GitHub yang muncul di tab Web. Melanjutkan memuat riwayat percakapan secara lokal; perubahan tidak disinkronkan kembali ke claude.ai.254 Ketika folder yang Anda buka adalah repositori GitHub, tab Web hanya menampilkan sesi dari repositori itu.

255 

256 Ketika Anda melanjutkan sesi cloud, ekstensi mengunduh salinan riwayat percakapan; perubahan tidak disinkronkan kembali ke claude.ai.

251</Note>257</Note>

252 258 

259Tab Web juga mencantumkan sesi [Remote Control](/docs/id/remote-control) Anda. Jika Anda mengklik sesi yang berjalan di folder yang Anda buka, ekstensi membuka percakapan lokal itu alih-alih mengunduh salinan, dan memfokuskan tab yang sudah menampilkannya jika ada. Jika ekstensi tidak dapat mengesampingkan bahwa proses Claude lain memiliki percakapan terbuka, Anda mendapatkan salinan yang diunduh sebagai gantinya.

260 

261Jika ada bagian dari percakapan yang gagal diunduh, kesalahan muncul dan tidak ada salinan yang disimpan. Pilih sesi lagi untuk mencoba lagi. Jika Anda memilih sesi yang belum memiliki percakapan untuk diunduh, kesalahan memberi tahu Anda di mana melanjutkannya.

262 

253<h3 id="check-account-and-usage">263<h3 id="check-account-and-usage">

254 Periksa akun dan penggunaan264 Periksa akun dan penggunaan

255</h3>265</h3>


269 Sesuaikan alur kerja Anda279 Sesuaikan alur kerja Anda

270</h2>280</h2>

271 281 

272Anda dapat mengubah posisi panel Claude, menjalankan beberapa percakapan, mengorganisir daftar sesi ke dalam grup, atau beralih ke mode terminal.282Anda dapat mengubah posisi panel Claude, menjalankan beberapa percakapan, mengelompokkan atau memfilter daftar sesi, atau beralih ke mode terminal.

273 283 

274<h3 id="choose-where-claude-lives">284<h3 id="choose-where-claude-lives">

275 Pilih di mana Claude berada285 Pilih di mana Claude berada


319 329 

320Ekstensi menyimpan grup per folder workspace, sehingga mereka bertahan dari reload jendela dan muncul di setiap jendela tempat Anda membuka folder yang sama. Saat Anda mencari daftar, ekstensi menampilkan kecocokan dalam satu daftar datar di semua grup.330Ekstensi menyimpan grup per folder workspace, sehingga mereka bertahan dari reload jendela dan muncul di setiap jendela tempat Anda membuka folder yang sama. Saat Anda mencari daftar, ekstensi menampilkan kecocokan dalam satu daftar datar di semua grup.

321 331 

332<h3 id="filter-the-sessions-list">

333 Filter daftar sesi

334</h3>

335 

336Untuk mempersempit daftar sesi yang panjang di Activity Bar, gunakan dua kontrol filter di bagian atas daftar. Memerlukan Claude Code v2.1.271 atau lebih baru. Sesi yang diarsipkan tidak muncul saat salah satu filter aktif.

337 

338* **Active**: aktifkan toggle ini untuk menampilkan hanya sesi yang memerlukan input Anda, sedang bekerja, atau belum dibaca, ditambah sesi di tab Claude yang terakhir Anda fokuskan.

339* **Filter by status**: klik ikon corong, kemudian centang **Needs input**, **Working**, atau **Completed** untuk menampilkan sesi dalam salah satu status tersebut. Centang **Open** atau **Closed** untuk mempersempit berdasarkan apakah sesi terbuka. Sesi dihitung sebagai terbuka ketika memiliki tab di jendela ini atau sedang berjalan di proses Claude Code lain di mesin ini, seperti di terminal.

340 

341Ketika **Active** aktif dan Anda mencentang status, **Open**, atau **Closed**, daftar juga menampilkan setiap sesi yang cocok dengan pilihan Anda. Filter yang Anda atur bertahan di seluruh reload jendela.

342 

322<h3 id="switch-to-terminal-mode">343<h3 id="switch-to-terminal-mode">

323 Beralih ke mode terminal344 Beralih ke mode terminal

324</h3>345</h3>


506Ekstensi memiliki dua jenis pengaturan:527Ekstensi memiliki dua jenis pengaturan:

507 528 

508* **Pengaturan ekstensi** di VS Code: mengontrol perilaku ekstensi dalam VS Code. Buka dengan `Cmd+,` (Mac) atau `Ctrl+,` (Windows/Linux), kemudian buka Extensions → Claude Code. Anda juga dapat mengetik `/` dan memilih **General config…** untuk membuka pengaturan.529* **Pengaturan ekstensi** di VS Code: mengontrol perilaku ekstensi dalam VS Code. Buka dengan `Cmd+,` (Mac) atau `Ctrl+,` (Windows/Linux), kemudian buka Extensions → Claude Code. Anda juga dapat mengetik `/` dan memilih **General config…** untuk membuka pengaturan.

509* **Pengaturan Claude Code** di `~/.claude/settings.json`: dibagikan antara ekstensi dan CLI. Gunakan untuk perintah yang diizinkan, variabel lingkungan, hooks, dan server MCP. Pada paket Pro, Max, dan Team, ini juga merupakan salah satu input untuk mode izin percakapan dimulai. [Switch permission modes](/docs/id/permission-modes#switch-permission-modes) mencantumkan urutannya. Lihat [Settings](/docs/id/settings) untuk detail.530* **Pengaturan Claude Code** di `~/.claude/settings.json`: dibagikan antara ekstensi dan CLI. Gunakan untuk perintah yang diizinkan, variabel lingkungan, hooks, dan server MCP. Dengan Claude Code v2.1.283 atau lebih baru, ini juga merupakan salah satu input untuk mode izin percakapan dimulai, dan pada versi sebelumnya hanya pada paket Pro, Max, dan Team. [Switch permission modes](/docs/id/permission-modes#switch-permission-modes) mencantumkan urutannya. Lihat [Settings](/docs/id/settings) untuk detail.

510 531 

511<Tip>532<Tip>

512 Tambahkan `"$schema": "https://json.schemastore.org/claude-code-settings.json"` ke `settings.json` Anda untuk mendapatkan autocomplete dan validasi inline untuk semua pengaturan yang tersedia langsung di VS Code.533 Tambahkan `"$schema": "https://json.schemastore.org/claude-code-settings.json"` ke `settings.json` Anda untuk mendapatkan autocomplete dan validasi inline untuk semua pengaturan yang tersedia langsung di VS Code.


722 743 

723**Konteks pilihan dan file terbuka.** Saat terhubung, CLI menyertakan pilihan editor Anda saat ini dan jalur file aktif sebagai konteks pada setiap prompt yang Anda kirim. Transkrip menunjukkan baris `⧉ Selected N lines from <file>` ketika ini terjadi.744**Konteks pilihan dan file terbuka.** Saat terhubung, CLI menyertakan pilihan editor Anda saat ini dan jalur file aktif sebagai konteks pada setiap prompt yang Anda kirim. Transkrip menunjukkan baris `⧉ Selected N lines from <file>` ketika ini terjadi.

724 745 

746Jika Anda [mengantrekan pesan saat Claude bekerja](/docs/id/interactive-mode#queue-messages-while-claude-works), itu menyimpan pilihan yang Anda miliki saat Anda menekan `Enter`, apa pun yang Anda pilih setelahnya.

747 

725Untuk mengecualikan file sensitif seperti `.env`, tambahkan [aturan deny `Read`](/docs/id/permissions#read-and-edit) untuk jalurnya. Aturan deny yang cocok mencegah baik teks yang dipilih maupun pemberitahuan file terbuka untuk file tersebut dari mencapai Claude.748Untuk mengecualikan file sensitif seperti `.env`, tambahkan [aturan deny `Read`](/docs/id/permissions#read-and-edit) untuk jalurnya. Aturan deny yang cocok mencegah baik teks yang dipilih maupun pemberitahuan file terbuka untuk file tersebut dari mencapai Claude.

726 749 

727Jika Anda mematikan pengaturan [Attach Open File](#extension-settings), CLI menerima jalur file aktif hanya saat Anda memiliki teks yang dipilih di dalamnya.750Jika Anda mematikan pengaturan [Attach Open File](#extension-settings), CLI menerima jalur file aktif hanya saat Anda memiliki teks yang dipilih di dalamnya.

Details

231 231 

232Cloud sessions require a connected GitHub account. Connect via the browser flow above, or run `/web-setup` from your terminal if you use the GitHub CLI. If you'd rather not connect GitHub at all, see [Remote Control](/docs/id/remote-control) to run Claude Code on your own machine and monitor it from your browser or phone.232Cloud sessions require a connected GitHub account. Connect via the browser flow above, or run `/web-setup` from your terminal if you use the GitHub CLI. If you'd rather not connect GitHub at all, see [Remote Control](/docs/id/remote-control) to run Claude Code on your own machine and monitor it from your browser or phone.

233 233 

234<h3 id="not-available-for-the-selected-organization">234<h3 id="claude-code-isn’t-available-on-your-account">

235 "Not available for the selected organization"235 "Claude Code isn't available on your account"

236</h3>236</h3>

237 237 

238Enterprise organizations may need an Owner to enable cloud sessions. Contact your Anthropic account team.238Your seat in the selected organization doesn't include Claude Code. If you belong to another organization, click **Switch organization** on that page. Otherwise, ask an Owner of the organization to assign you a [seat that includes Claude Code](https://support.claude.com/en/articles/11845131-use-claude-code-with-your-team-or-enterprise-plan).

239 239 

240<h3 id="/web-setup-says-not-signed-in-to-claude">240<h3 id="/web-setup-says-not-signed-in-to-claude">

241 `/web-setup` says "Not signed in to Claude"241 `/web-setup` says "Not signed in to Claude"

workflows.md +10 −2

Details

171 171 

172Untuk mengaktifkannya saat Anda memilih model, pindahkan penggeser upaya pemilih `/model` ke `ultracode` dengan tombol panah. [Sesuaikan tingkat upaya](/docs/id/model-config#adjust-effort-level) mencantumkan rute yang mengaktifkan ultracode.172Untuk mengaktifkannya saat Anda memilih model, pindahkan penggeser upaya pemilih `/model` ke `ultracode` dengan tombol panah. [Sesuaikan tingkat upaya](/docs/id/model-config#adjust-effort-level) mencantumkan rute yang mengaktifkan ultracode.

173 173 

174Dengan ultracode aktif, Claude memutuskan kapan tugas memerlukan alur kerja. Satu permintaan dapat berubah menjadi beberapa alur kerja berturut-turut: satu untuk memahami kode, satu untuk membuat perubahan, dan satu untuk memverifikasinya. Ini berlaku untuk setiap tugas dalam sesi, jadi setiap permintaan menggunakan lebih banyak token dan memakan waktu lebih lama daripada pada tingkat upaya yang lebih rendah.174Dengan ultracode aktif, Claude memutuskan kapan tugas memerlukan alur kerja. Satu permintaan dapat berubah menjadi beberapa alur kerja berturut-turut: satu untuk memahami kode, satu untuk membuat perubahan, dan satu untuk memverifikasinya. Ini berlaku untuk setiap tugas dalam sesi, jadi setiap permintaan menggunakan lebih banyak token dan memakan waktu lebih lama daripada pada tingkat upaya yang lebih rendah. Pada paket berlangganan, token tersebut ditarik dari batas penggunaan Anda, jadi sesi dengan ultracode aktif mencapai batas sesi atau mingguan lebih cepat daripada pekerjaan yang sama pada `high`.

175 

176Mengaktifkan ultracode sudah memilih Anda untuk run besar, jadi pemeriksaan ini tidak berlaku saat itu aktif:

177 

178* Peringatan [`Large workflow`](#cost) tidak muncul pada run alur kerja

179* [batas subagen bersamaan](/docs/id/sub-agents#concurrent-subagent-limit) sesi tidak diterapkan untuk subagen yang Claude hasilkan dengan alat Agent

180* Dalam mode izin otomatis, Anda tidak diminta untuk [menyetujui peluncuran alur kerja pertama](#approve-the-plan-before-it-runs)

175 181 

176`/effort ultracode` berlangsung untuk sesi saat ini; untuk memiliki setiap sesi dimulai dengan itu, atur pengaturan [`ultracode`](/docs/id/settings-reference#ultracode). Turun kembali dengan `/effort high` ketika Anda kembali ke pekerjaan rutin. Menu `/effort` menawarkannya hanya [ketika ultracode tersedia](/docs/id/model-config#when-ultracode-is-available).182`/effort ultracode` berlangsung untuk sesi saat ini; untuk memiliki setiap sesi dimulai dengan itu, atur pengaturan [`ultracode`](/docs/id/settings-reference#ultracode). Turun kembali dengan `/effort high` ketika Anda kembali ke pekerjaan rutin. Menu `/effort` menawarkannya hanya [ketika ultracode tersedia](/docs/id/model-config#when-ultracode-is-available).

177 183 


516 522 

517Untuk mematikan alur kerja untuk seluruh organisasi Anda, atur `"disableWorkflows": true` di [pengaturan yang dikelola](/docs/id/server-managed-settings), atau gunakan toggle di halaman [pengaturan admin Claude Code](https://claude.ai/admin-settings/claude-code).523Untuk mematikan alur kerja untuk seluruh organisasi Anda, atur `"disableWorkflows": true` di [pengaturan yang dikelola](/docs/id/server-managed-settings), atau gunakan toggle di halaman [pengaturan admin Claude Code](https://claude.ai/admin-settings/claude-code).

518 524 

519Ketika alur kerja dinonaktifkan, perintah alur kerja bundel dan skill `/workflow-authoring` tidak tersedia, kata kunci `ultracode` tidak lagi memicu run, dan `ultracode` dihapus dari menu `/effort`.525Ketika alur kerja dinonaktifkan, perintah alur kerja bundel dan skill `/workflow-authoring` tidak tersedia, kata kunci `ultracode` tidak lagi memicu run, dan toggle **Ultracode** dihapus dari `/effort`. Run yang sudah dalam proses terus berjalan.

526 

527Mematikan alur kerja juga membuat [ultracode](#let-claude-decide-with-ultracode) tidak tersedia. Tidak ada pengaturan yang dikelola yang mengesampingkan ultracode saja: di mana pun [tersedia](/docs/id/model-config#when-ultracode-is-available), pengguna dapat mengaktifkannya dengan `/effort ultracode`. [Batas upaya](/docs/id/model-config#organization-effort-limits) menurunkan tingkat upaya yang dijalankan sesi dengan ultracode aktif, tetapi tidak mematikan ultracode.

520 528 

521<h2 id="related-resources">529<h2 id="related-resources">

522 Sumber daya terkait530 Sumber daya terkait

worktrees.md +4 −4

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, pekerjaan yang tidak dikomitkan di dalam submodul yang diperiksa, 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. Aturan ini berlaku untuk worktrees yang Claude buat dengan git. Untuk worktree yang dibuat oleh hook [WorktreeCreate](/docs/id/hooks#worktreecreate) Anda, lihat [WorktreeRemove](/docs/id/hooks#worktreeremove) sebagai gantinya.

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. Untuk kembali nanti, jalankan perintah `claude --worktree <name> --resume` yang dicetak Claude Code saat keluar. 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 diperiksa66* **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

67 67 

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


73 Lanjutkan sesi worktree73 Lanjutkan sesi worktree

74</h2>74</h2>

75 75 

76Saat Anda melanjutkan sesi yang berada di dalam worktree, Claude Code mengembalikan sesi ke worktree itu. Ini berlaku untuk resume interaktif, untuk `--continue` dan `--resume` dalam [mode non-interaktif](/docs/id/headless) dengan `-p`, dan untuk Agent SDK. Kembali di dalam worktree, Claude masih dapat keluar darinya dengan tool [`ExitWorktree`](/docs/id/tools-reference).76Saat Anda melanjutkan sesi yang berakhir di dalam worktree tanpa [keluar darinya](#clean-up-worktrees), Claude Code mengembalikan sesi ke worktree itu. Ini berlaku untuk resume interaktif, untuk `--continue` dan `--resume` dalam [mode non-interaktif](/docs/id/headless) dengan `-p`, dan untuk Agent SDK. `--continue` memilih sesi paling baru yang tercatat di bawah direktori tempat Anda meluncurkan. Kembali di dalam worktree, Claude masih dapat keluar darinya dengan tool [`ExitWorktree`](/docs/id/tools-reference).

77 77 

78Sebelum mengembalikan sesi ke worktree-nya, Claude Code memverifikasi bahwa worktree masih merupakan checkout terpisah dari yang utama, dan menolak untuk memasuki kembali worktree yang gagal pemeriksaan. Untuk git worktree, pemeriksaan membaca metadata git-nya. Worktree tanpa metadata git, seperti yang dibuat hook [`WorktreeCreate`](#non-git-version-control), dapat lulus pemeriksaan; kasus yang Claude Code masih tolak tercantum dengan pemulihan mereka di bawah [Claude Code refuses to use a worktree](#claude-code-refuses-to-use-a-worktree). Untuk pesan dan cara memulihkan dari masing-masing, lihat [The session resumes outside its worktree](#the-session-resumes-outside-its-worktree).78Sebelum mengembalikan sesi ke worktree-nya, Claude Code memverifikasi bahwa worktree masih merupakan checkout terpisah dari yang utama, dan menolak untuk memasuki kembali worktree yang gagal pemeriksaan. Untuk git worktree, pemeriksaan membaca metadata git-nya. Worktree tanpa metadata git, seperti yang dibuat hook [`WorktreeCreate`](#non-git-version-control), dapat lulus pemeriksaan; kasus yang Claude Code masih tolak tercantum dengan pemulihan mereka di bawah [Claude Code refuses to use a worktree](#claude-code-refuses-to-use-a-worktree). Untuk pesan dan cara memulihkan dari masing-masing, lihat [The session resumes outside its worktree](#the-session-resumes-outside-its-worktree).

79 79 

80Di mana Anda meluncurkan, dan bagaimana Anda melanjutkan, mengubah apa yang Claude Code masuki kembali:80Di mana Anda meluncurkan, dan bagaimana Anda melanjutkan, mengubah apa yang Claude Code masuki kembali:

81 81 

82* **Direktori peluncuran**: lanjutkan dari checkout utama atau direktori lain dari repositori. Claude Code memasuki kembali worktree yang dibuat dengan git di bawah `.claude/worktrees/` bahkan saat Anda meluncurkan dari dalamnya. Saat Anda meluncurkan dari dalam worktree lain, Claude Code memasuki kembali hanya jika dapat menjaminnya dari sana: worktree yang merupakan repositorinya sendiri, satu tanpa metadata git, atau peluncuran dari subdirektori worktree yang Anda buat dengan `git worktree add` menolak, jadi luncurkan dari checkout utama.82* **Direktori peluncuran**: lanjutkan dengan `--resume` dari checkout utama atau direktori lain dari repositori. Claude Code memasuki kembali worktree yang dibuat dengan git di bawah `.claude/worktrees/` bahkan saat Anda meluncurkan dari dalamnya. Saat Anda meluncurkan dari dalam worktree lain, Claude Code memasuki kembali hanya jika dapat menjaminnya dari sana: worktree yang merupakan repositorinya sendiri, satu tanpa metadata git, atau peluncuran dari subdirektori worktree yang Anda buat dengan `git worktree add` menolak, jadi luncurkan dari checkout utama.

83* **`--fork-session`**: sesi yang di-fork dimulai di direktori tempat Anda meluncurkan Claude, dan Claude Code meninggalkan worktree sesi asli tanpa disentuh.83* **`--fork-session`**: sesi yang di-fork dimulai di direktori tempat Anda meluncurkan Claude, dan Claude Code meninggalkan worktree sesi asli tanpa disentuh.

84* **Worktree yang dihapus**: jika direktori worktree tidak lagi ada, Claude Code melanjutkan sesi di direktori tempat Anda meluncurkan Claude. Itu memberi tahu Anda worktree hilang dan menghapus pengikatan worktree sesi.84* **Worktree yang dihapus**: jika direktori worktree tidak lagi ada, Claude Code melanjutkan sesi di direktori tempat Anda meluncurkan Claude. Itu memberi tahu Anda worktree hilang dan menghapus pengikatan worktree sesi.

85 85