SpyBara
Go Premium

Documentation 2026-09-18 23:58 UTC to 2026-09-19 23:57 UTC

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

94| `id_token_signed_response_alg` | Tidak | Expected id\_token signing algorithm. Default `RS256`. Atur untuk IdP yang menandatangani dengan ES256, PS256, atau EdDSA. |94| `id_token_signed_response_alg` | Tidak | Expected id\_token signing algorithm. Default `RS256`. Atur untuk IdP yang menandatangani dengan ES256, PS256, atau EdDSA. |

95| `additional_authorized_parties` | Tidak | Extra `azp` values untuk diterima di luar `client_id`, untuk Keycloak broker dan token-exchange flows |95| `additional_authorized_parties` | Tidak | Extra `azp` values untuk diterima di luar `client_id`, untuk Keycloak broker dan token-exchange flows |

96| `discovery_url` | Tidak | Ambil discovery document dari URL ini daripada menurunkannya dari `issuer`, untuk IdP di belakang proxy yang menulis ulang issuer host. Path harus berisi `/.well-known/`. |96| `discovery_url` | Tidak | Ambil discovery document dari URL ini daripada menurunkannya dari `issuer`, untuk IdP di belakang proxy yang menulis ulang issuer host. Path harus berisi `/.well-known/`. |

97| `use_proxy` | Tidak | Kirim IdP requests gateway sendiri melalui forward proxy di `HTTPS_PROXY` atau `HTTP_PROXY`, menghormati `NO_PROXY`. Unset atau `false`, requests tersebut langsung. Memerlukan v2.1.227 atau lebih baru; lihat [IdP requests through a forward proxy](#idp-requests-through-a-forward-proxy) di bawah. |97| `use_proxy` | Tidak | Kirim IdP requests gateway sendiri melalui forward proxy di `HTTPS_PROXY` atau `HTTP_PROXY`, menghormati `NO_PROXY`. `false` menjaga requests tersebut langsung. Memerlukan v2.1.227 atau lebih baru; lihat [IdP requests through a forward proxy](#idp-requests-through-a-forward-proxy) di bawah. |

98| `form_action_origins` | Tidak | Origins tambahan untuk direktif `Content-Security-Policy: form-action` halaman `/device`. Gateway sudah mengizinkan `'self'` dan origin `authorization_endpoint` yang ditemukan, tetapi Chrome memberlakukan `form-action` terhadap seluruh redirect chain. Jika IdP Anda mengalihkan melalui host kedua, seperti Azure AD federated ke ADFS, hub-spoke Okta, atau SSO interceptor korporat, daftar setiap origin yang mungkin dialihkan oleh authorization request. |98| `form_action_origins` | Tidak | Origins tambahan untuk direktif `Content-Security-Policy: form-action` halaman `/device`. Gateway sudah mengizinkan `'self'` dan origin `authorization_endpoint` yang ditemukan, tetapi Chrome memberlakukan `form-action` terhadap seluruh redirect chain. Jika IdP Anda mengalihkan melalui host kedua, seperti Azure AD federated ke ADFS, hub-spoke Okta, atau SSO interceptor korporat, daftar setiap origin yang mungkin dialihkan oleh authorization request. |

99| `ca_cert_pem` | Tidak | PEM-encoded CA certificate itu sendiri, bukan path ke file. Ini menggantikan system trust store untuk IdP requests saja. Untuk memuat file yang di-mount, tulis `${file:/etc/gateway/idp-ca.pem}`. Gunakan untuk Keycloak atau Dex di belakang corporate PKI. |99| `ca_cert_pem` | Tidak | PEM-encoded CA certificate itu sendiri, bukan path ke file. Ini menggantikan system trust store untuk IdP requests saja. Untuk memuat file yang di-mount, tulis `${file:/etc/gateway/idp-ca.pem}`. Gunakan untuk Keycloak atau Dex di belakang corporate PKI. |

100 100 


106 106 

107Dengan `use_proxy: true`, pod menyelesaikan hostname setiap IdP endpoint itu sendiri dan meminta proxy untuk `CONNECT` ke resolved IP address, jadi proxy harus menerima `CONNECT` ke IP address setiap host yang discovery document namai, bukan hanya issuer. Gunakan `http://` proxy URL. `ca_cert_pem` dan [SSRF guard](/docs/id/claude-apps-gateway-deploy#threat-model-summary) berlaku pada proxied path juga.107Dengan `use_proxy: true`, pod menyelesaikan hostname setiap IdP endpoint itu sendiri dan meminta proxy untuk `CONNECT` ke resolved IP address, jadi proxy harus menerima `CONNECT` ke IP address setiap host yang discovery document namai, bukan hanya issuer. Gunakan `http://` proxy URL. `ca_cert_pem` dan [SSRF guard](/docs/id/claude-apps-gateway-deploy#threat-model-summary) berlaku pada proxied path juga.

108 108 

109[Proxy-only egress](#proxy-only-egress) mengubah keduanya: saat aktif, IdP requests mengikuti proxy kecuali Anda menetapkan `use_proxy: false`, dan gateway menyerahkan proxy setiap hostname IdP tanpa menyelesaikannya terlebih dahulu.

110 

111<h4 id="proxy-only-egress">

112 Proxy-only egress

113</h4>

114 

115Atur `CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1` di environment gateway, di sebelah `HTTPS_PROXY`, ketika pod mencapai host lain hanya melalui forward proxy itu dan tidak dapat menyelesaikan public DNS names itu sendiri, atau ketika proxy menolak `CONNECT` ke IP address. Memerlukan v2.1.277 atau lebih baru. Ini adalah environment variable daripada kunci `gateway.yaml` jadi tidak ada apa pun dalam file config yang dapat melonggarkan address check gateway.

116 

117```bash theme={null}

118export HTTPS_PROXY=http://proxy.corp.example.com:3128

119export NO_PROXY=

120export no_proxy=

121export CLAUDE_GATEWAY_PROXY_IS_EGRESS_BOUNDARY=1

122```

123 

124Gateway mencatat satu baris `network:` saat boot saat proxy-only egress aktif.

125 

126Setiap baris di bawah adalah satu class dari outbound request pada gateway dengan `HTTPS_PROXY` diatur, secara default dan saat proxy-only egress aktif.

127 

128| Outbound request | Default | Proxy-only egress active |

129| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |

130| `provider: anthropic` upstreams, Workload Identity Federation token exchange, `telemetry.forward_to` exports | Resolved dan checked secara lokal, kemudian `CONNECT` ke checked IP address melalui proxy. Telemetry collector yang terdaftar di `NO_PROXY` dicapai langsung sebagai gantinya | Hostname diserahkan ke proxy |

131| IdP discovery, JWKS, token, dan userinfo | Direct kecuali [`oidc.use_proxy: true`](#idp-requests-through-a-forward-proxy), kemudian `CONNECT` ke checked IP address | Hostname diserahkan ke proxy, kecuali `oidc.use_proxy: false` menjaga internal IdP langsung |

132| Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, dan Microsoft Foundry upstreams; Google group lookups | Hostname diserahkan ke proxy | Unchanged |

133 

134Proxy-only egress tetap off kecuali environment gateway memenuhi ketiga kondisi ini:

135 

136* `HTTPS_PROXY` atau `HTTP_PROXY` diatur.

137* `NO_PROXY` dan `no_proxy` kosong. Jika platform Anda menyuntikkan salah satu ke pods, atur keduanya ke nilai kosong pada container gateway. Mendaftar telemetry collector di `NO_PROXY` menjaga proxy-only egress off.

138* `CLAUDE_GATEWAY_ALLOW_LOOPBACK` tidak diaktifkan. Collector atau IdP pada loopback pod sendiri tidak dapat dikombinasikan dengan proxy-only egress, karena loopback address yang diserahkan ke proxy akan menjadi proxy host sendiri, jadi berikan services tersebut address yang dapat dicapai proxy. Untuk alasan yang sama gateway menolak `localhost`-style names sepenuhnya saat proxy-only egress aktif.

139 

140Ketika salah satu kondisi itu tidak terpenuhi, gateway mencatat warning saat boot menamai variable yang menghentikannya dan menjaga default behavior.

141 

142Setelah proxy-only egress aktif, izinkan setiap destination di proxy, termasuk internal collector dan host apa pun yang dikonfigurasi oleh IP address. Anda masih dapat menjaga internal IdP langsung dengan [`oidc.use_proxy: false`](#idp-requests-through-a-forward-proxy).

143 

144<Warning>

145 Aktifkan ini hanya ketika allowlist proxy setidaknya setat ketat dengan check gateway sendiri. Proxy harus menolak cloud metadata endpoints seperti `169.254.169.254` dan `metadata.google.internal`, link-local addresses, dan loopback proxy host sendiri, dan harus menolaknya oleh address yang name resolves ke, bukan hanya oleh name, karena gateway tidak lagi menangkap hostname yang resolves ke salah satu dari mereka. Proxy yang terhubung ke mana pun diminta menghapus [SSRF guard](/docs/id/claude-apps-gateway-deploy#threat-model-summary) gateway untuk requests ini.

146</Warning>

147 

109<h3 id="session">148<h3 id="session">

110 `session`149 `session`

111</h3>150</h3>


124Blok `store` menunjukkan gateway ke database PostgreSQL-nya, yang menyimpan device grants dan rate-limit counters.163Blok `store` menunjukkan gateway ke database PostgreSQL-nya, yang menyimpan device grants dan rate-limit counters.

125 164 

126| Field | Diperlukan | Deskripsi |165| Field | Diperlukan | Deskripsi |

127| ----------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |166| ------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

128| `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). |167| `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). |

129| `username` | Tidak | Overrides user di `postgres_url` |168| `username` | Tidak | Overrides user di `postgres_url` |

130| `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. |169| `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. |

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

171| `connect_timeout_seconds` | Tidak | Detik gateway menunggu ketika membuka koneksi Postgres. Seluruh number dari `1` hingga `60`, default `5`. Naikkan jika upaya koneksi timeout ketika instance gateway baru dimulai. Memerlukan Claude Code v2.1.274 atau lebih baru di server gateway. Versi sebelumnya menolak untuk memulai ketika key diatur. |

132 172 

133Untuk local development, arahkan `postgres_url` ke throwaway Postgres container, misalnya `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.173Untuk local development, arahkan `postgres_url` ke throwaway Postgres container, misalnya `docker run --rm -p 5432:5432 -e POSTGRES_HOST_AUTH_METHOD=trust postgres`.

134 174 


365| ACI / App Service | Enable system-assigned atau user-assigned managed identity pada resource. `use_azure_ad: true` mengambilnya. |405| ACI / App Service | Enable system-assigned atau user-assigned managed identity pada resource. `use_azure_ad: true` mengambilnya. |

366| Tempat lain | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Quote `${…}` di dalam `{ }`. |406| Tempat lain | `auth: { api_key: "${FOUNDRY_API_KEY}" }`. Quote `${…}` di dalam `{ }`. |

367 407 

408<h4 id="static-headers-on-upstream-requests">

409 Static headers on upstream requests

410</h4>

411 

412Untuk menambahkan fixed headers ke requests yang gateway kirim ke satu upstream, atur `headers:` pada upstream itu. Gunakan ketika proxy yang Anda jalankan di depan provider routes atau attributes traffic oleh header.

413 

414`headers:` memerlukan Claude Code v2.1.277 atau lebih baru di server gateway. Gateway sebelumnya menolak untuk memulai ketika menemukan key. Upgrade setiap replica sebelum Anda menambahkan key, dan hapus key sebelum Anda rollback ke versi sebelumnya.

415 

416Headers pergi ke server yang `base_url` namai, atau ke endpoint provider sendiri ketika `base_url` unset. Provider menerimanya juga kecuali proxy Anda menghapusnya.

417 

418Contoh ini mencapai upstream `provider: vertex` melalui proxy di `upstream-proxy.internal.example.com`. Ini menetapkan header `x-source` yang proxy baca, dan mengirim token dari environment variable `PROXY_TOKEN` sebagai `x-proxy-token`:

419 

420```yaml theme={null}

421upstreams:

422 - provider: vertex

423 region: us-east5

424 project_id: example-prod

425 base_url: https://upstream-proxy.internal.example.com

426 auth: {}

427 headers:

428 x-source: claude-apps-gateway

429 x-proxy-token: ${PROXY_TOKEN}

430```

431 

432Values adalah printable ASCII text tanpa space di kedua ujung. Quote number, `true`, atau `false` jadi YAML membacanya sebagai text.

433 

434Untuk menjaga secret keluar dari file config, gunakan [secret expansion](#secret-expansion) untuk memuat value dari environment variable dengan `${VAR}` atau dari file dengan `${file:/path}`. `${VAR}` yang resolves ke empty value menghentikan gateway dari memulai.

435 

436`headers:` bekerja pada setiap provider, dan setiap upstream mengirim hanya miliknya sendiri.

437 

438Tidak setiap request yang gateway kirim ke upstream membawanya:

439 

440| Request yang gateway kirim ke upstream ini | Carries `headers:` |

441| --------------------------------------------------------------------- | --------------------------------- |

442| `/v1/messages`, streaming atau tidak, dan `/v1/messages/count_tokens` | Ya |

443| Request yang failover dari upstream lain | Ya, hanya `headers:` upstream ini |

444| Amazon Bedrock's `CountTokens` call untuk request yang client abaikan | Tidak |

445| Workload Identity Federation token exchange | Tidak |

446 

447Pada Amazon Bedrock atau Claude Platform on AWS upstream yang menandatangani requests dengan AWS SigV4, headers ini adalah bagian dari signature, jadi proxy Anda harus meneruskannya tanpa perubahan.

448 

449Jika Anda menggunakan name yang gateway reserve, ia menolak untuk memulai, dan startup error menamai header. Reserved names termasuk:

450 

451* `authorization` dan `x-api-key`

452* `host`, `content-type`, dan `user-agent`

453* Nama apa pun yang dimulai dengan `anthropic-`, `x-goog-`, `x-amz-`, atau `x-amzn-`

454 

368<h4 id="multiple-upstreams">455<h4 id="multiple-upstreams">

369 Multiple upstreams456 Multiple upstreams

370</h4>457</h4>


375 462 

376`429` adalah per-upstream capacity, jadi provisioned-throughput (PT) exhaustion failover ke on-demand. Jika Anda menetapkan [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) pada upstream, `429` ke request yang membawa email developer adalah per-user denial daripada dan tidak failover.463`429` adalah per-upstream capacity, jadi provisioned-throughput (PT) exhaustion failover ke on-demand. Jika Anda menetapkan [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) pada upstream, `429` ke request yang membawa email developer adalah per-user denial daripada dan tidak failover.

377 464 

465Setiap request dimulai pada upstream pertama. Request mencapai upstream yang lebih baru hanya ketika setiap upstream di depannya telah gagal atau tidak melayani model yang diminta.

466 

467Gateway menjaga tidak ada record dari failed upstreams, jadi saat upstream down, setiap request yang mencapainya masih mencobanya dan menunggu untuk gagal sebelum pindah.

468 

469Untuk Anthropic API upstream, [`timeouts.upstream_ttfb_ms`](#http-tuning) bounds wait pada down upstream. Setting ini tidak berlaku pada provider lainnya, di mana gateway menunggu hingga satu jam untuk upstream mulai merespons.

470 

378`404` adalah per-upstream model availability, jadi upstream yang belum enable model tidak memblokir upstream yang lebih baru dalam list yang melayaninya. Upstream yang tidak dapat menyelesaikan model yang diminta dilewati tanpa network round-trip.471`404` adalah per-upstream model availability, jadi upstream yang belum enable model tidak memblokir upstream yang lebih baru dalam list yang melayaninya. Upstream yang tidak dapat menyelesaikan model yang diminta dilewati tanpa network round-trip.

379 472 

380Contoh ini route provisioned-throughput Bedrock allotment pertama, overflow ke on-demand dan second account, dan fallback ke Anthropic API terakhir:473Contoh ini route provisioned-throughput Bedrock allotment pertama, overflow ke on-demand dan second account, dan fallback ke Anthropic API terakhir:


797 890 

798[Claude Desktop](#claude-desktop-overlay) dan sesi Cowork yang masuk melalui gateway memberi stempel telemetry mereka dengan `user.email` dan `user.groups` bersama `enduser.id`, jadi Anda dapat mencakup penggunaan terminal, Desktop, dan Cowork dengan satu query pada `user.email` atau `user.groups`. `user.groups` adalah daftar grup IdP yang dipisahkan koma.891[Claude Desktop](#claude-desktop-overlay) dan sesi Cowork yang masuk melalui gateway memberi stempel telemetry mereka dengan `user.email` dan `user.groups` bersama `enduser.id`, jadi Anda dapat mencakup penggunaan terminal, Desktop, dan Cowork dengan satu query pada `user.email` atau `user.groups`. `user.groups` adalah daftar grup IdP yang dipisahkan koma.

799 892 

893Desktop dan Cowork telemetry juga membawa `enduser.sub`, klaim `sub` yang penyedia identitas Anda terbitkan untuk pengguna, yang tetap sama ketika email pengguna berubah. Sesi terminal memberi stempel nilai yang sama di bawah `user.id`, jadi query yang cocok `enduser.sub` terhadap terminal `user.id` mencakup penggunaan terminal, Desktop, dan Cowork satu pengguna bersama-sama. Pada export Desktop dan Cowork, `user.id` adalah identifier anonim, bukan subject.

894 

800Seperti semua data OpenTelemetry dari Claude Code, atribut ini hanya pergi ke tujuan yang organisasi Anda konfigurasikan, tidak pernah ke Anthropic.895Seperti semua data OpenTelemetry dari Claude Code, atribut ini hanya pergi ke tujuan yang organisasi Anda konfigurasikan, tidak pernah ke Anthropic.

801 896 

802Jika daftar grup pengguna lebih panjang dari 255 karakter setelah percent-encoded, atau nama grup berisi koma atau tanda sama dengan, gateway meninggalkan `user.groups` dari telemetry Desktop dan Cowork pengguna itu daripada memotongnya. Sesi terminal pengguna itu masih membawa daftar lengkap.897Jika daftar grup pengguna lebih panjang dari 255 karakter setelah percent-encoded, atau nama grup berisi koma atau tanda sama dengan, gateway meninggalkan `user.groups` dari telemetry Desktop dan Cowork pengguna itu daripada memotongnya. Sesi terminal pengguna itu masih membawa daftar lengkap.

803 898 

899Gateway meninggalkan `enduser.sub` ketika subject lebih panjang dari 255 karakter setelah percent-encoded, atau berisi spasi, karakter di luar printable ASCII, atau salah satu dari `,` `;` `=` `\` `"` `%`. Telemetry Desktop dan Cowork pengguna itu menyimpan atribut lainnya.

900 

804Anda memerlukan Claude Code v2.1.265 atau lebih baru di server gateway untuk `user.email` dan `user.groups` pada telemetry Desktop dan Cowork, dan Claude Desktop 1.24012 atau lebih baru pada mesin setiap developer untuk `user.groups`.901Anda memerlukan Claude Code v2.1.265 atau lebih baru di server gateway untuk `user.email` dan `user.groups` pada telemetry Desktop dan Cowork, dan Claude Desktop 1.24012 atau lebih baru pada mesin setiap developer untuk `user.groups`.

805 902 

903Anda memerlukan Claude Code v2.1.274 atau lebih baru di server gateway untuk `enduser.sub`.

904 

806```yaml theme={null}905```yaml theme={null}

807telemetry:906telemetry:

808 forward_to:907 forward_to:


834 933 

835Untuk kolektor in-cluster, paparkan melalui HTTPS di alamat internal-nya sendiri, atau jalankan sebagai sidecar dengan variabel diatur.934Untuk kolektor in-cluster, paparkan melalui HTTPS di alamat internal-nya sendiri, atau jalankan sebagai sidecar dengan variabel diatur.

836 935 

936Ketika `HTTPS_PROXY` diatur, gateway mengirimkan export melalui proxy itu.

937 

938Untuk menjangkau kolektor internal secara langsung, tambahkan ke `NO_PROXY` berdasarkan hostname atau berdasarkan domain dengan titik terkemuka seperti `.internal.example.com`, yang memerlukan Claude Code v2.1.277 atau lebih baru di server gateway. Pastikan gateway dapat menjangkau kolektor tanpa proxy. Entri tanpa titik terkemuka cocok hanya dengan nama yang tepat itu, bukan nama di bawahnya. Rentang CIDR tidak cocok.

939 

940Dengan [proxy-only egress](#proxy-only-egress) diaktifkan, izinkan kolektor dalam proxy alih-alih, karena entri `NO_PROXY` apa pun menjaga proxy-only egress tetap mati.

941 

837Telemetry off dalam CLI secara default. Ketika Anda mengatur `telemetry.forward_to` dan `listen.public_url`, gateway mengaktifkannya untuk klien yang terhubung dengan mendorong enam variabel lingkungan melalui `/managed/settings`:942Telemetry off dalam CLI secara default. Ketika Anda mengatur `telemetry.forward_to` dan `listen.public_url`, gateway mengaktifkannya untuk klien yang terhubung dengan mendorong enam variabel lingkungan melalui `/managed/settings`:

838 943 

839* `CLAUDE_CODE_ENABLE_TELEMETRY=1`944* `CLAUDE_CODE_ENABLE_TELEMETRY=1`


908| `limits` | `max_request_header_bytes` | unset | Ketika diatur, header yang terlalu besar mengembalikan `431` |1013| `limits` | `max_request_header_bytes` | unset | Ketika diatur, header yang terlalu besar mengembalikan `431` |

909| `limits` | `max_url_length` | unset | Ketika diatur, URL yang terlalu panjang mengembalikan `414` |1014| `limits` | `max_url_length` | unset | Ketika diatur, URL yang terlalu panjang mengembalikan `414` |

910| `timeouts` | `upstream_ttfb_ms` | 120000 | Max wait untuk header respons upstream (time to first byte). Response body kemudian stream tanpa wall-clock cap. Berlaku ke jalur upstream Anthropic langsung; setiap penyedia lainnya dibatasi oleh timeout SDK penyedia mereka sendiri. |1015| `timeouts` | `upstream_ttfb_ms` | 120000 | Max wait untuk header respons upstream (time to first byte). Response body kemudian stream tanpa wall-clock cap. Berlaku ke jalur upstream Anthropic langsung; setiap penyedia lainnya dibatasi oleh timeout SDK penyedia mereka sendiri. |

911| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Per-IP rate limit pada endpoint device-authorization yang tidak terautentikasi. Naikkan untuk org besar di belakang IP egress bersama atau NAT. Limit ini berlaku hanya ke alur sign-in device-grant, bukan ke inference `/v1/messages`. Lihat [User-code brute-force resistance](/docs/id/claude-apps-gateway-deploy#user-code-brute-force-resistance). |1016| `rate_limits` | `device_authorization.max` / `.window_seconds` | 30 / 600 | Per-IP rate limit pada endpoint device-authorization yang tidak terautentikasi. Naikkan untuk org besar di belakang IP egress bersama atau NAT. [Large rollouts](/docs/id/claude-apps-gateway-deploy#large-rollouts) menunjukkan cara mengukurnya. Limit ini berlaku hanya ke alur sign-in device-grant, bukan ke inference `/v1/messages`. Lihat [User-code brute-force resistance](/docs/id/claude-apps-gateway-deploy#user-code-brute-force-resistance). |

912| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Per-IP rate limit pada pengajuan `user_code` di `/device` |1017| `rate_limits` | `device_verify.max` / `.window_seconds` | 10 / 600 | Per-IP rate limit pada pengajuan `user_code` di `/device`. Ini adalah apa yang menghentikan seseorang dari menebak kode developer lain. [Large rollouts](/docs/id/claude-apps-gateway-deploy#large-rollouts) menunjukkan seberapa jauh untuk menaikkannya. |

913 1018 

914Jika Anda meninggalkan kedua daftar `access_control` kosong, yang merupakan default, gateway melayani alamat klien apa pun, jadi hanya jaringan Anda yang membatasi siapa yang dapat menjangkaunya. Itu penting karena gateway dapat mendorong [pengaturan terkelola](#managed) yang menjalankan perintah pada mesin developer.1019Jika Anda meninggalkan kedua daftar `access_control` kosong, yang merupakan default, gateway melayani alamat klien apa pun, jadi hanya jaringan Anda yang membatasi siapa yang dapat menjangkaunya. Itu penting karena gateway dapat mendorong [pengaturan terkelola](#managed) yang menjalankan perintah pada mesin developer.

915 1020 


973store:1078store:

974 postgres_url: ${GATEWAY_POSTGRES_URL}1079 postgres_url: ${GATEWAY_POSTGRES_URL}

975 # max_connections: 51080 # max_connections: 5

1081 # connect_timeout_seconds: 5

976 1082 

977# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)1083# Enables /v1/organizations/spend_limits (mirrors the Anthropic Admin API)

978# and per-developer spend enforcement on /v1/messages. Omit to disable.1084# and per-developer spend enforcement on /v1/messages. Omit to disable.

Details

126 126 

127Lihat [di mana setiap mekanisme menyimpan kebijakan](/docs/id/managed-settings#where-each-mechanism-stores-the-policy) untuk jalur file, dan [Pengaturan terkelola sisi klien](/docs/id/claude-apps-gateway-config#client-side-managed-settings) untuk setara `bootstrapUrl` Claude Desktop.127Lihat [di mana setiap mekanisme menyimpan kebijakan](/docs/id/managed-settings#where-each-mechanism-stores-the-policy) untuk jalur file, dan [Pengaturan terkelola sisi klien](/docs/id/claude-apps-gateway-config#client-side-managed-settings) untuk setara `bootstrapUrl` Claude Desktop.

128 128 

129<h3 id="large-rollouts">

130 Peluncuran besar

131</h3>

132 

133Sign-in dibatasi laju per alamat IP klien, dan default cocok untuk tim kecil. Setiap alamat mendapatkan 30 awal sign-in dan 10 pengajuan kode setiap 10 menit. Peluncuran ke ribuan pengembang dapat mencapai batas tersebut pada pagi pertama, karena salah satu dari dua alasan:

134 

135* **Gateway tidak dapat melihat melewati penyeimbang beban Anda.** Tanpa [`listen.trusted_proxies`](/docs/id/claude-apps-gateway-config#listen), setiap pengembang tampak berasal dari alamat penyeimbang beban dan berbagi satu batas. Atur sebelum apa pun. Gateway mencatat peringatan pertama kali mengabaikan header `X-Forwarded-For`.

136* **Banyak pengembang berbagi beberapa alamat egress NAT atau VPN.** Mereka berbagi batas alamat tersebut bahkan ketika `trusted_proxies` benar. Naikkan [`rate_limits`](/docs/id/claude-apps-gateway-config#http-tuning) agar sesuai.

137 

138Untuk mengukur `max`, bagi pengembang dengan alamat egress yang mereka bagikan. Perkirakan berapa banyak dari mereka yang sign-in dalam satu periode `window_seconds`, yang default 10 menit. Kemudian gandakan untuk mencakup percobaan ulang dan pengembang yang sign-in ke Claude Code dan Claude Desktop.

139 

140Sebagai contoh, 10.000 pengembang di belakang 4 alamat egress sign-in secara merata selama satu jam. Itu adalah 2.500 pengembang per alamat dan sekitar 420 dari mereka dalam setiap 10 menit, yang Anda gandakan dan bulatkan ke 1.000. Contoh di bawah menetapkan kedua batas ke 1.000:

141 

142```yaml theme={null}

143rate_limits:

144 device_authorization: { max: 1000, window_seconds: 600 }

145 device_verify: { max: 1000, window_seconds: 600 }

146```

147 

148`device_verify` adalah apa yang menghentikan seseorang dari menebak kode sign-in pengembang lain, jadi naikkan hanya sejauh perkiraan Anda membutuhkan. Bahkan pada batas ini, kode adalah 8 karakter dari alfabet 20 karakter dan kedaluwarsa setelah 10 menit, jadi menebak tetap tidak praktis; lihat [Ketahanan brute-force kode pengguna](#user-code-brute-force-resistance).

149 

150Ketika IdP Anda mengeluarkan token refresh, Claude Code memperbarui sesi secara diam-diam, jadi Anda dapat mengembalikan batas setelah peluncuran. Tanpa token refresh, pengembang sign-in lagi setiap [`session.ttl_hours`](/docs/id/claude-apps-gateway-config#session). Ukur kedua batas untuk laju stabil itu juga dan biarkan mereka naik.

151 

152Ketika batas tercapai, Claude Code v2.1.274 atau lebih baru menampilkan `The gateway is limiting sign-in attempts right now`. Gateway pada v2.1.274 atau lebih baru menampilkan `Too many attempts came from your network address` pada halaman verifikasi, dengan pengaturan untuk diperiksa. Ini juga menulis baris log `sign-in refused` yang menamai pengaturan untuk diubah.

153 

129<h2 id="operations">154<h2 id="operations">

130 Operasi155 Operasi

131</h2>156</h2>


160 185 

161Dokumen penemuan OAuth di `/.well-known/oauth-authorization-server` juga mengembalikan `200` hanya setelah pemuatan konfigurasi, penemuan OIDC, konstruksi klien upstream, dan migrasi Postgres semua berhasil, jadi berfungsi ganda sebagai pemeriksaan boot end-to-end.186Dokumen penemuan OAuth di `/.well-known/oauth-authorization-server` juga mengembalikan `200` hanya setelah pemuatan konfigurasi, penemuan OIDC, konstruksi klien upstream, dan migrasi Postgres semua berhasil, jadi berfungsi ganda sebagai pemeriksaan boot end-to-end.

162 187 

188<h3 id="concurrent-upstream-requests">

189 Permintaan upstream bersamaan

190</h3>

191 

192Secara default, setiap replika gateway mengirim paling banyak 256 permintaan upstream pada waktu yang sama. Respons streaming dihitung terhadap batas sampai aliran berakhir.

193 

194Permintaan yang tiba sementara replika berada di batas menunggu di dalam gateway untuk slot gratis. Pengembang melihat respons yang lambat dimulai atau tampak hang. Pada upstream `provider: anthropic`, permintaan yang menunggu lebih lama dari [`timeouts.upstream_ttfb_ms`](/docs/id/claude-apps-gateway-config#http-tuning) menyerah pada upstream itu, dan gagal dengan 502 ketika tidak ada upstream yang melayaninya kemudian.

195 

196Baris log startup yang berisi `upstream requests:` menunjukkan batas yang berlaku. Sementara replika memiliki lebih banyak permintaan terbuka daripada batas, itu juga mencatat peringatan yang berisi `client requests are open`, paling banyak sekali per menit.

197 

198Untuk melayani lebih banyak permintaan sekaligus, Anda memiliki dua opsi:

199 

200* Tambahkan replika.

201* Naikkan batas pada setiap replika. Atur variabel lingkungan `BUN_CONFIG_MAX_HTTP_REQUESTS` pada kontainer gateway ke angka bulat dari 1 hingga 65535, kemudian mulai ulang kontainer.

202 

203Replika mengisi batasnya pada tingkat permintaan sekitar batas dibagi dengan rata-rata jumlah detik permintaan tetap terbuka. Misalnya, jika permintaan tetap terbuka selama 10 detik rata-rata, replika pada batas default 256 mengisinya pada sekitar 26 permintaan per detik.

204 

205Jika Anda autoscale pada CPU, replika di batas mengantrekan permintaan tanpa memicu scale-out, jadi atur target di bawah level CPU yang ditunjukkan replika Anda ketika mereka mencatat peringatan `client requests are open`.

206 

207<Warning>

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

209</Warning>

210 

163<h3 id="outage-behavior">211<h3 id="outage-behavior">

164 Perilaku pemadaman212 Perilaku pemadaman

165</h3>213</h3>


207 Upgrade255 Upgrade

208</h3>256</h3>

209 257 

210Replika tidak memiliki status, jadi restart bergulir aman kapan saja. Gateway menjalankan migrasi skema saat boot, yang berarti menyebarkan biner baru secara otomatis memigrasikan database. Replika bersamaan menserialisasi pada kunci advisory Postgres, jadi hanya satu yang menerapkan setiap migrasi.258Replika tidak memiliki status, jadi restart bergulir tidak kehilangan status gateway. Gateway menjalankan migrasi skema saat boot, yang berarti menyebarkan biner baru secara otomatis memigrasikan database. Replika bersamaan menserialisasi pada kunci advisory Postgres, jadi hanya satu yang menerapkan setiap migrasi.

259 

260Ketika orchestrator Anda menghentikan replika dengan `SIGTERM`, seperti dalam restart bergulir atau scale-in, gateway berhenti menerima koneksi baru dan membiarkan permintaan dan aliran yang sudah dalam penerbangan selesai sebelum keluar. Itu menunggu hingga 25 detik, disebut jendela drain, kemudian menutup apa pun yang masih terbuka. `SIGINT`, seperti Ctrl+C di terminal, memulai drain yang sama, dan sinyal kedua selama drain menutup permintaan terbuka dan keluar langsung. Draining memerlukan gateway v2.1.274 atau lebih baru.

261 

262Generasi panjang dapat streaming selama berapa menit. Pada Kubernetes dan Amazon ECS, naikkan keduanya bersama-sama untuk memberikan aliran tersebut lebih banyak waktu:

263 

264* **Jendela drain**: atur variabel lingkungan `CLAUDE_GATEWAY_DRAIN_TIMEOUT_MS` pada kontainer gateway ke angka bulat positif milidetik, seperti `120000`. Gateway mengabaikan nilai dalam bentuk apa pun, seperti `120s`, dan menyimpan default 25 detik

265* **Periode grace orchestrator Anda**: `terminationGracePeriodSeconds` pada Kubernetes, atau `stopTimeout` pada Amazon ECS

266 

267Periode grace default ke 30 detik di kedua platform. Simpan setidaknya 5 detik lebih lama dari jendela drain, atau orchestrator membunuh gateway sebelum drain selesai. Pada Kubernetes, tambahkan durasi hook `preStop` apa pun juga, karena periode grace mulai menghitung sebelum hook berjalan daripada ketika gateway menerima `SIGTERM`.

268 

269Platform Anda juga dapat membatasi berapa lama drain dapat berjalan:

270 

271* **Amazon ECS on Fargate**: `stopTimeout` memungkinkan paling banyak 120 detik

272* **Cloud Run**: menghentikan instance 10 detik setelah `SIGTERM`, jadi aliran terbuka mendapat paling banyak 10 detik di sana, apa pun jendela drain-nya

273 

274Ketika jendela drain berakhir dengan permintaan masih terbuka, gateway mencatat peringatan yang berisi `drain window over after`, menghitung permintaan yang dipotongnya, dan menamai kedua pengaturan untuk dinaikkan.

211 275 

212Migrasi adalah append-only, jadi rollback ke biner sebelumnya yang mengetahui lebih sedikit migrasi aman; itu mengabaikan baris ekstra. Rollback juga memvalidasi ulang YAML terhadap skema biner yang lebih lama, jadi konfigurasi yang mengadopsi kunci yang diperkenalkan oleh rilis yang lebih baru gagal boot pada yang lebih lama. Hapus kunci baru sebelum rollback.276Migrasi adalah append-only, jadi rollback ke biner sebelumnya yang mengetahui lebih sedikit migrasi aman; itu mengabaikan baris ekstra. Rollback juga memvalidasi ulang YAML terhadap skema biner yang lebih lama, jadi konfigurasi yang mengadopsi kunci yang diperkenalkan oleh rilis yang lebih baru gagal boot pada yang lebih lama. Hapus kunci baru sebelum rollback.

213 277 


239 303 

240* Pengembang menyimpan JWT berumur pendek bukan kunci upstream mentah. Leg CLI-ke-gateway menggunakan hibah perangkat RFC 8628, dan pertukaran kode otorisasi gateway dengan IdP menjalankan PKCE dalam konfigurasi default, jadi kode otorisasi IdP yang disadap tidak berguna.304* Pengembang menyimpan JWT berumur pendek bukan kunci upstream mentah. Leg CLI-ke-gateway menggunakan hibah perangkat RFC 8628, dan pertukaran kode otorisasi gateway dengan IdP menjalankan PKCE dalam konfigurasi default, jadi kode otorisasi IdP yang disadap tidak berguna.

241* Halaman verifikasi perangkat memberlakukan POST asal-sama dan batas laju per-IP per RFC 8628 §5.1. Lihat [Resistansi brute-force kode pengguna](#user-code-brute-force-resistance).305* Halaman verifikasi perangkat memberlakukan POST asal-sama dan batas laju per-IP per RFC 8628 §5.1. Lihat [Resistansi brute-force kode pengguna](#user-code-brute-force-resistance).

242* Permintaan keluar melalui penjaga server-side request forgery (SSRF) yang menyelesaikan DNS, memblokir alamat link-lokal dan cloud-metadata ditambah loopback secara default, dan menyematkan koneksi ke IP yang diselesaikan, jadi URL yang dipengaruhi operator seperti IdP dan tujuan OTLP tidak dapat dialihkan ke endpoint metadata cloud. Rentang pribadi RFC 1918 secara sengaja diizinkan, karena IdP dan kolektor OTLP biasanya tinggal di IP pribadi. Atur `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` dalam lingkungan gateway hanya ketika sesuatu yang harus dijangkau gateway secara sah tinggal di loopback, seperti IdP pengembangan lokal atau kolektor OTLP sidecar di `localhost`. Variabel ini melonggarkan blok loopback untuk setiap URL yang dikonfigurasi operator dan juga melewati peringatan waktu boot yang memeriksa apakah pod dapat menjangkau endpoint metadata cloud, jadi lebih baik memberikan kolektor alamat internal sendiri.306* Permintaan gateway ke IdP Anda, kolektor OTLP Anda, dan upstream `provider: anthropic` melalui penjaga server-side request forgery (SSRF) yang menyelesaikan DNS, memblokir alamat link-lokal dan cloud-metadata ditambah loopback secara default, dan menyematkan koneksi ke IP yang diselesaikan, jadi URL yang dipengaruhi operator tidak dapat dialihkan ke endpoint metadata cloud. Rentang pribadi RFC 1918 secara sengaja diizinkan, karena IdP dan kolektor OTLP biasanya tinggal di IP pribadi. Untuk penyedia lainnya, gateway menolak `base_url` yang menamai salah satu alamat tersebut atau nama host metadata saat memuat konfigurasi, dan SDK penyedia kemudian terhubung tanpa pemeriksaan DNS.

307 

308 Jika Anda mengaktifkan [egress hanya-proxy](/docs/id/claude-apps-gateway-config#proxy-only-egress), pemeriksaan alamat itu berpindah ke proxy forward Anda: gateway menyerahkan nama host dan daftar izin proxy harus menolak tujuan tersebut.

309 

310 Atur `CLAUDE_GATEWAY_ALLOW_LOOPBACK=1` dalam lingkungan gateway hanya ketika sesuatu yang harus dijangkau gateway secara sah tinggal di loopback, seperti IdP pengembangan lokal atau kolektor OTLP sidecar di `localhost`. Variabel ini melonggarkan blok loopback untuk setiap URL yang dikonfigurasi operator dan juga melewati peringatan waktu boot yang memeriksa apakah pod dapat menjangkau endpoint metadata cloud, jadi lebih baik memberikan kolektor alamat internal sendiri.

243 311 

244Jika Anda menambahkan kontrol egress Anda sendiri, gateway harus menjangkau server metadata kapan pun menggunakan kredensial metadata instance seperti identitas beban kerja.312Jika Anda menambahkan kontrol egress Anda sendiri, gateway harus menjangkau server metadata kapan pun menggunakan kredensial metadata instance seperti identitas beban kerja.

245 313 


254 322 

255`user_code` yang diketik pengembang ke halaman verifikasi `/device` adalah 8 karakter yang diambil dari alfabet 20 karakter, yang menghasilkan 20⁸ atau sekitar 2,56×10¹⁰ kombinasi, dan berakhir setelah 10 menit.323`user_code` yang diketik pengembang ke halaman verifikasi `/device` adalah 8 karakter yang diambil dari alfabet 20 karakter, yang menghasilkan 20⁸ atau sekitar 2,56×10¹⁰ kombinasi, dan berakhir setelah 10 menit.

256 324 

257Gateway menerapkan batas laju per-IP pada endpoint hibah perangkat, dapat dikonfigurasi melalui [`rate_limits`](/docs/id/claude-apps-gateway-config#http-tuning). Naikkan batas jika banyak pengembang masuk dari alamat NAT korporat bersama tunggal. Batas hanya berlaku pada aliran masuk, bukan pada inferensi.325Gateway menerapkan batas laju per-IP pada endpoint hibah perangkat, dapat dikonfigurasi melalui [`rate_limits`](/docs/id/claude-apps-gateway-config#http-tuning). Naikkan batas jika banyak pengembang masuk dari alamat NAT korporat bersama tunggal. [Peluncuran besar](#large-rollouts) menunjukkan cara mengukurnya. Batas hanya berlaku pada aliran masuk, bukan pada inferensi.

258 326 

259<h3 id="compliance-posture">327<h3 id="compliance-posture">

260 Postur kepatuhan328 Postur kepatuhan


284Stderr gateway mencakup aliran acara audit, log audit mencatat identitas pengembang, dan file debug mencatat output hook dan server MCP dari mesin pengembang. Tinjau dan redaksi ini sebelum memposting ke issue publik.352Stderr gateway mencakup aliran acara audit, log audit mencatat identitas pengembang, dan file debug mencatat output hook dan server MCP dari mesin pengembang. Tinjau dan redaksi ini sebelum memposting ke issue publik.

285 353 

286| Gejala | Penyebab | Perbaikan |354| Gejala | Penyebab | Perbaikan |

287| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |355| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

288| `/login` pengembang menampilkan pemilih akun standar bukan layar **Cloud gateway** | `forceLoginMethod` atau `forceLoginGatewayUrl` tidak diatur dalam pengaturan terkelola pada mesin itu | Sebarkan [file pengaturan terkelola](/docs/id/claude-apps-gateway#set-the-gateway-url) ke perangkat; `/login` membaca URL gateway dari sana |356| `/login` pengembang menampilkan pemilih akun standar bukan layar **Cloud gateway** | `forceLoginMethod` atau `forceLoginGatewayUrl` tidak diatur dalam pengaturan terkelola pada mesin itu | Sebarkan [file pengaturan terkelola](/docs/id/claude-apps-gateway#set-the-gateway-url) ke perangkat; `/login` membaca URL gateway dari sana |

289| Permintaan pengembang gagal dengan `Not signed in to the Cloud gateway — run /login.` | Pengaturan terkelola mesin menetapkan `forceLoginMethod: "gateway"` atau `forceLoginGatewayUrl`, dan sesi tidak memiliki masuk gateway. Login claude.ai yang tersisa tidak memenuhi persyaratan. | Minta pengembang menjalankan `/login` dan menyelesaikan masuk gateway. Lihat juga [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |357| Permintaan pengembang gagal dengan `Not signed in to the Cloud gateway — run /login.` | Pengaturan terkelola mesin menetapkan `forceLoginMethod: "gateway"` atau `forceLoginGatewayUrl`, dan sesi tidak memiliki masuk gateway. Login claude.ai yang tersisa tidak memenuhi persyaratan. | Minta pengembang menjalankan `/login` dan menyelesaikan masuk gateway. Lihat juga [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

290| Claude Desktop melaporkan bahwa konfigurasi bootstrap-nya tidak dapat diambil | `/user/bootstrap` mengembalikan 404: kebijakan yang cocok dengan pengguna tidak membawa kunci `desktop`, atau tidak ada kebijakan yang cocok. Log audit gateway mencatat setiap penolakan sebagai `desktop_bootstrap.denied` dengan alasannya. | Tambahkan blok `desktop` ke kebijakan yang cocok dengan pengguna, atau ke lapisan dasar `match: {}`; `desktop: {}` kosong sudah cukup. Lihat [overlay Claude Desktop](/docs/id/claude-apps-gateway-config#claude-desktop-overlay). |358| Claude Desktop melaporkan bahwa konfigurasi bootstrap-nya tidak dapat diambil | `/user/bootstrap` mengembalikan 404: kebijakan yang cocok dengan pengguna tidak membawa kunci `desktop`, atau tidak ada kebijakan yang cocok. Log audit gateway mencatat setiap penolakan sebagai `desktop_bootstrap.denied` dengan alasannya. | Tambahkan blok `desktop` ke kebijakan yang cocok dengan pengguna, atau ke lapisan dasar `match: {}`; `desktop: {}` kosong sudah cukup. Lihat [overlay Claude Desktop](/docs/id/claude-apps-gateway-config#claude-desktop-overlay). |

291| Startup menampilkan `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | Build Claude Code yang diinstal mendahului dukungan gateway | Minta pengembang memperbarui Claude Code ke rilis yang mencakup dukungan Cloud gateway |359| Startup menampilkan `Gateway login is configured in managed settings, but this Claude Code build does not include Cloud gateway support.` | Build Claude Code yang diinstal mendahului dukungan gateway | Minta pengembang memperbarui Claude Code ke rilis yang mencakup dukungan Cloud gateway |

292| Startup keluar dengan `Administrator policy requires a Cloud gateway sign-in on this machine` | Lingkungan pengembang menetapkan `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN`, pengaturan mereka mengonfigurasi [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper), atau kunci API dari login Claude Console sebelumnya masih tersimpan | Minta pengembang menghapus masing-masing yang berlaku: batalkan pengaturan variabel, hapus entri `apiKeyHelper`, atau jalankan `claude auth logout` untuk menghapus kunci yang tersimpan. Kemudian minta mereka memulai `claude` dan masuk dengan `/login`. Lihat juga [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |360| Startup keluar dengan `Administrator policy requires a Cloud gateway sign-in on this machine` | Lingkungan pengembang menetapkan `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN`, pengaturan mereka mengonfigurasi [`apiKeyHelper`](/docs/id/settings-reference#apikeyhelper), atau kunci API dari login Claude Console sebelumnya masih tersimpan | Minta pengembang menghapus masing-masing yang berlaku: batalkan pengaturan variabel, hapus entri `apiKeyHelper`, atau jalankan `claude auth logout` untuk menghapus kunci yang tersimpan. Kemudian minta mereka memulai `claude` dan masuk dengan `/login`. Lihat juga [Kebijakan administrator memerlukan masuk Cloud gateway](/docs/id/errors#administrator-policy-requires-a-cloud-gateway-sign-in). |

293| Startup atau `/login` melaporkan `Claude Code may not be enabled for your organization` setelah 403 pada beban pengaturan terkelola | Gateway, atau sesuatu di depannya, menjawab permintaan `/managed/settings` dengan 403. Rute pengaturan gateway sendiri tidak pernah menjawab 403. Status berasal dari pemeriksaan IP [`access_control`](/docs/id/claude-apps-gateway-config#http-tuning) atau dari proxy atau WAF di depan gateway. Log audit mencatat penolakan pemeriksaan IP sebagai `access.denied` dengan alasannya. Pengembang tetap masuk. | Periksa log audit untuk `access.denied` pada waktu kegagalan dan perbaiki daftar `access_control` atau front end, lalu minta pengembang memulai `claude` lagi |361| Startup atau `/login` melaporkan `Claude Code may not be enabled for your organization` setelah 403 pada beban pengaturan terkelola | Gateway, atau sesuatu di depannya, menjawab permintaan `/managed/settings` dengan 403. Rute pengaturan gateway sendiri tidak pernah menjawab 403. Status berasal dari pemeriksaan IP [`access_control`](/docs/id/claude-apps-gateway-config#http-tuning) atau dari proxy atau WAF di depan gateway. Log audit mencatat penolakan pemeriksaan IP sebagai `access.denied` dengan alasannya. Pengembang tetap masuk. | Periksa log audit untuk `access.denied` pada waktu kegagalan dan perbaiki daftar `access_control` atau front end, lalu minta pengembang memulai `claude` lagi |

362| CLI `/login`: `The gateway is limiting sign-in attempts right now`, atau `Request failed with status code 429` pada versi yang lebih lama. Halaman `/device` mungkin menampilkan `Too many attempts` kepada pengembang yang belum pernah mencoba sebelumnya | Batas laju masuk per-IP tercapai. Baik `listen.trusted_proxies` tidak mencakup penyeimbang beban, jadi setiap pengembang berbagi alamatnya, atau banyak pengembang berbagi alamat keluar NAT atau VPN. Acara audit dengan `result: rate_limited` menunjukkan satu atau beberapa nilai `client_ip` yang sama. | Atur `listen.trusted_proxies` ke rentang sumber penyeimbang beban terlebih dahulu, lalu naikkan `rate_limits` jika pengembang masih berbagi alamat. Lihat [Peluncuran besar-besaran](#large-rollouts). |

294| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Nama host gateway diselesaikan ke setidaknya satu alamat IP publik. Claude Code memeriksa setiap alamat yang diselesaikan dan memerlukan setiap satu menjadi pribadi. Penyebab umum adalah nama dual-stack di mana satu keluarga diselesaikan ke alamat publik, termasuk penyeimbang beban dual-stack internal AWS, yang mengembalikan alamat AAAA rentang publik. | Minta nama gateway hanya diselesaikan ke alamat pribadi pada mesin pengembang. Untuk nama dual-stack, lepaskan catatan rentang publik atau layani nama DNS internal saja. Lihat [prasyarat jaringan pribadi](/docs/id/claude-apps-gateway#prerequisites). Jika alamat adalah ruang publik yang dimiliki dan digunakan organisasi Anda secara internal, [deklarasikan blok itu](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) sebagai gantinya. |363| CLI `/login`: `Gateway hosts must be on your organization's private network; <host> resolves to the public (or unrecognized) address <ip>` | Nama host gateway diselesaikan ke setidaknya satu alamat IP publik. Claude Code memeriksa setiap alamat yang diselesaikan dan memerlukan setiap satu menjadi pribadi. Penyebab umum adalah nama dual-stack di mana satu keluarga diselesaikan ke alamat publik, termasuk penyeimbang beban dual-stack internal AWS, yang mengembalikan alamat AAAA rentang publik. | Minta nama gateway hanya diselesaikan ke alamat pribadi pada mesin pengembang. Untuk nama dual-stack, lepaskan catatan rentang publik atau layani nama DNS internal saja. Lihat [prasyarat jaringan pribadi](/docs/id/claude-apps-gateway#prerequisites). Jika alamat adalah ruang publik yang dimiliki dan digunakan organisasi Anda secara internal, [deklarasikan blok itu](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) sebagai gantinya. |

295| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` atau `HTTP_PROXY` berlaku untuk host gateway dan nama host proxy diselesaikan ke alamat publik. Proxy yang nama hostnya hanya diselesaikan ke alamat pribadi diizinkan dan tidak memicu kesalahan ini | Tambahkan host gateway ke `NO_PROXY` pada mesin pengembang sehingga koneksi langsung, atau gunakan proxy yang nama hostnya diselesaikan ke alamat pribadi. Pesan menamai entri `NO_PROXY` yang tepat untuk ditambahkan |364| CLI `/login`: `Gateway login would go through proxy <proxy>, which is not on a private network` | `HTTPS_PROXY` atau `HTTP_PROXY` berlaku untuk host gateway dan nama host proxy diselesaikan ke alamat publik. Proxy yang nama hostnya hanya diselesaikan ke alamat pribadi diizinkan dan tidak memicu kesalahan ini | Tambahkan host gateway ke `NO_PROXY` pada mesin pengembang sehingga koneksi langsung, atau gunakan proxy yang nama hostnya diselesaikan ke alamat pribadi. Pesan menamai entri `NO_PROXY` yang tepat untuk ditambahkan |

296| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | Gateway berada di blok yang dideklarasikan dalam [`gatewayInternalNetworks`](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), dan mesin pengembang mencapainya dari alamat di luar blok itu: kumpulan alamat VPN, segmen NAT kontainer atau WSL2, atau jaringan yang bukan milik Anda | Minta pengembang menjalankan `/login` dari OS host di jaringan Anda. Jika alamat yang ditampilkan juga merupakan ruang publik organisasi Anda sendiri, ganti entri gateway dengan blok yang mencakup keduanya, hingga `/8`; entri kedua yang tumpang tindih ditolak |365| CLI `/login`: `Claude Code only signs in to <host> from inside its declared network <block> (managed settings), and this machine is connecting from <ip>, outside it` | Gateway berada di blok yang dideklarasikan dalam [`gatewayInternalNetworks`](/docs/id/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own), dan mesin pengembang mencapainya dari alamat di luar blok itu: kumpulan alamat VPN, segmen NAT kontainer atau WSL2, atau jaringan yang bukan milik Anda | Minta pengembang menjalankan `/login` dari OS host di jaringan Anda. Jika alamat yang ditampilkan juga merupakan ruang publik organisasi Anda sendiri, ganti entri gateway dengan blok yang mencakup keduanya, hingga `/8`; entri kedua yang tumpang tindih ditolak |


301| 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` |370| 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` |

302| 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`. |371| 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`. |

303| 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) |372| 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) |

304| 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. |373| 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. |

305| 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 |374| 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 |

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

306| `/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`. |376| `/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`. |

307| 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`. |377| 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`. |

308| 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. |378| 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. |

309| Setiap permintaan Amazon Bedrock mengembalikan 502; log menunjukkan `Could not load credentials from any providers` | Di EC2, batas hop default IMDSv2 sebesar 1 memblokir permintaan metadata instance dari dalam kontainer. Boot dan `/readyz` lulus bagaimanapun karena AWS SDK menyelesaikan kredensial instance pada permintaan pertama, bukan pada konstruksi klien | Naikkan batas hop dengan `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, atau atur dalam template peluncuran. Perubahan berlaku untuk setiap kontainer pada instance. Lebih suka peran tugas ECS di mana tersedia, yang membaca kredensial dari endpoint kredensial kontainer ECS dan menghindari perubahan sepenuhnya, atau terapkan perubahan pada instance gateway khusus untuk membatasi eksposur. |379| Setiap permintaan Amazon Bedrock mengembalikan 502; log menunjukkan `Could not load credentials from any providers` | Di EC2, batas hop default IMDSv2 sebesar 1 memblokir permintaan metadata instance dari dalam kontainer. Boot dan `/readyz` lulus bagaimanapun karena AWS SDK menyelesaikan kredensial instance pada permintaan pertama, bukan pada konstruksi klien | Naikkan batas hop dengan `aws ec2 modify-instance-metadata-options --instance-id <id> --http-put-response-hop-limit 2`, atau atur dalam template peluncuran. Perubahan berlaku untuk setiap kontainer pada instance. Lebih suka peran tugas ECS di mana tersedia, yang membaca kredensial dari endpoint kredensial kontainer ECS dan menghindari perubahan sepenuhnya, atau terapkan perubahan pada instance gateway khusus untuk membatasi eksposur. |

380| Pada beban puncak, respons lambat dimulai atau tampak hang, atau gagal dengan 502 `all upstreams failed` sementara upstream sehat | Replika memiliki lebih banyak permintaan terbuka daripada yang dikirimnya upstream sekaligus, jadi permintaan ekstra menunggu di dalam gateway. Pada upstream `provider: anthropic`, permintaan yang menunggu lebih lama dari `timeouts.upstream_ttfb_ms` menyerah pada upstream itu, yang menghasilkan 502 ketika tidak ada upstream yang melayaninya kemudian. Log menampilkan peringatan yang berisi `client requests are open`. | Tambahkan replika, atau naikkan batas pada setiap replika. Lihat [Permintaan upstream bersamaan](#concurrent-upstream-requests). |

310| Kesalahan IdP: unknown or unsupported scope | IdP menolak scope yang tidak dikenalinya | Atur `oidc.scopes` ke tepat daftar yang diterima IdP Anda; itu harus menyertakan `openid`. Default adalah `openid profile email offline_access`. |381| Kesalahan IdP: unknown or unsupported scope | IdP menolak scope yang tidak dikenalinya | Atur `oidc.scopes` ke tepat daftar yang diterima IdP Anda; itu harus menyertakan `openid`. Default adalah `openid profile email offline_access`. |

311| Sesi tidak secara diam-diam memperbarui setelah menetapkan `oidc.scopes` | `offline_access` dijatuhkan dari override | Tambahkan `offline_access` kembali jika IdP Anda mendukungnya. Tanpa token refresh, pengembang menjalankan kembali login browser setiap `session.ttl_hours`. |382| Sesi tidak secara diam-diam memperbarui setelah menetapkan `oidc.scopes` | `offline_access` dijatuhkan dari override | Tambahkan `offline_access` kembali jika IdP Anda mendukungnya. Tanpa token refresh, pengembang menjalankan kembali login browser setiap `session.ttl_hours`. |

312| Browser menampilkan "This request came from another site and was blocked" | POST formulir lintas situs, diblokir sebagai perlindungan CSRF. Diharapkan untuk halaman tertanam atau diproksi | Buka tautan verifikasi secara langsung |383| Browser menampilkan "This request came from another site and was blocked" | POST formulir lintas situs, diblokir sebagai perlindungan CSRF. Diharapkan untuk halaman tertanam atau diproksi | Buka tautan verifikasi secara langsung |

Details

504| Permintaan Bedrock mengembalikan `403 AccessDeniedException` | Akun belum mengirimkan formulir kasus penggunaan Anthropic satu kali, langganan AWS Marketplace otomatis yang dimulai pada invoke pertama akun belum selesai, atau kebijakan peran tugas kehilangan ARN profil inferensi atau model dasar | Kirimkan formulir kasus penggunaan dari katalog Model konsol Bedrock; jika baru saja dikirimkan atau ini adalah invoke pertama akun, coba lagi setelah beberapa menit. Berikan `bedrock:InvokeModel` dan `bedrock:InvokeModelWithResponseStream` pada kedua keluarga ARN. |504| Permintaan Bedrock mengembalikan `403 AccessDeniedException` | Akun belum mengirimkan formulir kasus penggunaan Anthropic satu kali, langganan AWS Marketplace otomatis yang dimulai pada invoke pertama akun belum selesai, atau kebijakan peran tugas kehilangan ARN profil inferensi atau model dasar | Kirimkan formulir kasus penggunaan dari katalog Model konsol Bedrock; jika baru saja dikirimkan atau ini adalah invoke pertama akun, coba lagi setelah beberapa menit. Berikan `bedrock:InvokeModel` dan `bedrock:InvokeModelWithResponseStream` pada kedua keluarga ARN. |

505| Bedrock mengembalikan `ValidationException` mengatakan throughput on-demand tidak didukung | Entri `models:` khusus memetakan ke ID model dasar telanjang yang hanya dilayani wilayah melalui profil inferensi | Petakan model ke ID profil inferensi lintas wilayahnya (`us.anthropic.*`) sebagai gantinya; katalog bawaan sudah melakukan ini |505| Bedrock mengembalikan `ValidationException` mengatakan throughput on-demand tidak didukung | Entri `models:` khusus memetakan ke ID model dasar telanjang yang hanya dilayani wilayah melalui profil inferensi | Petakan model ke ID profil inferensi lintas wilayahnya (`us.anthropic.*`) sebagai gantinya; katalog bawaan sudah melakukan ini |

506| Tugas ECS berhenti dengan `ResourceInitializationError` sebelum gateway mencatat apa pun | Peran eksekusi tidak dapat membaca rahasia Secrets Manager, atau subnet pribadi tidak memiliki jalur ke Secrets Manager atau ECR | Berikan `secretsmanager:GetSecretValue` pada ARN tiga rahasia `gateway-` ke peran eksekusi, dan sediakan egress melalui gateway NAT, atau, tanpanya, endpoint antarmuka untuk Secrets Manager, ECR, dan CloudWatch Logs, yang driver `awslogs` butuhkan pada tahap yang sama, ditambah endpoint gateway S3 |506| Tugas ECS berhenti dengan `ResourceInitializationError` sebelum gateway mencatat apa pun | Peran eksekusi tidak dapat membaca rahasia Secrets Manager, atau subnet pribadi tidak memiliki jalur ke Secrets Manager atau ECR | Berikan `secretsmanager:GetSecretValue` pada ARN tiga rahasia `gateway-` ke peran eksekusi, dan sediakan egress melalui gateway NAT, atau, tanpanya, endpoint antarmuka untuk Secrets Manager, ECR, dan CloudWatch Logs, yang driver `awslogs` butuhkan pada tahap yang sama, ditambah endpoint gateway S3 |

507| Boot gateway keluar dengan kesalahan timeout koneksi Postgres | Grup keamanan database tidak mengakui grup keamanan gateway di 5432, atau layanan berjalan di luar VPC database; toko berhenti menunggu setelah 5 detik | Izinkan 5432 dari grup keamanan gateway di database, dan jalankan layanan di VPC yang sama dengan grup subnet DB |507| Boot gateway keluar dengan kesalahan timeout koneksi Postgres | Grup keamanan database tidak mengakui grup keamanan gateway di 5432, atau layanan berjalan di luar VPC database | Izinkan 5432 dari grup keamanan gateway di database, dan jalankan layanan di VPC yang sama dengan grup subnet DB |

508| Boot gateway keluar dengan kesalahan verifikasi sertifikat TLS Postgres | String koneksi menetapkan `sslmode=verify-full` tetapi gambar tidak mempercayai bundel RDS CA: bundel tidak disalin ke dalam gambar, atau `NODE_EXTRA_CA_CERTS` tidak menunjuk ke sana | Tambahkan dua baris Dockerfile langkah build yang menyalin bundel dan menetapkan `NODE_EXTRA_CA_CERTS`, kemudian bangun kembali, dorong di bawah tag baru, dan terapkan kembali |508| Boot gateway keluar dengan kesalahan verifikasi sertifikat TLS Postgres | String koneksi menetapkan `sslmode=verify-full` tetapi gambar tidak mempercayai bundel RDS CA: bundel tidak disalin ke dalam gambar, atau `NODE_EXTRA_CA_CERTS` tidak menunjuk ke sana | Tambahkan dua baris Dockerfile langkah build yang menyalin bundel dan menetapkan `NODE_EXTRA_CA_CERTS`, kemudian bangun kembali, dorong di bawah tag baru, dan terapkan kembali |

509| Respons streaming jatuh di tengah aliran setelah periode tenang | Gateway yang lebih lama dari v2.1.229 di upstream Bedrock atau Claude Platform di AWS mengirimkan tidak ada saat upstream tenang, misalnya selama pemikiran diperpanjang tanpa output yang dialirkan. ALB menutup koneksi setelah 60 detik tanpa data secara default, jadi memotong aliran di celah itu. Gateway v2.1.229 dan yang lebih baru menjaga aliran tenang di bawah timeout itu: di upstream tersebut gateway memancarkan acara SSE `ping` sekali sekitar 15 detik berlalu tanpa data aliran, dan di upstream API Anthropic itu meneruskan ping API sendiri | Perbarui gateway ke v2.1.229 atau lebih baru, atau atur atribut `idle_timeout.timeout_seconds` ke `3600`, melalui `modify-load-balancer-attributes` atau anotasi `load-balancer-attributes` Ingress di EKS |509| Respons streaming jatuh di tengah aliran setelah periode tenang | Gateway yang lebih lama dari v2.1.229 di upstream Bedrock atau Claude Platform di AWS mengirimkan tidak ada saat upstream tenang, misalnya selama pemikiran diperpanjang tanpa output yang dialirkan. ALB menutup koneksi setelah 60 detik tanpa data secara default, jadi memotong aliran di celah itu. Gateway v2.1.229 dan yang lebih baru menjaga aliran tenang di bawah timeout itu: di upstream tersebut gateway memancarkan acara SSE `ping` sekali sekitar 15 detik berlalu tanpa data aliran, dan di upstream API Anthropic itu meneruskan ping API sendiri | Perbarui gateway ke v2.1.229 atau lebih baru, atau atur atribut `idle_timeout.timeout_seconds` ke `3600`, melalui `modify-load-balancer-attributes` atau anotasi `load-balancer-attributes` Ingress di EKS |

510 510 

Details

164 Arsipkan lingkungan164 Arsipkan lingkungan

165</h3>165</h3>

166 166 

167Untuk mengarsipkan lingkungan, buka untuk diedit dan pilih **Archive**. Anda tidak dapat menghapus lingkungan, hanya mengarsipkannya.167Untuk mengarsipkan salah satu lingkungan Anda sendiri, buka untuk diedit dan pilih **Archive**. Owner mengarsipkan [lingkungan bersama](#organization-shared-environments) dari halaman **Cloud environments** di pengaturan admin. Anda tidak dapat menghapus lingkungan, hanya mengarsipkannya.

168 168 

169Pengarsipan mempengaruhi sesi baru, bukan yang sedang berjalan:169Pengarsipan mempengaruhi sesi baru, bukan yang sedang berjalan:

170 170 


177 Lingkungan bersama organisasi177 Lingkungan bersama organisasi

178</h3>178</h3>

179 179 

180Pada paket Team dan Enterprise, Owner dapat membuat lingkungan cloud yang dibagikan dengan setiap anggota organisasi. Peran yang sama mengelola segalanya di halaman admin **Cloud environments**, termasuk [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments); peran Admin tidak dapat membuka halaman. Daftar lengkap peran yang dapat membukanya adalah yang untuk [mengelola pengaturan yang dikelola server](/docs/id/server-managed-settings#access-control). Lingkungan bersama muncul di pemilih lingkungan setiap anggota bersama dengan yang pribadi, sehingga tim dapat menstandarkan satu konfigurasi alih-alih setiap anggota membuat ulangnya.180Pada paket Team dan Enterprise, Owner dapat membuat lingkungan cloud yang dibagikan dengan setiap anggota organisasi. Peran yang sama mengelola segalanya di halaman admin **Cloud environments**, termasuk [lingkungan yang di-host sendiri](/docs/id/self-hosted-environments); peran Admin tidak dapat membuka halaman. Daftar lengkap peran yang dapat membukanya adalah yang untuk [mengelola pengaturan yang dikelola server](/docs/id/server-managed-settings#access-control).

181 181 

182Buat, edit, dan arsipkan lingkungan bersama dari halaman **Cloud environments** di [pengaturan admin](https://claude.ai/admin-settings). Lingkungan bersama juga terbuka dari [pemilih lingkungan](#configure-your-environment) di [claude.ai/code](https://claude.ai/code): Owner dapat mengeditnya di sana. Anggota lain melihatnya read-only. Setiap lingkungan bersama memiliki nama, [tingkat akses jaringan](#access-levels), [variabel lingkungan](#set-environment-variables) dalam format `.env`, dan [skrip setup](#setup-scripts). Owner memilih [lingkungan default](#the-default-environment) organisasi secara terpisah, di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).182Lingkungan bersama muncul di [pemilih lingkungan](#configure-your-environment) setiap anggota di bawah judul **Organization**, setelah lingkungan pribadi anggota di bawah **Personal**, sehingga tim dapat menstandarkan satu konfigurasi alih-alih setiap anggota membuat ulangnya. Memilih ikon pengaturan lingkungan bersama di sana membuka ringkasan konfigurasinya yang hanya dapat dibaca untuk setiap anggota, termasuk Owner.

183 

184Owner membuat lingkungan tersedia untuk organisasi dengan salah satu dari dua cara:

185 

186* **Buat lingkungan bersama**: gunakan halaman **Cloud environments** di [pengaturan admin](https://claude.ai/admin-settings), yang juga merupakan tempat Owner mengedit dan mengarsipkan lingkungan bersama. Setiap lingkungan memiliki nama, [tingkat akses jaringan](#access-levels), [variabel lingkungan](#set-environment-variables) dalam format `.env`, dan [skrip setup](#setup-scripts).

187* **Bagikan lingkungan pribadi**: buka salah satu lingkungan Anda sendiri untuk diedit di pemilih lingkungan, kemudian bagikan dari baris **Who can use it**. Lingkungan menyimpan ID-nya, jadi sesi dan routine yang sudah menggunakannya tidak terpengaruh, dan setiap anggota kemudian dapat melihatnya dan memulai sesi di dalamnya.

188 

189Owner memilih [lingkungan default](#the-default-environment) organisasi secara terpisah, di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

183 190 

184Sesi setiap anggota di lingkungan bersama membaca variabelnya, jadi jangan sertakan rahasia di dalamnya. [Kredensial API](#add-api-credentials), yang memberikan sesi kunci yang tidak dapat dibacanya, tidak tersedia pada paket Team atau Enterprise namun.191Sesi setiap anggota di lingkungan bersama membaca variabelnya, jadi jangan sertakan rahasia di dalamnya. [Kredensial API](#add-api-credentials), yang memberikan sesi kunci yang tidak dapat dibacanya, tidak tersedia pada paket Team atau Enterprise namun.

185 192 


198 205 

199Setiap lingkungan menetapkan satu tingkat akses jaringan, yang mengontrol koneksi keluar yang dapat dibuat sesinya. Tingkat default, **Trusted**, memungkinkan registri paket dan [domain yang diizinkan lainnya](#default-allowed-domains); **Custom** mengambil daftar domain Anda sendiri.206Setiap lingkungan menetapkan satu tingkat akses jaringan, yang mengontrol koneksi keluar yang dapat dibuat sesinya. Tingkat default, **Trusted**, memungkinkan registri paket dan [domain yang diizinkan lainnya](#default-allowed-domains); **Custom** mengambil daftar domain Anda sendiri.

200 207 

201Untuk mengubah akses jaringan lingkungan, [buka untuk diedit](#configure-your-environment) dan gunakan pemilih **Network access** di dialog. Ikon cloud yang membuka pemilih muncul di permukaan aplikasi yang tercantum di bawah [Lingkungan Default](#the-default-environment) dan di [editor routine](/docs/id/routines#environments-and-network-access); lingkungan pribadi tidak memiliki halaman terpisah di pengaturan akun claude.ai Anda.208Untuk mengubah akses jaringan lingkungan, [buka untuk diedit](#configure-your-environment) dan gunakan pemilih **Network access** di dialog. Lingkungan [bersama](#organization-shared-environments) membuka read-only di sana, jadi Owner mengubah akses jaringannya dari halaman **Cloud environments** di [pengaturan admin](https://claude.ai/admin-settings) sebagai gantinya. Ikon cloud yang membuka pemilih muncul di permukaan aplikasi yang tercantum di bawah [Lingkungan Default](#the-default-environment) dan di [editor routine](/docs/id/routines#environments-and-network-access); lingkungan pribadi tidak memiliki halaman terpisah di pengaturan akun claude.ai Anda.

202 209 

203<Note>210<Note>

204 Konektor MCP yang Anda aktifkan pada sesi atau routine bekerja tanpa menambahkan host mereka ke **Allowed domains**, karena lalu lintas konektor berjalan melalui server Anthropic daripada jaringan sesi. Ini bergantung pada saluran yang terikat Anthropic yang sama yang dicatat di bawah [Security and isolation](/docs/id/claude-code-on-the-web#security-and-isolation). Matikan konektor apa pun yang tidak Anda butuhkan untuk membatasi alat mana yang dapat dijangkau Claude.211 Konektor MCP yang Anda aktifkan pada sesi atau routine bekerja tanpa menambahkan host mereka ke **Allowed domains**, karena lalu lintas konektor berjalan melalui server Anthropic daripada jaringan sesi. Ini bergantung pada saluran yang terikat Anthropic yang sama yang dicatat di bawah [Security and isolation](/docs/id/claude-code-on-the-web#security-and-isolation). Matikan konektor apa pun yang tidak Anda butuhkan untuk membatasi alat mana yang dapat dijangkau Claude.

env-vars.md +8 −4

Details

152| `ANTHROPIC_BEDROCK_BASE_URL` | Ganti URL endpoint Amazon Bedrock. Gunakan untuk endpoint Amazon Bedrock khusus atau saat merutekan melalui [gateway LLM](/docs/id/llm-gateway). Lihat [Amazon Bedrock](/docs/id/amazon-bedrock) |152| `ANTHROPIC_BEDROCK_BASE_URL` | Ganti URL endpoint Amazon Bedrock. Gunakan untuk endpoint Amazon Bedrock khusus atau saat merutekan melalui [gateway LLM](/docs/id/llm-gateway). Lihat [Amazon Bedrock](/docs/id/amazon-bedrock) |

153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Ganti URL endpoint Amazon Bedrock Mantle. Lihat [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) |153| `ANTHROPIC_BEDROCK_MANTLE_BASE_URL` | Ganti URL endpoint Amazon Bedrock Mantle. Lihat [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint) |

154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Awalan profil inferensi lintas wilayah (`us`, `eu`, `apac`, `jp`, `au`, atau `global`) yang Claude Code coba terlebih dahulu sebagai pengganti yang berasal dari wilayah AWS. Diabaikan di wilayah AWS GovCloud. Memerlukan Claude Code v2.1.224 atau lebih baru. Lihat [Amazon Bedrock](/docs/id/amazon-bedrock#cross-region-inference-profile-prefixes) |154| `ANTHROPIC_BEDROCK_REGION_PREFIX` | Awalan profil inferensi lintas wilayah (`us`, `eu`, `apac`, `jp`, `au`, atau `global`) yang Claude Code coba terlebih dahulu sebagai pengganti yang berasal dari wilayah AWS. Diabaikan di wilayah AWS GovCloud. Memerlukan Claude Code v2.1.224 atau lebih baru. Lihat [Amazon Bedrock](/docs/id/amazon-bedrock#cross-region-inference-profile-prefixes) |

155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Tingkat layanan](/docs/id/amazon-bedrock#service-tiers) Amazon Bedrock (`default`, `flex`, atau `priority`). Dikirim sebagai header `X-Amzn-Bedrock-Service-Tier`. Lihat [Amazon Bedrock](/docs/id/amazon-bedrock#service-tiers) |155| `ANTHROPIC_BEDROCK_SERVICE_TIER` | [Tingkat layanan](https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html) Amazon Bedrock (`default`, `flex`, atau `priority`). Dikirim sebagai header `X-Amzn-Bedrock-Service-Tier`. Lihat [Amazon Bedrock](/docs/id/amazon-bedrock#service-tiers) |

156| `ANTHROPIC_BETAS` | Daftar nilai header `anthropic-beta` tambahan yang dipisahkan koma untuk disertakan dalam permintaan API. Claude Code sudah mengirim header beta yang dibutuhkannya; gunakan ini untuk memilih [beta API Anthropic](https://platform.claude.com/docs/en/api/beta-headers) sebelum Claude Code menambahkan dukungan asli. Tidak seperti [flag `--betas`](/docs/id/cli-reference#cli-flags), yang memerlukan autentikasi kunci API, variabel ini bekerja dengan semua metode auth termasuk langganan Claude.ai |156| `ANTHROPIC_BETAS` | Daftar nilai header `anthropic-beta` tambahan yang dipisahkan koma untuk disertakan dalam permintaan API. Claude Code sudah mengirim header beta yang dibutuhkannya; gunakan ini untuk memilih [beta API Anthropic](https://platform.claude.com/docs/en/api/beta-headers) sebelum Claude Code menambahkan dukungan asli. Tidak seperti [flag `--betas`](/docs/id/cli-reference#cli-flags), yang memerlukan autentikasi kunci API, variabel ini bekerja dengan semua metode auth termasuk langganan Claude.ai |

157| `ANTHROPIC_CUSTOM_HEADERS` | Header khusus untuk ditambahkan ke permintaan (format `Name: Value`, dipisahkan baris baru untuk beberapa header). Jika nama atau nilai berisi karakter yang tidak dapat dibawa header HTTP, seperti tanda kutip melengkung atau spasi lebar nol, permintaan gagal dengan kesalahan yang mengidentifikasi pasangan berdasarkan posisi. Memerlukan Claude Code v2.1.227 atau lebih baru. [Nilai header permintaan tidak valid](/docs/id/errors#invalid-request-header-value) mencantumkan set karakter yang tepat dan tempat pemeriksaan berjalan. Nilai yang menetapkan kredensial, org atau tenant, perutean, atau header perilaku API, seperti `Authorization` atau `Host`, dihitung sebagai [pengaturan yang memerlukan persetujuan](/docs/id/server-managed-settings#environment-variables-and-the-approval-dialog) ketika pengaturan yang dikelola server mengirimkannya. Dari pengaturan proyek atau lokal, nilai seperti itu mengikuti [aturan untuk kapan nilai `env` diterapkan](/docs/id/settings-reference#when-claude-code-applies-env-values) |157| `ANTHROPIC_CUSTOM_HEADERS` | Header khusus untuk ditambahkan ke permintaan (format `Name: Value`, dipisahkan baris baru untuk beberapa header). Jika nama atau nilai berisi karakter yang tidak dapat dibawa header HTTP, seperti tanda kutip melengkung atau spasi lebar nol, permintaan gagal dengan kesalahan yang mengidentifikasi pasangan berdasarkan posisi. Memerlukan Claude Code v2.1.227 atau lebih baru. [Nilai header permintaan tidak valid](/docs/id/errors#invalid-request-header-value) mencantumkan set karakter yang tepat dan tempat pemeriksaan berjalan. Nilai yang menetapkan kredensial, org atau tenant, perutean, atau header perilaku API, seperti `Authorization` atau `Host`, dihitung sebagai [pengaturan yang memerlukan persetujuan](/docs/id/server-managed-settings#environment-variables-and-the-approval-dialog) ketika pengaturan yang dikelola server mengirimkannya. Dari pengaturan proyek atau lokal, nilai seperti itu mengikuti [aturan untuk kapan nilai `env` diterapkan](/docs/id/settings-reference#when-claude-code-applies-env-values) |

158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID Model untuk ditambahkan sebagai entri khusus di pemilih `/model`. Gunakan ini untuk membuat model non-standar atau spesifik gateway dapat dipilih tanpa mengganti alias bawaan. Lihat [Konfigurasi Model](/docs/id/model-config#add-a-custom-model-option) |158| `ANTHROPIC_CUSTOM_MODEL_OPTION` | ID Model untuk ditambahkan sebagai entri khusus di pemilih `/model`. Gunakan ini untuk membuat model non-standar atau spesifik gateway dapat dipilih tanpa mengganti alias bawaan. Lihat [Konfigurasi Model](/docs/id/model-config#add-a-custom-model-option) |


223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Ketika `CLAUDE_AUTO_BACKGROUND_TASKS` diaktifkan, detik antara pengingat kepada Claude untuk memeriksa [subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) yang masih berjalan. Menerima bilangan bulat biasa dari `1` hingga `86400` saja; nilai atau ejaan lain dibaca sebagai tidak diatur. Ketika tidak diatur, tidak ada pengingat check-in. Memerlukan Claude Code v2.1.248 atau lebih baru |223| `CLAUDE_CODE_AUTO_BACKGROUND_WORKER_CHECKIN_SECONDS` | Ketika `CLAUDE_AUTO_BACKGROUND_TASKS` diaktifkan, detik antara pengingat kepada Claude untuk memeriksa [subagent latar belakang](/docs/id/sub-agents#run-subagents-in-foreground-or-background) yang masih berjalan. Menerima bilangan bulat biasa dari `1` hingga `86400` saja; nilai atau ejaan lain dibaca sebagai tidak diatur. Ketika tidak diatur, tidak ada pengingat check-in. Memerlukan Claude Code v2.1.248 atau lebih baru |

224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Atur [jendela auto-compact](/docs/id/model-config#set-the-auto-compact-window) dalam token, dari `100000` hingga `1000000`. Menerima bilangan bulat biasa seperti `500000` saja: nilai seperti `500k` dibaca sebagai `500` dan dijepit ke minimum 100K. Jendela efektif juga dibatasi pada jendela konteks model. Mengambil prioritas di atas perintah `/autocompact`, flag `--autocompact`, dan pengaturan `autoCompactWindow`. Persentase `used_percentage` status line selalu diukur terhadap jendela konteks penuh model, jadi setelah variabel ini diatur, persentase itu tidak lagi menunjukkan kapan compaction akan berjalan |224| `CLAUDE_CODE_AUTO_COMPACT_WINDOW` | Atur [jendela auto-compact](/docs/id/model-config#set-the-auto-compact-window) dalam token, dari `100000` hingga `1000000`. Menerima bilangan bulat biasa seperti `500000` saja: nilai seperti `500k` dibaca sebagai `500` dan dijepit ke minimum 100K. Jendela efektif juga dibatasi pada jendela konteks model. Mengambil prioritas di atas perintah `/autocompact`, flag `--autocompact`, dan pengaturan `autoCompactWindow`. Persentase `used_percentage` status line selalu diukur terhadap jendela konteks penuh model, jadi setelah variabel ini diatur, persentase itu tidak lagi menunjukkan kapan compaction akan berjalan |

225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Ganti [koneksi IDE](/docs/id/vs-code) otomatis. Secara default, Claude Code terhubung secara otomatis ketika diluncurkan di dalam terminal terintegrasi IDE yang didukung. Atur ke `false` untuk mencegah ini. Atur ke `true` untuk memaksa upaya koneksi ketika auto-deteksi gagal, seperti ketika tmux mengaburkan terminal induk. Mengambil prioritas di atas pengaturan konfigurasi global [`autoConnectIde`](/docs/id/settings-reference#autoconnectide) |225| `CLAUDE_CODE_AUTO_CONNECT_IDE` | Ganti [koneksi IDE](/docs/id/vs-code) otomatis. Secara default, Claude Code terhubung secara otomatis ketika diluncurkan di dalam terminal terintegrasi IDE yang didukung. Atur ke `false` untuk mencegah ini. Atur ke `true` untuk memaksa upaya koneksi ketika auto-deteksi gagal, seperti ketika tmux mengaburkan terminal induk. Mengambil prioritas di atas pengaturan konfigurasi global [`autoConnectIde`](/docs/id/settings-reference#autoconnectide) |

226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Di Amazon Bedrock, Google Cloud's Agent Platform, dan Microsoft Foundry, atur ke `1` untuk memiliki pengklasifikasi sisi server platform meninjau tindakan [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode); di mana platform tidak menjalankan pengklasifikasi, Claude Code kembali ke permintaan pengklasifikasi yang dikirimnya sendiri. Ketika tidak diatur atau `0`, pengklasifikasi berjalan melalui permintaan yang Claude Code sendiri kirim. Tidak berpengaruh pada penyedia lain, termasuk API Anthropic. Memerlukan Claude Code v2.1.271 atau lebih baru |226| `CLAUDE_CODE_AUTO_MODE_SERVER` | Mengontrol apakah Claude Code meminta server untuk [meninjau tindakan mode otomatis](/docs/id/permission-modes#server-side-classifier-review). Ketika tidak diatur, Claude Code meminta server di Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, dan Claude Platform on AWS, dan ketika Anda menunjuk `ANTHROPIC_BASE_URL` ke gateway LLM atau proxy. Atur ke `0` untuk menggunakan permintaan pengklasifikasi Claude Code sendiri sebagai gantinya. Tidak dibaca pada koneksi langsung ke API Anthropic. Memerlukan Claude Code v2.1.271 atau lebih baru; meminta server secara default memerlukan v2.1.278 atau lebih baru |

227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Waktu dalam milidetik Claude Code menunggu rantai penyedia kredensial default AWS menghasilkan kredensial sebelum permintaan gagal dengan [`AWS default-chain credential resolve timed out`](/docs/id/errors#aws-default-chain-credential-resolve-timed-out) (default: `60000`). Naikkan ketika langkah dalam rantai Anda secara sah membutuhkan lebih lama, seperti masuk SSO berbasis browser dengan MFA melalui pembungkus seperti `aws-vault`. Berlaku di mana pun Claude Code menandatangani dengan rantai default: [Amazon Bedrock](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint). Memerlukan Claude Code v2.1.207 atau lebih baru |227| `CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS` | Waktu dalam milidetik Claude Code menunggu rantai penyedia kredensial default AWS menghasilkan kredensial sebelum permintaan gagal dengan [`AWS default-chain credential resolve timed out`](/docs/id/errors#aws-default-chain-credential-resolve-timed-out) (default: `60000`). Naikkan ketika langkah dalam rantai Anda secara sah membutuhkan lebih lama, seperti masuk SSO berbasis browser dengan MFA melalui pembungkus seperti `aws-vault`. Berlaku di mana pun Claude Code menandatangani dengan rantai default: [Amazon Bedrock](/docs/id/amazon-bedrock#credential-caching-and-resolution-timeout), [Claude Platform on AWS](/docs/id/claude-platform-on-aws), dan [endpoint Mantle](/docs/id/amazon-bedrock#use-the-mantle-endpoint). Memerlukan Claude Code v2.1.207 atau lebih baru |

228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Atur ke `0` untuk menonaktifkan [diff dari file yang perintah Bash ubah](/docs/id/hooks#bash), atau `1` untuk mencatatnya dalam setiap mode izin. Mengambil prioritas di atas pengaturan [`bashEditDiffEnabled`](/docs/id/settings-reference#basheditdiffenabled). Memerlukan Claude Code v2.1.269 atau lebih baru |228| `CLAUDE_CODE_BASH_EDIT_DIFF` | Atur ke `0` untuk menonaktifkan [diff dari file yang perintah Bash ubah](/docs/id/hooks#bash), atau `1` untuk mencatatnya dalam setiap mode izin. Mengambil prioritas di atas pengaturan [`bashEditDiffEnabled`](/docs/id/settings-reference#basheditdiffenabled). Memerlukan Claude Code v2.1.269 atau lebih baru |

229| `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING` | Atur ke `0` untuk membuat sesi non-interaktif melaporkan status idle ke host-nya di setiap akhir giliran, bahkan saat pekerjaan latar belakang masih berjalan. Secara default, sesi terus melaporkan status berjalan melampaui akhir giliran saat pekerjaan latar belakang seperti agent latar belakang atau [alur kerja](/docs/id/workflows) masih aktif. Ini membuat host yang memantau status, seperti daftar sesi jarak jauh, dari mengumumkan bahwa Claude menunggu input Anda di tengah pekerjaan. Perintah shell latar belakang, seperti server dev, tidak menahan status berjalan. Default status berjalan dan opt-out `0` memerlukan Claude Code v2.1.269 atau lebih baru; di versi yang lebih awal, atur `1` untuk menahan status berjalan |

229| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Atur secara otomatis di subproses alat Bash dan [perintah hook](/docs/id/hooks) saat sesi memiliki koneksi [Remote Control](/docs/id/remote-control) aktif, dan dihapus ketika koneksi berakhir. Nilainya adalah ID sesi dalam bentuk `session_`, pengidentifikasi yang sama yang muncul di URL `claude.ai/code` sesi, jadi skrip dapat menghubungkan kembali ke sesi yang menjalankannya. Memerlukan Claude Code v2.1.199 atau lebih baru. Di [sesi cloud](/docs/id/claude-code-on-the-web), baca `CLAUDE_CODE_REMOTE_SESSION_ID` sebagai gantinya |230| `CLAUDE_CODE_BRIDGE_SESSION_ID` | Atur secara otomatis di subproses alat Bash dan [perintah hook](/docs/id/hooks) saat sesi memiliki koneksi [Remote Control](/docs/id/remote-control) aktif, dan dihapus ketika koneksi berakhir. Nilainya adalah ID sesi dalam bentuk `session_`, pengidentifikasi yang sama yang muncul di URL `claude.ai/code` sesi, jadi skrip dapat menghubungkan kembali ke sesi yang menjalankannya. Memerlukan Claude Code v2.1.199 atau lebih baru. Di [sesi cloud](/docs/id/claude-code-on-the-web), baca `CLAUDE_CODE_REMOTE_SESSION_ID` sebagai gantinya |

230| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Atur ke `0` untuk membuat Claude Code membaca byte `0x08`, juga ditulis `^H`, sebagai Backspace biasa, atau `1` untuk membacanya sebagai Ctrl+Backspace. Nilai apa pun menggantikan default platform. Secara default, Claude Code membacanya sebagai Ctrl+Backspace di Windows, kecuali ketika `TERM_PROGRAM` adalah `mintty` atau `TERM` adalah `cygwin`, dan sebagai Backspace biasa di macOS dan Linux. Atur `0` di terminal Windows di mana [Backspace menghapus seluruh kata](/docs/id/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |231| `CLAUDE_CODE_BS_AS_CTRL_BACKSPACE` | Atur ke `0` untuk membuat Claude Code membaca byte `0x08`, juga ditulis `^H`, sebagai Backspace biasa, atau `1` untuk membacanya sebagai Ctrl+Backspace. Nilai apa pun menggantikan default platform. Secara default, Claude Code membacanya sebagai Ctrl+Backspace di Windows, kecuali ketika `TERM_PROGRAM` adalah `mintty` atau `TERM` adalah `cygwin`, dan sebagai Backspace biasa di macOS dan Linux. Atur `0` di terminal Windows di mana [Backspace menghapus seluruh kata](/docs/id/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |

231| `CLAUDE_CODE_CERT_STORE` | Daftar sumber sertifikat CA yang dipisahkan koma untuk koneksi TLS. `bundled` adalah set CA Mozilla yang dikirim dengan Claude Code. `system` adalah penyimpanan kepercayaan sistem operasi, dibaca hanya di runtime dengan `tls.getCACertificates`: biner asli, atau Node 22.15 atau lebih baru untuk instalasi npm. Lihat [Penyimpanan sertifikat CA](/docs/id/network-config#ca-certificate-store). Default adalah `bundled,system` |232| `CLAUDE_CODE_CERT_STORE` | Daftar sumber sertifikat CA yang dipisahkan koma untuk koneksi TLS. `bundled` adalah set CA Mozilla yang dikirim dengan Claude Code. `system` adalah penyimpanan kepercayaan sistem operasi, dibaca hanya di runtime dengan `tls.getCACertificates`: biner asli, atau Node 22.15 atau lebih baru untuk instalasi npm. Lihat [Penyimpanan sertifikat CA](/docs/id/network-config#ca-certificate-store). Default adalah `bundled,system` |


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

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

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

278| `CLAUDE_CODE_DISABLE_WINDOWS_SHELL_LAUNCHER` | Atur ke `1` untuk memulai perintah [alat PowerShell](/docs/id/tools-reference#powershell-tool) di Windows secara langsung daripada melalui peluncur `cmd.exe`. Secara default, peluncur memungkinkan perintah PowerShell [berjalan di latar belakang](/docs/id/tools-reference#background-commands) [membawa ke proses sesi berikutnya](/docs/id/agent-view#the-supervisor-process), seperti ketika Anda [menempatkan sesi di latar belakang](/docs/id/agent-view#from-inside-a-session). Jika Anda menetapkan variabel, perintah PowerShell yang dilatarbelakangkan berhenti ketika proses sesi keluar. Perintah Bash tidak terpengaruh. Memerlukan Claude Code v2.1.269 atau lebih baru |

277| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Atur ke `1` untuk menonaktifkan [alur kerja](/docs/id/workflows#turn-workflows-off). Setara dengan pengaturan [`disableWorkflows`](/docs/id/settings-reference#disableworkflows) |279| `CLAUDE_CODE_DISABLE_WORKFLOWS` | Atur ke `1` untuk menonaktifkan [alur kerja](/docs/id/workflows#turn-workflows-off). Setara dengan pengaturan [`disableWorkflows`](/docs/id/settings-reference#disableworkflows) |

278| `CLAUDE_CODE_EFFORT_LEVEL` | Atur tingkat effort untuk model yang didukung. Nilai: `low`, `medium`, `high`, `xhigh`, `max`, atau `auto` untuk menggunakan default model. Tingkat yang tersedia tergantung pada model. Mengambil prioritas di atas `--effort`, `/effort`, dan pengaturan `modelSettings` dan `effortLevel`. Batas [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) masih berlaku. Lihat [Sesuaikan tingkat effort](/docs/id/model-config#adjust-effort-level) |280| `CLAUDE_CODE_EFFORT_LEVEL` | Atur tingkat effort untuk model yang didukung. Nilai: `low`, `medium`, `high`, `xhigh`, `max`, atau `auto` untuk menggunakan default model. Tingkat yang tersedia tergantung pada model. Mengambil prioritas di atas `--effort`, `/effort`, dan pengaturan `modelSettings` dan `effortLevel`. Batas [`maxEffortLevel`](/docs/id/settings-reference#maxeffortlevel) masih berlaku. Lihat [Sesuaikan tingkat effort](/docs/id/model-config#adjust-effort-level) |

279| `CLAUDE_CODE_ENABLE_APPEND_SUBAGENT_PROMPT` | Atur ke `1` untuk mengaktifkan penambahan teks ekstra ke akhir prompt sistem setiap [subagent](/docs/id/sub-agents) selain [subagent yang difork](/docs/id/sub-agents#fork-the-current-conversation). Flag [`--append-subagent-system-prompt`](/docs/id/cli-reference#cli-flags) dan [`--append-subagent-system-prompt-file`](/docs/id/cli-reference#cli-flags) menyediakan teks yang ditambahkan dan menetapkan variabel ini secara otomatis, jadi Anda tidak perlu menetapkannya sendiri. Memerlukan Claude Code v2.1.205 atau lebih baru |

280| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Diterima untuk kompatibilitas dengan rilis yang lebih lama dan tidak berpengaruh. Mode otomatis tersedia secara default di setiap penyedia, termasuk Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk. Di v2.1.158 melalui v2.1.206, menetapkan ini ke `1` diperlukan untuk membuat [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) tersedia di penyedia itu |281| `CLAUDE_CODE_ENABLE_AUTO_MODE` | Diterima untuk kompatibilitas dengan rilis yang lebih lama dan tidak berpengaruh. Mode otomatis tersedia secara default di setiap penyedia, termasuk Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk. Di v2.1.158 melalui v2.1.206, menetapkan ini ke `1` diperlukan untuk membuat [mode otomatis](/docs/id/permission-modes#eliminate-prompts-with-auto-mode) tersedia di penyedia itu |

281| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Ganti ketersediaan [ringkasan sesi](/docs/id/interactive-mode#session-recap). Atur ke `0` untuk memaksa ringkasan mati terlepas dari toggle `/config`. Atur ke `1` untuk memaksa ringkasan aktif ketika [`awaySummaryEnabled`](/docs/id/settings-reference#awaysummaryenabled) adalah `false`. Mengambil prioritas di atas pengaturan dan toggle `/config` |282| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | Ganti ketersediaan [ringkasan sesi](/docs/id/interactive-mode#session-recap). Atur ke `0` untuk memaksa ringkasan mati terlepas dari toggle `/config`. Atur ke `1` untuk memaksa ringkasan aktif ketika [`awaySummaryEnabled`](/docs/id/settings-reference#awaysummaryenabled) adalah `false`. Mengambil prioritas di atas pengaturan dan toggle `/config` |

282| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Atur ke `1` untuk menyegarkan status plugin di batas giliran dalam [mode non-interaktif](/docs/id/headless) setelah instalasi latar belakang selesai. Dimatikan secara default karena penyegaran mengubah prompt sistem di tengah sesi, yang membatalkan [prompt caching](/docs/id/prompt-caching) untuk giliran itu |283| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | Atur ke `1` untuk menyegarkan status plugin di batas giliran dalam [mode non-interaktif](/docs/id/headless) setelah instalasi latar belakang selesai. Dimatikan secara default karena penyegaran mengubah prompt sistem di tengah sesi, yang membatalkan [prompt caching](/docs/id/prompt-caching) untuk giliran itu |


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

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

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

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

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

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

302| `CLAUDE_CODE_GLOB_NO_IGNORE` | Atur ke `false` untuk membuat alat [Glob](/docs/id/tools-reference#glob-tool-behavior) menghormati pola `.gitignore`. Secara default, Glob mengembalikan semua file yang cocok termasuk yang diabaikan git. Tidak mempengaruhi autocomplete file `@`, yang memiliki pengaturan [`respectGitignore`](/docs/id/settings-reference#respectgitignore) sendiri |304| `CLAUDE_CODE_GLOB_NO_IGNORE` | Atur ke `false` untuk membuat alat [Glob](/docs/id/tools-reference#glob-tool-behavior) menghormati pola `.gitignore`. Secara default, Glob mengembalikan semua file yang cocok termasuk yang diabaikan git. Tidak mempengaruhi autocomplete file `@`, yang memiliki pengaturan [`respectGitignore`](/docs/id/settings-reference#respectgitignore) sendiri |


353| `CLAUDE_CODE_REMOTE_SESSION_ID` | Atur secara otomatis di [sesi cloud](/docs/id/claude-code-on-the-web) ke ID sesi saat ini. Baca ini untuk membuat tautan kembali ke transkrip sesi. Lihat [Tautan output kembali ke sesi](/docs/id/cloud-environments#link-output-back-to-the-session) |355| `CLAUDE_CODE_REMOTE_SESSION_ID` | Atur secara otomatis di [sesi cloud](/docs/id/claude-code-on-the-web) ke ID sesi saat ini. Baca ini untuk membuat tautan kembali ke transkrip sesi. Lihat [Tautan output kembali ke sesi](/docs/id/cloud-environments#link-output-back-to-the-session) |

354| `CLAUDE_CODE_RESTRICTED` | Atur ke `1` untuk memulai sesi dalam mode terbatas, sama seperti meneruskan [`--restricted`](/docs/id/cli-reference#cli-flags). Claude Code mengabaikan variabel ini di blok `env` file pengaturan. Memerlukan Claude Code v2.1.248 atau lebih baru |356| `CLAUDE_CODE_RESTRICTED` | Atur ke `1` untuk memulai sesi dalam mode terbatas, sama seperti meneruskan [`--restricted`](/docs/id/cli-reference#cli-flags). Claude Code mengabaikan variabel ini di blok `env` file pengaturan. Memerlukan Claude Code v2.1.248 atau lebih baru |

355| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Atur ke `1` untuk secara otomatis melanjutkan jika sesi sebelumnya berakhir di tengah-giliran. Digunakan dalam mode SDK sehingga model melanjutkan tanpa memerlukan SDK untuk mengirim ulang prompt. Untuk menonaktifkan ini, batalkan penetapan variabel atau atur ke `0`. Sebelum v2.1.221, Claude Code mengabaikan `0` dan nilai falsy lainnya, jadi menetapkan `0` masih memicu resume dalam mode non-interaktif dan membatalkan penetapan variabel adalah satu-satunya cara untuk menonaktifkannya |357| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | Atur ke `1` untuk secara otomatis melanjutkan jika sesi sebelumnya berakhir di tengah-giliran. Digunakan dalam mode SDK sehingga model melanjutkan tanpa memerlukan SDK untuk mengirim ulang prompt. Untuk menonaktifkan ini, batalkan penetapan variabel atau atur ke `0`. Sebelum v2.1.221, Claude Code mengabaikan `0` dan nilai falsy lainnya, jadi menetapkan `0` masih memicu resume dalam mode non-interaktif dan membatalkan penetapan variabel adalah satu-satunya cara untuk menonaktifkannya |

356| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Usia maksimum dalam milidetik dari pesan transkrip terakhir untuk sesi yang berakhir di tengah-giliran untuk melanjutkan secara otomatis pada resume. Ketika pesan terakhir lebih lama dari batas ini, Claude Code melewati resume otomatis `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` dan pesan lanjutan `CLAUDE_CODE_RESUME_PROMPT` yang disuntikkan, dan sesi dimulai idle sehingga Anda melanjutkan secara eksplisit. Tidak diatur atau `0` berarti tidak ada batas; nilai negatif atau non-numerik menerapkan batas satu jam. Skrip spawn untuk agent yang berjalan lama dapat menetapkan ini sehingga restart terhadap transkrip lama tidak menjalankan kembali prompt basi. Claude Code menetapkan batas satu jam sendiri ketika memulai ulang sesi [tampilan agent](/docs/id/agent-view) yang mogok yang mewarisi percakapannya dari sesi interaktif. Memerlukan Claude Code v2.1.211 atau lebih baru |358| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | Usia maksimum dalam milidetik dari pesan transkrip terakhir untuk sesi yang berakhir di tengah-giliran untuk melanjutkan secara otomatis pada resume. Ketika pesan terakhir lebih lama dari batas ini, Claude Code melewati resume otomatis `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` dan pesan lanjutan `CLAUDE_CODE_RESUME_PROMPT` yang disuntikkan, dan sesi dimulai idle sehingga Anda melanjutkan secara eksplisit. Tidak diatur atau `0` berarti tidak ada batas, kecuali bahwa giliran yang permintaan terakhirnya gagal dengan kesalahan API melanjutkan hanya saat kesalahan itu kurang dari enam jam. Nilai positif mengikat setiap giliran, termasuk yang; nilai negatif atau non-numerik menerapkan batas satu jam. Skrip spawn untuk agent yang berjalan lama dapat menetapkan ini sehingga restart terhadap transkrip lama tidak menjalankan kembali prompt basi. Claude Code menetapkan batas satu jam sendiri ketika memulai ulang sesi [tampilan agent](/docs/id/agent-view) yang mogok yang mewarisi percakapannya dari sesi interaktif. Memerlukan Claude Code v2.1.211 atau lebih baru |

357| `CLAUDE_CODE_RESUME_PROMPT` | Ganti pesan lanjutan yang disuntikkan saat melanjutkan sesi yang berakhir di tengah-giliran. Default ke `Continue from where you left off.`. Skrip spawn untuk agent yang berjalan lama dapat menetapkan ini ke pesan boot yang lebih direktif. String kosong menggunakan default |359| `CLAUDE_CODE_RESUME_PROMPT` | Ganti pesan lanjutan yang disuntikkan saat melanjutkan sesi yang berakhir di tengah-giliran. Default ke `Continue from where you left off.`. Skrip spawn untuk agent yang berjalan lama dapat menetapkan ini ke pesan boot yang lebih direktif. String kosong menggunakan default |

358| `CLAUDE_CODE_RETRY_WATCHDOG` | Atur ke `1` untuk sesi tanpa pengawasan seperti harness eval, pekerjaan CI, atau pekerja jarak jauh. Percobaan ulang `429` dan `529` kesalahan kapasitas tanpa batas daripada gagal setelah upaya `CLAUDE_CODE_MAX_RETRIES`. Claude Code gagal sekaligus ketika permintaan kecepatan standar mendapat `429` yang melaporkan batas pengeluaran atau kredit penggunaan yang habis, bahkan satu dari [batas pengeluaran gateway](/docs/id/errors#spend-limit-reached) yang direset sesuai jadwal. Sebelum v2.1.239, watchdog mencoba ulang ini tanpa batas. Untuk permintaan mode cepat, lihat [Tangani batas laju](/docs/id/fast-mode#handle-rate-limits). Watchdog mundur hingga 5 menit antara upaya, atau sampai batas direset ketika respons membawa waktu reset batas laju, jadi sesi yang mencapai batas penggunaan menunggu jendela yang tersisa. Di v2.1.199 atau lebih baru itu juga menaikkan jumlah percobaan ulang default untuk kesalahan transien lainnya, seperti kesalahan server, timeout, dan koneksi yang dijatuhkan, ke 300, kira-kira tiga jam mundur, dan menghapus batas 15 pada `CLAUDE_CODE_MAX_RETRIES` jika Anda menetapkan variabel itu secara eksplisit. Memerlukan Claude Code v2.1.186 atau lebih baru |360| `CLAUDE_CODE_RETRY_WATCHDOG` | Atur ke `1` untuk sesi tanpa pengawasan seperti harness eval, pekerjaan CI, atau pekerja jarak jauh. Percobaan ulang `429` dan `529` kesalahan kapasitas tanpa batas daripada gagal setelah upaya `CLAUDE_CODE_MAX_RETRIES`. Claude Code gagal sekaligus ketika permintaan kecepatan standar mendapat `429` yang melaporkan batas pengeluaran atau kredit penggunaan yang habis, bahkan satu dari [batas pengeluaran gateway](/docs/id/errors#spend-limit-reached) yang direset sesuai jadwal. Sebelum v2.1.239, watchdog mencoba ulang ini tanpa batas. Untuk permintaan mode cepat, lihat [Tangani batas laju](/docs/id/fast-mode#handle-rate-limits). Watchdog mundur hingga 5 menit antara upaya, atau sampai batas direset ketika respons membawa waktu reset batas laju, jadi sesi yang mencapai batas penggunaan menunggu jendela yang tersisa. Di v2.1.199 atau lebih baru itu juga menaikkan jumlah percobaan ulang default untuk kesalahan transien lainnya, seperti kesalahan server, timeout, dan koneksi yang dijatuhkan, ke 300, kira-kira tiga jam mundur, dan menghapus batas 15 pada `CLAUDE_CODE_MAX_RETRIES` jika Anda menetapkan variabel itu secara eksplisit. Memerlukan Claude Code v2.1.186 atau lebih baru |

359| `CLAUDE_CODE_SAFE_MODE` | Atur ke `1` untuk memulai dalam mode aman: CLAUDE.md, skills, plugin, hook, server MCP, perintah khusus dan agent, gaya output, alur kerja, tema khusus, pintasan keyboard khusus, perintah status line dan saran file, server LSP, dan memori otomatis tidak dimuat, untuk pemecahan masalah konfigurasi yang rusak. Kebijakan pengaturan yang dikelola masih berlaku, termasuk hook, status line, dan perintah saran file yang dikonfigurasi kebijakan; plugin yang dikelola, skills yang dikelola, CLAUDE.md yang dikelola, dan server MCP yang dikonfigurasi kebijakan tidak. Setara dengan meneruskan [`--safe-mode`](/docs/id/cli-reference#cli-flags). Proses anak yang diluncurkan secara langsung mewarisi variabel |361| `CLAUDE_CODE_SAFE_MODE` | Atur ke `1` untuk memulai dalam mode aman: CLAUDE.md, skills, plugin, hook, server MCP, perintah khusus dan agent, gaya output, alur kerja, tema khusus, pintasan keyboard khusus, perintah status line dan saran file, server LSP, dan memori otomatis tidak dimuat, untuk pemecahan masalah konfigurasi yang rusak. Kebijakan pengaturan yang dikelola masih berlaku, termasuk hook, status line, dan perintah saran file yang dikonfigurasi kebijakan; plugin yang dikelola, skills yang dikelola, CLAUDE.md yang dikelola, dan server MCP yang dikonfigurasi kebijakan tidak. Setara dengan meneruskan [`--safe-mode`](/docs/id/cli-reference#cli-flags). Proses anak yang diluncurkan secara langsung mewarisi variabel |


403| `CLAUDE_CODE_USE_VERTEX` | Gunakan [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) |405| `CLAUDE_CODE_USE_VERTEX` | Gunakan [Google Cloud's Agent Platform](/docs/id/google-vertex-ai) |

404| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Atur ke jumlah milidetik [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior) menyimpan respons setiap URL yang diambil dalam cache. Default adalah `900000`, yang merupakan 15 menit. Hanya menerima digit biasa; `0`, desimal, atau ejaan lain apa pun menyimpan default. Claude Code membaca nilai sekali per peluncuran, jadi perubahan di blok `env` pengaturan berlaku saat Anda berikutnya meluncurkan `claude`. Memerlukan Claude Code v2.1.233 atau lebih baru |406| `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Atur ke jumlah milidetik [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior) menyimpan respons setiap URL yang diambil dalam cache. Default adalah `900000`, yang merupakan 15 menit. Hanya menerima digit biasa; `0`, desimal, atau ejaan lain apa pun menyimpan default. Claude Code membaca nilai sekali per peluncuran, jadi perubahan di blok `env` pengaturan berlaku saat Anda berikutnya meluncurkan `claude`. Memerlukan Claude Code v2.1.233 atau lebih baru |

405| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Batas atas dalam milidetik tentang berapa lama [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior) menunggu halaman untuk diunduh, termasuk pengalihan apa pun yang diikutinya. Unduhan yang belum selesai pada saat itu gagal dengan kesalahan tenggat waktu. Default adalah `300000`, yang merupakan lima menit. Atur ke `0` untuk menghapus batas. Hanya menerima digit biasa; desimal atau ejaan lain apa pun menyimpan default. Memerlukan Claude Code v2.1.268 atau lebih baru |407| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Batas atas dalam milidetik tentang berapa lama [WebFetch](/docs/id/tools-reference#webfetch-tool-behavior) menunggu halaman untuk diunduh, termasuk pengalihan apa pun yang diikutinya. Unduhan yang belum selesai pada saat itu gagal dengan kesalahan tenggat waktu. Default adalah `300000`, yang merupakan lima menit. Atur ke `0` untuk menghapus batas. Hanya menerima digit biasa; desimal atau ejaan lain apa pun menyimpan default. Memerlukan Claude Code v2.1.268 atau lebih baru |

408| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | Berapa banyak agen [alur kerja](/docs/id/workflows) menjalankan sekaligus, dari `1` hingga `256`. Secara default, jalankan menjalankan hingga 16 agen sekaligus, lebih sedikit ketika Claude Code memiliki lebih sedikit CPU yang tersedia; panggilan `agent()` yang antri menunggu slot gratis. Transkrip setiap agen yang berjalan tetap dalam memori Claude Code, jadi nilai yang lebih tinggi menaikkan penggunaan memori. Hanya menerima digit biasa; nilai di luar jangkauan dan ejaan lain menyimpan default. Memerlukan Claude Code v2.1.269 atau lebih baru |

406| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Batas atas dalam milidetik tentang berapa lama agen [alur kerja](/docs/id/workflows) menunggu respons pertama sibling yang sama-awalan sebelum mengirim permintaan pertamanya sendiri. Ketika fan-out memulai beberapa agen yang berbagi [awalan cache prompt](/docs/id/workflows#prompt-caching-in-a-fan-out), Claude Code menahan semua kecuali agen pertama untuk waktu yang lama sehingga sisanya membaca awalan yang di-cache daripada masing-masing memprosesnya tanpa cache. Default `5000`. Atur ke `0` untuk menonaktifkan tunggu. Ketika `DISABLE_PROMPT_CACHING` diatur, agen tidak pernah menunggu. Memerlukan Claude Code v2.1.229 atau lebih baru |409| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Batas atas dalam milidetik tentang berapa lama agen [alur kerja](/docs/id/workflows) menunggu respons pertama sibling yang sama-awalan sebelum mengirim permintaan pertamanya sendiri. Ketika fan-out memulai beberapa agen yang berbagi [awalan cache prompt](/docs/id/workflows#prompt-caching-in-a-fan-out), Claude Code menahan semua kecuali agen pertama untuk waktu yang lama sehingga sisanya membaca awalan yang di-cache daripada masing-masing memprosesnya tanpa cache. Default `5000`. Atur ke `0` untuk menonaktifkan tunggu. Ketika `DISABLE_PROMPT_CACHING` diatur, agen tidak pernah menunggu. Memerlukan Claude Code v2.1.229 atau lebih baru |

407| `CLAUDE_CONFIG_DIR` | Ganti direktori konfigurasi (default: `~/.claude`). Semua pengaturan, riwayat sesi, dan plugin disimpan di bawah path ini. Untuk kredensial, lihat [di mana Claude Code menyimpan kredensial](/docs/id/authentication#credential-management). Berguna untuk menjalankan beberapa akun berdampingan: misalnya, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Atur di shell, pengaturan pengguna, atau pengaturan yang dikelola. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |410| `CLAUDE_CONFIG_DIR` | Ganti direktori konfigurasi (default: `~/.claude`). Semua pengaturan, riwayat sesi, dan plugin disimpan di bawah path ini. Untuk kredensial, lihat [di mana Claude Code menyimpan kredensial](/docs/id/authentication#credential-management). Berguna untuk menjalankan beberapa akun berdampingan: misalnya, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Atur di shell, pengaturan pengguna, atau pengaturan yang dikelola. Diabaikan di [pengaturan proyek dan lokal](/docs/id/settings-reference#variables-claude-code-ignores-in-env) |

408| `CLAUDE_DISABLE_ADOPT` | Atur ke `1` untuk menghentikan pekerjaan latar belakang dalam penerbangan daripada membawanya saat Anda menempatkan sesi di latar belakang dengan menekan `←` atau dengan [`/background`](/docs/id/agent-view#from-inside-a-session). Claude Code meminta Anda untuk mengonfirmasi sebelum backgrounding, kemudian menghentikan tugas yang sebaliknya akan dibawa. Memerlukan Claude Code v2.1.195 atau lebih baru |411| `CLAUDE_DISABLE_ADOPT` | Atur ke `1` untuk menghentikan pekerjaan latar belakang dalam penerbangan daripada membawanya saat Anda menempatkan sesi di latar belakang dengan menekan `←` atau dengan [`/background`](/docs/id/agent-view#from-inside-a-session). Claude Code meminta Anda untuk mengonfirmasi sebelum backgrounding, kemudian menghentikan tugas yang sebaliknya akan dibawa. Memerlukan Claude Code v2.1.195 atau lebih baru |


518 521 

519Dengan pengambilan dimatikan, Anda tidak dapat:522Dengan pengambilan dimatikan, Anda tidak dapat:

520 523 

524* Memiliki Claude Code [membaca file `AGENTS.md`](/docs/id/memory#agents-md) sebagai instruksi proyek; ia hanya memuat file `CLAUDE.md`

521* [Memulai sesi dalam mode auto secara default](/docs/id/permission-modes#which-mode-a-session-starts-in) pada paket Pro, Max, dan Team525* [Memulai sesi dalam mode auto secara default](/docs/id/permission-modes#which-mode-a-session-starts-in) pada paket Pro, Max, dan Team

522* Memiliki ekstensi VS Code [membaca file pengaturan untuk mode izin awal](/docs/id/permission-modes#switch-permission-modes)526* Memiliki ekstensi VS Code [membaca file pengaturan untuk mode izin awal](/docs/id/permission-modes#switch-permission-modes)

523* Menjalankan [`/auto-mode-setup`](/docs/id/auto-mode-config#generate-environment-entries) untuk membuat draf entri `autoMode.environment`527* Menjalankan [`/auto-mode-setup`](/docs/id/auto-mode-config#generate-environment-entries) untuk membuat draf entri `autoMode.environment`

Details

301 Mode otomatis mengurangi permintaan izin tetapi tidak menjamin keamanan. Gunakan untuk tugas di mana Anda mempercayai arah umum, bukan sebagai pengganti tinjauan pada operasi sensitif.301 Mode otomatis mengurangi permintaan izin tetapi tidak menjamin keamanan. Gunakan untuk tugas di mana Anda mempercayai arah umum, bukan sebagai pengganti tinjauan pada operasi sensitif.

302</Warning>302</Warning>

303 303 

304Mode otomatis tersedia hanya ketika akun Anda memenuhi semua persyaratan ini:304Mode otomatis tersedia hanya ketika akun Anda memenuhi semua persyaratan berikut:

305 305 

306* **Paket**: Semua paket.306* **Paket**: Semua paket.

307* **Organisasi**: pada Team dan Enterprise, mode otomatis tersedia secara default. Administrator dapat mematikannya untuk organisasi dengan menetapkan `permissions.disableAutoMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings).307* **Organisasi**: pada Team dan Enterprise, mode otomatis tersedia secara default. Administrator dapat mematikannya untuk organisasi dengan menetapkan `permissions.disableAutoMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings).

308* **Model**: pada Anthropic API dan [Claude Platform on AWS](/docs/id/claude-platform-on-aws), Claude Opus 4.6 atau lebih baru, Sonnet 4.6 atau lebih baru, atau [model Fable](/docs/id/model-config#work-with-fable). Pada Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, hanya Claude Sonnet 5, Opus 4.7 atau lebih baru, dan model Fable. Model yang lebih lama, termasuk Sonnet 4.5, Opus 4.5, Haiku, dan model claude-3, tidak didukung di penyedia mana pun.308* **Model**: pada API Anthropic dan [Claude Platform di AWS](/docs/id/claude-platform-on-aws), Claude Opus 4.6 atau lebih baru, Sonnet 4.6 atau lebih baru, atau [model Fable](/docs/id/model-config#work-with-fable). Di Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, hanya Claude Sonnet 5, Opus 4.7 atau lebih baru, dan model Fable. Model yang lebih lama, termasuk Sonnet 4.5, Opus 4.5, Haiku, dan model claude-3, tidak didukung di penyedia mana pun.

309* **Penyedia**: tersedia secara default pada Anthropic API, Claude Platform on AWS, Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi gateway aplikasi Claude yang masuk.309* **Penyedia**: tersedia secara default pada API Anthropic, Claude Platform di AWS, Amazon Bedrock, Agent Platform Google Cloud, Microsoft Foundry, dan sesi gateway aplikasi Claude yang masuk.

310 310 

311Jika Claude Code melaporkan mode otomatis sebagai tidak tersedia, pertama periksa persyaratan ini dan apakah file pengaturan apa pun menetapkan [`disableAutoMode`](/docs/id/settings-reference#disableautomode). Anthropic juga mungkin telah mematikan mode otomatis di sisi server, atau server mungkin telah menolak mode otomatis untuk akun Anda. Sesi yang menerima salah satu jawaban membuat mode otomatis tetap mati sampai sesi berakhir, jadi mulai sesi baru nanti.311Jika Claude Code melaporkan mode otomatis sebagai tidak tersedia, pertama kali periksa persyaratan ini dan apakah file pengaturan apa pun menetapkan [`disableAutoMode`](/docs/id/settings-reference#disableautomode). Anthropic juga dapat mematikan mode otomatis di sisi server, atau server dapat menolak mode otomatis untuk akun Anda. Sesi yang menerima salah satu jawaban menjaga mode otomatis tetap mati sampai sesi berakhir, jadi mulai sesi baru nanti.

312 312 

313Pesan terpisah yang menyebutkan model dan mengatakan mode otomatis "tidak dapat menentukan keamanan" tindakan berarti permintaan pengklasifikasi gagal. Kegagalan itu biasanya bersifat sementara, tetapi pada Amazon Bedrock dapat berulang sampai akun Anda dapat memanggil model yang disebutkan. Lihat [referensi kesalahan](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action) untuk penyebab dan apa yang harus dilakukan.313Pesan terpisah yang menyebutkan model dan mengatakan mode otomatis "tidak dapat menentukan keamanan" tindakan berarti permintaan pengklasifikasi gagal. Kegagalan itu biasanya bersifat sementara, tetapi di Amazon Bedrock dapat berulang sampai akun Anda dapat memanggil model yang disebutkan. Lihat [referensi kesalahan](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action) untuk penyebab dan apa yang harus dilakukan.

314 314 

315Jika Anda menetapkan `defaultMode: "auto"` dalam [pengaturan](/docs/id/settings-reference#all-settings) dan sesi terminal dimulai dalam mode Manual tanpa kesalahan, pengaturan kemungkinan berada di `.claude/settings.json` atau `.claude/settings.local.json`. `auto` tidak berlaku dari file tersebut. Pindahkan ke `~/.claude/settings.json`. Untuk percakapan yang dimulai ekstensi VS Code, periksa daftar ekstensi sendiri dalam [Beralih mode izin](#switch-permission-modes) sebagai gantinya.315Jika Anda menetapkan `defaultMode: "auto"` dalam [pengaturan](/docs/id/settings-reference#all-settings) dan sesi terminal dimulai dalam mode Manual tanpa kesalahan, pengaturan kemungkinan berada di `.claude/settings.json` atau `.claude/settings.local.json`. `auto` tidak berlaku dari file tersebut. Pindahkan ke `~/.claude/settings.json`. Untuk percakapan yang dimulai ekstensi VS Code, periksa daftar ekstensi sendiri dalam [Beralih mode izin](#switch-permission-modes) sebagai gantinya.

316 316 

317<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">317<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

318 Mode otomatis pada Bedrock, Agent Platform, atau Foundry318 Mode otomatis di Bedrock, Agent Platform, atau Foundry

319</h3>319</h3>

320 320 

321Pada [Amazon Bedrock](/docs/id/amazon-bedrock), [Agent Platform Google Cloud](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, mode otomatis muncul dalam siklus `Shift+Tab` secara default. Muncul dalam siklus tidak mengubah mode izin yang dimulai sesi: pada penyedia ini, sesi terminal dimulai dalam [`defaultMode`](/docs/id/settings-reference#permissions-defaultmode) Anda, yang Manual kecuali Anda mengubahnya, dan percakapan dalam [ekstensi VS Code](/docs/id/vs-code) dimulai dalam Manual kecuali `claudeCode.initialPermissionMode` atau mode yang Anda pilih dalam ekstensi menetapkan satu. Hanya Claude Sonnet 5, Opus 4.7 atau lebih baru, dan model Fable yang didukung pada penyedia ini.321Di [Amazon Bedrock](/docs/id/amazon-bedrock), [Agent Platform Google Cloud](/docs/id/google-vertex-ai), [Microsoft Foundry](/docs/id/microsoft-foundry), dan sesi [gateway aplikasi Claude](/docs/id/claude-apps-gateway) yang masuk, mode otomatis muncul dalam siklus `Shift+Tab` secara default. Muncul dalam siklus tidak mengubah mode izin yang dimulai sesi: di penyedia ini, sesi terminal dimulai dalam [`defaultMode`](/docs/id/settings-reference#permissions-defaultmode) Anda, yang Manual kecuali Anda mengubahnya, dan percakapan dalam [ekstensi VS Code](/docs/id/vs-code) dimulai dalam Manual kecuali `claudeCode.initialPermissionMode` atau mode yang Anda pilih dalam ekstensi menetapkan satu. Hanya Claude Sonnet 5, Opus 4.7 atau lebih baru, dan model Fable yang didukung di penyedia ini.

322 322 

323Untuk membuat mode otomatis mode izin awal default, atur `"permissions": {"defaultMode": "auto"}` dalam pengaturan pengguna atau terkelola. Dalam sesi yang dimulai ekstensi VS Code, pilih **Auto** dari indikator mode sebagai gantinya. [Beralih mode izin](#switch-permission-modes) mencakup apa yang mengungguli pilihan itu.323Untuk membuat mode otomatis mode izin awal default, atur `"permissions": {"defaultMode": "auto"}` dalam pengaturan pengguna atau terkelola. Dalam sesi yang dimulai ekstensi VS Code, pilih **Auto** dari indikator mode sebagai gantinya. [Beralih mode izin](#switch-permission-modes) mencakup apa yang mengalahkan pilihan itu.

324 324 

325Checkup [`/doctor`](/docs/id/commands#all-commands) mengusulkan default pengaturan pengguna ini pada penyedia ini dengan cara yang sama seperti pada Anthropic API.325Pemeriksaan [`/doctor`](/docs/id/commands#all-commands) mengusulkan default pengaturan pengguna ini di penyedia ini dengan cara yang sama seperti pada API Anthropic.

326 326 

327Untuk mencegah pengembang menggunakan mode otomatis, atur `disableAutoMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings). Ini menghapus `auto` dari siklus `Shift+Tab`, dan sesi yang dimulai dengan `--permission-mode auto` dimulai dalam Manual sebagai gantinya. Sesi yang sudah berjalan dalam mode otomatis meninggalkannya ketika pengaturan mencapai sesi itu dari [sumber yang diterapkan admin](/docs/id/managed-settings#which-managed-source-claude-code-uses), dan menampilkan `auto mode disabled by settings`. Sebelum v2.1.251, sesi yang berjalan membuat mode otomatis sampai berakhir.327Untuk mencegah pengembang menggunakan mode otomatis, atur `disableAutoMode` ke `"disable"` dalam [pengaturan terkelola](/docs/id/managed-settings). Ini menghapus `auto` dari siklus `Shift+Tab`, dan sesi yang dimulai dengan `--permission-mode auto` dimulai dalam Manual sebagai gantinya. Sesi yang sudah berjalan dalam mode otomatis meninggalkannya ketika pengaturan mencapai sesi itu dari [sumber yang diterapkan admin](/docs/id/managed-settings#which-managed-source-claude-code-uses), dan menampilkan `auto mode disabled by settings`. Sebelum v2.1.251, sesi yang berjalan menjaga mode otomatis sampai berakhir.

328 328 

329Dalam v2.1.158 hingga v2.1.206, mode otomatis mati pada penyedia ini sampai Anda menetapkan `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, dan Claude Code mengabaikan `defaultMode: "auto"` pada penyedia ini kecuali variabel juga ditetapkan. Variabel masih diterima untuk kompatibilitas dan tidak berpengaruh dari v2.1.207 ke depan.329Dalam v2.1.158 hingga v2.1.206, mode otomatis mati di penyedia ini sampai Anda menetapkan `CLAUDE_CODE_ENABLE_AUTO_MODE=1`, dan Claude Code mengabaikan `defaultMode: "auto"` di penyedia ini kecuali variabel juga ditetapkan. Variabel masih diterima untuk kompatibilitas dan tidak berpengaruh dari v2.1.207 ke depan.

330 330 

331<h4 id="server-side-classifier-review">331<h3 id="server-side-classifier-review">

332 Tinjauan pengklasifikasi di sisi server332 Tinjauan pengklasifikasi sisi server

333</h4>333</h3>

334 

335Di paket Enterprise dan akun yang menggunakan Claude API, di [Claude Platform di AWS](/docs/id/claude-platform-on-aws), Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry, dan kapan pun Anda menunjuk `ANTHROPIC_BASE_URL` ke [gateway LLM atau proxy](/docs/id/llm-gateway), Claude Code dalam mode otomatis meminta server untuk meninjau [tindakan yang masuk ke pengklasifikasi](#how-the-classifier-evaluates-actions) sebagai bagian dari permintaan model sesi. Di mana server meninjau mereka, vonis mereka memutuskan tindakan tersebut. Di mana tidak, biasanya karena gateway LLM atau proxy mengganggu lalu lintas, atau karena platform, wilayah, atau kredensial belum memiliki pemeriksaan sisi server, Claude Code kembali ke permintaan pengklasifikasi sendiri, dan setelah fallback itu berlaku untuk sisa sesi, itu menampilkan [pemberitahuan tentang biaya permintaan pengklasifikasi](/docs/id/auto-mode-classifier-billing) pada akun di mana permintaan tersebut ditagih. Untuk melewati permintaan ke server dan selalu menggunakan permintaan pengklasifikasi Claude Code sendiri, atur [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/id/env-vars). Variabel tidak dibaca pada koneksi langsung ke API Anthropic. Jika Anda menetapkan `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` dan membiarkan `CLAUDE_CODE_AUTO_MODE_SERVER` tidak ditetapkan, Claude Code juga berhenti meminta server.

334 336 

335Pada Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry, Claude Code meninjau tindakan mode otomatis dengan permintaan pengklasifikasi miliknya sendiri secara default. Untuk memiliki pengklasifikasi di sisi server platform meninjau [tindakan yang pergi ke pengklasifikasi](#how-the-classifier-evaluates-actions) sebagai bagian dari permintaan model sesi sebagai gantinya, atur [`CLAUDE_CODE_AUTO_MODE_SERVER=1`](/docs/id/env-vars). Di mana platform menjalankan pengklasifikasi, verediktnya memutuskan tindakan tersebut; di mana tidak, Claude Code jatuh kembali ke permintaan pengklasifikasi miliknya sendiri. Dalam v2.1.271 dan v2.1.272, menanyakan platform adalah default pada penyedia ini.337Meminta server secara default memerlukan Claude Code v2.1.278 atau lebih baru.

336 338 

337<h3 id="what-the-classifier-blocks-by-default">339<h3 id="what-the-classifier-blocks-by-default">

338 Apa yang diblokir pengklasifikasi secara default340 Apa yang diblokir pengklasifikasi secara default


343**Diblokir secara default**:345**Diblokir secara default**:

344 346 

345* Mengunduh dan menjalankan kode, seperti `curl | bash`347* Mengunduh dan menjalankan kode, seperti `curl | bash`

346* Mengirim data sensitif ke endpoint eksternal348* Mengirim data sensitif ke titik akhir eksternal

347* Penerapan dan migrasi produksi349* Penerapan dan migrasi produksi

348* Penghapusan massal pada penyimpanan cloud350* Penghapusan massal pada penyimpanan cloud

349* Memberikan izin IAM atau repo351* Memberikan izin IAM atau repo

350* Memodifikasi infrastruktur bersama352* Memodifikasi infrastruktur bersama

351* Menghancurkan file secara tidak dapat dibalikkan yang ada sebelum sesi353* Menghancurkan file secara tidak dapat dibalikkan yang ada sebelum sesi

352* Force push354* Dorong paksa

353* Melakukan commit atau push perubahan yang akan mengirim rahasia atau data sensitif di luar repositori ketika dijalankan, atau memperluas apa yang diekspos penerapan. Ini mencakup alur kerja CI atau konfigurasi penerapan yang menyerahkan rahasia ke tujuan yang tidak sudah menerimanya, skrip atau langkah penyiapan yang membaca penyimpanan rahasia dan mengirim data keluar, dan perubahan konfigurasi yang memperluas apa yang dipublikasikan penerapan, seperti pengaturan registri, visibilitas, artefak, atau sourcemap. Pemeriksaan berlaku di cabang apa pun, berlaku bahkan ketika repositori bersifat publik, dan terbang ketika perubahan mendarat, terlepas dari apakah pendaratan itu memicu pipeline; menghapusnya memerlukan penamaan efek eksekusi, bukan hanya commit atau push. Sebelum v2.1.211, pemeriksaan ini dibatasi pada cabang default sebagai gantinya: push di sana diblokir ketika membawa konten sensitif, perubahan tersembunyi atau salah dideskripsikan relatif terhadap apa yang Anda minta, konten yang diportasi dari luar repositori, atau dirutekan di sekitar tinjauan yang Anda minta355* Melakukan komit atau mendorong perubahan yang akan mengirim rahasia atau data sensitif di luar repositori ketika dijalankan, atau memperluas apa yang diekspos penerapan. Ini mencakup alur kerja CI atau konfigurasi penerapan yang melewatkan rahasia ke tujuan yang tidak sudah menerimanya, skrip atau langkah penyiapan yang membaca penyimpanan rahasia dan mengirim data keluar, dan perubahan konfigurasi yang memperluas apa yang dipublikasikan penerapan, seperti pengaturan registri, visibilitas, artefak, atau sourcemap. Pemeriksaan berlaku di cabang apa pun, berlaku bahkan ketika repositori bersifat publik, dan terbang ketika perubahan dilakukan komit atau didorong, terlepas dari apakah komit atau dorong itu memicu pipeline; menghapusnya memerlukan penamaan efek eksekusi, bukan hanya komit atau dorong. Sebelum v2.1.211, pemeriksaan ini dibatasi pada cabang default sebagai gantinya: dorong di sana diblokir ketika membawa konten sensitif, perubahan tersembunyi atau salah digambarkan relatif terhadap apa yang Anda minta, konten yang diportasi dari luar repositori, atau dirutekan di sekitar tinjauan yang Anda minta

354* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, atau `git stash clear`, yang pengklasifikasi asumsikan akan membuang perubahan yang tidak dilakukan commit356* `git reset --hard`, `git checkout -- .`, `git restore .`, `git clean -fd`, `git stash drop`, atau `git stash clear`, yang pengklasifikasi asumsikan akan membuang perubahan yang tidak dilakukan komit

355* `git commit --amend` ketika commit di HEAD tidak dibuat dalam sesi ini357* `git commit --amend` ketika komit di HEAD tidak dibuat dalam sesi ini

356* Dari v2.1.198, `git commit --amend` ketika commit di HEAD sudah di-push. Reword hanya pesan tidak diblokir: `--amend -m` tanpa apa pun yang baru di-stage, pada commit yang dibuat Claude selama sesi ini358* Dari v2.1.198, `git commit --amend` ketika komit di HEAD sudah didorong. Penulisan ulang pesan saja tidak diblokir: `--amend -m` tanpa apa pun yang baru dipentaskan, pada komit yang dibuat Claude selama sesi ini

357* `terraform destroy`, `pulumi destroy`, `cdk destroy`, atau `terragrunt destroy`, dan menerapkan rencana yang menghancurkan sumber daya359* `terraform destroy`, `pulumi destroy`, `cdk destroy`, atau `terragrunt destroy`, dan menerapkan rencana yang menghancurkan sumber daya

358 360 

359Claude Code v2.1.195 dan lebih baru memblokir lebih banyak kategori secara default. Beberapa bergantung pada entri [lingkungan](/docs/id/auto-mode-config#define-trusted-infrastructure), seperti target remote sensitif dan cakupan IaC yang dilindungi, yang dapat Anda sempit ke nama konkret.361Claude Code v2.1.195 dan lebih baru memblokir lebih banyak kategori secara default. Beberapa bergantung pada entri [lingkungan](/docs/id/auto-mode-config#define-trusted-infrastructure), seperti target remote sensitif dan cakupan IaC yang dilindungi, yang dapat Anda sempit ke nama konkret.

360 362 

361* Menulis ke pengelola rahasia, atau mengubah catatan DNS atau sertifikat TLS363* Menulis ke pengelola rahasia, atau mengubah catatan DNS atau sertifikat TLS

362* Menggabungkan permintaan tarik yang tidak disetujui manusia, menyetujui permintaan tarik Claude sendiri, atau menonaktifkan pemeriksaan CI364* Menggabungkan permintaan tarik yang tidak ada manusia yang menyetujui, menyetujui permintaan tarik Claude sendiri, atau menonaktifkan pemeriksaan CI

363* Memposting komentar yang merupakan perintah untuk otomasi, seperti `atlantis apply` atau `/deploy` atau `/merge` bot365* Memposting komentar yang dengan sendirinya adalah perintah untuk otomasi, seperti `atlantis apply` atau `/deploy` atau `/merge` bot

364* Mengalihkan, merampingkan, atau menghapus bendera fitur produksi366* Mengalihkan, merampingkan, atau menghapus bendera fitur produksi

365* Menerapkan perubahan infrastruktur ke cakupan IaC yang dilindungi, atau mengalirkan dan menghapus node cluster367* Menerapkan perubahan infrastruktur ke cakupan IaC yang dilindungi, atau mengalirkan dan menghapus node cluster

366* Penulisan ke cluster komputasi bersama yang melampaui sumber daya yang Anda beri nama, seperti pemilih label atau `--all` yang menangkap pekerjaan pengguna lain368* Penulisan ke cluster komputasi bersama yang melampaui sumber daya yang Anda sebutkan, seperti pemilih label atau `--all` yang menangkap pekerjaan pengguna lain

367* Membuat sumber daya Kubernetes yang berjalan di setiap node atau mencegat lalu lintas cluster, seperti DaemonSets dan webhook penerimaan369* Membuat sumber daya Kubernetes yang berjalan di setiap node atau mencegat lalu lintas cluster, seperti DaemonSets dan webhook penerimaan

368* Shell interaktif atau port-forward ke target remote sensitif370* Shell interaktif atau port-forward ke target remote sensitif

369* Membuka terowongan atau shell terbalik yang membuat layanan lokal dapat dijangkau dari internet publik371* Membuka terowongan atau shell terbalik yang membuat layanan lokal dapat dijangkau dari internet publik


372* Merutekan instalasi paket di sekitar registri paket internal Anda ke registri publik. Mulai v2.1.198, ini juga berlaku ketika Anda telah memberi tahu Claude bahwa registri internal atau cermin ada dalam percakapan, bukan hanya ketika satu tercantum dalam lingkungan Anda374* Merutekan instalasi paket di sekitar registri paket internal Anda ke registri publik. Mulai v2.1.198, ini juga berlaku ketika Anda telah memberi tahu Claude bahwa registri internal atau cermin ada dalam percakapan, bukan hanya ketika satu tercantum dalam lingkungan Anda

373* Menjalankan perintah dengan bendera yang melucuti penjaga keselamatan, seperti `--insecure`375* Menjalankan perintah dengan bendera yang melucuti penjaga keselamatan, seperti `--insecure`

374* Meluncurkan loop agen otonom yang berjalan tanpa persetujuan manusia atau sandbox, seperti yang dimulai dengan `--dangerously-skip-permissions` atau `--no-sandbox`. Mulai v2.1.198 ini juga mencakup menjalankan agen pihak ketiga atau harness eval dengan isolasi dan persetujuan per-tindakan dinonaktifkan, seperti runner yang dimulai dengan `--yes-always`376* Meluncurkan loop agen otonom yang berjalan tanpa persetujuan manusia atau sandbox, seperti yang dimulai dengan `--dangerously-skip-permissions` atau `--no-sandbox`. Mulai v2.1.198 ini juga mencakup menjalankan agen pihak ketiga atau harness eval dengan isolasi dan persetujuan per-tindakan dinonaktifkan, seperti runner yang dimulai dengan `--yes-always`

375* Tindakan browser [Claude in Chrome](/docs/id/chrome) yang dapat mengirim konten halaman, cookie, atau kredensial off-origin377* Tindakan browser [Claude di Chrome](/docs/id/chrome) yang dapat mengirim konten halaman, cookie, atau kredensial off-origin

376 378 

377Claude Code v2.1.198 dan lebih baru juga memblokir ini secara default:379Claude Code v2.1.198 dan lebih baru juga memblokir ini secara default:

378 380 

379* Menghapus file di `/tmp`, `$TMPDIR`, atau direktori goresan atau cache bersama lainnya dengan wildcard, glob, atau filter usia daripada jalur bernama spesifik381* Menghapus file di `/tmp`, `$TMPDIR`, atau direktori goresan atau cache bersama lainnya dengan wildcard, glob, atau filter usia daripada dengan jalur bernama spesifik

380* Termasuk detail sensitif dalam konten yang dikirim, diunggah, dipublikasikan, atau ditulis ke orang lain atau sistem bersama, ketika pesan Anda sendiri tidak mengotorisasi detail tersebut untuk penerima itu. Badan PR dan masalah, pesan commit, dan komentar dihitung sebagai jenis konten keluar ini ketika repositori berada di luar batas kepercayaan atau publik, termasuk repositori publik organisasi Anda sendiri; jalur file internal, nama kode, data respons API langsung seperti email atau pengenal akun, dan pengenal infrastruktur dihitung sebagai detail sensitif. Scoping PR, masalah, dan pesan commit memerlukan Claude Code v2.1.200 atau lebih baru. Data pribadi langsung dari respons API dalam badan PR atau masalah, seperti alamat email, pengenal akun atau organisasi, atau metrik penggunaan, memerlukan Anda untuk menyebutkan detail tersebut dan penerima terlepas dari visibilitas atau batas kepercayaan repositori. Pemeriksaan itu memerlukan Claude Code v2.1.203 atau lebih baru382* Menyertakan detail sensitif dalam konten yang dikirim, diunggah, dipublikasikan, atau ditulis ke orang lain atau sistem bersama, ketika pesan Anda sendiri tidak mengotorisasi detail tersebut untuk penerima itu. Badan PR dan masalah, pesan komit, dan komentar dihitung sebagai jenis konten keluar ini ketika repositori berada di luar batas kepercayaan atau publik, termasuk repositori publik organisasi Anda sendiri; jalur file internal, nama kode, data respons API langsung seperti email atau pengidentifikasi akun, dan pengidentifikasi infrastruktur dihitung sebagai detail sensitif. Cakupan PR, masalah, dan pesan komit memerlukan Claude Code v2.1.200 atau lebih baru. Data pribadi langsung dari respons API dalam badan PR atau masalah, seperti alamat email, pengidentifikasi akun atau organisasi, atau metrik penggunaan, memerlukan Anda untuk menyebutkan detail tersebut dan penerima terlepas dari visibilitas atau batas kepercayaan repositori. Pemeriksaan itu memerlukan Claude Code v2.1.203 atau lebih baru

381* Mengirim keystroke ke pane tmux Claude Code sendiri untuk menjalankan antarmukanya sendiri, yang pengklasifikasi perlakukan sebagai Claude mengubah izin atau pengawasannya sendiri383* Mengirim keystroke ke pane tmux Claude Code sendiri untuk mendorong antarmukanya sendiri, yang pengklasifikasi perlakukan sebagai Claude mengubah izin atau pengawasannya sendiri

382 384 

383Claude Code v2.1.200 dan lebih baru juga memblokir ini secara default:385Claude Code v2.1.200 dan lebih baru juga memblokir ini secara default:

384 386 

385* Mengomentari, menghapus, atau force-passing tes atau pernyataan yang menjaga perilaku keamanan, seperti auth, kontrol akses, validasi input, atau sandboxing387* Mengomentari, menghapus, atau memaksa lulus tes atau pernyataan yang menjaga perilaku keamanan, seperti auth, kontrol akses, validasi input, atau sandboxing

386* Menghapus atau merobohkan sumber daya stateful yang tidak dibuat Claude dalam sesi, ketika tidak ada aturan penghapusan yang lebih spesifik berlaku dan Anda tidak menyebutkan sumber daya itu388* Menghapus atau merobohkan sumber daya stateful yang tidak dibuat Claude dalam sesi, ketika tidak ada aturan penghapusan yang lebih spesifik berlaku dan Anda tidak menyebutkan sumber daya itu

387* Menunjuk ulang URL dasar API, endpoint proxy, penerima webhook, atau cermin registri ke host pihak ketiga yang tidak sesuai dengan tugas, termasuk dalam file contoh seperti `.env.example`389* Menunjuk ulang URL dasar API, titik akhir proxy, penerima webhook, atau cermin registri ke host pihak ketiga yang tidak sesuai dengan tugas, termasuk dalam file contoh seperti `.env.example`

388* Mengubah ke mana push pergi dengan `git remote set-url` atau `git remote add`, kecuali Anda menyebutkan remote baru390* Mengubah ke mana dorong pergi dengan `git remote set-url` atau `git remote add`, kecuali Anda menyebutkan remote baru

389* Mendorong rahasia atau data pribadi atau terpercaya ke repositori yang diketahui publik, atau mendorong materi rahasia di sana yang bukan bagian dari pekerjaan repositori itu sendiri. Materi pelajaran repositori dotfiles sendiri adalah satu-satunya pengecualian untuk data pribadi atau terpercaya, dan konten dari repositori pribadi mencapai permukaan publik apa pun diblokir dengan cara yang sama; kedua penyempurnaan memerlukan Claude Code v2.1.203 atau lebih baru. Sebelum v2.1.203, data pribadi dikelompokkan dengan materi rahasia dan diblokir hanya ketika bukan bagian dari pekerjaan repositori itu sendiri. Ketika visibilitas repositori tidak ditetapkan, pengklasifikasi tidak memblokir itu saja; itu menilai konten terhadap aturan lain sebagai gantinya391* Mendorong rahasia atau data pribadi atau terpercaya ke repositori yang diketahui publik, atau mendorong materi rahasia di sana yang bukan bagian dari pekerjaan repositori itu sendiri. Materi subjek repositori dotfiles sendiri adalah satu-satunya pengecualian untuk data pribadi atau terpercaya, dan konten dari repositori pribadi mencapai permukaan publik apa pun diblokir dengan cara yang sama; kedua penyempurnaan memerlukan Claude Code v2.1.203 atau lebih baru. Sebelum v2.1.203, data pribadi dikelompokkan dengan materi rahasia dan diblokir hanya ketika bukan bagian dari pekerjaan repositori itu sendiri. Ketika visibilitas repositori tidak ditetapkan, pengklasifikasi tidak memblokir itu saja; itu menilai konten terhadap aturan lain sebagai gantinya

390* Membuka permintaan tarik terhadap repositori atau organisasi yang berbeda, forking dengan `gh repo fork`, atau push ke repositori pihak ketiga, kecuali Anda menyebutkan target eksternal itu392* Membuka permintaan tarik terhadap repositori atau organisasi yang berbeda, bercabang dengan `gh repo fork`, atau mendorong ke repositori pihak ketiga, kecuali Anda menyebutkan target eksternal itu

391 393 

392Claude Code v2.1.203 dan lebih baru juga memblokir ini secara default:394Claude Code v2.1.203 dan lebih baru juga memblokir ini secara default:

393 395 

394* Konten dari penyimpanan lokal sensitif, atau dari file yang nama, jalur, atau jenisnya menandainya sebagai sensitif, memasuki commit, push, teks PR atau masalah, gist atau paste, atau publikasi paket, kecuali Anda menyebutkan sumber dan tujuan. Transkrip sesi dan log percakapan, folder dot kredensial dan konfigurasi seperti kunci SSH, kredensial cloud, profil browser, dan riwayat shell, dan ekspor data pengguna semuanya dihitung, dan repositori menjadi pribadi tidak menghapusnya396* Konten dari penyimpanan lokal sensitif, atau dari file yang nama, jalur, atau jenisnya menandainya sebagai sensitif, memasuki komit, dorong, teks PR atau masalah, gist atau paste, atau publikasi paket, kecuali Anda menyebutkan sumber dan tujuan. Transkrip sesi dan log percakapan, folder dot konfigurasi dan kredensial seperti kunci SSH, kredensial cloud, profil browser, dan riwayat shell, dan ekspor data pengguna semuanya dihitung, dan repositori menjadi pribadi tidak menghapusnya

395 397 

396Claude Code v2.1.205 dan lebih baru juga memblokir ini secara default:398Claude Code v2.1.205 dan lebih baru juga memblokir ini secara default:

397 399 

398* Menulis ke transkrip sesi Claude Code, file riwayat `.jsonl` di bawah `~/.claude/projects/` atau direktori konfigurasi Anda yang dikonfigurasi, baik secara langsung maupun melalui perintah shell. Aturan juga mencakup baris metadata yang ditambahkan Claude Code ke setiap entri transkrip untuk pemeriksaannya sendiri. Membaca transkrip tidak diblokir400* Menulis ke transkrip sesi Claude Code, file riwayat `.jsonl` di bawah `~/.claude/projects/` atau direktori konfigurasi Anda yang dikonfigurasi, baik secara langsung maupun melalui perintah shell. Aturan juga mencakup baris metadata yang ditambahkan Claude Code ke setiap entri transkrip untuk pemeriksaannya sendiri. Membaca transkrip tidak diblokir

399* Penghapusan paksa rekursif seperti `rm -rf "$VAR"` atau `Remove-Item -Recurse -Force $dir` yang targetnya adalah variabel shell, atau glob yang berakar pada satu, yang tidak ditugaskan di mana pun dalam percakapan yang dilihat pengklasifikasi. Nilai datang hanya dari output perintah sebelumnya, yang tidak pernah diterima pengklasifikasi, jadi pengklasifikasi tidak dapat memverifikasi target penghapusan terhadap aturan penghapusan lainnya. Blok menghapus ketika Anda menyebutkan jalur pasti yang dihapus, atau ketika Claude menjalankan kembali penghapusan dengan jalur literal yang diselesaikan ditulis ke dalam perintah. Penghapusan yang target pengklasifikasi dapat diselesaikan tidak terpengaruh. Target `Remove-Item` yang merupakan `*` telanjang atau berakhir dalam `/*` atau `\*` tidak pernah mencapai pengklasifikasi: Claude Code [menolak mereka sepenuhnya](#remove-item-in-powershell)401* Penghapusan paksa rekursif seperti `rm -rf "$VAR"` atau `Remove-Item -Recurse -Force $dir` yang targetnya adalah variabel shell, atau glob yang berakar pada satu, yang tidak ditugaskan di mana pun dalam percakapan yang dilihat pengklasifikasi. Nilai datang hanya dari output perintah sebelumnya, yang tidak pernah diterima pengklasifikasi, jadi pengklasifikasi tidak dapat memverifikasi target penghapusan terhadap aturan penghapusan lainnya. Blok menghapus ketika Anda menyebutkan jalur yang tepat dihapus, atau ketika Claude menjalankan kembali penghapusan dengan jalur literal yang diselesaikan ditulis ke dalam perintah. Penghapusan yang targetnya dapat diselesaikan pengklasifikasi tidak terpengaruh. Target `Remove-Item` yang merupakan `*` telanjang atau berakhir dalam `/*` atau `\*` tidak pernah mencapai pengklasifikasi: Claude Code [menolak mereka langsung](#remove-item-in-powershell)

400 402 

401Claude Code v2.1.257 dan lebih baru juga memblokir ini secara default:403Claude Code v2.1.257 dan lebih baru juga memblokir ini secara default:

402 404 

403* Meminta kredensial dari endpoint metadata instans cloud, seperti `169.254.169.254`, atau secara eksplisit mengautentikasi panggilan cloud, cluster, atau registri dengan identitas akun layanan atau node mesin itu sendiri405* Meminta kredensial dari titik akhir metadata instans cloud, seperti `169.254.169.254`, atau secara eksplisit mengautentikasi panggilan cloud, cluster, atau registri dengan identitas akun layanan atau node mesin itu sendiri

404* Menjangkau host publik dengan rute selain permintaan langsung, seperti terowongan, shell terbalik, atau konfigurasi resolver atau proxy yang ditulis ulang untuk menunjuk ke luar406* Menjangkau host publik dengan rute selain permintaan langsung, seperti terowongan, shell terbalik, atau konfigurasi resolver atau proxy yang ditulis ulang untuk menunjuk ke luar

405* Membaca kredensial yang dimiliki host daripada tugas Anda, seperti sertifikat node atau auth registri kontainer node407* Membaca kredensial yang dimiliki host daripada tugas Anda, seperti sertifikat node atau auth registri kontainer node

406* Menghubungkan ke atau memindai kontainer, pod, atau VM saudara yang tidak dimulai Claude, atau node di bawah kontainer408* Menghubungkan ke atau memindai kontainer saudara, pod, atau VM yang tidak dimulai Claude, atau node di bawah kontainer

407 409 

408Jika Claude Code berjalan di tempat yang dimaksudkan untuk memungkinkan salah satu dari ini, jelaskan pengaturan itu dalam entri [Host containment](/docs/id/auto-mode-config#define-trusted-infrastructure) dalam `autoMode.environment`.410Jika Claude Code berjalan di tempat yang dimaksudkan untuk memungkinkan salah satu dari ini, jelaskan pengaturan itu dalam entri [Host containment](/docs/id/auto-mode-config#define-trusted-infrastructure) dalam `autoMode.environment`.

409 411 


417* Menginstal dependensi yang dideklarasikan dalam file kunci atau manifes Anda419* Menginstal dependensi yang dideklarasikan dalam file kunci atau manifes Anda

418* Membaca `.env` dan mengirim kredensial ke API yang cocok420* Membaca `.env` dan mengirim kredensial ke API yang cocok

419* Permintaan HTTP hanya-baca421* Permintaan HTTP hanya-baca

420* Mendorong ke cabang apa pun dari repositori yang Anda kerjakan, termasuk cabang default. Cabang non-default yang nama menandainya sebagai target penerapan atau publikasi, seperti `production` atau `gh-pages`, tidak tercakup: pengklasifikasi menilai push di sana berdasarkan istilahnya sendiri. Konten push masih diperiksa terhadap aturan lain, [`permissions.deny` rules](/docs/id/permissions#manage-permissions) masih dapat memblokir perintah push [seperti yang ditulis](/docs/id/permissions#bash-rule-limits) dalam setiap mode, dan perlindungan cabang remote itu sendiri masih berlaku. Sebelum v2.1.211, hanya push ke cabang yang Anda mulai, cabang yang dibuat Claude, dan push rutin ke cabang default yang diizinkan secara default, dan sebelum v2.1.203 push langsung apa pun ke cabang default diblokir422* Mendorong ke cabang apa pun dari repositori yang Anda kerjakan, termasuk cabang default. Cabang non-default yang nama menandainya sebagai target penerapan atau publikasi, seperti `production` atau `gh-pages`, tidak tercakup: pengklasifikasi menilai dorong di sana berdasarkan istilahnya sendiri. Konten dorong masih diperiksa terhadap aturan lain, [`permissions.deny` rules](/docs/id/permissions#manage-permissions) masih dapat memblokir perintah push [seperti yang ditulis](/docs/id/permissions#bash-rule-limits) dalam setiap mode, dan perlindungan cabang remote itu sendiri masih berlaku. Sebelum v2.1.211, hanya dorong ke cabang yang Anda mulai, cabang yang dibuat Claude, dan dorong rutin ke cabang default yang diizinkan secara default, dan sebelum v2.1.203 dorong langsung apa pun ke cabang default diblokir

421 423 

422Claude Code v2.1.195 dan lebih baru juga memungkinkan ini secara default:424Claude Code v2.1.195 dan lebih baru juga memungkinkan ini secara default:

423 425 

424* Menghapus pekerjaan yang tepat yang dibuat Claude sebelumnya dalam sesi yang sama426* Menghapus pekerjaan yang tepat dibuat Claude sebelumnya dalam sesi yang sama

425* Membaca, meninjau, atau menulis kode, konfigurasi, dan model ancaman terkait keamanan sebagai bagian dari tugas Anda427* Membaca, meninjau, atau menulis kode, konfigurasi, dan model ancaman terkait keamanan sebagai bagian dari tugas Anda

426* Pesan antara agen yang bekerja bersama dalam sesi multi-agen yang sama428* Pesan antara agen yang bekerja bersama dalam sesi multi-agen yang sama

427* Mengirim data ke domain terpercaya, bucket, dan layanan yang Anda daftarkan dalam [`environment`](/docs/id/auto-mode-config#define-trusted-infrastructure). Ini mencakup aliran data saja, bukan operasi destruktif atau kredensial pada infrastruktur yang sama429* Mengirim data ke domain terpercaya, bucket, dan layanan yang Anda daftarkan dalam [`environment`](/docs/id/auto-mode-config#define-trusted-infrastructure). Ini mencakup aliran data saja, bukan operasi destruktif atau kredensial pada infrastruktur yang sama

428* [Claude in Chrome](/docs/id/chrome) navigasi ke domain internal terpercaya, localhost, atau URL yang Anda beri nama430* [Claude di Chrome](/docs/id/chrome) navigasi ke domain internal terpercaya, localhost, atau URL yang Anda sebutkan

429 431 

430Permintaan akses jaringan sandbox tidak mendapatkan akses jaringan secara default. Claude menyebutkan host yang dibutuhkan perintah pada perintah itu sendiri, pengklasifikasi meninjau mereka dengan perintah, dan daftar yang disetujui membuka host tersebut untuk perintah itu saja. [Domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) mencakup apa yang dapat dan tidak dapat dibuka daftar dan apa yang terjadi ketika perintah mencapai host yang tidak terdaftar.432Perintah bersandbox tidak mendapatkan akses jaringan secara default. Claude menyebutkan host yang dibutuhkan perintah pada perintah itu sendiri, pengklasifikasi meninjau mereka dengan perintah, dan daftar yang disetujui membuka host tersebut untuk perintah itu saja. [Domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) mencakup apa yang dapat dan tidak dapat dibuka daftar dan apa yang terjadi ketika perintah mencapai host yang tidak terdaftar.

431 433 

432Jalankan `claude auto-mode defaults` untuk mencetak daftar aturan lengkap sebagai JSON. Jika tindakan rutin diblokir, administrator dapat menambahkan repo terpercaya, bucket, dan layanan melalui pengaturan `autoMode.environment`: lihat [Konfigurasi mode otomatis](/docs/id/auto-mode-config).434Jalankan `claude auto-mode defaults` untuk mencetak daftar aturan lengkap sebagai JSON. Jika tindakan rutin diblokir, administrator dapat menambahkan repo terpercaya, bucket, dan layanan melalui pengaturan `autoMode.environment`: lihat [Konfigurasi mode otomatis](/docs/id/auto-mode-config).

433 435 

434Mendorong ke cabang apa pun dari repositori yang Anda kerjakan dan membuat permintaan tarik yang cocok dengan permintaan Anda berjalan tanpa permintaan, kecuali push atau permintaan tarik jatuh di bawah [daftar diblokir](#what-the-classifier-blocks-by-default), seperti rahasia atau data sensitif meninggalkan repositori, atau permintaan tarik yang menargetkan repositori atau organisasi yang berbeda. Untuk memerlukan checkpoint manusia sebelum tindakan ini sambil tetap dalam mode otomatis, tambahkan aturan `permissions.ask`, yang cocok dengan perintah [seperti yang ditulis](/docs/id/permissions#bash-rule-limits): lihat [Batas umum](/docs/id/auto-mode-config#common-boundaries).436Mendorong ke cabang apa pun dari repositori yang Anda kerjakan dan membuat permintaan tarik yang cocok dengan permintaan Anda berjalan tanpa permintaan, kecuali dorong atau permintaan tarik jatuh di bawah [daftar yang diblokir](#what-the-classifier-blocks-by-default), seperti rahasia atau data sensitif meninggalkan repositori, atau permintaan tarik yang menargetkan repositori atau organisasi yang berbeda. Untuk memerlukan checkpoint manusia sebelum perintah ini sambil tetap dalam mode otomatis, tambahkan aturan `permissions.ask`, yang cocok dengan perintah [seperti yang ditulis](/docs/id/permissions#bash-rule-limits): lihat [Batas umum](/docs/id/auto-mode-config#common-boundaries).

435 437 

436<h3 id="first-read-outside-the-working-directories">438<h3 id="first-read-outside-the-working-directories">

437 Pembacaan pertama di luar direktori kerja439 Pembacaan pertama di luar direktori kerja


439 441 

440Sementara [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) mati, pembacaan file berjalan tanpa permintaan dalam mode otomatis, termasuk pembacaan di luar [direktori kerja](/docs/id/permissions#working-directories). Pertama kali Claude menggunakan alat Read, Grep, atau Glob pada jalur di luar mereka, Claude Code menanyakan Anda apakah akan terus memungkinkan pembacaan tersebut.442Sementara [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) mati, pembacaan file berjalan tanpa permintaan dalam mode otomatis, termasuk pembacaan di luar [direktori kerja](/docs/id/permissions#working-directories). Pertama kali Claude menggunakan alat Read, Grep, atau Glob pada jalur di luar mereka, Claude Code menanyakan Anda apakah akan terus memungkinkan pembacaan tersebut.

441 443 

442Permintaan tidak muncul dalam `-p` non-interaktif atau sesi latar belakang; pembacaan di sana berjalan seperti sebelumnya.444Permintaan tidak muncul dalam `-p` non-interaktif berjalan atau sesi latar belakang; pembacaan di sana berjalan seperti sebelumnya.

443 445 

444Apa pun yang Anda jawab, Claude terus bekerja:446Apa pun yang Anda jawab, Claude terus bekerja:

445 447 

446* **Terus izinkan**: pembacaan berjalan, pembacaan nanti di luar direktori kerja berjalan seperti sebelumnya, dan Claude Code mencatat jawaban Anda sehingga permintaan tidak muncul lagi448* **Terus izinkan**: pembacaan berjalan, pembacaan kemudian di luar direktori kerja berjalan seperti sebelumnya, dan Claude Code mencatat jawaban Anda sehingga permintaan tidak muncul lagi

447* **Blokir mulai sekarang**: pembacaan ditolak, dan Claude Code menetapkan [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) ke `true` dalam pengaturan pengguna Anda, yang membuat alat file menolak pembacaan tersebut dalam setiap sesi nanti dan setiap mode izin. Untuk membiarkan Claude membaca jalur seperti itu nanti, tambahkan direktorinya dengan `/add-dir` atau hapus pengaturannya.449* **Blokir mulai sekarang**: pembacaan ditolak, dan Claude Code menetapkan [`permissions.blockReadsOutsideWorkingDirectories`](/docs/id/settings-reference#permissions-blockreadsoutsideworkingdirectories) ke `true` dalam pengaturan pengguna Anda, yang membuat alat file menolak pembacaan tersebut dalam setiap sesi kemudian dan setiap mode izin. Untuk membiarkan Claude membaca jalur seperti itu nanti, tambahkan direktorinya dengan `/add-dir` atau hapus pengaturan.

448* **Tanya lagi lain kali**: pembacaan ditolak, dan pembacaan berikutnya di luar direktori kerja meminta lagi450* **Tanya lagi lain kali**: pembacaan ditolak, dan pembacaan berikutnya di luar direktori kerja meminta lagi

449 451 

450<h3 id="boundaries-you-state-in-conversation">452<h3 id="boundaries-you-state-in-conversation">

451 Batas yang Anda nyatakan dalam percakapan453 Batas yang Anda nyatakan dalam percakapan

452</h3>454</h3>

453 455 

454Pengklasifikasi memperlakukan batas yang Anda nyatakan dalam percakapan sebagai sinyal blok. Jika Anda memberi tahu Claude "jangan push" atau "tunggu sampai saya meninjau sebelum menerapkan", pengklasifikasi memblokir tindakan yang cocok bahkan ketika aturan default akan memungkinkannya. Batas tetap berlaku sampai Anda mengangkatnya dalam pesan nanti. Penilaian Claude sendiri bahwa kondisi terpenuhi tidak mengangkatnya.456Pengklasifikasi memperlakukan batas yang Anda nyatakan dalam percakapan sebagai sinyal blok. Jika Anda memberi tahu Claude "jangan dorong" atau "tunggu sampai saya meninjau sebelum menerapkan", pengklasifikasi memblokir tindakan yang cocok bahkan ketika aturan default akan memungkinkan mereka. Batas tetap berlaku sampai Anda mengangkatnya dalam pesan kemudian. Penilaian Claude sendiri bahwa kondisi terpenuhi tidak mengangkatnya.

455 457 

456Batas tidak disimpan sebagai aturan. Pengklasifikasi membaca ulang mereka dari transkrip pada setiap pemeriksaan, jadi batas dapat hilang jika [pemadatan konteks](/docs/id/costs#reduce-token-usage) menghapus pesan yang menyatakannya. Untuk jaminan keras, tambahkan [aturan deny](/docs/id/permissions#permission-rule-syntax) sebagai gantinya.458Batas tidak disimpan sebagai aturan. Pengklasifikasi membaca ulang mereka dari transkrip pada setiap pemeriksaan, jadi batas dapat hilang jika [pemadatan konteks](/docs/id/costs#reduce-token-usage) menghapus pesan yang menyatakannya. Untuk jaminan keras, tambahkan [aturan deny](/docs/id/permissions#permission-rule-syntax) sebagai gantinya.

457 459 

458<h3 id="when-auto-mode-falls-back">460<h3 id="when-auto-mode-falls-back">

459 Ketika mode otomatis jatuh kembali461 Ketika mode otomatis kembali

460</h3>462</h3>

461 463 

462Ketika mode otomatis tidak dapat menyetujui tindakan sesi Anda, apa yang terjadi tergantung pada kasusnya:464Ketika mode otomatis tidak dapat menyetujui tindakan sesi Anda, apa yang terjadi tergantung pada kasusnya:

463 465 

464* **Tindakan yang diblokir**: Claude Code menampilkan notifikasi dan mencantumkan tindakan dalam `/permissions` di bawah tab **Recently denied**, di mana Anda dapat menekan `r` untuk mencoba ulang dengan persetujuan manual. Ketika pengklasifikasi menghasilkan [tidak ada veredik pada tindakan](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action), karena pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi sendiri atau responsnya tidak diuraikan, Claude Code menolak tindakan tanpa notifikasi atau entri **Recently denied**.466* **Tindakan yang diblokir**: Claude Code menampilkan notifikasi dan mencantumkan tindakan dalam `/permissions` di bawah tab **Recently denied**, di mana Anda dapat menekan `r` untuk mencoba ulang dengan persetujuan manual. Ketika pengklasifikasi menghasilkan [tidak ada vonis pada tindakan](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action), karena pemeriksaan keselamatan terpisah dari mode otomatis menolak permintaan pengklasifikasi sendiri atau responsnya tidak diuraikan, Claude Code menolak tindakan tanpa notifikasi atau entri **Recently denied**.

465* **Blok berulang**: jika pengklasifikasi memblokir tindakan 3 kali berturut-turut atau 20 kali total, mode otomatis berhenti dan Claude Code melanjutkan permintaan. Menyetujui tindakan yang diminta melanjutkan mode otomatis. Ambang batas ini tidak dapat dikonfigurasi. Tindakan yang diizinkan apa pun mengatur ulang penghitung berturut-turut, sementara penghitung total bertahan untuk sesi dan mengatur ulang hanya ketika batasnya sendiri memicu fallback. Claude Code tidak menghitung penolakan terhadap ambang batas apa pun ketika [pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action); entri tertaut mencakup cara Claude Code menangani penolakan tersebut.467* **Blok berulang**: jika pengklasifikasi memblokir tindakan 3 kali berturut-turut atau 20 kali total, mode otomatis berhenti dan Claude Code melanjutkan permintaan. Menyetujui tindakan yang diminta melanjutkan mode otomatis. Ambang batas ini tidak dapat dikonfigurasi. Tindakan yang diizinkan apa pun mengatur ulang penghitung berturut-turut, sementara penghitung total bertahan untuk sesi dan mengatur ulang hanya ketika batasnya sendiri memicu fallback. Claude Code tidak menghitung penolakan terhadap ambang batas apa pun ketika [pemeriksaan keselamatan terpisah dari mode otomatis menolak permintaan pengklasifikasi](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action); entri tertaut mencakup bagaimana Claude Code menangani penolakan tersebut.

466* **Sesi yang tidak dapat meminta**: jalankan `-p` [non-interaktif](/docs/id/headless) tanpa [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tidak memiliki permintaan untuk jatuh kembali. Ketika blok berulang mencapai ambang batas, tindakan tidak berjalan dan Claude terus bekerja. Hal yang sama berlaku ketika [pemeriksaan keamanan terpisah dari mode otomatis menolak permintaan pengklasifikasi](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code tidak menghentikan jalannya dalam kedua kasus.468* **Sesi yang tidak dapat meminta**: lari `-p` [non-interaktif](/docs/id/headless) tanpa [`--permission-prompt-tool`](/docs/id/cli-reference#cli-flags) tidak memiliki permintaan untuk kembali. Ketika blok berulang mencapai ambang batas, tindakan tidak berjalan dan Claude terus bekerja. Hal yang sama berlaku ketika [pemeriksaan keselamatan terpisah dari mode otomatis menolak permintaan pengklasifikasi](/docs/id/errors#auto-mode-cannot-determine-the-safety-of-an-action). Claude Code tidak menghentikan lari dalam kedua kasus.

467* **Beralih mode selama pemeriksaan**: jika Anda beralih mode izin sementara pemeriksaan pengklasifikasi tertunda, Claude Code membuang veredik yang mode baru tidak akan meminta daripada menerapkannya: Anda diminta persetujuan sebagai gantinya, atau tindakan auto-ditolak dalam mode [`dontAsk`](#allow-only-pre-approved-tools-with-dontask-mode).469* **Beralih mode selama pemeriksaan**: jika Anda beralih mode izin sementara pemeriksaan pengklasifikasi tertunda, Claude Code membuang vonis yang mode baru tidak akan meminta daripada menerapkannya: Anda diminta persetujuan sebagai gantinya, atau tindakan auto-ditolak dalam [`dontAsk` mode](#allow-only-pre-approved-tools-with-dontask-mode).

468 470 

469Blok berulang biasanya berarti pengklasifikasi kehilangan konteks tentang infrastruktur Anda. Gunakan `/feedback` untuk melaporkan positif palsu, atau biarkan administrator [mengonfigurasi infrastruktur terpercaya](/docs/id/auto-mode-config).471Blok berulang biasanya berarti pengklasifikasi kehilangan konteks tentang infrastruktur Anda. Gunakan `/feedback` untuk melaporkan positif palsu, atau minta administrator untuk [mengonfigurasi infrastruktur terpercaya](/docs/id/auto-mode-config).

470 472 

471<span id="how-the-classifier-evaluates-actions" />473<span id="how-the-classifier-evaluates-actions" />

472 474 


475 Setiap tindakan melalui urutan keputusan tetap. Langkah pertama yang cocok menang:477 Setiap tindakan melalui urutan keputusan tetap. Langkah pertama yang cocok menang:

476 478 

477 1. Tindakan yang cocok dengan [aturan allow, ask, atau deny](/docs/id/permissions#manage-permissions) Anda diselesaikan segera, dengan pengecualian ini:479 1. Tindakan yang cocok dengan [aturan allow, ask, atau deny](/docs/id/permissions#manage-permissions) Anda diselesaikan segera, dengan pengecualian ini:

478 * Penulisan ke [jalur yang dilindungi](#protected-paths) dirutekan ke pengklasifikasi bahkan ketika aturan allow cocok, dan begitu juga penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths) dalam Claude Code v2.1.218 dan lebih baru480 * Penulisan ke [jalur yang dilindungi](#protected-paths) rute ke pengklasifikasi bahkan ketika aturan allow cocok, dan begitu juga penghapusan `rm` dan `rmdir` yang menargetkan [jalur kritis](#critical-paths) dalam Claude Code v2.1.218 dan lebih baru

479 * Alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool) meminta Anda secara langsung bahkan ketika aturan allow cocok, dan begitu juga alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code481 * Alat MCP yang ditandai [`requiresUserInteraction`](/docs/id/mcp#require-approval-for-a-specific-tool) meminta Anda langsung bahkan ketika aturan allow cocok, dan begitu juga alat konektor [organisasi Anda atur ke `ask`](/docs/id/mcp#organization-controls-on-connector-tools) dalam sesi di mana pengaturan itu mencapai Claude Code

480 * Perintah shell yang membawa [domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) juga dirutekan ke pengklasifikasi bahkan ketika aturan allow cocok, karena aturan menyetujui perintah, bukan hostnya482 * Perintah shell yang membawa [domain yang diizinkan per-perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) juga rute ke pengklasifikasi bahkan ketika aturan allow cocok, karena aturan menyetujui perintah, bukan hostnya

481 * Aturan ask yang cocok pada konten perintah, seperti `Bash(git push *)`, jatuh kembali ke permintaan izin483 * Aturan ask yang cocok pada konten perintah, seperti `Bash(git push *)`, kembali ke permintaan izin

482 2. Tindakan hanya-baca dan pengeditan file di direktori kerja Anda secara otomatis disetujui, kecuali penulisan ke [jalur yang dilindungi](#protected-paths) dan [pembacaan pertama di luar direktori kerja](#first-read-outside-the-working-directories), yang meminta Anda484 2. Tindakan hanya-baca dan pengeditan file di direktori kerja Anda auto-disetujui, kecuali penulisan ke [jalur yang dilindungi](#protected-paths) dan [pembacaan pertama di luar direktori kerja](#first-read-outside-the-working-directories), yang meminta Anda

483 3. Semuanya yang lain pergi ke pengklasifikasi. Alat konektor dan alat MCP `requiresUserInteraction` yang meminta Anda secara langsung dalam langkah 1 tidak pernah mencapai pengklasifikasi, jadi persetujuan yang diperlukan organisasi atau langkah persetujuan tidak disetujui secara otomatis485 3. Semuanya yang lain pergi ke pengklasifikasi. Alat konektor dan alat MCP `requiresUserInteraction` yang meminta Anda langsung dalam langkah 1 tidak pernah mencapai pengklasifikasi, jadi persetujuan yang diperlukan organisasi maupun langkah persetujuan tidak auto-disetujui

484 4. Jika pengklasifikasi memblokir, Claude menerima alasan dan mencoba alternatif. Dalam sebagian besar sesi, alasan tersebut menyebutkan aturan yang dicocokkan pengklasifikasi, seperti `[Data Exfiltration]`, alih-alih memberikan penjelasan tertulis; lihat [Tinjau penolakan](/docs/id/auto-mode-config#review-denials)486 4. Jika pengklasifikasi memblokir, Claude menerima alasan dan mencoba alternatif. Dalam sebagian besar sesi alasan menyebutkan aturan yang cocok pengklasifikasi, seperti `[Data Exfiltration]`, daripada memberikan penjelasan tertulis; lihat [Tinjau penolakan](/docs/id/auto-mode-config#review-denials)

485 487 

486 Saat memasuki mode otomatis, aturan allow luas yang memberikan eksekusi kode arbitrer dijatuhkan:488 Saat memasuki mode otomatis, aturan allow luas yang memberikan eksekusi kode arbitrer dijatuhkan:

487 489 

488 * Blanket `Bash(*)` atau `PowerShell(*)`490 * Blanket `Bash(*)` atau `PowerShell(*)`

489 * Interpreter dengan wildcard seperti `Bash(python*)`491 * Interpreter dengan wildcard seperti `Bash(python*)`

490 * Perintah jalankan pengelola paket492 * Perintah jalankan pengelola paket

491 * Aturan allow `Agent`493 * Aturan `Agent` allow

492 * [`Monitor`](/docs/id/tools-reference#monitor-tool) aturan allow, karena Claude Code menjalankan perintah Monitor melalui shell494 * Aturan allow [`Monitor`](/docs/id/tools-reference#monitor-tool), karena Claude Code menjalankan perintah Monitor melalui shell

493 495 

494 Aturan sempit seperti `Bash(npm test)` tetap berlaku. Claude Code mengembalikan aturan yang dijatuhkan ketika Anda meninggalkan mode otomatis. Sebelum v2.1.236, Claude Code membiarkan aturan allow `Monitor` berlaku dalam mode otomatis, jadi aturan yang cocok dengan seluruh alat menyetujui perintah Monitor tanpa tinjauan pengklasifikasi.496 Aturan sempit seperti `Bash(npm test)` tetap berlaku. Claude Code mengembalikan aturan yang dijatuhkan ketika Anda meninggalkan mode otomatis. Sebelum v2.1.236, Claude Code membiarkan aturan allow `Monitor` berlaku dalam mode otomatis, jadi aturan yang cocok dengan seluruh alat menyetujui perintah Monitor tanpa tinjauan pengklasifikasi.

495 497 

496 Claude Code juga menjalankan `git status` itu sendiri sebelum perintah yang akan membuang pekerjaan yang tidak dilakukan commit, seperti `git reset --hard` atau `rm -rf`, dan menunjukkan pengklasifikasi apakah pekerjaan staged, modified, atau untracked ada. Claude Code melaporkan file untracked dalam pemeriksaan itu bahkan ketika konfigurasi git repositori menetapkan `status.showUntrackedFiles=no`.498 Claude Code juga menjalankan `git status` itu sendiri sebelum perintah yang akan membuang pekerjaan yang tidak dilakukan komit, seperti `git reset --hard` atau `rm -rf`, dan menunjukkan pengklasifikasi apakah pekerjaan yang dipentaskan, dimodifikasi, atau tidak dilacak ada. Claude Code melaporkan file yang tidak dilacak dalam pemeriksaan itu bahkan ketika konfigurasi git repositori menetapkan `status.showUntrackedFiles=no`.

499 

500 Dalam permintaan pengklasifikasi yang dikirim oleh Claude Code itu sendiri, pengklasifikasi melihat pesan pengguna, panggilan alat selain pencarian hanya-baca seperti pembacaan file dan pencarian, dan konten CLAUDE.md Anda. Hasil alat dilepas dari permintaan tersebut, jadi konten bermusuhan dalam file atau halaman web tidak dapat memanipulasi pengklasifikasi secara langsung.

497 501 

498 Dalam permintaan pengklasifikasi yang dikirim oleh Claude Code itu sendiri, pengklasifikasi melihat pesan pengguna, panggilan alat selain pencarian hanya-baca seperti pembacaan file dan pencarian, dan konten CLAUDE.md Anda. Hasil alat dilepas dari permintaan tersebut, jadi konten bermusuhan dalam file atau halaman web tidak dapat memanipulasinya secara langsung. Anda dapat memberi anotasi hasil panggilan dengan [field `classifierContext` hook PostToolUse](/docs/id/hooks#annotate-a-result-for-the-auto-mode-classifier), yang dibaca pengklasifikasi sebagai konteks yang disediakan aplikasi. Field ini memerlukan Claude Code v2.1.236 atau lebih baru.502 Anda dapat memberi anotasi hasil panggilan dengan [field `classifierContext` hook PostToolUse](/docs/id/hooks#annotate-a-result-for-the-auto-mode-classifier), yang dibaca pengklasifikasi sebagai konteks yang disediakan aplikasi. Field memerlukan Claude Code v2.1.236 atau lebih baru.

499 503 

500 Probe server-side terpisah memindai hasil alat masuk dan menandai konten mencurigakan sebelum Claude membacanya. Untuk lebih lanjut tentang cara lapisan ini bekerja bersama, lihat [pengumuman mode otomatis](https://claude.com/blog/auto-mode) dan [penggalian teknik](https://www.anthropic.com/engineering/claude-code-auto-mode).504 Probe sisi server terpisah memindai hasil alat masuk dan menandai konten mencurigakan sebelum Claude membacanya. Untuk lebih lanjut tentang bagaimana lapisan ini bekerja bersama, lihat [pengumuman mode otomatis](https://claude.com/blog/auto-mode) dan [penggalian teknik](https://www.anthropic.com/engineering/claude-code-auto-mode).

501 </Accordion>505 </Accordion>

502 506 

503 <Accordion title="Bagaimana mode otomatis menangani subagen">507 <Accordion title="Bagaimana mode otomatis menangani subagen">


505 509 

506 1. Sebelum subagen dimulai, deskripsi tugas yang didelegasikan dievaluasi, jadi tugas yang terlihat berbahaya diblokir pada waktu spawn.510 1. Sebelum subagen dimulai, deskripsi tugas yang didelegasikan dievaluasi, jadi tugas yang terlihat berbahaya diblokir pada waktu spawn.

507 2. Sementara subagen berjalan, setiap tindakannya melalui pengklasifikasi dengan aturan yang sama seperti sesi induk, dan `permissionMode` apa pun dalam frontmatter subagen diabaikan.511 2. Sementara subagen berjalan, setiap tindakannya melalui pengklasifikasi dengan aturan yang sama seperti sesi induk, dan `permissionMode` apa pun dalam frontmatter subagen diabaikan.

508 3. Ketika subagen selesai, pengklasifikasi meninjau pekerjaannya dan laporan finalnya sebelum induk membaca laporan. Ketika pengklasifikasi menandai pekerjaan atau laporan subagen, atau pemeriksaan keamanan API terpisah menolak tinjauan, laporan masih disampaikan, ditambahkan dengan peringatan keamanan. Ketika pengklasifikasi tidak tersedia untuk tinjauan, laporan tiba dengan catatan untuk memverifikasi pekerjaan subagen sebelum bertindak berdasarkannya.512 3. Ketika subagen selesai, pengklasifikasi meninjau pekerjaannya dan laporan akhirnya sebelum induk membaca laporan. Ketika pengklasifikasi menandai pekerjaan atau laporan subagen, atau pemeriksaan keselamatan API terpisah menolak tinjauan, laporan masih disampaikan, diawali dengan peringatan keamanan. Ketika pengklasifikasi tidak tersedia untuk tinjauan, laporan tiba dengan catatan untuk memverifikasi pekerjaan subagen sebelum bertindak atas dasar itu.

509 513 

510 Langkah 1 memerlukan Claude Code v2.1.178 atau lebih baru. Versi sebelumnya menerapkan pengklasifikasi pada langkah 2 dan 3, tetapi tidak mengevaluasi deskripsi tugas sebelum subagen dimulai.514 Langkah 1 memerlukan Claude Code v2.1.178 atau lebih baru. Versi sebelumnya menerapkan pengklasifikasi pada langkah 2 dan 3, tetapi tidak mengevaluasi deskripsi tugas sebelum subagen dimulai.

511 </Accordion>515 </Accordion>

512 516 

513 <Accordion title="Biaya dan latensi">517 <Accordion title="Biaya dan latensi">

514 Pengklasifikasi berjalan pada Claude Sonnet 5 secara default daripada pada pilihan `/model` Anda. Model pengklasifikasi yang dikonfigurasi Anthropic di sisi server mengambil alih default itu. Ketika model sesi Anda adalah Claude Sonnet 4.6, atau ketika [`availableModels`](/docs/id/model-config#restrict-model-selection) mengecualikan Sonnet 5, pengklasifikasi berjalan pada model sesi Anda sebagai gantinya, atau pada model Opus ketika sesi berjalan pada [model Fable](/docs/id/model-config#work-with-fable); pada penyedia selain Anthropic API, fallback Opus itu adalah model Opus default penyedia.518 Pengklasifikasi berjalan pada Claude Sonnet 5 secara default daripada pada pilihan `/model` Anda. Model pengklasifikasi yang dikonfigurasi Anthropic sisi server mengambil alih default itu. Ketika model sesi Anda adalah Claude Sonnet 4.6, atau ketika [`availableModels`](/docs/id/model-config#restrict-model-selection) mengecualikan Sonnet 5, pengklasifikasi berjalan pada model sesi sebagai gantinya, atau pada model Opus ketika sesi berjalan pada [model Fable](/docs/id/model-config#work-with-fable); di penyedia selain API Anthropic, fallback Opus itu adalah model Opus default penyedia.

515 519 

516 Permintaan mode otomatis pertama sesi memvalidasi default Sonnet 5: jika permintaan berhasil, Sonnet 5 tetap model pengklasifikasi sesi, dan jika gagal karena model tidak tersedia, sesi menggunakan fallback sebagai gantinya. Setelah validasi itu diselesaikan, model pengklasifikasi tidak berubah untuk sesi.520 Permintaan mode otomatis pertama sesi memvalidasi default Sonnet 5: jika permintaan berhasil, Sonnet 5 tetap model pengklasifikasi sesi, dan jika gagal karena model tidak tersedia, sesi menggunakan fallback sebagai gantinya. Setelah validasi itu diselesaikan, model pengklasifikasi tidak berubah untuk sesi.

517 521 

518 Pada paket Enterprise dan pada akun yang menggunakan Claude API, [Claude Platform on AWS](/docs/id/claude-platform-on-aws), Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry, panggilan pengklasifikasi dihitung terhadap penggunaan token Anda. Setiap pemeriksaan mengirim sebagian dari transkrip ditambah tindakan yang tertunda, menambahkan putaran perjalanan sebelum eksekusi. Pembacaan dan pengeditan direktori kerja di luar jalur yang dilindungi melewati pengklasifikasi, jadi overhead datang terutama dari perintah shell dan operasi jaringan. Pada Amazon Bedrock, Agent Platform Google Cloud, dan Microsoft Foundry, Anda dapat memindahkan tinjauan ke dalam permintaan model sesi sebagai gantinya; lihat [Tinjauan pengklasifikasi di sisi server](#server-side-classifier-review).522 Pada paket Enterprise dan pada akun yang menggunakan Claude API, [Claude Platform di AWS](/docs/id/claude-platform-on-aws), Amazon Bedrock, Agent Platform Google Cloud, atau Microsoft Foundry, panggilan pengklasifikasi dihitung terhadap penggunaan token Anda. Setiap pemeriksaan mengirim sebagian dari transkrip ditambah tindakan yang tertunda, menambahkan putaran perjalanan sebelum eksekusi. Pembacaan dan pengeditan direktori kerja di luar jalur yang dilindungi melewati pengklasifikasi, jadi overhead datang terutama dari perintah shell dan operasi jaringan. Di mana server meninjau tindakan sebagai bagian dari permintaan model sesi, tidak ada panggilan pengklasifikasi terpisah untuk dihitung; lihat [Tinjauan pengklasifikasi sisi server](#server-side-classifier-review).

519 523 

520 Akses jaringan sandbox tidak menambahkan permintaan pengklasifikasi per-koneksi. Pengklasifikasi menilai [host yang dinamai perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) bersama dengan perintah dalam satu tinjauan, dan Claude Code memeriksa setiap koneksi terhadap daftar yang disetujui tanpa memanggil pengklasifikasi lagi.524 Akses jaringan bersandbox tidak menambahkan permintaan pengklasifikasi per-koneksi. Pengklasifikasi menilai [host yang dinamai perintah](/docs/id/sandboxing#per-command-allowed-domains-in-auto-mode) bersama dengan perintah dalam satu tinjauan, dan Claude Code memeriksa setiap koneksi terhadap daftar yang disetujui tanpa memanggil pengklasifikasi lagi.

521 </Accordion>525 </Accordion>

522</AccordionGroup>526</AccordionGroup>

523 527 

routines.md +18 −3

Details

52 52 

53Formulir pembuatan menyiapkan prompt rutinitas, repositori, lingkungan, konektor, dan pemicu.53Formulir pembuatan menyiapkan prompt rutinitas, repositori, lingkungan, konektor, dan pemicu.

54 54 

55Rutinitas berjalan secara otonom sebagai sesi cloud Claude Code penuh: tidak ada pemilih mode izin dan tidak ada prompt persetujuan selama jalankan. Sesi dapat menjalankan perintah shell, menggunakan [skills](/docs/id/skills) yang berkomitmen pada repositori yang diklon, dan memanggil konektor apa pun yang Anda sertakan. Apa yang dapat dijangkau rutinitas ditentukan oleh repositori yang Anda pilih, [lingkungan](/docs/id/cloud-environments) akses jaringan dan variabel, dan konektor yang Anda sertakan. Cakupan masing-masing ke apa yang benar-benar dibutuhkan rutinitas.55Rutinitas berjalan secara otonom sebagai sesi cloud Claude Code penuh: tidak ada pemilih mode izin, dan sesi menjalankan perintah shell, menggunakan [skills](/docs/id/skills) yang berkomitmen pada repositori yang diklon, dan memanggil konektor apa pun yang Anda sertakan, semuanya tanpa berhenti untuk persetujuan selain beberapa tindakan [artifact](/docs/id/artifacts).

56 

57Apa yang dapat dijangkau rutinitas ditentukan oleh repositori yang Anda pilih, [lingkungan](/docs/id/cloud-environments) akses jaringan dan variabel, dan konektor yang Anda sertakan. Cakupan masing-masing ke apa yang benar-benar dibutuhkan rutinitas.

58 

59Ketika jadwal rutinitas atau **Run now** memulai jalankan, Claude menerbitkan kembali artifact yang ada tanpa bertanya hanya ketika semua hal ini berlaku:

60 

61* Anda dapat mengedit artifact dan itu milik organisasi Anda sendiri

62* Artifact tidak dibagikan secara publik, dan tidak dibagikan dengan orang-orang tertentu atau organisasi Anda dengan versi terbaru dipilih sebagai versi yang dilihat penonton

63* Penerbitan hanya membawa halaman, tanpa file pendukung atau apa pun yang ditambahkan, dan tidak memaksa versi yang lebih baru

64* Halaman tidak memiliki hibah yang melampaui halaman, seperti [panggilan konektor](/docs/id/artifacts#pull-live-data-with-mcp-connectors)

65 

66Dalam setiap kasus lain, termasuk menerbitkan artifact baru, Claude bertanya terlebih dahulu. Ketika pekerjaan rutinitas adalah menjaga halaman tetap terkini, berikan artifact yang sudah Anda terbitkan.

56 67 

57Rutinitas milik akun claude.ai individual Anda. Mereka tidak dibagikan dengan rekan kerja, dan mereka dihitung terhadap tunjangan jalankan harian akun Anda. Apa pun yang dilakukan rutinitas melalui identitas GitHub yang terhubung atau konektor muncul sebagai Anda: komit dan permintaan tarik membawa pengguna GitHub Anda, dan pesan Slack, tiket Linear, atau tindakan konektor lainnya menggunakan akun tertaut Anda untuk layanan tersebut.68Rutinitas milik akun claude.ai individual Anda. Mereka tidak dibagikan dengan rekan kerja, dan mereka dihitung terhadap tunjangan jalankan harian akun Anda. Apa pun yang dilakukan rutinitas melalui identitas GitHub yang terhubung atau konektor muncul sebagai Anda: komit dan permintaan tarik membawa pengguna GitHub Anda, dan pesan Slack, tiket Linear, atau tindakan konektor lainnya menggunakan akun tertaut Anda untuk layanan tersebut.

58 69 


349 360 

350Rutinitas memerlukan akses GitHub untuk mengklon repositori. Ketika Anda membuat rutinitas dari CLI dengan `/schedule`, Claude memeriksa apakah akun Anda memiliki akses GitHub untuk repositori tempat Anda menjalankannya dan, jika tidak, menambahkan catatan penyiapan yang menamai cara memberikan akses. Lihat [GitHub authentication options](/docs/id/claude-code-on-the-web#github-authentication-options) untuk dua cara memberikan akses.361Rutinitas memerlukan akses GitHub untuk mengklon repositori. Ketika Anda membuat rutinitas dari CLI dengan `/schedule`, Claude memeriksa apakah akun Anda memiliki akses GitHub untuk repositori tempat Anda menjalankannya dan, jika tidak, menambahkan catatan penyiapan yang menamai cara memberikan akses. Lihat [GitHub authentication options](/docs/id/claude-code-on-the-web#github-authentication-options) untuk dua cara memberikan akses.

351 362 

363Jika koneksi GitHub Anda hilang atau kedaluwarsa ketika jalankan akan dilakukan, rutinitas melewati jalankan hingga Anda terhubung kembali, hingga 72 jam. Hubungkan kembali GitHub dalam jendela tersebut dan rutinitas akan dilanjutkan dengan sendirinya. Setelah 72 jam tanpa koneksi, rutinitas mati, dan Anda menghidupkannya kembali setelah terhubung kembali ke GitHub.

364 

352Setiap repositori yang Anda tambahkan diklon pada setiap jalankan. Claude dimulai dari cabang default repositori kecuali prompt Anda menentukan sebaliknya.365Setiap repositori yang Anda tambahkan diklon pada setiap jalankan. Claude dimulai dari cabang default repositori kecuali prompt Anda menentukan sebaliknya.

353 366 

354Claude mendorong pekerjaannya ke cabang dengan awalan `claude/`, yang selalu diterima. Ketika prompt Anda mengarahkan Claude untuk mendorong ke cabang lain, Claude Code memeriksa dorongan terlebih dahulu dan menolaknya jika salah satu dari berikut ini benar:367Claude mendorong pekerjaannya ke cabang dengan awalan `claude/`, yang selalu diterima. Ketika prompt Anda mengarahkan Claude untuk mendorong ke cabang lain, Claude Code memeriksa dorongan terlebih dahulu dan menolaknya jika salah satu dari berikut ini benar:


377 390 

378Lingkungan **Default** menggunakan akses jaringan **Trusted**, yang hanya memungkinkan [daftar allowlist default](/docs/id/cloud-environments#default-allowed-domains) melalui jaringan sesi. Permintaan pada jalur tersebut ke host di luar allowlist gagal dengan `403` dan `x-deny-reason: host_not_allowed`. Lalu lintas konektor MCP dirutekan melalui server Anthropic daripada jalur tersebut, jadi konektor yang Anda tambahkan ke rutinitas bekerja tanpa menambahkan host mereka ke **Allowed domains**. Hapus konektor apa pun yang tidak Anda butuhkan di bawah [Konektor](#connectors).391Lingkungan **Default** menggunakan akses jaringan **Trusted**, yang hanya memungkinkan [daftar allowlist default](/docs/id/cloud-environments#default-allowed-domains) melalui jaringan sesi. Permintaan pada jalur tersebut ke host di luar allowlist gagal dengan `403` dan `x-deny-reason: host_not_allowed`. Lalu lintas konektor MCP dirutekan melalui server Anthropic daripada jalur tersebut, jadi konektor yang Anda tambahkan ke rutinitas bekerja tanpa menambahkan host mereka ke **Allowed domains**. Hapus konektor apa pun yang tidak Anda butuhkan di bawah [Konektor](#connectors).

379 392 

380Untuk memungkinkan domain tambahan:393Untuk memungkinkan domain tambahan pada salah satu lingkungan Anda sendiri, ikuti langkah-langkah ini. [Lingkungan bersama organisasi](/docs/id/cloud-environments#organization-shared-environments) membuka baca-saja di sini, jadi Pemilik mengubah akses jaringannya dari halaman **Cloud environments** di [pengaturan admin](https://claude.ai/admin-settings) sebagai gantinya.

381 394 

382<Steps>395<Steps>

383 <Step title="Buka rutinitas untuk diedit">396 <Step title="Buka rutinitas untuk diedit">


413 426 

414Jalankan sekali saja tidak dihitung terhadap batas jalankan rutinitas harian. Mereka mengurangi penggunaan langganan reguler Anda seperti sesi lainnya.427Jalankan sekali saja tidak dihitung terhadap batas jalankan rutinitas harian. Mereka mengurangi penggunaan langganan reguler Anda seperti sesi lainnya.

415 428 

429Sementara langganan Anda dijeda, rutinitas Anda ditahan dan tidak berjalan. Setelah langganan Anda aktif kembali, aktifkan kembali.

430 

416<h2 id="troubleshooting">431<h2 id="troubleshooting">

417 Pemecahan masalah432 Pemecahan masalah

418</h2>433</h2>


427 442 

428* Anda diautentikasi dengan Console API key, [profil Anthropic atau kredensial federasi](/docs/id/authentication#anthropic-profiles-and-federation-credentials), atau penyedia cloud seperti Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry. `/schedule` memerlukan login langganan claude.ai. Dengan Console API key atau profil, dan pengambilan feature-flag diaktifkan, mengirimkan `/schedule` menampilkan `/schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access`. Dengan login penyedia cloud, Anda masih melihat `Unknown command: /schedule`. Jika `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN` diatur di shell Anda, atau `apiKeyHelper` diatur di `settings.json`, hapus terlebih dahulu, karena ini memiliki prioritas lebih tinggi daripada login claude.ai. Profil atau kredensial federasi juga memiliki prioritas, jadi matikan itu juga443* Anda diautentikasi dengan Console API key, [profil Anthropic atau kredensial federasi](/docs/id/authentication#anthropic-profiles-and-federation-credentials), atau penyedia cloud seperti Amazon Bedrock, Google Cloud's Agent Platform, atau Microsoft Foundry. `/schedule` memerlukan login langganan claude.ai. Dengan Console API key atau profil, dan pengambilan feature-flag diaktifkan, mengirimkan `/schedule` menampilkan `/schedule is available with Claude for Enterprise — ask your admin about migrating from API-key access`. Dengan login penyedia cloud, Anda masih melihat `Unknown command: /schedule`. Jika `ANTHROPIC_API_KEY` atau `ANTHROPIC_AUTH_TOKEN` diatur di shell Anda, atau `apiKeyHelper` diatur di `settings.json`, hapus terlebih dahulu, karena ini memiliki prioritas lebih tinggi daripada login claude.ai. Profil atau kredensial federasi juga memiliki prioritas, jadi matikan itu juga

429* Anda sepenuhnya keluar, tanpa API key atau kredensial lainnya. Dengan pengambilan feature-flag diaktifkan, mengirimkan `/schedule` menampilkan `/schedule requires a claude.ai subscription. Run /login to sign in with your claude.ai account.` Sebelum v2.1.268, sesi yang keluar menampilkan pesan Claude for Enterprise yang sama seperti Console API key444* Anda sepenuhnya keluar, tanpa API key atau kredensial lainnya. Dengan pengambilan feature-flag diaktifkan, mengirimkan `/schedule` menampilkan `/schedule requires a claude.ai subscription. Run /login to sign in with your claude.ai account.` Sebelum v2.1.268, sesi yang keluar menampilkan pesan Claude for Enterprise yang sama seperti Console API key

430* Anda berada di dalam sesi cloud. Kelola rutinitas dari [UI web](https://claude.ai/code/routines) sebagai gantinya445* Anda berada di dalam sesi cloud, di mana mengirimkan `/schedule` menjawab bahwa perintah tidak tersedia di lingkungan tersebut. Kelola rutinitas dari [UI web](https://claude.ai/code/routines) sebagai gantinya

431* Kebijakan organisasi Anda menonaktifkan [sesi cloud](/docs/id/claude-code-on-the-web), yang rutinitas jalankan. Dalam kasus ini, mengirimkan `/schedule` menjawab [`Cloud sessions are disabled by your organization's policy`](/docs/id/errors#cloud-sessions-are-disabled-by-your-organizations-policy) sebagai gantinya. Sebelum v2.1.268, ini mengembalikan `Unknown command: /schedule`446* Kebijakan organisasi Anda menonaktifkan [sesi cloud](/docs/id/claude-code-on-the-web), yang rutinitas jalankan. Dalam kasus ini, mengirimkan `/schedule` menjawab [`Cloud sessions are disabled by your organization's policy`](/docs/id/errors#cloud-sessions-are-disabled-by-your-organizations-policy) sebagai gantinya. Sebelum v2.1.268, ini mengembalikan `Unknown command: /schedule`

432* Pemilik [mematikan rutinitas](#routines-are-disabled-by-your-organizations-policy) untuk organisasi Team atau Enterprise Anda. Sebelum v2.1.227, perintah masih muncul dalam kasus ini, dan claude.ai menolak rutinitas ketika Claude mencoba membuat atau menjalankannya447* Pemilik [mematikan rutinitas](#routines-are-disabled-by-your-organizations-policy) untuk organisasi Team atau Enterprise Anda. Sebelum v2.1.227, perintah masih muncul dalam kasus ini, dan claude.ai menolak rutinitas ketika Claude mencoba membuat atau menjalankannya

433 448 

Details

168* Runner menetapkan `GCM_INTERACTIVE=never`, jadi Git Credential Manager tidak membuka dialog sign-in.168* Runner menetapkan `GCM_INTERACTIVE=never`, jadi Git Credential Manager tidak membuka dialog sign-in.

169* Runner menghapus `core.askPass`, jadi jika Anda menggunakan helper askpass, aturnya melalui variabel lingkungan `GIT_ASKPASS`.169* Runner menghapus `core.askPass`, jadi jika Anda menggunakan helper askpass, aturnya melalui variabel lingkungan `GIT_ASKPASS`.

170 170 

171Jika host git Anda menolak kredensial, atau Anda tidak mengonfigurasi satu, runner mencoba beberapa kali dan kemudian gagal persiapan repositori. Runner tidak meneruskan pengaturan ini ke lingkungan sesi.171Jika host git Anda menolak kredensial, atau Anda tidak mengonfigurasi satu, runner mencoba beberapa kali dan kemudian gagal persiapan repositori ketika repositori adalah yang didorong sesi untuk hasil. Untuk repositori yang hanya dibaca sesi, [Troubleshooting](#troubleshooting) mencakup kapan runner melewatinya. Runner tidak meneruskan pengaturan ini ke lingkungan sesi.

172 172 

173Jika direktori checkout dimiliki oleh uid berbeda dari proses runner, git menolak untuk beroperasi pada mereka; tambahkan `safe.directory`:173Jika direktori checkout dimiliki oleh uid berbeda dari proses runner, git menolak untuk beroperasi pada mereka; tambahkan `safe.directory`:

174 174 


531* **Sesi tidak dapat menjangkau jaringan melalui proxy egress yang mengautentikasi**: ketika sumber yang Anda atur dengan [`--proxy-authorization-command` atau `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) gagal, habis waktu setelah 30 detik, atau menghasilkan nilai kosong, runner menjawab koneksi itu `502 Bad Gateway` dan mencatat alasannya. Runner menyunting stderr perintah dalam log itu dan tidak pernah mencatat nilai header. Dengan `--proxy-authorization-command`, jalankan perintah sendiri pada host untuk mengonfirmasi bahwa itu mencetak seluruh nilai header pada stdout. Jika runner malah keluar saat startup dengan `could not start the proxy-authorization listener`, itu tidak dapat membuka pendengar loopback-nya.531* **Sesi tidak dapat menjangkau jaringan melalui proxy egress yang mengautentikasi**: ketika sumber yang Anda atur dengan [`--proxy-authorization-command` atau `--proxy-authorization-file`](#authenticate-to-an-egress-proxy) gagal, habis waktu setelah 30 detik, atau menghasilkan nilai kosong, runner menjawab koneksi itu `502 Bad Gateway` dan mencatat alasannya. Runner menyunting stderr perintah dalam log itu dan tidak pernah mencatat nilai header. Dengan `--proxy-authorization-command`, jalankan perintah sendiri pada host untuk mengonfirmasi bahwa itu mencetak seluruh nilai header pada stdout. Jika runner malah keluar saat startup dengan `could not start the proxy-authorization listener`, itu tidak dapat membuka pendengar loopback-nya.

532* **Runner mencatat baris `Poll failed` yang berisi `rejecting the malformed poll response`**: runner menerima respons work-poll yang badan-nya bukan JSON yang diharapkan antrian, paling sering karena sesuatu antara runner dan `api.anthropic.com`, seperti proxy intersepsi atau portal captive, menjawab dengan halaman sendiri. Runner menolak respons, menghitung di bawah jenis `transport` dari [metrik](/docs/id/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_poll_errors_total`, dan mencoba ulang pada jadwal poll-gagal yang dijelaskan dalam [Session lifecycle](/docs/id/self-hosted-environments#session-lifecycle). Runner terus melayani sesi live-nya. Konfigurasikan proxy untuk melewatkan respons dari `api.anthropic.com` tanpa perubahan. Sebelum v2.1.246, runner membaca respons seperti itu sebagai antrian kerja kosong, yang dapat mengakhiri sesi live-nya atau membuatnya keluar.532* **Runner mencatat baris `Poll failed` yang berisi `rejecting the malformed poll response`**: runner menerima respons work-poll yang badan-nya bukan JSON yang diharapkan antrian, paling sering karena sesuatu antara runner dan `api.anthropic.com`, seperti proxy intersepsi atau portal captive, menjawab dengan halaman sendiri. Runner menolak respons, menghitung di bawah jenis `transport` dari [metrik](/docs/id/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_poll_errors_total`, dan mencoba ulang pada jadwal poll-gagal yang dijelaskan dalam [Session lifecycle](/docs/id/self-hosted-environments#session-lifecycle). Runner terus melayani sesi live-nya. Konfigurasikan proxy untuk melewatkan respons dari `api.anthropic.com` tanpa perubahan. Sebelum v2.1.246, runner membaca respons seperti itu sebagai antrian kerja kosong, yang dapat mengakhiri sesi live-nya atau membuatnya keluar.

533* **Cabang sesi tidak lagi ada di remote**: untuk sumber git yang hanya dibaca sesi, runner melewati sumber itu dan melanjutkan pada sumber yang tersisa. Untuk sumber yang sesi dorong hasil ke, cabang yang dihapus, biasanya karena digabungkan dan dihapus otomatis, gagal sesi dengan kesalahan yang menamai repositori dan cabang dan meminta Anda untuk mengembalikan cabang dan mencoba ulang. Runner gagal sesi dengan kesalahan yang sama ketika melewati akan meninggalkannya tanpa repositori sama sekali. Sebelum v2.1.228, sesi seperti itu dimulai di direktori kosong.533* **Cabang sesi tidak lagi ada di remote**: untuk sumber git yang hanya dibaca sesi, runner melewati sumber itu dan melanjutkan pada sumber yang tersisa. Untuk sumber yang sesi dorong hasil ke, cabang yang dihapus, biasanya karena digabungkan dan dihapus otomatis, gagal sesi dengan kesalahan yang menamai repositori dan cabang dan meminta Anda untuk mengembalikan cabang dan mencoba ulang. Runner gagal sesi dengan kesalahan yang sama ketika melewati akan meninggalkannya tanpa repositori sama sekali. Sebelum v2.1.228, sesi seperti itu dimulai di direktori kosong.

534* **Sesi dimulai tanpa salah satu repositorinya**: pada runner tanpa hook [`checkout`](/docs/id/self-hosted-environments-configuration#checkout), host git dapat menolak pemeriksaan akses runner untuk repositori yang hanya dibaca sesi. Runner kemudian melewati repositori itu, mencatat baris `[runner:warn] could not access context source` yang menamai penolakan, dan memulai sesi pada sumber yang tersisa.

535 

536 Runner hanya melewati penolakan yang jelas: host menjawab bahwa repositori tidak ditemukan, git tidak menemukan kredensial untuk host, atau autentikasi gagal. Kegagalan jaringan, timeout, atau HTTP `403` masih gagal memulai sesi, begitu juga penolakan untuk repositori yang sesi dorong hasil ke. Runner masih gagal sesi yang melewati akan meninggalkannya tanpa repositori sama sekali. Dengan [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy), runner hanya melewati repositori yang proxy git sendiri tolak.

537 

538 Pemeriksaan akses berjalan lagi setiap kali sesi dimulai pada runner, jadi setelah identitas git runner memiliki akses baca, awal berikutnya mengklona repositori. Sebelum v2.1.274, masing-masing penolakan ini gagal memulai sesi.

534* **Sesi membutuhkan waktu berapa menit untuk dimulai**: klon awal biasanya mendominasi. Tonton [metrik](/docs/id/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_session_init_duration_seconds` untuk mengonfirmasi, dan potong klon dengan [pre-warmed checkout](#reuse-a-pre-warmed-checkout) atau `CLAUDE_RUNNER_FETCH_DEPTH` yang lebih kecil.539* **Sesi membutuhkan waktu berapa menit untuk dimulai**: klon awal biasanya mendominasi. Tonton [metrik](/docs/id/self-hosted-environments-reference#prometheus-metrics) `claude_code_self_hosted_runner_session_init_duration_seconds` untuk mengonfirmasi, dan potong klon dengan [pre-warmed checkout](#reuse-a-pre-warmed-checkout) atau `CLAUDE_RUNNER_FETCH_DEPTH` yang lebih kecil.

540* **Turns gagal dengan 401**: setiap sesi mengautentikasi panggilan model dengan [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/id/self-hosted-environments-configuration#wrapper-scripts) jangka pendek yang runner ambil dari Anthropic dan putar di atas stdin sesi. Ketika turn berakhir dengan 401 atau 403 dari API model, runner mengambil token segar dan meneruskannya ke sesi. Turn yang gagal tidak dicoba ulang.

541 

542 Ketika pengambilan gagal, runner mencatat baris `inference_token refresh failed` yang mengatakan kapan itu akan mencoba ulang, dan itu terus mencoba ulang selama sesi berjalan.

543 

544 Jika setiap panggilan mulai gagal sekitar 30 menit ke dalam sesi, skrip wrapper mungkin telah memutuskan stdin sesi, jadi rotasi token tidak dapat menjangkaunya; lihat [Keep stdin and file descriptor 3 attached](/docs/id/self-hosted-environments-configuration#keep-stdin-and-file-descriptor-3-attached).

545 

546 Sebelum v2.1.274, runner berhenti mencoba ulang pengambilan yang gagal setelah beberapa upaya dan menunggu yang dijadwalkan berikutnya. Turn yang gagal tidak memicu pengambilan, jadi setiap turn gagal dengan 401 sampai pengambilan yang dijadwalkan berikutnya.

535* **Pod dibunuh di tengah-drain**: naikkan `terminationGracePeriodSeconds` ke setidaknya nilai yang dicatat runner saat startup. Lihat [Shutdown timing](#shutdown-timing).547* **Pod dibunuh di tengah-drain**: naikkan `terminationGracePeriodSeconds` ke setidaknya nilai yang dicatat runner saat startup. Lihat [Shutdown timing](#shutdown-timing).

536 548 

537Setelah logging diinisialisasi, runner menulis log lifecycle-nya, termasuk baris `[runner:fatal]`, ke stdout, dan output debug ke stderr, semuanya sebagai baris teks biasa daripada JSON. Kegagalan startup yang dijelaskan dalam entri troubleshooting di atas mencetak ke stderr sebelum titik itu. Tangkap kedua aliran dengan `--log-file`, yang juga memungkinkan `self-hosted-runner doctor` untuk mengekornya, atau dengan pengumpulan log platform Anda.549Setelah logging diinisialisasi, runner menulis log lifecycle-nya, termasuk baris `[runner:fatal]`, ke stdout, dan output debug ke stderr, semuanya sebagai baris teks biasa daripada JSON. Kegagalan startup yang dijelaskan dalam entri troubleshooting di atas mencetak ke stderr sebelum titik itu. Tangkap kedua aliran dengan `--log-file`, yang juga memungkinkan `self-hosted-runner doctor` untuk mengekornya, atau dengan pengumpulan log platform Anda.

Details

103| `SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS` | `30000` | Berapa lama runner menganggap session sibuk setelah background task selesai sementara turn follow-up yang membaca hasil belum dimulai. Baris [`--drain-wait-sec` dan `--release-idle-session-min`](#runner-cli-flags) menjelaskan di mana hold berlaku pada drain dan idle release, dan [Runner lifecycle](/docs/id/self-hosted-environments#runner-lifecycle) menjelaskan di mana itu berlaku pada pensiun `--retire-at`. `0` atau nilai yang tidak dapat digunakan kembali ke default, jadi hold tidak dapat dimatikan. Memerlukan Claude Code v2.1.228 atau lebih baru. |103| `SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS` | `30000` | Berapa lama runner menganggap session sibuk setelah background task selesai sementara turn follow-up yang membaca hasil belum dimulai. Baris [`--drain-wait-sec` dan `--release-idle-session-min`](#runner-cli-flags) menjelaskan di mana hold berlaku pada drain dan idle release, dan [Runner lifecycle](/docs/id/self-hosted-environments#runner-lifecycle) menjelaskan di mana itu berlaku pada pensiun `--retire-at`. `0` atau nilai yang tidak dapat digunakan kembali ke default, jadi hold tidak dapat dimatikan. Memerlukan Claude Code v2.1.228 atau lebih baru. |

104| `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` | `~/.claude` | Direktori ditangkap ke snapshot startup runner dan disemai ke `CLAUDE_CONFIG_DIR` setiap session; perubahan di disk berlaku setelah restart runner. Mengatur variabel juga memindahkan di mana runner membaca `.claude.json` untuk [MCP seeding](/docs/id/self-hosted-environments-configuration#mcp-servers), jadi mengaturnya, termasuk ke default sendiri, merelokasi lookup itu; arahkan ke direktori kosong untuk menonaktifkan seeding sepenuhnya. |104| `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` | `~/.claude` | Direktori ditangkap ke snapshot startup runner dan disemai ke `CLAUDE_CONFIG_DIR` setiap session; perubahan di disk berlaku setelah restart runner. Mengatur variabel juga memindahkan di mana runner membaca `.claude.json` untuk [MCP seeding](/docs/id/self-hosted-environments-configuration#mcp-servers), jadi mengaturnya, termasuk ke default sendiri, merelokasi lookup itu; arahkan ke direktori kosong untuk menonaktifkan seeding sepenuhnya. |

105| `SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS` | `900000` | Berapa lama runner menunggu setelah session mencapai batas `--kill-session-after-min`, untuk turn yang sedang berjalan selesai atau release selesai, sebelum itu menghentikan session |105| `SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS` | `900000` | Berapa lama runner menunggu setelah session mencapai batas `--kill-session-after-min`, untuk turn yang sedang berjalan selesai atau release selesai, sebelum itu menghentikan session |

106| `SELF_HOSTED_RUNNER_POST_TURN_SETTLE_MS` | `7000` | Batas pada berapa lama runner menghitung session sebagai sibuk untuk drain `--drain-wait-sec` setelah turn selesai, sementara proses session melaporkan akhir turn ke Anthropic. `0` atau nilai yang tidak dapat digunakan kembali ke default, jadi hold tidak dapat dimatikan. Memerlukan Claude Code v2.1.275 atau lebih baru. |

106| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | Berapa lama runner menunggu OS untuk mengirimkan `SIGKILL` ke child yang macet dalam I/O yang tidak dapat diinterupsi sebelum keluar sendiri. Floored pada `--post-session-hook-timeout-sec` plus 15 detik, dan 30 lebih banyak ketika `--push-outcome-on-release` diatur, jadi minimum efektif adalah 75 detik di default. |107| `SELF_HOSTED_RUNNER_SIGKILL_GRACE_MS` | `30000` | Berapa lama runner menunggu OS untuk mengirimkan `SIGKILL` ke child yang macet dalam I/O yang tidak dapat diinterupsi sebelum keluar sendiri. Floored pada `--post-session-hook-timeout-sec` plus 15 detik, dan 30 lebih banyak ketika `--push-outcome-on-release` diatur, jadi minimum efektif adalah 75 detik di default. |

107| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | Git fetch depth untuk fresh clone. Atur integer positif, atau `full` atau `0` untuk fetch lengkap. Repositori yang sudah ada di workspace menjaga kedalaman yang ada. |108| `CLAUDE_RUNNER_FETCH_DEPTH` | `50` | Git fetch depth untuk fresh clone. Atur integer positif, atau `full` atau `0` untuk fetch lengkap. Repositori yang sudah ada di workspace menjaga kedalaman yang ada. |

108| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | unset | Ketika `1`, lewati pemeriksaan kehadiran `.git` setelah hook `checkout` berjalan. Atur ini ketika hook Anda materialize sumber non-git. |109| `CLAUDE_RUNNER_SKIP_GIT_VERIFY` | unset | Ketika `1`, lewati pemeriksaan kehadiran `.git` setelah hook `checkout` berjalan. Atur ini ketika hook Anda materialize sumber non-git. |

slack.md +3 −1

Details

231 231 

232Entri ini berlaku untuk ruang kerja yang menggunakan [Claude Tag](https://claude.com/docs/claude-tag/overview), di mana Claude bekerja di saluran sebagai identitas bersama organisasi Anda, bukan sebagai akun anggota mana pun. Jika Anda membuat lingkungan cloud saluran di [claude.ai/code](https://claude.ai/code), itu milik akun pribadi Anda, dan Claude tidak dapat memulai sesi saluran di lingkungan pribadi. Claude Code gagal sesi segera, dan mencoba lagi tidak membantu.232Entri ini berlaku untuk ruang kerja yang menggunakan [Claude Tag](https://claude.com/docs/claude-tag/overview), di mana Claude bekerja di saluran sebagai identitas bersama organisasi Anda, bukan sebagai akun anggota mana pun. Jika Anda membuat lingkungan cloud saluran di [claude.ai/code](https://claude.ai/code), itu milik akun pribadi Anda, dan Claude tidak dapat memulai sesi saluran di lingkungan pribadi. Claude Code gagal sesi segera, dan mencoba lagi tidak membantu.

233 233 

234Jika Anda adalah Pemilik, buat ulang lingkungan sebagai [lingkungan bersama organisasi](/docs/id/cloud-environments#organization-shared-environments) dari halaman **Cloud environments** di [pengaturan admin](https://claude.ai/admin-settings). Anda dapat menerapkannya dengan dua cara:234Jika Anda adalah Pemilik dan lingkungannya adalah milik Anda sendiri, [bagikan dengan organisasi](/docs/id/cloud-environments#organization-shared-environments) dari pemilih lingkungan. Jika tidak, Pemilik membuat ulang sebagai lingkungan bersama organisasi dari halaman **Cloud environments** di [pengaturan admin](https://claude.ai/admin-settings).

235 

236Anda dapat menerapkannya dengan dua cara:

235 237 

236* Tetapkan sebagai default organisasi di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).238* Tetapkan sebagai default organisasi di [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code).

237* [Tetapkan di saluran](https://claude.com/docs/claude-tag/admins/troubleshooting#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one) di pengaturan admin Claude Tag.239* [Tetapkan di saluran](https://claude.com/docs/claude-tag/admins/troubleshooting#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one) di pengaturan admin Claude Tag.

Details

196<Steps>196<Steps>

197 <Step title="Buka tampilan diff">197 <Step title="Buka tampilan diff">

198 Indikator diff menunjukkan baris yang ditambahkan dan dihapus di seluruh sesi, misalnya `+42 -18`. Pilihnya untuk membuka tampilan diff, dengan daftar file di sebelah kiri dan perubahan di sebelah kanan.198 Indikator diff menunjukkan baris yang ditambahkan dan dihapus di seluruh sesi, misalnya `+42 -18`. Pilihnya untuk membuka tampilan diff, dengan daftar file di sebelah kiri dan perubahan di sebelah kanan.

199 

200 Diff membandingkan perubahan sesi terhadap cabang dasarnya secara default. Untuk membandingkan terhadap cabang yang berbeda, pilih **Compare against** dan pilih satu.

199 </Step>201 </Step>

200 202 

201 <Step title="Tinggalkan komentar inline">203 <Step title="Tinggalkan komentar inline">


203 </Step>205 </Step>

204 206 

205 <Step title="Buat permintaan tarik">207 <Step title="Buat permintaan tarik">

206 Ketika diff terlihat benar, pilih **Buat PR** di bagian atas tampilan diff. Anda dapat membukanya sebagai PR penuh, draft, atau melompat ke halaman compose GitHub dengan judul dan deskripsi yang dihasilkan.208 Ketika diff terlihat benar, pilih **Create PR** di bagian atas tampilan diff. Anda dapat membukanya sebagai PR penuh, draft, atau melompat ke halaman compose GitHub dengan judul dan deskripsi yang dihasilkan.

207 </Step>209 </Step>

208 210 

209 <Step title="Terus ulangi setelah PR">211 <Step title="Terus ulangi setelah PR">