SpyBara
Go Premium

Documentation 2026-11-05 23:03 UTC to 2026-11-06 23:01 UTC

47 files changed +336 −177. View all changes and history on the product overview
2026
Thu 12 21:00 Wed 11 22:59 Tue 10 21:57 Mon 9 23:02 Sun 8 22:58 Sat 7 23:58 Fri 6 23:01 Thu 5 23:03 Wed 4 23:59 Tue 3 23:58 Mon 2 23:57 Sun 1 23:57
Details

167 167 

168### Tool permissions168### Tool permissions

169 169 

170Claude menentukan tools mana yang akan dipanggil berdasarkan tugas, tetapi Anda mengontrol apakah panggilan tersebut diizinkan untuk dieksekusi. Anda dapat auto-approve tools spesifik, memblokir yang lain sepenuhnya, atau memerlukan approval untuk semuanya. Tiga opsi bekerja bersama untuk menentukan apa yang berjalan:170Claude menentukan tools mana yang akan dipanggil berdasarkan tugas, tetapi Anda mengontrol apakah panggilan tersebut diizinkan untuk dieksekusi. Gunakan opsi-opsi berikut untuk menyetujui tools secara otomatis, memblokir tools, dan mengatur mode izin:

171 171 

172* **`allowed_tools` / `allowedTools`** auto-approves tools yang terdaftar. Agent read-only dengan `["Read", "Glob", "Grep"]` dalam daftar allowed tools-nya menjalankan tools tersebut tanpa prompting, kecuali pembacaan dari [network paths](https://code.claude.com/docs/id/permissions.md#network-paths). Tools yang tidak terdaftar masih tersedia, dan panggilan ke tools tersebut yang memerlukan approval jatuh melalui permission mode dan `canUseTool`.172* **`allowed_tools` / `allowedTools`** auto-approves tools yang terdaftar. Agent read-only dengan `["Read", "Glob", "Grep"]` dalam daftar allowed tools-nya menjalankan tools tersebut tanpa prompting, kecuali pembacaan dari [network paths](https://code.claude.com/docs/id/permissions.md#network-paths). Tools yang tidak terdaftar masih tersedia, dan panggilan ke tools tersebut yang memerlukan approval jatuh melalui permission mode dan `canUseTool`.

173* **`disallowed_tools` / `disallowedTools`** memblokir tools yang terdaftar, terlepas dari pengaturan lainnya. Lihat [Permissions](https://code.claude.com/docs/id/agent-sdk/permissions.md) untuk urutan aturan yang diperiksa sebelum tool berjalan.173* **`disallowed_tools` / `disallowedTools`** memblokir tools yang terdaftar, terlepas dari pengaturan lainnya. Lihat [Permissions](https://code.claude.com/docs/id/agent-sdk/permissions.md) untuk urutan aturan yang diperiksa sebelum tool berjalan.

Details

303 303 

304API melaporkan jumlah output nyata di akhir respons, dan Claude Code menambahkannya ke pesan hasil. Baca token output dari `usage` hasil, atau dari `modelUsage` untuk rincian per-model.304API melaporkan jumlah output nyata di akhir respons, dan Claude Code menambahkannya ke pesan hasil. Baca token output dari `usage` hasil, atau dari `modelUsage` untuk rincian per-model.

305 305 

306Untuk menonton jumlah output respons tumbuh saat streaming, atur `includePartialMessages`, atau `include_partial_messages` di Python, dan baca `usage` dari setiap acara stream `message_delta`, diketik sebagai [`SDKPartialAssistantMessage`](https://code.claude.com/docs/id/agent-sdk/typescript#sdkpartialassistantmessage) di TypeScript dan [`StreamEvent`](https://code.claude.com/docs/id/agent-sdk/python#streamevent) di Python.

307 

308### Lacak biaya pada percakapan yang gagal306### Lacak biaya pada percakapan yang gagal

309 307 

310Pesan hasil kesuksesan dan kesalahan keduanya mencakup `usage` dan `total_cost_usd`; di Python kedua bidang diketik sebagai opsional, jadi periksa bahwa mereka bukan `None` sebelum Anda membacanya.308Pesan hasil kesuksesan dan kesalahan keduanya mencakup `usage` dan `total_cost_usd`; di Python kedua bidang diketik sebagai opsional, jadi periksa bahwa mereka bukan `None` sebelum Anda membacanya.

Details

226| `timeout` | `number` | `undefined` | Timeout dalam detik. Ketika dihilangkan, Claude Code menerapkan [timeout default event](#hook-timeout). SDK callbacks Anda mengikuti default hook `command` |226| `timeout` | `number` | `undefined` | Timeout dalam detik. Ketika dihilangkan, Claude Code menerapkan [timeout default event](#hook-timeout). SDK callbacks Anda mengikuti default hook `command` |

227| `onFailure` | `"continue" \| "block"` | `undefined` | Apa yang dilakukan callback yang gagal. Tetapkan `"block"` untuk [memblokir tindakan ketika callback gagal](#block-the-action-when-a-callback-fails). Di Python, gunakan `on_failure` |227| `onFailure` | `"continue" \| "block"` | `undefined` | Apa yang dilakukan callback yang gagal. Tetapkan `"block"` untuk [memblokir tindakan ketika callback gagal](#block-the-action-when-a-callback-fails). Di Python, gunakan `on_failure` |

228 228 

229Gunakan pola `matcher` untuk menargetkan tools spesifik kapan pun memungkinkan. Matcher dengan `'Bash'` hanya berjalan untuk perintah Bash, sementara menghilangkan pola menjalankan callbacks Anda untuk setiap kemunculan event.229Gunakan pola `matcher` untuk menargetkan tools spesifik kapan pun memungkinkan. Dengan matcher `'Bash'`, callback Anda berjalan untuk perintah Bash. Pada Claude Code v2.1.314 atau lebih baru, callback tersebut juga berjalan pada `PreToolUse` dan `PermissionRequest` untuk perintah Monitor, yang [dapat ditolak tetapi tidak dapat disetujui](https://code.claude.com/docs/id/hooks.md#match-monitor-commands) oleh callback tersebut. Tanpa matcher, callback berjalan untuk setiap kemunculan event.

230 230 

231### Callback functions231### Callback functions

232 232 

Details

70>70>

71> Jalur harus menunjuk ke direktori root plugin: induk dari `skills/`, `agents/`, `hooks/`, `commands/`, atau `.claude-plugin/`.71> Jalur harus menunjuk ke direktori root plugin: induk dari `skills/`, `agents/`, `hooks/`, `commands/`, atau `.claude-plugin/`.

72 72 

73### Memuat ulang plugins dalam sesi yang sedang berjalan

74 

75Untuk menerapkan perubahan pada skills, perintah, agent, atau hook sebuah plugin tanpa memulai sesi baru, panggil [`reloadPlugins()`](https://code.claude.com/docs/id/agent-sdk/typescript#query-object) pada objek `Query` di TypeScript SDK. Python SDK tidak menyediakan metode yang setara; sebagai gantinya, kirim [`/reload-plugins`](https://code.claude.com/docs/id/plugins/cli-reference#reload-plugins) sebagai prompt dalam sesi.

76 

73### Menambahkan plugins ke sesi yang sedang berjalan77### Menambahkan plugins ke sesi yang sedang berjalan

74 78 

75Di TypeScript SDK, panggil [`reloadPlugins()`](https://code.claude.com/docs/id/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) pada objek `Query` yang dikembalikan oleh `query()`, dan cantumkan direktori plugin dalam opsi `addPlugins` pada panggilan tersebut. Setiap entri `addPlugins` adalah objek `{ type: "local", path }` dengan `path` absolut. Memerlukan TypeScript Agent SDK v0.3.301 atau yang lebih baru.79Di TypeScript SDK, panggil [`reloadPlugins()`](https://code.claude.com/docs/id/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) pada objek `Query` yang dikembalikan oleh `query()`, dan cantumkan direktori plugin dalam opsi `addPlugins` pada panggilan tersebut. Setiap entri `addPlugins` adalah objek `{ type: "local", path }` dengan `path` absolut. Memerlukan TypeScript Agent SDK v0.3.301 atau yang lebih baru.

Details

1385| `enabled` | `type`, `budget_tokens`, `display` | Mengaktifkan thinking dengan anggaran token tertentu |1385| `enabled` | `type`, `budget_tokens`, `display` | Mengaktifkan thinking dengan anggaran token tertentu |

1386| `disabled` | `type` | Menonaktifkan thinking |1386| `disabled` | `type` | Menonaktifkan thinking |

1387 1387 

1388Field opsional `display` mengontrol apakah teks thinking dikembalikan dalam bentuk `"summarized"` atau `"omitted"`. Pada Claude Opus 4.7 dan yang lebih baru, default API adalah `"omitted"`, jadi atur `"summarized"` untuk menerima konten thinking dalam output [`ThinkingBlock`](#thinkingblock). Claude Code tidak meneruskan nilai `display` Anda ke beberapa penyedia, seperti Amazon Bedrock dan Agent Platform milik Google Cloud. Pada penyedia tersebut, Opus 4.7 dan yang lebih baru mengembalikan output `ThinkingBlock` kosong bahkan ketika Anda mengatur `display` ke `"summarized"`.1388Field opsional `display` mengontrol apakah teks thinking dikembalikan dalam bentuk `"summarized"` atau `"omitted"`. Pada Claude Opus 4.7 dan yang lebih baru, default API adalah `"omitted"`, jadi atur `"summarized"` untuk menerima konten thinking dalam output [`ThinkingBlock`](#thinkingblock). Pada penyedia seperti Amazon Bedrock dan Agent Platform milik Google Cloud, Claude Code tidak meneruskan `display` untuk model lama yang dikenalinya. Model-model tersebut adalah Opus 4.6, Sonnet 4.6, Haiku 4.5, dan model yang lebih lama, yang menggunakan default masing-masing.

1389 1389 

1390Karena ini adalah kelas `TypedDict`, kelas-kelas ini merupakan dict biasa saat runtime. Buat sebagai literal dict atau panggil kelas seperti konstruktor; keduanya menghasilkan `dict`. Akses field dengan `config["budget_tokens"]`, bukan `config.budget_tokens`:1390Karena ini adalah kelas `TypedDict`, kelas-kelas ini merupakan dict biasa saat runtime. Buat sebagai literal dict atau panggil kelas seperti konstruktor; keduanya menghasilkan `dict`. Akses field dengan `config["budget_tokens"]`, bukan `config.budget_tokens`:

1391 1391 


2517 2517 

2518### Contoh Penggunaan Hook2518### Contoh Penggunaan Hook

2519 2519 

2520Contoh ini mendaftarkan dua hooks: satu yang memblokir perintah Bash berbahaya seperti `rm -rf /`, dan satu lagi yang mencatat semua penggunaan tool untuk audit. Hook keamanan hanya berjalan pada perintah Bash (melalui `matcher`), sementara hook logging berjalan pada semua tools.2520Contoh ini mendaftarkan dua hooks: satu yang memblokir perintah Bash berbahaya seperti `rm -rf /`, dan satu lagi yang mencatat semua penggunaan tool untuk audit. Dengan [matcher `Bash`](https://code.claude.com/docs/id/agent-sdk/hooks#matchers) miliknya, hook keamanan berjalan pada panggilan tool Bash. Hook logging tidak memiliki matcher, sehingga berjalan pada setiap panggilan tool.

2521 2521 

2522```python theme={null}2522```python theme={null}

2523import asyncio2523import asyncio


3668 3668 

3669### `SandboxIgnoreViolations`3669### `SandboxIgnoreViolations`

3670 3670 

3671Konfigurasi untuk mengabaikan pelanggaran sandbox tertentu.3671Pelanggaran yang tidak dimasukkan ke dalam laporan pelanggaran sandbox. Setiap kunci mencocokkan bagian dari sebuah perintah, atau `*` untuk setiap perintah, dan setiap nilai mencantumkan teks yang dicocokkan dalam baris pelanggaran: `{"*": ["/etc/hosts"]}` menyembunyikan pelanggaran yang menyebutkan `/etc/hosts`. Akses yang cocok tetap diblokir. Lihat [`sandbox.ignoreViolations`](https://code.claude.com/docs/id/settings-reference#sandbox-ignoreviolations).

3672 3672 

3673```python theme={null}3673```python theme={null}

3674class SandboxIgnoreViolations(TypedDict, total=False):3674SandboxIgnoreViolations = dict[str, list[str]]

3675 file: list[str]

3676 network: list[str]

3677```3675```

3678 3676 

3679| Property | Type | Default | Description |

3680| :- | :- | :- | :- |

3681| `file` | `list[str]` | `[]` | Pola jalur file untuk mengabaikan pelanggaran |

3682| `network` | `list[str]` | `[]` | Pola jaringan untuk mengabaikan pelanggaran |

3683 

3684### Fallback Izin untuk Perintah Tanpa Sandbox3677### Fallback Izin untuk Perintah Tanpa Sandbox

3685 3678 

3686Ketika `allowUnsandboxedCommands` diaktifkan, model dapat meminta untuk menjalankan perintah di luar sandbox dengan mengatur `dangerouslyDisableSandbox: True` dalam input tool. Permintaan ini kembali ke sistem izin yang ada, berarti handler `can_use_tool` Anda akan dipanggil, memungkinkan Anda menerapkan logika otorisasi khusus.3679Ketika `allowUnsandboxedCommands` diaktifkan, model dapat meminta untuk menjalankan perintah di luar sandbox dengan mengatur `dangerouslyDisableSandbox: True` dalam input tool. Permintaan ini kembali ke sistem izin yang ada, berarti handler `can_use_tool` Anda akan dipanggil, memungkinkan Anda menerapkan logika otorisasi khusus.

Details

1931 1931 

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

1933 1933 

1934Field `origin` meneruskan [`SDKMessageOrigin`](#sdkmessageorigin) dari pesan pengguna yang memicu hasil ini. Hasil yang membawa `origin: { kind: "task-notification" }` mencakup:1934Field `origin` berisi [`SDKMessageOrigin`](#sdkmessageorigin) yang ditetapkan Claude Code pada pesan pengguna yang memicu hasil ini, bukan salinan dari `origin` yang Anda kirim. Hasil yang membawa `origin: { kind: "task-notification" }` mencakup:

1935 1935 

1936* **Giliran lanjutan sintetis**: ketika SDK menyisipkan giliran lanjutan sintetis, seperti untuk tugas latar belakang yang selesai, `SDKResultMessage` yang dihasilkan membawa kind ini1936* **Giliran lanjutan sintetis**: ketika SDK menyisipkan giliran lanjutan sintetis, seperti untuk tugas latar belakang yang selesai, `SDKResultMessage` yang dihasilkan membawa kind ini

1937* **Tugas terjadwal yang terpicu dan pesan dari sesi lain**: tugas terjadwal cloud yang pemicunya aktif dan pesan terverifikasi server dari sesi Anda yang lain juga tiba dengan kind ini, masing-masing dengan `subkind` yang dijelaskan dalam [Task-notification subkinds](#task-notification-subkinds)1937* **Tugas terjadwal yang terpicu dan pesan dari sesi lain**: tugas terjadwal cloud yang pemicunya aktif dan pesan terverifikasi server dari sesi Anda yang lain juga tiba dengan kind ini, masing-masing dengan `subkind` yang dijelaskan dalam [Task-notification subkinds](#task-notification-subkinds)


1940 1940 

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

1942 1942 

1943Bidang tidak ada untuk hasil yang dipancarkan sebelum giliran pengguna apa pun, seperti kesalahan startup.1943`origin` tidak ada ketika Claude Code tidak menetapkannya, seperti:

1944 

1945* Pada giliran yang Anda mulai dengan pesan yang tidak memiliki `origin` maupun [`isSynthetic`](#sdkusermessage)

1946* Pada hasil yang dipancarkan sebelum giliran pengguna mana pun, seperti error startup

1944 1947 

1945Ketika hook `PreToolUse` mengembalikan `permissionDecision: "defer"`, hasil memiliki `stop_reason: "tool_deferred"` dan `deferred_tool_use` membawa `id`, `name`, dan `input` tool yang tertunda. Baca bidang ini untuk menampilkan permintaan di UI Anda sendiri, kemudian lanjutkan dengan `session_id` yang sama untuk melanjutkan. Lihat [Tunda panggilan tool untuk nanti](https://code.claude.com/docs/id/hooks.md#defer-a-tool-call-for-later) untuk perjalanan pulang-pergi lengkap.1948Ketika hook `PreToolUse` mengembalikan `permissionDecision: "defer"`, hasil memiliki `stop_reason: "tool_deferred"` dan `deferred_tool_use` membawa `id`, `name`, dan `input` tool yang tertunda. Baca bidang ini untuk menampilkan permintaan di UI Anda sendiri, kemudian lanjutkan dengan `session_id` yang sama untuk melanjutkan. Lihat [Tunda panggilan tool untuk nanti](https://code.claude.com/docs/id/hooks.md#defer-a-tool-call-for-later) untuk perjalanan pulang-pergi lengkap.

1946 1949 


2435 2438 

2436### `SDKMessageOrigin`2439### `SDKMessageOrigin`

2437 2440 

2438Asal usul pesan peran pengguna. Ini muncul sebagai `origin` pada [`SDKUserMessage`](#sdkusermessage) dan diteruskan ke [`SDKResultMessage`](#sdkresultmessage) yang sesuai sehingga Anda dapat mengetahui apa yang memicu giliran tertentu.2441Asal-usul pesan dengan peran pengguna. Ini muncul sebagai `origin` pada [`SDKUserMessage`](#sdkusermessage). [`SDKResultMessage`](#sdkresultmessage) untuk sebuah giliran membawa `origin` yang ditetapkan oleh Claude Code, sehingga Anda dapat mengetahui apa yang memicu giliran tersebut.

2439 2442 

2440```typescript theme={null}2443```typescript theme={null}

2441type SDKMessageOrigin =2444type SDKMessageOrigin =


2462 | { kind: "unclassified" };2465 | { kind: "unclassified" };

2463```2466```

2464 2467 

2468Aplikasi Anda dapat menetapkan jenis `origin` berikut pada pesan yang dikirimnya:

2469 

2470* `{ kind: "human" }`: apa yang diketik pengguna

2471* `{ kind: "task-notification", subkind: "scheduled-trigger" }`: sebuah [eksekusi terjadwal yang Anda deklarasikan](#declare-a-scheduled-run)

2472 

2473Serahkan jenis lainnya kepada Claude Code dan server Anthropic. Jika Anda menetapkan salah satu jenis tersebut, Claude secara default membaca pesan tersebut sebagai pesan pengguna.

2474 

2475Untuk mengirim teks yang tidak ditulis pengguna, seperti halaman yang diambil atau output agent lain, kirimkan sebagai pesan tersendiri dengan [`isSynthetic`](#sdkusermessage) diatur ke `true` dan `origin` tidak diatur. Atur juga [`client_composed`](#sdkusermessage) ke `true`, agar teks yang diawali `/` tidak dijalankan sebagai perintah.

2476 

2465| `kind` | Arti |2477| `kind` | Arti |

2466| - | - |2478| - | - |

2467| `human` | Input langsung dari pengguna akhir. Jika aplikasi Anda meneruskan apa yang diketik pengguna sebagai pesan pengguna, atur `origin`-nya ke `{ kind: "human" }` secara eksplisit: Claude Code memperlakukan pesan pengguna tanpa `origin` sebagai tidak teratribusi, dan pemeriksaan yang memerlukan prompt yang diketik manusia, seperti [kata kunci workflow `ultracode`](https://code.claude.com/docs/id/workflows#ask-for-a-workflow-in-your-prompt), tidak menerimanya. Sebelum v2.1.210, Claude Code memperlakukan `origin` yang tidak ada pada pesan pengguna sebagai input manusia. |2479| `human` | Input langsung dari pengguna akhir. Jika aplikasi Anda meneruskan apa yang diketik pengguna sebagai pesan pengguna, atur `origin`-nya ke `{ kind: "human" }`. Tanpa `origin` tersebut, Claude tetap membaca pesan sebagai pesan pengguna, tetapi pemeriksaan yang memerlukan prompt yang diketik manusia, seperti [kata kunci workflow `ultracode`](https://code.claude.com/docs/id/workflows#ask-for-a-workflow-in-your-prompt), tidak menerima pesan tersebut. |

2468| `channel` | Pesan yang tiba di [channel](https://code.claude.com/docs/id/channels.md). `server` adalah nama server MCP sumber. |2480| `channel` | Pesan yang tiba di [channel](https://code.claude.com/docs/id/channels.md). `server` adalah nama server MCP sumber. |

2469| `peer` | Pesan dari agent lain: [rekan kerja](https://code.claude.com/docs/id/agent-teams.md) dalam proses atau [rekan lintas sesi](https://code.claude.com/docs/id/cross-session-messaging.md), sesi Claude Code lain milik Anda. Lihat [Bidang asal peer](#peer-origin-fields) untuk semantik per-bidang dan model kepercayaan. |2481| `peer` | Pesan dari agent Claude Code lain: [rekan tim](https://code.claude.com/docs/id/agent-teams.md) dalam proses atau [peer lintas sesi](https://code.claude.com/docs/id/cross-session-messaging.md), yaitu sesi Claude Code Anda yang lain. [Aplikasi desktop](https://code.claude.com/docs/id/desktop.md#work-across-sessions), yang meneruskan pesan semacam itu di antara sesi-sesi Anda, mendeklarasikan jenis ini dengan [`fromMode`](#peer-origin-fields). Untuk meneruskan output agent lain dari aplikasi Anda sendiri, atur `isSynthetic` dan `client_composed` sebagai gantinya. Lihat [Field origin peer](#peer-origin-fields) untuk semantik per field dan model kepercayaannya. |

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

2471| `coordinator` | Pesan dari koordinator tim dalam [tim agent](https://code.claude.com/docs/id/agent-teams.md). |2483| `coordinator` | Pesan dari koordinator tim dalam [tim agent](https://code.claude.com/docs/id/agent-teams.md). |

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

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

2474 2486 

2475### Subkind notifikasi tugas2487### Subkind notifikasi tugas

2476 2488 


2494Origin `peer` mengidentifikasi agent mana yang mengirim pesan: [teammate](https://code.claude.com/docs/id/agent-teams.md) dalam proses yang sama yang mengirim ke `main` dengan `SendMessage`, atau [peer lintas sesi](https://code.claude.com/docs/id/cross-session-messaging.md), yaitu salah satu sesi Claude Code Anda yang lain. Peer lintas sesi memerlukan Claude Code v2.1.224 atau lebih baru di macOS dan Linux; lihat [ketersediaan pesan lintas sesi](https://code.claude.com/docs/id/cross-session-messaging.md#availability) untuk persyaratan Windows native. Peer lintas sesi dapat berjalan di mesin yang sama, atau di [salah satu mesin Anda yang lain](https://code.claude.com/docs/id/cross-session-messaging.md#message-sessions-on-other-machines) ketika pesannya tiba melalui [Remote Control](https://code.claude.com/docs/id/remote-control.md).2506Origin `peer` mengidentifikasi agent mana yang mengirim pesan: [teammate](https://code.claude.com/docs/id/agent-teams.md) dalam proses yang sama yang mengirim ke `main` dengan `SendMessage`, atau [peer lintas sesi](https://code.claude.com/docs/id/cross-session-messaging.md), yaitu salah satu sesi Claude Code Anda yang lain. Peer lintas sesi memerlukan Claude Code v2.1.224 atau lebih baru di macOS dan Linux; lihat [ketersediaan pesan lintas sesi](https://code.claude.com/docs/id/cross-session-messaging.md#availability) untuk persyaratan Windows native. Peer lintas sesi dapat berjalan di mesin yang sama, atau di [salah satu mesin Anda yang lain](https://code.claude.com/docs/id/cross-session-messaging.md#message-sessions-on-other-machines) ketika pesannya tiba melalui [Remote Control](https://code.claude.com/docs/id/remote-control.md).

2495 2507 

2496* `from`: nama rekan kerja, atau alamat pengirim untuk rekan lintas sesi. Untuk [pesan lintas mesin satu arah](https://code.claude.com/docs/id/cross-session-messaging.md#message-sessions-on-other-machines), pengirim tidak memiliki alamat balasan dan `from` adalah `"unknown"`. Nilai dibuat oleh pengirim; `verifiedPeerPid` adalah identitas yang diverifikasi.2508* `from`: nama rekan kerja, atau alamat pengirim untuk rekan lintas sesi. Untuk [pesan lintas mesin satu arah](https://code.claude.com/docs/id/cross-session-messaging.md#message-sessions-on-other-machines), pengirim tidak memiliki alamat balasan dan `from` adalah `"unknown"`. Nilai dibuat oleh pengirim; `verifiedPeerPid` adalah identitas yang diverifikasi.

2497* `fromMode`: kelas izin sesi pengirim, `bypass` atau `prompting`, dideklarasikan oleh host yang meneruskan pesan peer antara sesi Anda, seperti [aplikasi desktop](https://code.claude.com/docs/id/desktop.md#work-across-sessions). Claude Code membacanya dalam sesi penerima ketika menerapkan [kontrol inbound](https://code.claude.com/docs/id/cross-session-messaging.md#control-inbound-messages). Memerlukan Agent SDK v0.3.234 atau lebih baru.2509* `fromMode`: kelas izin sesi pengirim, `bypass` atau `prompting`. Claude Code membacanya di sesi penerima saat menerapkan [kontrol pesan masuk](https://code.claude.com/docs/id/cross-session-messaging.md#control-inbound-messages). Memerlukan Agent SDK v0.3.234 atau yang lebih baru.

2498* `senderTaskId`: ID tugas rekan kerja. Tidak ada untuk rekan lintas sesi.2510* `senderTaskId`: ID tugas rekan kerja. Tidak ada untuk rekan lintas sesi.

2499* `name`: nama tampilan pengirim, dinormalisasi oleh Claude Code: ia menghapus code point kontrol, format, surrogate, dan pemisah baris atau paragraf Unicode, kemudian memangkas hasil dan membatasinya pada 64 code point dengan elipsis. Memerlukan Claude Code v2.1.205 atau lebih baru.2511* `name`: nama tampilan pengirim, dinormalisasi oleh Claude Code: ia menghapus code point kontrol, format, surrogate, dan pemisah baris atau paragraf Unicode, kemudian memangkas hasil dan membatasinya pada 64 code point dengan elipsis. Memerlukan Claude Code v2.1.205 atau lebih baru.

2500* `body`: isi pesan yang telah didekode dengan amplop peer dihapus, sama persis per byte dengan apa yang dilihat model. Ada untuk satu pesan rekan tim, tidak ada ketika beberapa pesan digabungkan; untuk peer lintas sesi, hanya ada ketika giliran tersebut tepat berupa satu amplop peer yang dibentuk oleh Claude Code. Tampilkan `name` dan `body` alih-alih mem-parsing ulang teks pesan. Sebelum v2.1.299, pesan yang digabungkan mempertahankan `body` pesan pertama. Memerlukan Claude Code v2.1.205 atau yang lebih baru.2512* `body`: isi pesan yang telah didekode dengan amplop peer dihapus, sama persis per byte dengan apa yang dilihat model. Ada untuk satu pesan rekan tim, tidak ada ketika beberapa pesan digabungkan; untuk peer lintas sesi, hanya ada ketika giliran tersebut tepat berupa satu amplop peer yang dibentuk oleh Claude Code. Tampilkan `name` dan `body` alih-alih mem-parsing ulang teks pesan. Sebelum v2.1.299, pesan yang digabungkan mempertahankan `body` pesan pertama. Memerlukan Claude Code v2.1.205 atau yang lebih baru.


5421 | { type: "disabled" }; // No extended thinking5433 | { type: "disabled" }; // No extended thinking

5422```5434```

5423 5435 

5424Field `display` opsional mengontrol apakah teks thinking dikembalikan `"summarized"` atau `"omitted"`. Pada Claude Opus 4.7 dan yang lebih baru, default API adalah `"omitted"`, jadi atur `"summarized"` untuk menerima konten thinking dalam blok `thinking`. Claude Code tidak meneruskan nilai `display` Anda ke beberapa penyedia, seperti Amazon Bedrock dan Agent Platform Google Cloud. Pada penyedia tersebut, Opus 4.7 dan yang lebih baru mengembalikan blok `thinking` kosong bahkan ketika Anda menetapkan `display` ke `"summarized"`.5436Field `display` opsional mengontrol apakah teks thinking dikembalikan `"summarized"` atau `"omitted"`. Pada Claude Opus 4.7 dan yang lebih baru, default API adalah `"omitted"`, jadi atur `"summarized"` untuk menerima konten thinking dalam blok `thinking`. Pada penyedia seperti Amazon Bedrock dan Agent Platform Google Cloud, Claude Code tidak meneruskan `display` untuk model lama yang dikenalinya. Model tersebut adalah Opus 4.6, Sonnet 4.6, Haiku 4.5, dan model yang lebih lama, yang menggunakan default-nya.

5425 5437 

5426### `SpawnedProcess`5438### `SpawnedProcess`

5427 5439 


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

6043| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Konfigurasi sandbox spesifik jaringan |6055| `network` | [`SandboxNetworkConfig`](#sandboxnetworkconfig) | `undefined` | Konfigurasi sandbox spesifik jaringan |

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

6045| `ignoreViolations` | `Record<string, string[]>` | `undefined` | Peta substring perintah, atau `*` untuk setiap perintah, ke substring teks pelanggaran untuk diabaikan, seperti `{ "*": ['/etc/hosts'] }`; lihat [`sandbox.ignoreViolations`](https://code.claude.com/docs/id/settings-reference#sandbox-ignoreviolations) |6057| `ignoreViolations` | `Record<string, string[]>` | `undefined` | Pelanggaran yang dikecualikan dari laporan pelanggaran sandbox. Setiap kunci mencocokkan bagian dari sebuah perintah, atau `*` untuk setiap perintah, dan setiap nilai mencantumkan teks yang dicocokkan dalam baris pelanggaran: `{ "*": ['/etc/hosts'] }` menyembunyikan pelanggaran yang menyebutkan `/etc/hosts`. Lihat [`sandbox.ignoreViolations`](https://code.claude.com/docs/id/settings-reference#sandbox-ignoreviolations) |

6046| `enableWeakerNestedSandbox` | `boolean` | `false` | Aktifkan sandbox bersarang yang lebih lemah untuk kompatibilitas |6058| `enableWeakerNestedSandbox` | `boolean` | `false` | Aktifkan sandbox bersarang yang lebih lemah untuk kompatibilitas |

6047| `allowNestedUserNamespaces` | `boolean` | `false` | Izinkan perintah sandboxed di Linux dan WSL2 membuat user namespace. Sebelum Anda mengaturnya ke `true`, baca [`sandbox.allowNestedUserNamespaces`](https://code.claude.com/docs/id/settings-reference#sandbox-allownestedusernamespaces), yang menjelaskan alat yang membutuhkannya dan batas keamanan yang Anda matikan. Memerlukan Claude Code v2.1.305 atau lebih baru |6059| `allowNestedUserNamespaces` | `boolean` | `false` | Izinkan perintah sandboxed di Linux dan WSL2 membuat user namespace. Sebelum Anda mengaturnya ke `true`, baca [`sandbox.allowNestedUserNamespaces`](https://code.claude.com/docs/id/settings-reference#sandbox-allownestedusernamespaces), yang menjelaskan alat yang membutuhkannya dan batas keamanan yang Anda matikan. Memerlukan Claude Code v2.1.305 atau lebih baru |

6048| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Konfigurasi biner ripgrep kustom untuk lingkungan sandbox |6060| `ripgrep` | `{ command: string; args?: string[] }` | `undefined` | Konfigurasi biner ripgrep kustom untuk lingkungan sandbox |

agent-teams.md +1 −1

Details

296>296>

297> Agar rekan kerja bertanya sebelum mengedit, tekan Enter pada baris `main` di panel agent dan ubah pemimpin ke mode Manual juga. Pemimpin kemudian juga akan bertanya, begitu pula rekan kerja lain yang berada dalam mode Manual.297> Agar rekan kerja bertanya sebelum mengedit, tekan Enter pada baris `main` di panel agent dan ubah pemimpin ke mode Manual juga. Pemimpin kemudian juga akan bertanya, begitu pula rekan kerja lain yang berada dalam mode Manual.

298 298 

299Anda tidak dapat menetapkan mode izin per-rekan kerja pada waktu spawn. Rekan kerja baru dimulai dengan mode pemimpin, termasuk mode `bypassPermissions`, yang diaktifkan oleh `--dangerously-skip-permissions`. Jika pemimpin berada dalam [mode `dontAsk`](https://code.claude.com/docs/id/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), rekan kerja dimulai dalam [mode Manual](https://code.claude.com/docs/id/permission-modes.md#available-modes) sebagai gantinya.299Anda tidak dapat menetapkan mode izin per-rekan kerja pada waktu spawn. Rekan kerja baru dimulai dengan mode pemimpin, termasuk mode `bypassPermissions`, yang diaktifkan oleh `--dangerously-skip-permissions`. Jika pemimpin berada dalam [mode `dontAsk`](https://code.claude.com/docs/id/permission-modes#allow-only-pre-approved-tools-with-dontask-mode), rekan kerja dimulai dalam [mode Manual](https://code.claude.com/docs/id/permission-modes.md#available-modes) sebagai gantinya. Untuk rekan kerja split-pane dari pemimpin dalam mode Manual atau `dontAsk`, hal ini memerlukan Claude Code v2.1.317 atau yang lebih baru.

300 300 

301Rekan kerja [dalam proses](#choose-a-display-mode) berjalan di bawah aturan allow dan deny aktif milik pemimpin, sehingga [`--disallowedTools`](https://code.claude.com/docs/id/cli-reference#cli-flags), `--tools`, dan `--allowedTools` semuanya berlaku untuknya. Untuk rekan kerja split-pane, periksa setiap flag:301Rekan kerja [dalam proses](#choose-a-display-mode) berjalan di bawah aturan allow dan deny aktif milik pemimpin, sehingga [`--disallowedTools`](https://code.claude.com/docs/id/cli-reference#cli-flags), `--tools`, dan `--allowedTools` semuanya berlaku untuknya. Untuk rekan kerja split-pane, periksa setiap flag:

302 302 

artifacts.md +1 −1

Details

141 141 

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

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

144* **Pemilik atau pengaturan jaringan yang belum terkonfirmasi**: ketika Claude Code tidak dapat memastikan siapa yang membuat artifact, atau tidak dapat memastikan pengaturan jaringan sesi cloud, Claude Code akan bertanya, dan persetujuan Anda hanya berlaku untuk satu permintaan tersebut.144* **Pemilik atau pengaturan jaringan yang belum terkonfirmasi**: ketika Claude Code tidak dapat memastikan siapa yang membuat artifact, atau tidak dapat memastikan pengaturan jaringan sesi cloud, Claude Code akan bertanya, dan persetujuan Anda hanya berlaku untuk satu permintaan tersebut. Dalam [auto mode](https://code.claude.com/docs/id/permission-modes.md#eliminate-prompts-with-auto-mode), pengklasifikasi dapat menyetujui atau memblokir pembacaan tersebut alih-alih menanyakan Anda.

145* **Plan mode**: dalam [plan mode](https://code.claude.com/docs/id/permission-modes.md#analyze-before-you-edit-with-plan-mode), Claude Code bertanya sebelum tool Artifact membaca artifact yang dibuat oleh orang lain di organisasi Anda.145* **Plan mode**: dalam [plan mode](https://code.claude.com/docs/id/permission-modes.md#analyze-before-you-edit-with-plan-mode), Claude Code bertanya sebelum tool Artifact membaca artifact yang dibuat oleh orang lain di organisasi Anda.

146 146 

147Ketika Claude membaca artifact dengan WebFetch, [aturan permintaan izin](https://code.claude.com/docs/id/tools-reference.md#webfetch-tool-behavior) milik WebFetch sendiri tetap berlaku.147Ketika Claude membaca artifact dengan WebFetch, [aturan permintaan izin](https://code.claude.com/docs/id/tools-reference.md#webfetch-tool-behavior) milik WebFetch sendiri tetap berlaku.

Details

29 29 

30## Buat sesi memenuhi syarat30## Buat sesi memenuhi syarat

31 31 

32Jika gateway adalah penyebabnya, minta admin perusahaan Anda atau penyedia gateway Anda untuk meneruskan permintaan dan balasan tanpa perubahan. Itu berarti meneruskan header permintaan dan bidang badan seperti adanya, termasuk yang tidak dikenali gateway seperti bidang permintaan `safeguards`, dan mengembalikan respons dan acara streaming tanpa menghapus kunci seperti bidang `safeguard_results` atau menulis ulang ID penggunaan alat, seperti yang dijelaskan dalam [panduan kompatibilitas gateway](https://code.claude.com/docs/id/llm-gateway-protocol.md#feature-pass-through). Gateway yang meneruskan lalu lintas dengan cara ini terus bekerja dengan fitur ini dan dengan fitur mendatang. Sesi baru kemudian menggunakan pemeriksaan server lagi.32Jika gateway mencegah pemeriksaan sisi server auto mode menjangkau sesi Anda dan Anda tidak mengelolanya, kirimkan persyaratan di bawah ini kepada admin perusahaan Anda atau penyedia gateway Anda. Jika [upstream menerima format yang diterima gateway](https://code.claude.com/docs/id/llm-gateway-protocol.md#format-mismatch-with-the-upstream), Claude Code mengharapkan gateway meneruskan permintaan dan respons tanpa perubahan, seperti yang dijelaskan dalam [panduan kompatibilitas gateway](https://code.claude.com/docs/id/llm-gateway-protocol.md#feature-pass-through):

33 

34* **Permintaan**: agar pemeriksaan dapat lolos, gateway meneruskan header `anthropic-beta` dan bidang badan `safeguards` tanpa perubahan, karena [keduanya berjalan sebagai pasangan](https://code.claude.com/docs/id/llm-gateway-protocol.md#beta-header-and-body-field-pairs). Pada [format InvokeModel Amazon Bedrock](https://code.claude.com/docs/id/llm-gateway-protocol.md#api-formats), gateway meneruskan bidang badan `anthropic_beta` sebagai pengganti header.

35* **Respons**: gateway mengembalikan respons dan acara streaming tanpa menghapus bidang atau menulis ulang ID penggunaan alat. Agar hasil pemeriksaan dapat lolos, gateway mempertahankan bidang `safeguard_results`.

36 

37Gateway yang meneruskan lalu lintas dengan cara ini terus bekerja dengan fitur ini dan dengan fitur mendatang. Sesi baru kemudian menggunakan pemeriksaan server lagi.

33 38 

34Jika Anda sudah tahu bahwa gateway Anda tidak dapat menyediakan pemeriksaan server, beri tahu Claude Code untuk tidak memintanya di sana dengan menetapkan `CLAUDE_CODE_AUTO_MODE_SERVER` ke `0` sebelum Anda memulai sesi, di shell Anda atau di [kunci pengaturan `env`](https://code.claude.com/docs/id/settings-reference#env):39Jika Anda sudah tahu bahwa gateway Anda tidak dapat menyediakan pemeriksaan server, beri tahu Claude Code untuk tidak memintanya di sana dengan menetapkan `CLAUDE_CODE_AUTO_MODE_SERVER` ke `0` sebelum Anda memulai sesi, di shell Anda atau di [kunci pengaturan `env`](https://code.claude.com/docs/id/settings-reference#env):

35 40 

channels.md +1 −1

Details

354| Fitur | Apa yang dilakukannya | Bagus untuk |354| Fitur | Apa yang dilakukannya | Bagus untuk |

355| - | - | - |355| - | - | - |

356| [Sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md) | Menjalankan tugas dalam sandbox cloud baru, diklon dari GitHub | Mendelegasikan pekerjaan async yang mandiri yang Anda periksa nanti |356| [Sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md) | Menjalankan tugas dalam sandbox cloud baru, diklon dari GitHub | Mendelegasikan pekerjaan async yang mandiri yang Anda periksa nanti |

357| [Claude in Slack](https://code.claude.com/docs/id/slack.md) | Menjalankan sesi cloud dari penyebutan `@Claude` di channel atau thread | Memulai tugas langsung dari konteks percakapan tim |357| [Claude in Slack](https://code.claude.com/docs/id/slack.md) | Menjalankan sesi cloud dari penyebutan `@Claude` di channel atau thread | Memulai tugas langsung dari percakapan tim |

358| [Server MCP](https://code.claude.com/docs/id/mcp.md) standar | Claude menanyainya selama tugas; tidak ada yang didorong ke sesi | Memberi Claude akses on-demand untuk membaca atau menanyakan sistem |358| [Server MCP](https://code.claude.com/docs/id/mcp.md) standar | Claude menanyainya selama tugas; tidak ada yang didorong ke sesi | Memberi Claude akses on-demand untuk membaca atau menanyakan sistem |

359| [Remote Control](https://code.claude.com/docs/id/remote-control.md) | Anda mengemudi sesi lokal Anda dari claude.ai atau aplikasi Claude mobile | Mengarahkan sesi yang sedang berlangsung saat jauh dari meja Anda |359| [Remote Control](https://code.claude.com/docs/id/remote-control.md) | Anda mengemudi sesi lokal Anda dari claude.ai atau aplikasi Claude mobile | Mengarahkan sesi yang sedang berlangsung saat jauh dari meja Anda |

360 360 

Details

350 350 

351### Mengirimkan kebijakan ke sesi Claude Desktop351### Mengirimkan kebijakan ke sesi Claude Desktop

352 352 

353Claude Desktop menjalankan tab Cowork dan Code, serta Chat ketika Anda mengaktifkannya, pada sesi Claude Code yang tertanam dan mengirimkan permintaan model dari sesi-sesi tersebut melalui gateway. Claude Desktop meneruskan kebijakan ke setiap sesi tersebut, yang dibangun dari konfigurasi yang disajikan gateway kepadanya di `/user/bootstrap`: allowlist model, tool yang dinonaktifkan, dan allowlist egress yang diturunkan dari blok `cli` atau `code` pada kebijakan yang cocok, ditambah [overlay `desktop`](https://code.claude.com/docs/id/claude-apps-gateway-config#claude-desktop-overlay).353Claude Desktop menjalankan tab-tabnya pada sesi Claude Code yang tertanam dan mengirimkan permintaan model dari sesi-sesi tersebut melalui gateway. Claude Desktop meneruskan kebijakan ke setiap sesi tersebut, yang dibangun dari konfigurasi yang disajikan gateway kepadanya di `/user/bootstrap`. Konfigurasi tersebut memuat allowlist model, tool yang dinonaktifkan, dan allowlist egress yang diturunkan dari blok `cli` atau `code` pada kebijakan yang cocok, ditambah [overlay `desktop`](https://code.claude.com/docs/id/claude-apps-gateway-config#claude-desktop-overlay).

354 354 

355Kunci lain dalam blok tersebut, seperti hook, `env`, dan aturan izin bercakupan seperti `Bash(npm *)`, menjangkau klien yang masuk melalui `/login`. Di bawah `code`, kunci-kunci tersebut juga menjangkau sesi tab Code ketika [kondisi untuk tab Code](https://code.claude.com/docs/id/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab) terpenuhi. Kunci-kunci tersebut tidak menjangkau sesi Cowork atau Chat. Claude Desktop membaca URL gateway dari konfigurasi terkelolanya sendiri dan masuk dengan alurnya sendiri, terpisah dari kunci `forceLoginMethod` dan `forceLoginGatewayUrl` di [Mengatur URL gateway](#set-the-gateway-url).355Kunci lain dalam blok tersebut, seperti hook, `env`, dan aturan izin bercakupan seperti `Bash(npm *)`, menjangkau klien yang masuk melalui `/login`. Di bawah `code`, kunci-kunci tersebut juga menjangkau sesi tab Code ketika [kondisi untuk tab Code](https://code.claude.com/docs/id/claude-apps-gateway-config.md#apply-code-settings-in-the-code-tab) terpenuhi. Kunci-kunci tersebut tidak menjangkau sesi Cowork atau Chat. Claude Desktop membaca URL gateway dari konfigurasi terkelolanya sendiri dan masuk dengan alurnya sendiri, terpisah dari kunci `forceLoginMethod` dan `forceLoginGatewayUrl` di [Mengatur URL gateway](#set-the-gateway-url).

356 356 


476 476 

477### Menghubungkan Claude Desktop477### Menghubungkan Claude Desktop

478 478 

479[Claude Desktop](https://code.claude.com/docs/id/desktop.md) terhubung ke gateway yang sama melalui kunci MDM yang berbeda: atur `bootstrapUrl` di [konfigurasi terkelola](https://claude.com/docs/third-party/claude-desktop/configuration) Claude Desktop ke `<listen.public_url>/user/bootstrap`, dan ikutsertakan kebijakan pengguna dengan kunci `desktop`. [Overlay Claude Desktop](https://code.claude.com/docs/id/claude-apps-gateway-config.md#claude-desktop-overlay) membahas kedua bagian tersebut. Memerlukan Claude Code v2.1.203 atau yang lebih baru di server gateway.479[Claude Desktop](https://code.claude.com/docs/id/desktop.md) terhubung ke gateway yang sama melalui kunci MDM yang berbeda: atur `bootstrapUrl` di [konfigurasi terkelola](https://claude.com/docs/third-party/claude-desktop/configuration) Claude Desktop ke `<listen.public_url>/user/bootstrap`, dan ikutsertakan kebijakan pengguna dengan kunci `desktop`. [Overlay Claude Desktop](https://code.claude.com/docs/id/claude-apps-gateway-config.md#claude-desktop-overlay) membahas kedua bagian tersebut. Memerlukan Claude Code v2.1.203 atau yang lebih baru di server gateway. Setelah terhubung, Claude Desktop mengirimkan permintaan model dari setiap tab yang diaktifkan melalui gateway.

480 480 

481Claude Desktop memasukkan developer (melakukan sign-in) melalui penyedia identitas gateway dengan langkah SSO browser yang sama, lalu mengambil konfigurasinya dari gateway, bukan dari Anthropic. Akses model dan kebijakan mengikuti aturan per grup yang sama dengan CLI. Developer yang menggunakan CLI dan Claude Desktop masuk ke masing-masing secara terpisah; sesi gateway tidak dibagikan di antara keduanya.481Claude Desktop memasukkan developer (melakukan sign-in) melalui penyedia identitas gateway dengan langkah SSO browser yang sama, lalu mengambil konfigurasinya dari gateway, bukan dari Anthropic. Akses model dan kebijakan mengikuti aturan per grup yang sama dengan CLI. Developer yang menggunakan CLI dan Claude Desktop masuk ke masing-masing secara terpisah; sesi gateway tidak dibagikan di antara keduanya.

482 482 

483Setelah terhubung, Claude Desktop mengirimkan permintaan model dari setiap tab yang diaktifkan melalui gateway. Claude Desktop menampilkan tab Cowork dan Code secara default. Untuk menyediakan Chat juga, atur `chatTabEnabled` ke `true` di [blok `desktop`](https://code.claude.com/docs/id/claude-apps-gateway-config#claude-desktop-overlay) milik kebijakan pada gateway yang menjalankan Claude Code v2.1.227 atau yang lebih baru. Dengan Cowork aktif, Claude Desktop kemudian menampilkan Chat dan Cowork bersama-sama dalam satu tab.

484 

485### Pipeline CI dan mesin jarak jauh483### Pipeline CI dan mesin jarak jauh

486 484 

487Tidak ada alur service-token untuk pipeline tanpa pengawasan. Proses masuk gateway selalu menjalankan device flow browser, sehingga job CI tanpa developer yang menyetujui proses masuk tidak dapat melakukan autentikasi; konfigurasikan job tersebut langsung ke penyedia Anda. Deploy `forceLoginMethod` dan `forceLoginGatewayUrl` ke mesin developer dan jangan pasang di runner CI. Pada mesin yang pengaturan terkelolanya mengatur kunci tersebut, sesi yang melakukan autentikasi dengan `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` [keluar saat startup](https://code.claude.com/docs/id/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in).485Tidak ada alur service-token untuk pipeline tanpa pengawasan. Proses masuk gateway selalu menjalankan device flow browser, sehingga job CI tanpa developer yang menyetujui proses masuk tidak dapat melakukan autentikasi; konfigurasikan job tersebut langsung ke penyedia Anda. Deploy `forceLoginMethod` dan `forceLoginGatewayUrl` ke mesin developer dan jangan pasang di runner CI. Pada mesin yang pengaturan terkelolanya mengatur kunci tersebut, sesi yang melakukan autentikasi dengan `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, atau `apiKeyHelper` [keluar saat startup](https://code.claude.com/docs/id/errors.md#administrator-policy-requires-a-cloud-gateway-sign-in).


523| Penerusan inferensi (Amazon Bedrock, Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry, Anthropic) | Tersedia | Dengan terjemahan model per-upstream dan failover. Upstream Amazon Bedrock menggunakan endpoint `bedrock-runtime` dan rantai kredensial default AWS. [Upstream Amazon Bedrock Mantle](https://code.claude.com/docs/id/claude-apps-gateway-config.md#amazon-bedrock-mantle-endpoint) memerlukan Claude Code v2.1.283 atau lebih baru di server gateway, dan [upstream Claude Platform on AWS](https://code.claude.com/docs/id/claude-apps-gateway-config.md#claude-platform-on-aws) memerlukan v2.1.198 atau lebih baru. |521| Penerusan inferensi (Amazon Bedrock, Claude Platform on AWS, Agent Platform Google Cloud, Microsoft Foundry, Anthropic) | Tersedia | Dengan terjemahan model per-upstream dan failover. Upstream Amazon Bedrock menggunakan endpoint `bedrock-runtime` dan rantai kredensial default AWS. [Upstream Amazon Bedrock Mantle](https://code.claude.com/docs/id/claude-apps-gateway-config.md#amazon-bedrock-mantle-endpoint) memerlukan Claude Code v2.1.283 atau lebih baru di server gateway, dan [upstream Claude Platform on AWS](https://code.claude.com/docs/id/claude-apps-gateway-config.md#claude-platform-on-aws) memerlukan v2.1.198 atau lebih baru. |

524| Context window 1M token | Tersedia | Model Fable, Sonnet 5 dan yang lebih baru, serta Opus 4.7 dan yang lebih baru berjalan dengan window 1M secara default; lihat [Konteks diperluas](https://code.claude.com/docs/id/model-config.md#extended-context). Default 1M untuk model Fable dan Opus memerlukan Claude Code v2.1.287 atau lebih baru di mesin pengembang |522| Context window 1M token | Tersedia | Model Fable, Sonnet 5 dan yang lebih baru, serta Opus 4.7 dan yang lebih baru berjalan dengan window 1M secara default; lihat [Konteks diperluas](https://code.claude.com/docs/id/model-config.md#extended-context). Default 1M untuk model Fable dan Opus memerlukan Claude Code v2.1.287 atau lebih baru di mesin pengembang |

525| Akses model dan pengaturan terkelola berdasarkan grup IdP | Tersedia | Akses model diberlakukan di sisi server; pengaturan terkelola disampaikan per grup IdP dan diterapkan oleh CLI di [tingkat pengaturan terkelola](https://code.claude.com/docs/id/settings.md#settings-precedence) |523| Akses model dan pengaturan terkelola berdasarkan grup IdP | Tersedia | Akses model diberlakukan di sisi server; pengaturan terkelola disampaikan per grup IdP dan diterapkan oleh CLI di [tingkat pengaturan terkelola](https://code.claude.com/docs/id/settings.md#settings-precedence) |

526| Claude Desktop | Tersedia dengan opt-in | Gateway melayani konfigurasi Claude Desktop di `/user/bootstrap` setelah kebijakan [memilih dengan kunci `desktop`](https://code.claude.com/docs/id/claude-apps-gateway-config#claude-desktop-overlay), dan Claude Desktop mengirim permintaan modelnya melalui gateway. Untuk mengaktifkan Chat, lihat [Hubungkan Claude Desktop](#connect-claude-desktop). Memerlukan Claude Code v2.1.203 atau lebih baru di server gateway. |524| Claude Desktop | Tersedia dengan opt-in | Ikutsertakan kebijakan dengan [kunci `desktop`](https://code.claude.com/docs/id/claude-apps-gateway-config#claude-desktop-overlay). Memerlukan Claude Code v2.1.203 atau lebih baru di server gateway. |

527| Fan-out telemetri (OTLP/HTTP) | Tersedia | Identitas-stamped per ekspor; kedua pengkodean protobuf dan JSON |525| Fan-out telemetri (OTLP/HTTP) | Tersedia | Identitas-stamped per ekspor; kedua pengkodean protobuf dan JSON |

528| Penyedia identitas OIDC | Tersedia | Penyedia IdP yang sesuai dengan OIDC; gateway menjalankan penemuan OIDC standar dan alur kode otorisasi. Lihat [Pengaturan penyedia identitas](https://code.claude.com/docs/id/claude-apps-gateway-deploy.md#identity-provider-setup) untuk konfigurasi per-IdP |526| Penyedia identitas OIDC | Tersedia | Penyedia IdP yang sesuai dengan OIDC; gateway menjalankan penemuan OIDC standar dan alur kode otorisasi. Lihat [Pengaturan penyedia identitas](https://code.claude.com/docs/id/claude-apps-gateway-deploy.md#identity-provider-setup) untuk konfigurasi per-IdP |

529| Batas pengeluaran per-pengguna dan per-grup | Tersedia | Lihat [Spend limits](https://code.claude.com/docs/id/claude-apps-gateway-spend-limits.md) |527| Batas pengeluaran per-pengguna dan per-grup | Tersedia | Lihat [Spend limits](https://code.claude.com/docs/id/claude-apps-gateway-spend-limits.md) |


540| Multi-tenant (beberapa penerbit OIDC) | Tidak didukung | Satu penerbit per gateway. Jalankan instans terpisah |538| Multi-tenant (beberapa penerbit OIDC) | Tidak didukung | Satu penerbit per gateway. Jalankan instans terpisah |

541| Server Windows | Tidak didukung | Deploy di Linux. macOS untuk pengembangan lokal saja |539| Server Windows | Tidak didukung | Deploy di Linux. macOS untuk pengembangan lokal saja |

542| Helm chart | Tidak tersedia | Gateway berjalan sebagai Deployment stateless standar; lihat [panduan deployment](https://code.claude.com/docs/id/claude-apps-gateway-deploy.md#kubernetes) |540| Helm chart | Tidak tersedia | Gateway berjalan sebagai Deployment stateless standar; lihat [panduan deployment](https://code.claude.com/docs/id/claude-apps-gateway-deploy.md#kubernetes) |

543| Admin UI | Tidak tersedia | Konfigurasi adalah file YAML; deploy ulang untuk mengubahnya |541| Admin UI | Hanya batas pengeluaran | Di Claude Desktop 4.23118.0 atau lebih baru yang [terhubung ke gateway](#connect-claude-desktop), anggota [`admin.admin_groups`](https://code.claude.com/docs/id/claude-apps-gateway-config#admin) dapat mengelola batas pengeluaran. Konfigurasi lainnya adalah file YAML; deploy ulang untuk mengubahnya |

544 542 

545## Langkah berikutnya543## Langkah berikutnya

546 544 

Details

1651| `reply_tokens` | Tidak | Default `750`. Kira-kira berapa banyak token teks yang dibawa setiap balasan siap pakai, berupa bilangan bulat dari 1 hingga 100000. |1651| `reply_tokens` | Tidak | Default `750`. Kira-kira berapa banyak token teks yang dibawa setiap balasan siap pakai, berupa bilangan bulat dari 1 hingga 100000. |

1652| `reply_seconds` | Tidak | Default `9.5`. Berapa lama balasan yang di-stream berlangsung, dari 0 hingga 600. `0` mengirim seluruh balasan sekaligus. Balasan untuk permintaan non-streaming selalu dikembalikan sekaligus. |1652| `reply_seconds` | Tidak | Default `9.5`. Berapa lama balasan yang di-stream berlangsung, dari 0 hingga 600. `0` mengirim seluruh balasan sekaligus. Balasan untuk permintaan non-streaming selalu dikembalikan sekaligus. |

1653 1653 

1654Uji beban dalam mode ini mencakup gateway, Postgres Anda, dan semua yang ada di depan gateway. Uji ini tidak mencakup batas, kecepatan, atau jalur jaringan milik penyedia.1654Load test dalam mode ini mencakup gateway, Postgres Anda, dan semua yang berada di depan gateway. Load test ini tidak mencakup batas, kecepatan, dan jalur jaringan provider, atau waktu tunggu pada [batas permintaan upstream bersamaan](https://code.claude.com/docs/id/claude-apps-gateway-deploy.md#concurrent-upstream-requests) setiap replika. Replika tetap mencatat peringatan `client requests are open` ketika jumlah permintaan terbuka melebihi batas tersebut, yaitu titik di mana permintaan produksi mulai menunggu.

1655 1655 

1656Tidak ada permintaan model yang dikirim ke penyedia, sehingga CPU per permintaan pada replika hanyalah perkiraan dan terbaca lebih rendah daripada di produksi, yang juga mengenkripsi lalu lintasnya ke penyedia. Konfirmasikan jumlah replika dengan pilot kecil terhadap penyedia sebenarnya. Sebelum v2.1.283, perkiraan tersebut terbaca jauh lebih rendah.1656Tidak ada permintaan model yang dikirim ke penyedia, sehingga CPU per permintaan pada replika hanyalah perkiraan dan terbaca lebih rendah daripada di produksi, yang juga mengenkripsi lalu lintasnya ke penyedia. Konfirmasikan jumlah replika dengan pilot kecil terhadap penyedia sebenarnya. Sebelum v2.1.283, perkiraan tersebut terbaca jauh lebih rendah.

1657 1657 

Details

202>202>

203> Setiap permintaan terbuka menyimpan memori dalam proses gateway sementara itu streaming dan sementara menunggu slot. Jika Anda menyimpan batas pada 256, memori pada replika yang kelebihan beban masih tumbuh, karena permintaan yang menunggu menyimpan badan permintaan mereka. Ukuran memori kontainer untuk jumlah permintaan terbuka di puncak, dan pantau memori ketika Anda mengubah batas. Replika yang kehabisan memori dibunuh dan menjatuhkan setiap aliran yang dipegang.203> Setiap permintaan terbuka menyimpan memori dalam proses gateway sementara itu streaming dan sementara menunggu slot. Jika Anda menyimpan batas pada 256, memori pada replika yang kelebihan beban masih tumbuh, karena permintaan yang menunggu menyimpan badan permintaan mereka. Ukuran memori kontainer untuk jumlah permintaan terbuka di puncak, dan pantau memori ketika Anda mengubah batas. Replika yang kehabisan memori dibunuh dan menjatuhkan setiap aliran yang dipegang.

204 204 

205Dalam uji beban dengan [`load_test_mode`](https://code.claude.com/docs/id/claude-apps-gateway-config#load_test_mode), permintaan tidak menunggu pada batas ini, tetapi replika tetap mencatat peringatan `client requests are open`.

206 

205### Pertahankan `API_TIMEOUT_MS` di atas waktu hingga byte pertama gateway207### Pertahankan `API_TIMEOUT_MS` di atas waktu hingga byte pertama gateway

206 208 

207Jika Anda menurunkan [`API_TIMEOUT_MS`](https://code.claude.com/docs/id/network-config#streaming-idle-watchdogs) untuk mencoba ulang permintaan yang tidak terjawab lebih cepat, pertahankan nilainya di atas waktu yang dibutuhkan gateway untuk mengirim byte pertama dari respons streaming. Permintaan yang menunggu lebih lama akan mengalami timeout, begitu pula setiap retry yang menunggu selama itu, hingga giliran berakhir dengan `Request timed out` kecuali [tenggat byte pertama](#retry-an-unanswered-request-sooner-with-the-first-byte-deadline) mengakhirinya.209Jika Anda menurunkan [`API_TIMEOUT_MS`](https://code.claude.com/docs/id/network-config#streaming-idle-watchdogs) untuk mencoba ulang permintaan yang tidak terjawab lebih cepat, pertahankan nilainya di atas waktu yang dibutuhkan gateway untuk mengirim byte pertama dari respons streaming. Permintaan yang menunggu lebih lama akan mengalami timeout, begitu pula setiap retry yang menunggu selama itu, hingga giliran berakhir dengan `Request timed out` kecuali [tenggat byte pertama](#retry-an-unanswered-request-sooner-with-the-first-byte-deadline) mengakhirinya.

Details

628 628 

629* [Referensi konfigurasi](https://code.claude.com/docs/id/claude-apps-gateway-config.md): setiap opsi `gateway.yaml`, termasuk `managed.policies` dan `telemetry`629* [Referensi konfigurasi](https://code.claude.com/docs/id/claude-apps-gateway-config.md): setiap opsi `gateway.yaml`, termasuk `managed.policies` dan `telemetry`

630* [Deployment dan operasi](https://code.claude.com/docs/id/claude-apps-gateway-deploy.md): pengaturan IdP, pemeriksaan kesehatan, rotasi rahasia JWT, upgrade, dan model keamanan630* [Deployment dan operasi](https://code.claude.com/docs/id/claude-apps-gateway-deploy.md): pengaturan IdP, pemeriksaan kesehatan, rotasi rahasia JWT, upgrade, dan model keamanan

631* [Mode uji beban](https://code.claude.com/docs/id/claude-apps-gateway-config.md#load_test_mode): melakukan uji beban pada gateway tanpa memanggil penyedia model

631* [Gambaran umum gateway aplikasi Claude](https://code.claude.com/docs/id/claude-apps-gateway): quickstart dan menghubungkan pengembang632* [Gambaran umum gateway aplikasi Claude](https://code.claude.com/docs/id/claude-apps-gateway): quickstart dan menghubungkan pengembang

632* [Sampel AWS untuk gateway aplikasi Claude](https://github.com/aws-samples/anthropic-on-aws/tree/main/claude-apps-gateway): sampel yang dipertahankan AWS mencakup berbagai lingkungan pelanggan633* [Sampel AWS untuk gateway aplikasi Claude](https://github.com/aws-samples/anthropic-on-aws/tree/main/claude-apps-gateway): sampel yang dipertahankan AWS mencakup berbagai lingkungan pelanggan

Details

316 316 

317* [Referensi konfigurasi](https://code.claude.com/docs/id/claude-apps-gateway-config.md): setiap opsi `gateway.yaml`, termasuk `managed.policies` dan `telemetry`317* [Referensi konfigurasi](https://code.claude.com/docs/id/claude-apps-gateway-config.md): setiap opsi `gateway.yaml`, termasuk `managed.policies` dan `telemetry`

318* [Penyebaran dan operasi](https://code.claude.com/docs/id/claude-apps-gateway-deploy.md): penyiapan IdP, pemeriksaan kesehatan, rotasi rahasia JWT, upgrade, dan model keamanan318* [Penyebaran dan operasi](https://code.claude.com/docs/id/claude-apps-gateway-deploy.md): penyiapan IdP, pemeriksaan kesehatan, rotasi rahasia JWT, upgrade, dan model keamanan

319* [Mode uji beban](https://code.claude.com/docs/id/claude-apps-gateway-config.md#load_test_mode): melakukan uji beban pada gateway tanpa memanggil penyedia model

319* [Gambaran umum gateway aplikasi Claude](https://code.claude.com/docs/id/claude-apps-gateway): quickstart dan menghubungkan pengembang320* [Gambaran umum gateway aplikasi Claude](https://code.claude.com/docs/id/claude-apps-gateway): quickstart dan menghubungkan pengembang

Details

95Batasi project ke satu aliran pekerjaan yang akan terus Anda tambahkan, seperti semua yang diperlukan untuk menjaga satu API di bawah target latensinya. [Kapan menggunakan project](#when-to-use-a-project) memiliki lebih banyak contoh. Kemudian isi bidang dialog:95Batasi project ke satu aliran pekerjaan yang akan terus Anda tambahkan, seperti semua yang diperlukan untuk menjaga satu API di bawah target latensinya. [Kapan menggunakan project](#when-to-use-a-project) memiliki lebih banyak contoh. Kemudian isi bidang dialog:

96 96 

97* **Name**: bagaimana project muncul di daftar **Projects**.97* **Name**: bagaimana project muncul di daftar **Projects**.

98* **Goal** (opsional): satu baris tentang apa yang Anda coba capai, seperti "Pertahankan latensi API p95 di bawah 200 ms". Claude dalam percakapan bekerja menuju itu. Tanpa tujuan, Claude bekerja dari tugas yang Anda kirim, dan Anda dapat menambahkan tujuan nanti di **Project settings > General**.98* **What do you want to work on?** (opsional): satu baris yang menjadi tujuan project, seperti "Pertahankan latensi API p95 di bawah 200 ms". Claude dalam percakapan bekerja menuju itu. Tanpa tujuan, Claude bekerja dari tugas yang Anda kirim, dan Anda dapat menambahkan tujuan nanti di **Project settings > General**.

99* **Context** (opsional): repositori GitHub yang dikerjakan project ini, ditambah file, folder, atau folder Google Drive apa pun yang harus dibaca thread. Klik **Add** untuk masing-masing. Tambahkan repositori yang paling banyak dibutuhkan tugas daripada setiap yang mungkin disentuh pekerjaan; [Tentukan repositori mana yang akan ditambahkan](#decide-which-repositories-to-add) mencakup pilihan, dan Anda dapat menambahkan lebih banyak nanti di **Project settings > Environment**.99* **Context** (opsional): repositori GitHub yang dikerjakan project ini, ditambah file, folder, atau folder Google Drive apa pun yang harus dibaca thread. Klik **Add** untuk masing-masing. Tambahkan repositori yang paling banyak dibutuhkan tugas daripada setiap yang mungkin disentuh pekerjaan; [Tentukan repositori mana yang akan ditambahkan](#decide-which-repositories-to-add) mencakup pilihan, dan Anda dapat menambahkan lebih banyak nanti di **Project settings > Environment**.

100 100 

101Aturan berdiri tentang cara thread harus bekerja masuk ke [project instructions](#give-a-project-standing-context), yang Anda atur setelah project ada.101Aturan berdiri tentang cara thread harus bekerja masuk ke [project instructions](#give-a-project-standing-context), yang Anda atur setelah project ada.


388| Plugins | Plugins | Plugins yang dimuat ke setiap thread baru |388| Plugins | Plugins | Plugins yang dimuat ke setiap thread baru |

389| Usage | Usage | [Penggunaan token](#usage-and-cost) berdasarkan thread dan model |389| Usage | Usage | [Penggunaan token](#usage-and-cost) berdasarkan thread dan model |

390| Memory | Memory | File [memory](#give-a-project-standing-context) project |390| Memory | Memory | File [memory](#give-a-project-standing-context) project |

391| Auto-continue when usage limits reset | General | Apakah thread atau percakapan project yang [berhenti pada batas penggunaan](#usage-limit-reached) berlanjut dengan sendirinya ketika batas tersebut direset. Aktif secara default. |

391| Restart Claude | General | Memulai ulang percakapan project ketika [Claude berhenti merespons di sana](#claude-hasnt-responded) |392| Restart Claude | General | Memulai ulang percakapan project ketika [Claude berhenti merespons di sana](#claude-hasnt-responded) |

392| Pause, Archive, Delete | General | Menghentikan, menyembunyikan, atau menghapus project; lihat [Pause, archive, atau delete project](#pause-archive-or-delete-a-project) |393| Pause, Archive, Delete | General | Menghentikan, menyembunyikan, atau menghapus project; lihat [Pause, archive, atau delete project](#pause-archive-or-delete-a-project) |

393 394 


403 404 

404Penggunaan project dihitung terhadap [batas paket](https://code.claude.com/docs/id/errors.md#youve-hit-your-session-limit) yang sama dengan sesi Claude Code lainnya Anda, dan project tidak dapat menghabiskan melampaui batas itu sendiri.405Penggunaan project dihitung terhadap [batas paket](https://code.claude.com/docs/id/errors.md#youve-hit-your-session-limit) yang sama dengan sesi Claude Code lainnya Anda, dan project tidak dapat menghabiskan melampaui batas itu sendiri.

405 406 

406Thread yang mencapai batas paket Anda menunggu dan berlanjut sendiri ketika batas direset, jadi pekerjaan yang Anda tinggalkan berjalan mulai menggunakan jendela penggunaan berikutnya tanpa pesan dari Anda. [Thread mencapai batas penggunaan](#usage-limit-reached) mencakup apa yang Anda lihat, cara menghentikannya, dan satu kasus yang tidak menunggu.407Thread yang berhenti pada batas paket Anda akan menunggu dan secara default berlanjut sendiri ketika batas direset. Pekerjaannya kemudian dihitung terhadap jendela penggunaan Anda berikutnya. Untuk mencegah thread berlanjut, lihat [Thread mencapai batas penggunaan](#usage-limit-reached).

407 408 

408Pekerjaan melampaui batas paket Anda hanya jika Anda telah mengaktifkan [usage credits](https://code.claude.com/docs/id/costs.md#add-usage-credits-to-your-subscription) untuk akun Anda. Thread tidak dapat mengaktifkannya untuk Anda.409Pekerjaan melampaui batas paket Anda hanya jika Anda telah mengaktifkan [usage credits](https://code.claude.com/docs/id/costs.md#add-usage-credits-to-your-subscription) untuk akun Anda. Thread tidak dapat mengaktifkannya untuk Anda.

409 410 


484 485 

485### Thread mencapai batas penggunaan486### Thread mencapai batas penggunaan

486 487 

487Ketika thread atau percakapan project mencapai batas lima jam atau mingguan paket Anda, itu terus mencoba ulang sendiri dan berlanjut ketika batas direset. Thread yang dimulai oleh tugas terjadwal tidak menunggu: giliran-nya berhenti dengan kesalahan batas, dan Anda mengirim pesan kepadanya setelah batas direset.488Ketika thread atau percakapan project berhenti pada batas lima jam atau mingguan paket Anda, thread atau percakapan tersebut menunggu dan secara default berlanjut dengan sendirinya ketika batas direset.

488 489 

489Saat menunggu, thread menunjukkan **Service is busy** dengan "Claude is still retrying and will continue automatically." Anda tidak perlu melakukan apa pun agar pekerjaan berlanjut. Jika Anda lebih suka tidak menggunakan jendela penggunaan berikutnya, klik **Stop** di thread, atau [pause project](#pause-archive-or-delete-a-project) untuk menahan setiap thread. [Usage limit errors](https://code.claude.com/docs/id/errors.md#youve-hit-your-session-limit) menjelaskan batas dan kapan mereka direset.490Untuk mencegah thread atau percakapan berlanjut pada waktu reset yang ditunjukkan pesannya, matikan **Auto-continue when usage limits reset** di [**Project settings > General**](#project-settings-reference) sebelum waktu tersebut. Pengaturan ini berlaku untuk seluruh project, bukan hanya thread yang sedang Anda lihat. Untuk melanjutkan dengan pengaturan dimatikan, kirim pesan ke thread atau percakapan tersebut setelah reset. [Usage limit errors](https://code.claude.com/docs/id/errors.md#youve-hit-your-session-limit) menjelaskan batas dan kapan batas tersebut direset.

490 491 

491### Kredit penggunaan tambahan diperlukan492### Kredit penggunaan tambahan diperlukan

492 493 


509| "Unable to connect to repository" dengan "Claude couldn't access your repository or environment" | Akun GitHub Anda membutuhkan akses push ke repositori, dan environment harus masih ada. Periksa keduanya di **Project settings > Environment**, lalu coba lagi |510| "Unable to connect to repository" dengan "Claude couldn't access your repository or environment" | Akun GitHub Anda membutuhkan akses push ke repositori, dan environment harus masih ada. Periksa keduanya di **Project settings > Environment**, lalu coba lagi |

510| "Couldn't show the setup proposal" | Aplikasi yang Anda buka lebih lama dari **Setup recommendations** yang dikirim Claude. Segarkan halaman atau mulai ulang aplikasi desktop, atau minta Claude untuk mengusulkan setup lagi |511| "Couldn't show the setup proposal" | Aplikasi yang Anda buka lebih lama dari **Setup recommendations** yang dikirim Claude. Segarkan halaman atau mulai ulang aplikasi desktop, atau minta Claude untuk mengusulkan setup lagi |

511| "The project's environment was removed" | Pilih environment berbeda di **Project settings > Environment**; perubahan berlaku untuk thread baru |512| "The project's environment was removed" | Pilih environment berbeda di **Project settings > Environment**; perubahan berlaku untuk thread baru |

512| "Setup script failed" | Klik **Edit setup script** pada kesalahan, perbaiki skrip di environment, lalu kirim pesan lain. [Setup script failed](https://code.claude.com/docs/id/web-quickstart.md#setup-script-failed) mencantumkan penyebab umum |513| "Setup script failed" | [Setup script failed](https://code.claude.com/docs/id/web-quickstart.md#setup-script-failed) mencantumkan penyebab umum. Perbaiki skrip di environment, lalu minta Claude dalam percakapan project untuk menjalankan tugas di thread baru, sehingga skrip berjalan lagi |

513| "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 |514| "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 |

514| "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 |515| "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 |

515| "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 |516| "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 |

Details

120 120 

121Pilih **Add secret**, yang berlabel **Add** di pengaturan admin, dan isi formulir. Pertahankan **Secret type** default, **Bearer**, untuk kunci API yang berjalan di header permintaan, dan isi bidang ini:121Pilih **Add secret**, yang berlabel **Add** di pengaturan admin, dan isi formulir. Pertahankan **Secret type** default, **Bearer**, untuk kunci API yang berjalan di header permintaan, dan isi bidang ini:

122 122 

123* **Name**: label untuk rahasia, seperti `Internal billing API`

124* **Allowed websites**: host API, seperti `api.example.com`. `*.` di depan cocok dengan setiap subdomain123* **Allowed websites**: host API, seperti `api.example.com`. `*.` di depan cocok dengan setiap subdomain

125* **Custom headers**: satu baris untuk header yang membawa kunci. Baris dimulai dengan `Authorization` sebagai **Name** header dan `Bearer` sebagai **Prefix**; tempel kunci itu sendiri sebagai **Value**. Untuk header seperti `X-Api-Key` yang mengambil nilai telanjang, ubah nama dan kosongkan prefix124* **Custom headers**: satu baris untuk header yang membawa kunci. Baris tersebut sudah berisi `Authorization` sebagai **Header name** dan `Bearer` sebagai **Prefix**; tempel kunci itu sendiri sebagai **Value**. Untuk header seperti `X-Api-Key` yang mengambil nilai telanjang, ubah nama dan kosongkan prefix

126 125 

127Untuk API yang mengautentikasi dengan cara lain, pilih **Secret type** yang berbeda. Daftar adalah yang sama yang ditawarkan [Claude Tag](https://claude.com/docs/claude-tag/overview), integrasi Slack untuk paket Team dan Enterprise, untuk [koneksi](https://claude.com/docs/claude-tag/admins/add-connections).126Untuk API yang mengautentikasi dengan cara lain, pilih **Secret type** yang berbeda. Daftar adalah yang sama yang ditawarkan [Claude Tag](https://claude.com/docs/claude-tag/overview), integrasi Slack untuk paket Team dan Enterprise, untuk [koneksi](https://claude.com/docs/claude-tag/admins/add-connections).

128 127 


137Jika Anda menggunakan paket Team atau Enterprise dan tidak memegang [peran admin organisasi](#requirements), formulir **Add secret** menerima satu rahasia untuk satu host. Pilih [baris **Network secrets**](#add-a-credential) lingkungan Anda, lalu **Add secret**. Isi bidang-bidang ini dan pilih tombol **Add secret** pada formulir:136Jika Anda menggunakan paket Team atau Enterprise dan tidak memegang [peran admin organisasi](#requirements), formulir **Add secret** menerima satu rahasia untuk satu host. Pilih [baris **Network secrets**](#add-a-credential) lingkungan Anda, lalu **Add secret**. Isi bidang-bidang ini dan pilih tombol **Add secret** pada formulir:

138 137 

139* **Host**: satu host yang mendapatkan rahasia, seperti `api.example.com`. Formulir tidak menerima wildcard `*.`138* **Host**: satu host yang mendapatkan rahasia, seperti `api.example.com`. Formulir tidak menerima wildcard `*.`

140* **Name**: label opsional untuk rahasia139* **Secret type**: **Token** untuk kunci yang berjalan di header permintaan, atau **Username and password**. Untuk token, tempel kunci di bidang **Token**. Untuk header selain `Authorization`, seperti `X-Api-Key`, ubah **Header** menjadi nama header tersebut

141* **Secret type**: **Token** untuk kunci yang berjalan di header permintaan, atau **Username and password**. Untuk token, tempel kunci sebagai **Value**

142 140 

143#### Permintaan mana yang mendapatkan rahasia141#### Permintaan mana yang mendapatkan rahasia

144 142 


445 443 

446Skrip setup memiliki empat batasan untuk ditulis:444Skrip setup memiliki empat batasan untuk ditulis:

447 445 

448* **Exit zero**: jika skrip keluar non-zero, sesi gagal dimulai. Tambahkan `|| true` ke perintah non-kritis sehingga kegagalan instalasi sesekali tidak memblokir sesi.446* **Exit zero**: jika skrip keluar non-zero, sesi [gagal dimulai](https://code.claude.com/docs/id/web-quickstart.md#setup-script-failed) atau dimulai tanpa apa pun yang gagal diinstal oleh skrip. Tambahkan `|| true` ke perintah non-kritis sehingga kegagalan instalasi sesekali tidak membuat skrip gagal.

449* **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](https://code.claude.com/docs/id/web-quickstart.md#new-sessions-hang-or-time-out-during-setup).447* **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](https://code.claude.com/docs/id/web-quickstart.md#new-sessions-hang-or-time-out-during-setup).

450* **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.448* **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.

451* **Variabel lingkungan belum diatur**: skrip berjalan sebelum sesi mengatur [environment variable](#set-environment-variables) lingkungan. Atur nilai apa pun yang dibutuhkan skrip di dalam skrip itu sendiri.449* **Variabel lingkungan belum diatur**: skrip berjalan sebelum sesi mengatur [environment variable](#set-environment-variables) lingkungan. Atur nilai apa pun yang dibutuhkan skrip di dalam skrip itu sendiri.

Details

25 25 

26## Gunakan REVIEW\.md untuk aturan khusus review26## Gunakan REVIEW\.md untuk aturan khusus review

27 27 

28`REVIEW.md` adalah file di root repositori Anda yang menyesuaikan Code Review dengan repositori Anda. Anda juga dapat menambahkan `REVIEW.md` di sebuah subdirektori untuk menambahkan pemeriksaan bagi perubahan di bawah path tersebut, di samping file root.28`REVIEW.md` adalah file di root repositori Anda yang menyesuaikan Code Review dengan repositori Anda. Pada [branch yang dilindungi](#what-a-review-reads-for-each-branch-setup), Anda juga dapat menambahkan `REVIEW.md` di [sebagian besar subdirektori](#when-a-subdirectory-review-md-doesnt-apply) untuk menambahkan pemeriksaan bagi perubahan di bawah subdirektori tersebut, di samping file root.

29 29 

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

31 31 


46>46>

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

48 48 

49### Ketika REVIEW\.md subdirektori tidak berlaku

50 

51Code Review tidak menerapkan `REVIEW.md` di dalam atau di bawah subdirektori yang memiliki salah satu nama berikut, apa pun isi subdirektori tersebut. Nama subdirektori hanya cocok secara utuh, dengan huruf besar-kecil apa pun dan pada kedalaman berapa pun, sehingga `Tests` cocok sedangkan `integration-tests` tidak:

52 

53* **Tes**: `test`, `tests`, `__tests__`, `testdata`, `fixtures`, `__fixtures__`, `golden`, `corpus`, `snapshots`, `__snapshots__`

54* **Contoh**: `example`, `examples`, `sample`, `samples`, `demo`, `demos`

55* **Kode yang dihasilkan**: `generated`

56* **Kode pihak ketiga**: `vendor`, `third_party`, `third-party`, `thirdparty`, `node_modules`, `bower_components`, `external`, `extern`, `deps`, `godeps`, `pods`, `carthage`, `site-packages`, `contrib`

57 

58Letakkan pemeriksaan untuk subdirektori tersebut di `REVIEW.md` root, atau di `REVIEW.md` subdirektori induk jika baik induk tersebut maupun apa pun di atasnya tidak ada dalam daftar.

59 

60File `REVIEW.md` subdirektori lainnya pada path yang diubah oleh pull request berbagi batas 150.000 byte, tidak termasuk file root. Jika [check run](https://code.claude.com/docs/id/code-review-pull-requests.md#check-run-output) melaporkan bahwa sebagian file tersebut tidak muat, persingkat file agar sesuai dengan batas tersebut.

61 

49### Contoh REVIEW\.md62### Contoh REVIEW\.md

50 63 

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


217 230 

218| Perlindungan branch | Salinan yang dibaca | File yang dibaca |231| Perlindungan branch | Salinan yang dibaca | File yang dibaca |

219| :- | :- | :- |232| :- | :- | :- |

220| Default branch dilindungi, dan pull request menargetkannya atau menargetkan branch yang tidak dilindungi ruleset mana pun | Default branch | File root, file yang disertakannya, dan file subdirektori |233| Default branch dilindungi, dan pull request menargetkannya atau menargetkan branch yang tidak dilindungi ruleset mana pun | Default branch | File root, file yang disertakannya, dan [sebagian besar file subdirektori](#when-a-subdirectory-review-md-doesnt-apply) |

221| Pull request menargetkan branch lain yang dilindungi oleh ruleset | Base branch tersebut | File root, file yang disertakannya, dan file subdirektori |234| Pull request menargetkan branch lain yang dilindungi oleh ruleset | Base branch tersebut | File root, file yang disertakannya, dan [sebagian besar file subdirektori](#when-a-subdirectory-review-md-doesnt-apply) |

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

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

224 237 

Details

4 4 

5# Uji aplikasi iOS di simulator5# Uji aplikasi iOS di simulator

6 6 

7> Claude Code Desktop membuka aplikasi Anda di pane iOS Simulator ketika Claude membangun, menjalankan, atau memeriksanya, dengan simulator terpisah untuk setiap sesi.7> Claude Code Desktop membuka aplikasi Anda di pane iOS Simulator ketika Claude mem-build, menjalankan, atau memeriksanya.

8 8 

9> [!NOTE]9> [!NOTE]

10>10>


63 63 

64Ketika aplikasi diluncurkan di simulator, pane iOS Simulator terbuka di samping percakapan. Pertama kali Claude menggunakan perangkat, aplikasi desktop meminta Anda untuk mengizinkannya; lihat [Berikan Claude akses ke perangkat](#grant-claude-access-to-a-device). Claude memasang aplikasi, mengetuk melaluinya, dan membaca layar untuk memverifikasi perubahannya sendiri sementara Anda menonton.64Ketika aplikasi diluncurkan di simulator, pane iOS Simulator terbuka di samping percakapan. Pertama kali Claude menggunakan perangkat, aplikasi desktop meminta Anda untuk mengizinkannya; lihat [Berikan Claude akses ke perangkat](#grant-claude-access-to-a-device). Claude memasang aplikasi, mengetuk melaluinya, dan membaca layar untuk memverifikasi perubahannya sendiri sementara Anda menonton.

65 65 

66Pane simulator terbuka setiap kali Claude meluncurkan aplikasi di simulator, pada titik mana pun dalam sesi. Ketika permintaan Anda adalah tentang melihat aplikasi, misalnya "apakah layar baru terlihat benar?", Claude memulai simulator sebelum mulai bekerja. Setelah Claude memperbaiki bug atau mengubah layar, minta Claude memverifikasi perubahan: meluncurkan ulang aplikasi membuka kembali pane jika tidak terbuka.66Ketika permintaan Anda adalah tentang melihat aplikasi, misalnya "apakah layar baru terlihat benar?", Claude memulai simulator sebelum mulai bekerja. Setelah Claude memperbaiki bug atau mengubah layar, minta Claude memverifikasi perubahan.

67 67 

68Pane 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.68Pane 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.

69 69 


86 86 

87Anda dan Claude mengendalikan perangkat yang sama, jadi ketukan Anda mengubah status aplikasi yang Claude lihat. Untuk membuat Claude memeriksa layar tertentu, navigasikan ke sana dengan mengetuk, lalu minta. Sementara Claude mengendalikan perangkat, pane menampilkan lencana **Claude is using this device** di atas layar; tahan mengetuk sampai lencana hilang, sehingga hasilnya mencerminkan aplikasi daripada input Anda.87Anda dan Claude mengendalikan perangkat yang sama, jadi ketukan Anda mengubah status aplikasi yang Claude lihat. Untuk membuat Claude memeriksa layar tertentu, navigasikan ke sana dengan mengetuk, lalu minta. Sementara Claude mengendalikan perangkat, pane menampilkan lencana **Claude is using this device** di atas layar; tahan mengetuk sampai lencana hilang, sehingga hasilnya mencerminkan aplikasi daripada input Anda.

88 88 

89### Meminimalkan atau menutup pane simulator

90 

91Anda dapat meminimalkan atau menutup pane simulator, dan Claude tetap dapat menggunakan perangkat dalam kedua kasus tersebut.

92 

93* Jika Anda meminimalkan pane, perangkat tetap terlihat dalam ukuran kecil. Untuk meminimalkan pane atau memperluasnya kembali, lihat [Meminimalkan pane](https://code.claude.com/docs/id/desktop.md#minimize-a-pane).

94* Jika Anda menutup pane berukuran penuh atau yang diminimalkan, perangkat tetap terpasang dan berjalan. Untuk menampilkan perangkat lagi, klik **iOS Simulator** di bilah judul sesi.

95 

89## Bagaimana sesi mengelola perangkat96## Bagaimana sesi mengelola perangkat

90 97 

91Setiap perangkat milik sesi yang meluncurkannya, jadi [parallel sessions](https://code.claude.com/docs/id/desktop.md#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.98Jika prompt Anda tidak menyebutkan nama simulator, Claude menggunakan simulator yang sudah berjalan, bahkan jika [sesi paralel](https://code.claude.com/docs/id/desktop.md#work-in-parallel-with-sessions) lain yang membukanya. Untuk memberikan setiap sesi simulatornya sendiri, sebutkan simulator yang berbeda di prompt setiap sesi.

92 99 

93Claude 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.100Claude 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.

94 101 


102 109 

103Setelah Anda mengizinkan perangkat, tindakan Claude di dalamnya, seperti mengetuk, mengetik, dan mengambil tangkapan layar, berjalan tanpa permintaan izin, tetapi Anda menyetujui peluncuran aplikasi sesuai yang diharuskan oleh [mode izin](#actions-that-follow-your-permission-mode) Anda. Tindakan tersebut membawa kepercayaan yang sama seperti Anda mengklik di pane, dan hanya menyentuh perangkat yang disimulasikan, jadi pane tidak memerlukan izin macOS Accessibility dan Screen Recording yang diperlukan computer use.110Setelah Anda mengizinkan perangkat, tindakan Claude di dalamnya, seperti mengetuk, mengetik, dan mengambil tangkapan layar, berjalan tanpa permintaan izin, tetapi Anda menyetujui peluncuran aplikasi sesuai yang diharuskan oleh [mode izin](#actions-that-follow-your-permission-mode) Anda. Tindakan tersebut membawa kepercayaan yang sama seperti Anda mengklik di pane, dan hanya menyentuh perangkat yang disimulasikan, jadi pane tidak memerlukan izin macOS Accessibility dan Screen Recording yang diperlukan computer use.

104 111 

105Jika Anda menolak, perangkat masih boot dan pane masih berfungsi untuk ketukan Anda sendiri; hanya akses Claude yang tetap mati. Untuk berubah pikiran nanti, klik **Let Claude use it** di pane.112Jika Anda menolak permintaan Claude, perangkat tidak terpasang dan Desktop tidak mem-boot-nya. Untuk menggunakan perangkat sendiri:

113 

1141. Klik **Attach simulator** di pane.

1152. Klik **Continue** di layar izin.

1163. Klik **Cancel** di dialog yang muncul berikutnya.

117 

118Perangkat terpasang dan berfungsi untuk ketukan Anda sendiri, dan akses Claude tetap mati. Setelah itu, untuk memberikan akses kepada Claude, klik **Let Claude use it** di pane.

106 119 

107### Tindakan yang mengikuti mode izin Anda120### Tindakan yang mengikuti mode izin Anda

108 121 

Details

53gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc53gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc

54```54```

55 55 

56Sidik jari yang dicetak gpg harus `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. Jika gpg melaporkan bahwa file tidak dapat dibuka atau tidak berisi data OpenPGP yang valid, unduhan gagal atau mengembalikan konten yang salah: konfirmasi jaringan Anda dapat menjangkau `downloads.claude.ai`, kemudian jalankan kembali perintah unduh.56Satu-satunya sidik jari yang dicetak gpg harus `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. Jika gpg melaporkan bahwa file tidak dapat dibuka atau tidak berisi data OpenPGP yang valid, unduhan gagal atau mengembalikan konten yang salah. Konfirmasi jaringan Anda dapat menjangkau `downloads.claude.ai`, kemudian jalankan kembali perintah unduh.

57 57 

58Daftarkan repositori:58Daftarkan repositori:

59 59 

Details

160 160 

161## Izin untuk tugas terjadwal161## Izin untuk tugas terjadwal

162 162 

163Setiap tugas memiliki mode izin sendiri, yang Anda atur saat membuat atau mengedit tugas. Aturan izin dari `~/.claude/settings.json` juga berlaku untuk sesi tugas terjadwal. Jika tugas berjalan dalam [Mode Manual](https://code.claude.com/docs/id/desktop.md#choose-a-permission-mode) dan perlu menjalankan tool yang tidak memiliki izin, run terhenti sampai Anda menyetujuinya. Untuk menyetujuinya, [temukan sesi run tersebut](#find-a-runs-session) dan jawab permintaan izin di sana.163Setiap tugas memiliki [mode izin](https://code.claude.com/docs/id/desktop.md#choose-a-permission-mode) sendiri, yang Anda atur saat membuat atau mengedit tugas. Aturan izin dari `~/.claude/settings.json` juga berlaku untuk sesi tugas terjadwal. Ketika sebuah run terhenti pada permintaan izin, [temukan sesi run tersebut](#find-a-runs-session) dan jawab permintaan izin di sana.

164 164 

165Untuk menghindari stall, klik **Run now** setelah membuat tugas, perhatikan prompt izin, dan pilih "always allow" untuk masing-masing. Run masa depan dari tugas itu auto-approve alat yang sama tanpa meminta. Anda dapat meninjau dan mencabut persetujuan ini dari halaman detail tugas.165Untuk menghindari stall, klik **Run now** setelah membuat tugas, perhatikan permintaan izin, dan pilih "always allow" untuk masing-masing. Run berikutnya akan melewati sebagian besar permintaan izin tersebut. Anda dapat meninjau dan mencabut persetujuan ini dari halaman detail tugas. Jika Anda memilih "always allow" pada pengeditan file di folder tugas, hanya sesi tersebut yang beralih ke **Accept edits**, jadi atur mode izin tugas ke **Accept edits**.

166 166 

167Alat MCP yang ditandai [`requiresUserInteraction`](https://code.claude.com/docs/id/mcp#require-approval-for-a-specific-tool) meminta pada setiap panggilan dan tidak menawarkan opsi always-allow. Run yang memanggil alat ini terhenti setiap kali.167Alat MCP yang ditandai [`requiresUserInteraction`](https://code.claude.com/docs/id/mcp#require-approval-for-a-specific-tool) meminta pada setiap panggilan dan tidak menawarkan opsi always-allow. Run yang memanggil alat ini terhenti setiap kali.

168 168 


179 179 

180Anda juga dapat membuat daftar, membuat, mengedit, dan menjeda tugas dengan meminta Claude dalam sesi Desktop apa pun. Misalnya, "jeda tugas dependency-audit saya" atau "tampilkan tugas terjadwal saya." Untuk menghapus tugas, gunakan tombol **Delete** di halaman detailnya.180Anda juga dapat membuat daftar, membuat, mengedit, dan menjeda tugas dengan meminta Claude dalam sesi Desktop apa pun. Misalnya, "jeda tugas dependency-audit saya" atau "tampilkan tugas terjadwal saya." Untuk menghapus tugas, gunakan tombol **Delete** di halaman detailnya.

181 181 

182Tugas terjadwal juga dapat memodifikasi jadwal atau prompt sendiri dari dalam sesi yang berjalan menggunakan alat MCP `update_scheduled_task`. Ini memungkinkan tugas untuk menjadwalkan ulang dirinya sendiri berdasarkan apa yang ditemukannya, misalnya, menjadwalkan ulang tinjauan kode untuk berjalan lebih awal ketika mendeteksi cabang rilis telah dibuat.182Untuk memungkinkan tugas mengubah jadwal atau prompt-nya sendiri dengan tool MCP `update_scheduled_task`, klik **Run now** dan setujui panggilan tersebut setiap kali.

183 183 

184Untuk mengedit prompt tugas di disk, buka `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (atau di bawah [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/id/env-vars) jika diatur). File menggunakan frontmatter YAML untuk `name` dan `description`, dengan prompt sebagai body. Perubahan berlaku pada run berikutnya. Schedule, folder, model, dan enabled state tidak ada dalam file ini: ubah melalui formulir Edit atau minta Claude.184Untuk mengedit prompt tugas di disk, buka `~/.claude/scheduled-tasks/<task-name>/SKILL.md` (atau di bawah [`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/id/env-vars) jika diatur). File menggunakan frontmatter YAML untuk `name` dan `description`, dengan prompt sebagai body. Perubahan berlaku pada run berikutnya. Schedule, folder, model, dan enabled state tidak ada dalam file ini: ubah melalui formulir Edit atau minta Claude.

185 185 

env-vars.md +5 −3

Details

221| `CLAUDE_CODE_CLIENT_CERT` | Path ke file sertifikat klien untuk autentikasi mTLS |221| `CLAUDE_CODE_CLIENT_CERT` | Path ke file sertifikat klien untuk autentikasi mTLS |

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

223| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase untuk CLAUDE\_CODE\_CLIENT\_KEY yang dienkripsi (opsional) |223| `CLAUDE_CODE_CLIENT_KEY_PASSPHRASE` | Passphrase untuk CLAUDE\_CODE\_CLIENT\_KEY yang dienkripsi (opsional) |

224| `CLAUDE_CODE_CONFIG_LOCK_WAIT_MS` | Milidetik di mana perintah yang menambahkan atau menghapus server MCP dengan cakupan `user` atau `local`, seperti `claude mcp add`, terus mencoba mendapatkan kunci pada `~/.claude.json` sebelum [gagal](https://code.claude.com/docs/id/errors.md#mcp-server-was-not-saved-or-removed). Jika tidak ditetapkan, perintah menunggu sekitar 10 hingga 20 detik, dan nilai yang lebih pendek tidak mengubah apa pun. Memerlukan Claude Code v2.1.318 atau yang lebih baru |

224| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Dihapus di v2.1.186 dan sekarang tidak berpengaruh. Sebelumnya menetapkan timeout terpisah untuk fase koneksi, TLS, dan header respons dari permintaan API streaming. Gunakan `API_TIMEOUT_MS` sebagai gantinya. Untuk fase header respons dari permintaan streaming, lihat `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |225| `CLAUDE_CODE_CONNECT_TIMEOUT_MS` | Dihapus di v2.1.186 dan sekarang tidak berpengaruh. Sebelumnya menetapkan timeout terpisah untuk fase koneksi, TLS, dan header respons dari permintaan API streaming. Gunakan `API_TIMEOUT_MS` sebagai gantinya. Untuk fase header respons dari permintaan streaming, lihat `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` |

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

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


277| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Atur ke `1` untuk mematikan tool [WebFetch](https://code.claude.com/docs/id/tools-reference.md#webfetch-tool-behavior). Tool [WebSearch](https://code.claude.com/docs/id/tools-reference.md#websearch-tool-behavior) tetap tersedia. Memerlukan Claude Code v2.1.285 atau yang lebih baru |278| `CLAUDE_CODE_DISABLE_WEB_FETCH` | Atur ke `1` untuk mematikan tool [WebFetch](https://code.claude.com/docs/id/tools-reference.md#webfetch-tool-behavior). Tool [WebSearch](https://code.claude.com/docs/id/tools-reference.md#websearch-tool-behavior) tetap tersedia. Memerlukan Claude Code v2.1.285 atau yang lebih baru |

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

279| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Atur ke `1` untuk menonaktifkan [workflow](https://code.claude.com/docs/id/workflows.md#turn-workflows-off). Setara dengan pengaturan [`disableWorkflows`](https://code.claude.com/docs/id/settings-reference#disableworkflows) |280| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Atur ke `1` untuk menonaktifkan [workflow](https://code.claude.com/docs/id/workflows.md#turn-workflows-off). Setara dengan pengaturan [`disableWorkflows`](https://code.claude.com/docs/id/settings-reference#disableworkflows) |

281| `CLAUDE_CODE_DROP_UNAVAILABLE_DEFERRED_TOOL` | Atur ke `1` untuk membuang [panggilan tool yang ditangguhkan](https://code.claude.com/docs/id/hooks.md#resume-when-a-deferred-tool-is-unavailable) yang tool-nya tidak tersedia ketika Anda melanjutkan dengan `-p`. Tanpa variabel ini, panggilan tetap tertunda dan prompt yang Anda kirim tidak sampai ke Claude. Memerlukan Claude Code v2.1.319 atau lebih baru |

280| `CLAUDE_CODE_EFFORT_LEVEL` | Atur tingkat effort untuk model yang didukung. Nilai: `low`, `medium`, `high`, `xhigh`, atau `max`. Tingkat yang tersedia bergantung pada model. Diutamakan daripada `--effort`, `/effort`, serta pengaturan `modelSettings` dan `effortLevel`. Batas [`maxEffortLevel`](https://code.claude.com/docs/id/settings-reference#maxeffortlevel) tetap berlaku. Atur ke `auto` atau `unset` agar Claude Code [tidak mengirim tingkat effort](https://code.claude.com/docs/id/model-config.md#send-no-effort-level), sehingga API menerapkan default-nya sendiri untuk model tersebut. Lihat [Menyesuaikan tingkat effort](https://code.claude.com/docs/id/model-config.md#adjust-effort-level) |282| `CLAUDE_CODE_EFFORT_LEVEL` | Atur tingkat effort untuk model yang didukung. Nilai: `low`, `medium`, `high`, `xhigh`, atau `max`. Tingkat yang tersedia bergantung pada model. Diutamakan daripada `--effort`, `/effort`, serta pengaturan `modelSettings` dan `effortLevel`. Batas [`maxEffortLevel`](https://code.claude.com/docs/id/settings-reference#maxeffortlevel) tetap berlaku. Atur ke `auto` atau `unset` agar Claude Code [tidak mengirim tingkat effort](https://code.claude.com/docs/id/model-config.md#send-no-effort-level), sehingga API menerapkan default-nya sendiri untuk model tersebut. Lihat [Menyesuaikan tingkat effort](https://code.claude.com/docs/id/model-config.md#adjust-effort-level) |

281| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Atur ke `1` untuk menambahkan pesan [`session_state_changed`](https://code.claude.com/docs/id/agent-sdk/typescript#sdksessionstatechangedmessage), yang membawa status sesi, ke aliran pesan. Memerlukan [Agent SDK](https://code.claude.com/docs/id/agent-sdk/overview.md) atau `--print`, `--output-format stream-json`, dan `--verbose` |283| `CLAUDE_CODE_EMIT_SESSION_STATE_EVENTS` | Atur ke `1` untuk menambahkan pesan [`session_state_changed`](https://code.claude.com/docs/id/agent-sdk/typescript#sdksessionstatechangedmessage), yang membawa status sesi, ke aliran pesan. Memerlukan [Agent SDK](https://code.claude.com/docs/id/agent-sdk/overview.md) atau `--print`, `--output-format stream-json`, dan `--verbose` |

282| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Diterima untuk kompatibilitas dengan rilis lama dan tidak berpengaruh. Auto mode tersedia secara default di setiap penyedia, termasuk Amazon Bedrock, Agent Platform milik Google Cloud, Microsoft Foundry, dan sesi [Claude apps gateway](https://code.claude.com/docs/id/claude-apps-gateway) yang sudah login. Pada v2.1.158 hingga v2.1.206, mengatur ini ke `1` diperlukan agar [auto mode](https://code.claude.com/docs/id/permission-modes.md#eliminate-prompts-with-auto-mode) tersedia di penyedia tersebut |284| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Diterima untuk kompatibilitas dengan rilis lama dan tidak berpengaruh. Auto mode tersedia secara default di setiap penyedia, termasuk Amazon Bedrock, Agent Platform milik Google Cloud, Microsoft Foundry, dan sesi [Claude apps gateway](https://code.claude.com/docs/id/claude-apps-gateway) yang sudah login. Pada v2.1.158 hingga v2.1.206, mengatur ini ke `1` diperlukan agar [auto mode](https://code.claude.com/docs/id/permission-modes.md#eliminate-prompts-with-auto-mode) tersedia di penyedia tersebut |


295| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | Atur ke `1` untuk [menjalankan perintah `rm` berbahaya tanpa permintaan izin](https://code.claude.com/docs/id/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) dalam mode `bypassPermissions`, yang menghapus permintaan izin keamanan untuk penghapusan destruktif. Bagian yang ditautkan mencantumkan di mana variabel ini tidak berpengaruh. [Atur di environment yang meluncurkan Claude Code](#set-variables-in-your-shell), karena Claude Code [mengabaikannya dalam blok `env` pengaturan](https://code.claude.com/docs/id/settings-reference#variables-claude-code-ignores-in-env). Memerlukan Claude Code v2.1.311 atau yang lebih baru |297| `CLAUDE_CODE_EVEN_MORE_DANGEROUSLY_SKIP_PERMISSIONS` | Atur ke `1` untuk [menjalankan perintah `rm` berbahaya tanpa permintaan izin](https://code.claude.com/docs/id/permission-modes#turn-off-the-critical-path-removal-prompt-in-bypasspermissions-mode) dalam mode `bypassPermissions`, yang menghapus permintaan izin keamanan untuk penghapusan destruktif. Bagian yang ditautkan mencantumkan di mana variabel ini tidak berpengaruh. [Atur di environment yang meluncurkan Claude Code](#set-variables-in-your-shell), karena Claude Code [mengabaikannya dalam blok `env` pengaturan](https://code.claude.com/docs/id/settings-reference#variables-claude-code-ignores-in-env). Memerlukan Claude Code v2.1.311 atau yang lebih baru |

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

297| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Atur ke `1` untuk mengaktifkan [tim agent](https://code.claude.com/docs/id/agent-teams.md). Tim agent bersifat eksperimental dan dinonaktifkan secara default |299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Atur ke `1` untuk mengaktifkan [tim agent](https://code.claude.com/docs/id/agent-teams.md). Tim agent bersifat eksperimental dan dinonaktifkan secara default |

298| `CLAUDE_CODE_EXTRA_BODY` | Objek JSON untuk digabungkan ke tingkat teratas setiap body permintaan API. Berguna untuk meneruskan parameter khusus penyedia yang tidak diekspos langsung oleh Claude Code. Nilai yang diekspor di shell Anda juga berlaku untuk [sesi latar belakang](https://code.claude.com/docs/id/agent-view.md) yang Anda jalankan dengan `claude agents` atau `--bg`. Sebelum v2.1.206, sesi latar belakang mengabaikan nilai yang diekspor dari shell dan menggunakan salinan apa pun yang diwarisi proses supervisor latar belakang |300| `CLAUDE_CODE_EXTRA_BODY` | Objek JSON untuk digabungkan ke level teratas body permintaan model kecuali pada beberapa permintaan di luar percakapan, seperti pemeriksaan `/model`. Berguna untuk meneruskan parameter khusus penyedia yang tidak diekspos langsung oleh Claude Code. Nilai yang diekspor di shell Anda juga berlaku untuk [sesi latar belakang](https://code.claude.com/docs/id/agent-view.md) yang Anda jalankan dengan `claude agents` atau `--bg`. Sebelum v2.1.206, sesi latar belakang mengabaikan nilai yang diekspor shell dan menggunakan salinan apa pun yang diwarisi oleh proses supervisor latar belakang |

299| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Menimpa batas token default untuk [pembacaan file](https://code.claude.com/docs/id/tools-reference.md#large-files), yaitu 25.000 token. Berguna ketika Anda perlu membaca file yang lebih besar secara penuh. Pembacaan yang dilakukan Claude dengan parameter `allow_large` dapat melampaui batas ini ketika context window masih memiliki ruang |301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | Menimpa batas token default untuk [pembacaan file](https://code.claude.com/docs/id/tools-reference.md#large-files), yaitu 25.000 token. Berguna ketika Anda perlu membaca file yang lebih besar secara penuh. Pembacaan yang dilakukan Claude dengan parameter `allow_large` dapat melampaui batas ini ketika context window masih memiliki ruang |

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

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


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

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

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

316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Atur ke `1` untuk mencegah `/ide` menginstal ekstensi IDE. Setara dengan mengatur [`autoInstallIdeExtension`](https://code.claude.com/docs/id/settings-reference#autoinstallideextension) ke `false` |318| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | Atur ke `1` untuk menghentikan `/ide` dari menginstal ekstensi IDE. Setara dengan mengatur [`autoInstallIdeExtension`](https://code.claude.com/docs/id/settings-reference#autoinstallideextension) ke `false`. Versi Claude Code sebelum v2.1.318 juga menginstal atau memperbarui ekstensi saat Anda memulai `claude` di terminal VS Code, Cursor, atau Devin Desktop. Variabel ini juga menghentikan hal tersebut |

317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Atur ke `1` untuk melewati validasi entri lockfile IDE selama koneksi. Gunakan ketika auto-connect gagal menemukan IDE Anda meskipun sedang berjalan |319| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | Atur ke `1` untuk melewati validasi entri lockfile IDE selama koneksi. Gunakan ketika auto-connect gagal menemukan IDE Anda meskipun sedang berjalan |

318| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Ukuran konteks, dalam token, di mana [idle compaction](https://code.claude.com/docs/id/settings-reference.md#idlecompaction) berlaku untuk percakapan (default: `200000`). Menerima bilangan bulat positif, dan nilai lain diabaikan. Nilai di bawah `100000` dinaikkan menjadi `100000`, ambang terendah. Idle compaction aktif secara default untuk percakapan yang memenuhi syaratnya. Untuk mematikannya, atur `idleCompaction` ke `false`. Memerlukan Claude Code v2.1.290 atau yang lebih baru |320| `CLAUDE_CODE_IDLE_COMPACT_MIN_TOKENS` | Ukuran konteks, dalam token, di mana [idle compaction](https://code.claude.com/docs/id/settings-reference.md#idlecompaction) berlaku untuk percakapan (default: `200000`). Menerima bilangan bulat positif, dan nilai lain diabaikan. Nilai di bawah `100000` dinaikkan menjadi `100000`, ambang terendah. Idle compaction aktif secara default untuk percakapan yang memenuhi syaratnya. Untuk mematikannya, atur `idleCompaction` ke `false`. Memerlukan Claude Code v2.1.290 atau yang lebih baru |

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


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

487| `MCP_DISCOVERY_CACHE_TTL_S` | Jumlah detik selama Claude Code menggunakan entri [discovery cache](https://code.claude.com/docs/id/mcp.md#server-status-detail) tanpa menyegarkannya (default: 900). Pada startup di mana entri lebih tua dari itu, Claude Code tetap menggunakannya tetapi menyegarkannya di latar belakang. Begitu entri lebih tua dari `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code justru membuangnya. Claude Code membatasi nilainya pada `MCP_DISCOVERY_CACHE_MAX_STALE_S`, yaitu 4 jam secara default. Sebelum v2.1.238, Claude Code tidak membatasi nilainya |489| `MCP_DISCOVERY_CACHE_TTL_S` | Jumlah detik selama Claude Code menggunakan entri [discovery cache](https://code.claude.com/docs/id/mcp.md#server-status-detail) tanpa menyegarkannya (default: 900). Pada startup di mana entri lebih tua dari itu, Claude Code tetap menggunakannya tetapi menyegarkannya di latar belakang. Begitu entri lebih tua dari `MCP_DISCOVERY_CACHE_MAX_STALE_S`, Claude Code justru membuangnya. Claude Code membatasi nilainya pada `MCP_DISCOVERY_CACHE_MAX_STALE_S`, yaitu 4 jam secara default. Sebelum v2.1.238, Claude Code tidak membatasi nilainya |

488| `MCP_OAUTH_CALLBACK_PORT` | Port tetap untuk callback redirect OAuth, sebagai alternatif `--callback-port` saat menambahkan server MCP dengan [kredensial yang telah dikonfigurasi sebelumnya](https://code.claude.com/docs/id/mcp.md#use-pre-configured-oauth-credentials) |490| `MCP_OAUTH_CALLBACK_PORT` | Port tetap untuk callback redirect OAuth, sebagai alternatif `--callback-port` saat menambahkan server MCP dengan [kredensial yang telah dikonfigurasi sebelumnya](https://code.claude.com/docs/id/mcp.md#use-pre-configured-oauth-credentials) |

489| `MCP_PROTOCOL_NEGOTIATION` | Hanya pada [runtime klien MCP v2](https://code.claude.com/docs/id/mcp.md#mcp-client-runtimes), mengontrol apakah Claude Code memeriksa server untuk revisi protokol MCP 2026-07-28. Atur `legacy` untuk melewati pemeriksaan, sehingga setiap server terhubung dengan handshake dari sebelum revisi tersebut. Atur `auto` untuk memeriksa jenis server yang mendukung pemeriksaan: server HTTP dan stdio, konektor claude.ai, serta konektor sesi cloud dan Remote Control. Dengan variabel tidak diatur, Claude Code memeriksa jenis yang sama secara default; lihat [Runtime klien MCP](https://code.claude.com/docs/id/mcp.md#mcp-client-runtimes). Nilai lain diabaikan dengan peringatan di log debug. Memerlukan Claude Code v2.1.221 atau yang lebih baru |491| `MCP_PROTOCOL_NEGOTIATION` | Hanya pada [runtime klien MCP v2](https://code.claude.com/docs/id/mcp.md#mcp-client-runtimes), mengontrol apakah Claude Code memeriksa server untuk revisi protokol MCP 2026-07-28. Atur `legacy` untuk mempertahankan setiap server pada handshake sebelumnya, atau `auto` untuk memeriksa jenis server yang mendukungnya. Jika tidak diatur, Claude Code memeriksanya tetapi dapat [melewati beberapa server](https://code.claude.com/docs/id/mcp.md#mcp-client-runtimes). Nilai lain diabaikan dengan peringatan di log debug. Memerlukan Claude Code v2.1.221 atau yang lebih baru |

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

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

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

errors.md +27 −17

Details

61| `Could not resolve authentication method` | [Authentication](#could-not-resolve-authentication-method) |61| `Could not resolve authentication method` | [Authentication](#could-not-resolve-authentication-method) |

62| `Invalid API key` | [Authentication](#invalid-api-key) |62| `Invalid API key` | [Authentication](#invalid-api-key) |

63| `Your apiKeyHelper script is failing` | [Authentication](#your-apikeyhelper-script-is-failing) |63| `Your apiKeyHelper script is failing` | [Authentication](#your-apikeyhelper-script-is-failing) |

64| `Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect` | [Autentikasi](#claude-code-didnt-send-your-claude-ai-login) |64| `Your organization's settings need an update` | [Autentikasi](#claude-code-didnt-send-your-claude-ai-login) |

65| `Couldn't load your organization's settings. Check your connection` | [Autentikasi](#claude-code-didnt-send-your-claude-ai-login) |

66| `Restart Claude Code to finish signing in` | [Autentikasi](#claude-code-didnt-send-your-claude-ai-login) |

65| `Invalid auth token · Fix external auth token` | [Authentication](#invalid-request-header-value) |67| `Invalid auth token · Fix external auth token` | [Authentication](#invalid-request-header-value) |

66| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Authentication](#invalid-request-header-value) |68| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Authentication](#invalid-request-header-value) |

67| `Invalid request header from the environment · Fix the environment variable` | [Authentication](#invalid-request-header-value) |69| `Invalid request header from the environment · Fix the environment variable` | [Authentication](#invalid-request-header-value) |


1117 1119 

1118### Claude Code didn't send your claude.ai login1120### Claude Code didn't send your claude.ai login

1119 1121 

1120Kirimkan pesan lengkap ini kepada administrator Anda. Pesan ini mencantumkan perubahan yang dapat mereka lakukan. Pesan ini berarti Claude Code menolak prompt Anda. Selama Anda menggunakan login claude.ai Anda, Claude Code terus menolak prompt, bahkan setelah dimulai ulang:1122Pesan-pesan ini berarti Claude Code menolak permintaan Anda dan tidak mengirimkan login claude.ai Anda:

1121 1123 

1122```text theme={null}1124```text theme={null}

1123Claude Code didn't send your claude.ai login, because the API key helper your administrator set isn't in effect. Your organization's managed settings may be overriding it. Ask your administrator to keep the key helper and its API address in effect, to name Anthropic's API address in those managed settings, or to remove the key helper. Run /status to see your setting sources.1125Your organization's settings need an update. Ask your administrator to fix the API key helper configuration.

1126Couldn't load your organization's settings. Check your connection, then restart Claude Code.

1127Restart Claude Code to finish signing in.

1124```1128```

1125 1129 

1126**Yang harus dilakukan:**1130**Yang harus dilakukan:**

1127 1131 

1128* Untuk memberi tahu administrator Anda sumber terkelola mana yang dimiliki mesin Anda, jalankan `/status` di prompt Claude Code dan salin [baris `Setting sources`](https://code.claude.com/docs/id/managed-settings#read-the-source-in-/status). Jika baris `Skipped sources` muncul, salin juga baris tersebut1132* `Your organization's settings need an update`: minta administrator Anda untuk memperbaiki konfigurasi API key helper

1129* Jika Anda mengelola pengaturan tersebut, lihat [mengapa key helper mesin tidak berlaku](https://code.claude.com/docs/id/server-managed-settings.md#machine-apikeyhelper-not-in-effect)1133 * Untuk memberi tahu administrator Anda sumber terkelola mana yang ada di mesin Anda, jalankan `/status` di prompt Claude Code dan salin [baris `Setting sources`](https://code.claude.com/docs/id/managed-settings#read-the-source-in-/status). Jika muncul baris `Skipped sources`, salin juga baris tersebut

1134 * Jika Anda mengelola pengaturan dan helper berada di file pengaturan terkelola mesin atau kebijakan MDM, lihat [When a machine's `apiKeyHelper` isn't in effect](https://code.claude.com/docs/id/server-managed-settings#machine-apikeyhelper-not-in-effect)

1135* `Couldn't load your organization's settings`: periksa koneksi Anda, lalu mulai ulang Claude Code. Jika pesan muncul kembali setelah memulai ulang, beri tahu administrator Anda

1136* `Restart Claude Code to finish signing in`: mulai ulang Claude Code

1137 

1138Sebelum v2.1.315, prompt atau unggahan file yang ditolak mencetak satu pesan yang diawali dengan `Claude Code didn't send your claude.ai login`.

1130 1139 

1131### Invalid request header value1140### Invalid request header value

1132 1141 


3422* **`Error: Workspace not trusted. <folder> is your home directory`**: karena kepercayaan untuk direktori home Anda tidak pernah disimpan, menjalankan `claude` di sana terlebih dahulu tidak dapat membantu. Jalankan `claude ultrareview` dari direktori proyek sebagai gantinya, setelah menjalankan `claude` di sana sekali untuk menerima dialog kepercayaan, atau tambahkan `--trust-workspace`.3431* **`Error: Workspace not trusted. <folder> is your home directory`**: karena kepercayaan untuk direktori home Anda tidak pernah disimpan, menjalankan `claude` di sana terlebih dahulu tidak dapat membantu. Jalankan `claude ultrareview` dari direktori proyek sebagai gantinya, setelah menjalankan `claude` di sana sekali untuk menerima dialog kepercayaan, atau tambahkan `--trust-workspace`.

3423* **`No answer in time.` diikuti `Error: Workspace not trusted`**: pertanyaan `Trust <folder>? [y/N]` tidak dijawab selama 5 menit. Jalankan `claude ultrareview` lagi dan jawab pertanyaan tersebut.3432* **`No answer in time.` diikuti `Error: Workspace not trusted`**: pertanyaan `Trust <folder>? [y/N]` tidak dijawab selama 5 menit. Jalankan `claude ultrareview` lagi dan jawab pertanyaan tersebut.

3424* **`Ultrareview did not start: <folder> is not trusted`**: Anda menolak pada pertanyaan `Trust <folder>? [y/N]`, misalnya dengan menjawab `n` atau menekan Enter. Untuk memulai review, jalankan `claude ultrareview` lagi dan jawab `y`.3433* **`Ultrareview did not start: <folder> is not trusted`**: Anda menolak pada pertanyaan `Trust <folder>? [y/N]`, misalnya dengan menjawab `n` atau menekan Enter. Untuk memulai review, jalankan `claude ultrareview` lagi dan jawab `y`.

3425* **``Ultrareview did not start: `--trust-workspace` takes no value``**: sesuatu selain flag mengikuti `--trust-workspace`, seperti nomor PR atau `false`. Jika Anda tidak memercayai folder tersebut, hilangkan flag-nya. Untuk memercayainya untuk eksekusi ini, letakkan nomor PR atau base branch sebelum flag: `claude ultrareview 1234 --trust-workspace`.3434* **``Ultrareview did not start: `--trust-workspace` takes no value``**: sesuatu selain flag mengikuti `--trust-workspace`, seperti nomor PR atau `false`. Jika Anda tidak memercayai folder tersebut, jangan sertakan flag tersebut. Untuk memercayainya untuk run ini, letakkan nomor PR atau base branch sebelum flag: `claude ultrareview 1234 --trust-workspace`.

3426 3435 

3427Sebelum v2.1.309, `claude ultrareview` tidak menerima `--trust-workspace`.3436Sebelum v2.1.309, `claude ultrareview` tidak menerima `--trust-workspace`.

3428 3437 


3554 3563 

3555### Server MCP tidak disimpan atau dihapus3564### Server MCP tidak disimpan atau dihapus

3556 3565 

3557Anda menjalankan `claude mcp add`, `claude mcp add-json`, atau `claude mcp remove` untuk server di [cakupan](https://code.claude.com/docs/id/mcp.md#mcp-installation-scopes) `user` atau `local`. Kedua cakupan disimpan di `~/.claude.json`, dan perubahan tidak ada di file tersebut ketika Claude Code membacanya kembali setelah menulis. Perintah keluar dengan kesalahan ini alih-alih baris keberhasilannya.3566Error ini berarti perintah seperti `claude mcp add` atau `claude mcp remove` tidak berhasil memasukkan perubahan Anda ke `~/.claude.json`. Proses Claude Code lain mungkin telah mengunci file tersebut, atau file tersebut mungkin read-only atau dilindungi oleh sandbox.

3558 3567 

3559```text theme={null}3568```text theme={null}

3560MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3569MCP server "example" was not saved to /home/user/.claude.json. If other Claude Code processes use that file, they may have kept it locked: add the server again, with CLAUDE_CODE_CONFIG_LOCK_WAIT_MS=60000 set to wait up to a minute. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox first.

3561```3570```

3562 3571 

3563Setelah penghapusan, pesan berbunyi `was not removed from` dan diakhiri dengan `then remove the server again`. Untuk server cakupan `local`, path diikuti oleh direktori proyek tempat entri tersebut berada, sebagai `(local scope for /path/to/project)`.3572Setelah penghapusan, pesan berbunyi `was not removed from` sebagai pengganti `was not saved to`, dan `remove the server again` sebagai pengganti `add the server again`. Untuk server cakupan `local`, path diikuti oleh direktori proyek tempat entri tersebut berada, sebagai `(local scope for /path/to/project)`.

3564 

3565Sebelum v2.1.283, `claude mcp add`, `claude mcp add-json`, dan `claude mcp remove` melaporkan keberhasilan bahkan ketika perubahan tidak mencapai file.

3566 3573 

3567**Yang perlu dilakukan:**3574**Yang perlu dilakukan:**

3568 3575 

3569* Buat file yang disebutkan pesan dapat ditulis, atau jalankan perintah di luar sandbox, lalu jalankan perintah tambah atau hapus yang sama lagi.3576* **Proses Claude Code lain sedang berjalan**: perintah menunggu sekitar 10 hingga 20 detik untuk kunci file, lalu menyerah tanpa menulis. Jalankan perintah yang sama lagi dengan [`CLAUDE_CODE_CONFIG_LOCK_WAIT_MS`](https://code.claude.com/docs/id/env-vars#variables) diatur ke waktu tunggu yang lebih lama dalam milidetik, seperti `60000`.

3577* **File bersifat read-only atau dilindungi sandbox**: buat file yang disebutkan pesan dapat ditulis dan jalankan perintah add atau remove yang sama lagi, atau jalankan perintah tersebut di luar sandbox.

3578 

3579Sebelum v2.1.283, `claude mcp add`, `claude mcp add-json`, dan `claude mcp remove` melaporkan keberhasilan bahkan ketika perubahan tidak mencapai file. Sebelum v2.1.318, pesan tidak menyebutkan kunci, dan Claude Code tidak membaca [`CLAUDE_CODE_CONFIG_LOCK_WAIT_MS`](https://code.claude.com/docs/id/env-vars#variables).

3570 3580 

3571### Server MCP mungkin tidak disimpan atau dihapus3581### Server MCP mungkin tidak disimpan atau dihapus

3572 3582 

3573Anda menjalankan `claude mcp add`, `claude mcp add-json`, atau `claude mcp remove` untuk server di [cakupan](https://code.claude.com/docs/id/mcp.md#mcp-installation-scopes) `user` atau `local`, dan Claude Code tidak dapat membaca kembali `~/.claude.json` untuk mengonfirmasi perubahan. Perubahan mungkin ada atau tidak ada di disk. Teks dalam tanda kurung adalah kesalahan dari pembacaan tersebut.3583Anda menjalankan `claude mcp add`, `claude mcp add-json`, atau `claude mcp remove` untuk server di [cakupan](https://code.claude.com/docs/id/mcp.md#mcp-installation-scopes) `user` atau `local`, dan Claude Code tidak dapat membaca kembali `~/.claude.json` untuk mengonfirmasi perubahan. Perubahan tersebut mungkin sudah atau belum tersimpan di disk. Tanda kurung setelah `to confirm the change` memberikan alasannya.

3574 3584 

3575```text theme={null}3585```text theme={null}

3576MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.3586MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3577```3587```

3578 3588 

3579Setelah penghapusan, pesan berbunyi `may not have been removed` dan diakhiri dengan `then remove the server again if it is still listed`.3589Setelah penghapusan, pesan berbunyi `may not have been removed` dan diakhiri dengan `then remove the server again if it is still listed`. Jika alasannya adalah `the file was not found`, server mungkin masih terkonfigurasi.

3580 3590 

3581Sebelum v2.1.283, perintah melaporkan keberhasilan bahkan ketika perubahan tidak dapat dikonfirmasi.3591Sebelum v2.1.283, perintah melaporkan keberhasilan bahkan ketika perubahan tidak dapat dikonfirmasi.

3582 3592 


3714 3724 

3715String serupa muncul sebelum perintah dijalankan sama sekali:3725String serupa muncul sebelum perintah dijalankan sama sekali:

3716 3726 

3717* `Shell command permission check failed for pattern "..."`: pemeriksaan izin perintah tidak mengizinkannya. [Pemeriksaan izin pada perintah yang disisipkan](https://code.claude.com/docs/id/skills.md#permission-checks-on-injected-commands) menjelaskan hasil mana yang membatalkan di setiap mode izin dan cara menyetujui perintah terlebih dahulu dengan `allowed-tools`3727* `Shell command permission check failed for pattern "..."`: pemeriksaan izin perintah tidak mengizinkannya. [Pemeriksaan izin pada perintah sisipan](https://code.claude.com/docs/id/skills.md#permission-checks-on-injected-commands) menjelaskan hasil mana yang membatalkan di setiap mode izin dan cara menyetujui perintah terlebih dahulu dengan `allowed-tools`

3718* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter skill mewajibkan bash pada mesin yang tidak memilikinya. Instal Git for Windows atau ubah frontmatter menjadi `shell: powershell`. Lihat [Cara perintah yang disisipkan dijalankan](https://code.claude.com/docs/id/skills.md#how-injected-commands-run)3728* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: frontmatter skill menuntut bash pada mesin yang tidak memilikinya. Instal Git for Windows atau ubah frontmatter menjadi `shell: powershell`. Lihat [Cara perintah sisipan berjalan](https://code.claude.com/docs/id/skills.md#how-injected-commands-run)

3719 3729 

3720**Yang perlu dilakukan:**3730**Yang perlu dilakukan:**

3721 3731 


3868 3878 

3869* **Anda tidak memberikan branch dasar**: Claude Code membandingkan dengan branch default repositori dan menyarankan untuk memberikan branch dasar Anda secara eksplisit, seperti pada contoh di atas3879* **Anda tidak memberikan branch dasar**: Claude Code membandingkan dengan branch default repositori dan menyarankan untuk memberikan branch dasar Anda secara eksplisit, seperti pada contoh di atas

3870* **Anda memberikan branch dasar yang sudah ada di clone Anda**: petunjuknya berbunyi ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3880* **Anda memberikan branch dasar yang sudah ada di clone Anda**: petunjuknya berbunyi ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3871* **Anda memberikan branch dasar yang tidak ada di clone Anda**: Claude Code mengambilnya dari origin sebelum membandingkan. Petunjuknya berbunyi ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; ketika Claude Code tidak dapat memastikan apakah clone Anda dangkal (shallow), Claude Code menyarankan `git fetch --unshallow origin` sebagai gantinya. Sebelum v2.1.221, petunjuk menyarankan `git fetch --unshallow origin` untuk setiap branch dasar yang diambil, dan pada clone yang lengkap perintah tersebut gagal dengan `fatal: --unshallow on a complete repository does not make sense`.3881* **Anda memberikan branch dasar yang tidak ada di clone Anda**: Claude Code mengambilnya dari origin sebelum membandingkan. Petunjuknya berbunyi ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``; ketika Claude Code tidak dapat menentukan apakah clone Anda dangkal (shallow), Claude Code menyarankan `git fetch --unshallow origin` sebagai gantinya. Sebelum v2.1.221, petunjuk menyarankan `git fetch --unshallow origin` untuk setiap branch dasar yang diambil, dan pada clone yang lengkap perintah tersebut gagal dengan `fatal: --unshallow on a complete repository does not make sense`.

3872 3882 

3873**Yang perlu dilakukan:**3883**Yang perlu dilakukan:**

3874 3884 

fast-mode.md +5 −5

Details

35Di CLI, aktifkan atau nonaktifkan fast mode dengan salah satu cara berikut:35Di CLI, aktifkan atau nonaktifkan fast mode dengan salah satu cara berikut:

36 36 

37* Jalankan `/fast`, tekan Space untuk mengaktifkan atau menonaktifkan, lalu tekan Enter untuk mengonfirmasi37* Jalankan `/fast`, tekan Space untuk mengaktifkan atau menonaktifkan, lalu tekan Enter untuk mengonfirmasi

38* Atur `"fastMode": true` di [file pengaturan pengguna](https://code.claude.com/docs/id/settings.md) Anda38* Pada model yang mendukung fast mode, atur `"fastMode": true` di [file pengaturan pengguna](https://code.claude.com/docs/id/settings.md) Anda. Jika Anda mengaturnya pada model lain, Anda tetap menggunakan model tersebut dengan fast mode nonaktif.

39 39 

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

41 41 

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

43 43 


45 45 

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

47 47 

48Saat Anda mengaktifkan fast mode:48Saat Anda mengaktifkan fast mode dengan `/fast`:

49 49 

50* Jika model Anda saat ini tidak mendukung fast mode, Claude Code beralih ke Opus50* Jika model Anda saat ini tidak mendukung fast mode, Claude Code beralih ke Opus

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


196 196 

197### Require per-session opt-in197### Require per-session opt-in

198 198 

199Secara default, mode cepat yang diaktifkan pengguna dalam sesi interaktif bertahan di seluruh sesi. Untuk mengubah ini, atur `fastModePerSessionOptIn` ke `true` di file [pengaturan](https://code.claude.com/docs/id/settings.md#where-settings-live) apa pun, yang menyebabkan setiap sesi dimulai dengan mode cepat mati dan memerlukan pengguna untuk secara eksplisit mengaktifkannya dengan `/fast`. Owners pada paket [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) atau [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) dapat menerapkannya di seluruh organisasi melalui [pengaturan yang dikelola server](https://code.claude.com/docs/id/server-managed-settings.md).199Secara default, fast mode yang diaktifkan pengguna dalam sesi interaktif bertahan di seluruh sesi pada model yang didukung. Untuk mengubah ini, atur `fastModePerSessionOptIn` ke `true` di [file pengaturan](https://code.claude.com/docs/id/settings.md#where-settings-live) apa pun, yang menyebabkan setiap sesi dimulai dengan fast mode mati dan mengharuskan pengguna untuk secara eksplisit mengaktifkannya dengan `/fast`. Owner pada paket [Team](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_teams#team-&-enterprise) atau [Enterprise](https://anthropic.com/contact-sales?utm_source=claude_code\&utm_medium=docs\&utm_content=fast_mode_enterprise) dapat menerapkannya di seluruh organisasi melalui [pengaturan terkelola server](https://code.claude.com/docs/id/server-managed-settings.md).

200 200 

201```json theme={null}201```json theme={null}

202{202{


221 221 

222Jika Anda kehabisan kredit penggunaan di tengah sesi, Claude Code mencoba ulang setiap permintaan mode cepat yang ditolak dengan kecepatan dan harga standar, sehingga Anda terus bekerja, dan tidak ada cooldown. Cara Anda melihat penolakan tergantung pada jenis sesi:222Jika Anda kehabisan kredit penggunaan di tengah sesi, Claude Code mencoba ulang setiap permintaan mode cepat yang ditolak dengan kecepatan dan harga standar, sehingga Anda terus bekerja, dan tidak ada cooldown. Cara Anda melihat penolakan tergantung pada jenis sesi:

223 223 

224* Dalam sesi interaktif, Claude Code menampilkan notifikasi "Fast mode disabled · usage credits exhausted" dan mematikan mode cepat untuk sisa sesi. Preferensi mode cepat yang disimpan Anda tidak berubah; jalankan `/fast` untuk menghidupkan mode cepat kembali.224* Dalam sesi interaktif, Claude Code menampilkan notifikasi "Fast mode disabled · Out of usage credits" dan mematikan fast mode. Preferensi fast mode yang disimpan Anda tidak berubah; jalankan `/fast` untuk mengaktifkan fast mode kembali.

225* Dalam [mode non-interaktif](https://code.claude.com/docs/id/headless.md) dengan `--output-format stream-json`, dan melalui Agent SDK, Claude Code memancarkan teks yang sama pada aliran pesan sebagai pesan `system` dengan subtipe `notification`, sekali per giliran saat Anda kehabisan kredit penggunaan. Mode cepat tetap aktif. Memerlukan Claude Code v2.1.221 atau lebih baru.225* Dalam [mode non-interaktif](https://code.claude.com/docs/id/headless.md) dengan `--output-format stream-json`, dan melalui Agent SDK, Claude Code memancarkan teks yang sama pada aliran pesan sebagai pesan `system` dengan subtipe `notification`, sekali per giliran saat Anda kehabisan kredit penggunaan. Mode cepat tetap aktif. Memerlukan Claude Code v2.1.221 atau lebih baru.

226 226 

227## Pratinjau penelitian227## Pratinjau penelitian

hooks.md +63 −21

Details

70 70 

71> [tab] macOS/Linux71> [tab] macOS/Linux

72>72>

73> `matcher` mempersempit ke pemanggilan tool Bash dan kondisi `if` mempersempit lebih lanjut ke subperintah Bash yang cocok dengan `rm *`, jadi `block-rm.sh` hanya spawn ketika kedua filter cocok:73> `matcher` mempersempit ke panggilan tool Bash dan [perintah Monitor](#match-monitor-commands), dan kondisi `if` mempersempit lebih lanjut ke subperintah Bash yang cocok dengan `rm *`, jadi `block-rm.sh` hanya spawn ketika kedua filter cocok:

74>74>

75> ```json theme={null}75> ```json theme={null}

76> {76> {


116 116 

117> [tab] Windows (PowerShell)117> [tab] Windows (PowerShell)

118>118>

119> Matcher `Bash|PowerShell` mencakup [tool PowerShell](#powershell) serta Bash. Satu aturan `if` hanya cocok dengan pemanggilan satu tool, jadi setiap tool mendapat handler-nya sendiri: yang pertama mempersempit ke subperintah Bash yang cocok dengan `rm *`, yang kedua ke perintah PowerShell yang cocok dengan `Remove-Item *`. Keduanya menjalankan skrip yang sama melalui `powershell.exe`:119> Matcher `Bash|PowerShell` mencakup [tool PowerShell](#powershell) serta Bash. Satu aturan `if` hanya menyebutkan satu tool, jadi setiap tool mendapat handler-nya sendiri: yang pertama mempersempit ke subperintah Bash yang cocok dengan `rm *`, yang kedua ke perintah PowerShell yang cocok dengan `Remove-Item *`. Keduanya menjalankan skrip yang sama melalui `powershell.exe`:

120>120>

121> ```json theme={null}121> ```json theme={null}

122> {122> {


225Hooks didefinisikan dalam file pengaturan JSON. Konfigurasi memiliki tiga tingkat nesting:225Hooks didefinisikan dalam file pengaturan JSON. Konfigurasi memiliki tiga tingkat nesting:

226 226 

2271. Pilih [hook event](#hook-events) untuk merespons, seperti `PreToolUse` atau `Stop`2271. Pilih [hook event](#hook-events) untuk merespons, seperti `PreToolUse` atau `Stop`

2282. Tambahkan [matcher group](#matcher-patterns) untuk memfilter kapan dijalankan, seperti "hanya untuk tool Bash"2282. Tambahkan [grup matcher](#matcher-patterns) untuk memfilter kapan hook dijalankan, seperti "untuk tool Bash"

2293. Tentukan satu atau lebih [hook handlers](#hook-handler-fields) untuk dijalankan saat cocok2293. Tentukan satu atau lebih [hook handlers](#hook-handler-fields) untuk dijalankan saat cocok

230 230 

231Lihat [Bagaimana hook diselesaikan](#how-a-hook-resolves) di atas untuk panduan lengkap dengan contoh beranotasi.231Lihat [Bagaimana hook diselesaikan](#how-a-hook-resolves) di atas untuk panduan lengkap dengan contoh beranotasi.


277| Nilai matcher | Dievaluasi sebagai | Contoh |277| Nilai matcher | Dievaluasi sebagai | Contoh |

278| :- | :- | :- |278| :- | :- | :- |

279| `"*"`, `""`, atau dihilangkan | Cocokkan semua | dijalankan pada setiap kemunculan event |279| `"*"`, `""`, atau dihilangkan | Cocokkan semua | dijalankan pada setiap kemunculan event |

280| Hanya huruf, digit, `_`, `-`, spasi, `,`, dan `\|` | String yang tepat, atau daftar string yang tepat dipisahkan `\|` atau `,` dengan whitespace opsional di sekitarnya | `Bash` cocok hanya dengan tool Bash; `Edit\|Write` dan `Edit, Write` masing-masing cocok dengan salah satu tool dengan tepat; `code-reviewer` cocok hanya dengan tipe agent itu |280| Hanya huruf, digit, `_`, `-`, spasi, `,`, dan `\|` | String yang tepat, atau daftar string yang tepat dipisahkan `\|` atau `,` dengan whitespace opsional di sekitarnya | `Bash` cocok dengan tool Bash, dan pada `PreToolUse` serta `PermissionRequest` juga dengan [perintah Monitor](#match-monitor-commands); `Edit\|Write` dan `Edit, Write` masing-masing cocok dengan salah satu tool dengan tepat; `code-reviewer` cocok hanya dengan tipe agent itu |

281| Berisi karakter lain apa pun | Ekspresi reguler JavaScript, tidak berlabuh | `^Notebook` cocok dengan tool apa pun yang namanya dimulai dengan `Notebook`; `mcp__memory__.*` cocok dengan setiap tool dari server `memory` |281| Berisi karakter lain apa pun | Ekspresi reguler JavaScript, tidak berlabuh | `^Notebook` cocok dengan tool apa pun yang namanya dimulai dengan `Notebook`; `mcp__memory__.*` cocok dengan setiap tool dari server `memory` |

282 282 

283Matcher pada jalur ekspresi reguler diuji dengan `RegExp.prototype.test` JavaScript, yang berhasil pada kecocokan di mana pun dalam nilai. `Edit.*` cocok dengan `Edit` dan `NotebookEdit`; bungkus pola dalam `^` dan `$`, seperti `^Edit$`, ketika Anda memerlukan kecocokan seluruh string.283Matcher pada jalur ekspresi reguler diuji dengan `RegExp.prototype.test` JavaScript, yang berhasil pada kecocokan di mana pun dalam nilai. `Edit.*` cocok dengan `Edit` dan `NotebookEdit`; bungkus pola dalam `^` dan `$`, seperti `^Edit$`, ketika Anda memerlukan kecocokan seluruh string.


294| `SessionStart` | bagaimana sesi dimulai | `startup`, `resume`, `clear`, `compact`, `fork` |294| `SessionStart` | bagaimana sesi dimulai | `startup`, `resume`, `clear`, `compact`, `fork` |

295| `Setup` | flag CLI mana yang memicu setup | `init`, `maintenance` |295| `Setup` | flag CLI mana yang memicu setup | `init`, `maintenance` |

296| `SessionEnd` | mengapa sesi berakhir | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |296| `SessionEnd` | mengapa sesi berakhir | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

297| `Notification` | tipe notifikasi | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |297| `Notification` | tipe notifikasi | `permission_prompt`, `idle_prompt`, `auth_success`, `auth_storage_failure`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |

298| `SubagentStart` | tipe agent | `general-purpose`, `Explore`, `Plan`, nama agent kustom, atau nama dengan cakupan plugin seperti `^my-plugin:reviewer$` |298| `SubagentStart` | tipe agent | `general-purpose`, `Explore`, `Plan`, nama agent kustom, atau nama dengan cakupan plugin seperti `^my-plugin:reviewer$` |

299| `PreCompact`, `PostCompact` | apa yang memicu compaction | `manual`, `auto` |299| `PreCompact`, `PostCompact` | apa yang memicu compaction | `manual`, `auto` |

300| `PreModelSwitch`, `PostModelSwitch` | nama kanonik model yang sesi beralih ke, seperti dijelaskan di bawah [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |300| `PreModelSwitch`, `PostModelSwitch` | nama kanonik model yang sesi beralih ke, seperti dijelaskan di bawah [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |


385}385}

386```386```

387 387 

388#### Cocokkan perintah Monitor

389 

390Hook [`PreToolUse`](#pretooluse) atau [`PermissionRequest`](#permissionrequest) dengan matcher `Bash` juga berjalan pada perintah shell yang Claude mulai dengan [tool Monitor](https://code.claude.com/docs/id/tools-reference.md#monitor-tool), tetapi `allow` dan [`updatedInput`](#pretooluse-decision-control)-nya tidak berpengaruh pada perintah tersebut. Memerlukan Claude Code v2.1.314 atau lebih baru. Matcher seperti `Bash|PowerShell`, `^Bash$`, dan `Bash.*` juga merupakan matcher `Bash`. Hook dengan matcher `Bash` tidak berjalan untuk [WebSocket watch](https://code.claude.com/docs/id/tools-reference.md#websocket-source), dan hook `PostToolUse` dengan matcher tersebut tidak berjalan untuk Monitor.

391 

392Hook yang berjalan untuk perintah Monitor dapat menolaknya atau membuat Claude Code menanyakannya kepada Anda. Untuk mengizinkan atau menulis ulang perintah tersebut, beralihlah dari matcher `Bash` ke matcher yang menyertakan Monitor:

393 

394* **Matcher yang menyertakan Monitor**: dengan matcher seperti `Bash|Monitor` atau `.*`, atau tanpa matcher, hook mendapatkan input milik panggilan Monitor itu sendiri, dan `allow` serta `updatedInput` berlaku. Dalam [`if`](#common-fields), sebutkan Monitor, seperti `Monitor(tail *)`, yang mencocokkan berdasarkan [aturan yang diikuti `Bash(tail *)`](#bash-if-matching). Jika `if`-nya menyebutkan Bash, hook tetap mendapatkan input panggilan Monitor, tetapi `allow` dan `updatedInput` tidak berpengaruh

395* **Matcher `Bash`**: hook mendapatkan panggilan Bash. Dalam `if`, sebutkan Bash, seperti `Bash(tail *)`. Hook tidak berjalan jika `if`-nya menyebutkan Monitor

396 

388### Bidang hook handler397### Bidang hook handler

389 398 

390Setiap objek dalam array `hooks` inner adalah hook handler: perintah shell, endpoint HTTP, tool MCP, prompt LLM, atau agent yang dijalankan saat matcher cocok. Ada lima tipe:399Setiap objek dalam array `hooks` inner adalah hook handler: perintah shell, endpoint HTTP, tool MCP, prompt LLM, atau agent yang dijalankan saat matcher cocok. Ada lima tipe:


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

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

813 822 

814Untuk sebagian besar event, Claude Code menulis stdout ke log debug dan tidak menampilkannya di transkrip. Pengecualiannya adalah `UserPromptSubmit`, `UserPromptExpansion`, `SessionStart`, dan `PostModelSwitch`, di mana Claude Code menambahkan stdout teks biasa sebagai konteks yang dapat dilihat dan ditindaklanjuti oleh Claude. Pada event tersebut, Claude Code tidak menambahkan stdout yang gagal di-parse.823Untuk sebagian besar event, Claude Code menulis stdout ke log debug dan tidak menampilkannya di transkrip. Pada event berikut, stdout Anda sampai ke Claude atau ke ringkasan compaction:

824 

825* **`UserPromptSubmit`, `UserPromptExpansion`, `SessionStart`, dan `PostModelSwitch`**: Claude Code menambahkan stdout teks biasa sebagai konteks yang dapat dilihat dan ditindaklanjuti oleh Claude. Claude Code tidak menambahkan stdout yang gagal di-parse.

826* **`PreCompact`**: stdout Anda menjadi [instruksi untuk ringkasan compaction](#precompact-output)

815 827 

816Claude tidak pernah melihat stderr dari hook yang keluar dengan 0. Untuk membacanya sendiri pada event seperti `PreToolUse`, aktifkan [logging debug](#debug-hooks). Untuk menyampaikan peringatan kepada Claude dari hook `PostToolUse` atau `PostToolUseFailure`, gunakan exit 2 sehingga [Claude melihat stderr](#exit-code-2-behavior-per-event) meskipun tool sudah berjalan.828Claude tidak pernah melihat stderr dari hook yang keluar dengan 0. Untuk membacanya sendiri pada event seperti `PreToolUse`, aktifkan [logging debug](#debug-hooks). Untuk menyampaikan peringatan kepada Claude dari hook `PostToolUse` atau `PostToolUseFailure`, gunakan exit 2 sehingga [Claude melihat stderr](#exit-code-2-behavior-per-event) meskipun tool sudah berjalan.

817 829 


1050String `additionalContext`, `systemMessage`, dan `initialUserMessage` dari hook, serta stdout biasanya, dibatasi hingga 10.000 karakter:1062String `additionalContext`, `systemMessage`, dan `initialUserMessage` dari hook, serta stdout biasanya, dibatasi hingga 10.000 karakter:

1051 1063 

1052* **Cakupan**: Claude Code mengukur setiap string secara terpisah, bahkan ketika beberapa hook berjalan untuk event yang sama. Untuk output JSON, setiap field diukur secara terpisah; stdout biasa diukur secara keseluruhan.1064* **Cakupan**: Claude Code mengukur setiap string secara terpisah, bahkan ketika beberapa hook berjalan untuk event yang sama. Untuk output JSON, setiap field diukur secara terpisah; stdout biasa diukur secara keseluruhan.

1053* **Melebihi batas**: Claude Code menyimpan output ke file di direktori sesi dan menggantinya dengan path file serta pratinjau hingga 2.000 karakter pertama. Hasil Bash valid yang besar ditangani dengan cara yang sama, seperti dijelaskan di bagian [Batas output](https://code.claude.com/docs/id/tools-reference.md#output-limits). Tidak seperti batas atas Bash tersebut, batas ini tidak memiliki pengaturan atau environment variable untuk menaikkannya.1065* **Melebihi batas**: kecuali untuk [stdout PreCompact](#precompact-output), Claude Code menyimpan output ke file di direktori sesi. Claude Code mengganti output tersebut dengan path file serta pratinjau hingga 2.000 karakter pertama. Hasil Bash valid yang besar ditangani dengan cara yang sama, seperti dijelaskan di bagian [Batas output](https://code.claude.com/docs/id/tools-reference.md#output-limits). Tidak seperti batas atas Bash tersebut, batas ini tidak memiliki pengaturan atau environment variable untuk menaikkannya.

1054* **Membaca file**: Claude Code tidak meminta Claude untuk membaca file tersebut, jadi pastikan apa pun yang harus selalu dilihat Claude tetap berada dalam batas.1066* **Membaca file**: Claude Code tidak meminta Claude untuk membaca file tersebut, jadi pastikan apa pun yang harus selalu dilihat Claude tetap berada dalam batas.

1055 1067 

1056Objek JSON mendukung tiga jenis field:1068Objek JSON mendukung tiga jenis field:


1954 1966 

1955#### Kontrol keputusan PreToolUse1967#### Kontrol keputusan PreToolUse

1956 1968 

1957Hook `PreToolUse` dapat mengontrol apakah panggilan tool dilanjutkan. Tidak seperti hook lain yang menggunakan kolom `decision` tingkat atas, PreToolUse mengembalikan keputusannya di dalam objek `hookSpecificOutput`. Ini memberinya kontrol yang lebih kaya: empat hasil (allow, deny, ask, atau defer) ditambah kemampuan untuk mengubah input tool sebelum eksekusi.1969Hook `PreToolUse` dapat mengontrol apakah panggilan tool berlanjut. Tidak seperti hook lain yang menggunakan field `decision` tingkat atas, PreToolUse mengembalikan keputusannya di dalam objek `hookSpecificOutput`. Ini memberinya kontrol yang lebih kaya: empat hasil (allow, deny, ask, atau defer) ditambah kemampuan untuk memodifikasi input tool sebelum eksekusi. Untuk mengizinkan atau menulis ulang perintah Monitor, lihat [Mencocokkan perintah Monitor](#match-monitor-commands).

1958 1970 

1959| Kolom | Deskripsi |1971| Kolom | Deskripsi |

1960| :- | :- |1972| :- | :- |


2051 2063 

2052#### Menangguhkan panggilan tool untuk nanti2064#### Menangguhkan panggilan tool untuk nanti

2053 2065 

2054`"defer"` ditujukan untuk integrasi yang menjalankan `claude -p` sebagai subproses dan membaca output JSON-nya, seperti aplikasi Agent SDK atau UI kustom yang dibangun di atas Claude Code. Nilai ini memungkinkan proses pemanggil tersebut menjeda Claude pada panggilan tool, mengumpulkan input melalui antarmukanya sendiri, dan melanjutkan dari titik terakhir. Claude Code hanya mematuhi nilai ini dalam [mode non-interaktif](https://code.claude.com/docs/id/headless.md) dengan flag `-p`. Dalam sesi interaktif, Claude Code mencatat peringatan dan mengabaikan hasil hook.2066`"defer"` ditujukan untuk integrasi yang menjalankan `claude -p` sebagai subproses dan membaca output JSON-nya, seperti aplikasi Agent SDK atau UI kustom yang dibangun di atas Claude Code. Ini memungkinkan proses pemanggil tersebut menjeda Claude pada suatu panggilan tool, mengumpulkan input melalui antarmukanya sendiri, lalu melanjutkan dari titik terakhir.

2067 

2068Claude Code hanya mematuhi `"defer"` dalam [mode non-interaktif](https://code.claude.com/docs/id/headless.md) dengan flag `-p`, dan hanya ketika Claude melakukan satu panggilan tool dalam giliran tersebut:

2069 

2070* **Dalam sesi interaktif**: Claude Code mencatat peringatan ke log dan mengabaikan hasil hook

2071* **Beberapa panggilan tool sekaligus**: `"defer"` diabaikan dengan peringatan dan tool berjalan melalui alur izin normal

2055 2072 

2056Tool `AskUserQuestion` adalah kasus yang umum: Claude ingin menanyakan sesuatu kepada pengguna, tetapi tidak ada terminal untuk menjawabnya. Eksekusi `-p` hanya menawarkan `AskUserQuestion` saat memiliki [host izin](https://code.claude.com/docs/id/headless.md#turn-off-permission-prompts-in-unattended-runs), seperti tool MCP yang Anda berikan dengan `--permission-prompt-tool`, jadi mulailah eksekusi dengan salah satunya. Alur bolak-baliknya berjalan seperti ini:2073Tool `AskUserQuestion` adalah kasus yang umum: Claude ingin menanyakan sesuatu kepada pengguna, tetapi tidak ada terminal untuk menjawabnya. Eksekusi `-p` hanya menawarkan `AskUserQuestion` saat memiliki [host izin](https://code.claude.com/docs/id/headless.md#turn-off-permission-prompts-in-unattended-runs), seperti tool MCP yang Anda berikan dengan `--permission-prompt-tool`, jadi mulailah eksekusi dengan salah satunya. Alur bolak-baliknya berjalan seperti ini:

2057 2074 


20614. Proses pemanggil menjalankan `claude -p --resume <session-id>` dengan host izin yang sama. Panggilan tool yang sama memicu `PreToolUse` lagi.20784. Proses pemanggil menjalankan `claude -p --resume <session-id>` dengan host izin yang sama. Panggilan tool yang sama memicu `PreToolUse` lagi.

20625. Hook mengembalikan `permissionDecision: "allow"` dengan jawaban di `updatedInput`. Tool dieksekusi dan Claude melanjutkan.20795. Hook mengembalikan `permissionDecision: "allow"` dengan jawaban di `updatedInput`. Tool dieksekusi dan Claude melanjutkan.

2063 2080 

2064Kolom `deferred_tool_use` membawa `id`, `name`, dan `input` dari tool. `input` adalah parameter yang dihasilkan Claude untuk panggilan tool, yang ditangkap sebelum eksekusi:2081Field `deferred_tool_use` membawa `id`, `name`, dan `input` dari tool:

2065 2082 

2066```json theme={null}2083```json theme={null}

2067{2084{


2077}2094}

2078```2095```

2079 2096 

2080Tidak ada timeout atau batas retry. Sesi tetap ada di disk hingga Anda melanjutkannya, dengan tunduk pada pembersihan retensi [`cleanupPeriodDays`](https://code.claude.com/docs/id/settings-reference#cleanupperioddays), yang menghapus file sesi setelah 30 hari secara default, mengikuti [aturan pembersihan retensi](https://code.claude.com/docs/id/claude-directory.md#cleaned-up-automatically).2097Tidak ada timeout atau batas retry. Sesi tetap tersimpan di disk sampai [pembersihan retensi](https://code.claude.com/docs/id/claude-directory.md#cleaned-up-automatically) [`cleanupPeriodDays`](https://code.claude.com/docs/id/settings-reference#cleanupperioddays) menghapusnya, setelah 30 hari secara default.

2081 

2082Jika tool yang ditunda tidak lagi tersedia saat Anda melanjutkan, hasil pertama dari pelanjutan tersebut memiliki `stop_reason: "tool_deferred_unavailable"` dan `is_error: true`, dan hook tidak dipicu. Ini terjadi saat server MCP yang menyediakan tool tersebut tidak terhubung untuk sesi yang dilanjutkan. Payload `deferred_tool_use` tetap disertakan sehingga Anda dapat mengidentifikasi tool mana yang hilang.

2083 

2084* **Jika Anda tidak mengirim prompt, baik bersama pelanjutan maupun setelahnya**, panggilan masih tertunda. Lanjutkan lagi dengan tool tersedia dan panggilan tersebut akan berjalan terlebih dahulu.

2085* **Jika Anda mengirim prompt, baik bersama pelanjutan maupun setelahnya**, Claude Code menjawabnya tanpa hasil tool dan membuang panggilan yang ditunda. Kirim prompt baru setelah tool tersedia jika Anda masih memerlukan tool tersebut dipanggil.

2086 2098 

2087Jika jawaban yang Anda tunggu belum siap saat Anda melanjutkan tanpa prompt, hook dapat mengembalikan `"defer"` lagi. Jika Anda mengirim prompt dan hook menunda lagi, Claude Code memperlakukan prompt dengan cara yang sama: menjawab tanpa hasil tool dan membuang panggilan. Lanjutkan tanpa prompt hingga hook mengembalikan `"allow"` atau `"deny"`, yang merupakan cara proses pemanggil memutus perulangan.2099Jika jawaban belum siap saat Anda melanjutkan, hook dapat mengembalikan `"defer"` lagi. Jika Anda mengirim prompt bersama resume tersebut, Claude menjawabnya tanpa hasil tool dan tidak menjalankan panggilan itu. Lanjutkan tanpa prompt sampai hook mengembalikan `"allow"` atau `"deny"`.

2088 

2089`"defer"` hanya berfungsi saat Claude melakukan satu panggilan tool dalam giliran tersebut. Jika Claude melakukan beberapa panggilan tool sekaligus, `"defer"` diabaikan dengan peringatan dan tool berlanjut melalui alur izin normal. Batasan ini ada karena resume hanya dapat menjalankan ulang satu tool: tidak ada cara untuk menangguhkan satu panggilan dari sekumpulan panggilan tanpa membiarkan yang lain tidak terselesaikan.

2090 2100 

2091> [!NOTE]2101> [!NOTE]

2092>2102>

2093> Untuk melanjutkan sesi yang ditangguhkan dalam plan mode, berikan [`--permission-prompt-tool`](https://code.claude.com/docs/id/cli-reference#cli-flags) bersama `--resume` agar Claude Code dapat menampilkan rencana untuk disetujui. Untuk kondisi lainnya, lihat [Melanjutkan dalam plan mode dengan `-p`](https://code.claude.com/docs/id/sessions#resume-in-plan-mode-with-p). Memerlukan Claude Code v2.1.246 atau lebih baru.2103> Untuk melanjutkan sesi yang ditangguhkan dalam plan mode, berikan [`--permission-prompt-tool`](https://code.claude.com/docs/id/cli-reference#cli-flags) bersama `--resume` agar Claude Code dapat menampilkan rencana untuk disetujui. Untuk kondisi lainnya, lihat [Melanjutkan dalam plan mode dengan `-p`](https://code.claude.com/docs/id/sessions#resume-in-plan-mode-with-p). Memerlukan Claude Code v2.1.246 atau lebih baru.

2094>2104>

2095> Saat Anda melanjutkan dengan `-p`, Claude Code tidak memulihkan mode izin tersimpan lainnya. Claude Code memulai eksekusi dalam mode izin yang akan digunakan oleh eksekusi `claude -p` baru, jadi berikan `--permission-mode` atau `--dangerously-skip-permissions` lagi jika sesi yang ditangguhkan menggunakannya. Saat Anda melanjutkan dengan `claude --resume <session-id>` tanpa `-p`, Claude Code memulihkan mode izin yang tersimpan, dengan pengecualian yang tercantum di [mode izin saat resume](https://code.claude.com/docs/id/sessions.md#permission-mode-on-resume).2105> Saat Anda melanjutkan dengan `-p`, Claude Code tidak memulihkan mode izin tersimpan lainnya. Claude Code memulai run dalam mode izin yang akan digunakan oleh run `claude -p` baru, jadi berikan `--permission-mode` atau `--dangerously-skip-permissions` lagi jika sesi yang ditunda menggunakan salah satunya.

2106 

2107##### Melanjutkan ketika tool yang ditunda tidak tersedia

2108 

2109Hasil dengan `stop_reason: "tool_deferred_unavailable"` berarti tool dari panggilan yang ditunda tidak tersedia di sesi yang dilanjutkan, misalnya karena server MCP-nya tidak terhubung. Hook `PreToolUse` Anda tidak dijalankan, dan field `deferred_tool_use` pada hasil menyebutkan nama tool tersebut.

2110 

2111Selama panggilan masih tertunda, prompt apa pun yang Anda kirim tidak sampai ke Claude dan run keluar dengan kode 1. Field `result` diawali dengan `<tool> isn't available, so its deferred call didn't run.` Jalankan panggilan tersebut, atau buang agar tidak dijalankan:

2112 

2113* **Untuk menjalankan panggilan**: buat tool tersedia dan lanjutkan lagi.

2114* **Untuk membuang panggilan**: lanjutkan dengan prompt dan [`CLAUDE_CODE_DROP_UNAVAILABLE_DEFERRED_TOOL`](https://code.claude.com/docs/id/env-vars#variables) diatur ke `1`. Claude menerima error sebagai hasil panggilan dan menjawab prompt Anda. Saat Anda melanjutkan nanti, tidak ada panggilan yang tertunda.

2115 

2116Saat Anda membuang panggilan, run menulis hasil `tool_deferred_unavailable` dengan field `result` kosong, lalu jawaban Claude dalam hasil kedua. Run keluar dengan kode 0 kecuali jawaban tersebut berupa error. Jika Anda mengatur variabel tersebut dan tidak mengirim prompt, run tetap membuang panggilan dan keluar dengan kode 1.

2117 

2118Sebelum v2.1.319, Claude Code menjawab prompt tanpa hasil tool dan membuang panggilan tersebut. Pada versi-versi tersebut, kirim prompt baru setelah tool tersedia.

2096 2119 

2097### PermissionRequest2120### PermissionRequest

2098 2121 


2148| `message` | Hanya untuk `"deny"`: memberi tahu Claude mengapa izin ditolak |2171| `message` | Hanya untuk `"deny"`: memberi tahu Claude mengapa izin ditolak |

2149| `interrupt` | Hanya untuk `"deny"`: jika `true`, menghentikan Claude |2172| `interrupt` | Hanya untuk `"deny"`: jika `true`, menghentikan Claude |

2150 2173 

2174Untuk mengizinkan atau menulis ulang perintah Monitor, lihat [Mencocokkan perintah Monitor](#match-monitor-commands).

2175 

2151Hook yang keluar dengan kode 2 tanpa objek `decision` membiarkan alur izin tidak berubah, dan stderr-nya dibuang. Untuk memberikan atau menolak permintaan, kembalikan objek `decision`.2176Hook yang keluar dengan kode 2 tanpa objek `decision` membiarkan alur izin tidak berubah, dan stderr-nya dibuang. Untuk memberikan atau menolak permintaan, kembalikan objek `decision`.

2152 2177 

2153```json theme={null}2178```json theme={null}


2205* Untuk menjalankan hook setelah tool apa pun berhasil diselesaikan, hilangkan `matcher` atau atur ke `"*"`. Hook Anda kemudian dapat menemukan sendiri apa yang berubah, misalnya dengan menjalankan `git status --porcelain`, yang juga mencantumkan file yang tidak terlacak yang terlewat oleh `git diff`. Untuk panggilan tool yang gagal, tambahkan hook yang sama di bawah [PostToolUseFailure](#posttoolusefailure).2230* Untuk menjalankan hook setelah tool apa pun berhasil diselesaikan, hilangkan `matcher` atau atur ke `"*"`. Hook Anda kemudian dapat menemukan sendiri apa yang berubah, misalnya dengan menjalankan `git status --porcelain`, yang juga mencantumkan file yang tidak terlacak yang terlewat oleh `git diff`. Untuk panggilan tool yang gagal, tambahkan hook yang sama di bawah [PostToolUseFailure](#posttoolusefailure).

2206* Untuk menjalankan hook ketika file tertentu berubah di disk, apa pun yang menulisnya, gunakan [FileChanged](#filechanged). Claude Code tidak menjalankan hook `PostToolUse` yang mencocokkan `Edit|Write` ketika perintah `Bash` atau proses di luar Claude Code menulis ulang file yang sama.2231* Untuk menjalankan hook ketika file tertentu berubah di disk, apa pun yang menulisnya, gunakan [FileChanged](#filechanged). Claude Code tidak menjalankan hook `PostToolUse` yang mencocokkan `Edit|Write` ketika perintah `Bash` atau proses di luar Claude Code menulis ulang file yang sama.

2207 2232 

2233#### PostToolUse setelah interupsi

2234 

2235Jika hook `PostToolUse` berhenti lebih awal setelah Anda mengirim pesan atau menginterupsi selama panggilan tool, periksa apakah Anda menekan `Ctrl+Enter`, `Enter`, atau `Esc`:

2236 

2237* **`Ctrl+Enter`**: jika menekannya [mengakhiri giliran](https://code.claude.com/docs/id/interactive-mode.md#when-claude-code-sends-what-you-queued) saat tool sedang berjalan dan tool selesai, hook `PostToolUse` Anda berjalan pada hasilnya dan memiliki waktu 10 detik untuk selesai. Tombol ini berfungsi sebagai `Esc` jika Anda mengantrekan perintah `!` sebelum pesan Anda atau tugas latar belakang dinonaktifkan, misalnya dengan [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](https://code.claude.com/docs/id/env-vars#variables).

2238* **`Enter`**: pesan yang Anda antrekan dengan `Enter` tidak menginterupsi giliran, sehingga hook mempertahankan `timeout` biasanya.

2239* **`Esc`**: Anda langsung membatalkan hook, jadi kirim pesan dengan `Enter` atau `Ctrl+Enter` ketika hook harus berjalan.

2240 

2241Ketika 10 detik habis, Claude Code menghentikan paksa command hook yang masih berjalan, berapa pun [`timeout`](#common-fields)-nya. Agar command hook yang lebih lama dapat selesai, jalankan dengan [`async: true`](#run-hooks-in-the-background), yang berarti hook tidak dapat memblokir atau menulis ulang hasilnya.

2242 

2243Sebelum v2.1.319, hook tidak dimulai setelah Anda menginterupsi giliran dengan pesan, dan hook yang sedang berjalan dihentikan.

2244 

2208#### Input PostToolUse2245#### Input PostToolUse

2209 2246 

2210Hook `PostToolUse` dipicu setelah tool berhasil dieksekusi. Input mencakup `tool_input`, yaitu argumen yang dikirim ke tool, dan `tool_response`, yaitu hasil yang dikembalikannya. Skema persis untuk keduanya bergantung pada tool. Path `tool_input` pada tool file tiba dalam format yang sama seperti untuk [PreToolUse](#pretooluse-input): selalu absolut, dengan separator native platform, jadi backslash di Windows. Untuk tool MCP, input juga membawa objek [`mcp_server`](#pretooluse-input).2247Hook `PostToolUse` dipicu setelah tool berhasil dieksekusi. Input mencakup `tool_input`, yaitu argumen yang dikirim ke tool, dan `tool_response`, yaitu hasil yang dikembalikannya. Skema persis untuk keduanya bergantung pada tool. Path `tool_input` pada tool file tiba dalam format yang sama seperti untuk [PreToolUse](#pretooluse-input): selalu absolut, dengan separator native platform, jadi backslash di Windows. Untuk tool MCP, input juga membawa objek [`mcp_server`](#pretooluse-input).


2479| `permission_prompt` | Claude membutuhkan Anda untuk menyetujui penggunaan tool atau [permintaan jaringan](https://code.claude.com/docs/id/sandboxing.md#network-isolation) dari perintah yang di-sandbox, dan permintaan izin telah menunggu sekitar enam detik |2516| `permission_prompt` | Claude membutuhkan Anda untuk menyetujui penggunaan tool atau [permintaan jaringan](https://code.claude.com/docs/id/sandboxing.md#network-isolation) dari perintah yang di-sandbox, dan permintaan izin telah menunggu sekitar enam detik |

2480| `idle_prompt` | Claude selesai merespons sekitar 60 detik yang lalu dan Anda belum mengetik sejak itu |2517| `idle_prompt` | Claude selesai merespons sekitar 60 detik yang lalu dan Anda belum mengetik sejak itu |

2481| `auth_success` | Autentikasi selesai |2518| `auth_success` | Autentikasi selesai |

2519| `auth_storage_failure` | Proses masuk Anda selesai, tetapi Claude Code tidak dapat menyimpan kredensial baru ke [penyimpanan kredensial](https://code.claude.com/docs/id/authentication.md#credential-management) miliknya. Dipicu sebagai pengganti `auth_success` |

2482| `elicitation_dialog` | Server MCP membuka formulir elicitation dan Anda belum mengetik selama sekitar enam detik |2520| `elicitation_dialog` | Server MCP membuka formulir elicitation dan Anda belum mengetik selama sekitar enam detik |

2483| `elicitation_url_dialog` | Server MCP meminta Anda membuka URL browser dan Anda belum mengetik selama sekitar enam detik |2521| `elicitation_url_dialog` | Server MCP meminta Anda membuka URL browser dan Anda belum mengetik selama sekitar enam detik |

2484| `elicitation_complete` | Server MCP melaporkan bahwa [elicitation mode URL](#elicitation-input) telah selesai |2522| `elicitation_complete` | Server MCP melaporkan bahwa [elicitation mode URL](#elicitation-input) telah selesai |


2490| `quota_auto_resume_disabled` | Claude Code mengakhiri penantiannya untuk batas penggunaan claude.ai tanpa melanjutkan tugas Anda: [`autoContinueAtUsageLimit`](https://code.claude.com/docs/id/settings-reference#autocontinueatusagelimit) dimatikan atau reset bergeser lebih dari 24 jam selama penantian yang dimulai Claude Code sendiri, tugas yang dilanjutkan terus mencapai batas, atau kelanjutan diblokir sebelum mencapai model. Tidak dipicu ketika Anda menekan `Esc` atau `Ctrl+C`, atau memilih **Don't continue automatically** |2528| `quota_auto_resume_disabled` | Claude Code mengakhiri penantiannya untuk batas penggunaan claude.ai tanpa melanjutkan tugas Anda: [`autoContinueAtUsageLimit`](https://code.claude.com/docs/id/settings-reference#autocontinueatusagelimit) dimatikan atau reset bergeser lebih dari 24 jam selama penantian yang dimulai Claude Code sendiri, tugas yang dilanjutkan terus mencapai batas, atau kelanjutan diblokir sebelum mencapai model. Tidak dipicu ketika Anda menekan `Esc` atau `Ctrl+C`, atau memilih **Don't continue automatically** |

2491| `plugin_notification` | Sebuah [mod](https://code.claude.com/docs/id/plugins/mods/api.md#show-something-without-starting-a-turn) memunculkan notifikasi dengan `$.ui.notify`. `title` hook adalah nama mod kecuali mod tersebut menetapkannya |2529| `plugin_notification` | Sebuah [mod](https://code.claude.com/docs/id/plugins/mods/api.md#show-something-without-starting-a-turn) memunculkan notifikasi dengan `$.ui.notify`. `title` hook adalah nama mod kecuali mod tersebut menetapkannya |

2492 2530 

2493Jenis `quota_auto_resume_fired`, `quota_auto_resume_stale`, dan `quota_auto_resume_disabled` memerlukan Claude Code v2.1.234 atau lebih baru.2531Tipe `quota_auto_resume_fired`, `quota_auto_resume_stale`, dan `quota_auto_resume_disabled` memerlukan Claude Code v2.1.234 atau yang lebih baru. Tipe `auth_storage_failure` memerlukan v2.1.288 atau yang lebih baru.

2494 2532 

2495Dalam sesi terminal, `permission_prompt` untuk permintaan jaringan dari perintah yang di-sandbox memerlukan Claude Code v2.1.246 atau lebih baru.2533Dalam sesi terminal, `permission_prompt` untuk permintaan jaringan dari perintah yang di-sandbox memerlukan Claude Code v2.1.246 atau lebih baru.

2496 2534 


3326}3364}

3327```3365```

3328 3366 

3367#### Output PreCompact

3368 

3369Ketika hook PreCompact keluar dengan 0 dan tidak memblokir, Claude Code menggunakan stdout-nya sebagai instruksi untuk ringkasan compaction. Jaga stdout tersebut di bawah 10.000 karakter per hook. Claude Code memotong output yang lebih panjang pada batas tersebut dan menambahkan penanda.

3370 

3329### PostCompact3371### PostCompact

3330 3372 

3331Berjalan setelah Claude Code menyelesaikan operasi compact. Gunakan event ini untuk bereaksi terhadap state baru yang sudah di-compact, misalnya untuk mencatat ringkasan yang dihasilkan atau memperbarui state eksternal. Claude Code membuang field `systemMessage` dan `continue` dari hook PostCompact.3373Berjalan setelah Claude Code menyelesaikan operasi compact. Gunakan event ini untuk bereaksi terhadap state baru yang sudah di-compact, misalnya untuk mencatat ringkasan yang dihasilkan atau memperbarui state eksternal. Claude Code membuang field `systemMessage` dan `continue` dari hook PostCompact.

hooks-guide.md +4 −3

Details

177> >177> >

178> > Jika Anda menjalankan Claude Code di dalam WSL, `powershell.exe` harus tersedia di `PATH` Anda melalui interop Windows.178> > Jika Anda menjalankan Claude Code di dalam WSL, `powershell.exe` harus tersedia di `PATH` Anda melalui interop Windows.

179 179 

180Matcher kosong `matcher` aktif pada semua jenis notifikasi. Untuk aktif hanya pada acara tertentu, atur ke salah satu nilai berikut:180Matcher kosong `matcher` aktif pada semua jenis notifikasi. Untuk aktif hanya pada acara tertentu, atur ke jenis notifikasi, seperti salah satu nilai berikut:

181 181 

182| Matcher | Aktif ketika |182| Matcher | Aktif ketika |

183| :- | :- |183| :- | :- |

184| `permission_prompt` | Claude memerlukan Anda untuk menyetujui penggunaan alat atau [permintaan jaringan](https://code.claude.com/docs/id/sandboxing.md#network-isolation) perintah sandboxed, dan prompt telah menunggu sekitar enam detik |184| `permission_prompt` | Claude memerlukan Anda untuk menyetujui penggunaan alat atau [permintaan jaringan](https://code.claude.com/docs/id/sandboxing.md#network-isolation) perintah sandboxed, dan prompt telah menunggu sekitar enam detik |

185| `idle_prompt` | Claude selesai merespons sekitar 60 detik yang lalu dan Anda belum mengetik sejak saat itu |185| `idle_prompt` | Claude selesai merespons sekitar 60 detik yang lalu dan Anda belum mengetik sejak saat itu |

186| `auth_success` | Autentikasi selesai |186| `auth_success` | Autentikasi selesai |

187| `auth_storage_failure` | Proses masuk Anda selesai, tetapi Claude Code tidak dapat menyimpan kredensial baru ke [penyimpanan kredensial](https://code.claude.com/docs/id/authentication.md#credential-management)-nya. Aktif sebagai pengganti `auth_success` |

187| `elicitation_dialog` | Server MCP membuka formulir elicitation dan Anda belum mengetik selama sekitar enam detik |188| `elicitation_dialog` | Server MCP membuka formulir elicitation dan Anda belum mengetik selama sekitar enam detik |

188| `elicitation_url_dialog` | Server MCP meminta Anda untuk membuka URL browser dan Anda belum mengetik selama sekitar enam detik |189| `elicitation_url_dialog` | Server MCP meminta Anda untuk membuka URL browser dan Anda belum mengetik selama sekitar enam detik |

189| `elicitation_complete` | Server MCP melaporkan bahwa [elicitation mode URL](https://code.claude.com/docs/id/hooks.md#elicitation-input) selesai |190| `elicitation_complete` | Server MCP melaporkan bahwa [elicitation mode URL](https://code.claude.com/docs/id/hooks.md#elicitation-input) selesai |


197 198 

198Claude Code mengatur waktu `permission_prompt` berbeda di terminal dan di Claude Desktop, ekstensi VS Code, dan host lain yang menjawab permintaan izin melalui Agent SDK. Lihat [kapan setiap jenis notifikasi aktif](https://code.claude.com/docs/id/hooks.md#notification) untuk kedua waktu.199Claude Code mengatur waktu `permission_prompt` berbeda di terminal dan di Claude Desktop, ekstensi VS Code, dan host lain yang menjawab permintaan izin melalui Agent SDK. Lihat [kapan setiap jenis notifikasi aktif](https://code.claude.com/docs/id/hooks.md#notification) untuk kedua waktu.

199 200 

200Matcher `quota_auto_resume_fired`, `quota_auto_resume_stale`, dan `quota_auto_resume_disabled` memerlukan Claude Code v2.1.234 atau lebih baru.201Matcher `quota_auto_resume_fired`, `quota_auto_resume_stale`, dan `quota_auto_resume_disabled` memerlukan Claude Code v2.1.234 atau lebih baru. Matcher `auth_storage_failure` memerlukan v2.1.288 atau lebih baru.

201 202 

202Dalam sesi terminal, `permission_prompt` untuk permintaan jaringan perintah sandboxed memerlukan Claude Code v2.1.246 atau lebih baru.203Dalam sesi terminal, `permission_prompt` untuk permintaan jaringan perintah sandboxed memerlukan Claude Code v2.1.246 atau lebih baru.

203 204 


688| `SessionStart` | cara sesi dimulai | `startup`, `resume`, `clear`, `compact`, `fork` |689| `SessionStart` | cara sesi dimulai | `startup`, `resume`, `clear`, `compact`, `fork` |

689| `Setup` | flag CLI mana yang memicu setup | `init`, `maintenance` |690| `Setup` | flag CLI mana yang memicu setup | `init`, `maintenance` |

690| `SessionEnd` | mengapa sesi berakhir | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |691| `SessionEnd` | mengapa sesi berakhir | `clear`, `resume`, `logout`, `prompt_input_exit`, `other` |

691| `Notification` | jenis notifikasi | `permission_prompt`, `idle_prompt`, `auth_success`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |692| `Notification` | jenis notifikasi | `permission_prompt`, `idle_prompt`, `auth_success`, `auth_storage_failure`, `elicitation_dialog`, `elicitation_url_dialog`, `elicitation_complete`, `elicitation_response`, `agent_needs_input`, `agent_completed`, `quota_auto_resume_fired`, `quota_auto_resume_stale`, `quota_auto_resume_disabled`, `plugin_notification` |

692| `SubagentStart` | jenis agen | `general-purpose`, `Explore`, `Plan`, atau nama agen khusus |693| `SubagentStart` | jenis agen | `general-purpose`, `Explore`, `Plan`, atau nama agen khusus |

693| `PreCompact`, `PostCompact` | apa yang memicu compaction | `manual`, `auto` |694| `PreCompact`, `PostCompact` | apa yang memicu compaction | `manual`, `auto` |

694| `PreModelSwitch`, `PostModelSwitch` | nama kanonik model yang dialihkan sesi, seperti dijelaskan di bawah [PreModelSwitch](https://code.claude.com/docs/id/hooks.md#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |695| `PreModelSwitch`, `PostModelSwitch` | nama kanonik model yang dialihkan sesi, seperti dijelaskan di bawah [PreModelSwitch](https://code.claude.com/docs/id/hooks.md#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` |

mcp.md +13 −3

Details

252 252 

253Status dalam daftar berikut melaporkan keputusan konfigurasi, bukan upaya koneksi, sehingga Claude Code mencetaknya tanpa terhubung ke server:253Status dalam daftar berikut melaporkan keputusan konfigurasi, bukan upaya koneksi, sehingga Claude Code mencetaknya tanpa terhubung ke server:

254 254 

255* ``⏸ Pending approval (run `claude` to approve)``: server dengan cakupan proyek dari `.mcp.json` yang belum Anda setujui. Claude Code menampilkannya di `claude mcp list` dan `claude mcp get <name>`. Jalankan `claude` secara interaktif untuk meninjau dan menyetujuinya.255* ``⏸ Pending approval (run `claude` to approve)``: server bercakupan proyek dari `.mcp.json` yang belum Anda setujui. Claude Code menampilkannya di `claude mcp list` dan `claude mcp get <name>`. Jalankan `claude` secara interaktif untuk meninjau dan menyetujuinya.

256* `✘ Rejected (see disabledMcpjsonServers in settings)`: server `.mcp.json` yang ditolak oleh entri [`disabledMcpjsonServers`](https://code.claude.com/docs/id/settings-reference#disabledmcpjsonservers). Claude Code hanya menampilkannya di `claude mcp get <name>`.256* `✘ Rejected (see disabledMcpjsonServers in settings)`: server `.mcp.json` yang ditolak oleh entri [`disabledMcpjsonServers`](https://code.claude.com/docs/id/settings-reference#disabledmcpjsonservers). Claude Code hanya menampilkannya di `claude mcp get <name>`.

257* `⊘ Disabled for this project (re-enable via /mcp)`: server yang disebutkan dalam daftar [`disabledMcpServers`](#disable-a-server-without-removing-it) proyek. Claude Code menampilkannya di `claude mcp list` maupun `claude mcp get <name>`. Aktifkan kembali server dari panel `/mcp`.257* `⊘ Disabled for this project (re-enable via /mcp)`: server yang disebutkan dalam daftar [`disabledMcpServers`](#disable-a-server-without-removing-it) proyek. Claude Code menampilkannya di `claude mcp list` maupun `claude mcp get <name>`. Aktifkan kembali server dari panel `/mcp`.

258* `✘ Blocked by enterprise managed policy`: server yang ditolak oleh salah satu kebijakan organisasi Anda. Claude Code menampilkannya di `claude mcp list` dan `claude mcp get <name>`. Server yang diblokir oleh allowlist, denylist, atau pembatasan lain dalam [konfigurasi MCP terkelola](https://code.claude.com/docs/id/managed-mcp.md#how-restrictions-appear-to-users) disembunyikan dari kedua perintah alih-alih ditampilkan dengan status ini. Tanyakan kepada administrator Anda kebijakan mana yang memblokir server tersebut.258* `✘ Blocked by enterprise managed policy`: server yang ditolak oleh salah satu kebijakan organisasi Anda. Claude Code menampilkannya di `claude mcp list` dan `claude mcp get <name>`. Server yang diblokir oleh allowlist, denylist, atau pembatasan lain dalam [konfigurasi MCP terkelola](https://code.claude.com/docs/id/managed-mcp.md#how-restrictions-appear-to-users) disembunyikan dari kedua perintah alih-alih ditampilkan dengan status ini. Tanyakan kepada administrator Anda kebijakan mana yang memblokir server tersebut.


306 306 

307Panel `/mcp` menampilkan jumlah tool di samping setiap server yang terhubung dan menandai server yang mengiklankan kapabilitas tools tetapi tidak menyediakan tool apa pun.307Panel `/mcp` menampilkan jumlah tool di samping setiap server yang terhubung dan menandai server yang mengiklankan kapabilitas tools tetapi tidak menyediakan tool apa pun.

308 308 

309##### Jumlah tool dalam sesi cloud

310 

311Dalam [sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md), jumlah seperti `3 of 13 tools available` berarti Claude tidak dapat menggunakan 10 lainnya. Periksa penyebab-penyebab berikut, di antaranya:

312 

313* **Aturan deny di `.claude/settings.json` repositori Anda menyebutkan tool tersebut atau seluruh servernya**: hapus [aturan](https://code.claude.com/docs/id/permissions.md#mcp) tersebut, jika [sesi Anda membaca file itu](https://code.claude.com/docs/id/settings.md#settings-in-cloud-sessions)

314* **Nama lengkap tool lebih dari 128 karakter**: ikuti [langkah-langkah untuk nama yang terlalu panjang](https://code.claude.com/docs/id/errors.md#mcp-tool-name-over-128-characters)

315* **Server mencantumkan tool untuk antarmukanya sendiri dan bukan untuk Claude**: jika Anda memelihara server tersebut, tambahkan `model` ke `_meta.ui.visibility` tool untuk memberikan tool tersebut kepada Claude. Jika tidak, tidak ada yang perlu diperbaiki.

316 

317##### Tool dari server yang masih terhubung

318 

309Jika permintaan Anda memerlukan tool dari server yang masih dalam proses terhubung di latar belakang, Claude menunggu server tersebut sebelum melanjutkan. Cara penungguan terjadi bergantung pada konfigurasi Anda:319Jika permintaan Anda memerlukan tool dari server yang masih dalam proses terhubung di latar belakang, Claude menunggu server tersebut sebelum melanjutkan. Cara penungguan terjadi bergantung pada konfigurasi Anda:

310 320 

311* **Dengan [tool search](#scale-with-mcp-tool-search), yang merupakan default**: penungguan terjadi di dalam panggilan `ToolSearch`.321* **Dengan [tool search](#scale-with-mcp-tool-search), yang merupakan default**: penungguan terjadi di dalam panggilan `ToolSearch`.


349* Menggagalkan [login MCP OAuth](#authenticate-with-remote-mcp-servers) yang respons otorisasinya menyebutkan issuer yang tidak terduga.359* Menggagalkan [login MCP OAuth](#authenticate-with-remote-mcp-servers) yang respons otorisasinya menyebutkan issuer yang tidak terduga.

350* Mengirim kredensial [MCP OAuth](#authenticate-with-remote-mcp-servers) hanya ke token endpoint yang dilayani melalui HTTPS atau di `localhost`, `127.0.0.1`, atau `::1`. Login gagal untuk server yang token endpoint-nya adalah `http://` biasa di tempat lain, seperti perangkat di jaringan lokal Anda. Lihat [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/id/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).360* Mengirim kredensial [MCP OAuth](#authenticate-with-remote-mcp-servers) hanya ke token endpoint yang dilayani melalui HTTPS atau di `localhost`, `127.0.0.1`, atau `::1`. Login gagal untuk server yang token endpoint-nya adalah `http://` biasa di tempat lain, seperti perangkat di jaringan lokal Anda. Lihat [Refusing to send credentials to non-https token endpoint](https://code.claude.com/docs/id/errors.md#refusing-to-send-credentials-to-non-https-token-endpoint).

351 361 

352Anthropic dapat mempertahankan server tertentu pada protokol sebelumnya, atau di luar stream tersebut, dengan feature flag yang diambil Claude Code.362Anthropic dapat mempertahankan server tertentu pada protokol sebelumnya, atau di luar stream tersebut, dengan feature flag yang diambil Claude Code. Untuk memilih runtime sendiri, tetapkan [`MCP_SDK_GENERATION`](https://code.claude.com/docs/id/env-vars) ke `v1` atau `v2`.

353 363 

354Untuk memilih runtime sendiri, tetapkan [`MCP_SDK_GENERATION`](https://code.claude.com/docs/id/env-vars) ke `v1` atau `v2`. Untuk menentukan apakah Claude Code menanyakan, tetapkan [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/id/env-vars) ke `auto` atau `legacy`.364Untuk menentukan apakah Claude Code menanyakan server tentang revisi yang lebih baru, tetapkan [`MCP_PROTOCOL_NEGOTIATION`](https://code.claude.com/docs/id/env-vars) ke `auto` atau `legacy`. Dengan variabel tersebut tidak ditetapkan, Claude Code dapat melewatkan pertanyaan ke server stdio selama 7 hari, misalnya setelah server keluar ketika ditanya. Agar server yang telah diperbarui ditanya lebih cepat, tetapkan `auto`.

355 365 

356### Pembaruan tool dinamis366### Pembaruan tool dinamis

357 367 

mobile.md +1 −1

Details

66 66 

67### Dapatkan notifikasi push67### Dapatkan notifikasi push

68 68 

69Ketika Remote Control aktif, Claude dapat mengirimkan notifikasi push ke ponsel Anda, biasanya ketika tugas yang berjalan lama selesai atau ketika memerlukan keputusan dari Anda. Anda juga dapat meminta satu dalam prompt Anda, seperti `notify me when the tests finish`. Lihat [notifikasi push mobile](https://code.claude.com/docs/id/remote-control.md#mobile-push-notifications) untuk dua toggle `/config` dan pemecahan masalah pengiriman.69Ketika Remote Control aktif, Claude dapat mengirimkan notifikasi push ke ponsel Anda ketika tugas yang berjalan lama selesai atau ketika memerlukan keputusan dari Anda. Anda juga dapat meminta satu dalam prompt Anda, seperti `notify me when the tests finish`. Lihat [notifikasi push mobile](https://code.claude.com/docs/id/remote-control.md#mobile-push-notifications) untuk dua toggle `/config` dan pemecahan masalah pengiriman.

70 70 

71Dispatch mengirimkan notifikasinya sendiri ketika sesi Code yang dihasilkannya selesai atau memerlukan persetujuan Anda, dijelaskan dalam [sesi dari Dispatch](https://code.claude.com/docs/id/desktop.md#sessions-from-dispatch).71Dispatch mengirimkan notifikasinya sendiri ketika sesi Code yang dihasilkannya selesai atau memerlukan persetujuan Anda, dijelaskan dalam [sesi dari Dispatch](https://code.claude.com/docs/id/desktop.md#sessions-from-dispatch).

72 72 

model-config.md +10 −1

Details

566* Jika kedua model menandai permintaan yang sama, Anda dapat mengedit prompt dan mencoba ulang, atau memulai sesi baru.566* Jika kedua model menandai permintaan yang sama, Anda dapat mengedit prompt dan mencoba ulang, atau memulai sesi baru.

567* Pada [sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md) di aplikasi mobile, mengedit dan mencoba ulang tidak didukung. Beralih model, atau lanjutkan sesi dari browser desktop atau aplikasi desktop.567* Pada [sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md) di aplikasi mobile, mengedit dan mencoba ulang tidak didukung. Beralih model, atau lanjutkan sesi dari browser desktop atau aplikasi desktop.

568* Dalam [mode non-interaktif](https://code.claude.com/docs/id/cli-reference.md#cli-flags) dan integrasi SDK yang tidak dapat menampilkan prompt, permintaan yang ditandai mengakhiri giliran dengan penolakan.568* Dalam [mode non-interaktif](https://code.claude.com/docs/id/cli-reference.md#cli-flags) dan integrasi SDK yang tidak dapat menampilkan prompt, permintaan yang ditandai mengakhiri giliran dengan penolakan.

569* Dalam [subagent](https://code.claude.com/docs/id/sub-agents.md), Claude Code tidak menampilkan prompt, dan permintaan yang ditandai yang akan mengalihkan model dijalankan kembali pada model fallback.569* Dalam subagent yang dimulai Claude dengan [tool Agent](https://code.claude.com/docs/id/tools-reference.md#agent-tool-behavior), Claude Code tidak berhenti sejenak untuk bertanya, dan subagent gagal alih-alih beralih model. Lihat [Subagent beralih atau gagal tanpa bertanya](#subagents-switch-or-fail-without-asking).

570* 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.570* 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.

571 571 

572#### Subagent beralih atau gagal tanpa bertanya

573 

574Dalam [subagent](https://code.claude.com/docs/id/sub-agents.md) bawaan atau kustom yang dimulai Claude dengan [tool Agent](https://code.claude.com/docs/id/tools-reference.md#agent-tool-behavior), Claude Code tidak [berhenti sejenak untuk bertanya](#ask-before-switching) pada permintaan yang ditandai. Jika model fallback tersedia, permintaan dijalankan kembali pada model tersebut atau subagent gagal, sesuai dengan pilihan **Switch models when a message is flagged** Anda di `/config`:

575 

576* **Switch automatically**, atau belum ada pilihan: permintaan dijalankan kembali pada model fallback, dan model sesi Anda tidak berubah

577* **Ask each time**: subagent gagal dengan [`Agent terminated early due to an API error`](https://code.claude.com/docs/id/errors#agent-terminated-early-due-to-an-api-error) dan pesan penolakan. Claude menerima error tersebut dan memutuskan apa yang harus dilakukan terhadap tugas yang belum selesai. Agar subagent dapat beralih model, pilih **Switch automatically**. Percakapan utama Anda kemudian juga beralih tanpa bertanya.

578 

579Ketika tidak ada model fallback yang tersedia, subagent gagal dengan cara yang sama dengan pilihan mana pun. Sebelum v2.1.318, permintaan subagent yang ditandai dijalankan kembali pada model fallback yang tersedia, apa pun pilihan Anda.

580 

572#### Aktifkan fallback pada Bedrock, Agent Platform, dan Foundry581#### Aktifkan fallback pada Bedrock, Agent Platform, dan Foundry

573 582 

574Pada [Amazon Bedrock](https://code.claude.com/docs/id/amazon-bedrock.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/id/google-vertex-ai.md), dan [Microsoft Foundry](https://code.claude.com/docs/id/microsoft-foundry.md), ID model bersifat khusus penyedia, jadi fallback otomatis hanya beroperasi ketika Claude Code dapat mengidentifikasi setiap model yang terlibat:583Pada [Amazon Bedrock](https://code.claude.com/docs/id/amazon-bedrock.md), [Google Cloud's Agent Platform](https://code.claude.com/docs/id/google-vertex-ai.md), dan [Microsoft Foundry](https://code.claude.com/docs/id/microsoft-foundry.md), ID model bersifat khusus penyedia, jadi fallback otomatis hanya beroperasi ketika Claude Code dapat mengidentifikasi setiap model yang terlibat:

Details

89export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem89export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem

90```90```

91 91 

92Jika Anda melihat salah satu dari peringatan berikut, Claude Code tidak dapat memuat file `NODE_EXTRA_CA_CERTS` secara keseluruhan, dan koneksi yang memerlukan sertifikat yang dilewatinya dapat gagal:

93 

94* `Claude Code used only the certificates that it could read in full from the NODE_EXTRA_CA_CERTS file`

95* `Claude Code ignored all of the NODE_EXTRA_CA_CERTS file: it holds no certificate that Claude Code can read`

96 

97Teks lengkap dari setiap peringatan menjelaskan cara memperbaiki file tersebut. Sertifikat yang dilewati tetapi juga ada di [penyimpanan sertifikat CA](#ca-certificate-store) tetap berfungsi.

98 

92## Autentikasi mTLS99## Autentikasi mTLS

93 100 

94Untuk lingkungan enterprise yang memerlukan autentikasi sertifikat klien:101Untuk lingkungan enterprise yang memerlukan autentikasi sertifikat klien:

Details

154 154 

155### Mode izin dengan konfigurasi HIPAA155### Mode izin dengan konfigurasi HIPAA

156 156 

157Dalam organisasi yang telah menerapkan [konfigurasi HIPAA](https://code.claude.com/docs/id/hipaa-setup.md), default `auto` bawaan tidak berlaku. Sesi terminal atau VS Code dimulai dalam mode Manual ketika tidak ada hal lain yang memilih mode izin awalnya. Sesi terminal juga menampilkan `Auto mode isn't the default for your organization · Shift+Tab to switch`, dan ekstensi VS Code tidak menampilkan pemberitahuan. [Periksa cara developer masuk dan terhubung](https://code.claude.com/docs/id/hipaa-setup.md#check-how-developers-sign-in-and-connect) mencantumkan sesi yang terkena ketentuan ini.157Dalam organisasi yang telah menerapkan [konfigurasi HIPAA](https://code.claude.com/docs/id/hipaa-setup.md), [default `auto` bawaan](#which-mode-a-session-starts-in) tidak berlaku. Sesi terminal atau VS Code dimulai dalam mode Manual ketika tidak ada hal lain yang memilih mode izin awalnya. Sesi terminal juga menampilkan `Auto mode isn't the default for your organization · Shift+Tab to switch`, dan ekstensi VS Code tidak menampilkan pemberitahuan. [Periksa cara developer masuk dan terhubung](https://code.claude.com/docs/id/hipaa-setup.md#check-how-developers-sign-in-and-connect) mencantumkan sesi yang terkena ketentuan ini.

158 158 

159Auto mode dan `bypassPermissions` tetap tersedia:159Auto mode dan `bypassPermissions` tetap tersedia:

160 160 


163* **Hapus auto mode**: atur [`permissions.disableAutoMode`](https://code.claude.com/docs/id/settings-reference#disableautomode) ke `"disable"` di pengaturan terkelola163* **Hapus auto mode**: atur [`permissions.disableAutoMode`](https://code.claude.com/docs/id/settings-reference#disableautomode) ke `"disable"` di pengaturan terkelola

164* **Blokir `bypassPermissions`**: atur [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/id/settings-reference#permissions-disablebypasspermissionsmode) ke `"disable"` di pengaturan terkelola164* **Blokir `bypassPermissions`**: atur [`permissions.disableBypassPermissionsMode`](https://code.claude.com/docs/id/settings-reference#permissions-disablebypasspermissionsmode) ke `"disable"` di pengaturan terkelola

165 165 

166Memerlukan Claude Code v2.1.285 atau lebih baru, [versi minimum untuk konfigurasi HIPAA](https://code.claude.com/docs/id/hipaa-setup.md#update-claude-code-and-claude-desktop).

167 

168## Alihkan mode izin166## Alihkan mode izin

169 167 

170Setiap antarmuka memiliki kontrol sendiri untuk beralih mode izin selama sesi dan cara sendiri untuk memilih mode izin yang dimulai sesi baru. Pilih antarmuka Anda untuk melihat kontrolnya.168Setiap antarmuka memiliki kontrol sendiri untuk beralih mode izin selama sesi dan cara sendiri untuk memilih mode izin yang dimulai sesi baru. Pilih antarmuka Anda untuk melihat kontrolnya.


253>251>

254> Di [claude.ai/code](https://claude.ai/code), gunakan dropdown mode di baris di bawah kotak prompt. Di aplikasi mobile, ketuk tombol **+** di kotak prompt, lalu **Permission**. Sesi cloud dan sesi Remote Control menawarkan mode izin yang berbeda:252> Di [claude.ai/code](https://claude.ai/code), gunakan dropdown mode di baris di bawah kotak prompt. Di aplikasi mobile, ketuk tombol **+** di kotak prompt, lalu **Permission**. Sesi cloud dan sesi Remote Control menawarkan mode izin yang berbeda:

255>253>

256> * **[Sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md)**: 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. Auto mode muncul hanya ketika organisasi Anda mengizinkannya dan model yang dipilih mendukungnya. Bypass permissions tidak tersedia.254> * **[Sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md)**: 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. Auto mode muncul kecuali organisasi Anda mematikannya, dan di claude.ai/code opsi ini berwarna abu-abu jika model yang dipilih tidak [mendukungnya](#eliminate-prompts-with-auto-mode). Bypass permissions tidak tersedia.

257> * **[Sesi Remote Control](https://code.claude.com/docs/id/remote-control.md)** di mesin lokal Anda: Manual, Accept edits, Plan, dan Auto untuk sesi yang Anda mulai sendiri, dan Anda tidak dapat memilih Bypass permissions dari aplikasi. Untuk menggunakan Auto, sesi harus memenuhi [persyaratan ketersediaan](#eliminate-prompts-with-auto-mode) auto mode. Untuk thread proyek yang berjalan di komputer Anda, lihat [Jalankan thread di komputer Anda sendiri](https://code.claude.com/docs/id/claude-projects.md#run-a-thread-on-your-own-computer).255> * **[Sesi Remote Control](https://code.claude.com/docs/id/remote-control.md)** di mesin lokal Anda: Manual, Accept edits, Plan, dan Auto untuk sesi yang Anda mulai sendiri, dan Anda tidak dapat memilih Bypass permissions dari aplikasi. Untuk menggunakan Auto, sesi harus memenuhi [persyaratan ketersediaan](#eliminate-prompts-with-auto-mode) auto mode. Untuk thread proyek yang berjalan di komputer Anda, lihat [Jalankan thread di komputer Anda sendiri](https://code.claude.com/docs/id/claude-projects.md#run-a-thread-on-your-own-computer).

258> * 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.256> * 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.

259> * Sesi yang dihosting oleh [aplikasi desktop](https://code.claude.com/docs/id/desktop.md) atau [ekstensi VS Code](https://code.claude.com/docs/id/vs-code.md) melaporkan perubahan mode izin ke claude.ai saat terjadi, sama seperti sesi yang dihosting di terminal.257> * Sesi yang dihosting oleh [aplikasi desktop](https://code.claude.com/docs/id/desktop.md) atau [ekstensi VS Code](https://code.claude.com/docs/id/vs-code.md) melaporkan perubahan mode izin ke claude.ai saat terjadi, sama seperti sesi yang dihosting di terminal.


433claude --permission-mode auto --debug-file classifier-debug.log431claude --permission-mode auto --debug-file classifier-debug.log

434```432```

435 433 

436Minta Claude menjalankan perintah shell yang tidak read-only, lalu cari `classifier_request_started` di log:434Untuk memberi pengklasifikasi perintah untuk ditinjau, minta Claude menjalankan `curl https://example.com`, lalu cari `classifier_request_started` di log:

437 435 

438* **Model Anda setelah `model=`**: variabel tersebut berlaku436* **Model Anda setelah `model=`**: variabel tersebut berlaku

439* **Model lain setelah `model=`**: cari `ignoring CLAUDE_CODE_AUTO_MODE_MODEL` di log, yang memberikan alasannya dan langkah apa pun yang perlu diambil437* **Model lain setelah `model=`**: cari `ignoring CLAUDE_CODE_AUTO_MODE_MODEL` di log, yang memberikan alasannya dan langkah apa pun yang perlu diambil

440* **Tidak ada baris seperti itu**: baca `Auto mode server` di `/status` pada prompt Claude Code:438* **Tidak ada baris seperti itu**: baca `Auto mode server` di `/status` pada prompt Claude Code:

441 * **`Enabled`**: [server](#server-side-classifier-review) diatur untuk meninjau panggilan sesi ini.439 * **`Enabled`**: [server](#server-side-classifier-review) diatur untuk meninjau panggilan sesi ini.

442 * **`Disabled`**: pastikan [mode izin](#switch-permission-modes) adalah auto, lalu minta Claude menjalankan perintah lain yang tidak read-only.440 * **`Disabled`**: pemeriksaan ini belum menguji model Anda. Pastikan [mode izin](#switch-permission-modes) adalah auto dan tidak ada [aturan izin](https://code.claude.com/docs/id/permissions.md#manage-permissions) yang cocok dengan `curl`, lalu jalankan pemeriksaan lagi dengan [sandbox](https://code.claude.com/docs/id/sandboxing.md) dimatikan.

443 441 

444### Apa yang diblokir pengklasifikasi secara default442### Apa yang diblokir pengklasifikasi secara default

445 443 

permissions.md +7 −4

Details

338 338 

339#### Apa yang dicakup oleh aturan `Read` dan `Edit`339#### Apa yang dicakup oleh aturan `Read` dan `Edit`

340 340 

341Aturan `Edit` berlaku untuk semua tool bawaan yang mengedit file. Claude melakukan upaya terbaik untuk menerapkan aturan `Read` ke semua tool bawaan yang membaca file seperti Grep dan Glob, ke mention `@file` dalam prompt Anda, dan ke konteks seleksi serta file terbuka yang dibagikan oleh [IDE](https://code.claude.com/docs/id/vs-code.md#the-built-in-ide-mcp-server) yang terhubung kepada Claude.341Aturan `Edit` berlaku untuk semua tool bawaan yang mengedit file. Claude melakukan upaya terbaik untuk menerapkan aturan deny `Read(path)` ke semua tool bawaan yang membaca file seperti Grep dan Glob. Claude melakukan upaya yang sama untuk menerapkan aturan deny `Read(path)` ke mention `@file` dalam prompt Anda dan ke konteks seleksi serta file terbuka yang dibagikan oleh [IDE](https://code.claude.com/docs/id/vs-code.md#the-built-in-ide-mcp-server) yang terhubung kepada Claude.

342 342 

343Aturan deny `Read(path)` juga berlaku untuk path gambar yang Anda tempelkan ke dalam prompt dan direktori yang Anda @-mention:343Aturan deny `Read(path)` juga berlaku untuk path gambar yang Anda tempelkan ke dalam prompt dan direktori yang Anda @-mention:

344 344 


353>353>

354> Aturan deny Read dan Edit berlaku untuk tool file bawaan Claude, untuk perintah file yang dikenali Claude Code dalam Bash, seperti `cat`, `head`, `tail`, `sed`, dan `tee`, serta untuk target [pengalihan](#redirections) Bash seperti `> file` dan `< file`. Aturan tersebut tidak berlaku untuk perintah yang membaca file tanpa menyebutkan namanya, seperti `grep -r pattern .` yang dijalankan dari direktori yang berisi file tersebut, atau untuk subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file sendiri. Untuk penegakan tingkat OS yang memblokir semua proses agar tidak mengakses sebuah path, [aktifkan sandbox](https://code.claude.com/docs/id/sandboxing.md).354> Aturan deny Read dan Edit berlaku untuk tool file bawaan Claude, untuk perintah file yang dikenali Claude Code dalam Bash, seperti `cat`, `head`, `tail`, `sed`, dan `tee`, serta untuk target [pengalihan](#redirections) Bash seperti `> file` dan `< file`. Aturan tersebut tidak berlaku untuk perintah yang membaca file tanpa menyebutkan namanya, seperti `grep -r pattern .` yang dijalankan dari direktori yang berisi file tersebut, atau untuk subproses arbitrer yang membaca atau menulis file secara tidak langsung, seperti skrip Python atau Node yang membuka file sendiri. Untuk penegakan tingkat OS yang memblokir semua proses agar tidak mengakses sebuah path, [aktifkan sandbox](https://code.claude.com/docs/id/sandboxing.md).

355 355 

356#### Aturan `Write(path)`, `NotebookEdit(path)`, dan `Glob(path)` tidak pernah cocok356#### Aturan `Write(path)`, `Glob(path)`, dan `Grep(path)` tidak cocok

357 357 

358Claude Code memeriksa izin file hanya terhadap aturan `Edit(path)` dan `Read(path)`. Jika Anda menulis aturan path untuk `Write`, `NotebookEdit`, `Glob`, atau tool lama `MultiEdit`, Claude Code menerima aturan tersebut tetapi tidak pernah mencocokkan pembacaan atau pengeditan dengannya.358Claude Code memeriksa izin file terhadap aturan `Edit(path)` dan `Read(path)`. Claude Code menerima aturan dengan path selain `*` untuk salah satu tool di bawah ini tetapi tidak mencocokkan pembacaan, pencarian, atau pengeditan dengannya. Aturan deny `Grep(docs/**)` tidak menghentikan Grep dari mencari di `docs`. Tulis aturan `Edit` atau `Read` sebagai gantinya:

359 359 

360Gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`, `NotebookEdit(docs/**)`, atau `MultiEdit(docs/**)`, dan `Read(docs/**)` sebagai pengganti `Glob(docs/**)`. Untuk mencocokkan setiap penggunaan tool Write, NotebookEdit, atau Glob terlepas dari path-nya, tulis hanya nama tool-nya.360* **`Write`, `NotebookEdit`, atau `MultiEdit` lama**: gunakan `Edit(docs/**)` sebagai pengganti `Write(docs/**)`.

361* **`Glob` atau `Grep`**: gunakan `Read(docs/**)` sebagai pengganti `Grep(docs/**)`. Sebagai aturan ask, `Read(docs/**)` memunculkan permintaan izin ketika Claude memanggil Grep atau Glob pada path yang cocok, tetapi tidak ketika pencarian di direktori kerja di atasnya mengembalikan file yang cocok.

362 

363Untuk mencocokkan setiap penggunaan salah satu tool ini terlepas dari path-nya, [tulis hanya nama tool-nya](#match-all-uses-of-a-tool).

361 364 

362#### Cara pola path dicocokkan365#### Cara pola path dicocokkan

363 366 

Details

608 608 

609#### Memvalidasi direktori609#### Memvalidasi direktori

610 610 

611`<path>` adalah file manifes atau direktori. Jika diberi direktori, Claude Code memilih apa yang divalidasi berdasarkan apa yang ditemukannya di sana:611`<path>` adalah [file manifes](#validate-a-manifest-file) atau direktori. Jika diberi direktori, Claude Code memilih apa yang divalidasi berdasarkan apa yang ditemukannya di sana:

612 612 

613* `.claude-plugin/marketplace.json`, jika ada613* `.claude-plugin/marketplace.json`, jika ada

614* Jika tidak, `.claude-plugin/plugin.json`614* Jika tidak, `.claude-plugin/plugin.json`


631* **`CLAUDE.md` di root plugin**: dalam eksekusi plugin, Claude Code juga memperingatkan tentang `CLAUDE.md` di root plugin631* **`CLAUDE.md` di root plugin**: dalam eksekusi plugin, Claude Code juga memperingatkan tentang `CLAUDE.md` di root plugin

632* **File plugin dalam eksekusi marketplace**: dari direktori marketplace, Claude Code tidak membuka file skill, agent, perintah, atau hook dari plugin yang dicantumkan marketplace di direktori lain, maupun file server MCP yang dibundelnya. Untuk menemukan kesalahan di file-file tersebut, validasi setiap direktori plugin632* **File plugin dalam eksekusi marketplace**: dari direktori marketplace, Claude Code tidak membuka file skill, agent, perintah, atau hook dari plugin yang dicantumkan marketplace di direktori lain, maupun file server MCP yang dibundelnya. Untuk menemukan kesalahan di file-file tersebut, validasi setiap direktori plugin

633 633 

634#### Memvalidasi file manifes

635 

636Ketika file tidak bernama `plugin.json` atau `marketplace.json` dan tidak berada di direktori `.claude-plugin`, Claude Code menentukan jenisnya berdasarkan field-nya. Claude Code memvalidasi file tersebut sebagai marketplace dalam kasus-kasus berikut, dan selain itu sebagai manifes plugin:

637 

638* `plugins` adalah array

639* `plugins` dan `owner` sama-sama ada

640* File memiliki field yang hanya didefinisikan oleh `marketplace.json`, seperti `owner`, dan tidak memiliki field yang hanya didefinisikan oleh `plugin.json`, seperti `author`

641 

642Untuk memilih pemeriksaan sendiri, beri nama file `plugin.json` atau `marketplace.json`. Claude Code memvalidasi file lain apa pun di direktori `.claude-plugin` sebagai manifes plugin.

643 

634#### Output dan exit code644#### Output dan exit code

635 645 

636Claude Code mencetak file yang divalidasinya, setiap kesalahan dan peringatan beserta path-nya, dan baris putusan. Exit code mengikuti putusan tersebut:646Claude Code mencetak file yang divalidasinya, setiap kesalahan dan peringatan beserta path-nya, dan baris putusan. Exit code mengikuti putusan tersebut:

Details

455 455 

456## Pesan validasi456## Pesan validasi

457 457 

458`claude plugin validate <path>` mengambil akar marketplace atau file marketplace itu sendiri. Itu mencetak kesalahan dan peringatan. Untuk kode keluar dan `--strict`, lihat [plugin validate](https://code.claude.com/docs/id/plugins/cli-reference.md#plugin-validate).458`claude plugin validate <path>` mengambil akar marketplace atau file marketplace itu sendiri. Agar file tersebut [divalidasi sebagai marketplace](https://code.claude.com/docs/id/plugins/cli-reference.md#validate-a-manifest-file) dan bukan sebagai manifest plugin, beri nama `marketplace.json`. Untuk kode keluar dan `--strict`, lihat [plugin validate](https://code.claude.com/docs/id/plugins/cli-reference.md#plugin-validate).

459 459 

460Pesan menamai entri plugin menurut indeksnya, ditulis sebagai `plugins.1.source` atau `plugins[1].source`.460Pesan menamai entri plugin menurut indeksnya, ditulis sebagai `plugins.1.source` atau `plugins[1].source`.

461 461 

Details

103[Fast mode](https://code.claude.com/docs/id/fast-mode.md) dan kecepatan standar menyimpan cache yang terpisah, sehingga setelah Anda mengaktifkan atau menonaktifkan fast mode, permintaan berikutnya tidak dapat menggunakan apa yang di-cache oleh kecepatan lainnya. Pertama kali Anda mengaktifkan fast mode dalam suatu percakapan, permintaan berikutnya membaca seluruh percakapan sejauh ini tanpa cache dengan [tarif fast mode](https://code.claude.com/docs/id/fast-mode.md#understand-the-cost-tradeoff). Agar biaya tersebut tetap kecil, aktifkan fast mode di awal sesi.103[Fast mode](https://code.claude.com/docs/id/fast-mode.md) dan kecepatan standar menyimpan cache yang terpisah, sehingga setelah Anda mengaktifkan atau menonaktifkan fast mode, permintaan berikutnya tidak dapat menggunakan apa yang di-cache oleh kecepatan lainnya. Pertama kali Anda mengaktifkan fast mode dalam suatu percakapan, permintaan berikutnya membaca seluruh percakapan sejauh ini tanpa cache dengan [tarif fast mode](https://code.claude.com/docs/id/fast-mode.md#understand-the-cost-tradeoff). Agar biaya tersebut tetap kecil, aktifkan fast mode di awal sesi.

104 104 

105* Jika Anda mengaktifkannya saat Claude sedang bekerja, giliran tersebut selesai dengan kecepatan standar, dan Anda membayar pembacaan tanpa cache apa pun pada permintaan pertama giliran Anda berikutnya.105* Jika Anda mengaktifkannya saat Claude sedang bekerja, giliran tersebut selesai dengan kecepatan standar, dan Anda membayar pembacaan tanpa cache apa pun pada permintaan pertama giliran Anda berikutnya.

106* Jika model Anda saat ini tidak mendukung fast mode, mengaktifkan fast mode juga [mengganti model Anda ke Opus](https://code.claude.com/docs/id/fast-mode.md#toggle-fast-mode). [Pergantian model](#switching-models) itu dengan sendirinya memulai cache baru sejak permintaan berikutnya dalam giliran yang sedang berjalan.106* Jika model Anda saat ini tidak mendukung fast mode, menjalankan `/fast` juga [mengganti model Anda ke Opus](https://code.claude.com/docs/id/fast-mode.md#toggle-fast-mode). [Pergantian model](#switching-models) itu dengan sendirinya memulai cache baru sejak permintaan berikutnya dalam giliran yang sedang berjalan.

107 107 

108Setiap peralihan berikutnya membaca tanpa cache apa pun yang belum di-cache oleh kecepatan tujuan Anda. Perubahan kecepatan yang dilakukan Claude Code dengan sendirinya, seperti [fallback ke kecepatan standar](https://code.claude.com/docs/id/fast-mode.md#handle-rate-limits) setelah rate limit dan kembalinya ke fast mode nanti, juga dihitung sebagai peralihan.108Setiap peralihan berikutnya membaca tanpa cache apa pun yang belum di-cache oleh kecepatan tujuan Anda. Perubahan kecepatan yang dilakukan Claude Code dengan sendirinya, seperti [fallback ke kecepatan standar](https://code.claude.com/docs/id/fast-mode.md#handle-rate-limits) setelah rate limit dan kembalinya ke fast mode nanti, juga dihitung sebagai peralihan.

109 109 

Details

147* **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.147* **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.

148* **The server no longer reports this session**: mungkin telah dihapus dari perangkat atau aplikasi lain.148* **The server no longer reports this session**: mungkin telah dihapus dari perangkat atau aplikasi lain.

149 149 

150Jika `/remote-control` membuka dialog yang bertuliskan `Remote Control isn't connected.`, ikuti langkah yang diberikan dialog tersebut, seperti menjalankan `/login` atau memilih **Continue** lalu mencoba lagi.

151 

150### Connect from another device152### Connect from another device

151 153 

152Setelah sesi Remote Control aktif, Anda memiliki beberapa cara untuk terhubung dari perangkat lain:154Setelah sesi Remote Control aktif, Anda memiliki beberapa cara untuk terhubung dari perangkat lain:


318 320 

319Ketika Remote Control aktif, Claude dapat mengirim notifikasi push ke ponsel Anda.321Ketika Remote Control aktif, Claude dapat mengirim notifikasi push ke ponsel Anda.

320 322 

321Claude 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.323Push dapat tiba ketika tugas yang berjalan lama selesai atau ketika Claude memerlukan keputusan dari Anda. 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.

322 324 

323Untuk mengatur notifikasi push mobile:325Untuk mengatur notifikasi push mobile:

324 326 

Details

25| [Dev container](#dev-containers) | Lingkungan pengembangan lengkap | Ya | Sedang |25| [Dev container](#dev-containers) | Lingkungan pengembangan lengkap | Ya | Sedang |

26| [Custom container](#custom-container) | Lingkungan pengembangan lengkap | Ya | Sedang hingga tinggi |26| [Custom container](#custom-container) | Lingkungan pengembangan lengkap | Ya | Sedang hingga tinggi |

27| [Virtual machine](#virtual-machine) | Sistem operasi lengkap | Tidak | Tinggi |27| [Virtual machine](#virtual-machine) | Sistem operasi lengkap | Tidak | Tinggi |

28| [Cloud sessions](#cloud-sessions) | Sistem operasi lengkap, dihosting oleh Anthropic | Tidak | Tidak ada; memerlukan langganan Claude, dan akun GitHub yang terhubung kecuali Anda meluncurkan dengan `claude --cloud` |28| [Cloud sessions](#cloud-sessions) | Sistem operasi lengkap, dihosting oleh Anthropic | Tidak | Tidak ada; memerlukan langganan Claude, dan akun GitHub yang terhubung untuk mengkloning repositori GitHub |

29 29 

30[Sandboxed Bash tool](https://code.claude.com/docs/id/sandboxing.md) bawaan di Claude Code dan membatasi perintah Bash. Alat file bawaan, server MCP, dan hooks masih berjalan langsung di host Anda. Setiap pendekatan lain dalam tabel menempatkan seluruh proses Claude Code di dalam batas isolasi, sehingga alat file, server MCP, dan hooks juga dibatasi.30[Sandboxed Bash tool](https://code.claude.com/docs/id/sandboxing.md) bawaan di Claude Code dan membatasi perintah Bash. Alat file bawaan, server MCP, dan hooks masih berjalan langsung di host Anda. Setiap pendekatan lain dalam tabel menempatkan seluruh proses Claude Code di dalam batas isolasi, sehingga alat file, server MCP, dan hooks juga dibatasi.

31 31 


46| Isolasi server MCP dan hooks serta Bash, tanpa Docker | Runtime sandbox |46| Isolasi server MCP dan hooks serta Bash, tanpa Docker | Runtime sandbox |

47| Bekerja pada repositori yang tidak terpercaya | Mesin virtual khusus, atau [Claude Code on the web](https://code.claude.com/docs/id/claude-code-on-the-web.md) jika Anda memiliki langganan Claude; GitHub tidak diperlukan ketika Anda meluncurkan dengan `claude --cloud` |47| Bekerja pada repositori yang tidak terpercaya | Mesin virtual khusus, atau [Claude Code on the web](https://code.claude.com/docs/id/claude-code-on-the-web.md) jika Anda memiliki langganan Claude; GitHub tidak diperlukan ketika Anda meluncurkan dengan `claude --cloud` |

48| Standardisasi lingkungan bersandbox di seluruh tim | [Dev container](https://code.claude.com/docs/id/devcontainer.md) yang telah dikonfigurasi sebelumnya, disalin ke repositori Anda |48| Standardisasi lingkungan bersandbox di seluruh tim | [Dev container](https://code.claude.com/docs/id/devcontainer.md) yang telah dikonfigurasi sebelumnya, disalin ke repositori Anda |

49| Gunakan Claude Code dari perangkat tanpa pengaturan lokal | [Claude Code on the web](https://code.claude.com/docs/id/claude-code-on-the-web.md), yang memerlukan langganan Claude dan akun GitHub yang terhubung |49| Gunakan Claude Code dari perangkat tanpa pengaturan lokal | [Sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md), yang memerlukan langganan Claude, serta akun GitHub yang terhubung untuk mengkloning repositori GitHub |

50| Memerlukan isolasi untuk setiap pengembang di organisasi Anda | [Enforce isolation across an organization](#enforce-isolation-across-an-organization) |50| Memerlukan isolasi untuk setiap pengembang di organisasi Anda | [Enforce isolation across an organization](#enforce-isolation-across-an-organization) |

51| Bekerja pada host Windows asli | Container atau VM, atau jalankan sandbox Bash di dalam WSL2 |51| Bekerja pada host Windows asli | Container atau VM, atau jalankan sandbox Bash di dalam WSL2 |

52 52 


165 165 

166[Sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md) berjalan di mesin virtual terisolasi yang dikelola Anthropic. Proxy jaringan menegakkan allowlist default, dan proxy terpisah menyimpan token GitHub Anda di luar sandbox sambil menerbitkan kredensial dengan cakupan terbatas untuk akses repositori di dalamnya. Sesi yang diarahkan organisasi Anda ke [lingkungan yang di-host sendiri](https://code.claude.com/docs/id/self-hosted-environments) berjalan di infrastruktur yang Anda sediakan sendiri, dan di sana isolasi, kontrol egress, serta kredensial git menjadi tanggung jawab deployment Anda.166[Sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md) berjalan di mesin virtual terisolasi yang dikelola Anthropic. Proxy jaringan menegakkan allowlist default, dan proxy terpisah menyimpan token GitHub Anda di luar sandbox sambil menerbitkan kredensial dengan cakupan terbatas untuk akses repositori di dalamnya. Sesi yang diarahkan organisasi Anda ke [lingkungan yang di-host sendiri](https://code.claude.com/docs/id/self-hosted-environments) berjalan di infrastruktur yang Anda sediakan sendiri, dan di sana isolasi, kontrol egress, serta kredensial git menjadi tanggung jawab deployment Anda.

167 167 

168Gunakan pendekatan ini ketika Anda menginginkan isolasi VM penuh tanpa menyediakan infrastruktur sendiri, atau ketika Anda mendelegasikan tugas dari perangkat yang tidak memiliki lingkungan pengembangan lokal. Pendekatan ini memerlukan langganan Claude. Kecuali Anda meluncurkan dari CLI, Anda juga memerlukan akun GitHub yang terhubung agar sandbox dapat mengkloning repositori Anda. Ketika Anda meluncurkan dari CLI dengan `--cloud`, Claude Code dapat [membundel dan mengunggah repositori lokal Anda](https://code.claude.com/docs/id/claude-code-on-the-web.md#send-local-repositories-without-github) sebagai gantinya. Lihat [Gunakan Claude Code di cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md) untuk ketersediaan paket dan opsi autentikasi GitHub.168Gunakan pendekatan ini ketika Anda menginginkan isolasi VM penuh tanpa menyediakan infrastruktur sendiri, atau ketika Anda mendelegasikan tugas dari perangkat yang tidak memiliki lingkungan pengembangan lokal. Pendekatan ini memerlukan:

169 

170* **Langganan**: langganan Claude

171* **GitHub**: akun GitHub yang terhubung untuk bekerja di repositori GitHub. Ketika Anda meluncurkan dari CLI dengan `--cloud`, Anda tidak memerlukannya jika Claude Code [membundel dan mengunggah repositori lokal Anda](https://code.claude.com/docs/id/claude-code-on-the-web.md#send-local-repositories-without-github)

172 

173Lihat [Gunakan Claude Code di cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md) untuk ketersediaan paket dan opsi autentikasi GitHub.

169 174 

170## Enforce isolation across an organization175## Enforce isolation across an organization

171 176 

Details

46| `CLAUDE_CODE_REMOTE_SLACK_CHANNEL_ID` | Untuk sesi Claude Tag, ID channel Slack atau pesan langsung yang dilayani sesi tersebut atau tempat thread-nya berada, seperti `C0123ABCDE`. Timestamp Slack mengidentifikasi pesan di dalam satu channel, jadi catat ID ini bersama dengan `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS`. Tidak diatur untuk sesi lain, dan dapat juga tidak diatur untuk sesi Claude Tag. |46| `CLAUDE_CODE_REMOTE_SLACK_CHANNEL_ID` | Untuk sesi Claude Tag, ID channel Slack atau pesan langsung yang dilayani sesi tersebut atau tempat thread-nya berada, seperti `C0123ABCDE`. Timestamp Slack mengidentifikasi pesan di dalam satu channel, jadi catat ID ini bersama dengan `CLAUDE_CODE_REMOTE_SLACK_THREAD_TS`. Tidak diatur untuk sesi lain, dan dapat juga tidak diatur untuk sesi Claude Tag. |

47| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Jalur absolut ke file per-sesi yang menyimpan JWT sesi saat ini, tetap segar di seluruh penyegaran token. Subproses shell membacanya untuk header `Authorization` mereka saat mengunduh lampiran yang ditambahkan pengguna ke sesi. `exec` menyimpan variabel secara otomatis; wrapper yang membangun kembali lingkungan anak harus membawa variabel, atau unduhan lampiran berhenti bekerja diam-diam. |47| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | Jalur absolut ke file per-sesi yang menyimpan JWT sesi saat ini, tetap segar di seluruh penyegaran token. Subproses shell membacanya untuk header `Authorization` mereka saat mengunduh lampiran yang ditambahkan pengguna ke sesi. `exec` menyimpan variabel secara otomatis; wrapper yang membangun kembali lingkungan anak harus membawa variabel, atau unduhan lampiran berhenti bekerja diam-diam. |

48| `CLAUDE_CONFIG_DIR` | Direktori konfigurasi Claude per-sesi, ditulis saat awal sesi dari snapshot konfigurasi host runner yang ditangkap runner saat startup; lihat [Permissions and tool approval](#permissions-and-tool-approval). Penulisan di sini terisolasi ke sesi ini. Direktori tetap di bawah `<base-dir>/_sessions/` setelah sesi berakhir kecuali Anda memulai runner dengan [`--remove-session-state`](https://code.claude.com/docs/id/self-hosted-environments-reference#runner-cli-flags); lihat [Reuse a pre-warmed checkout](https://code.claude.com/docs/id/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout). |48| `CLAUDE_CONFIG_DIR` | Direktori konfigurasi Claude per-sesi, ditulis saat awal sesi dari snapshot konfigurasi host runner yang ditangkap runner saat startup; lihat [Permissions and tool approval](#permissions-and-tool-approval). Penulisan di sini terisolasi ke sesi ini. Direktori tetap di bawah `<base-dir>/_sessions/` setelah sesi berakhir kecuali Anda memulai runner dengan [`--remove-session-state`](https://code.claude.com/docs/id/self-hosted-environments-reference#runner-cli-flags); lihat [Reuse a pre-warmed checkout](https://code.claude.com/docs/id/self-hosted-environments-deploy.md#reuse-a-pre-warmed-checkout). |

49| `CLAUDE_CODE_REMOTE_MCP_CONFIG` | Jalur ke file di `CLAUDE_CONFIG_DIR` yang menyimpan definisi server MCP yang dikirimkan bidang kontrol Anthropic untuk sesi ini. Jika wrapper Anda membangun kembali lingkungan anak, bawa variabel ini. Tanpanya, ketika bidang kontrol memperbarui server yang dikirimkan, anak mematikan setiap server stdio, HTTP, atau SSE yang ditambahkan wrapper Anda dengan [`--mcp-config`](https://code.claude.com/docs/id/cli-reference#cli-flags) yang tidak ada dalam pembaruan tersebut. Memerlukan Claude Code v2.1.299 atau lebih baru. |49| `CLAUDE_CODE_REMOTE_MCP_CONFIG` | Jalur ke file di `CLAUDE_CONFIG_DIR` yang menyimpan server MCP yang dikirimkan bidang kontrol. Jika wrapper Anda membangun kembali lingkungan anak, bawa variabel ini, [`CLAUDE_CODE_REMOTE`](https://code.claude.com/docs/id/env-vars#variables), dan `CLAUDE_CODE_ENVIRONMENT_KIND` tanpa diubah; runner menetapkan ketiganya. Jika `CLAUDE_CODE_REMOTE` sampai tetapi variabel ini atau `CLAUDE_CODE_ENVIRONMENT_KIND` tidak, anak menghentikan server stdio, HTTP, dan SSE yang ditambahkan wrapper Anda dengan [`--mcp-config`](https://code.claude.com/docs/id/cli-reference#cli-flags) yang tidak disertakan dalam pembaruan server yang dikirimkan. Memerlukan Claude Code v2.1.299 atau lebih baru. |

50| `ANTHROPIC_BASE_URL` | URL dasar API yang akan digunakan anak, dikirimkan oleh bidang kontrol per sesi dan biasanya `https://api.anthropic.com`. Jangan timpa: kredensial inferensi sesi adalah token OAuth yang dikeluarkan Anthropic yang tidak diterima penyedia lain. |50| `ANTHROPIC_BASE_URL` | URL dasar API yang akan digunakan anak, dikirimkan oleh bidang kontrol per sesi dan biasanya `https://api.anthropic.com`. Jangan timpa: kredensial inferensi sesi adalah token OAuth yang dikeluarkan Anthropic yang tidak diterima penyedia lain. |

51| `CLAUDE_CODE_OAUTH_TOKEN` | Token akses OAuth jangka pendek yang digunakan anak untuk inferensi model, dengan masa pakai sekitar 30 menit. Runner mencetak ulang sebelum kedaluwarsa dan mengirimkan rotasi melalui stdin anak, jadi wrapper yang tidak [menjaga stdin terlampir](#keep-stdin-and-file-descriptor-3-attached) hanya melihat nilai awal. Jangan andalkan allowlist IP organisasi Anda untuk membatasi penggunaan token ini: perlakukan sebagai kredensial pembawa yang tetap dapat digunakan selama kira-kira 30 menit jika bocor, dan jangan catat, tulis ke disk, atau teruskan di luar kontainer sesi. |51| `CLAUDE_CODE_OAUTH_TOKEN` | Token akses OAuth jangka pendek yang digunakan anak untuk inferensi model, dengan masa pakai sekitar 30 menit. Runner mencetak ulang sebelum kedaluwarsa dan mengirimkan rotasi melalui stdin anak, jadi wrapper yang tidak [menjaga stdin terlampir](#keep-stdin-and-file-descriptor-3-attached) hanya melihat nilai awal. Jangan andalkan allowlist IP organisasi Anda untuk membatasi penggunaan token ini: perlakukan sebagai kredensial pembawa yang tetap dapat digunakan selama kira-kira 30 menit jika bocor, dan jangan catat, tulis ke disk, atau teruskan di luar kontainer sesi. |

52| `CLAUDE_RUNNER_ALIVE_EVERY_MS` | Runner menetapkan seberapa sering, dalam milidetik, anak melaporkan bahwa ia masih hidup ketika [giliran dimulai sebelum anak selesai diinisialisasi](https://code.claude.com/docs/id/self-hosted-environments-reference.md#session-startup-timeout). Jika wrapper Anda membangun kembali lingkungan anak, bawa variabel ini, atau runner dapat melepaskan sesi selama giliran tersebut dan menulis `no child output for <n> — releasing` ke log. Memerlukan v2.1.309 atau lebih baru pada runner dan anak. |52| `CLAUDE_RUNNER_ALIVE_EVERY_MS` | Runner menetapkan seberapa sering, dalam milidetik, anak melaporkan bahwa ia masih hidup ketika [giliran dimulai sebelum anak selesai diinisialisasi](https://code.claude.com/docs/id/self-hosted-environments-reference.md#session-startup-timeout). Jika wrapper Anda membangun kembali lingkungan anak, bawa variabel ini, atau runner dapat melepaskan sesi selama giliran tersebut dan menulis `no child output for <n> — releasing` ke log. Memerlukan v2.1.309 atau lebih baru pada runner dan anak. |


329| `CLAUDE_RUNNER_REPO_SOURCES` | Array JSON dari `{url, revision}` untuk semua sumber git sesi, untuk hook yang route pada repositori sekunder. Kosong ketika tidak ada sumber. |329| `CLAUDE_RUNNER_REPO_SOURCES` | Array JSON dari `{url, revision}` untuk semua sumber git sesi, untuk hook yang route pada repositori sekunder. Kosong ketika tidak ada sumber. |

330| `CLAUDE_RUNNER_CORRELATION_ID` | ID korelasi yang disediakan saat pembuatan sesi, digemakan kembali sehingga hook dapat memetakan pesanan kerja ini ke permintaan yang membuat sesi. Kosong ketika sesi tidak memiliki satu. |330| `CLAUDE_RUNNER_CORRELATION_ID` | ID korelasi yang disediakan saat pembuatan sesi, digemakan kembali sehingga hook dapat memetakan pesanan kerja ini ke permintaan yang membuat sesi. Kosong ketika sesi tidak memiliki satu. |

331| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Permukaan klien yang membuat sesi, seperti `web_claude_ai`, `desktop_app`, `ios`, atau `scheduled_trigger`, untuk analitik adopsi. Tidak diatur ketika sesi tidak memiliki permukaan yang tercatat atau dikenali, dan untuk permintaan pre-warming; periksa dengan `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]`, yang tetap aman di bawah `set -u`. |331| `CLAUDE_RUNNER_CLIENT_PLATFORM` | Permukaan klien yang membuat sesi, seperti `web_claude_ai`, `desktop_app`, `ios`, atau `scheduled_trigger`, untuk analitik adopsi. Tidak diatur ketika sesi tidak memiliki permukaan yang tercatat atau dikenali, dan untuk permintaan pre-warming; periksa dengan `[ -n "${CLAUDE_RUNNER_CLIENT_PLATFORM:-}" ]`, yang tetap aman di bawah `set -u`. |

332| `CLAUDE_RUNNER_SPAWN_REASON` | [Alasan Anthropic mengirim permintaan pemijahan ini](#find-out-why-a-spawn-request-was-sent), seperti `runner_lost` atau `resumed`. Tidak diatur ketika permintaan tidak membawa alasan yang terbentuk dengan baik, jadi baca sebagai `"${CLAUDE_RUNNER_SPAWN_REASON:-}"`. Memerlukan Claude Code v2.1.318 atau yang lebih baru di orchestrator |

332 333 

333Runner yang dipijahkan mendaftarkan dengan pesanan kerja sebagai pengganti rahasia lingkungan:334Runner yang dipijahkan mendaftarkan dengan pesanan kerja sebagai pengganti rahasia lingkungan:

334 335 


832 833 

833Sesi yang di-host sendiri tidak memiliki terminal yang terlampir, jadi prompt izin yang tidak dijawab menghentikan giliran sampai pengguna merespons di UI. Bidang kontrol Anthropic mengirimkan daftar alat setiap sesi dan aturan izin dengan muatan kerja; konfigurasi default pre-menyetujui panggilan alat rutin, termasuk `Bash`, dan sesi cloud [pre-menyetujui edit file terlepas dari mode](https://code.claude.com/docs/id/permission-modes.md#switch-permission-modes). Panggilan yang tidak ada yang pre-menyetujui mendorong melalui UI sesi.834Sesi yang di-host sendiri tidak memiliki terminal yang terlampir, jadi prompt izin yang tidak dijawab menghentikan giliran sampai pengguna merespons di UI. Bidang kontrol Anthropic mengirimkan daftar alat setiap sesi dan aturan izin dengan muatan kerja; konfigurasi default pre-menyetujui panggilan alat rutin, termasuk `Bash`, dan sesi cloud [pre-menyetujui edit file terlepas dari mode](https://code.claude.com/docs/id/permission-modes.md#switch-permission-modes). Panggilan yang tidak ada yang pre-menyetujui mendorong melalui UI sesi.

834 835 

836### Pin mode izin dari wrapper Anda

837 

835> [!NOTE]838> [!NOTE]

836>839>

837> Hanya pin mode auto di lingkungan yang kontainer sesinya berjalan dengan [default-deny network egress](https://code.claude.com/docs/id/self-hosted-environments-deploy.md#default-deny-egress) dan sisa [bagian hardening](https://code.claude.com/docs/id/self-hosted-environments-deploy.md#harden-your-deployment) di tempat. Panggilan alat rutin, termasuk permintaan jaringan `Bash`, berjalan tanpa manusia dalam loop di set alat pre-disetujui default dan dalam mode auto, jadi batas jaringan adalah apa yang membatasi di mana panggilan itu dapat menjangkau.840> Hanya pin mode auto di lingkungan yang kontainer sesinya berjalan dengan [default-deny network egress](https://code.claude.com/docs/id/self-hosted-environments-deploy.md#default-deny-egress) dan sisa [bagian hardening](https://code.claude.com/docs/id/self-hosted-environments-deploy.md#harden-your-deployment) di tempat. Panggilan alat rutin, termasuk permintaan jaringan `Bash`, berjalan tanpa manusia dalam loop di set alat pre-disetujui default dan dalam mode auto, jadi batas jaringan adalah apa yang membatasi di mana panggilan itu dapat menjangkau.

838 841 

839Untuk menjaga prompt ke minimum terlepas dari apa yang dikirimkan bidang kontrol, pin [mode auto](https://code.claude.com/docs/id/permission-modes.md#eliminate-prompts-with-auto-mode) dari skrip wrapper atau hook [`command`](#command) Anda. Mode auto memungkinkan sesi berjalan tanpa prompt izin rutin: model pengklasifikasi terpisah meninjau tindakan sebelum mereka berjalan dan memblokir yang ditolaknya, dan aturan ask eksplisit masih memaksa prompt; halaman mode izin mencakup apa yang diperiksa pengklasifikasi. Runner menambahkan flag yang dihitung server sebelum menginvokasi wrapper, dan untuk flag nilai tunggal seperti `--permission-mode` parser menghormati kemunculan terakhir, jadi flag yang Anda tambahkan setelah `"$@"` menimpa nilai yang dikirim server:842Untuk memulai sesi dalam [auto mode](https://code.claude.com/docs/id/permission-modes.md#eliminate-prompts-with-auto-mode) hingga claude.ai/code atau klien lain menetapkan mode izin untuknya, pin mode tersebut dari skrip wrapper atau [hook `command`](#command) Anda. Runner memanggil wrapper dengan flag-nya sendiri sebagai argumen, dan Claude Code menerapkan `--permission-mode` terakhir pada baris perintah, jadi tambahkan milik Anda setelah `"$@"`:

840 843 

841```bash theme={null}844```bash theme={null}

842#!/bin/bash845#!/bin/bash

843exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto846exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto

844```847```

845 848 

846Untuk pre-menyetujui alat spesifik sebagai gantinya, tambahkan `--allowed-tools` dengan aturan Anda, misalnya `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`. Flag daftar seperti `--allowed-tools` dan `--disallowed-tools` terakumulasi di seluruh kemunculan daripada menimpa, jadi aturan Anda berlaku di atas aturan apa pun yang dikirimkan bidang kontrol. Untuk mempersempit, tambahkan `--disallowed-tools`, yang menolak alat bahkan jika aturan lain memungkinkannya.849Setelah klien menetapkan mode, mode yang Anda tambahkan tidak lagi berlaku, bahkan setelah sesi dimulai ulang di runner. Sebagai contoh, claude.ai/code menetapkan mode bersama pesan pertama sesi ketika dropdown modenya menampilkan Auto, atau ketika seseorang telah memilih mode di sana.

850 

851Dalam auto mode, model pengklasifikasi terpisah meninjau tindakan sebelum dijalankan dan memblokir tindakan yang ditolaknya. Aturan ask eksplisit tetap memaksa munculnya permintaan izin. Panggilan yang diblokir oleh [aturan deny](https://code.claude.com/docs/id/permissions.md#manage-permissions) tetap diblokir di setiap mode.

852 

853### Setujui sebelumnya tool tertentu

854 

855Untuk menyetujui sebelumnya tool tertentu, tambahkan `--allowed-tools` dengan aturan Anda setelah `"$@"` di skrip wrapper Anda, misalnya `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`. Flag daftar seperti `--allowed-tools` dan `--disallowed-tools` terakumulasi di seluruh kemunculan alih-alih saling menimpa, jadi aturan Anda berlaku di atas aturan apa pun yang dikirimkan bidang kontrol. Untuk mempersempit, tambahkan `--disallowed-tools`, yang menolak tool meskipun aturan lain mengizinkannya.

847 856 

848### Bagaimana konfigurasi setiap sesi dirakit857### Bagaimana konfigurasi setiap sesi dirakit

849 858 

Details

195* Nilai [`prependPlugins`](https://code.claude.com/docs/id/settings-reference#prependplugins), [`appendPlugins`](https://code.claude.com/docs/id/settings-reference#appendplugins), atau [`enabledPlugins`](https://code.claude.com/docs/id/settings-reference#enabledplugins) yang di-cache tidak dapat menghapus penjaga bawaan, mengubah posisinya, atau mematikannya hingga pengambilan sesi mengonfirmasi payload195* Nilai [`prependPlugins`](https://code.claude.com/docs/id/settings-reference#prependplugins), [`appendPlugins`](https://code.claude.com/docs/id/settings-reference#appendplugins), atau [`enabledPlugins`](https://code.claude.com/docs/id/settings-reference#enabledplugins) yang di-cache tidak dapat menghapus penjaga bawaan, mengubah posisinya, atau mematikannya hingga pengambilan sesi mengonfirmasi payload

196* Pada mesin tempat [sumber yang dikelola endpoint](https://code.claude.com/docs/id/managed-settings.md#choose-a-delivery-mechanism) mencantumkan atau mengaktifkan plugin-nya sendiri, plugin yang hanya diaktifkan oleh daftar yang di-cache dianggap sebagai [milik pengguna](https://code.claude.com/docs/id/plugins/mods/admin.md#install-your-organizations-mods), bukan milik organisasi Anda, hingga pengambilan mengonfirmasi payload196* Pada mesin tempat [sumber yang dikelola endpoint](https://code.claude.com/docs/id/managed-settings.md#choose-a-delivery-mechanism) mencantumkan atau mengaktifkan plugin-nya sendiri, plugin yang hanya diaktifkan oleh daftar yang di-cache dianggap sebagai [milik pengguna](https://code.claude.com/docs/id/plugins/mods/admin.md#install-your-organizations-mods), bukan milik organisasi Anda, hingga pengambilan mengonfirmasi payload

197* Claude Code mengambil pengaturan terbaru di latar belakang197* Claude Code mengambil pengaturan terbaru di latar belakang

198* Jika penyedia sesi tidak ada dalam daftar [`allowedProviders`](https://code.claude.com/docs/id/settings-reference#allowedproviders) yang di-cache, Claude Code dapat menunggu pengambilan tersebut dan memeriksa lagi sebelum menolak. Jika pengambilan gagal, sesi ditolak

198* Pengaturan yang di-cache tetap bertahan saat terjadi kegagalan jaringan. Jika pengambilan saat startup gagal, Claude Code memperingatkan dalam sesi interaktif dan di tab Code bahwa kebijakan yang di-cache sedang berlaku199* Pengaturan yang di-cache tetap bertahan saat terjadi kegagalan jaringan. Jika pengambilan saat startup gagal, Claude Code memperingatkan dalam sesi interaktif dan di tab Code bahwa kebijakan yang di-cache sedang berlaku

199* Hingga pengambilan berhasil, nilai yang ditahan saat startup tetap ditahan200* Hingga pengambilan berhasil, nilai yang ditahan saat startup tetap ditahan

200 201 

Details

111| [`footerLinksRegexes`](#footerlinksregexes) | Buat ID masalah atau tinjauan dalam output menjadi [tautan yang dapat diklik](https://code.claude.com/docs/id/statusline.md#clickable-links) di bawah kotak input | Interface and terminal | User or managed |111| [`footerLinksRegexes`](#footerlinksregexes) | Buat ID masalah atau tinjauan dalam output menjadi [tautan yang dapat diklik](https://code.claude.com/docs/id/statusline.md#clickable-links) di bawah kotak input | Interface and terminal | User or managed |

112| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Atur [URL gateway](https://code.claude.com/docs/id/claude-apps-gateway#set-the-gateway-url) yang dihubungi layar login | Authentication and providers | User or managed |112| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | Atur [URL gateway](https://code.claude.com/docs/id/claude-apps-gateway#set-the-gateway-url) yang dihubungi layar login | Authentication and providers | User or managed |

113| [`forceLoginMethod`](#forceloginmethod) | [Batasi login](https://code.claude.com/docs/id/authentication.md#restrict-login-to-your-organization) ke claude.ai, Claude Console, atau [gateway cloud](https://code.claude.com/docs/id/claude-apps-gateway) | Authentication and providers | Any file |113| [`forceLoginMethod`](#forceloginmethod) | [Batasi login](https://code.claude.com/docs/id/authentication.md#restrict-login-to-your-organization) ke claude.ai, Claude Console, atau [gateway cloud](https://code.claude.com/docs/id/claude-apps-gateway) | Authentication and providers | Any file |

114| [`forceLoginOrgUUID`](#forceloginorguuid) | [Pin login claude.ai ke organisasi Anda](https://code.claude.com/docs/id/authentication.md#restrict-login-to-your-organization); hanya sumber terkelola yang memberlakukannya | Authentication and providers | Any file |114| [`forceLoginOrgUUID`](#forceloginorguuid) | [Pin login claude.ai ke organisasi Anda](https://code.claude.com/docs/id/authentication.md#restrict-login-to-your-organization); hanya pengaturan terkelola yang memberlakukannya | Authentication and providers | Any file |

115| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Blokir startup hingga [pengaturan yang dikelola server](https://code.claude.com/docs/id/server-managed-settings.md) selesai diambil ulang | Enterprise and managed settings | Managed |115| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | Blokir startup hingga [pengaturan yang dikelola server](https://code.claude.com/docs/id/server-managed-settings.md) selesai diambil ulang | Enterprise and managed settings | Managed |

116| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | Biarkan `/login` menjangkau [gateway cloud](https://code.claude.com/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) pada ruang IPv4 publik yang organisasi Anda gunakan secara internal | Authentication and providers | Managed |116| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | Biarkan `/login` menjangkau [gateway cloud](https://code.claude.com/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) pada ruang IPv4 publik yang organisasi Anda gunakan secara internal | Authentication and providers | Managed |

117| [`gcpAuthRefresh`](#gcpauthrefresh) | Segarkan [kredensial Google Cloud](https://code.claude.com/docs/id/google-vertex-ai.md#advanced-credential-configuration) dengan perintah Anda sendiri | Authentication and providers | Any file |117| [`gcpAuthRefresh`](#gcpauthrefresh) | Segarkan [kredensial Google Cloud](https://code.claude.com/docs/id/google-vertex-ai.md#advanced-credential-configuration) dengan perintah Anda sendiri | Authentication and providers | Any file |


446 446 

447### `fastMode`447### `fastMode`

448 448 

449Aktifkan [fast mode](https://code.claude.com/docs/id/fast-mode.md) untuk sesi di mana fitur ini tersedia, untuk pekerjaan interaktif seperti iterasi cepat atau debugging langsung di mana Anda menginginkan kecepatan dengan biaya per token yang lebih tinggi. Anda biasanya tidak mengedit kunci ini secara manual: menjalankan `/fast` menulis `fastMode: true` ke `~/.claude/settings.json`, dan menjalankannya lagi untuk mematikan fast mode akan menghapus kunci tersebut. Fast mode hanya berjalan pada Opus 5.5, Opus 5, dan Opus 4.8: mengaktifkannya dari model lain akan mengalihkan Anda ke Opus, dan beralih ke model yang tidak didukung akan mematikannya. Lihat [Beralih model saat fast mode aktif](https://code.claude.com/docs/id/fast-mode.md#switch-models-while-fast-mode-is-on).449Aktifkan [fast mode](https://code.claude.com/docs/id/fast-mode.md) untuk sesi di mana fitur ini tersedia, untuk pekerjaan interaktif seperti iterasi cepat atau debugging langsung di mana Anda menginginkan kecepatan dengan biaya per token yang lebih tinggi. Anda biasanya tidak mengedit kunci ini secara manual. Menjalankan `/fast` menulis `fastMode: true` ke `~/.claude/settings.json`, dan menjalankannya lagi untuk mematikan fast mode akan menghapus kunci tersebut.

450 

451Hanya Opus 5.5, Opus 5, dan Opus 4.8 yang mendukung fast mode. Menjalankan `/fast` dari model lain akan mengalihkan Anda ke Opus, dan beralih ke model yang tidak didukung akan mematikan fast mode. Lihat [Beralih model saat fast mode aktif](https://code.claude.com/docs/id/fast-mode.md#switch-models-while-fast-mode-is-on).

450 452 

451* **Cakupan**: [`Any file`](#scopes)453* **Cakupan**: [`Any file`](#scopes)

452* **Tipe**: Boolean454* **Tipe**: Boolean


463 465 

464### `fastModePerSessionOptIn`466### `fastModePerSessionOptIn`

465 467 

466Biasanya, menjalankan `/fast` menyimpan [`fastMode`](#fastmode) ke pengaturan user seseorang, sehingga fast mode aktif di awal setiap sesi berikutnya. Atur kunci ini ke `true` untuk menghentikannya: `fastMode: true` yang tersimpan tidak lagi mengaktifkan fast mode saat sesi dimulai, dan setiap orang harus menjalankan `/fast` di setiap sesi yang menginginkannya. Claude Code membiarkan kunci `fastMode` di file mereka, sehingga mematikan kunci ini memulihkan perilaku lama.468Biasanya, menjalankan `/fast` menyimpan [`fastMode`](#fastmode) ke pengaturan user seseorang, sehingga sesi baru pada model yang didukung dimulai dengan fast mode aktif. Atur kunci ini ke `true` untuk menghentikannya: `fastMode: true` yang tersimpan tidak lagi mengaktifkan fast mode saat sesi dimulai, dan setiap orang menjalankan `/fast` di setiap sesi yang menginginkannya. Claude Code membiarkan `fastMode` di file mereka, sehingga mematikan kunci ini memulihkan perilaku lama.

467 469 

468Owner pada paket Team atau Enterprise dapat men-deploy-nya ke seluruh organisasi melalui [pengaturan terkelola server](https://code.claude.com/docs/id/server-managed-settings.md). Ketika pengaturan terkelola mengatur kunci ini, `/fast on` ditolak di luar sesi terminal interaktif dan melaporkan bahwa organisasi Anda telah menonaktifkan fast mode. Hal itu mencakup [mode non-interaktif](https://code.claude.com/docs/id/headless.md), [ekstensi VS Code](https://code.claude.com/docs/id/vs-code.md), dan [sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md).470Owner pada paket Team atau Enterprise dapat men-deploy-nya ke seluruh organisasi melalui [pengaturan terkelola server](https://code.claude.com/docs/id/server-managed-settings.md). Ketika pengaturan terkelola mengatur kunci ini, `/fast on` ditolak di luar sesi terminal interaktif dan melaporkan bahwa organisasi Anda telah menonaktifkan fast mode. Hal itu mencakup [mode non-interaktif](https://code.claude.com/docs/id/headless.md), [ekstensi VS Code](https://code.claude.com/docs/id/vs-code.md), dan [sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md).

469 471 

470* **Cakupan**: [`Any file`](#scopes)472* **Cakupan**: [`Any file`](#scopes)

471* **Tipe**: Boolean473* **Tipe**: Boolean

472 * `true`: `fastMode: true` yang tersimpan tidak lagi mengaktifkan fast mode saat sesi dimulai, sehingga setiap orang menjalankan `/fast` di setiap sesi yang menginginkannya; `fastMode: true` yang diberikan dengan `--settings` tetap berlaku untuk sesi tersebut kecuali pengaturan terkelola mengatur kunci ini474 * `true`: `fastMode: true` yang tersimpan tidak lagi mengaktifkan fast mode saat sesi dimulai, sehingga setiap orang menjalankan `/fast` di setiap sesi yang menginginkannya; `fastMode: true` yang diberikan dengan `--settings` tetap berlaku untuk sesi tersebut kecuali pengaturan terkelola mengatur kunci ini

473 * `false`: `fastMode: true` yang tersimpan mengaktifkan fast mode di awal setiap sesi berikutnya475 * `false`: `fastMode: true` yang tersimpan mengaktifkan fast mode di awal setiap sesi baru pada model yang didukung

474* **Default**: `false`476* **Default**: `false`

475 477 

476```json settings.json theme={null}478```json settings.json theme={null}


4827 4829 

4828### `agentPushNotifEnabled`4830### `agentPushNotifEnabled`

4829 4831 

4830Izinkan Claude mengirimkan notifikasi push ke ponsel Anda ketika Claude memutuskan bahwa notifikasi tersebut layak dikirim, misalnya ketika tugas yang panjang selesai. Claude dapat mengirimkannya saat [Remote Control](https://code.claude.com/docs/id/remote-control.md) terhubung. Muncul di `/config` sebagai **Push when Claude decides**. Ketika Anda mengubahnya di sana, Claude Code juga menyimpan nilainya ke akun Anda.4832Izinkan Claude mengirimkan notifikasi push ke ponsel Anda ketika Claude memutuskan bahwa notifikasi tersebut layak dikirim, misalnya ketika tugas yang panjang selesai. Dalam sesi lokal, Claude dapat mengirimkannya saat [Remote Control](https://code.claude.com/docs/id/remote-control.md) terhubung. Muncul di `/config` sebagai **Push when Claude decides**. Ketika Anda mengubahnya di sana, Claude Code juga menyimpan nilainya ke akun Anda.

4831 4833 

4832* **Scope**: [`Any file`](#scopes). Claude Code juga membaca nilai yang ditinggalkan di `~/.claude.json` oleh versi yang lebih lama.4834* **Scope**: [`Any file`](#scopes). Claude Code juga membaca nilai yang ditinggalkan di `~/.claude.json` oleh versi yang lebih lama.

4833* **Type**: Boolean4835* **Type**: Boolean


4964 4966 

4965### `inputNeededNotifEnabled`4967### `inputNeededNotifEnabled`

4966 4968 

4967Dapatkan notifikasi push di ponsel Anda ketika prompt izin atau pertanyaan menunggu input Anda. Claude Code mengirimkan ini hanya saat [Remote Control](https://code.claude.com/docs/id/remote-control.md) terhubung. Muncul di `/config` sebagai **Push when actions required**.4969Dapatkan notifikasi push di ponsel Anda ketika permintaan izin atau pertanyaan menunggu input Anda. Dalam sesi lokal, Claude Code mengirimkan ini hanya saat [Remote Control](https://code.claude.com/docs/id/remote-control.md) terhubung. Muncul di `/config` sebagai **Push when actions required**.

4968 4970 

4969* **Scope**: [`Any file`](#scopes). Claude Code juga membaca nilai yang ditinggalkan di `~/.claude.json` oleh versi yang lebih lama.4971* **Scope**: [`Any file`](#scopes). Claude Code juga membaca nilai yang ditinggalkan di `~/.claude.json` oleh versi yang lebih lama.

4970* **Type**: Boolean4972* **Type**: Boolean

4971 * `true`: Anda mendapatkan notifikasi push di ponsel Anda ketika prompt izin atau pertanyaan menunggu, saat Remote Control terhubung

4972 * `false`: Claude Code tidak mengirimkan notifikasi seperti itu

4973* **Default**: `false`4973* **Default**: `false`

4974 4974 

4975```json settings.json theme={null}4975```json settings.json theme={null}


4986 4986 

4987* **Scope**: [`Any file`](#scopes). Claude Code juga membaca nilai yang ditinggalkan di `~/.claude.json` oleh versi yang lebih lama.4987* **Scope**: [`Any file`](#scopes). Claude Code juga membaca nilai yang ditinggalkan di `~/.claude.json` oleh versi yang lebih lama.

4988* **Type**: string, salah satu dari:4988* **Type**: string, salah satu dari:

4989 * `"auto"`: Claude Code mengirimkan notifikasi desktop di iTerm2, Ghostty, dan Kitty, membunyikan bel di Terminal.app hanya ketika bel audibel dimatikan, dan tidak melakukan apa pun di tempat lain4989 * `"auto"`: Claude Code mengirimkan notifikasi desktop ketika mendeteksi iTerm2, Ghostty, atau Kitty, membunyikan bel di Terminal.app hanya ketika bel audibelnya dimatikan, dan tidak melakukan apa pun di tempat lain

4990 * `"terminal_bell"`: Claude Code membunyikan karakter bel di terminal apa pun4990 * `"terminal_bell"`: Claude Code membunyikan karakter bel di terminal apa pun

4991 * `"iterm2"`: Claude Code mengirimkan notifikasi desktop iTerm24991 * `"iterm2"`: Claude Code mengirimkan notifikasi desktop iTerm2

4992 * `"iterm2_with_bell"`: Claude Code mengirimkan notifikasi desktop iTerm2 dan membunyikan bel4992 * `"iterm2_with_bell"`: Claude Code mengirimkan notifikasi desktop iTerm2 dan membunyikan bel


5001}5001}

5002```5002```

5003 5003 

5004Dengan `"auto"`, Claude Code mengirimkan notifikasi desktop di iTerm2, Ghostty, dan Kitty. Di Terminal.app, Claude Code membunyikan karakter bel hanya ketika Anda telah mematikan bel audibel Terminal, dan di terminal lain tidak melakukan apa pun. Atur `"terminal_bell"` untuk membunyikan karakter bel di terminal apa pun. Lihat [Get a terminal bell or notification](https://code.claude.com/docs/id/terminal-config.md#get-a-terminal-bell-or-notification).5004Dengan `"auto"`, Claude Code mengirimkan notifikasi desktop ketika mendeteksi iTerm2, Ghostty, atau Kitty. Di Terminal.app, Claude Code membunyikan karakter bel hanya ketika Anda telah mematikan bel audibel Terminal, dan di terminal lain tidak melakukan apa pun. Atur `"terminal_bell"` untuk membunyikan karakter bel di terminal apa pun. Lihat [Get a terminal bell or notification](https://code.claude.com/docs/id/terminal-config.md#get-a-terminal-bell-or-notification).

5005 5005 

5006### `remote.defaultEnvironmentId`5006### `remote.defaultEnvironmentId`

5007 5007 


5176 5176 

5177* Setelah masa hidup cache, lima menit secara default atau interval yang Anda atur dengan [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](https://code.claude.com/docs/id/env-vars).5177* Setelah masa hidup cache, lima menit secara default atau interval yang Anda atur dengan [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](https://code.claude.com/docs/id/env-vars).

5178* Ketika permintaan ke API Anthropic, secara langsung atau melalui [gateway LLM](https://code.claude.com/docs/id/llm-gateway), gagal dengan `401` atau `403`.5178* Ketika permintaan ke API Anthropic, secara langsung atau melalui [gateway LLM](https://code.claude.com/docs/id/llm-gateway), gagal dengan `401` atau `403`.

5179* Ketika permintaan melalui gateway LLM gagal dengan `401`, tetapi tidak dengan `403`, dan Anda mengatur [`CLAUDE_CODE_SKIP_VERTEX_AUTH`](https://code.claude.com/docs/id/env-vars) untuk Agent Platform Google Cloud, `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` untuk Claude Platform di AWS, atau `CLAUDE_CODE_SKIP_MANTLE_AUTH` untuk Amazon Bedrock Mantle. Memerlukan Claude Code v2.1.318 atau lebih baru.

5179* Sebelum mengirimkan permintaan ke API Anthropic, secara langsung atau melalui gateway LLM, ketika output yang disimpan dalam cache adalah JWT yang kedaluwarsa setelah pembantu menghasilkannya. Memerlukan Claude Code v2.1.246 atau lebih baru.5180* Sebelum mengirimkan permintaan ke API Anthropic, secara langsung atau melalui gateway LLM, ketika output yang disimpan dalam cache adalah JWT yang kedaluwarsa setelah pembantu menghasilkannya. Memerlukan Claude Code v2.1.246 atau lebih baru.

5180 5181 

5181Dua kasus terakhir hanya berlaku ketika output pembantu adalah kredensial yang Claude Code kirimkan dan `ANTHROPIC_AUTH_TOKEN` tidak diatur.5182Tiga kasus terakhir hanya berlaku ketika output pembantu adalah kredensial yang Claude Code kirimkan dan `ANTHROPIC_AUTH_TOKEN` tidak diatur.

5182 5183 

5183Dalam sesi interaktif, ketika perintah berasal dari pengaturan proyek atau lokal, Claude Code tidak menjalankannya sampai Anda menerima prompt kepercayaan workspace. Lihat [Manajemen kredensial](https://code.claude.com/docs/id/authentication.md#credential-management).5184Dalam sesi interaktif, ketika perintah berasal dari pengaturan proyek atau lokal, Claude Code tidak menjalankannya sampai Anda menerima prompt kepercayaan workspace. Lihat [Manajemen kredensial](https://code.claude.com/docs/id/authentication.md#credential-management).

5184 5185 


5261 5262 

5262Dari sumber terkelola, perlukan login akun claude.ai untuk milik satu organisasi Anthropic, diberikan sebagai UUID tunggal, atau milik salah satu dari beberapa organisasi, diberikan sebagai array. Dari file pengaturan apa pun, Claude Code juga menggunakan UUID tunggal untuk pra-memilih organisasi itu selama login claude.ai atau Claude Console, dan pra-memilih tidak ada untuk array. Jika Anda mengatur kunci di file pengaturan apa pun, Claude Code juga berhenti menawarkan [sign-in Console tanpa kunci](https://code.claude.com/docs/id/authentication.md#sign-in-without-an-api-key) dalam sesi yang file itu berlaku dan membuat kunci API sebagai gantinya.5263Dari sumber terkelola, perlukan login akun claude.ai untuk milik satu organisasi Anthropic, diberikan sebagai UUID tunggal, atau milik salah satu dari beberapa organisasi, diberikan sebagai array. Dari file pengaturan apa pun, Claude Code juga menggunakan UUID tunggal untuk pra-memilih organisasi itu selama login claude.ai atau Claude Console, dan pra-memilih tidak ada untuk array. Jika Anda mengatur kunci di file pengaturan apa pun, Claude Code juga berhenti menawarkan [sign-in Console tanpa kunci](https://code.claude.com/docs/id/authentication.md#sign-in-without-an-api-key) dalam sesi yang file itu berlaku dan membuat kunci API sebagai gantinya.

5263 5264 

5264* **Scope**: [`Any file`](#scopes). Hanya sumber terkelola yang memberlakukan pembatasan; UUID tunggal di file pengaturan lain apa pun pra-memilih organisasi selama login tanpa membatasinya.5265* **Scope**: [`Any file`](#scopes). Dalam file pengaturan yang bukan sumber terkelola, Claude Code tidak memeriksa organisasi mana yang memiliki suatu login, dan UUID tunggal pra-memilih organisasi selama login.

5265* **Type**: string, satu UUID, atau array string, beberapa UUID5266* **Type**: string, satu UUID, atau array string, beberapa UUID

5266* **Default**: tidak diatur, jadi organisasi apa pun dapat masuk5267* **Default**: tidak diatur, jadi organisasi apa pun dapat masuk

5267 5268 


5827 5828 

5828### `autoInstallIdeExtension`5829### `autoInstallIdeExtension`

5829 5830 

5830Izinkan [`/ide`](https://code.claude.com/docs/id/commands) menginstal ekstensi IDE Claude Code di VS Code, Cursor, atau Devin Desktop yang sedang berjalan saat Anda menjalankan perintah tersebut dari terminal eksternal. Claude Code tidak menginstal ekstensi saat Anda memulainya. Muncul di `/config` sebagai **Auto-install IDE extension** saat Anda menjalankan Claude Code di dalam terminal VS Code atau JetBrains.5831Izinkan [`/ide`](https://code.claude.com/docs/id/commands) menginstal ekstensi IDE Claude Code di VS Code, Cursor, atau Devin Desktop yang sedang berjalan saat Anda menjalankan perintah tersebut dari terminal eksternal. Claude Code tidak menginstal atau memperbarui ekstensi saat Anda memulai `claude`. Sebelum v2.1.318, Claude Code menginstal atau memperbarui ekstensi saat Anda memulai `claude` di terminal salah satu editor tersebut, kecuali kunci ini bernilai `false`.

5832 

5833Muncul di `/config` sebagai **Auto-install IDE extension** saat Anda menjalankan Claude Code di dalam terminal VS Code atau JetBrains.

5831 5834 

5832* **Scope**: [`Global config`](#scopes)5835* **Scope**: [`Global config`](#scopes)

5833* **Type**: Boolean5836* **Type**: Boolean

setup.md +9 −9

Details

40>40>

41> **macOS, Linux, WSL:**41> **macOS, Linux, WSL:**

42>42>

43> ```bash theme={null}43> ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

44> curl -fsSL https://claude.ai/install.sh | bash44> curl -fsSL https://claude.ai/install.sh | bash

45> ```45> ```

46>46>


48>48>

49> **Windows PowerShell:**49> **Windows PowerShell:**

50>50>

51> ```powershell theme={null}51> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

52> irm https://claude.ai/install.ps1 | iex52> irm https://claude.ai/install.ps1 | iex

53> ```53> ```

54>54>

55> **Windows CMD:**55> **Windows CMD:**

56>56>

57> ```batch theme={null}57> ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd58> curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

59> ```59> ```

60>60>


72 72 

73> [tab] Homebrew73> [tab] Homebrew

74>74>

75> ```bash theme={null}75> ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

76> brew install --cask claude-code76> brew install --cask claude-code

77> ```77> ```

78>78>


84 84 

85> [tab] WinGet85> [tab] WinGet

86>86>

87> ```powershell theme={null}87> ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}

88> winget install Anthropic.ClaudeCode88> winget install Anthropic.ClaudeCode

89> ```89> ```

90>90>


389> gpg --show-keys /etc/apt/keyrings/claude-code.asc389> gpg --show-keys /etc/apt/keyrings/claude-code.asc

390> ```390> ```

391>391>

392> Sidik jari yang dicetak gpg harus `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. Jika gpg melaporkan bahwa file tidak dapat dibuka atau tidak berisi data OpenPGP yang valid, unduhan gagal atau mengembalikan konten yang salah: konfirmasi jaringan Anda dapat menjangkau `downloads.claude.ai`, kemudian jalankan kembali perintah unduh.392> Satu-satunya sidik jari yang dicetak gpg harus `31DDDE24DDFAB679F42D7BD2BAA929FF1A7ECACE`. Jika gpg melaporkan bahwa file tidak dapat dibuka atau tidak berisi data OpenPGP yang valid, unduhan gagal atau mengembalikan konten yang salah. Konfirmasi jaringan Anda dapat menjangkau `downloads.claude.ai`, kemudian jalankan kembali perintah unduh.

393>393>

394> Daftarkan repositori di saluran `stable` dan instal:394> Daftarkan repositori di saluran `stable` dan instal:

395>395>


536Verifikasi tanda tangan terpisah terhadap manifes.536Verifikasi tanda tangan terpisah terhadap manifes.

537 537 

538```bash theme={null}538```bash theme={null}

539gpg --verify manifest.json.sig manifest.json539gpg --with-fingerprint --verify manifest.json.sig manifest.json

540```540```

541 541 

542Hasil yang valid melaporkan `Good signature from "Anthropic Claude Code Release Signing <security@anthropic.com>"`.542Hasil yang valid melaporkan `Good signature from "Anthropic Claude Code Release Signing <security@anthropic.com>"`. Dengan pengaturan default, `gpg` juga mencetak `WARNING: This key is not certified with a trusted signature!` untuk kunci yang baru diimpor. Ini diharapkan. Baris `Good signature` mengkonfirmasi pemeriksaan kriptografi lulus.

543 543 

544`gpg` juga mencetak `WARNING: This key is not certified with a trusted signature!` untuk kunci yang baru diimpor. Ini diharapkan. Baris `Good signature` mengkonfirmasi pemeriksaan kriptografi lulus. Perbandingan sidik jari di Langkah 1 mengkonfirmasi kunci itu sendiri asli.544Untuk memeriksa bahwa kunci Anthropic yang menandatangani manifes, bandingkan baris `Primary key fingerprint` di akhir output dengan sidik jari yang dicantumkan halaman ini di Langkah 1. Jika keduanya cocok dan output tidak menampilkan `BAD signature`, lanjutkan ke Langkah 4. Jika tidak, jangan gunakan manifes ini.

545 545 

546**4. Periksa biner terhadap manifes**546**4. Periksa biner terhadap manifes**

547 547 

slack.md +7 −10

Details

20 20 

21## Kasus penggunaan21## Kasus penggunaan

22 22 

23* **Investigasi dan perbaikan bug**: Minta Claude untuk menyelidiki dan memperbaiki bug segera setelah dilaporkan di saluran Slack.23* **Investigasi dan perbaikan bug**: Jelaskan sebuah bug dan minta Claude untuk menyelidiki serta memperbaikinya.

24* **Review kode cepat dan modifikasi**: Biarkan Claude mengimplementasikan fitur kecil atau refactor kode berdasarkan umpan balik tim.24* **Code review cepat dan modifikasi**: Biarkan Claude mengimplementasikan fitur kecil atau refactor kode.

25* **Debugging kolaboratif**: Ketika diskusi tim memberikan konteks penting (misalnya, reproduksi error atau laporan pengguna), Claude dapat menggunakan informasi tersebut untuk menginformasikan pendekatan debugging-nya.

26* **Eksekusi tugas paralel**: Mulai tugas coding di Slack sambil melanjutkan pekerjaan lain, menerima notifikasi saat selesai.25* **Eksekusi tugas paralel**: Mulai tugas coding di Slack sambil melanjutkan pekerjaan lain, menerima notifikasi saat selesai.

27 26 

28## Prasyarat27## Prasyarat


91 90 

92### Pengumpulan konteks91### Pengumpulan konteks

93 92 

94**Dari thread**: Ketika Anda @mention Claude di thread, itu mengumpulkan konteks dari semua pesan di thread tersebut untuk memahami percakapan lengkap.93* **Dari thread**: ketika Anda pertama kali @mention Claude di sebuah thread, Claude mengumpulkan konteks dari pesan-pesan Anda dan pesan-pesannya sendiri di thread tersebut.

94* **Dari saluran**: ketika Anda @mention Claude langsung di saluran, Claude melihat pesan-pesan terbaru Anda dan pesan-pesannya sendiri di saluran tersebut, serta nama, topik, dan deskripsi saluran.

95 95 

96**Dari saluran**: Ketika disebutkan langsung di saluran, Claude melihat pesan saluran terbaru untuk konteks yang relevan.96Konteks ini membantu Claude memahami masalah, memilih repositori yang sesuai, dan menginformasikan pendekatan terhadap tugas. Untuk memberikan kepada Claude sesuatu yang ditulis oleh rekan tim, seperti laporan error, tempelkan teksnya ke dalam pesan tempat Anda @mention Claude.

97 

98Konteks ini membantu Claude memahami masalah, memilih repositori yang sesuai, dan menginformasikan pendekatan terhadap tugas.

99 97 

100> [!WARNING]98> [!WARNING]

101>99>


160### Menulis permintaan yang efektif158### Menulis permintaan yang efektif

161 159 

162* **Jadilah spesifik**: Sertakan nama file, nama fungsi, atau pesan error ketika relevan.160* **Jadilah spesifik**: Sertakan nama file, nama fungsi, atau pesan error ketika relevan.

163* **Berikan konteks**: Sebutkan repositori atau proyek jika tidak jelas dari percakapan.161* **Berikan konteks**: Sebutkan repositori atau proyek.

164* **Tentukan kesuksesan**: Jelaskan seperti apa "selesai"—haruskah Claude menulis tes? Memperbarui dokumentasi? Membuat PR?162* **Tentukan kesuksesan**: Jelaskan seperti apa "selesai"—haruskah Claude menulis tes? Memperbarui dokumentasi? Membuat PR?

165* **Gunakan thread**: Balas di thread saat membahas bug atau fitur sehingga Claude dapat mengumpulkan konteks lengkap.

166 163 

167### Kapan menggunakan Slack vs. web164### Kapan menggunakan Slack vs. web

168 165 

169**Gunakan Slack ketika**: Konteks sudah ada dalam diskusi Slack, Anda ingin memulai tugas secara asinkron, atau Anda berkolaborasi dengan rekan tim yang membutuhkan visibilitas.166**Gunakan Slack ketika**: Anda ingin memulai tugas secara asinkron, atau Anda berkolaborasi dengan rekan tim yang membutuhkan visibilitas.

170 167 

171**Gunakan web secara langsung ketika**: Anda perlu mengunggah file, menginginkan interaksi real-time selama pengembangan, atau bekerja pada tugas yang lebih panjang dan kompleks.168**Gunakan web secara langsung ketika**: Anda perlu mengunggah file, menginginkan interaksi real-time selama pengembangan, atau bekerja pada tugas yang lebih panjang dan kompleks.

172 169 

Details

74 74 

75Secara default, Claude Code mengirimkan notifikasi desktop di beberapa terminal, dan karakter bel atau tidak sama sekali di terminal lainnya:75Secara default, Claude Code mengirimkan notifikasi desktop di beberapa terminal, dan karakter bel atau tidak sama sekali di terminal lainnya:

76 76 

77* **Ghostty, Kitty, dan iTerm2**: notifikasi desktop, yang hanya ditampilkan oleh iTerm2 setelah Anda mengaktifkan pengaturan peringatannya.77* **Ghostty, Kitty, dan iTerm2, ketika Claude Code mendeteksinya**: notifikasi desktop, yang hanya ditampilkan oleh iTerm2 setelah Anda mengaktifkan pengaturan peringatannya.

78* **Apple Terminal**: tanpa suara; karakter bel senyap ketika Claude Code mendapati "Audible bell" dalam keadaan nonaktif di profil jendela Terminal yang berada di depan, selain itu tidak ada apa pun. Karakter bel tersebut ditampilkan sebagai kilatan jendela, atau pantulan Dock saat Terminal berada di latar belakang, jika opsi "Visual bell" atau pantulan Dock pada profil tersebut aktif.78* **Apple Terminal**: tanpa suara; karakter bel senyap ketika Claude Code mendapati "Audible bell" dalam keadaan nonaktif di profil jendela Terminal yang berada di depan, selain itu tidak ada apa pun. Karakter bel tersebut ditampilkan sebagai kilatan jendela, atau pantulan Dock saat Terminal berada di latar belakang, jika opsi "Visual bell" atau pantulan Dock pada profil tersebut aktif.

79* **Terminal lainnya**: tidak ada apa pun.79* **Terminal lainnya**: tidak ada apa pun.

80 80 


86}86}

87```87```

88 88 

89Notifikasi desktop mencapai mesin lokal Anda melalui SSH, sehingga sesi jarak jauh masih dapat memperingatkan Anda. Ghostty dan Kitty meneruskannya ke pusat notifikasi OS Anda tanpa pengaturan lebih lanjut. iTerm2 memerlukan Anda untuk mengaktifkan penerusan:89Melalui SSH dari terminal yang berjalan di luar tmux, atur [`preferredNotifChannel`](https://code.claude.com/docs/id/settings-reference#preferrednotifchannel) ke nilai terminal lokal Anda, yaitu `"iterm2"`, `"kitty"`, atau `"ghostty"`, di mesin yang menjalankan Claude Code. Notifikasi desktop kemudian akan mencapai mesin lokal Anda. Ghostty dan Kitty meneruskannya ke pusat notifikasi OS Anda tanpa pengaturan lebih lanjut. iTerm2 memerlukan Anda untuk mengaktifkan penerusan:

90 90 

91**1. Buka pengaturan notifikasi iTerm2**91**1. Buka pengaturan notifikasi iTerm2**

92 92 


131 131 

132## Konfigurasi tmux132## Konfigurasi tmux

133 133 

134Ketika Claude Code berjalan di dalam tmux, secara default Shift+Enter mengirimkan alih-alih menyisipkan baris baru, dan notifikasi desktop serta [progress bar](https://code.claude.com/docs/id/settings-reference.md#terminalprogressbarenabled) tidak pernah mencapai terminal luar. Tambahkan baris-baris ini ke `~/.tmux.conf`, kemudian jalankan `tmux source-file ~/.tmux.conf` untuk menerapkannya ke server yang sedang berjalan:134Ketika Claude Code berjalan di dalam tmux, secara default Shift+Enter mengirimkan alih-alih menyisipkan baris baru, dan notifikasi desktop tidak mencapai terminal luar. Tambahkan baris-baris ini ke `~/.tmux.conf`, kemudian jalankan `tmux source-file ~/.tmux.conf` untuk menerapkannya ke server yang sedang berjalan:

135 135 

136```bash ~/.tmux.conf theme={null}136```bash ~/.tmux.conf theme={null}

137set -g allow-passthrough on137set -g allow-passthrough on


140set -as terminal-features 'xterm*:extkeys'140set -as terminal-features 'xterm*:extkeys'

141```141```

142 142 

143Baris `allow-passthrough` memungkinkan notifikasi dan pembaruan progress mencapai terminal luar alih-alih ditelan oleh tmux. Baris `extended-keys` memungkinkan tmux membedakan Shift+Enter dari Enter biasa sehingga pintasan baris baru berfungsi.143Untuk mengirim notifikasi dari pane yang terlihat ke terminal luar, pertahankan baris `allow-passthrough` dan atur [`preferredNotifChannel`](https://code.claude.com/docs/id/settings-reference#preferrednotifchannel) ke `"iterm2"`, `"kitty"`, atau `"ghostty"`. Dengan contoh ini, pane di jendela yang tidak sedang Anda lihat tidak mengirimkan notifikasi apa pun. Baris `extended-keys` memungkinkan tmux membedakan Shift+Enter dari Enter biasa sehingga pintasan baris baru berfungsi.

144 144 

145[`Image` milik mod](https://code.claude.com/docs/id/plugins/mods/reference#elements) memerlukan baris `allow-passthrough` dan `focus-events`, beserta [persyaratan untuk menggambar di dalam tmux](https://code.claude.com/docs/id/plugins/mods/gallery.md#draw-an-image-inside-tmux) lainnya. Setelah Anda menambahkan baris-baris tersebut, lepaskan juga (detach) dari tmux, sambungkan kembali (attach), dan mulai ulang Claude Code.145[`Image` milik mod](https://code.claude.com/docs/id/plugins/mods/reference#elements) memerlukan baris `allow-passthrough` dan `focus-events`, beserta [persyaratan untuk menggambar di dalam tmux](https://code.claude.com/docs/id/plugins/mods/gallery.md#draw-an-image-inside-tmux) lainnya. Setelah Anda menambahkan baris-baris tersebut, lepaskan juga (detach) dari tmux, sambungkan kembali (attach), dan mulai ulang Claude Code.

146 146 

Details

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 |

41| `PowerShell` | Menjalankan perintah PowerShell secara native. Lihat [Tool PowerShell](#powershell-tool) untuk ketersediaan | Ya |41| `PowerShell` | Menjalankan perintah PowerShell secara native. Lihat [Tool PowerShell](#powershell-tool) untuk ketersediaan | Ya |

42| `PushNotification` | Mengirim notifikasi desktop, dan push ponsel ketika [Remote Control](https://code.claude.com/docs/id/remote-control.md) terhubung, sehingga tugas yang berjalan lama atau [tugas terjadwal dalam lingkup sesi](https://code.claude.com/docs/id/scheduled-tasks.md) dapat menjangkau Anda ketika Anda pergi. Pengiriman push berjalan melalui infrastruktur yang dihosting Anthropic, yang tidak dapat diakses dari Amazon Bedrock, Claude Platform di AWS, Agent Platform Google Cloud, atau Microsoft Foundry | Tidak |42| `PushNotification` | Mengirim notifikasi desktop dari sesi lokal, dan push ponsel dengan [Remote Control](https://code.claude.com/docs/id/remote-control.md) atau dalam [sesi cloud](https://code.claude.com/docs/id/claude-code-on-the-web.md). Pengiriman push berjalan melalui infrastruktur yang dihosting Anthropic, yang tidak dapat diakses dari Amazon Bedrock, Claude Platform di AWS, Agent Platform Google Cloud, atau Microsoft Foundry | Tidak |

43| `Read` | Membaca konten file. Lihat [Perilaku tool Read](#read-tool-behavior) | Tidak |43| `Read` | Membaca konten file. Lihat [Perilaku tool Read](#read-tool-behavior) | Tidak |

44| `ReadMcpResourceTool` | Membaca sumber daya MCP tertentu berdasarkan URI | Tidak |44| `ReadMcpResourceTool` | Membaca sumber daya MCP tertentu berdasarkan URI | Tidak |

45| `RemoteTrigger` | Membuat, memperbarui, menjalankan, dan mencantumkan [tugas terjadwal cloud](https://code.claude.com/docs/id/routines.md), sebelumnya bernama routine, di claude.ai. Mendukung perintah `/schedule`. [Referensi input `RemoteTrigger`](https://code.claude.com/docs/id/agent-sdk/typescript#remotetrigger) mendokumentasikan setiap tindakan dan kebijakan organisasi yang menghapus tool. Tugas terjadwal cloud berada di claude.ai dan memerlukan paket Pro, Max, Ultra, Team, atau Enterprise. Oleh karena itu, tool ini tidak dapat diakses dari Amazon Bedrock, Claude Platform di AWS, Agent Platform Google Cloud, atau Microsoft Foundry | Tidak |45| `RemoteTrigger` | Membuat, memperbarui, menjalankan, dan mencantumkan [tugas terjadwal cloud](https://code.claude.com/docs/id/routines.md), sebelumnya bernama routine, di claude.ai. Mendukung perintah `/schedule`. [Referensi input `RemoteTrigger`](https://code.claude.com/docs/id/agent-sdk/typescript#remotetrigger) mendokumentasikan setiap tindakan dan kebijakan organisasi yang menghapus tool. Tugas terjadwal cloud berada di claude.ai dan memerlukan paket Pro, Max, Ultra, Team, atau Enterprise. Oleh karena itu, tool ini tidak dapat diakses dari Amazon Bedrock, Claude Platform di AWS, Agent Platform Google Cloud, atau Microsoft Foundry | Tidak |

vs-code.md +12 −3

Details

818 818 

819### Menjalankan CLI di VS Code819### Menjalankan CLI di VS Code

820 820 

821Untuk menggunakan CLI tanpa meninggalkan VS Code, tekan `` Ctrl+` `` di Windows/Linux atau `` Cmd+` `` di Mac untuk membuka terminal terintegrasi, lalu jalankan `claude`. Menjalankan `claude` tidak menginstal ekstensi. Tanpa ekstensi, `/ide` di terminal terintegrasi melaporkan "No available IDEs detected" dan `/status` menampilkan IDE sebagai "Not connected".821Untuk menggunakan CLI tanpa meninggalkan VS Code, tekan `` Ctrl+` `` di Windows/Linux atau `` Cmd+` `` di Mac untuk membuka terminal terintegrasi, lalu jalankan `claude`.

822 822 

823Untuk mendapatkan fitur seperti melihat diff dan berbagi diagnostik, hubungkan CLI ke ekstensi dari terminal terintegrasi atau terminal eksternal:823Untuk mendapatkan fitur seperti melihat diff dan berbagi diagnostik, hubungkan CLI ke ekstensi dari terminal terintegrasi atau terminal eksternal:

824 824 

825* **Terminal terintegrasi**: [instal ekstensi](#install-the-extension), lalu jalankan `claude`. CLI akan terhubung secara otomatis.825* **Terminal terintegrasi**: [instal ekstensi](#install-the-extension), lalu jalankan `claude`. CLI akan terhubung secara otomatis. Claude Code v2.1.318 atau yang lebih baru tidak menginstal ekstensi untuk Anda, sehingga sebelum Anda menginstalnya, `/ide` melaporkan "No available IDEs detected" dan `/status` menampilkan IDE sebagai "Not connected".

826* **Terminal eksternal**: jalankan `/ide` di dalam Claude Code untuk terhubung ke VS Code. Jika VS Code berjalan tanpa ekstensi, `/ide` akan menginstalnya, kecuali Anda menonaktifkan [`autoInstallIdeExtension`](https://code.claude.com/docs/id/settings-reference#autoinstallideextension).826* **Terminal eksternal**: jalankan `/ide` di dalam Claude Code untuk terhubung ke VS Code. Jika VS Code berjalan tanpa ekstensi, `/ide` akan menginstalnya, kecuali Anda menonaktifkan [`autoInstallIdeExtension`](https://code.claude.com/docs/id/settings-reference#autoinstallideextension).

827 827 

828Menginstal ekstensi tidak menempatkan `claude` di PATH shell Anda. Ekstensi menyertakan salinan privat CLI untuk panel obrolannya, tetapi mengetik `claude` di terminal memerlukan [instalasi CLI mandiri](https://code.claude.com/docs/id/setup.md). Jalankan instalasi sekali dan perintah-perintah di halaman ini, termasuk `claude mcp add` dan `claude --resume`, akan berfungsi di terminal mana pun. Jika `claude` masih tidak ditemukan setelah instalasi, [verifikasi PATH Anda](https://code.claude.com/docs/id/troubleshoot-install.md#verify-your-path).828Menginstal ekstensi tidak menempatkan `claude` di PATH shell Anda. Ekstensi menyertakan salinan privat CLI untuk panel obrolannya, tetapi mengetik `claude` di terminal memerlukan [instalasi CLI mandiri](https://code.claude.com/docs/id/setup.md). Jalankan instalasi sekali dan perintah-perintah di halaman ini, termasuk `claude mcp add` dan `claude --resume`, akan berfungsi di terminal mana pun. Jika `claude` masih tidak ditemukan setelah instalasi, [verifikasi PATH Anda](https://code.claude.com/docs/id/troubleshoot-install.md#verify-your-path).


10912. Cari "Claude Code"10912. Cari "Claude Code"

10923. Klik **Uninstall**10923. Klik **Uninstall**

1093 1093 

1094Ekstensi tetap tidak terinstal saat Anda memulai `claude`. Jika Anda menjalankan `/ide` dari terminal eksternal saat VS Code sedang berjalan, Claude Code akan menginstalnya ulang. Untuk mencegahnya, atur [`autoInstallIdeExtension`](https://code.claude.com/docs/id/settings-reference#autoinstallideextension) ke `false` di `~/.claude.json`, atau matikan **Auto-install IDE extension** di `/config` dari terminal terintegrasi. Anda juga dapat mengatur environment variable [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](https://code.claude.com/docs/id/env-vars) ke `1`.1094Jika Anda melakukan salah satu hal berikut setelah menghapus instalasi, ekstensi akan kembali terinstal:

1095 

1096* Menjalankan `/ide` dari terminal eksternal saat VS Code sedang berjalan

1097* Memulai `claude` di terminal terintegrasi pada versi Claude Code sebelum v2.1.318

1098 

1099Untuk mencegah ekstensi kembali terinstal, lakukan salah satu hal berikut, lalu hapus instalasinya lagi jika ekstensi sudah kembali terinstal:

1100 

1101* Atur [`autoInstallIdeExtension`](https://code.claude.com/docs/id/settings-reference#autoinstallideextension) ke `false` di `~/.claude.json`

1102* Atur [`CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL`](https://code.claude.com/docs/id/env-vars#variables) ke `1` di bawah `env` dalam [file pengaturan](https://code.claude.com/docs/id/env-vars.md#in-settings-files)

1103* Di terminal terintegrasi, matikan **Auto-install IDE extension** di `/config`

1095 1104 

1096Untuk juga menghapus data ekstensi dan mengatur ulang semua pengaturan, hapus direktori penyimpanan ekstensi untuk platform Anda.1105Untuk juga menghapus data ekstensi dan mengatur ulang semua pengaturan, hapus direktori penyimpanan ekstensi untuk platform Anda.

1097 1106 

Details

12 12 

13Sesi cloud menjalankan Claude Code pada infrastruktur cloud alih-alih mesin Anda, dikelola Anthropic secara default. Panduan singkat ini memulai satu dari [claude.ai/code](https://claude.ai/code) di browser Anda. Anda juga dapat memulai satu dari aplikasi mobile Claude, aplikasi Desktop, atau terminal Anda dengan `claude --cloud`.13Sesi cloud menjalankan Claude Code pada infrastruktur cloud alih-alih mesin Anda, dikelola Anthropic secara default. Panduan singkat ini memulai satu dari [claude.ai/code](https://claude.ai/code) di browser Anda. Anda juga dapat memulai satu dari aplikasi mobile Claude, aplikasi Desktop, atau terminal Anda dengan `claude --cloud`.

14 14 

15Anda memerlukan repositori GitHub untuk [memulai](#connect-github). Claude mengklonnya ke mesin virtual yang terisolasi, membuat perubahan, dan mendorong branch untuk Anda tinjau. Sesi bertahan di seluruh perangkat, jadi tugas yang Anda mulai di laptop siap ditinjau dari ponsel Anda nanti. Setiap sesi dihitung terhadap batas penggunaan paket Anda bersama dengan penggunaan Claude dan Claude Code Anda lainnya, dan tidak ada biaya terpisah untuk VM cloud.15Claude mengklon [repositori GitHub](#connect-github) yang Anda pilih ke mesin virtual yang terisolasi, membuat perubahan, dan mendorong branch untuk Anda tinjau. Sesi bertahan di seluruh perangkat, jadi tugas yang Anda mulai di laptop siap ditinjau dari ponsel Anda nanti. Setiap sesi dihitung terhadap batas penggunaan paket Anda bersama dengan penggunaan Claude dan Claude Code Anda lainnya, dan tidak ada biaya terpisah untuk VM cloud.

16 16 

17Sesi cloud bekerja dengan baik untuk:17Sesi cloud bekerja dengan baik untuk:

18 18 


44| **Anda memulainya dari** | claude.ai/code, aplikasi Claude mobile, aplikasi Desktop dengan **Cloud** dipilih, atau `claude --cloud` | Terminal Anda, IDE Anda, atau aplikasi Desktop dengan **Local** dipilih | Terminal Anda, ekstensi VS Code, atau aplikasi Desktop |44| **Anda memulainya dari** | claude.ai/code, aplikasi Claude mobile, aplikasi Desktop dengan **Cloud** dipilih, atau `claude --cloud` | Terminal Anda, IDE Anda, atau aplikasi Desktop dengan **Local** dipilih | Terminal Anda, ekstensi VS Code, atau aplikasi Desktop |

45| **Anda chat dari** | claude.ai, aplikasi mobile, atau aplikasi Desktop | Tempat Anda memulainya | claude.ai atau aplikasi mobile, serta tempat Anda memulainya |45| **Anda chat dari** | claude.ai, aplikasi mobile, atau aplikasi Desktop | Tempat Anda memulainya | claude.ai atau aplikasi mobile, serta tempat Anda memulainya |

46| **Menggunakan konfigurasi lokal Anda** | Tidak, hanya repo | Ya | Ya |46| **Menggunakan konfigurasi lokal Anda** | Tidak, hanya repo | Ya | Ya |

47| **Memerlukan GitHub** | Ya, atau [bundel repo lokal](https://code.claude.com/docs/id/claude-code-on-the-web.md#send-local-repositories-without-github) melalui `--cloud` | Tidak | Tidak |47| **Memerlukan GitHub** | Ya untuk repositori GitHub, kecuali `--cloud` [membundel repo lokal Anda](https://code.claude.com/docs/id/claude-code-on-the-web.md#send-local-repositories-without-github) | Tidak | Tidak |

48| **Terus berjalan jika Anda terputus** | Ya | Tidak | Selama sesi tetap terbuka di mesin Anda |48| **Terus berjalan jika Anda terputus** | Ya | Tidak | Selama sesi tetap terbuka di mesin Anda |

49| **[Mode izin](https://code.claude.com/docs/id/permission-modes.md)** | Terima editan, Plan, Auto | Semua mode di terminal; lihat [Beralih mode izin](https://code.claude.com/docs/id/permission-modes.md#switch-permission-modes) untuk IDE dan aplikasi Desktop | Manual, Terima editan, Plan, atau Auto dari claude.ai dan aplikasi mobile |49| **[Mode izin](https://code.claude.com/docs/id/permission-modes.md)** | Terima editan, Plan, Auto | Semua mode di terminal; lihat [Beralih mode izin](https://code.claude.com/docs/id/permission-modes.md#switch-permission-modes) untuk IDE dan aplikasi Desktop | Manual, Terima editan, Plan, atau Auto dari claude.ai dan aplikasi mobile |

50| **Akses jaringan** | Dapat dikonfigurasi per lingkungan | Jaringan mesin Anda | Jaringan mesin Anda |50| **Akses jaringan** | Dapat dikonfigurasi per lingkungan | Jaringan mesin Anda | Jaringan mesin Anda |


138 138 

139[Kontrol mode izin](https://code.claude.com/docs/id/permission-modes.md#switch-permission-modes) menunjukkan mode izin yang akan digunakan saat sesi berjalan:139[Kontrol mode izin](https://code.claude.com/docs/id/permission-modes.md#switch-permission-modes) menunjukkan mode izin yang akan digunakan saat sesi berjalan:

140 140 

141* **Auto**: pengklasifikasi meninjau tindakan Claude alih-alih meminta Anda. Muncul ketika organisasi Anda memungkinkan mode auto dan model yang dipilih mendukungnya141* **Auto**: pengklasifikasi meninjau tindakan Claude alih-alih meminta Anda. Muncul kecuali organisasi Anda mematikan [auto mode](https://code.claude.com/docs/id/permission-modes.md#eliminate-prompts-with-auto-mode). Di claude.ai/code, jika opsi ini berwarna abu-abu, pilih model yang mendukung auto mode

142* **Terima editan**: Claude membuat perubahan dan mendorong cabang tanpa berhenti untuk persetujuan142* **Terima editan**: Claude membuat perubahan dan mendorong cabang tanpa berhenti untuk persetujuan

143* **Plan**: Claude mengusulkan pendekatan dan menunggu Anda menyetujuinya sebelum mengedit file143* **Plan**: Claude mengusulkan pendekatan dan menunggu Anda menyetujuinya sebelum mengedit file

144 144 


209 209 

210### The page only shows a GitHub login button210### The page only shows a GitHub login button

211 211 

212Cloud 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](https://code.claude.com/docs/id/remote-control.md) to run Claude Code on your own machine and monitor it from your browser or phone.212Untuk bekerja di repositori GitHub dalam sesi cloud, [hubungkan akun GitHub Anda](#connect-github), atau jalankan `/web-setup` dari terminal Anda jika Anda menggunakan GitHub CLI. Jika Anda lebih memilih untuk tidak menghubungkan GitHub sama sekali, lihat [Remote Control](https://code.claude.com/docs/id/remote-control.md) untuk menjalankan Claude Code di mesin Anda sendiri dan memantaunya dari browser atau ponsel Anda.

213 213 

214### "Claude Code isn't available on your account"214### "Claude Code isn't available on your account"

215 215 


242 242 

243### Setup script failed243### Setup script failed

244 244 

245The setup script exited with a non-zero status, which blocks the session from starting. Common causes:245[Skrip penyiapan](https://code.claude.com/docs/id/cloud-environments.md#setup-scripts) keluar dengan status bukan nol, sehingga sesi gagal dimulai atau dimulai tanpa apa pun yang gagal diinstal oleh skrip tersebut. Jika sesi sudah dimulai, Anda dapat terus bekerja di dalamnya.

246 

247Penyebab umum:

246 248 

247* A package install failed because the registry isn't in your [network access level](https://code.claude.com/docs/id/cloud-environments.md#access-levels). `Trusted` covers most package managers; `None` blocks them all.249* A package install failed because the registry isn't in your [network access level](https://code.claude.com/docs/id/cloud-environments.md#access-levels). `Trusted` covers most package managers; `None` blocks them all.

248* The script references a file or path that doesn't exist in a fresh clone.250* The script references a file or path that doesn't exist in a fresh clone.

249* A command that works locally needs a different invocation on Ubuntu.251* A command that works locally needs a different invocation on Ubuntu.

250 252 

251To debug, add `set -x` at the top of the script to see which command failed. For non-critical commands, append `|| true` so they don't block session start.253Untuk melakukan debug, tambahkan `set -x` di bagian atas skrip untuk melihat perintah mana yang gagal. Untuk perintah yang tidak kritis, tambahkan `|| true` agar perintah tersebut tidak menggagalkan skrip. Setelah Anda memperbaiki penyebabnya, mulai sesi baru agar skrip dijalankan lagi. Jika yang gagal dimulai adalah eksekusi dari [tugas terjadwal cloud](https://code.claude.com/docs/id/routines.md), klik **Run now** di halaman detail tugas tersebut alih-alih memulai sesi baru.

252 254 

253### New sessions hang or time out during setup255### New sessions hang or time out during setup

254 256