SpyBara
Go Premium

Documentation 2026-10-06 23:59 UTC to 2026-10-07 07:57 UTC

24 files changed +78 −41. View all changes and history on the product overview
2026
Wed 7 07:57 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59
Details

717| `accountInfo()` | Mengembalikan informasi akun |717| `accountInfo()` | Mengembalikan informasi akun |

718| `reconnectMcpServer(serverName)` | Menghubungkan ulang server MCP berdasarkan nama. Jika nama tersebut juga cocok dengan entri dalam file pengaturan seperti `.mcp.json` atau `~/.claude.json`, Claude Code menghubungkan ulang server yang Anda konfigurasi melalui [`mcpServers`](#options) atau `setMcpServers()`, bukan entri file pengaturan. Urutan resolusi tersebut memerlukan Claude Code v2.1.257 atau yang lebih baru |718| `reconnectMcpServer(serverName)` | Menghubungkan ulang server MCP berdasarkan nama. Jika nama tersebut juga cocok dengan entri dalam file pengaturan seperti `.mcp.json` atau `~/.claude.json`, Claude Code menghubungkan ulang server yang Anda konfigurasi melalui [`mcpServers`](#options) atau `setMcpServers()`, bukan entri file pengaturan. Urutan resolusi tersebut memerlukan Claude Code v2.1.257 atau yang lebih baru |

719| `toggleMcpServer(serverName, enabled)` | Mengaktifkan atau menonaktifkan server MCP berdasarkan nama, dengan resolusi nama yang sama seperti `reconnectMcpServer()`. Menonaktifkan server akan memutuskan koneksinya dan menghapus tool-nya. Lihat [`toggleMcpServer()`](#togglemcpserver) untuk versi Claude Code yang diperlukan untuk setiap jenis server |719| `toggleMcpServer(serverName, enabled)` | Mengaktifkan atau menonaktifkan server MCP berdasarkan nama, dengan resolusi nama yang sama seperti `reconnectMcpServer()`. Menonaktifkan server akan memutuskan koneksinya dan menghapus tool-nya. Lihat [`toggleMcpServer()`](#togglemcpserver) untuk versi Claude Code yang diperlukan untuk setiap jenis server |

720| `setMcpServers(servers)` | Mengganti set server MCP untuk sesi ini secara dinamis. Resolve dengan [`McpSetServersResult`](#mcpsetserversresult) yang menyebutkan server mana yang ditambahkan dan dihapus, serta error apa pun |720| `setMcpServers(servers)` | Mengganti server MCP yang dikelola metode ini: server yang ditambahkan melaluinya dan [server SDK dalam proses](#createsdkmcpserver). Di-resolve dengan [`McpSetServersResult`](#mcpsetserversresult) yang menyebutkan server mana yang ditambahkan dan dihapus, serta error apa pun; bagian tersebut menjelaskan server lain mana yang tetap terhubung |

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

722| `streamInput(stream)` | Men-stream pesan input ke kueri untuk percakapan multi-giliran |722| `streamInput(stream)` | Men-stream pesan input ke kueri untuk percakapan multi-giliran |

723| `stopTask(taskId)` | Menghentikan tugas latar belakang yang sedang berjalan berdasarkan ID |723| `stopTask(taskId)` | Menghentikan tugas latar belakang yang sedang berjalan berdasarkan ID |


1337| `mcpServer` | `{ name: string; source: string }` | Untuk tool `mcp__*`, server MCP yang menyediakannya dan asal definisi server tersebut, dengan field dari [`McpServerProvenance`](#mcpserverprovenance). Tidak ada untuk tool lain. Memerlukan Agent SDK v0.3.274 atau yang lebih baru |1337| `mcpServer` | `{ name: string; source: string }` | Untuk tool `mcp__*`, server MCP yang menyediakannya dan asal definisi server tersebut, dengan field dari [`McpServerProvenance`](#mcpserverprovenance). Tidak ada untuk tool lain. Memerlukan Agent SDK v0.3.274 atau yang lebih baru |

1338| `decisionReason` | `string` | Menjelaskan mengapa permintaan izin ini dipicu |1338| `decisionReason` | `string` | Menjelaskan mengapa permintaan izin ini dipicu |

1339| `defaultToNo` | `boolean` | Ketika `true`, satu penekanan tombol yang tidak disengaja tidak boleh menyetujui permintaan ini: buka dialog Anda pada opsi tolak, jangan memilih setujui secara default, dan jangan tawarkan pintasan persetujuan satu tombol. Memerlukan Agent SDK v0.3.268 atau yang lebih baru |1339| `defaultToNo` | `boolean` | Ketika `true`, satu penekanan tombol yang tidak disengaja tidak boleh menyetujui permintaan ini: buka dialog Anda pada opsi tolak, jangan memilih setujui secara default, dan jangan tawarkan pintasan persetujuan satu tombol. Memerlukan Agent SDK v0.3.268 atau yang lebih baru |

1340| `suppressAlwaysAllowRule` | `boolean` | Ketika `true`, jangan tawarkan pilihan selalu-izinkan yang persisten untuk permintaan ini, karena aturan yang akan ditulisnya memberikan lebih dari tindakan permintaan itu sendiri. Memerlukan Agent SDK v0.3.268 atau yang lebih baru |1340| `suppressAlwaysAllowRule` | `boolean` | Ketika `true`, jangan tawarkan pilihan selalu-izinkan yang persisten untuk permintaan ini. Memerlukan Agent SDK v0.3.268 atau yang lebih baru |

1341| `toolUseID` | `string` | Pengidentifikasi unik untuk panggilan tool spesifik ini dalam pesan asisten |1341| `toolUseID` | `string` | Pengidentifikasi unik untuk panggilan tool spesifik ini dalam pesan asisten |

1342| `agentID` | `string` | Jika berjalan di dalam sub-agent, ID sub-agent tersebut |1342| `agentID` | `string` | Jika berjalan di dalam sub-agent, ID sub-agent tersebut |

1343| `requestId` | `string` | `request_id` dari envelope `control_request`. `control_response` yang dikirim aplikasi Anda di luar SDK, seperti HTTP POST yang ditandatangani, harus mengembalikan nilai ini agar proses Claude Code dapat mencocokkan balasan dengan permintaannya |1343| `requestId` | `string` | `request_id` dari envelope `control_request`. `control_response` yang dikirim aplikasi Anda di luar SDK, seperti HTTP POST yang ditandatangani, harus mengembalikan nilai ini agar proses Claude Code dapat mencocokkan balasan dengan permintaannya |


5532 5532 

5533Ketika Anda memanggil `setMcpServers()`, Claude Code menerapkan aturan berikut:5533Ketika Anda memanggil `setMcpServers()`, Claude Code menerapkan aturan berikut:

5534 5534 

5535* **Server yang tidak disebutkan dalam panggilan**: Claude Code menjaga server yang disediakan plugin tetap berjalan. Memerlukan Agent SDK v0.3.210 atau lebih baru.5535* **Server yang tidak disebutkan dalam panggilan**: di luar [sesi cloud](/docs/id/claude-code-on-the-web), Claude Code memutuskan koneksi server yang ditambahkan oleh panggilan `setMcpServers()` sebelumnya dan server SDK dalam proses, lalu mencantumkannya dalam `removed`. Server lainnya tetap berjalan dan tidak dicantumkan dalam `removed`, di antaranya server stdio, HTTP, dan SSE dari opsi [`mcpServers`](#options), server dari file pengaturan, dan server yang disediakan plugin.

5536* **Server yang disebutkan dalam panggilan**: kecuali untuk server bawaan yang dimulai CLI saat startup, Claude Code mengganti server yang sedang berjalan hanya ketika konfigurasinya berbeda dari yang Anda teruskan.5536* **Server yang disebutkan dalam panggilan**: Claude Code mengganti server stdio, HTTP, atau SSE yang ditambahkan oleh panggilan `setMcpServers()` sebelumnya hanya ketika konfigurasinya berbeda dari yang Anda teruskan. Server SDK dalam proses yang sudah terdaftar dengan nama tersebut tetap seperti apa adanya, jadi untuk menggantinya, keluarkan server itu dari satu panggilan dan tambahkan pada panggilan berikutnya.

5537* **Server bawaan yang dimulai CLI saat startup**: jika panggilan menyebutkan salah satunya, Claude Code menghapus entri itu dan melaporkannya dalam `errors`.5537* **Server bawaan yang dimulai CLI saat startup**: jika panggilan menyebutkan salah satunya, Claude Code menghapus entri itu dan melaporkannya dalam `errors`.

5538 5538 

5539Promise diselesaikan setelah server stdio, HTTP, dan SSE yang baru ditambahkan terhubung atau gagal, jadi tool dari server yang terhubung tersedia pada giliran berikutnya.5539Promise diselesaikan setelah server stdio, HTTP, dan SSE yang baru ditambahkan terhubung atau gagal, jadi tool dari server yang terhubung tersedia pada giliran berikutnya.

agent-view.md +1 −0

Details

819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Hapus sesi yang penghapusannya ditolak karena commit yang belum di-push, membuang worktree beserta branch dan commitnya. Lewatkan nilai yang tepat yang ditampilkan penolakan; lihat [Apa yang dihapus saat menghapus sesi](#what-deleting-a-session-removes). Memerlukan v2.1.260 atau lebih baru |819| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Hapus sesi yang penghapusannya ditolak karena commit yang belum di-push, membuang worktree beserta branch dan commitnya. Lewatkan nilai yang tepat yang ditampilkan penolakan; lihat [Apa yang dihapus saat menghapus sesi](#what-deleting-a-session-removes). Memerlukan v2.1.260 atau lebih baru |

820| `claude rm <id> --force-remove-worktree <worktree-id>` | Hapus sesi yang penghapusannya ditolak karena git atau hook `WorktreeRemove` tidak dapat menghapus worktreenya, menghapus direktori worktree bagaimanapun dan meninggalkan branch-nya di repositori. Lewatkan nilai yang tepat yang ditampilkan penolakan; lihat [Apa yang dihapus saat menghapus sesi](#what-deleting-a-session-removes). Memerlukan v2.1.268 atau lebih baru |820| `claude rm <id> --force-remove-worktree <worktree-id>` | Hapus sesi yang penghapusannya ditolak karena git atau hook `WorktreeRemove` tidak dapat menghapus worktreenya, menghapus direktori worktree bagaimanapun dan meninggalkan branch-nya di repositori. Lewatkan nilai yang tepat yang ditampilkan penolakan; lihat [Apa yang dihapus saat menghapus sesi](#what-deleting-a-session-removes). Memerlukan v2.1.268 atau lebih baru |

821| `claude daemon status` | Cetak status [supervisor](#the-supervisor-process), versi, direktori soket, dan jumlah pekerja |821| `claude daemon status` | Cetak status [supervisor](#the-supervisor-process), versi, direktori soket, dan jumlah pekerja |

822| `claude daemon logs` | Ikuti file log supervisor, [`~/.claude/daemon.log`](#where-state-is-stored), dengan mencetak baris baru saat baris tersebut masuk hingga Anda menekan `Ctrl+C` |

822| `claude daemon stop --any` | Hentikan proses supervisor dan sesi latar belakang yang dihosting. Lewatkan `--keep-workers` untuk membiarkan sesi latar belakang tetap berjalan sehingga supervisor berikutnya dapat terhubung kembali ke sesi tersebut. `claude agents` atau `claude --bg` berikutnya memulai supervisor baru |823| `claude daemon stop --any` | Hentikan proses supervisor dan sesi latar belakang yang dihosting. Lewatkan `--keep-workers` untuk membiarkan sesi latar belakang tetap berjalan sehingga supervisor berikutnya dapat terhubung kembali ke sesi tersebut. `claude agents` atau `claude --bg` berikutnya memulai supervisor baru |

823 824 

824`claude attach` dan `claude logs` dapat menerima sebagian nama sesi yang sedang berjalan sebagai pengganti ID, seperti dalam `claude logs "auth refactor"`. Meneruskan nama memerlukan Claude Code v2.1.290 atau lebih baru.825`claude attach` dan `claude logs` dapat menerima sebagian nama sesi yang sedang berjalan sebagai pengganti ID, seperti dalam `claude logs "auth refactor"`. Meneruskan nama memerlukan Claude Code v2.1.290 atau lebih baru.

agents.md +1 −1

Details

20 20 

21Tiga alat lagi mendukung pekerjaan ini tanpa menjadi cara untuk menjalankan agen sendiri:21Tiga alat lagi mendukung pekerjaan ini tanpa menjadi cara untuk menjalankan agen sendiri:

22 22 

23* [Worktrees](/docs/id/worktrees) memberikan setiap sesi checkout git terpisah, sehingga sesi paralel tidak pernah mengedit file yang sama. Gunakan untuk sesi yang Anda jalankan sendiri. Sesi yang Anda kirim dari agent view [berpindah ke worktree-nya sendiri sebelum mengedit file](/docs/id/agent-view#how-file-edits-are-isolated), dan subagents yang Anda hasilkan dapat masing-masing mendapatkan satu juga.23* [Worktrees](/docs/id/worktrees) memberikan setiap sesi checkout git terpisah, sehingga setiap sesi paralel mengedit salinan file miliknya sendiri. Gunakan untuk sesi yang Anda jalankan sendiri. Sesi yang Anda kirim dari agent view [berpindah ke worktree-nya sendiri sebelum mengedit file](/docs/id/agent-view#how-file-edits-are-isolated), dan subagent yang Anda hasilkan dapat masing-masing mendapatkan satu juga.

24* [Cross-session messaging](/docs/id/cross-session-messaging) memungkinkan Claude untuk membuat daftar dan mengirim pesan ke sesi Claude Code lain Anda di mesin ini, di mesin lain, atau [di cloud](/docs/id/claude-code-on-the-web), sehingga sesi yang Anda jalankan sendiri dapat melewatkan temuan dan status di antara mereka.24* [Cross-session messaging](/docs/id/cross-session-messaging) memungkinkan Claude untuk membuat daftar dan mengirim pesan ke sesi Claude Code lain Anda di mesin ini, di mesin lain, atau [di cloud](/docs/id/claude-code-on-the-web), sehingga sesi yang Anda jalankan sendiri dapat melewatkan temuan dan status di antara mereka.

25* [`/batch`](/docs/id/commands) adalah [skill](/docs/id/skills) yang membuat Claude membagi satu perubahan besar menjadi 5 hingga 30 subagents terisolasi worktree. Ini adalah penggunaan subagents dan worktrees yang dikemas, bukan gaya koordinasi terpisah.25* [`/batch`](/docs/id/commands) adalah [skill](/docs/id/skills) yang membuat Claude membagi satu perubahan besar menjadi 5 hingga 30 subagents terisolasi worktree. Ini adalah penggunaan subagents dan worktrees yang dikemas, bukan gaya koordinasi terpisah.

26 26 

Details

73| - | - |73| - | - |

74| Claude Code v2.1.195 atau lebih baru | Subperintah `claude gateway` dan alur sign-in gateway dikirim di v2.1.195. Build publik sebelumnya tidak menyertakannya. Baik mesin yang menjalankan server gateway maupun mesin setiap pengembang harus pada v2.1.195 atau lebih baru; jalankan `claude update` untuk mendapatkan rilis terbaru. Upstream [Claude Platform on AWS](/docs/id/claude-apps-gateway-config#claude-platform-on-aws) memerlukan Claude Code v2.1.198 atau lebih baru di server gateway. |74| Claude Code v2.1.195 atau lebih baru | Subperintah `claude gateway` dan alur sign-in gateway dikirim di v2.1.195. Build publik sebelumnya tidak menyertakannya. Baik mesin yang menjalankan server gateway maupun mesin setiap pengembang harus pada v2.1.195 atau lebih baru; jalankan `claude update` untuk mendapatkan rilis terbaru. Upstream [Claude Platform on AWS](/docs/id/claude-apps-gateway-config#claude-platform-on-aws) memerlukan Claude Code v2.1.198 atau lebih baru di server gateway. |

75| Penyedia identitas OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, atau Dex, atau IdP yang sesuai dengan OIDC lainnya seperti PingFederate. Gateway menjalankan penemuan OIDC standar dan alur kode otorisasi terhadapnya. SAML dan LDAP tidak didukung. |75| Penyedia identitas OpenID Connect (OIDC) | Okta, Microsoft Entra ID, Google Workspace, Keycloak, atau Dex, atau IdP yang sesuai dengan OIDC lainnya seperti PingFederate. Gateway menjalankan penemuan OIDC standar dan alur kode otorisasi terhadapnya. SAML dan LDAP tidak didukung. |

76| PostgreSQL 14 atau lebih baru | Mendukung alur sign-in perangkat, di mana callback browser menulis dan CLI polling membaca, ditambah penghitung batas laju. Postgres yang dikelola apa pun berfungsi, termasuk tingkat terkecil. Tanpa batas pengeluaran yang dikonfigurasi, gateway menyimpan beberapa KB status auth berumur pendek; dengan [batas pengeluaran](/docs/id/claude-apps-gateway-spend-limits), ia juga menyimpan tabel pengeluaran, audit, dan identitas yang tahan lama yang harus dicadangkan. TLS melalui `?sslmode=require` direkomendasikan. |76| PostgreSQL 11 atau lebih baru | Mendukung alur sign-in perangkat dan penghitung rate limit. Layanan PostgreSQL terkelola berfungsi, termasuk tingkat terkecil; lihat [database mana yang didukung](/docs/id/claude-apps-gateway-deploy#postgres). Dengan [batas pengeluaran](/docs/id/claude-apps-gateway-spend-limits), ia juga menyimpan tabel pengeluaran, audit, dan identitas yang tahan lama yang harus dicadangkan. TLS melalui `?sslmode=require` direkomendasikan. PostgreSQL 11, 12, dan 13 memerlukan Claude Code v2.1.290 atau lebih baru di server gateway. Proyek PostgreSQL tidak lagi memelihara versi tersebut, jadi gunakan versi yang lebih baru jika memungkinkan. |

77| Model upstream | Kredensial Amazon Bedrock, kredensial Claude Platform on AWS, kredensial Google Cloud, sumber daya Microsoft Foundry, atau kunci API Anthropic. Beberapa upstream didukung dengan failover. |77| Model upstream | Kredensial Amazon Bedrock, kredensial Claude Platform on AWS, kredensial Google Cloud, sumber daya Microsoft Foundry, atau kunci API Anthropic. Beberapa upstream didukung dengan failover. |

78| HTTPS | Gateway harus dapat dijangkau melalui `https://` dari laptop pengembang dan dari browser apa pun yang digunakan untuk sign-in; gateway melayani halaman verifikasi perangkat pada pendengar yang sama. Berikan sertifikat TLS melalui `listen.tls` atau jalankan di balik ingress yang menghentikan TLS, dan atur `listen.public_url` ke asal eksternal dalam kedua kasus. Asal `http://` biasa hanya diterima ketika host gateway adalah loopback: `localhost`, `127.0.0.1`, atau `::1`. |78| HTTPS | Gateway harus dapat dijangkau melalui `https://` dari laptop pengembang dan dari browser apa pun yang digunakan untuk sign-in; gateway melayani halaman verifikasi perangkat pada pendengar yang sama. Berikan sertifikat TLS melalui `listen.tls` atau jalankan di balik ingress yang menghentikan TLS, dan atur `listen.public_url` ke asal eksternal dalam kedua kasus. Asal `http://` biasa hanya diterima ketika host gateway adalah loopback: `localhost`, `127.0.0.1`, atau `::1`. |

79| Alamat jaringan pribadi | Di `/login`, Claude Code memerlukan nama host atau alamat IP gateway untuk diselesaikan hanya ke alamat pribadi: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7`, atau loopback. Untuk gateway yang Anda hosting, alamat publik apa pun di luar blok yang Anda deklarasikan ditolak; lihat [model ancaman](/docs/id/claude-apps-gateway-deploy#threat-model-summary) dalam panduan penyebaran. Jika mesin pengembang merutekan HTTPS melalui proxy perusahaan, sign-in juga memerlukan host proxy untuk diselesaikan ke alamat pribadi; jika tidak, tambahkan host gateway ke `NO_PROXY` sehingga CLI terhubung langsung. Jika jaringan internal Anda bernomor dari ruang IPv4 publik yang dimiliki organisasi Anda, [deklarasikan blok-blok tersebut](#allow-a-gateway-on-public-address-space-you-own) sehingga `/login` menerima gateway di sana. |79| Alamat jaringan pribadi | Di `/login`, Claude Code memerlukan nama host atau alamat IP gateway untuk diselesaikan hanya ke alamat pribadi: RFC 1918, link-local, CGNAT `100.64.0.0/10`, IPv6 ULA `fc00::/7`, atau loopback. Untuk gateway yang Anda hosting, alamat publik apa pun di luar blok yang Anda deklarasikan ditolak; lihat [model ancaman](/docs/id/claude-apps-gateway-deploy#threat-model-summary) dalam panduan penyebaran. Jika mesin pengembang merutekan HTTPS melalui proxy perusahaan, sign-in juga memerlukan host proxy untuk diselesaikan ke alamat pribadi; jika tidak, tambahkan host gateway ke `NO_PROXY` sehingga CLI terhubung langsung. Jika jaringan internal Anda bernomor dari ruang IPv4 publik yang dimiliki organisasi Anda, [deklarasikan blok-blok tersebut](#allow-a-gateway-on-public-address-space-you-own) sehingga `/login` menerima gateway di sana. |


89 </Step>89 </Step>

90 90 

91 <Step title="Sediakan database PostgreSQL">91 <Step title="Sediakan database PostgreSQL">

92 Postgres 14 atau lebih baru apa pun berfungsi, termasuk tingkat terkelola terkecil. Gateway menjalankan migrasi skema sendiri saat boot, jadi peran database memerlukan hak untuk membuat dan mengubah tabel; lihat [`store`](/docs/id/claude-apps-gateway-config#store).92 Gunakan PostgreSQL 11 atau lebih baru. Tingkat terkelola terkecil sudah cukup. Gateway menjalankan migrasi skema sendiri saat boot, jadi peran database memerlukan hak untuk membuat dan mengubah tabel; lihat [`store`](/docs/id/claude-apps-gateway-config#store).

93 </Step>93 </Step>

94 94 

95 <Step title="Tulis gateway.yaml">95 <Step title="Tulis gateway.yaml">

Details

158Gateway membaca key dan sertifikat sekali saat boot, jadi file yang berubah baru berlaku setelah restart. Lakukan rotasi dengan urutan ini agar tidak ada permintaan token yang menyajikan sertifikat yang tidak dimiliki IdP:158Gateway membaca key dan sertifikat sekali saat boot, jadi file yang berubah baru berlaku setelah restart. Lakukan rotasi dengan urutan ini agar tidak ada permintaan token yang menyajikan sertifikat yang tidak dimiliki IdP:

159 159 

1601. Unggah sertifikat baru ke IdP di samping sertifikat lama.1601. Unggah sertifikat baru ke IdP di samping sertifikat lama.

1612. Ganti file key dan sertifikat yang dimuat oleh `gateway.yaml`, lalu restart gateway.1612. Ganti file key dan sertifikat yang dimuat oleh `gateway.yaml`, lalu restart gateway. Jika Anda menjalankan beberapa replica, [rolling restart](/docs/id/claude-apps-gateway-deploy#upgrades) dapat digunakan, karena IdP memiliki kedua sertifikat sampai Anda menghapus sertifikat lama.

1623. Hapus sertifikat lama dari IdP.1623. Setelah setiap replica di-restart, hapus sertifikat lama dari IdP.

163 163 

164<h4 id="idp-requests-through-a-forward-proxy">164<h4 id="idp-requests-through-a-forward-proxy">

165 IdP requests through a forward proxy165 IdP requests through a forward proxy


227 227 

228| Field | Diperlukan | Deskripsi |228| Field | Diperlukan | Deskripsi |

229| - | - | - |229| - | - | - |

230| `postgres_url` | Ya | `postgres://` atau `postgresql://` URL. Diperlukan: device-grant rendezvous, di mana browser callback menulis dan polling CLI membaca, memerlukan cross-replica state. Gateway menjalankan schema migrations-nya sendiri saat boot dan pada upgrade, jadi role memerlukan rights untuk membuat dan mengubah tables pada target schema. Lihat [Upgrades](/docs/id/claude-apps-gateway-deploy#upgrades) dan [Postgres](/docs/id/claude-apps-gateway-deploy#postgres). |230| `postgres_url` | Ya | URL `postgres://` atau `postgresql://` dengan satu host, bukan daftar yang dipisahkan koma. Gateway menjalankan schema migrations-nya sendiri saat boot dan pada upgrade, jadi role memerlukan rights untuk membuat dan mengubah tables pada target schema. Lihat [Upgrades](/docs/id/claude-apps-gateway-deploy#upgrades) dan [Postgres](/docs/id/claude-apps-gateway-deploy#postgres). |

231| `username` | Tidak | Overrides user di `postgres_url` |231| `username` | Tidak | Overrides user di `postgres_url` |

232| `password` | Tidak | Database credential. Atur di sini daripada di `postgres_url` jadi credential tetap keluar dari URL. Menerima karakter apa pun dan mengambil precedence atas URL credentials. |232| `password` | Tidak | Database credential. Atur di sini daripada di `postgres_url` jadi credential tetap keluar dari URL. Menerima karakter apa pun dan mengambil precedence atas URL credentials. |

233| `max_connections` | Tidak | Postgres connection-pool size per replica. Default `5`, yang konservatif dan ramah ke shared databases. Dengan [spend limits](#admin) diaktifkan, hot path melakukan beberapa operasi per inference request, jadi naikkan untuk dedicated database di bawah load, dan simpan replicas × ini di bawah database's `max_connections`. |233| `max_connections` | Tidak | Postgres connection-pool size per replica. Default `5`, yang konservatif dan ramah ke shared databases. Dengan [spend limits](#admin) diaktifkan, hot path melakukan beberapa operasi per inference request, jadi naikkan untuk dedicated database di bawah load, dan simpan replicas × ini di bawah database's `max_connections`. |

Details

249 Postgres249 Postgres

250</h3>250</h3>

251 251 

252Gateway menyimpan statusnya dalam database PostgreSQL:

253 

254* **Database**: PostgreSQL itu sendiri, di-host sendiri atau terkelola, pada [versi minimum](/docs/id/claude-apps-gateway#prerequisites) atau lebih baru. Database yang hanya mengimplementasikan protokol Postgres, seperti database SQL terdistribusi, tidak didukung.

255* **Alamat**: `store.postgres_url` menerima satu host. Jika database memiliki beberapa node, gunakan alamat yang berada di depannya, seperti endpoint layanan terkelola Anda, load balancer, atau IP virtual. Atur [periode grace kesiapan](#readiness-grace-period) yang lebih lama dari waktu yang diperlukan failover.

256 

252Gateway menyimpan lima tabel data ditambah tabel `_migrations`, semuanya dibuat oleh migrasi waktu boot-nya:257Gateway menyimpan lima tabel data ditambah tabel `_migrations`, semuanya dibuat oleh migrasi waktu boot-nya:

253 258 

254| Tabel | Isi | Retensi |259| Tabel | Isi | Retensi |


396| CLI `/login`: `Could not resolve the configured HTTP proxy` | Nama host dalam `HTTPS_PROXY` atau `HTTP_PROXY` tidak diselesaikan dari mesin pengembang, biasanya karena tidak terhubung ke jaringan korporat | Minta pengembang terhubung ke jaringan atau VPN Anda dan coba ulang, atau perbaiki URL proxy |401| CLI `/login`: `Could not resolve the configured HTTP proxy` | Nama host dalam `HTTPS_PROXY` atau `HTTP_PROXY` tidak diselesaikan dari mesin pengembang, biasanya karena tidak terhubung ke jaringan korporat | Minta pengembang terhubung ke jaringan atau VPN Anda dan coba ulang, atau perbaiki URL proxy |

397| CLI `/login`: `Could not resolve gateway host <host>` | Mesin tidak dapat menyelesaikan nama DNS internal gateway, biasanya karena tidak berada di jaringan korporat | Minta pengembang terhubung ke jaringan atau VPN Anda, lalu coba ulang `/login` |402| CLI `/login`: `Could not resolve gateway host <host>` | Mesin tidak dapat menyelesaikan nama DNS internal gateway, biasanya karena tidak berada di jaringan korporat | Minta pengembang terhubung ke jaringan atau VPN Anda, lalu coba ulang `/login` |

398| Boot keluar dengan kesalahan validasi konfigurasi yang menamai `store.postgres_url` | Tidak ada Postgres yang dikonfigurasi; gateway memerlukan Postgres | Atur `store.postgres_url`. Untuk pengembangan lokal, gunakan kontainer sekali pakai: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |403| Boot keluar dengan kesalahan validasi konfigurasi yang menamai `store.postgres_url` | Tidak ada Postgres yang dikonfigurasi; gateway memerlukan Postgres | Atur `store.postgres_url`. Untuk pengembangan lokal, gunakan kontainer sekali pakai: `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`. |

404| Boot keluar: `store.postgres_url in <path> is not a URL the gateway can read`, atau sebelum v2.1.290 hanya `Invalid URL` atau `URI error` | URL tidak dapat diurai, misalnya karena mencantumkan lebih dari satu host atau kata sandinya memiliki `/`, `?`, `#`, atau `%` yang tidak dienkode | Sebutkan [satu host](#postgres), dan pindahkan kata sandi ke [`store.password`](/docs/id/claude-apps-gateway-config#store) |

399| Boot keluar: `requires the native binary` | Berjalan di bawah Node bukan biner asli | Instal Claude Code dengan salah satu [metode instalasi mandiri](/docs/id/setup) |405| Boot keluar: `requires the native binary` | Berjalan di bawah Node bukan biner asli | Instal Claude Code dengan salah satu [metode instalasi mandiri](/docs/id/setup) |

400| Boot keluar dengan kesalahan penemuan OIDC setelah `config.load` | `oidc.issuer` tidak dapat dijangkau, atau rantai TLS tidak dipercaya | Periksa issuer dapat dijangkau dari pod dan melayani `/.well-known/openid-configuration`. Atur `ca_cert_pem` untuk PKI pribadi. Jika pod menjangkau IdP hanya melalui proxy forward, atur [`oidc.use_proxy: true`](/docs/id/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); pada versi sebelum v2.1.227, berikan pod rute langsung ke setiap endpoint IdP sebagai gantinya. Jika pod juga tidak dapat menyelesaikan nama host IdP, atau proxy menolak `CONNECT` ke alamat IP, lihat [Proxy-only egress](/docs/id/claude-apps-gateway-config#proxy-only-egress), yang memerlukan v2.1.277 atau lebih baru. |406| Boot keluar dengan kesalahan penemuan OIDC setelah `config.load` | `oidc.issuer` tidak dapat dijangkau, atau rantai TLS tidak dipercaya | Periksa issuer dapat dijangkau dari pod dan melayani `/.well-known/openid-configuration`. Atur `ca_cert_pem` untuk PKI pribadi. Jika pod menjangkau IdP hanya melalui proxy forward, atur [`oidc.use_proxy: true`](/docs/id/claude-apps-gateway-config#idp-requests-through-a-forward-proxy); pada versi sebelum v2.1.227, berikan pod rute langsung ke setiap endpoint IdP sebagai gantinya. Jika pod juga tidak dapat menyelesaikan nama host IdP, atau proxy menolak `CONNECT` ke alamat IP, lihat [Proxy-only egress](/docs/id/claude-apps-gateway-config#proxy-only-egress), yang memerlukan v2.1.277 atau lebih baru. |

401| Boot keluar dengan kesalahan izin Postgres | Peran database kekurangan hak DDL pada skemanya | Berikan peran `CREATE` pada skema gateway sehingga dapat membuat dan mengubah tabelnya saat boot |407| Boot keluar dengan kesalahan izin Postgres | Peran database kekurangan hak DDL pada skemanya | Berikan peran `CREATE` pada skema gateway sehingga dapat membuat dan mengubah tabelnya saat boot |

402| Log: `could not connect to Postgres at boot, attempt 1 of 3` | Database tidak dapat dijangkau ketika gateway dimulai, misalnya pada instance dingin yang jaringannya masih sedang dimulai | Jika gateway kemudian selesai boot, tidak ada tindakan yang diperlukan. Ketika database tidak dapat dijangkau, gateway mencoba koneksi tiga kali, dua detik terpisah, sebelum keluar. Jika keluar dengan `could not connect to Postgres`, periksa `store.postgres_url` dan jalur jaringan ke database. Jika upaya habis waktu daripada ditolak, naikkan [`store.connect_timeout_seconds`](/docs/id/claude-apps-gateway-config#store) untuk memberikan masing-masing lebih lama. |408| Log: `could not connect to Postgres at boot, attempt 1 of 3` | Database tidak dapat dijangkau ketika gateway dimulai, misalnya pada instance dingin yang jaringannya masih sedang dimulai | Jika gateway kemudian selesai boot, tidak ada tindakan yang diperlukan. Ketika database tidak dapat dijangkau, gateway mencoba koneksi tiga kali, dua detik terpisah, sebelum keluar. Jika keluar dengan `could not connect to Postgres`, periksa `store.postgres_url`, termasuk bahwa URL tersebut menyebutkan satu host, dan jalur jaringan ke database. Jika upaya habis waktu daripada ditolak, naikkan [`store.connect_timeout_seconds`](/docs/id/claude-apps-gateway-config#store) untuk memberikan masing-masing lebih lama. |

403| `/oauth/callback` menampilkan "Sign-in could not be completed" | Domain email ditolak, validasi id\_token gagal, atau `email_verified` secara eksplisit `false`, yang gateway selalu tolak tanpa override | Periksa `allowed_email_domains` dan bahwa IdP mengembalikan klaim `email` yang diverifikasi. Untuk `email_verified: false`, perbaiki verifikasi sisi IdP. Jika IdP Anda memancarkan email di bawah nama klaim berbeda, atur `oidc.email_claim`. |409| `/oauth/callback` menampilkan "Sign-in could not be completed" | Domain email ditolak, validasi id\_token gagal, atau `email_verified` secara eksplisit `false`, yang gateway selalu tolak tanpa override | Periksa `allowed_email_domains` dan bahwa IdP mengembalikan klaim `email` yang diverifikasi. Untuk `email_verified: false`, perbaiki verifikasi sisi IdP. Jika IdP Anda memancarkan email di bawah nama klaim berbeda, atur `oidc.email_claim`. |

404| Log: `token exchange failed request_id=<id>: id_token missing email claim` | IdP tidak menyertakan `email` dalam id\_token secara default. Penolakan ini hanya terjadi ketika `allowed_email_domains` diatur; tanpanya, email yang hilang mencetak sesi tanpa email | Konfigurasikan IdP untuk memancarkan `email` dalam id\_token. Okta: tambahkan `email` ke klaim ID-token server otorisasi khusus. Entra: tambahkan `email` sebagai klaim opsional pada pendaftaran aplikasi. PingFederate: aktifkan Kebijakan OpenID Connect yang memancarkan `email`. Jika IdP melayani `email` dari endpoint userinfo tetapi tidak akan menyertakannya dalam id\_token, seperti server otorisasi org Okta, atur `oidc.userinfo_fallback: true`. |410| Log: `token exchange failed request_id=<id>: id_token missing email claim` | IdP tidak menyertakan `email` dalam id\_token secara default. Penolakan ini hanya terjadi ketika `allowed_email_domains` diatur; tanpanya, email yang hilang mencetak sesi tanpa email | Konfigurasikan IdP untuk memancarkan `email` dalam id\_token. Okta: tambahkan `email` ke klaim ID-token server otorisasi khusus. Entra: tambahkan `email` sebagai klaim opsional pada pendaftaran aplikasi. PingFederate: aktifkan Kebijakan OpenID Connect yang memancarkan `email`. Jika IdP melayani `email` dari endpoint userinfo tetapi tidak akan menyertakannya dalam id\_token, seperti server otorisasi org Okta, atur `oidc.userinfo_fallback: true`. |

405| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, dan pengembang melihat `Cloud gateway session expired` setiap `session.ttl_hours` | IdP menerima token refresh tetapi tidak mengembalikan id\_token dengannya, jadi gateway menanyakan endpoint userinfo IdP untuk klaim pengguna. IdP menolak token akses yang diperbarui di sana. Gateway menjawab `temporarily_unavailable`, jadi Claude Code menyimpan token refresh tetapi tidak dapat memperbarui sesi. Versi gateway sebelum v2.1.260 mencatat baris yang sama tanpa detail `(at …)`. | Atur [`oidc.scope_on_refresh: true`](/docs/id/claude-apps-gateway-config#oidc), tersedia di gateway v2.1.260 atau lebih baru, sehingga permintaan refresh meminta `openid` lagi. Beberapa IdP, seperti Okta, mengembalikan id\_token pada refresh hanya ketika diminta. Di PingFederate, aktifkan **Return ID Token On Refresh Grant** di bawah **Applications > OAuth > OpenID Connect Policy Management** sebagai gantinya. Kunci tidak mengubah perilaku PingFederate. Untuk IdP lain yang masih menghilangkannya, periksa apakah endpoint userinfo menerima token akses yang dikeluarkan oleh refresh. Sebagai solusi sementara, naikkan [`session.ttl_hours`](/docs/id/claude-apps-gateway-config#session). Lihat [Penyiapan penyedia identitas](#identity-provider-setup) untuk tradeoff deprovisioning. |411| Log: `refresh failed request_id=<id>: invalid_token (…) (at userinfo_no_id_token, …)`, dan pengembang melihat `Cloud gateway session expired` setiap `session.ttl_hours` | IdP menerima token refresh tetapi tidak mengembalikan id\_token dengannya, jadi gateway menanyakan endpoint userinfo IdP untuk klaim pengguna. IdP menolak token akses yang diperbarui di sana. Gateway menjawab `temporarily_unavailable`, jadi Claude Code menyimpan token refresh tetapi tidak dapat memperbarui sesi. Versi gateway sebelum v2.1.260 mencatat baris yang sama tanpa detail `(at …)`. | Atur [`oidc.scope_on_refresh: true`](/docs/id/claude-apps-gateway-config#oidc), tersedia di gateway v2.1.260 atau lebih baru, sehingga permintaan refresh meminta `openid` lagi. Beberapa IdP, seperti Okta, mengembalikan id\_token pada refresh hanya ketika diminta. Di PingFederate, aktifkan **Return ID Token On Refresh Grant** di bawah **Applications > OAuth > OpenID Connect Policy Management** sebagai gantinya. Kunci tidak mengubah perilaku PingFederate. Untuk IdP lain yang masih menghilangkannya, periksa apakah endpoint userinfo menerima token akses yang dikeluarkan oleh refresh. Sebagai solusi sementara, naikkan [`session.ttl_hours`](/docs/id/claude-apps-gateway-config#session). Lihat [Penyiapan penyedia identitas](#identity-provider-setup) untuk tradeoff deprovisioning. |

Details

169 </Step>169 </Step>

170 170 

171 <Step title="Sediakan Amazon RDS untuk PostgreSQL">171 <Step title="Sediakan Amazon RDS untuk PostgreSQL">

172 Instans berjalan di subnet pribadi tanpa alamat publik dan enkripsi penyimpanan aktif. Versi mesin disematkan ke Postgres 16, yang memenuhi lantai yang didukung gateway dari PostgreSQL 14 dan menjamin keluarga grup parameter di bawah cocok dengan instans.172 Instans menjalankan Postgres 16 di subnet pribadi, tanpa alamat publik dan dengan enkripsi penyimpanan aktif.

173 173 

174 Pertama, buat grup subnet yang menempatkan database di subnet pribadi, dan grup parameter dengan `rds.force_ssl=1` sehingga server menolak koneksi plaintext. Versi mesin disematkan sekali karena keluarga grup parameter harus cocok dengan versi utama mesin yang dijalankan instans:174 Pertama, buat grup subnet yang menempatkan database di subnet pribadi, dan grup parameter dengan `rds.force_ssl=1` sehingga server menolak koneksi plaintext. Versi mesin disematkan sekali karena keluarga grup parameter harus cocok dengan versi utama mesin yang dijalankan instans:

175 175 

Details

442`claude --cloud` dan `claude --teleport` memerlukan sign-in dengan akun claude.ai. Jika Anda mengautentikasi dengan kunci API, atau detail akun yang disimpan sudah usang, Anda akan melihat salah satu dari pesan berikut:442`claude --cloud` dan `claude --teleport` memerlukan sign-in dengan akun claude.ai. Jika Anda mengautentikasi dengan kunci API, atau detail akun yang disimpan sudah usang, Anda akan melihat salah satu dari pesan berikut:

443 443 

444* `Unable to get organization UUID`444* `Unable to get organization UUID`

445* Pesan bahwa autentikasi kunci API tidak cukup445* ``Cloud sessions need a claude.ai sign-in. Run `claude auth login` (or /login in a local session), then try again.``

446* `Error loading Claude Code sessions` di pemilih sesi, saat Anda menjalankan `claude --teleport` tanpa ID sesi446* `Error loading Claude Code sessions` di pemilih sesi, saat Anda menjalankan `claude --teleport` tanpa ID sesi

447 447 

448Jalankan `/login` untuk masuk dengan akun claude.ai Anda, kemudian coba lagi perintah. Jika kesalahan justru menyebutkan penyedia Anda, lihat [tabel kesalahan](#errors-when-sending-to-a-cloud-session): sesi cloud tidak tersedia melalui penyedia pihak ketiga.448Jalankan [`claude auth login`](/docs/id/cli-reference#cli-commands) di shell Anda untuk masuk dengan akun claude.ai Anda, kemudian coba lagi perintah tersebut. Di dalam sesi yang sedang berjalan, `/login` melakukan hal yang sama. Jika kesalahan justru menyebutkan penyedia Anda, lihat [tabel kesalahan](#errors-when-sending-to-a-cloud-session): sesi cloud tidak tersedia melalui penyedia pihak ketiga.

449 

450Dari v2.1.274 hingga v2.1.289, pesan sign-in berbunyi `Claude Code cloud sessions require authentication with a Claude.ai account. API key authentication is not sufficient. Please run /login to authenticate, or check your authentication status with /status.`

449 451 

450<h3 id="remote-control-session-expired-or-access-denied">452<h3 id="remote-control-session-expired-or-access-denied">

451 Remote Control session expired or access denied453 Remote Control session expired or access denied

Details

34 oneLiner: 'Project instructions Claude reads every session',34 oneLiner: 'Project instructions Claude reads every session',

35 when: 'Loaded into context at the start of every session',35 when: 'Loaded into context at the start of every session',

36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',36 description: 'Project-specific instructions that shape how Claude works in this repository. Put your conventions, common commands, and architectural context here so Claude operates with the same assumptions your team does.',

37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/docs/en/skills">skill</A> or a path-scoped <A href="/docs/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>, <>If your repo already has an <C>AGENTS.md</C> for other coding agents, Claude Code <A href="/docs/en/memory#agents-md">can read that</A> on its own or alongside CLAUDE.md</>],37 tips: ['Target under 200 lines. Longer files still load in full but may reduce adherence', <>CLAUDE.md loads into every session. If something only matters for specific tasks, move it to a <A href="/docs/en/skills">skill</A> or a path-scoped <A href="/docs/en/memory#organize-rules-with-claude/rules/">rule</A> so it loads only when needed</>, 'List the commands you run most, like build, test, and format, so Claude knows them without you spelling them out each time', <>Run <C>/memory</C> to open and edit CLAUDE.md from within a session</>, <>Also works at <C>.claude/CLAUDE.md</C> if you prefer to keep the project root clean</>, <>If your repo already has an <C>AGENTS.md</C> for other coding agents, Claude Code <A href="/docs/en/memory#agents-md">can read that</A> in place of a <C>CLAUDE.md</C></>],

38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',38 exampleIntro: 'This example is for a TypeScript and React project. It lists the build and test commands, the framework conventions Claude should follow, and project-specific rules like export style and file layout.',

39 example: `# Project conventions39 example: `# Project conventions

40 40 

Details

31| `claude attach <id\|name>` | Lampirkan ke [sesi latar belakang](/docs/id/agent-view#manage-sessions-from-the-shell) di terminal ini. Meneruskan sebagian nama sesi yang sedang berjalan sebagai pengganti ID memerlukan Claude Code v2.1.290 atau lebih baru | `claude attach 7c5dcf5d` |31| `claude attach <id\|name>` | Lampirkan ke [sesi latar belakang](/docs/id/agent-view#manage-sessions-from-the-shell) di terminal ini. Meneruskan sebagian nama sesi yang sedang berjalan sebagai pengganti ID memerlukan Claude Code v2.1.290 atau lebih baru | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | Cetak aturan pengklasifikasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) bawaan sebagai JSON. Gunakan `claude auto-mode config` untuk melihat konfigurasi efektif Anda dengan pengaturan yang diterapkan. `--label <prefix>` mencetak hanya aturan yang labelnya dimulai dengan awalan tersebut, cocok tanpa memperhatikan huruf besar-kecil. Memerlukan Claude Code v2.1.208 atau lebih baru | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | Cetak aturan pengklasifikasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) bawaan sebagai JSON. Gunakan `claude auto-mode config` untuk melihat konfigurasi efektif Anda dengan pengaturan yang diterapkan. `--label <prefix>` mencetak hanya aturan yang labelnya dimulai dengan awalan tersebut, cocok tanpa memperhatikan huruf besar-kecil. Memerlukan Claude Code v2.1.208 atau lebih baru | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | Pulihkan konfigurasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) default dengan menghapus bagian `autoMode` dari file pengaturan pengguna Anda. Meminta konfirmasi sebelum menulis; lewatkan `-y`/`--yes` untuk melewati prompt. Aturan dari [pengaturan terkelola](/docs/id/server-managed-settings) atau flag `--settings` masih berlaku. Memerlukan Claude Code v2.1.212 atau lebih baru. Lihat [Periksa default dan konfigurasi efektif Anda](/docs/id/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | Pulihkan konfigurasi [auto mode](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) default dengan menghapus bagian `autoMode` dari file pengaturan pengguna Anda. Meminta konfirmasi sebelum menulis; lewatkan `-y`/`--yes` untuk melewati prompt. Aturan dari [pengaturan terkelola](/docs/id/server-managed-settings) atau flag `--settings` masih berlaku. Memerlukan Claude Code v2.1.212 atau lebih baru. Lihat [Periksa default dan konfigurasi efektif Anda](/docs/id/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon logs` | Ikuti file log [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang, `~/.claude/daemon.log`, dengan mencetak baris baru saat muncul hingga Anda menekan `Ctrl+C` | `claude daemon logs` |

35| `claude daemon run` | Jalankan [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang di latar depan terminal ini, dengan mencetak log-nya | `claude daemon run` |

34| `claude daemon status` | Cetak status [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang, versi, direktori soket, dan jumlah pekerja untuk diagnostik. Keluar dengan 1 jika supervisor tidak berjalan | `claude daemon status` |36| `claude daemon status` | Cetak status [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang, versi, direktori soket, dan jumlah pekerja untuk diagnostik. Keluar dengan 1 jika supervisor tidak berjalan | `claude daemon status` |

35| `claude daemon stop --any` | Hentikan [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang dan sesi yang dihosting. Lewatkan `--keep-workers` untuk membiarkan sesi latar belakang tetap berjalan sehingga supervisor berikutnya dapat terhubung kembali ke sesi tersebut. `--any` mengonfirmasi penghentian supervisor sesuai permintaan, yang merupakan default. Gunakan ini untuk pulih dari [supervisor yang tidak responsif](/docs/id/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |37| `claude daemon stop --any` | Hentikan [supervisor](/docs/id/agent-view#the-supervisor-process) sesi latar belakang dan sesi yang dihosting. Lewatkan `--keep-workers` untuk membiarkan sesi latar belakang tetap berjalan sehingga supervisor berikutnya dapat terhubung kembali ke sesi tersebut. `--any` mengonfirmasi penghentian supervisor sesuai permintaan, yang merupakan default. Gunakan ini untuk pulih dari [supervisor yang tidak responsif](/docs/id/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` |

36| `claude doctor` | Cetak diagnostik instalasi dan pengaturan read-only dari terminal tanpa memulai sesi, termasuk kesehatan instalasi, kesalahan validasi file pengaturan, dan kelayakan Remote Control. Untuk pemeriksaan pengaturan dalam sesi yang juga dapat menerapkan perbaikan, jalankan [`/doctor`](/docs/id/commands#all-commands) | `claude doctor` |38| `claude doctor` | Cetak diagnostik instalasi dan pengaturan read-only dari terminal tanpa memulai sesi, termasuk kesehatan instalasi, kesalahan validasi file pengaturan, dan kelayakan Remote Control. Untuk pemeriksaan pengaturan dalam sesi yang juga dapat menerapkan perbaikan, jalankan [`/doctor`](/docs/id/commands#all-commands) | `claude doctor` |

desktop.md +1 −1

Details

1092Untuk melihat versi aplikasi desktop yang Anda jalankan:1092Untuk melihat versi aplikasi desktop yang Anda jalankan:

1093 1093 

1094* **macOS**: klik **Claude** di menu bar, kemudian **About Claude**1094* **macOS**: klik **Claude** di menu bar, kemudian **About Claude**

1095* **Windows**: klik **Help**, kemudian **About**1095* **Windows**: klik **Help**, kemudian **About Claude**

1096 1096 

1097Klik nomor versi untuk menyalinnya ke clipboard Anda.1097Klik nomor versi untuk menyalinnya ke clipboard Anda.

1098 1098 

Details

92* Simpan tangkapan layar dengan **Cmd+S** atau perekaman layar dengan **Cmd+R**, menggunakan tombol tangkap pane atau pintasan keyboard; file disimpan ke Desktop Anda92* Simpan tangkapan layar dengan **Cmd+S** atau perekaman layar dengan **Cmd+R**, menggunakan tombol tangkap pane atau pintasan keyboard; file disimpan ke Desktop Anda

93* Hentikan streaming perangkat tanpa mematikannya dengan mengklik **Detach simulator**, yang mengembalikan pane ke status **Attach simulator**93* Hentikan streaming perangkat tanpa mematikannya dengan mengklik **Detach simulator**, yang mengembalikan pane ke status **Attach simulator**

94 94 

95Untuk menyesuaikan stream video dari simulator, buka menu **Display** pada pane. Kurangi **Frame rate** atau **Resolution** jika pane membebani Mac Anda. Kedua pengaturan ini mengubah cara pane menampilkan perangkat, bukan cara aplikasi berjalan.95Jika pane menampilkan menu **Display**, gunakan menu tersebut untuk menyesuaikan stream video dari simulator. Kurangi **Frame rate** atau **Resolution** jika pane membebani Mac Anda. Kedua pengaturan ini mengubah cara pane menampilkan perangkat, bukan cara aplikasi berjalan.

96 96 

97Anda 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.97Anda 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.

98 98 

env-vars.md +1 −0

Details

354| `CLAUDE_CODE_PERFORCE_MODE` | Atur ke `1` untuk mengaktifkan perlindungan penulisan yang sadar Perforce. Ketika diatur, Edit, Write, dan NotebookEdit gagal dengan petunjuk `p4 edit <file>` jika file target tidak memiliki bit owner-write, yang dihapus Perforce pada file yang disinkronkan hingga `p4 edit` membukanya. Ini mencegah Claude Code melewati pelacakan perubahan Perforce |354| `CLAUDE_CODE_PERFORCE_MODE` | Atur ke `1` untuk mengaktifkan perlindungan penulisan yang sadar Perforce. Ketika diatur, Edit, Write, dan NotebookEdit gagal dengan petunjuk `p4 edit <file>` jika file target tidak memiliki bit owner-write, yang dihapus Perforce pada file yang disinkronkan hingga `p4 edit` membukanya. Ini mencegah Claude Code melewati pelacakan perubahan Perforce |

355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Menimpa direktori root plugin. Meskipun namanya demikian, ini mengatur direktori induk, bukan cache itu sendiri: marketplace dan cache plugin berada di subdirektori di bawah path ini. Default ke `~/.claude/plugins` |355| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | Menimpa direktori root plugin. Meskipun namanya demikian, ini mengatur direktori induk, bukan cache itu sendiri: marketplace dan cache plugin berada di subdirektori di bawah path ini. Default ke `~/.claude/plugins` |

356| `CLAUDE_CODE_PLUGIN_DIRS` | Direktori plugin yang akan dimuat untuk sesi, masing-masing dimuat dengan cara yang sama seperti flag [`--plugin-dir`](/docs/id/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) memuatnya. Pisahkan beberapa path dengan `:` di Unix atau `;` di Windows. Berikan setiap path sebagai path absolut atau awali dengan `~`, karena Claude Code melewati path relatif. Memerlukan Claude Code v2.1.280 atau lebih baru. Lihat [Memuat plugin untuk satu sesi](/docs/id/plugins/create#load-a-directory-or-archive-for-one-session) |356| `CLAUDE_CODE_PLUGIN_DIRS` | Direktori plugin yang akan dimuat untuk sesi, masing-masing dimuat dengan cara yang sama seperti flag [`--plugin-dir`](/docs/id/plugins/cli-reference#flags-that-load-a-plugin-for-one-session) memuatnya. Pisahkan beberapa path dengan `:` di Unix atau `;` di Windows. Berikan setiap path sebagai path absolut atau awali dengan `~`, karena Claude Code melewati path relatif. Memerlukan Claude Code v2.1.280 atau lebih baru. Lihat [Memuat plugin untuk satu sesi](/docs/id/plugins/create#load-a-directory-or-archive-for-one-session) |

357| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | Mengontrol apakah Claude Code memuat ulang [mod](/docs/id/plugins/mods/overview) ketika file mod berubah. Pemuatan ulang berlaku untuk mod yang Anda muat dari direktori dengan `--plugin-dir`, dan aktif secara default di sesi interaktif. Atur ke `1` untuk mengaktifkannya juga di sesi non-interaktif, atau `0` untuk mematikannya di setiap sesi. Memerlukan Claude Code v2.1.287 atau lebih baru. Lihat [pengaturan dan environment variable mod](/docs/id/plugins/mods/reference#settings-and-environment-variables) |

357| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout dalam milidetik untuk meng-clone atau menyegarkan marketplace plugin (default: 120000). Naikkan nilai ini untuk repositori besar atau koneksi jaringan lambat. Lihat [Git clone timed out](/docs/id/plugins/troubleshooting#git-clone-timed-out-after-120s) |358| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | Timeout dalam milidetik untuk meng-clone atau menyegarkan marketplace plugin (default: 120000). Naikkan nilai ini untuk repositori besar atau koneksi jaringan lambat. Lihat [Git clone timed out](/docs/id/plugins/troubleshooting#git-clone-timed-out-after-120s) |

358| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Atur ke `1` untuk melewati upaya clone ulang dan tetap menggunakan checkout marketplace yang ada ketika penyegaran marketplace tidak dapat menjangkau atau melakukan autentikasi ke remote. Berguna di lingkungan offline atau airgapped di mana clone ulang akan gagal dengan cara yang sama. Lihat [Pembaruan marketplace gagal di lingkungan offline](/docs/id/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |359| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | Atur ke `1` untuk melewati upaya clone ulang dan tetap menggunakan checkout marketplace yang ada ketika penyegaran marketplace tidak dapat menjangkau atau melakukan autentikasi ke remote. Berguna di lingkungan offline atau airgapped di mana clone ulang akan gagal dengan cara yang sama. Lihat [Pembaruan marketplace gagal di lingkungan offline](/docs/id/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

359| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Atur ke `1` untuk meng-clone sumber singkatan GitHub `owner/repo` melalui HTTPS alih-alih SSH. Berlaku untuk instalasi dan pembaruan plugin, serta untuk `/plugin marketplace add` dan `update`. Berguna di runner CI, container, atau lingkungan apa pun tanpa kunci SSH yang dikonfigurasi untuk `github.com` |360| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | Atur ke `1` untuk meng-clone sumber singkatan GitHub `owner/repo` melalui HTTPS alih-alih SSH. Berlaku untuk instalasi dan pembaruan plugin, serta untuk `/plugin marketplace add` dan `update`. Berguna di runner CI, container, atau lingkungan apa pun tanpa kunci SSH yang dikonfigurasi untuk `github.com` |

errors.md +2 −3

Details

197| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |197| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

198| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |198| `Cloud sessions are disabled by your organization's policy` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |

199| `Couldn't verify your organization's policy for cloud sessions` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |199| `Couldn't verify your organization's policy for cloud sessions` | [Command-line errors](#cloud-sessions-are-disabled-by-your-organizations-policy) |

200| `Cloud sessions need a claude.ai sign-in` | [Unable to get organization UUID](/docs/id/claude-code-on-the-web#unable-to-get-organization-uuid) |

200| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#the-json-schema-value-is-not-a-valid-json-schema) |201| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#the-json-schema-value-is-not-a-valid-json-schema) |

201| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |202| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) |

202| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Command-line errors](#invalid-agents-configuration) |203| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [Command-line errors](#invalid-agents-configuration) |


387* Koneksi yang Claude Code deteksi rusak karena komputer Anda tidur di tengah permintaan. Claude Code menghitungnya sebagai dropped connection sesuai aturan di atas; setelah label retry menyebutkan alasan spesifik, dibaca `Connection lost while your computer was asleep`, dan jika giliran berakhir setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, pesan berbunyi `Your computer went to sleep before a response was produced`.388* Koneksi yang Claude Code deteksi rusak karena komputer Anda tidur di tengah permintaan. Claude Code menghitungnya sebagai dropped connection sesuai aturan di atas; setelah label retry menyebutkan alasan spesifik, dibaca `Connection lost while your computer was asleep`, dan jika giliran berakhir setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, pesan berbunyi `Your computer went to sleep before a response was produced`.

388* Stalled response stream, ketika response headers telah tiba tetapi tidak ada respons Claude yang tiba, atau ketika Claude selesai berpikir tetapi belum memulai teks atau panggilan tool apa pun: Claude Code membatalkan koneksi yang macet dan mengeluarkan kembali permintaan paling banyak sekali, di luar anggaran 10-percobaan di atas. Jika respons macet untuk kedua kalinya setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, Claude Code mengakhiri giliran dengan `The response stalled before a response was produced`.389* Stalled response stream, ketika response headers telah tiba tetapi tidak ada respons Claude yang tiba, atau ketika Claude selesai berpikir tetapi belum memulai teks atau panggilan tool apa pun: Claude Code membatalkan koneksi yang macet dan mengeluarkan kembali permintaan paling banyak sekali, di luar anggaran 10-percobaan di atas. Jika respons macet untuk kedua kalinya setelah Claude selesai berpikir tetapi sebelum teks atau panggilan tool apa pun, Claude Code mengakhiri giliran dengan `The response stalled before a response was produced`.

389* Streaming request yang API tidak pernah jawab dengan response headers, pada koneksi di mana [first-byte deadline berjalan](/docs/id/network-config#streaming-idle-watchdogs): Claude Code membatalkannya pada deadline dan mengirimnya kembali paling banyak sekali per model request, dalam anggaran retry, kemudian mengakhiri giliran dengan [No response from API](#no-response-from-api) jika percobaan itu juga tidak dijawab. Pada koneksi lain, permintaan menunggu `API_TIMEOUT_MS`. Ketika Anda menetapkan `CLAUDE_CODE_RETRY_WATCHDOG`, batas satu retry tidak berlaku.390* Streaming request yang API tidak pernah jawab dengan response headers, pada koneksi di mana [first-byte deadline berjalan](/docs/id/network-config#streaming-idle-watchdogs): Claude Code membatalkannya pada deadline dan mengirimnya kembali paling banyak sekali per model request, dalam anggaran retry, kemudian mengakhiri giliran dengan [No response from API](#no-response-from-api) jika percobaan itu juga tidak dijawab. Pada koneksi lain, permintaan menunggu `API_TIMEOUT_MS`. Ketika Anda menetapkan `CLAUDE_CODE_RETRY_WATCHDOG`, batas satu retry tidak berlaku.

391* Respons streaming yang dihentikan oleh filter konten output API sebelum Claude selesai berpikir atau memulai teks atau panggilan tool apa pun. Claude Code mengirim kembali permintaan sekali, dalam anggaran retry, dan menampilkan [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) jika filter juga menghentikan respons kedua.

390* Temporary 429 throttles, tetapi bukan `429` spend-limit gateway, yang bukan throttle; lihat [Spend limit reached](#spend-limit-reached).392* Temporary 429 throttles, tetapi bukan `429` spend-limit gateway, yang bukan throttle; lihat [Spend limit reached](#spend-limit-reached).

391 * Ketika Anda masuk dengan langganan claude.ai, ini mencakup 429 throttles yang tidak membawa header kuota paket Anda. Sebelum v2.1.199, Claude Code hanya mencoba ulang throttles tersebut untuk kunci API dan Enterprise sign-ins.393 * Ketika Anda masuk dengan langganan claude.ai, ini mencakup 429 throttles yang tidak membawa header kuota paket Anda. Sebelum v2.1.199, Claude Code hanya mencoba ulang throttles tersebut untuk kunci API dan Enterprise sign-ins.

392* Permintaan ditolak karena input plus `max_tokens` melebihi context limit. Mengirimnya kembali tanpa perubahan akan gagal dengan cara yang sama, jadi Claude Code mencoba ulang dengan `max_tokens` yang dikurangi, dan berhenti mencoba ulang dan melakukan compact sebagai gantinya dalam dua kasus:394* Permintaan ditolak karena input plus `max_tokens` melebihi context limit. Mengirimnya kembali tanpa perubahan akan gagal dengan cara yang sama, jadi Claude Code mencoba ulang dengan `max_tokens` yang dikurangi, dan berhenti mencoba ulang dan melakukan compact sebagai gantinya dalam dua kasus:


405* [Amazon Bedrock streaming response dengan unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), karena gateway atau proxy yang menulis ulang respons akan menulis ulang retry dengan cara yang sama. Memerlukan Claude Code v2.1.208 atau lebih baru.407* [Amazon Bedrock streaming response dengan unexpected content-type](#bedrock-streaming-response-has-an-unexpected-content-type), karena gateway atau proxy yang menulis ulang respons akan menulis ulang retry dengan cara yang sama. Memerlukan Claude Code v2.1.208 atau lebih baru.

406* Non-streaming retry dari failed streaming request yang mendapat success status tetapi [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code mengakhiri giliran dengan kesalahan itu.408* Non-streaming retry dari failed streaming request yang mendapat success status tetapi [no Claude API message in the body](#api-returned-an-empty-or-malformed-response). Claude Code mengakhiri giliran dengan kesalahan itu.

407* Permintaan yang policy check organisasi Anda tolak, yang muncul sebagai baris `API Error:` yang membawa pesan penolakan. Administrator organisasi Anda menyiapkan check dengan [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), fitur Claude Enterprise, dan pesan berakhir dengan instruksi yang mereka konfigurasi, atau secara default memberi tahu Anda untuk menghubungi mereka. Claude Code tidak mengirim kembali permintaan yang ditolak ke model yang sama atau ke [fallback model](/docs/id/model-config#fallback-model-chains), karena penolakan adalah tentang konten permintaan daripada model. Sebelum v2.1.239, Claude Code dapat mengirim kembali permintaan yang ditolak, tanpa streaming atau pada fallback model yang dikonfigurasi, sebelum menampilkan penolakan kepada Anda.409* Permintaan yang policy check organisasi Anda tolak, yang muncul sebagai baris `API Error:` yang membawa pesan penolakan. Administrator organisasi Anda menyiapkan check dengan [Inference hooks](https://platform.claude.com/docs/en/manage-claude/inference-hooks), fitur Claude Enterprise, dan pesan berakhir dengan instruksi yang mereka konfigurasi, atau secara default memberi tahu Anda untuk menghubungi mereka. Claude Code tidak mengirim kembali permintaan yang ditolak ke model yang sama atau ke [fallback model](/docs/id/model-config#fallback-model-chains), karena penolakan adalah tentang konten permintaan daripada model. Sebelum v2.1.239, Claude Code dapat mengirim kembali permintaan yang ditolak, tanpa streaming atau pada fallback model yang dikonfigurasi, sebelum menampilkan penolakan kepada Anda.

408* Respons yang diblokir oleh filter konten output API. Claude Code langsung menampilkan [Output blocked by content filtering policy](#output-blocked-by-content-filtering-policy) dan tidak mencoba ulang atau mengirim kembali permintaan tersebut.

409 410 

410<h3 id="what-you-see-while-claude-code-retries-or-waits">411<h3 id="what-you-see-while-claude-code-retries-or-waits">

411 Apa yang Anda lihat saat Claude Code mencoba ulang atau menunggu412 Apa yang Anda lihat saat Claude Code mencoba ulang atau menunggu


2905API Error: Output blocked by content filtering policy2906API Error: Output blocked by content filtering policy

2906```2907```

2907 2908 

2908Claude Code menampilkan kesalahan segera setelah pemblokiran tiba dan mengakhiri permintaan di sana. Claude Code tidak mencoba ulang permintaan, mengirimnya ulang tanpa streaming, atau beralih ke [model fallback](/docs/id/model-config#fallback-model-chains). Sebelum v2.1.285, Claude Code dapat mengirim ulang dan mencoba ulang permintaan yang diblokir, terkadang selama beberapa menit, sebelum menampilkan kesalahan kepada Anda.

2909 

2910**Yang harus dilakukan:**2909**Yang harus dilakukan:**

2911 2910 

2912* Ubah susunan kata pesan terakhir Anda atau ambil pendekatan berbeda2911* Ubah susunan kata pesan terakhir Anda atau ambil pendekatan berbeda

Details

733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.733You are a security reviewer. Read the changed files and report injection, authentication, and secrets-handling risks.

734```734```

735 735 

736Agent ini dinamai `my-plugin:security-reviewer`, dan pengguna dapat [memanggilnya secara eksplisit](/docs/id/sub-agents#invoke-subagents-explicitly) dengan `@agent-my-plugin:security-reviewer`. Bentuk nama adalah `<plugin>:<name>`, di mana `<name>` berasal dari frontmatter, atau dari nama file ketika tidak ada.736Agent ini dinamai `my-plugin:security-reviewer`, dan pengguna dapat [memanggilnya secara eksplisit](/docs/id/sub-agents#invoke-subagents-explicitly) dengan `@agent-my-plugin:security-reviewer`. Bentuk nama adalah `<plugin>:<name>`, di mana `<name>` berasal dari field `name` di frontmatter, atau dari nama file ketika field itu tidak ada.

737 737 

738Kunci manifest `agents` menggantikan pemindaian `agents/`.738Kunci manifest `agents` menggantikan pemindaian `agents/`.

739 739 

Details

428 428 

429| Elemen | Apa yang digambarnya | Di mana |429| Elemen | Apa yang digambarnya | Di mana |

430| :- | :- | :- |430| :- | :- | :- |

431| `Box` | Kontainer flex. Mengambil prop tata letak seperti `flexDirection`, `columnGap`, `padding`, `borderStyle`, dan `width`. | Di mana-mana |431| `Box` | Kontainer flex. Mengambil prop tata letak seperti `flexDirection`, `columnGap`, `padding`, [`borderStyle`](/docs/id/plugins/mods/reference#box-border-styles), dan `width`. | Di mana-mana |

432| `Text` | Teks bergaya. Mengambil `color`, `bold`, `dimColor`, `italic`, dan `wrap`. `color` adalah kunci tema atau warna seperti `'red'`. `wrap` adalah `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'`, atau `'truncate-end'`. | Di mana-mana |432| `Text` | Teks bergaya. Mengambil `color`, `bold`, `dimColor`, `italic`, dan `wrap`. `color` adalah kunci tema atau warna seperti `'red'`. `wrap` adalah `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'`, atau `'truncate-end'`. | Di mana-mana |

433| `Button` | Kontrol yang memanggil `onPress` | Di mana-mana |433| `Button` | Kontrol yang memanggil `onPress` | Di mana-mana |

434| `Link`, `Code`, `Markdown` | Tautan dengan `href` dan `label` opsional, blok kode, dan teks yang diformat seperti balasan Claude. `Markdown` mengambil kontennya dalam prop `text`, bukan dalam `children`, dan membutuhkan `key` saat Anda meneruskan `onLinkPress`. | Di mana-mana |434| `Link`, `Code`, `Markdown` | Tautan dengan `href` dan `label` opsional, blok kode, dan teks yang diformat seperti balasan Claude. `Markdown` mengambil kontennya dalam prop `text`, bukan dalam `children`, dan membutuhkan `key` saat Anda meneruskan `onLinkPress`. | Di mana-mana |


563Banyak panel adalah bidang teks dengan daftar di bawahnya. Contoh di bagian ini adalah panel catatan: Anda mengetik catatan dan menekan Enter untuk menambahkannya, dan setiap catatan memiliki tombol `x` yang menghapusnya. Dengan dua catatan ditambahkan, terminal menggambar panel dengan cara ini:563Banyak panel adalah bidang teks dengan daftar di bawahnya. Contoh di bagian ini adalah panel catatan: Anda mengetik catatan dan menekan Enter untuk menambahkannya, dan setiap catatan memiliki tombol `x` yang menghapusnya. Dengan dua catatan ditambahkan, terminal menggambar panel dengan cara ini:

564 564 

565```text theme={null}565```text theme={null}

566╭──────────────────────────────────────────────────────────╮566╭────────────────────────────────────────────────────────✕─╮

567│ Note: Type a note and press Enter ⏎ add ✕ │567│ Note: Type a note and press Enter ⏎ add │

568│ x buy milk │568│ x buy milk │

569│ x call bob │569│ x call bob │

570╰──────────────────────────────────────────────────────────╯570╰──────────────────────────────────────────────────────────╯

571```571```

572 572 

573`✕` di batas atas adalah tanda milik Claude Code sendiri untuk menutup panel.

574 

573Contoh menggunakan teknik berikut:575Contoh menggunakan teknik berikut:

574 576 

575* **Ambil input yang diketik**: `Input` memanggil `onSubmit(value)` dengan teks bidang saat pengguna menekan Enter, dan `onInput(value)` pada setiap perubahan577* **Ambil input yang diketik**: `Input` memanggil `onSubmit(value)` dengan teks bidang saat pengguna menekan Enter, dan `onInput(value)` pada setiap perubahan

Details

242Untuk menyesuaikan sebuah tree dengan titiknya, baca prop berikut di dalam hook:242Untuk menyesuaikan sebuah tree dengan titiknya, baca prop berikut di dalam hook:

243 243 

244* **Lebar sebuah `Pane` atau band**: gambar sesuai `e.props.bodyColumns`244* **Lebar sebuah `Pane` atau band**: gambar sesuai `e.props.bodyColumns`

245* **Tinggi sebuah `Pane` di samping transkrip**: jika `e.props.placement` adalah `'dock'`, `e.props.scroll.bodyRows` adalah jumlah baris yang dimiliki panel245* **Tinggi sebuah `Pane` di samping transkrip**: jika `e.props.placement` adalah `'dock'`, `e.props.scroll.bodyRows` adalah jumlah baris yang dimiliki panel untuk tree Anda

246* **Tinggi sebuah `Pane` di atas prompt**: jika `e.props.placement` adalah `'inline'`, panel bertambah sesuai tree Anda hingga suatu batas, dan `bodyRows` adalah batas tersebut. [Field `rows` dari `$.ui.open`](/docs/id/plugins/mods/interface#open-a-pane-at-the-right-time) meminta batas yang berbeda.246* **Tinggi sebuah `Pane` di atas prompt**: jika `e.props.placement` adalah `'inline'`, panel bertambah sesuai tree Anda hingga suatu batas, dan `bodyRows` adalah batas tersebut. [Field `rows` dari `$.ui.open`](/docs/id/plugins/mods/interface#open-a-pane-at-the-right-time) meminta batas yang berbeda.

247 247 

248Tree yang lebih tinggi daripada panel akan bergulir secara keseluruhan.248Tree yang lebih tinggi daripada panel akan bergulir secara keseluruhan.


255 255 

256| Elemen | Prop utama | Terminal | Desktop |256| Elemen | Prop utama | Terminal | Desktop |

257| :- | :- | :-: | :-: |257| :- | :- | :-: | :-: |

258| [`Box`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `key`, tata letak flex, `gap`, `padding`, `margin`, `width`, `height`, `borderStyle`, `backgroundColor`, `position`, `hover` | ✓ | ✓ |258| [`Box`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `key`, tata letak flex, `gap`, `padding`, `margin`, `width`, `height`, [`borderStyle`](#box-border-styles), `backgroundColor`, `position`, `hover` | ✓ | ✓ |

259| [`Text`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |259| [`Text`](/docs/id/plugins/mods/interface#build-a-tree-from-elements) | `color`, `backgroundColor`, `bold`, `italic`, `underline`, `dimColor`, `inverse`, `wrap` | ✓ | ✓ |

260| [`Button`](/docs/id/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |260| [`Button`](/docs/id/plugins/mods/interface#respond-to-presses-and-typing) | `key`, `label`, `onPress`, `hotkey`, `plain`, `dimColor`, `autoFocus`, `action` | ✓ | ✓ |

261| `Link` | `href`, `label` | ✓ | ✓ |261| `Link` | `href`, `label` | ✓ | ✓ |


270 270 

271Aturan `Button` lainnya: `action` menyebutkan salah satu [aksi pintasan keyboard](/docs/id/keybindings) milik Claude Code sendiri, dan pintasan keyboard pengguna untuk aksi tersebut akan menekan tombol jika pintasan itu berupa chord atau tombol dengan modifier. `hotkey` berupa digit pada tombol di band juga terpicu saat pengguna mengetik digit tersebut saja ke dalam prompt kosong lalu berhenti sejenak. Jika dua tombol dalam satu gambar menyebutkan `hotkey` yang sama, tombol yang lebih belakang yang mendapatkannya. `autoFocus` hanya menerima `true` pada kontrol apa pun, jadi hilangkan prop tersebut untuk menonaktifkannya.271Aturan `Button` lainnya: `action` menyebutkan salah satu [aksi pintasan keyboard](/docs/id/keybindings) milik Claude Code sendiri, dan pintasan keyboard pengguna untuk aksi tersebut akan menekan tombol jika pintasan itu berupa chord atau tombol dengan modifier. `hotkey` berupa digit pada tombol di band juga terpicu saat pengguna mengetik digit tersebut saja ke dalam prompt kosong lalu berhenti sejenak. Jika dua tombol dalam satu gambar menyebutkan `hotkey` yang sama, tombol yang lebih belakang yang mendapatkannya. `autoFocus` hanya menerima `true` pada kontrol apa pun, jadi hilangkan prop tersebut untuk menonaktifkannya.

272 272 

273<h3 id="box-border-styles">

274 Gaya border `Box`

275</h3>

276 

277Untuk menggambar border di sekeliling `Box`, atur `borderStyle`-nya ke salah satu nama berikut, seperti pada `borderStyle: 'round'`. Setiap baris menjelaskan apa yang digambar terminal untuk nama tersebut dan menunjukkan tepi atas border.

278 

279| `borderStyle` | Yang digambar terminal | Tepi atas |

280| :- | :- | :- |

281| `'single'` | Garis tipis dengan sudut persegi | `┌──┐` |

282| `'double'` | Garis ganda | `╔══╗` |

283| `'round'` | Garis tipis dengan sudut membulat | `╭──╮` |

284| `'bold'` | Garis tebal | `┏━━┓` |

285| `'singleDouble'` | Garis tipis di atas dan bawah, garis ganda di sisi | `╓──╖` |

286| `'doubleSingle'` | Garis ganda di atas dan bawah, garis tipis di sisi | `╒══╕` |

287| `'classic'` | Karakter ASCII `+`, `-`, dan `\|` | `+--+` |

288| `'arrow'` | Panah yang menunjuk ke dalam `Box` | `↘↓↓↙` |

289| `'dashed'` | Garis putus-putus dengan sudut kosong | `╌╌` |

290| `'quote'` | Sebuah bar, `▎`, di sepanjang sisi kiri dan sel kosong di tiga sisi lainnya | Kosong |

291 

292`Box` yang `borderStyle`-nya menyebutkan nama lain, seperti `'rounded'`, digambar tanpa border.

293 

273<h2 id="limits">294<h2 id="limits">

274 Batas295 Batas

275</h2>296</h2>

Details

15<Note>15<Note>

16 Kasus-kasus ini tercakup di halaman lain:16 Kasus-kasus ini tercakup di halaman lain:

17 17 

18 * **Mengapa scopes, cache, dan precedence berperilaku seperti yang mereka lakukan**: baca [Plugin loading reference](/docs/id/plugins/loading)18 * **Mengapa cakupan, cache, dan prioritas berperilaku seperti yang mereka lakukan**: baca [Plugin loading reference](/docs/id/plugins/loading)

19 * **Mencari flag, field, atau command**: gunakan [plugin commands reference](/docs/id/plugins/cli-reference), [manifest reference](/docs/id/plugins/manifest-reference), atau [marketplace reference](/docs/id/plugins/marketplace-reference)19 * **Mencari flag, field, atau perintah**: gunakan [plugin commands reference](/docs/id/plugins/cli-reference), [manifest reference](/docs/id/plugins/manifest-reference), atau [marketplace reference](/docs/id/plugins/marketplace-reference)

20 * **Pesan `hooks module not loaded` atau `hooks module did not load`**: plugin tersebut adalah [mod](/docs/id/plugins/mods/overview), jadi baca [The mod doesn't load](/docs/id/plugins/mods/troubleshoot#the-mod-doesn’t-load)

20</Note>21</Note>

21 22 

22Cari pesan yang tepat yang Anda lihat. Setiap pesan tercantum di bawah tahap yang menghasilkannya, yang tidak selalu merupakan perintah yang Anda jalankan. Misalnya, instalasi dapat gagal karena marketplace hilang, jadi pesan itu berada di bawah [Add a marketplace](#add-a-marketplace).23Cari pesan yang tepat yang Anda lihat. Setiap pesan tercantum di bawah tahap yang menghasilkannya, yang tidak selalu merupakan perintah yang Anda jalankan. Misalnya, instalasi dapat gagal karena marketplace hilang, jadi pesan itu berada di bawah [Add a marketplace](#add-a-marketplace).

quickstart.md +5 −5

Details

33 <Tab title="Native Install (Direkomendasikan)">33 <Tab title="Native Install (Direkomendasikan)">

34 **macOS, Linux, WSL:**34 **macOS, Linux, WSL:**

35 35 

36 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}36 ```bash theme={null}

37 curl -fsSL https://claude.ai/install.sh | bash37 curl -fsSL https://claude.ai/install.sh | bash

38 ```38 ```

39 39 

40 **Windows PowerShell:**40 **Windows PowerShell:**

41 41 

42 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}42 ```powershell theme={null}

43 irm https://claude.ai/install.ps1 | iex43 irm https://claude.ai/install.ps1 | iex

44 ```44 ```

45 45 

46 **Windows CMD:**46 **Windows CMD:**

47 47 

48 ```batch theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}48 ```batch theme={null}

49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

50 ```50 ```

51 51 


63 </Tab>63 </Tab>

64 64 

65 <Tab title="Homebrew">65 <Tab title="Homebrew">

66 ```bash theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}66 ```bash theme={null}

67 brew install --cask claude-code67 brew install --cask claude-code

68 ```68 ```

69 69 


75 </Tab>75 </Tab>

76 76 

77 <Tab title="WinGet">77 <Tab title="WinGet">

78 ```powershell theme={null} theme={null} theme={null} theme={null} theme={null} theme={null}78 ```powershell theme={null}

79 winget install Anthropic.ClaudeCode79 winget install Anthropic.ClaudeCode

80 ```80 ```

81 81 

Details

43 <Step title="Buka konsol admin">43 <Step title="Buka konsol admin">

44 Di konsol claude.ai, buka [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).44 Di konsol claude.ai, buka [**Organization settings > Claude Code > Managed settings**](https://claude.ai/admin-settings/claude-code).

45 45 

46 Jika tautan mengarahkan ulang Anda ke halaman Organization settings yang berbeda alih-alih halaman Claude Code, akun Anda tidak memiliki peran yang diperlukan. Peran Admin dan peran non-Owner lainnya tidak dapat melihat atau mengedit pengaturan terkelola, jadi minta Owner atau Primary Owner di organisasi Anda untuk membuat perubahan. Lihat [Kontrol akses](#access-control).46 Dalam organisasi Team atau Enterprise, jika halaman menyatakan bahwa Anda tidak memiliki akses, minta [Owner atau Primary Owner](#access-control) untuk membuat perubahan.

47 </Step>47 </Step>

48 48 

49 <Step title="Tentukan pengaturan Anda">49 <Step title="Tentukan pengaturan Anda">

sessions.md +3 −3

Details

83* Terminal: `claude --continue`, `claude --resume <session-id>`, atau `claude --resume <name>` ketika nama cocok dengan satu sesi, tanpa `-p`. Claude Code memulihkan mode izin yang ada di sesi, kecuali dalam kasus di tabel. Teruskan `--permission-mode` atau `--dangerously-skip-permissions` untuk mengganti mode yang dipulihkan.83* Terminal: `claude --continue`, `claude --resume <session-id>`, atau `claude --resume <name>` ketika nama cocok dengan satu sesi, tanpa `-p`. Claude Code memulihkan mode izin yang ada di sesi, kecuali dalam kasus di tabel. Teruskan `--permission-mode` atau `--dangerously-skip-permissions` untuk mengganti mode yang dipulihkan.

84* Non-interaktif: `claude -p --resume` atau `claude -p --continue`. Claude Code memulai jalankan dalam mode izin yang akan dimulai oleh jalankan `claude -p` baru, kecuali sesi yang berakhir dalam mode rencana dilanjutkan dalam mode rencana di bawah [kondisi di bawah](#resume-in-plan-mode-with-p).84* Non-interaktif: `claude -p --resume` atau `claude -p --continue`. Claude Code memulai jalankan dalam mode izin yang akan dimulai oleh jalankan `claude -p` baru, kecuali sesi yang berakhir dalam mode rencana dilanjutkan dalam mode rencana di bawah [kondisi di bawah](#resume-in-plan-mode-with-p).

85* VS Code: panel percakapan ekstensi. Tabel hanya mencakup percakapan yang berakhir dalam mode rencana; untuk sisanya, lihat [lanjutkan percakapan masa lalu](/docs/id/vs-code#resume-past-conversations).85* VS Code: panel percakapan ekstensi. Tabel hanya mencakup percakapan yang berakhir dalam mode rencana; untuk sisanya, lihat [lanjutkan percakapan masa lalu](/docs/id/vs-code#resume-past-conversations).

86* Pemilih sesi saat peluncuran: sesi yang Anda pilih dari [pemilih sesi](#use-the-session-picker), apakah Anda membukanya dengan `claude --resume` saja, `claude --from-pr`, atau nama yang cocok dengan lebih dari satu sesi. Claude Code tidak memulihkan mode izin yang disimpan. Ini memulai sesi dalam mode izin yang akan dimulai oleh sesi baru dari baris perintah yang sama.86* Pemilih sesi saat peluncuran: sesi yang Anda pilih dari [pemilih sesi](#use-the-session-picker), apakah Anda membukanya dengan `claude --resume` saja, `claude --from-pr`, atau nama yang cocok dengan lebih dari satu sesi. Claude Code memulai sesi dalam mode izin yang akan dimulai oleh sesi baru dari baris perintah yang sama, kecuali sesi yang berakhir dalam plan mode dilanjutkan dalam plan mode kecuali Anda meneruskan `--permission-mode`, `--dangerously-skip-permissions`, atau `--fork-session`. Tidak ada mode izin tersimpan lain yang dipulihkan.

87* `/resume` di dalam sesi, dengan atau tanpa argumen: Claude Code tidak memulihkan mode izin yang disimpan. Percakapan yang Anda alihkan berlanjut dalam mode izin yang ada di sesi saat ini.87* `/resume` di dalam sesi, dengan atau tanpa argumen: percakapan yang Anda alihkan berlanjut dalam mode izin yang ada di sesi saat ini, kecuali percakapan yang berakhir dalam plan mode dilanjutkan dalam plan mode, bahkan jika Anda meluncurkan Claude Code dengan `--permission-mode` atau `--dangerously-skip-permissions`. Jika percakapan tersebut sudah dibuka sebelumnya dalam jalankan Claude Code ini, seperti percakapan tempat Anda memulai atau percakapan yang Anda tinggalkan dengan `/clear` atau `/resume`, percakapan tersebut berlanjut dalam mode izin Anda saat ini sebagai gantinya.

88 88 

89Memulihkan mode rencana pada jalur non-interaktif dan VS Code memerlukan Claude Code v2.1.246 atau lebih baru. Setiap baris menyebutkan mode izin yang diakhiri sesi, jalur terminal, non-interaktif, dan VS Code mana yang Anda lanjutkan, dan mode izin yang dimulai Claude Code dalam sesi yang dilanjutkan.89Memulihkan mode rencana pada jalur non-interaktif dan VS Code memerlukan Claude Code v2.1.246 atau lebih baru. Setiap baris menyebutkan mode izin yang diakhiri sesi, jalur terminal, non-interaktif, dan VS Code mana yang Anda lanjutkan, dan mode izin yang dimulai Claude Code dalam sesi yang dilanjutkan.

90 90 

91| Sesi berakhir dalam | Cara Anda melanjutkan | Mode izin setelah Anda melanjutkan |91| Sesi berakhir dalam | Cara Anda melanjutkan | Mode izin setelah Anda melanjutkan |

92| :- | :- | :- |92| :- | :- | :- |

93| `bypassPermissions` | Terminal | Mode izin yang akan dimulai oleh sesi baru. Untuk [melewati izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) lagi, aktifkan saat peluncuran dengan salah satu bendera peluncurannya atau `permissions.defaultMode: "bypassPermissions"` dalam [pengaturan pengguna, `--settings`, atau terkelola](/docs/id/settings-reference#permissions-defaultmode) |93| `bypassPermissions` | Terminal | Mode izin yang akan dimulai oleh sesi baru. Untuk [melewati izin](/docs/id/permission-modes#skip-all-checks-with-bypasspermissions-mode) lagi, aktifkan saat peluncuran dengan salah satu bendera peluncurannya atau `permissions.defaultMode: "bypassPermissions"` dalam [pengaturan pengguna, `--settings`, atau terkelola](/docs/id/settings-reference#permissions-defaultmode) |

94| `plan` | Terminal | Mode izin yang akan dimulai oleh sesi baru |94| `plan` | Terminal | Plan mode. Dengan `--fork-session`, mode izin yang akan dimulai oleh sesi baru |

95| `auto` | Terminal | `auto`, hanya ketika akun Anda masih memenuhi [persyaratan mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) |95| `auto` | Terminal | `auto`, hanya ketika akun Anda masih memenuhi [persyaratan mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) |

96| Manual | Terminal | Manual ketika sesi baru akan dimulai dalam mode otomatis dari [default bawaan](/docs/id/permission-modes#which-mode-a-session-starts-in). Ketika `defaultMode` dari file pengaturan [berlaku](/docs/id/permission-modes#which-mode-a-session-starts-in), Claude Code memulai sesi yang dilanjutkan dalam mode tersebut |96| Manual | Terminal | Manual ketika sesi baru akan dimulai dalam mode otomatis dari [default bawaan](/docs/id/permission-modes#which-mode-a-session-starts-in). Ketika `defaultMode` dari file pengaturan [berlaku](/docs/id/permission-modes#which-mode-a-session-starts-in), Claude Code memulai sesi yang dilanjutkan dalam mode tersebut |

97| `plan` | Non-interaktif, di bawah [kondisi di bawah](#resume-in-plan-mode-with-p) | Mode rencana |97| `plan` | Non-interaktif, di bawah [kondisi di bawah](#resume-in-plan-mode-with-p) | Mode rencana |

sub-agents.md +2 −2

Details

310 310 

311| Field | Diperlukan | Deskripsi |311| Field | Diperlukan | Deskripsi |

312| :- | :- | :- |312| :- | :- | :- |

313| `name` | Ya | Pengenal unik, seperti `code-reviewer` atau `reviewer-v2`. [Hooks](/docs/id/hooks#subagentstart) menerima nilai ini sebagai `agent_type`. Nama file tidak harus cocok. Nama tidak dapat berisi `:`, yang dicadangkan untuk [plugin-scoped identifiers](/docs/id/plugins/overview) seperti `my-plugin:reviewer`. Claude Code tidak memuat file yang nama-nya berisi satu dan mencatat kesalahan ke debug log. Sebelum v2.1.218, nama seperti itu diterima |313| `name` | Ya | Pengenal unik dengan paling banyak 256 karakter, seperti `code-reviewer` atau `reviewer-v2`. [Hooks](/docs/id/hooks#subagentstart) menerima nilai ini sebagai `agent_type`. Nama file tidak harus cocok. Nama tidak dapat berisi `:`, yang dicadangkan untuk [plugin-scoped identifiers](/docs/id/plugins/overview) seperti `my-plugin:reviewer` |

314| `description` | Ya | Kapan Claude harus mendelegasikan ke subagent ini |314| `description` | Ya | Kapan Claude harus mendelegasikan ke subagent ini |

315| `tools` | Tidak | [Tools](#available-tools) yang dapat digunakan subagent, sebagai string yang dipisahkan koma seperti `Read, Grep, Bash` atau daftar YAML. Mewarisi setiap tool yang tersedia untuk subagent jika dihilangkan. Jika tidak ada entri dalam daftar yang diselesaikan ke tool, subagent biasanya [gagal diluncurkan](/docs/id/errors#agent-would-be-spawned-with-zero-tools) dengan kesalahan yang menamai entri. Untuk memuat Skills ke dalam konteks, gunakan field `skills` daripada mencantumkan `Skill` di sini |315| `tools` | Tidak | [Tools](#available-tools) yang dapat digunakan subagent, sebagai string yang dipisahkan koma seperti `Read, Grep, Bash` atau daftar YAML. Mewarisi setiap tool yang tersedia untuk subagent jika dihilangkan. Jika tidak ada entri dalam daftar yang diselesaikan ke tool, subagent biasanya [gagal diluncurkan](/docs/id/errors#agent-would-be-spawned-with-zero-tools) dengan kesalahan yang menamai entri. Untuk memuat Skills ke dalam konteks, gunakan field `skills` daripada mencantumkan `Skill` di sini |

316| `disallowedTools` | Tidak | Tools untuk ditolak, dihapus dari daftar yang diwarisi atau ditentukan. Format yang sama seperti `tools`. Entri dengan specifier, seperti `Bash(git push *)`, masih [menghapus seluruh tool](#available-tools) |316| `disallowedTools` | Tidak | Tools untuk ditolak, dihapus dari daftar yang diwarisi atau ditentukan. Format yang sama seperti `tools`. Entri dengan specifier, seperti `Bash(git push *)`, masih [menghapus seluruh tool](#available-tools) |


348 348 

349* **Tidak ada `name`**: Claude Code memperlakukan file sebagai dokumentasi yang disimpan di samping agent Anda.349* **Tidak ada `name`**: Claude Code memperlakukan file sebagai dokumentasi yang disimpan di samping agent Anda.

350* **`---` pembuka yang bukan baris pertama file**: Claude Code membaca file sebagai tidak memiliki frontmatter dan memperlakukannya sebagai dokumentasi.350* **`---` pembuka yang bukan baris pertama file**: Claude Code membaca file sebagai tidak memiliki frontmatter dan memperlakukannya sebagai dokumentasi.

351* **`name` yang dimulai dengan `-` atau berisi `:`**: Claude Code melewati file dan menulis kesalahan ke debug log. Lihat baris `name` dalam tabel di atas.351* **`name` yang dimulai dengan `-`, berisi `:`, atau lebih panjang dari 256 karakter**: Claude Code melewati file dan menulis kesalahan ke debug log.

352* **`name` tetapi tidak ada `description`**: Claude Code melewati file dan menulis alasannya ke debug log.352* **`name` tetapi tidak ada `description`**: Claude Code melewati file dan menulis alasannya ke debug log.

353* **YAML yang tidak diuraikan**: Claude Code tidak membaca field dari file, melewatinya, dan menulis kesalahan penguraian ke debug log.353* **YAML yang tidak diuraikan**: Claude Code tidak membaca field dari file, melewatinya, dan menulis kesalahan penguraian ke debug log.

354 354 

vs-code.md +1 −1

Details

606| `environmentVariables` | `[]` | Atur environment variable untuk proses Claude. Gunakan pengaturan Claude Code sebagai gantinya untuk konfigurasi bersama. Entri [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars) hanya berlaku ketika nilainya adalah jalur absolut; ekstensi tidak memperluas `~` dan mengabaikan nilai relatif. |606| `environmentVariables` | `[]` | Atur environment variable untuk proses Claude. Gunakan pengaturan Claude Code sebagai gantinya untuk konfigurasi bersama. Entri [`CLAUDE_CONFIG_DIR`](/docs/id/env-vars) hanya berlaku ketika nilainya adalah jalur absolut; ekstensi tidak memperluas `~` dan mengabaikan nilai relatif. |

607| `disableLoginPrompt` | `false` | Lewati prompt autentikasi (untuk pengaturan penyedia pihak ketiga) |607| `disableLoginPrompt` | `false` | Lewati prompt autentikasi (untuk pengaturan penyedia pihak ketiga) |

608| `allowDangerouslySkipPermissions` | `false` | Menambahkan Bypass permissions ke pemilih mode. Gunakan hanya di sandbox tanpa akses internet. |608| `allowDangerouslySkipPermissions` | `false` | Menambahkan Bypass permissions ke pemilih mode. Gunakan hanya di sandbox tanpa akses internet. |

609| `claudeProcessWrapper` | - | Executable yang digunakan untuk meluncurkan proses Claude. Jalur biner bundel diteruskan sebagai argumen saat ada. Atur ini ke biner `claude` yang dipasang secara terpisah jika build ekstensi tidak menyertakan satu untuk platform Anda. Dalam pengaturan terbungkus, percakapan dimulai dalam mode Manual kecuali Anda menetapkan `initialPermissionMode` atau memilih Manual, Edit automatically, atau Auto dalam percakapan sebelumnya, karena ekstensi melewati pengaturan dan langkah default bawaan di sana; lihat [Switch permission modes](/docs/id/permission-modes#switch-permission-modes). Kesalahan "Unsupported platform" saat aktivasi berarti tidak ada biner yang bundel untuk platform Anda; lihat [which platforms have prebuilt binaries](/docs/id/troubleshoot-install#native-binary-not-found-after-npm-install). |609| `claudeProcessWrapper` | - | Executable yang digunakan untuk meluncurkan proses Claude. Jalur biner bundel diteruskan sebagai argumen saat ada. Atur ini ke biner `claude` yang dipasang secara terpisah jika build ekstensi tidak menyertakan satu untuk platform Anda. |

610 610 

611<h2 id="use-a-screen-reader">611<h2 id="use-a-screen-reader">

612 Gunakan pembaca layar612 Gunakan pembaca layar

worktrees.md +3 −1

Details

6 6 

7> Isolasi sesi Claude Code paralel dalam git worktrees terpisah sehingga perubahan tidak bertabrakan. Mencakup flag `--worktree`, isolasi subagent, `.worktreeinclude`, pembersihan, dan hook VCS non-git.7> Isolasi sesi Claude Code paralel dalam git worktrees terpisah sehingga perubahan tidak bertabrakan. Mencakup flag `--worktree`, isolasi subagent, `.worktreeinclude`, pembersihan, dan hook VCS non-git.

8 8 

9[git worktree](https://git-scm.com/docs/git-worktree) adalah direktori kerja terpisah dengan file dan cabang sendiri, berbagi riwayat repositori dan remote yang sama dengan checkout utama Anda. Menjalankan setiap sesi Claude Code dalam worktree-nya sendiri berarti edit dalam satu sesi tidak akan pernah menyentuh file di sesi lain, sehingga satu sesi dapat membangun fitur sementara sesi kedua memperbaiki bug.9[git worktree](https://git-scm.com/docs/git-worktree) adalah direktori kerja terpisah dengan file dan branch sendiri, berbagi riwayat repositori dan remote yang sama dengan checkout utama Anda. Menjalankan setiap sesi Claude Code dalam worktree-nya sendiri memberikan salinan file terpisah untuk diedit, sehingga satu sesi dapat membangun fitur sementara sesi kedua memperbaiki bug.

10 10 

11<Note>11<Note>

12 Worktrees memerlukan repositori git; untuk sistem kontrol versi lainnya, [konfigurasikan hook untuk menggantikan logika git](#non-git-version-control). Di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions), pilih opsi **worktree** saat Anda memulai sesi untuk memberikannya worktree-nya sendiri.12 Worktrees memerlukan repositori git; untuk sistem kontrol versi lainnya, [konfigurasikan hook untuk menggantikan logika git](#non-git-version-control). Di [aplikasi desktop](/docs/id/desktop#work-in-parallel-with-sessions), pilih opsi **worktree** saat Anda memulai sesi untuk memberikannya worktree-nya sendiri.


104* **Pengalihan git**: Claude Code memblokir perintah Bash atau Monitor yang mengalihkan git ke checkout utama. Pengalihan dapat datang melalui `git -C`, `--git-dir`, variabel `GIT_DIR` atau `GIT_WORK_TREE`, atau `cd` ke checkout utama sebelum menjalankan git.104* **Pengalihan git**: Claude Code memblokir perintah Bash atau Monitor yang mengalihkan git ke checkout utama. Pengalihan dapat datang melalui `git -C`, `--git-dir`, variabel `GIT_DIR` atau `GIT_WORK_TREE`, atau `cd` ke checkout utama sebelum menjalankan git.

105* **Bentuk perintah**: Claude Code memblokir perintah Bash atau Monitor saat tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap berada di dalam worktree. Itu terjadi, misalnya, saat nama perintah dihitung saat runtime, saat sintaks tidak dapat diuraikan, atau saat ekspansi seperti `${!name}` atau `${ command; }` dapat menjalankan perintah yang teks tidak jelaskan. Claude Code memberi tahu Claude cara menulis ulang perintah yang ditolak, seperti membaginya menjadi perintah biasa yang terpisah. Anda tidak dapat mematikan pemeriksaan ini.105* **Bentuk perintah**: Claude Code memblokir perintah Bash atau Monitor saat tidak dapat memverifikasi dari teks perintah bahwa git apa pun yang dijalankan perintah tetap berada di dalam worktree. Itu terjadi, misalnya, saat nama perintah dihitung saat runtime, saat sintaks tidak dapat diuraikan, atau saat ekspansi seperti `${!name}` atau `${ command; }` dapat menjalankan perintah yang teks tidak jelaskan. Claude Code memberi tahu Claude cara menulis ulang perintah yang ditolak, seperti membaginya menjadi perintah biasa yang terpisah. Anda tidak dapat mematikan pemeriksaan ini.

106 106 

107Pemeriksaan ini membaca jalur yang ditargetkan oleh sebuah edit, direktori tempat perintah dijalankan, dan teks perintah. Tidak satu pun dari pemeriksaan ini melacak file mana yang ditulis oleh perintah shell, sehingga perintah yang menulis ke checkout utama tanpa menjalankan git di sana, seperti `cp` atau pengalihan shell, tidak ditolak olehnya. Claude Code memperlakukan perintah tersebut seperti perintah shell lainnya, sehingga apakah perintah itu dijalankan atau Claude Code meminta persetujuan Anda bergantung pada [mode izin](/docs/id/permission-modes) dan aturan Anda.

108 

107Pemeriksaan berlaku untuk repositori tempat Anda meluncurkan Claude Code. Mereka juga mencakup checkout utama yang ditautkan worktree ditautkan darinya. Untuk perintah PowerShell, Claude Code hanya menerapkan pemeriksaan direktori kerja.109Pemeriksaan berlaku untuk repositori tempat Anda meluncurkan Claude Code. Mereka juga mencakup checkout utama yang ditautkan worktree ditautkan darinya. Untuk perintah PowerShell, Claude Code hanya menerapkan pemeriksaan direktori kerja.

108 110 

109Claude melihat setiap penolakan sebagai kesalahan tool yang menamai worktree dan mengatakan cara melanjutkan. Untuk perintah yang ditolak, lihat [apa arti pesan penolakan dan cara menghapusnya](/docs/id/errors#command-blocked-by-the-worktree-isolation-checks).111Claude melihat setiap penolakan sebagai kesalahan tool yang menamai worktree dan mengatakan cara melanjutkan. Untuk perintah yang ditolak, lihat [apa arti pesan penolakan dan cara menghapusnya](/docs/id/errors#command-blocked-by-the-worktree-isolation-checks).